Loss methods

Initial and constant loss method.

class pyrunoff.loss.initial_and_constant.InitialConstantOutput(excess, total_loss)[source]

Bases: object

Excess rainfall and loss series produced by the initial-constant model.

Parameters:
class pyrunoff.loss.initial_and_constant.InitialConstant(rainfall_series, initial_loss, constant_loss, reset_initial_duration=None)[source]

Bases: object

Apply an initial loss followed by a constant rainfall loss rate.

Parameters:
  • rainfall_series (RainfallSeries) – Incremental rainfall series in inches.

  • initial_loss (float) – Initial loss depth in inches.

  • constant_loss (float) – Constant loss rate in inches per hour.

  • reset_initial_duration (timedelta | Timedelta | None) – Optional dry duration after which the initial loss is restored.

update_params(initial_loss=None, constant_loss=None)[source]

Validate and update any supplied loss parameters.

Parameters left as None keep their current values.

Parameters:
  • initial_loss (float | None) – Initial loss depth in inches.

  • constant_loss (float | None) – Constant loss rate in inches per hour.

Raises:

ValueError – If a supplied value is negative.

route()[source]

Separate rainfall into excess and total-loss series.

Returns:

Typed output holding the excess and total-loss series.

Return type:

InitialConstantOutput

Deficit and constant loss method.

class pyrunoff.loss.deficit_and_constant.DeficitConstantOutput(excess, deficit, constant_loss, total_loss)[source]

Bases: object

Output series produced by the deficit-constant loss model.

Parameters:
  • excess (RainfallSeries) – Rainfall remaining after all losses.

  • deficit (RainfallSeries) – Soil-moisture deficit at each time step.

  • constant_loss (RainfallSeries) – Constant loss applied at each time step.

  • total_loss (RainfallSeries) – Total rainfall loss at each time step.

class pyrunoff.loss.deficit_and_constant.DeficitConstant(rainfall_series, max_deficit, constant_loss, recovery_time=None, recover_deficit=True, initial_deficit=0)[source]

Bases: object

Apply soil-moisture deficit and constant-rate losses to rainfall.

Parameters:
  • rainfall_series (RainfallSeries) – Incremental rainfall series in inches.

  • max_deficit (float) – Maximum soil-moisture deficit in inches.

  • constant_loss (float) – Constant loss rate applied to excess rainfall, in inches per hour.

  • recovery_time (timedelta | Timedelta | None) – Duration for the deficit to recover to 99% of its maximum during dry periods.

  • recover_deficit (bool) – Whether to recover the deficit during dry time steps.

  • initial_deficit (float) – Starting soil-moisture deficit in inches, clipped to the range from zero to max_deficit.

update_params(max_deficit=None, constant_loss=None, recovery_time=None, recover_deficit=None, initial_deficit=None)[source]

Validate and update any supplied loss-model parameters.

Parameters left as None keep their current values.

Parameters:
  • max_deficit (float | None) – Maximum soil-moisture deficit in inches.

  • constant_loss (float | None) – Constant loss rate in inches per hour.

  • recovery_time (timedelta | None) – Duration for the deficit to recover to 99% of its maximum.

  • recover_deficit (bool | None) – Whether the deficit recovers during dry steps.

  • initial_deficit (float | None) – Starting soil-moisture deficit in inches.

Raises:

ValueError – If a supplied value is invalid.

route()[source]

Return excess rainfall, deficit, and applied loss series.

Returns:

Typed output holding the excess, deficit and loss series.

Return type:

DeficitConstantOutput