将栅格聚合到更粗糙的现有网格——加权贡献像素
Aggregating a raster to a coarser, existing grid -- weighting contributing pixels
我有一个细比例栅格(比如 30 m)和一个粗比例栅格(比如 100 m)。我想使用 R 对精细栅格进行重新采样,以在 100 m 处生成一个新的、较粗糙的栅格,其中网格与我现有的 100 m 栅格(相同的原点和分辨率)完美对齐。我希望新的 100 m 栅格中的值反映落在其中的所有 30 m 栅格像元的平均值,但是每个 30 m 像元对 100 m 像元平均值的贡献由每个 30 m 像元的比例加权落在 100 m 小区内。 R 中是否有我可以用于此目的的函数(和包)?
我知道 GDAL 的 gdalwarp
,但它似乎将更精细的像素视为 "contributing" 或 "not contributing" 而不是较粗糙的像素,而不可能部分贡献基于较精细像素落入较粗糙像素的百分比。
另一种近似是使用 raster
包中的 aggregate
函数来尽可能接近目标分辨率(在这种情况下,聚合因子 3 产生 90 m栅格),然后使用 spatial.tools
包中的 spatial_sync_raster
函数同步生成的网格以与我现有的 100 m 网格对齐。但是,相对于在单个步骤中聚合和同步栅格的方法,此方法会导致过度平滑和数据丢失。
如有任何帮助,我们将不胜感激!
您需要 raster
包中的 projectRaster
函数
根据@jgadoury 的建议,我找到了一种更接近我预期结果的方法:
- 创建一个比我的精细比例栅格(我使用 10m)更精细的栅格,但具有与我的粗比例 (100m) 栅格相同的原点和范围及其分辨率因子。
- 使用
projectRaster
将 30m 栅格重新采样为 10m 栅格网格
- 使用
aggregate
将 10m 网格聚合到 100m 网格
您在步骤 #1 中制作的光栅越精细,对局部高点和低点的平滑处理就越少(即,您从该像素以外的区域贡献给给定 100m 像素的数据越少),但效率越低过程变成。
我有一个细比例栅格(比如 30 m)和一个粗比例栅格(比如 100 m)。我想使用 R 对精细栅格进行重新采样,以在 100 m 处生成一个新的、较粗糙的栅格,其中网格与我现有的 100 m 栅格(相同的原点和分辨率)完美对齐。我希望新的 100 m 栅格中的值反映落在其中的所有 30 m 栅格像元的平均值,但是每个 30 m 像元对 100 m 像元平均值的贡献由每个 30 m 像元的比例加权落在 100 m 小区内。 R 中是否有我可以用于此目的的函数(和包)?
我知道 GDAL 的 gdalwarp
,但它似乎将更精细的像素视为 "contributing" 或 "not contributing" 而不是较粗糙的像素,而不可能部分贡献基于较精细像素落入较粗糙像素的百分比。
另一种近似是使用 raster
包中的 aggregate
函数来尽可能接近目标分辨率(在这种情况下,聚合因子 3 产生 90 m栅格),然后使用 spatial.tools
包中的 spatial_sync_raster
函数同步生成的网格以与我现有的 100 m 网格对齐。但是,相对于在单个步骤中聚合和同步栅格的方法,此方法会导致过度平滑和数据丢失。
如有任何帮助,我们将不胜感激!
您需要 raster
包中的 projectRaster
函数
根据@jgadoury 的建议,我找到了一种更接近我预期结果的方法:
- 创建一个比我的精细比例栅格(我使用 10m)更精细的栅格,但具有与我的粗比例 (100m) 栅格相同的原点和范围及其分辨率因子。
- 使用
projectRaster
将 30m 栅格重新采样为 10m 栅格网格
- 使用
aggregate
将 10m 网格聚合到 100m 网格
您在步骤 #1 中制作的光栅越精细,对局部高点和低点的平滑处理就越少(即,您从该像素以外的区域贡献给给定 100m 像素的数据越少),但效率越低过程变成。