широта и долгота - это двумерные массивы в файле netcdf? - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь открыть, прочитать и построить данные облачного покрова из файла netCDF. Файл открывается и отображается в средстве просмотра Panoply, поэтому с данными все в порядке. Но я не могу придумать, пока живу во мне, как преобразовать широту и долготу в одномерный массив каждый, они кажутся двухмерными. Что для меня имеет смысл NaN ...

Чтение файла и переменных работает нормально:

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 пролить свет на то, что мне здесь не хватает?

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете попробовать это.

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()
...