GOES 17 netcdf文件转换为Plate Carree



示例文件可以从https://noaa-goes17.s3.amazonaws.com/ABI-L1b-RadF/2021/213/00/OR_ABI-L1b-RadF-M6C13_G17_s20212130000319_e20212130009396_c20212130009445.nc

我正试着把投影转换成平板推车。

我用Satpy加载了netcdf。

from satpy import Scene
from glob import glob
goes17 = glob('./samplefile/*')
goes17_scene = Scene(reader="abi_l1b", filenames=goes17)

然后我想用重新采样到Plate carreehttps://satpy.readthedocs.io/en/stable/resample.html#create-自定义区域定义但是没有示例代码。

文档肯定可以改进(我不是在抱怨,我是作者之一(。首先,它应该指向pyresample中关于如何制作自定义区域定义的文档:

https://pyresample.readthedocs.io/en/latest/geometry_utils.html

如果你想重新采样到平板carree(等矩形(投影,你可以尝试这样的方法:

from pyresample import create_area_def
area_def = create_area_def("my_area_def", "+proj=eqc +datum=WGS84", resolution=2000)

这将产生所谓的DynamicAreaDefinition,它是一个没有定义所有参数的AreaDefinition。例如,此区域没有范围/边界。我确实把它定义为每像素2公里的分辨率。我们可以将这个动态区域定义提供给Satpy;冻结";它与来自ABI数据的地理位置。所以你的代码会是这样的:


from satpy import Scene
from glob import glob
from pyresample import create_area_def
area_def = create_area_def("my_area_def", "+proj=eqc +datum=WGS84", resolution=2000)
goes17 = glob('./samplefile/*')
goes17_scene = Scene(reader="abi_l1b", filenames=goes17)
goes17_scene.load(['C13']) 
new_scn = goes17_scene.resample(area_def)
# save to geotiffs
new_scn.save_datasets()

请注意,如果在调用create_area_def时知道区域的确切边界,则可以创建完全限定的AreaDefinition,并且在重新采样时性能会更好(因为Satpy不必计算动态区域的边界(。

最新更新