Я довольно новичок в библиотеке xarray
и застрял в том, что кажется довольно простой задачей. У меня есть глобальные климатические данные в файле GRIB
для различных 30-километровых сетей. Данные выглядят так:
<xarray.Dataset>
Dimensions: (time: 736, values: 542080)
Coordinates:
number int64 0
* time (time) datetime64[ns] 2007-12-01 ... 2008-03-01T21:00:00
step timedelta64[ns] 00:00:00
surface int64 0
latitude (values) float64 89.78 89.78 89.78 ... -89.78 -89.78 -89.78
longitude (values) float64 0.0 20.0 40.0 60.0 ... 280.0 300.0 320.0 340.0
valid_time (time) datetime64[ns] 2007-12-01 ... 2008-03-01T21:00:00
Dimensions without coordinates: values
Data variables:
t2m (time, values) float32 247.30748 247.49889 ... 225.18036
Attributes:
GRIB_edition: 1
GRIB_centre: ecmf
GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts
GRIB_subCentre: 0
Conventions: CF-1.7
institution: European Centre for Medium-Range Weather Forecasts
history: 2020-01-21T09:40:59 GRIB to CDM+CF via cfgrib-0....
И это нормально. Я могу получить доступ к разным моментам времени и графику, даже получить доступ к данным на ячейку, используя data.t2m.data
. Но данные индексируются только по time
и value
, последний из них - я предполагаю - идентификатор номера ячейки, но не считывает latitude
и longitude
как значимые измерения.
В документации авторы используют в качестве примера данные реанализа airtemp
, эти данные проиндексированы lat
, lon
и time
, и это то, что я хочу сделать с моим набор данных.
<xarray.Dataset>
Dimensions: (lat: 25, lon: 53, time: 2920)
Coordinates:
* lat (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0
* lon (lon) float32 200.0 202.5 205.0 207.5 ... 322.5 325.0 327.5 330.0
* time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
air (time, lat, lon) float32 ...
Attributes:
Conventions: COARDS
title: 4x daily NMC reanalysis (1948)
description: Data is from NMC initialized reanalysis\n(4x/day). These a...
platform: Model
references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly...
Есть ли прямой способ сделать эту переиндексацию в среде xarray
? Думаю, я могу просто извлечь массивы numpy
и перейти к pandas
или чему-то еще, но я считаю библиотеку xarray
действительно мощной и полезной.