xarray - применение функции стека к DataArray привело к изменению типа данных по координатам - PullRequest
0 голосов
/ 19 февраля 2019

Мой оригинальный xarray.DataArray da:

<xarray.DataArray (time: 744, latitude: 106, longitude: 193)>
dask.array<shape=(744, 106, 193), dtype=float64, chunksize=(2, 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] 2017-01-01 ... 2017-01-31T23:00:00

Я применил к нему стек ():

da_stacked = da.stack(z=['time', 'latitude', 'longitude'])

В результате значения широты и долготы изменились с float32 на float64и их точность данных потеряна.

Теперь da_stacked становится:

<xarray.DataArray (z: 15220752)>
dask.array<shape=(15220752,), dtype=float64, chunksize=(40916,)>
Coordinates:
  * z          (z) MultiIndex
  - time       (z) datetime64[ns] 2017-01-01 2017-01-01 ... 2017-01-01
  - latitude   (z) float64 -39.2 -39.2 -39.2 -39.2 ... -39.2 -39.2 -39.2 -39.2
  - longitude  (z) float64 140.8 140.8 140.9 140.9 ... 142.0 142.1 142.1 142.2

Как сохранить координаты такими же, как у входного объекта при применении функции стека?

...