使用 R 中的空间数据点从堆栈栅格中提取值



我在 Landsat 的栅格数据中占有一席之地,我想通过在 R 中使用 SpatialPointData 提取它们的值,然后在 SpatialPointData 中使用关联的变量绘制提取的值,最后,我想将提取的数据与空间点对象属性中的变量一起导出。我使用提取函数来做到这一点,但问题是提取后我每次都会遇到几个错误,有时它可以工作,但它只给我一个数据框作为矩阵,我无法将它们与观察点匹配。

我的脚本

#raster
lsat <- stack(b1,b2,b3,b4,b5,b6_1,b6_2,b7)
#SpatialPoint
soil_sp=SpatialPoints(cbind(soil.clean2$x,soil.clean2$y))

从堆栈层外部获取值

soil_sp$ref<- extract(lsat2, soil_sp)

在每个波段的点数据中绘制外值和观测值

plot( soil_sp$ref ~., data=soil_sp)

最后,我想将提取的值以及点数据中的变量导出到单个数据框或空间点数据帧中。

解决方案是使用空间点数据帧提取堆栈栅格的值,然后将结果写入 CSV 文件或任何您想要的内容。

实现: Crerate SpatialPointDataFram out of SpatialPointData

soil_spdf=SpatialPointsDataFrame(coords = soil_sp,data = soil.clean2, 
proj4string = soil_crs)

排除价值观。

soil_spdf$ref <- extract(lsat2 , soil_spdf)

将数据写入PC上所需目录中的CSV文件。

write.csv(x =soil_spdf,file ="C:/lsat2.csv")

最新更新