如何使用gdal.Wrap()对带有nan单元格的光栅重新采样



我使用gdal.Rap()从高分辨率重新采样到低分辨率。但是,我的光栅没有值(nan)。因此,当我设置重采样算法时,带有nan(s)的较大网格将变为nan。

这是我在Python:中的reprex

from osgeo import gdal
### resample and reproject
### data are from MOD11A2 and MYD11A2, and have been converted into annual mean values
raster_rprj = gdal.Warp("./2015_daytime_mean_re.tif",
"./2015_daytime_mean_clip2.tif", dstSRS = "EPSG:4326",
xRes = 0.008, yRes = 0.008, resampleAlg = "average")
raster_rprj = None

我希望它作为函数运行np.nanamean()

光栅数据在这里。

在重新采样之前,可以将NaN值替换为平均值。

实现这一点的numpy表达式如下:

numpy.nan_to_num(A,nan=numpy.nanmean(A))

其中A是像素的numpy数组。

你这样运行它:

gdal_calc.py -A 2015_daytime_mean_clip2.tif 
--calc="numpy.nan_to_num(A,nan=numpy.nanmean(A))" 
--outfile=2015_daytime_mean_nan_to_num.tif

有关GDAL Calc的更多信息:https://gdal.org/programs/gdal_calc.html

然后可以运行重新采样。

最新更新