将栅格聚合到较粗糙的现有网格 - 加权贡献像素

时间:2016-08-10 20:39:27

标签: r gis raster r-raster

我有一个精细的光栅(比方说30米)和一个粗尺度的光栅(比如说100米)。我想使用R重新采样精细光栅,在100米处生成一个新的,较粗糙的光栅,其中网格与我现有的100米光栅(相同的原点和分辨率)完美对齐。我希望新的100米栅格中的值能够反映其中所有30米栅格单元的平均值,但是每个30米单元格对100米单元格平均值的贡献是按每个30米单元格的比例加权的。落在100米的细胞内。 R中是否有可用于此的函数(和包)?

我知道GDAL的gdalwarp,但它似乎认为更精细分辨率的像素对更粗糙的像素“贡献”或“没有贡献”,而没有根据更精细的百分比部分贡献的可能性属于较粗像素的像素。

另一个近似是使用aggregate包中的raster函数尽可能接近目标分辨率(在这种情况下,聚合因子为3,产生90米栅格)然后使用spatial_sync_raster包中的spatial.tools函数同步生成的网格以与我现有的100米网格对齐。但是,相对于光栅聚合并在一个步骤中同步的方法,这种方法会导致过度平滑和数据丢失。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您需要projectRaster

中的raster功能

答案 1 :(得分:1)

在@ jgadoury的建议的基础上,我发现了一种更接近我期望结果的方法:

  1. 创建比我的精细光栅更精细的光栅(我使用10米),但其原点和范围与我的粗尺度(100米)光栅相同,并且是其分辨率的一个因素。
  2. 使用projectRaster
  3. 将30米栅格重新采样到10米栅格网格
  4. 使用aggregate
  5. 将10米网格聚合到100米网格

    在步骤#1中制作光栅的效果越精细,在局部高点和低点上平滑的越少(即,从该像素外的区域对给定的100米像素贡献的数据越少),但过程效率越低变。