Merge branch 'master' of github.com:PyPSA/pypsa-eur
This commit is contained in:
commit
3b20b5c642
@ -451,6 +451,7 @@ sector:
|
||||
coal_cc: false
|
||||
dac: true
|
||||
co2_vent: false
|
||||
central_heat_vent: false
|
||||
allam_cycle: false
|
||||
hydrogen_fuel_cell: true
|
||||
hydrogen_turbine: false
|
||||
@ -878,6 +879,7 @@ plotting:
|
||||
services rural heat: '#ff9c9c'
|
||||
central heat: '#cc1f1f'
|
||||
urban central heat: '#d15959'
|
||||
urban central heat vent: '#a74747'
|
||||
decentral heat: '#750606'
|
||||
residential urban decentral heat: '#a33c3c'
|
||||
services urban decentral heat: '#cc1f1f'
|
||||
|
@ -30,6 +30,9 @@ snapshots:
|
||||
start: "2013-03-01"
|
||||
end: "2013-03-08"
|
||||
|
||||
sector:
|
||||
central_heat_vent: true
|
||||
|
||||
electricity:
|
||||
co2limit: 100.e+6
|
||||
|
||||
|
@ -44,6 +44,7 @@ electricity:
|
||||
sector:
|
||||
min_part_load_fischer_tropsch: 0
|
||||
min_part_load_methanolisation: 0
|
||||
|
||||
atlite:
|
||||
default_cutout: be-03-2013-era5
|
||||
cutouts:
|
||||
|
@ -28,6 +28,16 @@ idx = pd.IndexSlice
|
||||
opt_name = {"Store": "e", "Line": "s", "Transformer": "s"}
|
||||
|
||||
|
||||
def reindex_columns(df, cols):
|
||||
investments = cols.levels[3]
|
||||
if len(cols.names) != len(df.columns.levels):
|
||||
df = pd.concat([df] * len(investments), axis=1)
|
||||
df.columns = cols
|
||||
df = df.reindex(cols, axis=1)
|
||||
|
||||
return df
|
||||
|
||||
|
||||
def calculate_costs(n, label, costs):
|
||||
investments = n.investment_periods
|
||||
cols = pd.MultiIndex.from_product(
|
||||
@ -39,7 +49,8 @@ def calculate_costs(n, label, costs):
|
||||
],
|
||||
names=costs.columns.names[:3] + ["year"],
|
||||
)
|
||||
costs = costs.reindex(cols, axis=1)
|
||||
|
||||
costs = reindex_columns(costs, cols)
|
||||
|
||||
for c in n.iterate_components(
|
||||
n.branch_components | n.controllable_one_port_components ^ {"Load"}
|
||||
@ -176,7 +187,7 @@ def calculate_capacities(n, label, capacities):
|
||||
],
|
||||
names=capacities.columns.names[:3] + ["year"],
|
||||
)
|
||||
capacities = capacities.reindex(cols, axis=1)
|
||||
capacities = reindex_columns(capacities, cols)
|
||||
|
||||
for c in n.iterate_components(
|
||||
n.branch_components | n.controllable_one_port_components ^ {"Load"}
|
||||
@ -229,7 +240,7 @@ def calculate_energy(n, label, energy):
|
||||
],
|
||||
names=energy.columns.names[:3] + ["year"],
|
||||
)
|
||||
energy = energy.reindex(cols, axis=1)
|
||||
energy = reindex_columns(energy, cols)
|
||||
|
||||
for c in n.iterate_components(n.one_port_components | n.branch_components):
|
||||
if c.name in n.one_port_components:
|
||||
@ -336,7 +347,7 @@ def calculate_supply_energy(n, label, supply_energy):
|
||||
],
|
||||
names=supply_energy.columns.names[:3] + ["year"],
|
||||
)
|
||||
supply_energy = supply_energy.reindex(cols, axis=1)
|
||||
supply_energy = reindex_columns(supply_energy, cols)
|
||||
|
||||
bus_carriers = n.buses.carrier.unique()
|
||||
|
||||
@ -604,7 +615,7 @@ def calculate_price_statistics(n, label, price_statistics):
|
||||
price_statistics.at["mean", label] = n.buses_t.marginal_price[buses].mean().mean()
|
||||
|
||||
price_statistics.at["standard_deviation", label] = (
|
||||
n.buses_t.marginal_price[buses].droplevel(0).unstack().std()
|
||||
n.buses_t.marginal_price[buses].std().std()
|
||||
)
|
||||
|
||||
return price_statistics
|
||||
|
@ -1693,6 +1693,18 @@ def add_heat(n, costs):
|
||||
unit="MWh_th",
|
||||
)
|
||||
|
||||
if name == "urban central" and options.get("central_heat_vent"):
|
||||
n.madd(
|
||||
"Generator",
|
||||
nodes[name] + f" {name} heat vent",
|
||||
location=nodes[name],
|
||||
carrier=name + " heat vent",
|
||||
p_nom_extendable=True,
|
||||
p_max_pu=0,
|
||||
p_min_pu=-1,
|
||||
unit="MWh_th",
|
||||
)
|
||||
|
||||
## Add heat load
|
||||
|
||||
for sector in sectors:
|
||||
|
Loading…
Reference in New Issue
Block a user