首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用模式生成空间点

如何用模式生成空间点
EN

Stack Overflow用户
提问于 2015-11-23 15:38:32
回答 1查看 1.7K关注 0票数 6

我正在做一些工作,我需要同时生成a)随机空间点b)非随机空间点,在多边形上,即b)点概率取决于例如东西梯度,或与某个点源或其他点源的距离。

对于a)我可以使用spsample()命令在sp包中生成多边形上的随机点,如下所示:

代码语言:javascript
复制
# Load a spatial polygon from maptools package
library(maptools)
nc <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],        proj4string=CRS("+proj=longlat +datum=NAD27"))
plot(nc)

library(sp)
pts <- spsample(nc, 100, type="random")
plot(nc)
points(pts, pch=19, col="red")

这正是我想要的。但是,是否可以将其修改为b),例如,在东方比在西方更有可能出现点数?(虽然我还能说明我想要100分?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 12:14:50

我只知道如何使用spatstat包来完成这个任务。使用函数rpoint,您可以使用坐标x,y的任意函数来定义不均匀的点密度。这里,我定义了一个函数,它的值在该区域的西端,并与向东的100坡度成线性增长:

代码语言:javascript
复制
library(maptools)
library(spatstat)
nc <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
                    proj4string=CRS("+proj=longlat +datum=NAD27"))
nc <- as.owin(nc)
west0 <- nc$xrange[1]
f <- function(x, y, ...){ 100 * (x - west0) }
pts <- rpoint(1000, f, win = nc)
plot(pts)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33874879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档