【发布时间】:2019-04-23 13:55:24
【问题描述】:
我正在尝试测量海岸线的长度。这将用作分析中沿海岸线位置的度量。例如,假设我有一个地区所有公共海滩位置的数据,我想通过测量它们与海岸参考点的距离来描述它们在空间中的分布情况。
我遵循this extremely helpful tutorial 使用不同长度的尺子计算海岸线的长度。但是,仅当您要测量整个多边形长度时才准确,即您感兴趣的地理对象是一个岛屿。
要获得海岸线的 shapefile(请注意,在 ne_countries 调用中,我故意使用粗略的比例,以使海岸线更平滑,并且只保留返回的第一个形状——“scalerank”名称不是重要):
library(raster)
library(sf)
library(rnaturalearth)
basemap <- rnaturalearth::ne_countries(scale = 110, country = "united states of america", returnclass = "sf")[1]
bbox <- extent(-82, -65, 27, 35)
cropmap <- st_crop(basemap, bbox)
plot(cropmap)
这会返回一个显示南大西洋海岸到佛罗里达州的形状。但是,如果我测量这个形状的长度,它将包括多边形的所有边——而不仅仅是海岸线。如何隔离海岸线(请参阅下面的地图,了解多边形的哪个部分实际上是沿海的)并仅在 R 中测量其长度?
ggplot() +
geom_sf(data=basemap) +
geom_sf(data=cropmap, color="blue", fill="blue")
【问题讨论】: