diff --git a/.gitignore b/.gitignore index 10243def..aa531c3d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,11 +11,8 @@ gurobi.log /benchmarks /logs /notebooks -/data/timezone_mappings.csv -/data/urban_percent.csv /data/links_p_nom.csv /data/*totals.csv -/data/*Jensen.csv /data/biomass* /data/emobility/ /data/eea* diff --git a/config.default.yaml b/config.default.yaml index b5560133..4aad9eb6 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -1,4 +1,4 @@ -version: 0.5.0 +version: 0.6.0 logging_level: INFO @@ -45,14 +45,14 @@ scenario: # CO2 budget as a fraction of 1990 emissions # this is over-ridden if CO2Lx is set in sector_opts # this is also over-ridden if cb is set in sector_opts -co2_budget: - 2020: 0.7011648746 - 2025: 0.5241935484 - 2030: 0.2970430108 - 2035: 0.1500896057 - 2040: 0.0712365591 - 2045: 0.0322580645 - 2050: 0 +# co2_budget: +# 2020: 0.7011648746 +# 2025: 0.5241935484 +# 2030: 0.2970430108 +# 2035: 0.1500896057 +# 2040: 0.0712365591 +# 2045: 0.0322580645 +# 2050: 0 # snapshots are originally set in PyPSA-Eur/config.yaml but used again by PyPSA-Eur-Sec snapshots: @@ -146,11 +146,11 @@ sector: potential: 0.6 # maximum fraction of urban demand which can be supplied by district heating # increase of today's district heating demand to potential maximum district heating share # progress = 0 means today's district heating share, progress = 1 means maximum fraction of urban demand is supplied by district heating - progress: - 2020: 0.0 - 2030: 0.3 - 2040: 0.6 - 2050: 1.0 + progress: 1 + # 2020: 0.0 + # 2030: 0.3 + # 2040: 0.6 + # 2050: 1.0 district_heating_loss: 0.15 bev_dsm_restriction_value: 0.75 #Set to 0 for no restriction on BEV DSM bev_dsm_restriction_time: 7 #Time at which SOC of BEV has to be dsm_restriction_value @@ -170,16 +170,16 @@ sector: bev_avail_mean: 0.8 v2g: true #allows feed-in to grid from EV battery #what is not EV or FCEV is oil-fuelled ICE - land_transport_fuel_cell_share: # 1 means all FCEVs - 2020: 0 - 2030: 0.05 - 2040: 0.1 - 2050: 0.15 - land_transport_electric_share: # 1 means all EVs - 2020: 0 - 2030: 0.25 - 2040: 0.6 - 2050: 0.85 + land_transport_fuel_cell_share: 0.15 # 1 means all FCEVs + # 2020: 0 + # 2030: 0.05 + # 2040: 0.1 + # 2050: 0.15 + land_transport_electric_share: 0.85 # 1 means all EVs + # 2020: 0 + # 2030: 0.25 + # 2040: 0.6 + # 2050: 0.85 transport_fuel_cell_efficiency: 0.5 transport_internal_combustion_efficiency: 0.3 agriculture_machinery_electric_share: 0 @@ -187,29 +187,29 @@ sector: agriculture_machinery_electric_efficiency: 0.3 # electricity per use shipping_average_efficiency: 0.4 #For conversion of fuel oil to propulsion in 2011 shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands - shipping_hydrogen_share: # 1 means all hydrogen FC - 2020: 0 - 2025: 0 - 2030: 0.05 - 2035: 0.15 - 2040: 0.3 - 2045: 0.6 - 2050: 1 + shipping_hydrogen_share: 1 # 1 means all hydrogen FC + # 2020: 0 + # 2025: 0 + # 2030: 0.05 + # 2035: 0.15 + # 2040: 0.3 + # 2045: 0.6 + # 2050: 1 time_dep_hp_cop: true #time dependent heat pump coefficient of performance heat_pump_sink_T: 55. # Celsius, based on DTU / large area radiators; used in build_cop_profiles.py # conservatively high to cover hot water and space heating in poorly-insulated buildings reduce_space_heat_exogenously: true # reduces space heat demand by a given factor (applied before losses in DH) # this can represent e.g. building renovation, building demolition, or if # the factor is negative: increasing floor area, increased thermal comfort, population growth - reduce_space_heat_exogenously_factor: # per unit reduction in space heat demand + reduce_space_heat_exogenously_factor: 0.29 # per unit reduction in space heat demand # the default factors are determined by the LTS scenario from http://tool.european-calculator.eu/app/buildings/building-types-area/?levers=1ddd4444421213bdbbbddd44444ffffff11f411111221111211l212221 - 2020: 0.10 # this results in a space heat demand reduction of 10% - 2025: 0.09 # first heat demand increases compared to 2020 because of larger floor area per capita - 2030: 0.09 - 2035: 0.11 - 2040: 0.16 - 2045: 0.21 - 2050: 0.29 + # 2020: 0.10 # this results in a space heat demand reduction of 10% + # 2025: 0.09 # first heat demand increases compared to 2020 because of larger floor area per capita + # 2030: 0.09 + # 2035: 0.11 + # 2040: 0.16 + # 2045: 0.21 + # 2050: 0.29 retrofitting : # co-optimises building renovation to reduce space heat demand retro_endogen: false # co-optimise space heat savings cost_factor: 1.0 # weight costs for building renovation @@ -251,32 +251,32 @@ sector: industry: - St_primary_fraction: # fraction of steel produced via primary route versus secondary route (scrap+EAF); today fraction is 0.6 - 2020: 0.6 - 2025: 0.55 - 2030: 0.5 - 2035: 0.45 - 2040: 0.4 - 2045: 0.35 - 2050: 0.3 - DRI_fraction: # fraction of the primary route converted to DRI + EAF - 2020: 0 - 2025: 0 - 2030: 0.05 - 2035: 0.2 - 2040: 0.4 - 2045: 0.7 - 2050: 1 + St_primary_fraction: 0.3 # fraction of steel produced via primary route versus secondary route (scrap+EAF); today fraction is 0.6 + # 2020: 0.6 + # 2025: 0.55 + # 2030: 0.5 + # 2035: 0.45 + # 2040: 0.4 + # 2045: 0.35 + # 2050: 0.3 + DRI_fraction: 1 # fraction of the primary route converted to DRI + EAF + # 2020: 0 + # 2025: 0 + # 2030: 0.05 + # 2035: 0.2 + # 2040: 0.4 + # 2045: 0.7 + # 2050: 1 H2_DRI: 1.7 #H2 consumption in Direct Reduced Iron (DRI), MWh_H2,LHV/ton_Steel from 51kgH2/tSt in Vogl et al (2018) doi:10.1016/j.jclepro.2018.08.279 elec_DRI: 0.322 #electricity consumption in Direct Reduced Iron (DRI) shaft, MWh/tSt HYBRIT brochure https://ssabwebsitecdn.azureedge.net/-/media/hybrit/files/hybrit_brochure.pdf - Al_primary_fraction: # fraction of aluminium produced via the primary route versus scrap; today fraction is 0.4 - 2020: 0.4 - 2025: 0.375 - 2030: 0.35 - 2035: 0.325 - 2040: 0.3 - 2045: 0.25 - 2050: 0.2 + Al_primary_fraction: 0.2 # fraction of aluminium produced via the primary route versus scrap; today fraction is 0.4 + # 2020: 0.4 + # 2025: 0.375 + # 2030: 0.35 + # 2035: 0.325 + # 2040: 0.3 + # 2045: 0.25 + # 2050: 0.2 MWh_CH4_per_tNH3_SMR: 10.8 # 2012's demand from https://ec.europa.eu/docsroom/documents/4165/attachments/1/translations/en/renditions/pdf MWh_elec_per_tNH3_SMR: 0.7 # same source, assuming 94-6% split methane-elec of total energy demand 11.5 MWh/tNH3 MWh_H2_per_tNH3_electrolysis: 6.5 # from https://doi.org/10.1016/j.joule.2018.04.017, around 0.197 tH2/tHN3 (>3/17 since some H2 lost and used for energy) diff --git a/data/heat_load_profile_DK_AdamJensen.csv b/data/heat_load_profile_DK_AdamJensen.csv new file mode 100644 index 00000000..cb417bde --- /dev/null +++ b/data/heat_load_profile_DK_AdamJensen.csv @@ -0,0 +1,25 @@ +hour,weekday,weekend +0,0.9181438689,0.9421512708 +1,0.9172359071,0.9400891069 +2,0.9269464481,0.9461062015 +3,0.9415047932,0.9535084941 +4,0.9656299507,0.9651094993 +5,1.0221166443,0.9834676747 +6,1.1553090493,1.0124171051 +7,1.2093411031,1.0446615927 +8,1.1470295942,1.088203419 +9,1.0877191341,1.1110334576 +10,1.0418327372,1.0926752822 +11,1.0062977133,1.055488209 +12,0.9837030359,1.0251266112 +13,0.9667570278,0.9990015154 +14,0.9548320932,0.9782897278 +15,0.9509232061,0.9698167237 +16,0.9636973319,0.974288587 +17,0.9799372563,0.9886456216 +18,1.0046501848,1.0084159643 +19,1.0079452419,1.0171243296 +20,0.9860566481,0.9994722379 +21,0.9705228074,0.982761591 +22,0.9586485819,0.9698167237 +23,0.9335023778,0.9515079292 diff --git a/data/urban_percent.csv b/data/urban_percent.csv new file mode 100644 index 00000000..d57e0728 --- /dev/null +++ b/data/urban_percent.csv @@ -0,0 +1,30 @@ +AT,66 +BA,40 +BE,98 +BG,74 +CH,74 +CZ,73 +DE,75 +DK,88 +EE,68 +ES,80 +FI,84 +FR,80 +GB,83 +GR,78 +HR,59 +HU,71 +IE,63 +IT,69 +LT,67 +LU,90 +LV,67 +NL,90 +NO,80 +PL,61 +PT,63 +RO,55 +RS,56 +SE,86 +SI,50 +SK,54 diff --git a/doc/conf.py b/doc/conf.py index 1961a23b..0af70132 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -56,23 +56,23 @@ source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' - +progress # The master toctree document. master_doc = 'index' # General information about the project. project = u'PyPSA-Eur-Sec' -copyright = u'2019-2020 Tom Brown (KIT), Marta Victoria (Aarhus University), Lisa Zeyen (KIT)' -author = u'2019-2020 Tom Brown (KIT), Marta Victoria (Aarhus University), Lisa Zeyen (KIT)' +copyright = u'2019-2021 Tom Brown (KIT, TUB), Marta Victoria (Aarhus University), Lisa Zeyen (KIT, TUB), Fabian Neumann (TUB)' +author = u'2019-2021 Tom Brown (KIT, TUB), Marta Victoria (Aarhus University), Lisa Zeyen (KIT, TUB), Fabian Neumann (TUB)' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = u'0.5' +version = u'0.6' # The full version, including alpha/beta/rc tags. -release = u'0.5.0' +release = u'0.6.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/data.csv b/doc/data.csv index 01fa04b3..cde8c559 100644 --- a/doc/data.csv +++ b/doc/data.csv @@ -7,7 +7,6 @@ EEA emission statistics,eea/UNFCCC_v23.csv,EEA standard re-use policy,https://ww Eurostat Energy Balances,eurostat-energy_balances-*/,Eurostat,https://ec.europa.eu/eurostat/web/energy/data/energy-balances Swiss energy statistics from Swiss Federal Office of Energy,switzerland-sfoe/,unknown,http://www.bfe.admin.ch/themen/00526/00541/00542/02167/index.html?dossier_id=02169 BASt emobility statistics,emobility/,unknown,http://www.bast.de/DE/Verkehrstechnik/Fachthemen/v2-verkehrszaehlung/Stundenwerte.html?nn=626916 -timezone mappings,timezone_mappings.csv,CC BY 4.0,Tom Brown BDEW heating profile,heat_load_profile_BDEW.csv,unknown,https://github.com/oemof/demandlib heating profiles for Aarhus,heat_load_profile_DK_AdamJensen.csv,unknown,Adam Jensen MA thesis at Aarhus University George Lavidas wind/wave costs,WindWaveWEC_GLTB.xlsx,unknown,George Lavidas diff --git a/doc/installation.rst b/doc/installation.rst index cbd4c948..1252771d 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -66,15 +66,15 @@ Data requirements ================= Small data files are included directly in the git repository, while -larger ones are archived in a data bundle. The data bundle's size is -around 640 MB. +larger ones are archived in a data bundle on zenodo (`10.5281/zenodo.5546517 `_). +The data bundle's size is around 640 MB. To download and extract the data bundle on the command line: .. code:: bash - - projects/pypsa-eur-sec/data % wget "https://nworbmot.org/pypsa-eur-sec-data-bundle-210418.tar.gz" - projects/pypsa-eur-sec/data % tar xvzf pypsa-eur-sec-data-bundle-210418.tar.gz +` + projects/pypsa-eur-sec/data % wget "https://zenodo.org/record/5546517/files/pypsa-eur-sec-data-bundle.tar.gz" + projects/pypsa-eur-sec/data % tar xvzf pypsa-eur-sec-data-bundle.tar.gz The data licences and sources are given in the following table. diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 8a1ed562..01edc4d9 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -6,94 +6,193 @@ Future release ============== .. note:: - This unreleased version currently requires the master branches of PyPSA, PyPSA-Eur, and the technology-data repository. + This unreleased version currently may require the master branches of PyPSA, PyPSA-Eur, and the technology-data repository. + +PyPSA-Eur-Sec 0.6.0 (4 October 2021) +==================================== + +This release includes +improvements regarding the basic chemical production, +the addition of plastics recycling, +the addition of the agriculture, forestry and fishing sector, +more regionally resolved biomass potentials, +CO2 pipeline transport and storage, and +more options in setting exogenous transition paths, +besides many performance improvements. + +This release is known to work with `PyPSA-Eur +`_ Version 0.4.0, `Technology Data +`_ Version 0.3.0 and +`PyPSA `_ Version 0.18.0. + +Please note that the data bundle has also been updated. + + +**General** * With this release, we change the license from copyleft GPLv3 to the more liberal MIT license with the consent of all contributors. + + +**New features and functionality** + +* Distinguish costs for home battery storage and inverter from utility-scale + battery costs. + +* Separate basic chemicals into HVC (high-value chemicals), chlorine, methanol and ammonia + [`#166 `_]. + +* Add option to specify reuse, primary production, and mechanical and chemical + recycling fraction of platics + [`#166 `_]. + +* Include energy demands and CO2 emissions for the agriculture, forestry and fishing sector. + It is included by default through the option ``A`` in the ``sector_opts`` wildcard. + Part of the emissions (1.A.4.c) was previously assigned to "industry non-elec" in the ``co2_totals.csv``. + Hence, excluding the agriculture sector will now lead to a tighter CO2 limit. + Energy demands are taken from the JRC IDEES database (missing countries filled with eurostat data) + and are split into + electricity (lighting, ventilation, specific electricity uses, pumping devices (electric)), + heat (specific heat uses, low enthalpy heat) + machinery oil (motor drives, farming machine drives, pumping devices (diesel)). + Heat demand is assigned at "services rural heat" buses. + Electricity demands are added to low-voltage buses. + Time series for demands are constant and distributed inside countries by population + [`#147 `_]. + +* Include today's district heating shares in myopic optimisation and add option + to specify exogenous path for district heating share increase under ``sector: + district_heating:`` [`#149 `_]. + +* Added option for hydrogen liquefaction costs for hydrogen demand in shipping. + This introduces a new ``H2 liquid`` bus at each location. It is activated via + ``sector: shipping_hydrogen_liquefaction: true``. + +* The share of shipping transformed into hydrogen fuel cell can be now defined + for different years in the ``config.yaml`` file. The carbon emission from the + remaining share is treated as a negative load on the atmospheric carbon dioxide + bus, just like aviation and land transport emissions. + +* The transformation of the Steel and Aluminium production can be now defined + for different years in the ``config.yaml`` file. + +* Include the option to alter the maximum energy capacity of a store via the + ``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for + sensitivity analyses. Example: ``co2 stored+e2`` multiplies the ``e_nom_max`` by + factor 2. In this example, ``e_nom_max`` represents the CO2 sequestration + potential in Europe. + +* Use `JRC ENSPRESO database `_ to + spatially disaggregate biomass potentials to PyPSA-Eur regions based on + overlaps with NUTS2 regions from ENSPRESO (proportional to area) (`#151 + `_). + +* Add option to regionally disaggregate biomass potential to individual nodes + (previously given per country, then distributed by population density within) + and allow the transport of solid biomass. The transport costs are determined + based on the `JRC-EU-Times Bioenergy report + `_ in the new optional rule + ``build_biomass_transport_costs``. Biomass transport can be activated with the + setting ``sector: biomass_transport: true``. + +* Add option to regionally resolve CO2 storage and add CO2 pipeline transport + because geological storage potential, + CO2 utilisation sites and CO2 capture sites may be separated. The CO2 network + is built from zero based on the topology of the electricity grid (greenfield). + Pipelines are assumed to be bidirectional and lossless. Furthermore, neither + retrofitting of natural gas pipelines (required pressures are too high, 80-160 + bar vs <80 bar) nor other modes of CO2 transport (by ship, road or rail) are + considered. The regional representation of CO2 is activated with the config + setting ``sector: co2_network: true`` but is deactivated by default. The + global limit for CO2 sequestration now applies to the sum of all CO2 stores + via an ``extra_functionality`` constraint. + +* The myopic option can now be used together with different clustering for the + generators and the network. The existing renewable capacities are split evenly + among the regions in every country [`#144 `_]. + +* Add optional function to use ``geopy`` to locate entries of the Hotmaps + database of industrial sites with missing location based on city and country, + which reduces missing entries by half. It can be activated by setting + ``industry: hotmaps_locate_missing: true``, takes a few minutes longer, and + should only be used if spatial resolution is coarser than city level. + + +**Performance and Structure** + * Extended use of ``multiprocessing`` for much better performance (from up to 20 minutes to less than one minute). -* Compatibility with ``atlite>=0.2``. Older versions of ``atlite`` will no longer work. + * Handle most input files (or base directories) via ``snakemake.input``. + * Use of ``mock_snakemake`` from PyPSA-Eur. -* Update ``solve_network`` rule to match implementation in PyPSA-Eur by using ``n.ilopf()`` and remove outdated code using ``pyomo``. - Allows the new setting to skip iterated impedance updates with ``solving: options: skip_iterations: true``. + +* Update ``solve_network`` rule to match implementation in PyPSA-Eur by using + ``n.ilopf()`` and remove outdated code using ``pyomo``. + Allows the new setting to skip iterated impedance updates with ``solving: + options: skip_iterations: true``. + * The component attributes that are to be overridden are now stored in the folder ``data/override_component_attrs`` analogous to ``pypsa/component_attrs``. This reduces verbosity and also allows circumventing the ``n.madd()`` hack for individual components with non-default attributes. This data is also tracked in the Snakefile. - A function ``helper.override_component_attrs`` was added that loads this data - and can pass the overridden component attributes into ``pypsa.Network()``: - - >>> from helper import override_component_attrs - >>> overrides = override_component_attrs(snakemake.input.overrides) - >>> n = pypsa.Network("mynetwork.nc", override_component_attrs=overrides) - + and can pass the overridden component attributes into ``pypsa.Network()``. + * Add various parameters to ``config.default.yaml`` which were previously hardcoded inside the scripts (e.g. energy reference years, BEV settings, solar thermal collector models, geomap colours). + * Removed stale industry demand rules ``build_industrial_energy_demand_per_country`` and ``build_industrial_demand``. These are superseded with more regionally resolved rules. + * Use simpler and shorter ``gdf.sjoin()`` function to allocate industrial sites - from the Hotmaps database to onshore regions. - + from the Hotmaps database to onshore regions. This change also fixes a bug: The previous version allocated sites to the closest bus, but at country borders (where Voronoi cells are distorted by the borders), this had resulted in e.g. a Spanish site close to the French border being wrongly allocated to the French bus if the bus center was closer. -* Bugfix: Corrected calculation of "gas for industry" carbon capture efficiency. + * Retrofitting rule is now only triggered if endogeneously optimised. + * Show progress in build rules with ``tqdm`` progress bars. + * Reduced verbosity of ``Snakefile`` through directory prefixes. + * Improve legibility of ``config.default.yaml`` and remove unused options. -* Add optional function to use ``geopy`` to locate entries of the Hotmaps database of industrial sites - with missing location based on city and country, which reduces missing entries by half. It can be - activated by setting ``industry: hotmaps_locate_missing: true``, takes a few minutes longer, - and should only be used if spatial resolution is coarser than city level. + * Use the country-specific time zone mappings from ``pytz`` rather than a manual mapping. + * A function ``add_carrier_buses()`` was added to the ``prepare_network`` rule to reduce code duplication. + * In the ``prepare_network`` rule the cost and potential adjustment was moved into an own function ``maybe_adjust_costs_and_potentials()``. -* Use ``matplotlibrc`` to set the default plotting style and backend``. + +* Use ``matplotlibrc`` to set the default plotting style and backend. + * Added benchmark files for each rule. -* Implements changes to ``n.snapshot_weightings`` in upcoming PyPSA version (cf. `PyPSA/#227 `_). -* New dependencies: ``tqdm``, ``atlite>=0.2.4``, ``pytz`` and ``geopy`` (optional). - These are included in the environment specifications of PyPSA-Eur. + * Consistent use of ``__main__`` block and further unspecific code cleaning. -* Distinguish costs for home battery storage and inverter from utility-scale battery costs. -* Add option to regionally resolve CO2 storage and add CO2 pipeline transport because geological storage potential, - CO2 utilisation sites and CO2 capture sites may be separated. - The CO2 network is built from zero based on the topology of the electricity grid (greenfield). - Pipelines are assumed to be bidirectional and lossless. - Furthermore, neither retrofitting of natural gas pipelines (required pressures are too high, 80-160 bar vs <80 bar) - nor other modes of CO2 transport (by ship, road or rail) are considered. - The regional representation of CO2 is activated with the config setting ``sector: co2_network: true`` but is deactivated by default. - The global limit for CO2 sequestration now applies to the sum of all CO2 stores via an ``extra_functionality`` constraint. -* Added option for hydrogen liquefaction costs for hydrogen demand in shipping. - This introduces a new ``H2 liquid`` bus at each location. - It is activated via ``sector: shipping_hydrogen_liquefaction: true``. -* The share of shipping transformed into hydrogen fuel cell can be now defined for different years in the ``config.yaml`` file. The carbon emission from the remaining share is treated as a negative load on the atmospheric carbon dioxide bus, just like aviation and land transport emissions. -* The transformation of the Steel and Aluminium production can be now defined for different years in the ``config.yaml`` file. -* Include the option to alter the maximum energy capacity of a store via the ``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for sensitivity analyses. Example: ``co2 stored+e2`` multiplies the ``e_nom_max`` by factor 2. In this example, ``e_nom_max`` represents the CO2 sequestration potential in Europe. -* Add option to regionally disaggregate biomass potential to individual nodes - (currently given per country, then distributed by population density within) - and allow the transport of solid biomass. - The transport costs are determined based on the `JRC-EU-Times Bioenergy report `_ - in the new optional rule ``build_biomass_transport_costs``. - Biomass transport can be activated with the setting ``sector: biomass_transport: true``. -* Use `JRC ENSPRESO database `_ to - spatially disaggregate biomass potentials to PyPSA-Eur regions based on overlaps with NUTS2 regions from ENSPRESO - (proportional to area) (`#151 `_). + +* Updated data bundle and moved data bundle to zenodo.org (`10.5281/zenodo.5546517 `_). + + +**Bugfixes and Compatibility** + +* Compatibility with ``atlite>=0.2``. Older versions of ``atlite`` will no longer work. + +* Corrected calculation of "gas for industry" carbon capture efficiency. + +* Implemented changes to ``n.snapshot_weightings`` in PyPSA v0.18.0. + * Compatibility with ``xarray`` version 0.19. -* Added option to include emissions and energy demands of agriculture, forestry and fishing sector via the letter ``A`` in the ``{sector_opts}`` wildcard. - Demands are separated into electricity, heat and oil for machinery. - Fuel-switching for machinery from oil to electricity can be set exogenously in the ``config.yaml`` - `#147 `_. -* Separate basic chemicals into HVC, chlorine, methanol and ammonia [`#166 `_]. -* Add option to specify reuse, primary production, and mechanical and chemical recycling fraction of platics [`#166 `_]. -* Include today's district heating shares in myopic optimisation and add option to specify exogenous path for district heating share increase under ``sector: district_heating:`` [`#149 `_]. -* The myopic option can now be used together with different clustering for the generators and the network. The existing renewable capacities are split evenly among the regions in every country [`#144 `_]. + +* New dependencies: ``tqdm``, ``atlite>=0.2.4``, ``pytz`` and ``geopy`` (optional). + These are included in the environment specifications of PyPSA-Eur v0.3.0. + +Many thanks to all who contributed to this release! + PyPSA-Eur-Sec 0.5.0 (21st May 2021) =================================== @@ -274,4 +373,4 @@ To make a new release of the data bundle, make an archive of the files in ``data .. code:: bash - data % tar pczf pypsa-eur-sec-data-bundle-YYMMDD.tar.gz eea/UNFCCC_v23.csv switzerland-sfoe biomass eurostat-energy_balances-* jrc-idees-2015 emobility urban_percent.csv timezone_mappings.csv heat_load_profile_DK_AdamJensen.csv WindWaveWEC_GLTB.xlsx myb1-2017-nitro.xls Industrial_Database.csv retro/tabula-calculator-calcsetbuilding.csv + data % tar pczf pypsa-eur-sec-data-bundle.tar.gz eea/UNFCCC_v23.csv switzerland-sfoe biomass eurostat-energy_balances-* jrc-idees-2015 emobility WindWaveWEC_GLTB.xlsx myb1-2017-nitro.xls Industrial_Database.csv retro/tabula-calculator-calcsetbuilding.csv nuts/NUTS_RG_10M_2013_4326_LEVL_2.geojson diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 645dc9e1..6d020539 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1697,7 +1697,7 @@ def create_nodes_for_heat_sector(): axis=1).max(axis=1) # difference of max potential and today's share of district heating diff = (urban_fraction * central_fraction) - dist_fraction_node - progress = get(options["district_heating"]["potential"], investment_year) + progress = get(options["district_heating"]["progress"], investment_year) dist_fraction_node += diff * progress print( "The current district heating share compared to the maximum",