Как работает объединение данных с помощью xarray, когда отдельные наборы данных имеют разные значения для одной и той жеPython

Программы на Python
Anonymous
Как работает объединение данных с помощью xarray, когда отдельные наборы данных имеют разные значения для одной и той же

Сообщение Anonymous »

У меня есть случай, когда я пытаюсь объединить несколько наборов данных в один объединенный набор данных. Каждый набор данных соответствует экземпляру эксперимента. Однако экземпляры могут иметь разные значения вдоль главной оси координат. Чтобы привести пример набора данных о температуре и давлении, измеренных в двух домах с разными наборами комнат:

Код: Выделить всё

import numpy as np
import xarray as xr

houses = ["House_0", "House_1"]
ds = []

for house in houses:
if house == "House_0":
rooms = ["Kitchen", "Bedroom", "Lounge"]
elif house == "House_1":
rooms = ["Garage", "Bathroom", "Basement"]

temperature = np.random.rand(len(rooms))
pressure = np.random.rand(len(rooms))

coords_label = "".join(["Rooms_", house])

ds.append(xr.Dataset({
"Temperature": ([coords_label], temperature),
"Pressure": ([coords_label], pressure)
},
coords={coords_label: rooms}
))

hs = xr.Variable("House", houses)
data = xr.concat(ds, hs)

Я ожидаю, что data.sel({"House": "House_0"}) вернет массив (3,2), соответствующий значениям температуры и давления для комнаты в ["Кухня", "Спальня", "Гостиная"]. Вместо этого он дает массив (3,3,2) с этими значениями, дублированными также для координат в ["Гараж", "Ванная комната", "Подвал")], которые являются значениями для оси координат, которые мне нужны. ассоциироваться с "Дом_1".

Код: Выделить всё

>>> data.sel({"House": "House_0"})

 Size: 352B
Dimensions:        (Rooms_House_0: 3, Rooms_House_1: 3)
Coordinates:
* Rooms_House_0  (Rooms_House_0) 

Подробнее здесь: [url]https://stackoverflow.com/questions/78409668/how-does-data-concatenation-with-xarray-work-when-individual-datasets-have-diffe[/url]

Вернуться в «Python»