Я новичок в манипулировании данными netCDF в Python и решил использовать xarray
в качестве основной библиотеки вместо netCDF4
, однако у меня есть некоторые проблемы для изучения моих данных с использованием групп.
Если я использую netCDF4
, я четко вижу структуру и перемещаюсь:
my_example_nc_file = 'S5P_NRTI_L2__NO2____20200308T111105_20200308T111605_12443_01_010302_20200308T120207.nc'
fh = Dataset(my_example_nc_file, mode='r')
print(fh)
, которая выводит очень длинный список параметров, включая группы в файле:
groups: PRODUCT, METADATA
То, что я могу использовать позже, чтобы получить доступ к дальнейшей информации: fh['METADATA']
С другой стороны, если я использую xarray
для доступа к тому же файлу:
with xr.open_dataset(path, group="METADATA") as s5p_img:
print(colored('Product data type is: ','blue'), type(s5p_img),'\n')
print(colored('Basic overview of the product\n' , 'blue'), s5p_img)
Я получаю:
Product data type is: <class 'xarray.core.dataset.Dataset'>
Basic overview of the product
<xarray.Dataset>
Dimensions: ()
Data variables:
*empty*
Я в замешательстве, потому что, если я использую group=PRODUCT
, мне удастся получить доступ к информации.
with xr.open_dataset(path, group="PRODUCT") as s5p_img:
print(colored('Product data type is: ','blue'), type(s5p_img),'\n')
print(colored('Basic overview of the product\n' , 'blue'), s5p_img)
Какие выходные данные:
Product data type is: <class 'xarray.core.dataset.Dataset'>
Basic overview of the product
<xarray.Dataset>
Dimensions: (corner: 4, ground_pixel: 450, intensity_offset_polynomial_exponents: 1, layer: 34, polynomial_exponents: 6, scanline: 373, time: 1, vertices: 2)
Coordinates:
* scanline (scanline) float64 0.0 ... 372.0
* ground_pixel (ground_pixel) float64 0.0 ... 449.0
* time (time) datetime64[ns] 2020-03-08
* corner (corner) float64 0.0 ... 3.0
* polynomial_exponents (polynomial_exponents) float64 0.0 ... 5.0
* intensity_offset_polynomial_exponents (intensity_offset_polynomial_exponents) float64 0.0
* layer (layer) float64 0.0 ... 33.0
* vertices (vertices) float64 0.0 1.0
latitude (time, scanline, ground_pixel) float32 ...
longitude (time, scanline, ground_pixel) float32 ...
Data variables:
delta_time (time, scanline) datetime64[ns] ...
time_utc (time, scanline) object ...
qa_value (time, scanline, ground_pixel) float32 ...
nitrogendioxide_tropospheric_column (time, scanline, ground_pixel) float32 ...
nitrogendioxide_tropospheric_column_precision (time, scanline, ground_pixel) float32 ...
nitrogendioxide_tropospheric_column_precision_kernel (time, scanline, ground_pixel) float32 ...
averaging_kernel (time, scanline, ground_pixel, layer) float32 ...
air_mass_factor_troposphere (time, scanline, ground_pixel) float32 ...
air_mass_factor_total (time, scanline, ground_pixel) float32 ...
tm5_tropopause_layer_index (time, scanline, ground_pixel) float64 ...
tm5_constant_a (layer, vertices) float32 ...
tm5_constant_b (layer, vertices) float32 ...
Что мне не хватает при использовании xarray
? Из документации видно, что:
Группы NetCDF не поддерживаются как часть модели данных набора данных. Вместо этого группы могут быть загружены индивидуально как объекты набора данных. Для этого передайте аргумент ключевого слова group в функцию open_dataset ().
Итак, почему, если я использую METADATA
, это группа, которая ничего не происходит?