R中

2017-03-06 13 views
1

围绕创建空间数据缓存我有商场的空间数据集,我想在R.R中

周围创建缓冲区我想这些包将是有益的:

require(maptools) 
require(geosphere) 

我能够为一组坐标而不是空间数据。代码如下所示:

coordinates(locs) <- c("Longitude", "Latitude") # set spatial coordinates 
fivekm <- cbind(coordinates(locs), X=rowSums(distm (coordinates(locs)[,1:2], fun = distHaversine)/1000 <= 5)) # number of points within 5 km 

但是我不知道用于一组多边形的函数/包。有人可以请告知功能(或代码),我会从那里去?

谢谢!

回答

2

我认为在目前的唯一选择是项目的经度和纬度点到平面地图,然后做一切有。据我所知,目前还没有在球体上做多边形几何的软件包(我正在研究一个,但没有ETA)。使用

投影与spTransformsp包做,但现在它可能是使用更现代的简单功能包sf其具有的功能st_transform更方便。小插曲https://cran.r-project.org/web/packages/sf/vignettes/sf1.html有一个名为“坐标参考系统和转换”的部分来帮助您完成这一部分。缓冲在“几何操作”一节中介绍。

+0

谢谢! @Ege Rubak。 – JAG2024

0

在库rgeos中,有与SpatialPoints或SpatialPolygons一起使用的gBuffer函数。
width参数允许设置要缓冲的距离。但是,请注意,此距离是所用坐标系统的比例尺。因此,以非投影数据为单位,单位为米。正如@Ege Rubak建议的那样,您必须首先使用spTransform来投影您的数据(请务必根据您的位置使用相应的CRS)。
至于现在,rgeos库可与图书馆sp,但不(没?)与近期sf

0

两个以前的帖子已经覆盖了细节,但我认为它可能是有用的,提供的工作流。这是假设你有使用lat和long点。你的原始空间数据格式是什么?

  1. 将您的坐标转换为空间点数据帧SpatialPointsDataFrame并为其分配一个地理CRS(proj4)符合您的坐标数据(可能WGS84)
  2. 改变投射到本地投影CRS与首选单位
  3. 应用缓冲区空间点的数据帧时,width现在将更多的可用单元