2017-02-08 2 views
2

Ich habe eine netCDF-Datei mit Foll. Struktur:Extraktion nächsten Lat-lon und Zeit Wert von Netcdf mit Xarray

<xarray.Dataset> 
Dimensions: (latitude: 94, longitude: 192, time: 366) 
Coordinates: 
    * longitude (longitude) float32 -180.0 -178.125 -176.25 -174.375 -172.5 ... 
    * latitude (latitude) float32 88.5419 86.6532 84.7532 82.8508 80.9474 ... 
    * time  (time) datetime64[ns] 2016-01-01 2016-01-02 2016-01-03 ... 
Data variables: 
    m2t  (time, latitude, longitude) float64 246.5 246.4 246.4 246.4 
    pre  (time, latitude, longitude) float64 9.988e-08 9.988e-08 ... 
Attributes: 
    Conventions: CF-1.0 

Wie extrahiert I-Wert für eine Rasterzelle für eine bestimmte Breite und Länge (etwa 86,45, -156,25) und Zeit (etwa 2016.01.10)? Es ist möglich, dass die genaue Breite/Länge Wert ist nicht in den Koordinaten in diesem Fall werden wir die nächste Breite/Länge Wert wollen

I-Wert für eine bestimmte Länge wie diese extrahieren:

_hndl_nc.sel(longitude=(_hndl_nc.longitude == -20)) 

jedoch Da -20 in Längenkoordinaten nicht vorhanden ist, funktioniert das nicht.

Antwort

3

Sie sind ganz in der Nähe, obwohl Sie noch nicht ganz die richtige Syntax haben:

_hndl_nc.sel(time='2016-01-10', longitude=-170.0, latitude=-20.0, method='nearest') 

siehe auch: Read multiple coordinates with xarray

+0

wow! das ist einfach genial – user308827

+0

Das ist super nützlich! Speichert die klassische argmin() -Zeile, um den nächsten Pixel col/row zu erhalten. –

Verwandte Themen