我对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)
绘制每个波段的点数据中的extrced值和观测值
plot( soil_sp$ref ~., data=soil_sp)
最后,我想将提取的值与点数据中的变量一起导出到单个数据框或SpatialPointsDataFrame中。
答案 0 :(得分:0)
解决方案是使用SpatialPointDataFrame提取堆栈栅格的值,然后将结果写入CSV文件或任何您想要的内容。
实现: 从SpatialPointData
中创建SpatialPointDataFram soil_spdf=SpatialPointsDataFrame(coords = soil_sp,data = soil.clean2,
proj4string = soil_crs)
Extrcat值。
soil_spdf$ref <- extract(lsat2 , soil_spdf)
将数据写入PC中所需目录的CSV文件中。
write.csv(x =soil_spdf,file ="C:/lsat2.csv")