gpt4 book ai didi

r - 使用 gbuffer 缓冲 R 中的(地理)空间点

转载 作者:行者123 更新时间:2023-12-04 01:37:56 37 4
gpt4 key购买 nike

我正在尝试缓冲数据集中半径为 100 公里的点。我正在使用函数 gBuffer来自包裹rgeos .这是我到目前为止所拥有的:

head( sampledf )
# postalcode lat lon city province
#1 A0A0A0 47.05564 -53.20198 Gander NL
#4 A0A1C0 47.31741 -52.81218 St. John's NL

coordinates( sampledf ) <- c( "lon", "lat" )
proj4string( sampledf ) <- CRS( "+proj=longlat +datum=WGS84" )
distInMeters <- 1000
pc100km <- gBuffer( sampledf, width=100*distInMeters, byid=TRUE )

我收到以下警告:

In gBuffer(sampledf, width = 100 * distInMeters, byid = TRUE) : Spatial object is not projected; GEOS expects planar coordinates



根据我的理解/阅读,我需要更改坐标引用系 (CRS),
特别是数据集从“地理”到“投影”的投影。
我不确定如何改变这一点。这些都是加拿大地址,我可以补充一下。
所以 NAD83 在我看来是一个自然的选择,但我可能是错的。

任何/所有帮助将不胜感激。

最佳答案

多一点挖掘,结果证明使用“投影”坐标引用系统就像

# To get Statscan CRS, see here:
# http://spatialreference.org/ref/epsg/3347/
pc <- spTransform( sampledf, CRS( "+init=epsg:3347" ) )

STATSCAN 使用的 EPSG3347(适用于加拿大地址)使用 Lambert 共形圆锥投影。请注意,NAD83 是不合适的:它是“地理”,而不是“投影”CRS。缓冲点
pc100km <- gBuffer( pc, width=100*distm, byid=TRUE )
# Add data, and write to shapefile
pc100km <- SpatialPolygonsDataFrame( pc100km, data=pc100km@data )
writeOGR( pc100km, "pc100km", "pc100km", driver="ESRI Shapefile" )

关于r - 使用 gbuffer 缓冲 R 中的(地理)空间点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411251/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com