def concat_instances(data_sets: Iterable[DataSet]) -> DataSet:
"""
Concatenates the specified data sets along the instance dimension.
All data sets must have exactly matching metadata.
Parameters
----------
data_sets: list of DataSet
The data sets to concatenate
Returns
-------
DataSet
A new data set containing all instances in the specified data sets
"""
# noinspection PyProtectedMember
mutable = all([data_set._mutable for data_set in data_sets])
filenames = np.concatenate([data_set._data[_DataVar.FILENAME].values for data_set in data_sets])
if len(np.unique(filenames)) != len(filenames):
raise ValueError("data sets contain duplicate instances - refusing to concatenate")
# noinspection PyProtectedMember
new_data = xr.concat([data_set._data for data_set in data_sets],
dim=_Dimension.INSTANCE,
data_vars="minimal",
compat="identical")
# noinspection PyTypeChecker
return DataSet(data=new_data,
mutable=mutable)
评论列表
文章目录