J'apprends comment utiliser le paquet python xarray
, mais j'ai des problèmes avec les données multidimensionnelles. Plus précisément, comment ajouter et utiliser des coordonnées supplémentaires?Ajout et utilisation de coordonnées supplémentaires avec xarray
Voici un exemple.
import xarray as xr
import pandas as pd
import numpy as np
site_id = ['brw','sum','mlo']
dss = []
for site in site_id:
df = pd.DataFrame(np.random.randn(20,2),columns=['a','b'],index=pd.date_range('20160101',periods=20,freq='MS'))
ds = df.to_xarray()
dss.append(ds)
ds = xr.concat(dss, dim=pd.Index(site_id, name='site'))
ds.coords['latitude'] = [71.323, 72.58, 19.5362]
ds.coords['longitude'] = [156.6114, 38.48, 155.5763]
Mon xarray
jeu de données ressemble:
>>> ds
<xarray.Dataset>
Dimensions: (index: 20, latitude: 3, longitude: 3, site: 3)
Coordinates:
* index (index) datetime64[ns] 2016-01-01 2016-02-01 2016-03-01 ...
* site (site) object 'brw' 'sum' 'mlo'
* latitude (latitude) float64 71.32 72.58 19.54
* longitude (longitude) float64 156.6 38.48 155.6
Data variables:
a (site, index) float64 -0.1403 -0.2225 -1.199 -0.8916 0.1149 ...
b (site, index) float64 -1.506 0.9106 -0.7359 2.123 -0.1987 ...
Je peux sélectionner une série en utilisant la méthode de sel en fonction d'un code de site. Par exemple:
>>> ds.sel(site='mlo')
Mais comment puis-je sélectionner les données en fonction des autres coordonnées (latitude ou longitude dire)?
>>> ds.sel(latitude>50)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'latitude' is not defined