Releases: PyPSA/pypsa-eur-sec
PyPSA-Eur-Sec Version 0.7.0
What's Changed
- copy pypsa-eur config.yaml into results folder by @fneum in #181
- add basic setup of rsync with files to ignore by @fneum in #180
- add new color scheme for more distinguishing colors by @fneum in #179
- plot: correct h2 map legend overlap, change aggregation of techs by @fneum in #184
- Add missing code directive and hyphon in tar operation by @fwitte in #190
- Retrofit gas pipelines - iteration 2 by @fneum in #187
- Remove non-ascii character from source file by @koen-vg in #193
- Create config file from default if not found by @koen-vg in #194
- fix copying pypsa-eur config by @fneum in #196
- Remove a wrong connection on the diagram by @leonsn in #192
- solve_network: take threads from solver setting by @fneum in #195
- add regionalised hydrogen salt cavern storage potentials by @fneum in #191
- add option to automatically download and extract sector databundle by @fneum in #198
- Retrofit gas pipelines by @lisazeyen in #135
- allow H2 retrofitting from CH4 pipelines without endogenous CH4 grid by @fneum in #204
- fix broken prepare_sector_network when running without gas grid by @fneum in #207
- fix for GlobalConstraints mu with "co2_sequestration_limit" by @fneum in #211
- add option 'seqXXX' to sweep global co2 sequestration potentials by @fneum in #208
- update data bundle by @fneum in #216
- Fixes issue with specifying /tmp path by @TimToernes in #224
- Add basic CI for overnight and myopic by @fneum in #234
- address recent deprecations by @fneum in #235
- Myopic fix by @lisazeyen in #217
- separate rules for transport demand and nodal energy totals by @fneum in #236
- fix grouping years list issue caused by newer powerplant database by @Irieo in #240
- fix agriculture machinery oil load with spatial.oil.nodes by @fneum in #241
- CI: include summary and plotting rules by @fneum in #239
- copy_config: copy actual snakemake.config by @fneum in #238
- Add coal with carbon capture by @ebbekyhl in #243
- Document units of bus carriers by @Irieo in #245
- fix unit conversion for thermal energy storage by @fneum in #248
- use packaging.version instead of deprecated distutils.StrictVersion by @fneum in #252
- option to specify any config through sector opts with CF:: by @fneum in #251
- store config and wildcards in n.meta by @fneum in #246
- BioSNG (methane from solid biomass) with and without CC by @millingermarkus in #254
- Btl by @lisazeyen in #259
- Biomass to liquid fuel with and without CC by @millingermarkus in #253
- Pellet boiler by @lisazeyen in #260
- Fix bug myopic co2 by @lisazeyen in #256
- Add more options for temporal aggregation by @lisazeyen in #261
- Split planning horizons into investmentyear and costyear by @lisazeyen in #267
- update sector opt for co2 seq potential by @lisazeyen in #268
- add ammonia as carrier: with Haber-Bosch, crackers, store, load by @fneum in #242
- untrack *.json by @nnhjy in #270
- Update make_summary.py by @nnhjy in #271
- Snakefile: export conda environment by @fneum in #197
- Fix input listing in Snakefile by @FabianHofmann in #280
- CI: make coincbc and ipopt installed by conda by @FabianHofmann in #281
- Fix relative imports from subworkflow PyPSA-EUR by @euronion in #279
- Change default of shipping demand to oil by @fneum in #273
- fix typos by @FabianHofmann in #285
- Improve doc by @martavp in #265
- take VOM for RES from existing by @lisazeyen in #287
- distribute international shipping by port trade volumes by @fneum in #277
- methanol in shipping by @fneum in #278
- improved legends, EqualEarth projection, w/wo retrofit compatibility by @fneum in #220
- Add small spelling/maths correction to documentation by @martavp in #292
- Cluster heat nodes by @lisazeyen in #257
- automatically retrieve technology-data, no git clone by @fneum in #297
- compatibility with technology-data v0.5 by @fneum in #300
- add min part load for FT and methanolisation via p_min_pu by @fneum in #302
- add option to use electrolysis waste heat in district heating by @fneum in #303
- carbon management by @fneum in #296
- Replacing the IGGIELNG_LNG data with Europe-Gas-Tracker by @FabianHofmann in #289
- cherry-pick from #282 by @fneum in #304
- minor fixes and address deprecation warnings by @fneum in #305
New Contributors
- @fwitte made their first contribution in #190
- @koen-vg made their first contribution in #193
- @TimToernes made their first contribution in #224
- @Irieo made their first contribution in #240
- @ebbekyhl made their first contribution in #243
- @millingermarkus made their first contribution in #254
- @nnhjy made their first contribution in #270
Full Changelog: v0.6.0...v0.7.0
PyPSA-Eur-Sec Version 0.6.0
Full release notes:
https://pypsa-eur-sec.readthedocs.io/en/latest/release_notes.html#pypsa-eur-sec-0-6-0-4-october-2021
What's Changed
- Fix error in plot_summary when running without the industry sector by @leonsn in #96
- add EU oil bus already when adding land transport to be able to run t… by @lisazeyen in #100
- Add costs for biogas upgrading by @fneum in #126
- retro: fix renaming u_values subsectors and btype by @fneum in #127
- Revision complete by @fneum in #139
- add home battery storage and inverter costs by @lisazeyen in #99
- Cherry-pick from #137 by @fneum in #142
- Sensitivity e nom max by @martavp in #143
- Spatial management for solid biomass (transport) by @fneum in #152
- Omitting unnecessary constraints on the CHP units by @leonsn in #155
- Exogenous transition path for shipping, Steel, and Aluminum production by @martavp in #136
- Adapt to technology-data changes by @fneum in #146
- add H2 liquefaction cost to H2 shipping demand by @fneum in #145
- xarray 0.19 compatibility by @fneum in #158
- Add lifetime to solar-rooftop by @martavp in #162
- Update plot_network.py by @martavp in #160
- fix-build_carbon_budget by @martavp in #161
- Change PyPSA-Eur-Sec licence from copyleft GPLv3 to more liberal MIT by @fneum in #164
- Small fixes by @lisazeyen in #167
- Add CO2 network by @fneum in #148
- Biomass transport by @lisazeyen in #73
- Separate basic chemicals into HVC, chlorine, methanol and ammonia by @nworbmot in #166
- spatially-explicit biomass potentials from ENSPRESO by @fneum in #151
- Include today's district heating share for myopic optimisation by @lisazeyen in #149
- Myopic while different clustering for the generators and the network by @martavp in #144
- Add agriculture, forestry and fishing by @fneum in #147
- Preparation of release v0.6 by @fneum in #174
Full Changelog: v0.5.0...v0.6.0
PyPSA-Eur-Sec Version 0.5.0
Please see the release notes for more detailed information.
This release includes improvements to the cost database for building retrofits, carbon budget management and wildcard settings, as well as an import bugfix for the emissions from land transport.
This release is known to work with PyPSA-Eur Version 0.3.0 and Technology Data Version 0.2.0.
Please note that the data bundle has also been updated.
New features and bugfixes:
- 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 Retrofitting of the thermal envelope of buildings 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: 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 Version 0.4.0
Please see the release notes for more detailed information.
This release includes a more accurate nodal disaggregation of industry demand within each country, fixes to CHP and CCS representations, as well as changes to some configuration settings.
It has been released to coincide with PyPSA-Eur Version 0.3.0 and Technology Data Version 0.2.0, and is known to work with these releases.
New features:
-
The Hotmaps Industrial Database is used to disaggregate the industrial demand spatially to the nodes inside each country (previously it was distributed by population density).
-
Electricity demand from industry is now separated from the regular electricity demand and distributed according to the industry demand. Only the remaining regular electricity demand for households and services is distributed according to GDP and population.
-
A cost database for the retrofitting of the thermal envelope of residential and services buildings has been integrated, as well as endogenous optimisation of the level of retrofitting. This is described in the paper Mitigating heat demand peaks in buildings in a highly renewable European energy system. Retrofitting can be activated both exogenously and endogenously from the config.yaml.
-
The biomass and gas combined heat and power (CHP) parameters c_v and c_b were read in assuming they were extraction plants rather than back pressure plants. The data is now corrected in Technology Data Version 0.2.0 to the correct DEA back pressure assumptions and they are now implemented as single links with a fixed ratio of electricity to heat output (even as extraction plants, they were always sitting on the backpressure line in simulations, so there was no point in modelling the full heat-electricity feasibility polygon). The old assumptions underestimated the heat output.
-
The Danish Energy Agency released new assumptions for carbon capture in October 2020, which have now been incorporated in PyPSA-Eur-Sec, including direct air capture (DAC) and post-combustion capture on CHPs, cement kilns and other industrial facilities. The electricity and heat demand for DAC is modelled for each node (with heat coming from district heating), but currently the electricity and heat demand for industrial capture is not modelled very cleanly (for process heat, 10% of the energy is assumed to go to carbon capture) - a new issue will be opened on this.
-
Land transport is separated by energy carrier (fossil, hydrogen fuel cell electric vehicle, and electric vehicle), but still needs to be separated into heavy and light vehicles (the data is there, just not the code yet).
-
For assumptions that change with the investment year, there is a new time-dependent format in the config.yaml using a dictionary with keys for each year. Implemented examples include the CO2 budget, exogenous retrofitting share and land transport energy carrier; more parameters will be dynamised like this in future.
-
Some assumptions have been moved out of the code and into the config.yaml, including the carbon sequestration potential and cost, the heat pump sink temperature, reductions in demand for high value chemicals, and some BEV DSM parameters and transport efficiencies.
-
Documentation on Supply and demand options has been added.
Many thanks to Fraunhofer ISI for opening the hotmaps database and to Lisa Zeyen (KIT) for implementing the building retrofitting.
PyPSA-Eur-Sec Version 0.3.0
Please see the release notes for detailed information.
This releases focuses on improvements to industry demand and the generation of intermediate files for demand for basic materials. There are still inconsistencies with CCS and waste management that need to be improved.
It is known to work with PyPSA-Eur v0.1.0 (commit bb3477c), PyPSA v0.17.1 and technology-data v0.1.0. Please note that the data bundle has also been updated.
New features:
- In previous version of PyPSA-Eur-Sec the energy demand for industry was calculated directly for each location. Now, instead, the production of each material (steel, cement, aluminium) at each location is calculated as an intermediate data file, before the energy demand is calculated from it. This allows us in future to have competing industrial processes for supplying the same material demand.
- The script build_industrial_production_per_country_tomorrow.py determines the future industrial production of materials based on today’s levels as well as assumed recycling and demand change measures.
- The energy demand for each industry sector and each location in 2015 is also calculated, so that it can be later incorporated in the pathway optimization.
- Ammonia production data is taken from the USGS and deducted from JRC-IDEES’s “basic chemicals” so that it ammonia can be handled separately from the others (olefins, aromatics and chlorine).
- Solid biomass is no longer allowed to be used for process heat in cement and basic chemicals, since the wastes and residues cannot be guaranteed to reach the high temperatures required. Instead, solid biomass is used in the paper and pulp as well as food, beverages and tobacco industries, where required temperatures are lower (see DOI:10.1002/er.3436 and DOI:10.1007/s12053-017-9571-y).
- National installable potentials for salt caverns are now applied.
- When electricity distribution grids are activated, new industry electricity demand, resistive heaters and micro-CHPs are now connected to the lower voltage levels.
- Gas distribution grid costs are included for gas boilers and micro-CHPs.
- Installable potentials for rooftop PV are included with an assumption of 1 kWp per person.
- Some intermediate files produced by scripts have been moved from the folder data to the folder resources. Now data only includes input data, while resources only includes intermediate files necessary for building the network models. Please note that the data bundle has also been updated.
- Biomass potentials for different years and scenarios from the JRC are generated in an intermediate file, so that a selection can be made more explicitly by specifying the biomass types from the config.yaml.
PyPSA-Eur-Sec Version 0.2.0
Please see the release notes for detailed information.
This release introduces pathway optimization over many years (e.g. 2020, 2030, 2040, 2050) with myopic foresight, as well as outsourcing the technology assumptions to the technology-data repository.
It is known to work with PyPSA-Eur v0.1.0 (commit bb3477c), PyPSA v0.17.1 and technology-data v0.1.0.
New features:
- Option for pathway optimization with myopic foresight, based on the paper Early decarbonisation of the European Energy system pays off (2020). Investments are optimized sequentially for multiple years (e.g. 2020, 2030, 2040, 2050) taking account of existing assets built in previous years and their lifetimes. The script uses data on the existing assets for electricity and building heating technologies, but there are no assumptions yet for existing transport and industry (if you include these, the model will greenfield them). To use myopic foresight, set foresight : 'myopic' in the config.yaml instead of the default foresight : 'overnight'. An example configuration can be found in config.myopic.yaml. More details on the implementation can be found in Myopic transition path.
- Technology assumptions (costs, efficiencies, etc.) are no longer stored in the repository. Instead, you have to install the technology-data database in a parallel directory. These assumptions are largely based on the Danish Energy Agency Technology Data. More details on the installation can be found in Installation.
- Logs and benchmarks are now stored with the other model outputs in results/run-name/.
- All buses now have a location attribute, e.g. bus DE0 3 urban central heat has a location of DE0 3.
- All assets have a lifetime attribute (integer in years). For the myopic foresight, a build_year attribute is also stored.
- Costs for solar and onshore and offshore wind are recalculated by PyPSA-Eur-Sec based on the investment year, including the AC or DC connection costs for offshore wind.
Many thanks to Marta Victoria for implementing the myopic foresight, and Marta Victoria, Kun Zhu and Lisa Zeyen for developing the technology assumptions database.
PyPSA-Eur-Sec Version 0.1.0
See release notes for full details.
This is the first release of PyPSA-Eur-Sec, a model of the European energy system at the transmission network level that covers the full ENTSO-E area.
It is known to work with PyPSA-Eur v0.1.0 (commit bb3477c) and PyPSA v0.17.0.
We are making this release since in version 0.2.0 we will introduce changes to allow myopic investment planning that will require minor changes for users of the overnight investment planning.
PyPSA-Eur-Sec builds on the electricity generation and transmission model PyPSA-Eur to add demand and supply for the following sectors: transport, space and water heating, biomass, industry and industrial feedstocks. This completes the energy system and includes all greenhouse gas emitters except waste management, agriculture, forestry and land use.
PyPSA-Eur-Sec was initially based on the model PyPSA-Eur-Sec-30 described in the paper Synergies of sector coupling and transmission reinforcement in a cost-optimised, highly renewable European energy system (2018) but it differs by being based on the higher resolution electricity transmission model PyPSA-Eur rather than a one-node-per-country model, and by including biomass, industry, industrial feedstocks, aviation, shipping, better carbon management, carbon capture and usage/sequestration, and gas networks.
PyPSA-Eur-Sec includes PyPSA-Eur as a snakemake subworkflow. PyPSA-Eur-Sec uses PyPSA-Eur to build the clustered transmission model along with wind, solar PV and hydroelectricity potentials and time series. Then PyPSA-Eur-Sec adds other conventional generators, storage units and the additional sectors.