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

时间:2015-12-05 17:49:21

标签: r geospatial

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

将它们导出为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中的2D地图!或者我需要将它们导出为ASCII GRID或其他栅格格式,再次读取并绘制? R中的大多数GIS教程!我发现了如何绘制矢量或光栅文件。 理想情况下,我想将这些值显示为像素,但表示为点(具有关于值的清晰信息)对我来说也是可以的。 在我的例子中: Visualization of sample data in QGIS

1 个答案:

答案 0 :(得分:1)

虽然可以从'XYZ'数据

创建栅格
library(raster)
r <- rasterFromXYZ(XYZ)

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

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

或者,如果有多个图层

b <- brick('file.tif')

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

m <- mean(b)