Объединение массивов данных разного размера в xarray - PullRequest
0 голосов
/ 19 июня 2020

Я хотел бы объединить два массива данных в соответствии с latlon и выбрать более высокий при дублировании.

Два массива данных выглядят следующим образом:

<xarray.DataArray 'Location A' (lat: 1850, lon: 1300)>
array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])
Coordinates:
  * lat      (lat) float32 22.5 22.49 22.48 22.47 ... 4.03 4.02 4.01
  * lon      (lon) float32 95.0 95.01 95.02 95.03 ... 107.97 107.98 107.99
<xarray.DataArray 'Location B' (lat: 721, lon: 481)>
array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])
Coordinates:
  * lat      (lat) float32 24.5 24.475 24.45 24.425 ... 6.575 6.55 6.525 6.5
  * lon      (lon) float32 100.0 100.025 100.05 100.075 ... 111.95 111.975 112.0

Два массива имеют разный размер и пространственное разрешение (размер сетки). Я пробовал xr.concat xr.merge xr.combine_first xr.combine_by_coords xr.combine_nested, чтобы объединить их. Однако все они не работали.

Итак, как я могу преобразовать латлон в ту же шкалу, чтобы я мог объединить свои данные?

1 Ответ

0 голосов
/ 02 июля 2020

Роберт был прав

Вы можете сделать это:

locB_interp = locB.interp_like(locA)

dset = xr.merge([locA, locB_interp])

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...