Merge branch 'master' into retrofit-gas-pipelines
This commit is contained in:
commit
feefaa3d41
10
README.md
10
README.md
@ -14,7 +14,7 @@ problems that distort the results. See the github repository
|
||||
[issues](https://github.com/PyPSA/pypsa-eur-sec/issues) for some of
|
||||
the problems (please feel free to help or make suggestions). There is
|
||||
neither documentation nor a paper yet, but we hope to have a preprint
|
||||
out by summer 2020. We cannot support this model if you choose to use
|
||||
out by autumn 2021. We cannot support this model if you choose to use
|
||||
it.
|
||||
|
||||
|
||||
@ -33,6 +33,14 @@ them:
|
||||
|
||||
![sector diagram](graphics/multisector_figure.png)
|
||||
|
||||
Each of these sectors is built up on the transmission network nodes
|
||||
from [PyPSA-Eur](https://github.com/PyPSA/pypsa-eur):
|
||||
|
||||
![network diagram](https://github.com/PyPSA/pypsa-eur/blob/master/doc/img/base.png?raw=true)
|
||||
|
||||
For computational reasons the model is usually clustered down
|
||||
to 50-200 nodes.
|
||||
|
||||
|
||||
PyPSA-Eur-Sec was initially based on the model PyPSA-Eur-Sec-30 described
|
||||
in the paper [Synergies of sector coupling and transmission
|
||||
|
@ -188,7 +188,7 @@ rule build_industrial_production_per_country:
|
||||
input:
|
||||
ammonia_production="resources/ammonia_production.csv"
|
||||
output:
|
||||
industrial_production_per_country="resources/industrial_production_per_country.csv"
|
||||
industrial_production_per_country="resources/industrial_production_per_country.csv"
|
||||
threads: 1
|
||||
resources: mem_mb=1000
|
||||
script: 'scripts/build_industrial_production_per_country.py'
|
||||
@ -291,7 +291,7 @@ rule build_retro_cost:
|
||||
input:
|
||||
building_stock="data/retro/data_building_stock.csv",
|
||||
data_tabula="data/retro/tabula-calculator-calcsetbuilding.csv",
|
||||
air_temperature = "resources/temp_air_total_{network}_s{simpl}_{clusters}.nc",
|
||||
air_temperature = "resources/temp_air_total_elec_s{simpl}_{clusters}.nc",
|
||||
u_values_PL="data/retro/u_values_poland.csv",
|
||||
tax_w="data/retro/electricity_taxes_eu.csv",
|
||||
construction_index="data/retro/comparative_level_investment.csv",
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: 0.4.0
|
||||
version: 0.5.0
|
||||
|
||||
logging_level: INFO
|
||||
|
||||
|
@ -70,9 +70,9 @@ author = u'2019-2020 Tom Brown (KIT), Marta Victoria (Aarhus University), Lisa Z
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = u'0.4'
|
||||
version = u'0.5'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = u'0.4.0'
|
||||
release = u'0.5.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -4,8 +4,8 @@ PyPSA-Eur-Sec: A Sector-Coupled Open Optimisation Model of the European Energy S
|
||||
.. image:: https://img.shields.io/github/v/release/pypsa/pypsa-eur-sec?include_prereleases
|
||||
:alt: GitHub release (latest by date including pre-releases)
|
||||
|
||||
.. image:: https://readthedocs.org/projects/pypsa-eur/badge/?version=latest
|
||||
:target: https://pypsa-eur.readthedocs.io/en/latest/?badge=latest
|
||||
.. image:: https://readthedocs.org/projects/pypsa-eur-sec/badge/?version=latest
|
||||
:target: https://pypsa-eur-sec.readthedocs.io/en/latest/?badge=latest
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://img.shields.io/github/license/pypsa/pypsa-eur-sec
|
||||
|
@ -3,16 +3,31 @@ Release Notes
|
||||
##########################################
|
||||
|
||||
Future release
|
||||
===================
|
||||
==============
|
||||
|
||||
* Include new features here.
|
||||
|
||||
|
||||
PyPSA-Eur-Sec 0.5.0 (21st May 2021)
|
||||
===================================
|
||||
|
||||
This release includes improvements to the cost database for building retrofits, carbon budget management and wildcard settings, as well as an important bugfix for the emissions from land transport.
|
||||
|
||||
This release is known to work with `PyPSA-Eur <https://github.com/PyPSA/pypsa-eur>`_ Version 0.3.0 and `Technology Data <https://github.com/PyPSA/technology-data>`_ Version 0.2.0.
|
||||
|
||||
Please note that the data bundle has also been updated.
|
||||
|
||||
New features and bugfixes:
|
||||
|
||||
* For the myopic investment option, a carbon budget and a type of decay (exponential or beta) can be selected in the ``config.yaml`` file to distribute the budget across the ``planning_horizons``. For example, ``cb40ex0`` in the ``{sector_opts}`` wildcard will distribute a carbon budget of 40 GtCO2 following an exponential decay with initial growth rate 0.
|
||||
* The cost database for retrofitting of the thermal envelope of buildings has been updated. Now, for calculating the space heat savings of a building, losses by thermal bridges and ventilation are included as well as heat gains (internal and by solar radiation). See the section :ref:`retro` for more details on the retrofitting module.
|
||||
* For the myopic investment option, a carbon budget and a type of decay (exponential or beta) can be selected in the ``config.yaml`` file to distribute the budget across the ``planning_horizons``. For example, ``cb40ex0`` in the ``{sector_opts}`` wildcard will distribute a carbon budget of 40 GtCO2 following an exponential decay with initial growth rate 0.
|
||||
* Added an option to alter the capital cost or maximum capacity of carriers by a factor via ``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for exploring uncertain cost parameters. Example: ``solar+c0.5`` reduces the ``capital_cost`` of solar to 50\% of original values. Similarly ``solar+p3`` multiplies the ``p_nom_max`` by 3.
|
||||
* Rename the bus for European liquid hydrocarbons from ``Fischer-Tropsch`` to ``EU oil``, since it can be supplied not just with the Fischer-Tropsch process, but also with fossil oil.
|
||||
* Bugfix: The new separation of land transport by carrier in Version 0.4.0 failed to account for the carbon dioxide emissions from internal combustion engines. This is now treated as a negative load on the atmospheric carbon dioxide bus, just like aviation emissions.
|
||||
* Bugfix: The new separation of land transport by carrier in Version 0.4.0 failed to account for the carbon dioxide emissions from internal combustion engines in land transport. This is now treated as a negative load on the atmospheric carbon dioxide bus, just like aviation emissions.
|
||||
* Bugfix: Fix reading in of ``pypsa-eur/resources/powerplants.csv`` to PyPSA-Eur Version 0.3.0 (use column attribute name ``DateIn`` instead of old ``YearDecommissioned``).
|
||||
* Bugfix: Make sure that ``Store`` components (battery and H2) are also removed from PyPSA-Eur, so they can be added later by PyPSA-Eur-Sec.
|
||||
|
||||
Thanks to Lisa Zeyen (KIT) for the retrofitting improvements and Marta Victoria (Aarhus University) for the carbon budget and wildcard management.
|
||||
|
||||
PyPSA-Eur-Sec 0.4.0 (11th December 2020)
|
||||
=========================================
|
||||
|
@ -253,7 +253,8 @@ def prepare_building_stock_data():
|
||||
axis=1, inplace=True, errors="ignore")
|
||||
|
||||
|
||||
u_values = u_values.apply(lambda x: x.replace(rename_sectors))
|
||||
u_values.subsector.replace(rename_sectors, inplace=True)
|
||||
u_values.btype.replace(rename_sectors, inplace=True)
|
||||
|
||||
# for missing weighting of surfaces of building types assume MFH
|
||||
u_values["assumed_subsector"] = u_values.subsector
|
||||
@ -841,7 +842,7 @@ if __name__ == "__main__":
|
||||
building_stock="data/retro/data_building_stock.csv",
|
||||
data_tabula="data/retro/tabula-calculator-calcsetbuilding.csv",
|
||||
u_values_PL="data/retro/u_values_poland.csv",
|
||||
air_temperature = "resources/temp_air_total_{network}_s{simpl}_{clusters}.nc",
|
||||
air_temperature = "resources/temp_air_total_elec_s{simpl}_{clusters}.nc",
|
||||
tax_w="data/retro/electricity_taxes_eu.csv",
|
||||
construction_index="data/retro/comparative_level_investment.csv",
|
||||
floor_area_missing="data/retro/floor_area_missing.csv",
|
||||
|
@ -177,7 +177,7 @@ def plot_balances():
|
||||
balances_df = pd.read_csv(snakemake.input.balances,index_col=list(range(3)),header=list(range(n_header)))
|
||||
|
||||
balances = {i.replace(" ","_") : [i] for i in balances_df.index.levels[0]}
|
||||
balances["energy"] = balances_df.index.levels[0].symmetric_difference(co2_carriers)
|
||||
balances["energy"] = [i for i in balances_df.index.levels[0] if i not in co2_carriers]
|
||||
|
||||
for k,v in balances.items():
|
||||
|
||||
@ -401,4 +401,4 @@ if __name__ == "__main__":
|
||||
opts=sector_opts.split('-')
|
||||
for o in opts:
|
||||
if "cb" in o:
|
||||
plot_carbon_budget_distribution()
|
||||
plot_carbon_budget_distribution()
|
||||
|
@ -1154,6 +1154,12 @@ def add_land_transport(network):
|
||||
|
||||
if ice_share > 0:
|
||||
|
||||
if "EU oil" not in network.buses.index:
|
||||
network.madd("Bus",
|
||||
["EU oil"],
|
||||
location="EU",
|
||||
carrier="oil")
|
||||
|
||||
network.madd("Load",
|
||||
nodes,
|
||||
suffix=" land transport oil",
|
||||
@ -1542,6 +1548,8 @@ def add_biomass(network):
|
||||
bus1="EU gas",
|
||||
bus2="co2 atmosphere",
|
||||
carrier="biogas to gas",
|
||||
capital_cost=costs.loc["biogas upgrading", "fixed"],
|
||||
marginal_cost=costs.loc["biogas upgrading", "VOM"],
|
||||
efficiency2=-costs.at['gas','CO2 intensity'],
|
||||
p_nom_extendable=True)
|
||||
|
||||
@ -1769,6 +1777,7 @@ def add_industry(network):
|
||||
#remove today's industrial electricity demand by scaling down total electricity demand
|
||||
for ct in n.buses.country.unique():
|
||||
loads = n.loads.index[(n.loads.index.str[:2] == ct) & (n.loads.carrier == "electricity")]
|
||||
if n.loads_t.p_set[loads].empty: continue
|
||||
factor = 1 - industrial_demand.loc[loads,"current electricity"].sum()/n.loads_t.p_set[loads].sum().sum()
|
||||
n.loads_t.p_set[loads] *= factor
|
||||
|
||||
@ -1915,7 +1924,7 @@ if __name__ == "__main__":
|
||||
retro_cost_energy = "resources/retro_cost_elec_s{simpl}_{clusters}.csv",
|
||||
floor_area = "resources/floor_area_elec_s{simpl}_{clusters}.csv"
|
||||
),
|
||||
output=['results/version-cb48be3/prenetworks/{network}_s{simpl}_{clusters}_lv{lv}__{sector_opts}_{planning_horizons}.nc']
|
||||
output=['results/version-cb48be3/prenetworks/elec_s{simpl}_{clusters}_lv{lv}__{sector_opts}_{planning_horizons}.nc']
|
||||
)
|
||||
import yaml
|
||||
with open('config.yaml', encoding='utf8') as f:
|
||||
|
Loading…
Reference in New Issue
Block a user