簡體   English   中英

R 並將柵格范圍導出為 esri shapefile

[英]R and Export raster extent as esri shapefile

我正在使用 R 中的柵格數據集,並希望制作其范圍的多邊形,然后將其導出為 ESRI shapefile。 我的問題,或者至少是我認為的問題,發生在我嘗試導出空間多邊形數據框時,因為我收到以下錯誤:

writeOGR(p, ".", "xyz_extent", driver="ESRI Shapefile") 中的錯誤:obj 必須是 SpatialPointsDataFrame、SpatialLinesDataFrame 或 SpatialPolygonsDataFrame

我的腳本如下。 請注意,在 R 中處理空間數據時,我有一個初學者技能,所以我確實要求對答案進行詳細描述。 提前感謝那些進來的人。

腳本:

library(raster)
xyz <- raster("xyz.asc")
crs(xyz)
# CRS arguments: +proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000  +y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0 

e <- extent(xyz)
p <- as(e, 'SpatialPolygons')
crs(p) <- crs(xyz)

library(rgdal)
writeOGR(p, ".", "xyz_extent", driver="ESRI Shapefile")

發生錯誤是因為您有一個 SpatialPolygons,而不是 SpatialPolygonsDataFrame 對象。 解決此問題的一種簡單方法是改用shapefile函數。

library(raster)
xyz <- raster()
e <- extent(xyz)
p <- as(e, 'SpatialPolygons')
crs(p) <- crs(xyz)

shapefile(p, "xyz_extent.shp")

您可以使用相同的功能再次讀取文件

x <- shapefile("xyz_extent.shp")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM