scipp.merge#

scipp.merge(lhs, rhs)#

Merge two datasets or data groups into one.

If an item appears in both inputs, it must have an identical value in both.

Parameters:
  • lhs (Dataset | DataGroup) – First dataset or data group.

  • rhs (Dataset | DataGroup) – Second dataset or data group.

Returns:

Dataset | DataGroup – A new object that contains the union of all data items, coords, masks and attributes.

Raises:

scipp.DatasetError – If there are conflicting items with different content.

Examples

Merge two datasets with different data items:

>>> import scipp as sc
>>> ds1 = sc.Dataset(data={'a': sc.scalar(1, unit='m'), 'b': sc.scalar(2, unit='s')})
>>> ds2 = sc.Dataset(data={'c': sc.scalar(3, unit='K'), 'd': sc.scalar(4, unit='kg')})
>>> sc.merge(ds1, ds2)
<scipp.Dataset>
Dimensions: Sizes[]
Data:
  a                           int64              [m]  ()  1
  b                           int64              [s]  ()  2
  c                           int64              [K]  ()  3
  d                           int64             [kg]  ()  4

Identical items in both inputs are allowed:

>>> ds3 = sc.Dataset(data={'a': sc.scalar(1, unit='m'), 'e': sc.scalar(5, unit='A')})
>>> sc.merge(ds1, ds3)
<scipp.Dataset>
Dimensions: Sizes[]
Data:
  a                           int64              [m]  ()  1
  b                           int64              [s]  ()  2
  e                           int64              [A]  ()  5