小编Mar*_*ark的帖子

选择与另一个多边形相交(或完全在其中)的多边形 [R sf]

我想从一个简单的要素集合中选择与另一个 sf 集合中的多边形相交的多边形。这是一个可重现的示例:

library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))
nc <- st_transform(nc,32717);nc
poly <- nc[1,]
fishnet<-st_make_grid(st_as_sfc(st_bbox(poly)),cellsize=5000)
Run Code Online (Sandbox Code Playgroud)

现在,在创建了多边形和围绕它的渔网后,我想选择那些与多边形相交或完全被多边形包含的渔网单元。

谢谢你的帮助!

标记

intersection r r-sf

4
推荐指数
1
解决办法
3848
查看次数

使用SF将空间坐标集转换为R中的多边形

列表中的每个元素都包含一组空间坐标,我希望使用sf将其转换为多边形。每一组坐标按我想“连接点”的顺序排序,并且第一行和最后一行相同,以关闭多边形。每个列表元素都用唯一的标识符命名,我希望将其保留为sf输出中的属性。

我已经从与SF相关的答案中改编了代码:

通过R中的SF将经度和纬度序列转换为多边形

但是我的情况有所不同,因为我有多组坐标(每组坐标应产生一个单独的多边形),而该问题只有一组坐标(导致一个多边形)。

我的具体问题是如何使用sf来生成一个sf多边形对象,该对象在单独的行中包含多个多边形,每个多边形都是使用列表元素之一的坐标创建的。

预先感谢您的任何建议或帮助。

标记


我的示例数据是由dput()生成的,位于该问题的结尾,并且我的代码是:

points_df<-arrange(dat,SitePondGpsRep,DateTime_local) #sort on DateTime_local for proper sequence

points_df<-dplyr::select(points_df,SitePondGpsRep,Longitude,Latitude) #drop columns, for upcoming st_polygon call (requires numerics only)

points_ls<-split(points_df,points_df$SitePondGpsRep) #dataframe to list

points_ls<-lapply(points_ls, function(x) { x["SitePondGpsRep"] <- NULL; x }) #delete SitePondGpsRep column, it’s retained in list names

points_ls<-lapply(points_ls,function(x) {as.matrix(x)}) #convert to matrix for upcoming st_sf call

points_ls<-lapply(points_ls,function(x) {rbind(x,x[1,])}) #close poly, first and last point must be same

polys <- st_sf(st_sfc(st_polygon(points_ls)), crs = 4326) #create polys, but only one polygon is created when …
Run Code Online (Sandbox Code Playgroud)

r r-sf

3
推荐指数
2
解决办法
212
查看次数

标签 统计

r ×2

r-sf ×2

intersection ×1