从数据框中存储的 XYZ 数据创建地图

Create map from XYZ data stored in dataframe

我有多个通过 gdal2xyz.py 脚本从 GeoTIFF 文件(EPSG:4326,WGS 84)创建的 XYZ 文件。

将它们导出为 XYZ 格式的目的是计算每个像素的最大值、最小值和平均值。

一旦完成,在我的R!我有一个包含三列的数据框:其中两列存储坐标,最后一列存储值。

此类数据的示例:

structure(list(X = c(16.91973877, 17.18004245, 17.44034612, 17.7006498, 17.96095347, 18.22125715), Y = c(54.35635376, 54.35635376, 54.35635376, 54.35635376, 54.35635376, 54.35635376), X2012.07.23 = c(2752L, 5422L, 7728L, 7178L, 8203L, 6909L)), .Names = c("X", "Y", "Mean"), row.names = c(NA, 6L), class = "data.frame")

是否可以在R中直接将此类数据绘制为二维地图!或者我是否需要将它们导出为 ASCII GRID 或其他光栅格式,再次阅读并绘制? 大多数 R 中的 GIS 教程!我发现它显示了如何绘制矢量或光栅文件。 理想情况下,我想将这些值显示为像素,但表示为点(具有关于值的明确信息)对我来说也可以。 在我的例子中:

虽然可以根据您的 'XYZ' 数据创建栅格

library(raster)
r <- rasterFromXYZ(XYZ)

这很复杂。您应该使用原始的 GeoTIFF 文件。例如

library(raster)
r <- raster('file.tif')

或者,如果有多层

b <- brick('file.tif')

然后,例如,计算每个单元格的平均值

m <- mean(b)