patio.model.colo_resources

Attributes

Classes

ParamVarLike

Base class for protocol classes.

MultiXCapShim

Work with multiple cvxpy.Variable objects as if they were one.

DecisionVariable

Load

ConstantLoad

Returns:

EndogenousLoad

Returns:

FlexLoad

Returns:

Storage

_StorageCostCapShim

This allows storage duration to be a parameter while preserving the

FixedDurationStorage

x_s, x_dt, x_ct, x_st

FeStorage

x_s, x_dt, x_ct, x_st

EndogenousDurationStorage

x_d, x_s, x_dt, x_ct, x_st

ThermalStorageLoad

Charges thermal storage to meet a constant (thermal) load.

DecoupledStorage

x_d, x_c, x_s, x_dt, x_ct, x_st

Renewables

x_j

Curtailment

CleanExport

Fossil

IncumbentFossil

x_lt x_ft

ExportOnlyIncumbentFossil

x_ft

LoadOnlyFossil

x_f x_lt

LoadOnlyFossilWithBackupFuel

x_f x_lt

DCBackupFossil

x_f x_lt

Functions

check_shape()

is_resource_selection(yr)

product(*cols[, ignore_nulls])

Module Contents

class patio.model.colo_resources.ParamVarLike[source]

Bases: Protocol

Base class for protocol classes.

Protocol classes are defined as:

class Proto(Protocol):
    def meth(self) -> int:
        ...

Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).

For example:

class C:
    def meth(self) -> int:
        return 0

def func(x: Proto) -> int:
    return x.meth()

func(C())  # Passes static type check

See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:

class GenProto[T](Protocol):
    def meth(self) -> T:
        ...
size: int[source]
shape: tuple[int, Ellipsis][source]
name: str[source]
value: numpy.ndarray[source]
patio.model.colo_resources.validators[source]
patio.model.colo_resources.check_shape()[source]
patio.model.colo_resources.is_resource_selection(yr)[source]
Parameters:

yr (tuple)

patio.model.colo_resources.product(*cols, ignore_nulls=False)[source]
class patio.model.colo_resources.MultiXCapShim[source]

Bases: tuple

Work with multiple cvxpy.Variable objects as if they were one.

Initialize self. See help(type(self)) for accurate signature.

property value[source]
class patio.model.colo_resources.DecisionVariable(m)[source]
Parameters:

m (colo_lp.Model)

_var_names = ()[source]
_cat = ''[source]
_dz[source]
m: colo_lp.Model[source]
x[source]
cost[source]
cost_cap[source]
x_cap = None[source]
sqkm_per_mw = None[source]
property var_names[source]
property cat[source]
property cap_names: tuple[source]
Return type:

tuple

property dur: ParamVarLike | types.NotImplementedType[source]
Return type:

ParamVarLike | types.NotImplementedType

property cap_summary: dict[source]
Return type:

dict

set_x_cap(cap_summary, re_selected, *args)[source]
round()[source]
get_x(yr)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Variable

hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

clean_cost()[source]
Return type:

float

c_mw_all()[source]
Return type:

polars.DataFrame | None

c_hourly(selection=False)[source]
Return type:

polars.LazyFrame | None

_h_core(rs, in_dict, prefix='', func=lambda x: ...)[source]
Return type:

polars.LazyFrame

full_ptc()[source]
annual_gen()[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

export_req(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

clean_export(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

icx_ops(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

land(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

gas_window_max(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

stored_fuel(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

backup_annual(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map)[source]
Parameters:
Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

ptc(yr)[source]
Parameters:

yr (tuple)

Return type:

float

mk_obj_cost(cost_df, yr, yr_fact_map, *args)[source]
Parameters:
  • cost_df (DecisionVariable.mk_obj_cost.T)

  • yr (tuple)

  • yr_fact_map (dict)

Return type:

DecisionVariable.mk_obj_cost.T

__eq__(other)[source]
Parameters:

other (Self)

Return type:

bool

__repr__()[source]
Return type:

str

_get_prof(attr)[source]
Parameters:

attr (str)

_set_prof(obj, attr)[source]
_get_x_cap()[source]
_set_x_cap(other)[source]
_get_cost_cap()[source]
_set_cost_cap(other)[source]
_dzgetstate_()[source]
_dzsetstate_(state)[source]
Parameters:

state (dict)

Return type:

None

class patio.model.colo_resources.Load(m, sqkm_per_mw, ld_value)[source]

Bases: DecisionVariable

Parameters:
_var_names = ('load',)[source]
_cat = 'load'[source]
x_cap: ParamVarLike[source]
sqkm_per_mw[source]
ld_value[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

common_hrly_constraint(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

types.NotImplementedType | cvxpy.Expression

load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

land(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

class patio.model.colo_resources.ConstantLoad(m, sqkm_per_mw, ld_value, x_cap)[source]

Bases: Load

Returns: object:

Parameters:
x_cap[source]
common_hrly_constraint(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

class patio.model.colo_resources.EndogenousLoad(m, sqkm_per_mw=1 / 247, ld_value=1000, x_cap=None)[source]

Bases: Load

Returns: object:

Parameters:
_dz[source]
x_cap[source]
round()[source]
set_x_cap(cap_summary, re_selected, *args)[source]
common_hrly_constraint(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.FlexLoad(m, sqkm_per_mw=1 / 247, ld_value=1000, uptime=0.5, min_load=0.5, x_cap=None)[source]

Bases: Load

Returns: object:

Parameters:
_dz[source]
x_cap[source]
uptime[source]
min_load[source]
round()[source]
set_x_cap(cap_summary, re_selected, *args)[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

common_hrly_constraint(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.Storage(m, d_eff, c_eff, l_eff, pre_charge, opex_mult, min_soc_hrs)[source]

Bases: DecisionVariable

Parameters:

m (colo_lp.Model)

sum_cols = ('capex_raw', 'opex_raw', 'capex__oc', 'opex__oc', 'total__oc')[source]
max_cols = ('dur', 'life_adj', 'itc_adj', 'reg_mult', 'tx_capex_raw', 'distance', 'ptc', 'ptc_gen')[source]
_var_names = ('discharge', 'charge', 'soc')[source]
_cat = 'storage'[source]
_type = ''[source]
_dz[source]
d_ef: float[source]
c_ef: float[source]
l_ef: float[source]
pre_charge[source]
min_soc_hrs[source]
opex_mult: float[source]
cost_df[source]
property cat[source]
property var_names[source]
round()[source]
property dur: ParamVarLike[source]
Return type:

ParamVarLike

load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

clean_export(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

opex_oc(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

numpy.ndarray

class patio.model.colo_resources._StorageCostCapShim(dv)[source]

This allows storage duration to be a parameter while preserving the general interface for DecisionVariable.cap_cost

Parameters:

dv (FixedDurationStorage)

dv[source]
__getitem__(yr)[source]
items()[source]
pop(key, default=None)[source]
class patio.model.colo_resources.FixedDurationStorage(m, d_eff=COSTS['eff']['d'], c_eff=COSTS['eff']['c'], l_eff=COSTS['eff']['l'], pre_charge=0.5, opex_mult=0.8 / 30, duration=8, x_cap=None, min_soc_hrs=0)[source]

Bases: Storage

x_s, x_dt, x_ct, x_st

Parameters:
_type = 'li'[source]
_dz[source]
_dur[source]
yr_fact_map[source]
x_cap[source]
cost_cap[source]
property cap_summary[source]
set_x_cap(cap_summary, re_selected, *args)[source]
single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.FeStorage(m, pre_charge=0.5, x_cap=None, min_soc_hrs=0)[source]

Bases: Storage

x_s, x_dt, x_ct, x_st

Parameters:
_dz[source]
_type = 'fe'[source]
cost_df[source]
_dur[source]
x_cap[source]
cost_cap[source]
property cap_summary[source]
set_x_cap(cap_summary, re_selected, *args)[source]
for_econ()[source]
Return type:

list[polars.LazyFrame]

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.EndogenousDurationStorage(m, d_eff=COSTS['eff']['d'], c_eff=COSTS['eff']['c'], l_eff=COSTS['eff']['l'], pre_charge=0.5, opex_mult=0.8 / 30, x_cap=None, min_soc_hrs=0)[source]

Bases: Storage

x_d, x_s, x_dt, x_ct, x_st

Parameters:
_type = 'li'[source]
_dz[source]
x_cap[source]
property cap_names: tuple[source]
Return type:

tuple

property cap_summary: dict[str, float][source]
Return type:

dict[str, float]

set_x_cap(cap_summary, re_selected, *args)[source]
for_econ()[source]
round()[source]
property dur: ParamVarLike[source]
Return type:

ParamVarLike

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.ThermalStorageLoad(m, d_eff=0.5, c_eff=1.0, l_eff=0.01, pre_charge=0.5, opex_mult=0.025, x_cap=None, const_load=10.0, min_soc_hrs=0)[source]

Bases: Storage

Charges thermal storage to meet a constant (thermal) load.

x_d, x_c, x_s, x_ct, x_st

Parameters:
_type = 'thermal'[source]
_dz[source]
cost_df[source]
const_load = 10.0[source]
x_cap[source]
property cap_names: tuple[source]
Return type:

tuple

property cap_summary[source]
set_x_cap(cap_summary, re_selected, *args)[source]
property dur: ParamVarLike[source]
Return type:

ParamVarLike

hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

clean_export(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.DecoupledStorage(m, d_eff=0.5, c_eff=1.0, l_eff=0.01, pre_charge=0.5, opex_mult=0.025, x_cap=None, min_soc_hrs=0)[source]

Bases: Storage

x_d, x_c, x_s, x_dt, x_ct, x_st

Parameters:
_type = 'long'[source]
_dz[source]
cost_df[source]
x_cap[source]
property cap_names: tuple[source]
Return type:

tuple

property cap_summary[source]
property dur: ParamVarLike[source]
Return type:

ParamVarLike

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.Renewables(m, x_cap=None)[source]

Bases: DecisionVariable

x_j

Parameters:

x_cap (numpy.ndarray | None)

_cat = 'renewables'[source]
_dz[source]
x_cap[source]
cost_df[source]
round()[source]
property cap_summary: dict[source]
Return type:

dict

set_x_cap(cap_summary, re_selected, *args)[source]
property cap_names: tuple[source]
Return type:

tuple

get_x(yr)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Variable

hourly(*, selection=False, by_type=True)[source]
Return type:

polars.LazyFrame

full_ptc()[source]
Return type:

dict

annual_gen()[source]
Return type:

cvxpy.Expression

common_hrly_constraint(yr)[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

clean_export(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

land(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.Curtailment(m, min_cost=0.0)[source]

Bases: DecisionVariable

_var_names = ('curtailment',)[source]
_cat = 'curtailment'[source]
_dz[source]
min_cost = 0.0[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.CleanExport(m)[source]

Bases: DecisionVariable

_var_names = ('export_clean',)[source]
_cat = 'export'[source]
_dz[source]
cost_ = [][source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

export_req(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

clean_export(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

icx_ops(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.Fossil(m, mcoe=None)[source]

Bases: DecisionVariable

Parameters:

mcoe (polars.DataFrame | None)

mcoe = None[source]
for_co2[source]
cost_w_penalty[source]
property tech[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

class patio.model.colo_resources.IncumbentFossil(m, mcoe=None)[source]

Bases: Fossil

x_lt x_ft

Parameters:

mcoe (polars.DataFrame | None)

_var_names = ('load_fossil', 'export_fossil')[source]
_cat = 'fossil'[source]
_dz[source]
property cap_summary: dict[source]
Return type:

dict

load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

export_req(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

icx_ops(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

gas_window_max(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

__repr__()[source]
Return type:

str

class patio.model.colo_resources.ExportOnlyIncumbentFossil(m, mcoe=None)[source]

Bases: Fossil

x_ft

Parameters:

mcoe (polars.DataFrame | None)

_var_names = ('export_fossil',)[source]
_cat = 'export_fossil'[source]
_dz[source]
property cap_summary: dict[source]
Return type:

dict

export_req(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

icx_ops(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

gas_window_max(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.LoadOnlyFossil(m, mcoe=None, tech='nggt', x_cap=None)[source]

Bases: Fossil

x_f x_lt

Parameters:
  • mcoe (polars.DataFrame | None)

  • x_cap (float | None)

_var_names = ('load_fossil',)[source]
_cat = 'fossil'[source]
_dz[source]
_tech = 'nggt'[source]
cost_df[source]
x_cap[source]
property tech[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

property cap_summary: dict[source]
Return type:

dict

set_x_cap(cap_summary, re_selected, *args)[source]
round()[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

gas_window_max(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.LoadOnlyFossilWithBackupFuel(m, mcoe=None, tech='nggt', x_cap=None)[source]

Bases: Fossil

x_f x_lt

Parameters:
  • mcoe (polars.DataFrame | None)

  • x_cap (float | None)

_var_names = ('load_fossil', 'load_stored_fuel')[source]
_cat = 'fossil'[source]
_dz[source]
_tech = 'nggt'[source]
cost_df[source]
x_cap[source]
property tech[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

property cap_summary: dict[source]
Return type:

dict

set_x_cap(cap_summary, re_selected, *args)[source]
round()[source]
common_hrly_constraint(yr)[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

gas_window_max(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

stored_fuel(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

single_dv(yr, soc_ixs, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]

class patio.model.colo_resources.DCBackupFossil(m, mcoe=None, tech='rice')[source]

Bases: Fossil

x_f x_lt

Parameters:

mcoe (polars.DataFrame | None)

_var_names = ('backup',)[source]
_cat = 'backup'[source]
_dz[source]
_tech = 'rice'[source]
property tech[source]
hourly(*, selection=False, **kwargs)[source]
Return type:

polars.LazyFrame

property cap_summary: dict[source]
Return type:

dict

common_hrly_constraint(yr)[source]
load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

critical(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_load_hrly(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

fossil_hist(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

stored_fuel(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

backup_annual(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

objective(yr, yr_fact_map, *args)[source]
Parameters:

yr (tuple)

Return type:

cvxpy.Expression

bounds(yr, *args)[source]
Parameters:

yr (tuple)

Return type:

tuple[cvxpy.Constraint, Ellipsis]