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")
我正在使用 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")