R并将栅格范围导出为esri shapefile

时间:2019-01-31 23:00:11

标签: r raster 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")

1 个答案:

答案 0 :(得分:0)

发生错误是因为您有一个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")