prepare_sector_network: reorder buses for dac components

This commit is contained in:
Fabian 2024-01-26 12:10:39 +01:00
parent 03e1ed6e79
commit ae825d82dc
3 changed files with 14 additions and 12 deletions

View File

@ -37,6 +37,8 @@ Upcoming Release
* Add the option to customise map projection in plotting config.
* The order of buses (bus0, bus1, ...) for DAC components has changed to meet the convention of the other components. Therefore, `bus0` refers to the electricity bus (input), `bus1` to the heat bus (input), 'bus2' to the CO2 atmosphere bus (input), and `bus3` to the CO2 storage bus (output).
PyPSA-Eur 0.9.0 (5th January 2024)
==================================

View File

@ -288,7 +288,7 @@ def attach_load(n, regions, load, nuts3_shapes, ua_md_gdp, countries, scaling=1.
ua_md_gdp = pd.read_csv(ua_md_gdp, dtype={"name": "str"}).set_index("name")
logger.info(f"Load data scaled with scalling factor {scaling}.")
logger.info(f"Load data scaled by factor {scaling}.")
opsd_load *= scaling
nuts3 = gpd.read_file(nuts3_shapes).set_index("index")

View File

@ -710,27 +710,27 @@ def add_dac(n, costs):
heat_buses = n.buses.index[n.buses.carrier.isin(heat_carriers)]
locations = n.buses.location[heat_buses]
efficiency2 = -(
electricity_input = (
costs.at["direct air capture", "electricity-input"]
+ costs.at["direct air capture", "compression-electricity-input"]
)
efficiency3 = -(
) # MWh_el / tCO2
heat_input = (
costs.at["direct air capture", "heat-input"]
- costs.at["direct air capture", "compression-heat-output"]
)
) # MWh_th / tCO2
n.madd(
"Link",
heat_buses.str.replace(" heat", " DAC"),
bus0="co2 atmosphere",
bus1=spatial.co2.df.loc[locations, "nodes"].values,
bus2=locations.values,
bus3=heat_buses,
bus0=locations.values,
bus1=heat_buses,
bus2="co2 atmosphere",
bus3=spatial.co2.df.loc[locations, "nodes"].values,
carrier="DAC",
capital_cost=costs.at["direct air capture", "fixed"],
efficiency=1.0,
efficiency2=efficiency2,
efficiency3=efficiency3,
efficiency=-heat_input / electricity_input,
efficiency2=-electricity_input,
efficiency3=electricity_input,
p_nom_extendable=True,
lifetime=costs.at["direct air capture", "lifetime"],
)