使用R中的SpatialDataPoint从表格堆栈栅格中提取值

时间:2018-05-13 18:43:52

标签: r spatial

我对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中。

1 个答案:

答案 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")