从数据框中存储的 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)
我有多个通过 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)