0

我正在尝试将 SpatialPointsDataframe 转换为 SpatialGridDataframe,以便使用 landsat 包中的 slopeasp() 函数来获取坡度值。我试图将 SpatialPointsDataframe 转换为栅格以进行转换,但它也不起作用,我得到了错误。

as(pts, "spatialGridDataFrame") 中的错误:没有将“SpatialPointsDataFrame”强制转换为“spatialGridDataFrame”的方法或默认值</p>

下面是我的代码:

#create fake data
x <- rep(rep(seq(12,36,0.5),41))
y <-rep(seq(32,52,0.5), each=49)
z <- rnorm(2009, 26.5, 44.0)
pts <- as.data.frame(matrix(c(x,y,z),  ncol=3,  byrow=FALSE))
colnames(pts)=c("x", "y", "z")

# create a SpatialPointsDataFrame
coordinates(pts) = ~x+y                                        
# create an empty raster object to the extent of the points
rast <- raster(ext=extent(pts), resolution=250)
# rasterize  irregular points 
rasOut<-rasterize(pts, rast, pts$z, fun = mean)

#attempt from spdf to sgdf
sgdf <- as(pts, 'spatialGridDataFrame')
#atempt from raster to sgdf
sgdf <- as(rasOut, 'spatialGridDataFrame')

有人对如何获取 spatialGridDataFrame 有任何建议吗?谢谢!

4

1 回答 1

0

as转换为spatialGridDataFrame期望类的对象class SpatialPixelsDataFrame

类中的对象

对象可以通过调用 as(x, "SpatialGridDataFrame") 形式来创建,其中 x 属于 SpatialPixelsDataFrame 类,或者通过 rgdal 导入。代替存储有序的完整网格或存储无序的非 NA 单元格;

因此,您可以将您的转换ptsSpatialPixelsDataFrame,然后将结果转换SpatialPixelsDataFrameSpatialGridDataFrame您所做的。

#attempt from spdf to sgdf
sgdf <- as(pts, 'SpatialPixelsDataFrame')

# Convert the SpatialPixelsDataFrame (sgdf) to spatialGridDataFrame
sgdf <- as(sgdf, "SpatialGridDataFrame")

你也可以rasOut用同样的方式转换你的。在一行代码中,这是:

#atempt from raster to sgdf
sgdf <- as(as(rasOut, 'SpatialPixelsDataFrame'), 'SpatialGridDataFrame')
于 2020-10-15T22:34:47.123 回答