cumulative_integrate

UnitsAwareDataArray.cumulative_integrate(coord: Hashable | Sequence[Hashable] = None, datetime_unit: DatetimeUnitOptions = None) Self

Integrate cumulatively along the given coordinate using the trapezoidal rule.

Note

This feature is limited to simple cartesian geometry, i.e. coord must be one dimensional.

The first entry of the cumulative integral is always 0, in order to keep the length of the dimension unchanged between input and output.

Parameters:
  • coord (Hashable, or sequence of Hashable) – Coordinate(s) used for the integration.

  • datetime_unit ({'Y', 'M', 'W', 'D', 'h', 'm', 's', 'ms', 'us', 'ns', 'ps', 'fs', 'as', None}, optional) – Specify the unit if a datetime coordinate is used.

Returns:

integrated

Return type:

DataArray

See also

Dataset.cumulative_integrate

scipy.integrate.cumulative_trapezoid

corresponding scipy function

Examples

>>> da = xr.DataArray(
...     np.arange(12).reshape(4, 3),
...     dims=["x", "y"],
...     coords={"x": [0, 0.1, 1.1, 1.2]},
... )
>>> da
<xarray.DataArray (x: 4, y: 3)> Size: 96B
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
Coordinates:
  * x        (x) float64 32B 0.0 0.1 1.1 1.2
Dimensions without coordinates: y
>>>
>>> da.cumulative_integrate("x")
<xarray.DataArray (x: 4, y: 3)> Size: 96B
array([[0.  , 0.  , 0.  ],
       [0.15, 0.25, 0.35],
       [4.65, 5.75, 6.85],
       [5.4 , 6.6 , 7.8 ]])
Coordinates:
  * x        (x) float64 32B 0.0 0.1 1.1 1.2
Dimensions without coordinates: y