纬度和经度是 netcdf 文件中的二维数组吗?



我正在尝试从netCDF文件中打开,读取和绘制云覆盖数据。文件在 Panoply 查看器中打开并打印正常,因此数据看起来正常。但是我无法弄清楚如何将纬度和经度分别转换为一维数组,它们似乎是二维的。这对我来说很有意义...

读取文件和变量工作正常:

fh = Dataset("/home/ubuntu/HIMA8_CC/Himawari8_AHI_FLDK_2020171_0140_00_CLOUD_MASK_EN.nc", mode='r')
lon = fh.variables['Longitude'][:]
lat = fh.variables['Latitude'][:]
cloud_mask = fh.variables['CloudMask'][:]

但是,纬度和经度变量的维度是 2D,我本来希望它们是 1D:

print(lon.shape)
print(lat.shape)
print(np.mean(lon))
print(cloud_mask.shape)
print(np.mean(lon))
print(np.mean(cloud_mask))

指纹

(5500, 5500)
(5500, 5500)
91.97970824333167
(5500, 5500)
91.97970824333167
1.8154066433116118

平均值看起来符合预期。任何有 netCDF 经验的人都可以阐明我在这里缺少什么吗?

你可以试试这个。

import xarray as xr
fh = xr.open_dataset('/home/ubuntu/HIMA8_CC/Himawari8_AHI_FLDK_2020171_0140_00_CLOUD_MASK_EN.nc')
lon = fh['Longitude'].values.flatten()
lat = fh['Latitude'].values.flatten()

最新更新