我使用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
然后可以运行重新采样。