linopy.piecewise.breakpoints

Contents

linopy.piecewise.breakpoints#

linopy.piecewise.breakpoints(values=None, *, slopes=None, x_points=None, y0=None, dim=None)#

Create a breakpoint DataArray for piecewise linear constraints.

Two modes (mutually exclusive):

Points mode: breakpoints(values, ...)

Slopes mode: breakpoints(slopes=..., x_points=..., y0=...)

Parameters:
  • values (BreaksLike, optional) – Breakpoint values. Accepted types: Sequence[float], pd.Series, pd.DataFrame, or xr.DataArray. A 1D input (list, Series) creates 1D breakpoints. A 2D input (DataFrame, multi-dim DataArray) creates per-entity breakpoints (dim is required for DataFrame).

  • slopes (BreaksLike, optional) – Segment slopes. Mutually exclusive with values.

  • x_points (BreaksLike, optional) – Breakpoint x-coordinates. Required with slopes.

  • y0 (float, dict, pd.Series, or DataArray, optional) – Initial y-value. Required with slopes. A scalar broadcasts to all entities. A dict/Series/DataArray provides per-entity values.

  • dim (str, optional) – Entity dimension name. Required when values or slopes is a pd.DataFrame or dict.

Returns:

DataArray