From 66c9513fbd58ed9c3a70a1bfefe46dc454ca4c8c Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Fri, 5 Jan 2024 17:20:52 +0100 Subject: [PATCH] prepare release notes and amend documentation --- CITATION.cff | 2 +- config/config.default.yaml | 2 +- doc/conf.py | 4 +- doc/configtables/costs.csv | 1 + doc/configtables/sector.csv | 8 + doc/foresight.rst | 2 +- doc/preparation.rst | 13 + doc/release_notes.rst | 322 +++++++++++++----- scripts/build_monthly_prices.py | 2 - .../determine_availability_matrix_MD_UA.py | 3 + 10 files changed, 258 insertions(+), 101 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index c80b73ef0..f8b28b5f8 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -6,7 +6,7 @@ cff-version: 1.1.0 message: "If you use this package, please cite it in the following way." title: "PyPSA-Eur: An open sector-coupled optimisation model of the European energy system" repository: https://github.com/pypsa/pypsa-eur -version: 0.8.1 +version: 0.9.0 license: MIT authors: - family-names: Brown diff --git a/config/config.default.yaml b/config/config.default.yaml index bc067266a..c59ff3944 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: CC0-1.0 # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration -version: 0.8.1 +version: 0.9.0 tutorial: false logging: diff --git a/doc/conf.py b/doc/conf.py index 1ddae4667..fe577ac7a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -80,9 +80,9 @@ # built documents. # # The short X.Y version. -version = "0.8" +version = "0.9" # The full version, including alpha/beta/rc tags. -release = "0.8.1" +release = "0.9.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/configtables/costs.csv b/doc/configtables/costs.csv index e307985df..b69c0bf99 100644 --- a/doc/configtables/costs.csv +++ b/doc/configtables/costs.csv @@ -2,6 +2,7 @@ year,--,YYYY; e.g. '2030',Year for which to retrieve cost assumptions of ``resources/costs.csv``. version,--,vX.X.X; e.g. 'v0.5.0',Version of ``technology-data`` repository to use. rooftop_share,--,float,Share of rooftop PV when calculating capital cost of solar (joint rooftop and utility-scale PV). +social_discountrate,p.u.,float,Social discount rate to compare costs in different investment periods. 0.02 corresponds to a social discount rate of 2%. fill_values,--,float,Default values if not specified for a technology in ``resources/costs.csv``. capital_cost,EUR/MW,Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float.,"For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``." marginal_cost,EUR/MWh,Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float.,"For the given technologies, assumptions about their marginal operating costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``." diff --git a/doc/configtables/sector.csv b/doc/configtables/sector.csv index b6a10d43a..be0969748 100644 --- a/doc/configtables/sector.csv +++ b/doc/configtables/sector.csv @@ -91,6 +91,7 @@ regional_co2 _sequestration_potential,,, -- years_of_storage,years,float,The years until potential exhausted at optimised annual rate co2_sequestration_potential,MtCO2/a,float,The potential of sequestering CO2 in Europe per year co2_sequestration_cost,currency/tCO2,float,The cost of sequestering a ton of CO2 +co2_sequestration_lifetime,years,int,The lifetime of a CO2 sequestration site co2_spatial,--,"{true, false}","Add option to spatially resolve carrier representing stored carbon dioxide. This allows for more detailed modelling of CCUTS, e.g. regarding the capturing of industrial process emissions, usage as feedstock for electrofuels, transport of carbon dioxide, and geological sequestration sites." ,,, co2network,--,"{true, false}",Add option for planning a new carbon dioxide transmission network @@ -130,3 +131,10 @@ biogas_upgrading_cc,--,"{true, false}",Add option to capture CO2 from biomass up conventional_generation,,,Add a more detailed description of conventional carriers. Any power generation requires the consumption of fuel from nodes representing that fuel. biomass_to_liquid,--,"{true, false}",Add option for transforming solid biomass into liquid fuel with the same properties as oil biosng,--,"{true, false}",Add option for transforming solid biomass into synthesis gas with the same properties as natural gas +limit_max_growth,,, +-- enable,--,"{true, false}",Add option to limit the maximum growth of a carrier +-- factor,p.u.,float,The maximum growth factor of a carrier (e.g. 1.3 allows 30% larger than max historic growth) +-- max_growth,,, +-- -- {carrier},GW,float,The historic maximum growth of a carrier +-- max_relative_growth, +-- -- {carrier},p.u.,float,The historic maximum relative growth of a carrier \ No newline at end of file diff --git a/doc/foresight.rst b/doc/foresight.rst index dd1e0eccc..f8ea6108c 100644 --- a/doc/foresight.rst +++ b/doc/foresight.rst @@ -41,7 +41,7 @@ Perfect foresight scenarios .. warning:: - Perfect foresight is currently implemented as a first test version. + Perfect foresight is currently implemented as an experimental test version. For running perfect foresight scenarios, you can adjust the ``config/config.perfect.yaml``: diff --git a/doc/preparation.rst b/doc/preparation.rst index 5cdc80316..d8f768395 100644 --- a/doc/preparation.rst +++ b/doc/preparation.rst @@ -94,6 +94,13 @@ Rule ``build_electricity_demand`` .. automodule:: build_electricity_demand +.. _monthlyprices: + +Rule ``build_monthly_prices`` +============================= + +.. automodule:: build_monthly_prices + .. _ship: Rule ``build_ship_raster`` @@ -102,6 +109,12 @@ Rule ``build_ship_raster`` .. automodule:: build_ship_raster +.. _availabilitymatrixmdua: + +Rule ``determine_availability_matrix_MD_UA`` +============================================ + +.. automodule:: determine_availability_matrix_MD_UA .. _renewableprofiles: diff --git a/doc/release_notes.rst b/doc/release_notes.rst index f1b9bcb9f..9baeeb88c 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -7,153 +7,287 @@ Release Notes ########################################## -Upcoming Release -================ +.. Upcoming Release +.. ================ + +.. * new features + +PyPSA-Eur 0.9.0 (5th January 2024) +================================== + +**New Features** + +* Add option to specify losses for bidirectional links, e.g. pipelines or HVDC + links, in configuration file under ``sector: transmission_efficiency:``. Users + can specify static or length-dependent values as well as a length-dependent + electricity demand for compression, which is implemented as a multi-link to + the local electricity buses. The bidirectional links will then be split into + two unidirectional links with linked capacities (https://github.com/PyPSA/pypsa-eur/pull/739). + +* Merged option to extend geographical scope to Ukraine and Moldova. These + countries are excluded by default and is currently constrained to power-sector + only parts of the workflow. A special config file + `config/config.entsoe-all.yaml` was added as an example to run the workflow + with all ENTSO-E member countries (including observer members like Ukraine and + Moldova). Moldova can currently only be included in conjunction with Ukraine + due to the absence of demand data. The Crimean power system is manually + reconnected to the main Ukrainian grid with the configuration option + `reconnect_crimea` (https://github.com/PyPSA/pypsa-eur/pull/321). + +* New experimental support for multi-decade optimisation with perfect foresight + (``foresight: perfect``). Maximum growth rates for carriers, global carbon + budget constraints and emission constraints for particular investment periods. + +* Add option to reference an additional source file where users can specify + custom ``extra_functionality`` constraints in the configuration file. The + default setting points to an empty hull at + ``data/custom_extra_functionality.py`` (https://github.com/PyPSA/pypsa-eur/pull/824). + +* Add locations, capacities and costs of existing gas storage using Global + Energy Monitor's `Europe Gas Tracker + `_ + (https://github.com/PyPSA/pypsa-eur/pull/835). + +* Add option to use `LUISA Base Map + `_ 50m land + coverage dataset for land eligibility analysis in + :mod:`build_renewable_profiles`. Settings are analogous to the CORINE dataset + but with the key ``luisa:`` in the configuration file. To leverage the + dataset's full advantages, set the excluder resolution to 50m + (``excluder_resolution: 50``). For land category codes, see `Annex 1 of the + technical documentation + `_ + (https://github.com/PyPSA/pypsa-eur/pull/842). + +* Add option to capture CO2 contained in biogas when upgrading (``sector: + biogas_to_gas_cc``) (https://github.com/PyPSA/pypsa-eur/pull/615). + +* If load shedding is activated, it is now applied to all carriers, not only + electricity (https://github.com/PyPSA/pypsa-eur/pull/784). + +* Add option for heat vents in district heating (``sector: + central_heat_vent:``). The combination of must-run conditions for some + power-to-X processes, waste heat usage enabled and decreasing heating demand, + can lead to infeasibilities in pathway optimisation for some investment + periods since larger Fischer-Tropsch capacities are needed in early years but + the waste heat exceeds the heat demand in later investment periods. + (https://github.com/PyPSA/pypsa-eur/pull/791). + +* Allow possibility to go from copperplated to regionally resolved methanol and + oil demand with switches ``sector: regional_methanol_demand: true`` and + ``sector: regional_oil_demand: true``. This allows nodal/regional CO2 + constraints to be applied (https://github.com/PyPSA/pypsa-eur/pull/827). + +* Allow retrofitting of existing gas boilers to hydrogen boilers in pathway + optimisation. + +* Add option to add time-varying CO2 emission prices (electricity-only, ``costs: + emission_prices: co2_monthly_prices: true``). This is linked to the new + ``{opts}`` wildcard option ``Ept``. + +* Network clustering can now consider efficiency classes when aggregating + carriers. The option ``clustering: consider_efficiency_classes:`` aggregates + each carriers into the top 10-quantile (high), the bottom 90-quantile (low), + and everything in between (medium). + +* Added option ``conventional: dynamic_fuel_price:`` to consider the monthly + fluctuating fuel prices for conventional generators. Refer to the CSV file + ``data/validation/monthly_fuel_price.csv``. + +* For hydro-electricity, add switches ``flatten_dispatch`` to consider an upper + limit for the hydro dispatch. The limit is given by the average capacity + factor plus the buffer given in ``flatten_dispatch_buffer``. + +* Extend options for waste heat usage from Haber-Bosch, methanolisation and + methanation (https://github.com/PyPSA/pypsa-eur/pull/834). + +* Add new ``sector_opts`` wildcard option "nowasteheat" to disable all waste + heat usage (https://github.com/PyPSA/pypsa-eur/pull/834). + +* Add new rule ``retrieve_irena`` to automatically retrieve up-to-date values + for existing renewables capacities (https://github.com/PyPSA/pypsa-eur/pull/756). + +* Print Irreducible Infeasible Subset (IIS) if model is infeasible. Only for + solvers with IIS support (https://github.com/PyPSA/pypsa-eur/pull/841). * More wildcard options now have a corresponding config entry. If the wildcard is given, then its value is used. If the wildcard is not given but the options in config are enabled, then the value from config is used. If neither is - given, the options are skipped. + given, the options are skipped (https://github.com/PyPSA/pypsa-eur/pull/827). + +* Validate downloads from Zenodo using MD5 checksums. This identifies corrupted + or incomplete downloads (https://github.com/PyPSA/pypsa-eur/pull/821). + +* Add rule ``sync`` to synchronise with a remote machine using the ``rsync`` + library. Configuration settings are found under ``remote:``. + +**Breaking Changes** + +* Remove all negative loads on the ``co2 atmosphere`` bus representing emissions + for e.g. fixed fossil demands for transport oil. Instead these are handled + more transparently with a fixed transport oil demand and a link taking care of + the emissions to the ``co2 atmosphere`` bus. This is also a preparation for + endogenous transport optimisation, where demand will be subject to + optimisation (e.g. fuel switching in the transport sector) + (https://github.com/PyPSA/pypsa-eur/pull/827). + +* Process emissions from steam crackers (i.e. naphtha processing for HVC) are + now piped from the consumption link to the process emissions bus where the + model can decide about carbon capture. Previously the process emissions for + naphtha were a fixed load (https://github.com/PyPSA/pypsa-eur/pull/827). * Distinguish between stored and sequestered CO2. Stored CO2 is stored overground in tanks and can be used for CCU (e.g. methanolisation). Sequestered CO2 is stored underground and can no longer be used for CCU. This distinction is made because storage in tanks is more expensive than underground storage. The link that connects stored and sequestered CO2 is - unidirectional. + unidirectional (https://github.com/PyPSA/pypsa-eur/pull/844). -* Increase deployment density of solar to 5.1 MW/sqkm by default. +* Files extracted from sector-coupled data bundle have been moved from ``data/`` + to ``data/sector-bundle``. -* Default to full electrification of land transport by 2050. +* Split configuration to enable SMR and SMR CC (``sector: smr:`` and ``sector: + smr_cc:``) (https://github.com/PyPSA/pypsa-eur/pull/757). -* Default to approximating transmission losses in HVAC lines - (``transmission_losses: 2``). * Add separate option to add resistive heaters to the technology choices (``sector: resistive_heaters:``). Previously they were always added when - boilers were added. + boilers were added (https://github.com/PyPSA/pypsa-eur/pull/808). -* Resolve code issues for endogenous building retrofitting. Select correct - sector names, address deprecations, distinguish between district heating, decentral - heating in urban areas or rural areas for floor area calculations. +* Remove HELMETH option (``sector: helmeth:``). -* Remove all negative loads on the ``co2 atmosphere`` bus representing emissions - for e.g. fixed fossil demands for transport oil. Instead these are handled - more transparently with a fixed transport oil demand and a link taking care of - the emissions to the ``co2 atmosphere`` bus. This is also a preparation for - endogenous transport optimisation, where demand will be subject to - optimisation (e.g. fuel switching in the transport sector). +* Remove "conservative" renewable potentials estimation option + (https://github.com/PyPSA/pypsa-eur/pull/838). -* Allow possibility to go from copperplated to regionally resolved methanol and - oil demand with switches ``sector: regional_methanol_demand: true`` and - ``sector: regional_oil_demand: true``. This allows nodal/regional CO2 - constraints to be applied. - -* Process emissions from steam crackers (i.e. naphtha processing for HVC) are now - piped from the consumption link to the process emissions bus where the model - can decide about carbon capture. Previously the process emissions for naphtha - were a fixed load. - -* Add option to specify losses for bidirectional links, e.g. pipelines or HVDC - links, in configuration file under ``sector: transmission_efficiency:``. Users - can specify static or length-dependent values as well as a length-dependent - electricity demand for compression, which is implemented as a multi-link to - the local electricity buses. The bidirectional links will then be split into - two unidirectional links with linked capacities. +**Changes** -* Pin ``snakemake`` version to below 8.0.0, as the new version is not yet - supported by ``pypsa-eur``. +* Updated Global Energy Monitor LNG terminal data to March 2023 version + (https://github.com/PyPSA/pypsa-eur/pull/707). -* Updated Global Energy Monitor LNG terminal data to March 2023 version. +* For industry distribution, use EPRTR as fallback if ETS data is not available + (https://github.com/PyPSA/pypsa-eur/pull/721). -* For industry distribution, use EPRTR as fallback if ETS data is not available. +* It is now possible to specify years for biomass potentials which do not exist + in the JRC-ENSPRESO database, e.g. 2037. These are linearly interpolated + (https://github.com/PyPSA/pypsa-eur/pull/744). -* The minimum capacity for renewable generators when using the myopic option has been fixed. +* In pathway mode, the biomass potential is linked to the investment year + (https://github.com/PyPSA/pypsa-eur/pull/744). -* Files downloaded from zenodo are now write-protected to prevent accidental re-download. +* Increase allowed deployment density of solar to 5.1 MW/sqkm by default. -* Files extracted from sector-coupled data bundle have been moved from ``data/`` to ``data/sector-bundle``. +* Default to full electrification of land transport by 2050. -* New feature multi-decade optimisation with perfect foresight. +* Provide exogenous transition settings in 5-year steps. -* It is now possible to specify years for biomass potentials which do not exist - in the JRC-ENSPRESO database, e.g. 2037. These are linearly interpolated. +* Default to approximating transmission losses in HVAC lines + (``transmission_losses: 2``). -* In pathway mode, the biomass potential is linked to the investment year. +* Use electrolysis waste heat by default. -* Rule ``purge`` now initiates a dialog to confirm if purge is desired. +* Set minimum part loads for PtX processes to 30% for methanolisation and + methanation, and to 70% for Fischer-Tropsch synthesis. -* Rule ``retrieve_irena`` get updated values for renewables capacities. +* Add VOM as marginal cost to PtX processes + (https://github.com/PyPSA/pypsa-eur/pull/830). -* Rule ``retrieve_wdpa`` updated to not only check for current and previous, but also potentially next months dataset availability. +* Add pelletizing costs for biomass boilers (https://github.com/PyPSA/pypsa-eur/pull/833). -* Split configuration to enable SMR and SMR CC. +* Update default offshore wind turbine model to "NREL Reference 2020 ATB 5.5 MW" + (https://github.com/PyPSA/pypsa-eur/pull/832). -* Bugfix: The unit of the capital cost of Haber-Bosch plants was corrected. +* Switch to using hydrogen and electricity inputs for Haber-Bosch from + https://github.com/PyPSA/technology-data (https://github.com/PyPSA/pypsa-eur/pull/831). * The configuration setting for country focus weights when clustering the network has been moved from ``focus_weights:`` to ``clustering: - focus_weights:``. Backwards compatibility to old config files is maintained. + focus_weights:``. Backwards compatibility to old config files is maintained + (https://github.com/PyPSA/pypsa-eur/pull/794). -* Extend options for waste usage from Haber-Bosch, methanolisation and methanation. +* The ``mock_snakemake`` function can now be used with a Snakefile from a + different directory using the new ``root_dir`` argument + (https://github.com/PyPSA/pypsa-eur/pull/771). -* Use electrolysis waste heat by default. +* Rule ``purge`` now initiates a dialog to confirm if purge is desired + (https://github.com/PyPSA/pypsa-eur/pull/745). -* Add new ``sector_opts`` wildcard option "nowasteheat" to disable all waste heat usage. +* Files downloaded from zenodo are now write-protected to prevent accidental + re-download (https://github.com/PyPSA/pypsa-eur/pull/730). -* Set minimum part loads for PtX processes to 30% for methanolisation and methanation, and to 70% for Fischer-Tropsch synthesis. +* Performance improvements for rule ``build_ship_raster`` + (https://github.com/PyPSA/pypsa-eur/pull/845). -* Add VOM as marginal cost to PtX processes. +* Improve time logging in :mod:`build_renewable_profiles` + (https://github.com/PyPSA/pypsa-eur/pull/837). -* Add pelletizing costs for biomass boilers. +* In myopic pathway optimisation, disable power grid expansion if line volume + already hit (https://github.com/PyPSA/pypsa-eur/pull/840). -* The ``mock_snakemake`` function can now be used with a Snakefile from a different directory using the new ``root_dir`` argument. +* JRC-ENSPRESO data is now downloaded from a Zenodo mirror because the link was + unreliable (https://github.com/PyPSA/pypsa-eur/pull/801). -* Switch to using hydrogen and electricity inputs for Haber-Bosch from https://github.com/PyPSA/technology-data. +* Add focus weights option for clustering to documentation + (https://github.com/PyPSA/pypsa-eur/pull/781). -* Add option to capture CO2 contained in biogas when upgrading (``sector: biogas_to_gas_cc``). +* Add proxy for biomass transport costs if no explicit biomass transport network + is considered (https://github.com/PyPSA/pypsa-eur/pull/711). -* Merged option to extend geographical scope to Ukraine and Moldova. These - countries are excluded by default and is currently constrained to power-sector - only parts of the workflow. A special config file - `config/config.entsoe-all.yaml` was added as an example to run the workflow - with all ENTSO-E member countries (including observer members like Ukraine and - Moldova). Moldova can currently only be included in conjunction with Ukraine - due to the absence of demand data. The Crimean power system is manually - reconnected to the main Ukrainian grid with the configuration option - `reconnect_crimea`. +**Bugs and Compatibility** -* Add option to reference an additional source file where users can specify - custom ``extra_functionality`` constraints in the configuration file. The - default setting points to an empty hull at - ``data/custom_extra_functionality.py``. +* The minimum PyPSA version is now 0.26.1. -* Validate downloads from Zenodo using MD5 checksums. This identifies corrupted - or incomplete downloads. +* Update to ``tsam>=0.2.3`` for performance improvents in temporal clustering. -* Add locations, capacities and costs of existing gas storage using Global - Energy Monitor's `Europe Gas Tracker - `_. +* Pin ``snakemake`` version to below 8.0.0, as the new version is not yet + supported. The next release will switch to the requirement ``snakemake>=8``. -* Remove HELMETH option. +* Bugfix: Add coke and coal demand for integrated steelworks + (https://github.com/PyPSA/pypsa-eur/pull/718). -* Print Irreducible Infeasible Subset (IIS) if model is infeasible. Only for - solvers with IIS support. +* Bugfix: Make :mod:`build_renewable_profiles` consider subsets of cutout time + scope (https://github.com/PyPSA/pypsa-eur/pull/709). -* Add option to use `LUISA Base Map - `_ 50m land - coverage dataset for land eligibility analysis in - :mod:`build_renewable_profiles`. Settings are analogous to the CORINE dataset - but with the key ``luisa:`` in the configuration file. To leverage the - dataset's full advantages, set the excluder resolution to 50m - (``excluder_resolution: 50``). For land category codes, see `Annex 1 of the - technical documentation - `_. +* Bugfix: In :mod:`simplify network`, remove 'underground' column to avoid + consense error (https://github.com/PyPSA/pypsa-eur/pull/714). -**Bugs and Compatibility** +* Bugfix: Fix in :mod:`add_existing_baseyear` to account for the case when there + is no rural heating demand for some nodes in network + (https://github.com/PyPSA/pypsa-eur/pull/706). + +* Bugfix: The unit of the capital cost of Haber-Bosch plants was corrected + (https://github.com/PyPSA/pypsa-eur/pull/829). + +* The minimum capacity for renewable generators when using the myopic option has + been fixed (https://github.com/PyPSA/pypsa-eur/pull/728). + +* Compatibility for running with single node and single country + (https://github.com/PyPSA/pypsa-eur/pull/839). + +* A bug preventing the addition of custom powerplants specified in + ``data/custom_powerplants.csv`` was fixed. + (https://github.com/PyPSA/pypsa-eur/pull/732) + +* Fix nodal fraction in :mod:`add_existing_year` when using distributed + generators (https://github.com/PyPSA/pypsa-eur/pull/798). + +* Bugfix: District heating without progress caused division by zero + (https://github.com/PyPSA/pypsa-eur/pull/796). + +* Bugfix: Drop duplicates in :mod:`build_industrial_distribution_keys`, which + can occur through the geopandas ``.sjoin()`` function if a point is located on + a border (https://github.com/PyPSA/pypsa-eur/pull/726). + +* For network clustering fall back to ``ipopt`` when ``highs`` is designated + solver (https://github.com/PyPSA/pypsa-eur/pull/795). + +* Fix typo in buses definition for oil boilers in ``add_industry`` in + :mod:`prepare_sector_network` (https://github.com/PyPSA/pypsa-eur/pull/812). + +* Resolve code issues for endogenous building retrofitting. Select correct + sector names, address deprecations, distinguish between district heating, + decentral heating in urban areas or rural areas for floor area calculations + (https://github.com/PyPSA/pypsa-eur/pull/808). -* A bug preventing custom powerplants specified in ``data/custom_powerplants.csv`` was fixed. (https://github.com/PyPSA/pypsa-eur/pull/732) -* Fix nodal fraction in ``add_existing_year`` when using distributed generators -* Fix typo in buses definition for oil boilers in ``add_industry`` in ``prepare_sector_network`` +* Addressed various deprecations. PyPSA-Eur 0.8.1 (27th July 2023) diff --git a/scripts/build_monthly_prices.py b/scripts/build_monthly_prices.py index c2e88972f..214d39fbe 100644 --- a/scripts/build_monthly_prices.py +++ b/scripts/build_monthly_prices.py @@ -6,8 +6,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ -Created on Tue May 16 10:37:35 2023. - This script extracts monthly fuel prices of oil, gas, coal and lignite, as well as CO2 prices diff --git a/scripts/determine_availability_matrix_MD_UA.py b/scripts/determine_availability_matrix_MD_UA.py index 8d10f45d1..efe9a7126 100644 --- a/scripts/determine_availability_matrix_MD_UA.py +++ b/scripts/determine_availability_matrix_MD_UA.py @@ -2,6 +2,9 @@ # SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors # # SPDX-License-Identifier: MIT +""" +Create land elibility analysis for Ukraine and Moldova with different datasets. +""" import functools import logging