xarray - повторная выборка и применение индексов одного DataArray к другому объекту DataArray - PullRequest
0 голосов
/ 16 мая 2019

У меня есть два объекта DataArray на xarray с именами da_ffdi и rio.

In [58]: da_ffdi
Out[58]: 
<xarray.DataArray 'FFDI' (time: 8760, latitude: 106, longitude: 193)>
dask.array<shape=(8760, 106, 193), dtype=float32, chunksize=(744, 106, 193)>
Coordinates:
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
  * time       (time) datetime64[ns] 2005-01-01 ... 2005-12-31T23:00:00
Attributes:
    projectionType:  MERCATOR
    level:           SFC
    units:           
    gridType:        SCALAR
    lonCentre:       145.4
    latIntersect:    0.0

In [59]: rio
Out[59]: 
<xarray.DataArray (band: 1, y: 106, x: 193)>
array([[[0, 0, ..., 0, 0],
        [0, 0, ..., 0, 0],
        ...,
        [0, 0, ..., 0, 0],
        [0, 0, ..., 0, 0]]], dtype=uint8)
Coordinates:
  * band     (band) int32 1
  * y        (y) float64 -33.9 -33.95 -34.0 -34.05 ... -39.05 -39.1 -39.15 -39.2
  * x        (x) float64 140.8 140.8 140.9 140.9 ... 149.9 149.9 150.0 150.0
Attributes:
    transform:   (0.04791259799999997, 0.0, 140.776046753, 0.0, -0.0504760740...
    crs:         +init=epsg:4326
    res:         (0.04791259799999997, 0.05047607400000004)
    is_tiled:    1
    nodatavals:  (255.0,)

В rio y и x обозначают широту и долготу соответственно.

Чего я хочу добиться, так это повторно сэмплировать rio, применяя координаты широты и долготы da_ffdi к координатам y и x rio. Метод передискретизации будет «ближайшим». Также «y» необходимо переименовать в «широту», а «x» - в «долготу».

Таким образом, полученный объект rio будет:

rio
Out[59]: 
<xarray.DataArray (band: 1, latitude: 106, longitude: 193)>
array([[[0, 0, ..., 0, 0],
        [0, 0, ..., 0, 0],
        ...,
        [0, 0, ..., 0, 0],
        [0, 0, ..., 0, 0]]], dtype=uint8)
Coordinates:
  * band     (band) int32 1
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
Attributes:
    transform:   (0.04791259799999997, 0.0, 140.776046753, 0.0, -0.0504760740...
    crs:         +init=epsg:4326
    res:         (0.04791259799999997, 0.05047607400000004)
    is_tiled:    1
    nodatavals:  (255.0,)

Мне нужно несколько указаний о том, через какие шаги пройти, а также о том, какие встроенные функции xarray мне нужно будет использовать.

...