reforumlate constraint
This commit is contained in:
parent
2d2b0338cc
commit
a9be2825ec
@ -230,28 +230,21 @@ def add_solar_potential_constraints(n, config):
|
|||||||
}
|
}
|
||||||
rename = {"Generator-ext": "Generator"}
|
rename = {"Generator-ext": "Generator"}
|
||||||
|
|
||||||
gen_index = n.generators[n.generators.p_nom_extendable].index
|
solar_carriers = ["solar", "solar-hsat"]
|
||||||
filters = [
|
solar = n.generators[n.generators.carrier.isin(solar_carriers)
|
||||||
("solar", True),
|
& n.generators.p_nom_extendable].index
|
||||||
("thermal", False),
|
|
||||||
("rooftop", False),
|
|
||||||
] ## filter all utility solar generation except solar thermal
|
|
||||||
solar = reduce(
|
|
||||||
lambda gen_index, f: gen_index[gen_index.str.contains(f[0]) == f[1]],
|
|
||||||
filters,
|
|
||||||
gen_index,
|
|
||||||
)
|
|
||||||
solar_today = n.generators[
|
solar_today = n.generators[
|
||||||
(n.generators.carrier == "solar") & (n.generators.p_nom_extendable)
|
(n.generators.carrier == "solar") & (n.generators.p_nom_extendable)
|
||||||
].index
|
].index
|
||||||
solar_hsat = n.generators[(n.generators.carrier == "solar-hsat")].index
|
solar_hsat = n.generators[(n.generators.carrier == "solar-hsat")].index
|
||||||
|
|
||||||
if not solar.empty:
|
if solar.empty: return
|
||||||
|
|
||||||
land_use = pd.DataFrame(1, index=solar, columns=["land_use_factor"])
|
land_use = pd.DataFrame(1, index=solar, columns=["land_use_factor"])
|
||||||
for key in land_use_factors.keys():
|
for carrier, factor in land_use_factors.items():
|
||||||
land_use = land_use.apply(
|
land_use = land_use.apply(
|
||||||
lambda x: (x * land_use_factors[key]) if key in x.name else x, axis=1
|
lambda x: (x * factor) if carrier in x.name else x, axis=1
|
||||||
)
|
)
|
||||||
|
|
||||||
if "m" in snakemake.wildcards.clusters:
|
if "m" in snakemake.wildcards.clusters:
|
||||||
@ -277,9 +270,7 @@ def add_solar_potential_constraints(n, config):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
location = (
|
location = (
|
||||||
n.buses.location
|
pd.Series(n.buses.index, index=n.buses.index)
|
||||||
if "location" in n.buses.columns
|
|
||||||
else pd.Series(n.buses.index, index=n.buses.index)
|
|
||||||
)
|
)
|
||||||
ggrouper = n.generators.loc[solar].bus
|
ggrouper = n.generators.loc[solar].bus
|
||||||
rhs = (
|
rhs = (
|
||||||
@ -295,7 +286,7 @@ def add_solar_potential_constraints(n, config):
|
|||||||
lhs = (
|
lhs = (
|
||||||
(
|
(
|
||||||
n.model["Generator-p_nom"].rename(rename).loc[solar]
|
n.model["Generator-p_nom"].rename(rename).loc[solar]
|
||||||
* land_use.squeeze().values
|
* land_use.squeeze()
|
||||||
)
|
)
|
||||||
.groupby(ggrouper)
|
.groupby(ggrouper)
|
||||||
.sum()
|
.sum()
|
||||||
@ -1053,13 +1044,13 @@ if __name__ == "__main__":
|
|||||||
from _helpers import mock_snakemake
|
from _helpers import mock_snakemake
|
||||||
|
|
||||||
snakemake = mock_snakemake(
|
snakemake = mock_snakemake(
|
||||||
"solve_sector_network",
|
"solve_network",
|
||||||
configfiles="../config/test/config.perfect.yaml",
|
configfiles="../config/test/config.electricity.yaml",
|
||||||
simpl="",
|
simpl="",
|
||||||
opts="",
|
opts="",
|
||||||
clusters="37",
|
clusters="5",
|
||||||
ll="v1.0",
|
ll="v1.5",
|
||||||
sector_opts="CO2L0-1H-T-H-B-I-A-dist1",
|
sector_opts="Co2L-24h",
|
||||||
planning_horizons="2030",
|
planning_horizons="2030",
|
||||||
)
|
)
|
||||||
configure_logging(snakemake)
|
configure_logging(snakemake)
|
||||||
|
Loading…
Reference in New Issue
Block a user