Доступ к группам в netCDF с использованием XARRY - PullRequest
0 голосов
/ 19 марта 2020

Я новичок в манипулировании данными 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, это группа, которая ничего не происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...