Merge branch 'master' into validation
This commit is contained in:
commit
1ea8cf47d8
@ -6,7 +6,7 @@ cff-version: 1.1.0
|
|||||||
message: "If you use this package, please cite it in the following way."
|
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"
|
title: "PyPSA-Eur: An open sector-coupled optimisation model of the European energy system"
|
||||||
repository: https://github.com/pypsa/pypsa-eur
|
repository: https://github.com/pypsa/pypsa-eur
|
||||||
version: 0.8.0
|
version: 0.8.1
|
||||||
license: MIT
|
license: MIT
|
||||||
authors:
|
authors:
|
||||||
- family-names: Brown
|
- family-names: Brown
|
||||||
|
19
README.md
19
README.md
@ -9,7 +9,7 @@ SPDX-License-Identifier: CC-BY-4.0
|
|||||||
![Size](https://img.shields.io/github/repo-size/pypsa/pypsa-eur)
|
![Size](https://img.shields.io/github/repo-size/pypsa/pypsa-eur)
|
||||||
[![Zenodo PyPSA-Eur](https://zenodo.org/badge/DOI/10.5281/zenodo.3520874.svg)](https://doi.org/10.5281/zenodo.3520874)
|
[![Zenodo PyPSA-Eur](https://zenodo.org/badge/DOI/10.5281/zenodo.3520874.svg)](https://doi.org/10.5281/zenodo.3520874)
|
||||||
[![Zenodo PyPSA-Eur-Sec](https://zenodo.org/badge/DOI/10.5281/zenodo.3938042.svg)](https://doi.org/10.5281/zenodo.3938042)
|
[![Zenodo PyPSA-Eur-Sec](https://zenodo.org/badge/DOI/10.5281/zenodo.3938042.svg)](https://doi.org/10.5281/zenodo.3938042)
|
||||||
[![Snakemake](https://img.shields.io/badge/snakemake-≥5.0.0-brightgreen.svg?style=flat)](https://snakemake.readthedocs.io)
|
[![Snakemake](https://img.shields.io/badge/snakemake-≥7.7.0-brightgreen.svg?style=flat)](https://snakemake.readthedocs.io)
|
||||||
[![REUSE status](https://api.reuse.software/badge/github.com/pypsa/pypsa-eur)](https://api.reuse.software/info/github.com/pypsa/pypsa-eur)
|
[![REUSE status](https://api.reuse.software/badge/github.com/pypsa/pypsa-eur)](https://api.reuse.software/info/github.com/pypsa/pypsa-eur)
|
||||||
[![Stack Exchange questions](https://img.shields.io/stackexchange/stackoverflow/t/pypsa)](https://stackoverflow.com/questions/tagged/pypsa)
|
[![Stack Exchange questions](https://img.shields.io/stackexchange/stackoverflow/t/pypsa)](https://stackoverflow.com/questions/tagged/pypsa)
|
||||||
|
|
||||||
@ -35,17 +35,18 @@ The model is designed to be imported into the open toolbox
|
|||||||
[PyPSA](https://github.com/PyPSA/PyPSA).
|
[PyPSA](https://github.com/PyPSA/PyPSA).
|
||||||
|
|
||||||
**WARNING**: PyPSA-Eur is under active development and has several
|
**WARNING**: PyPSA-Eur is under active development and has several
|
||||||
[limitations](https://pypsa-eur.readthedocs.io/en/latest/limitations.html)
|
[limitations](https://pypsa-eur.readthedocs.io/en/latest/limitations.html) which
|
||||||
which you should understand before using the model. The github repository
|
you should understand before using the model. The github repository
|
||||||
[issues](https://github.com/PyPSA/pypsa-eur/issues) collect known topics we are
|
[issues](https://github.com/PyPSA/pypsa-eur/issues) collect known topics we are
|
||||||
working on (please feel free to help or make suggestions). The
|
working on (please feel free to help or make suggestions). The
|
||||||
[documentation](https://pypsa-eur.readthedocs.io/) remains somewhat patchy. You
|
[documentation](https://pypsa-eur.readthedocs.io/) remains somewhat patchy. You
|
||||||
can find showcases of the model's capabilities in the preprint [Benefits of a
|
can find showcases of the model's capabilities in the Joule paper [The potential
|
||||||
Hydrogen Network in Europe](https://arxiv.org/abs/2207.05816), a [paper in Joule
|
role of a hydrogen network in
|
||||||
with a description of the industry sector](https://arxiv.org/abs/2109.09563), or
|
Europe](https://doi.org/10.1016/j.joule.2023.06.016), another [paper in Joule
|
||||||
in [a 2021 presentation at EMP-E](https://nworbmot.org/energy/brown-empe.pdf).
|
with a description of the industry
|
||||||
We cannot support this model if you choose to use it. We do not recommend to use
|
sector](https://doi.org/10.1016/j.joule.2022.04.016), or in [a 2021 presentation
|
||||||
the full resolution network model for simulations. At high granularity the
|
at EMP-E](https://nworbmot.org/energy/brown-empe.pdf). We do not recommend to
|
||||||
|
use the full resolution network model for simulations. At high granularity the
|
||||||
assignment of loads and generators to the nearest network node may not be a
|
assignment of loads and generators to the nearest network node may not be a
|
||||||
correct assumption, depending on the topology of the underlying distribution
|
correct assumption, depending on the topology of the underlying distribution
|
||||||
grid, and local grid bottlenecks may cause unrealistic load-shedding or
|
grid, and local grid bottlenecks may cause unrealistic load-shedding or
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration
|
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration
|
||||||
version: 0.8.0
|
version: 0.8.1
|
||||||
tutorial: false
|
tutorial: false
|
||||||
|
|
||||||
logging:
|
logging:
|
||||||
@ -238,6 +238,12 @@ lines:
|
|||||||
max_extension: .inf
|
max_extension: .inf
|
||||||
length_factor: 1.25
|
length_factor: 1.25
|
||||||
under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity
|
under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity
|
||||||
|
dynamic_line_rating:
|
||||||
|
activate: false
|
||||||
|
cutout: europe-2013-era5
|
||||||
|
correction_factor: 0.95
|
||||||
|
max_voltage_difference: false
|
||||||
|
max_line_rating: false
|
||||||
|
|
||||||
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#links
|
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#links
|
||||||
links:
|
links:
|
||||||
|
@ -60,6 +60,12 @@ renewable:
|
|||||||
clustering:
|
clustering:
|
||||||
exclude_carriers: ["OCGT", "offwind-ac", "coal"]
|
exclude_carriers: ["OCGT", "offwind-ac", "coal"]
|
||||||
|
|
||||||
|
lines:
|
||||||
|
dynamic_line_rating:
|
||||||
|
activate: true
|
||||||
|
cutout: be-03-2013-era5
|
||||||
|
max_line_rating: 1.3
|
||||||
|
|
||||||
|
|
||||||
solving:
|
solving:
|
||||||
solver:
|
solver:
|
||||||
|
195
data/costs.csv
195
data/costs.csv
@ -1,195 +0,0 @@
|
|||||||
technology,year,parameter,value,unit,source
|
|
||||||
solar-rooftop,2030,discount rate,0.04,per unit,standard for decentral
|
|
||||||
onwind,2030,lifetime,30,years,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind,2030,lifetime,30,years,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
solar,2030,lifetime,25,years,IEA2010
|
|
||||||
solar-rooftop,2030,lifetime,25,years,IEA2010
|
|
||||||
solar-utility,2030,lifetime,25,years,IEA2010
|
|
||||||
PHS,2030,lifetime,80,years,IEA2010
|
|
||||||
hydro,2030,lifetime,80,years,IEA2010
|
|
||||||
ror,2030,lifetime,80,years,IEA2010
|
|
||||||
OCGT,2030,lifetime,30,years,IEA2010
|
|
||||||
nuclear,2030,lifetime,45,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
CCGT,2030,lifetime,30,years,IEA2010
|
|
||||||
coal,2030,lifetime,40,years,IEA2010
|
|
||||||
lignite,2030,lifetime,40,years,IEA2010
|
|
||||||
geothermal,2030,lifetime,40,years,IEA2010
|
|
||||||
biomass,2030,lifetime,30,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
oil,2030,lifetime,30,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
onwind,2030,investment,1040,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind,2030,investment,1640,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind-ac-station,2030,investment,250,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind-ac-connection-submarine,2030,investment,2685,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind-ac-connection-underground,2030,investment,1342,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind-dc-station,2030,investment,400,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction
|
|
||||||
offwind-dc-connection-submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf
|
|
||||||
offwind-dc-connection-underground,2030,investment,1000,EUR/MW/km,Haertel 2017; average + 13% learning reduction
|
|
||||||
solar,2030,investment,600,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
biomass,2030,investment,2209,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
geothermal,2030,investment,3392,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
coal,2030,investment,1300,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC)
|
|
||||||
lignite,2030,investment,1500,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
solar-rooftop,2030,investment,725,EUR/kWel,ETIP PV
|
|
||||||
solar-utility,2030,investment,425,EUR/kWel,ETIP PV
|
|
||||||
PHS,2030,investment,2000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
hydro,2030,investment,2000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
ror,2030,investment,3000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
OCGT,2030,investment,400,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
nuclear,2030,investment,6000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
CCGT,2030,investment,800,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
oil,2030,investment,400,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
onwind,2030,FOM,2.450549,%/year,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind,2030,FOM,2.304878,%/year,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
solar,2030,FOM,4.166667,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
solar-rooftop,2030,FOM,2,%/year,ETIP PV
|
|
||||||
solar-utility,2030,FOM,3,%/year,ETIP PV
|
|
||||||
biomass,2030,FOM,4.526935,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
geothermal,2030,FOM,2.358491,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
coal,2030,FOM,1.923076,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC)
|
|
||||||
lignite,2030,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC)
|
|
||||||
oil,2030,FOM,1.5,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
PHS,2030,FOM,1,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
hydro,2030,FOM,1,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
ror,2030,FOM,2,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
CCGT,2030,FOM,2.5,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
OCGT,2030,FOM,3.75,%/year,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
onwind,2030,VOM,2.3,EUR/MWhel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
offwind,2030,VOM,2.7,EUR/MWhel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data
|
|
||||||
solar,2030,VOM,0.01,EUR/MWhel,RES costs made up to fix curtailment order
|
|
||||||
coal,2030,VOM,6,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC)
|
|
||||||
lignite,2030,VOM,7,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
CCGT,2030,VOM,4,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
OCGT,2030,VOM,3,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
nuclear,2030,VOM,8,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
gas,2030,fuel,21.6,EUR/MWhth,IEA2011b
|
|
||||||
uranium,2030,fuel,3,EUR/MWhth,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
oil,2030,VOM,3,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
nuclear,2030,fuel,3,EUR/MWhth,IEA2011b
|
|
||||||
biomass,2030,fuel,7,EUR/MWhth,IEA2011b
|
|
||||||
coal,2030,fuel,8.4,EUR/MWhth,IEA2011b
|
|
||||||
lignite,2030,fuel,2.9,EUR/MWhth,IEA2011b
|
|
||||||
oil,2030,fuel,50,EUR/MWhth,IEA WEM2017 97USD/boe = http://www.iea.org/media/weowebsite/2017/WEM_Documentation_WEO2017.pdf
|
|
||||||
PHS,2030,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
hydro,2030,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
ror,2030,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
OCGT,2030,efficiency,0.39,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
CCGT,2030,efficiency,0.5,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
biomass,2030,efficiency,0.468,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
geothermal,2030,efficiency,0.239,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
nuclear,2030,efficiency,0.337,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
gas,2030,CO2 intensity,0.187,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php
|
|
||||||
coal,2030,efficiency,0.464,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC)
|
|
||||||
lignite,2030,efficiency,0.447,per unit,DIW DataDoc http://hdl.handle.net/10419/80348
|
|
||||||
oil,2030,efficiency,0.393,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 CT
|
|
||||||
coal,2030,CO2 intensity,0.354,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php
|
|
||||||
lignite,2030,CO2 intensity,0.334,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php
|
|
||||||
oil,2030,CO2 intensity,0.248,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php
|
|
||||||
geothermal,2030,CO2 intensity,0.026,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php
|
|
||||||
electrolysis,2030,investment,350,EUR/kWel,Palzer Thesis
|
|
||||||
electrolysis,2030,FOM,4,%/year,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
electrolysis,2030,lifetime,18,years,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
electrolysis,2030,efficiency,0.8,per unit,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
fuel cell,2030,investment,339,EUR/kWel,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
fuel cell,2030,FOM,3,%/year,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
fuel cell,2030,lifetime,20,years,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013
|
|
||||||
fuel cell,2030,efficiency,0.58,per unit,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 conservative 2020
|
|
||||||
hydrogen storage,2030,investment,11.2,USD/kWh,budischak2013
|
|
||||||
hydrogen storage,2030,lifetime,20,years,budischak2013
|
|
||||||
hydrogen underground storage,2030,investment,0.5,EUR/kWh,maximum from https://www.nrel.gov/docs/fy10osti/46719.pdf
|
|
||||||
hydrogen underground storage,2030,lifetime,40,years,http://www.acatech.de/fileadmin/user_upload/Baumstruktur_nach_Website/Acatech/root/de/Publikationen/Materialien/ESYS_Technologiesteckbrief_Energiespeicher.pdf
|
|
||||||
H2 pipeline,2030,investment,267,EUR/MW/km,Welder et al https://doi.org/10.1016/j.ijhydene.2018.12.156
|
|
||||||
H2 pipeline,2030,lifetime,40,years,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf
|
|
||||||
H2 pipeline,2030,FOM,5,%/year,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf
|
|
||||||
H2 pipeline,2030,efficiency,0.98,per unit,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf
|
|
||||||
methanation,2030,investment,1000,EUR/kWH2,Schaber thesis
|
|
||||||
methanation,2030,lifetime,25,years,Schaber thesis
|
|
||||||
methanation,2030,FOM,3,%/year,Schaber thesis
|
|
||||||
methanation,2030,efficiency,0.6,per unit,Palzer; Breyer for DAC
|
|
||||||
helmeth,2030,investment,1000,EUR/kW,no source
|
|
||||||
helmeth,2030,lifetime,25,years,no source
|
|
||||||
helmeth,2030,FOM,3,%/year,no source
|
|
||||||
helmeth,2030,efficiency,0.8,per unit,HELMETH press release
|
|
||||||
DAC,2030,investment,250,EUR/(tCO2/a),Fasihi/Climeworks
|
|
||||||
DAC,2030,lifetime,30,years,Fasihi
|
|
||||||
DAC,2030,FOM,4,%/year,Fasihi
|
|
||||||
battery inverter,2030,investment,411,USD/kWel,budischak2013
|
|
||||||
battery inverter,2030,lifetime,20,years,budischak2013
|
|
||||||
battery inverter,2030,efficiency,0.9,per unit charge/discharge,budischak2013; Lund and Kempton (2008) http://dx.doi.org/10.1016/j.enpol.2008.06.007
|
|
||||||
battery inverter,2030,FOM,3,%/year,budischak2013
|
|
||||||
battery storage,2030,investment,192,USD/kWh,budischak2013
|
|
||||||
battery storage,2030,lifetime,15,years,budischak2013
|
|
||||||
decentral air-sourced heat pump,2030,investment,1050,EUR/kWth,HP; Palzer thesis
|
|
||||||
decentral air-sourced heat pump,2030,lifetime,20,years,HP; Palzer thesis
|
|
||||||
decentral air-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis
|
|
||||||
decentral air-sourced heat pump,2030,efficiency,3,per unit,default for costs
|
|
||||||
decentral air-sourced heat pump,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
decentral ground-sourced heat pump,2030,investment,1400,EUR/kWth,Palzer thesis
|
|
||||||
decentral ground-sourced heat pump,2030,lifetime,20,years,Palzer thesis
|
|
||||||
decentral ground-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis
|
|
||||||
decentral ground-sourced heat pump,2030,efficiency,4,per unit,default for costs
|
|
||||||
decentral ground-sourced heat pump,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
central air-sourced heat pump,2030,investment,700,EUR/kWth,Palzer thesis
|
|
||||||
central air-sourced heat pump,2030,lifetime,20,years,Palzer thesis
|
|
||||||
central air-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis
|
|
||||||
central air-sourced heat pump,2030,efficiency,3,per unit,default for costs
|
|
||||||
retrofitting I,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
retrofitting I,2030,lifetime,50,years,Palzer thesis
|
|
||||||
retrofitting I,2030,FOM,1,%/year,Palzer thesis
|
|
||||||
retrofitting I,2030,investment,50,EUR/m2/fraction reduction,Palzer thesis
|
|
||||||
retrofitting II,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
retrofitting II,2030,lifetime,50,years,Palzer thesis
|
|
||||||
retrofitting II,2030,FOM,1,%/year,Palzer thesis
|
|
||||||
retrofitting II,2030,investment,250,EUR/m2/fraction reduction,Palzer thesis
|
|
||||||
water tank charger,2030,efficiency,0.9,per unit,HP
|
|
||||||
water tank discharger,2030,efficiency,0.9,per unit,HP
|
|
||||||
decentral water tank storage,2030,investment,860,EUR/m3,IWES Interaktion
|
|
||||||
decentral water tank storage,2030,FOM,1,%/year,HP
|
|
||||||
decentral water tank storage,2030,lifetime,20,years,HP
|
|
||||||
decentral water tank storage,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
central water tank storage,2030,investment,30,EUR/m3,IWES Interaktion
|
|
||||||
central water tank storage,2030,FOM,1,%/year,HP
|
|
||||||
central water tank storage,2030,lifetime,40,years,HP
|
|
||||||
decentral resistive heater,2030,investment,100,EUR/kWhth,Schaber thesis
|
|
||||||
decentral resistive heater,2030,lifetime,20,years,Schaber thesis
|
|
||||||
decentral resistive heater,2030,FOM,2,%/year,Schaber thesis
|
|
||||||
decentral resistive heater,2030,efficiency,0.9,per unit,Schaber thesis
|
|
||||||
decentral resistive heater,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
central resistive heater,2030,investment,100,EUR/kWhth,Schaber thesis
|
|
||||||
central resistive heater,2030,lifetime,20,years,Schaber thesis
|
|
||||||
central resistive heater,2030,FOM,2,%/year,Schaber thesis
|
|
||||||
central resistive heater,2030,efficiency,0.9,per unit,Schaber thesis
|
|
||||||
decentral gas boiler,2030,investment,175,EUR/kWhth,Palzer thesis
|
|
||||||
decentral gas boiler,2030,lifetime,20,years,Palzer thesis
|
|
||||||
decentral gas boiler,2030,FOM,2,%/year,Palzer thesis
|
|
||||||
decentral gas boiler,2030,efficiency,0.9,per unit,Palzer thesis
|
|
||||||
decentral gas boiler,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
central gas boiler,2030,investment,63,EUR/kWhth,Palzer thesis
|
|
||||||
central gas boiler,2030,lifetime,22,years,Palzer thesis
|
|
||||||
central gas boiler,2030,FOM,1,%/year,Palzer thesis
|
|
||||||
central gas boiler,2030,efficiency,0.9,per unit,Palzer thesis
|
|
||||||
decentral CHP,2030,lifetime,25,years,HP
|
|
||||||
decentral CHP,2030,investment,1400,EUR/kWel,HP
|
|
||||||
decentral CHP,2030,FOM,3,%/year,HP
|
|
||||||
decentral CHP,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
central CHP,2030,lifetime,25,years,HP
|
|
||||||
central CHP,2030,investment,650,EUR/kWel,HP
|
|
||||||
central CHP,2030,FOM,3,%/year,HP
|
|
||||||
decentral solar thermal,2030,discount rate,0.04,per unit,Palzer thesis
|
|
||||||
decentral solar thermal,2030,FOM,1.3,%/year,HP
|
|
||||||
decentral solar thermal,2030,investment,270000,EUR/1000m2,HP
|
|
||||||
decentral solar thermal,2030,lifetime,20,years,HP
|
|
||||||
central solar thermal,2030,FOM,1.4,%/year,HP
|
|
||||||
central solar thermal,2030,investment,140000,EUR/1000m2,HP
|
|
||||||
central solar thermal,2030,lifetime,20,years,HP
|
|
||||||
HVAC overhead,2030,investment,400,EUR/MW/km,Hagspiel
|
|
||||||
HVAC overhead,2030,lifetime,40,years,Hagspiel
|
|
||||||
HVAC overhead,2030,FOM,2,%/year,Hagspiel
|
|
||||||
HVDC overhead,2030,investment,400,EUR/MW/km,Hagspiel
|
|
||||||
HVDC overhead,2030,lifetime,40,years,Hagspiel
|
|
||||||
HVDC overhead,2030,FOM,2,%/year,Hagspiel
|
|
||||||
HVDC submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf
|
|
||||||
HVDC submarine,2030,lifetime,40,years,Hagspiel
|
|
||||||
HVDC submarine,2030,FOM,2,%/year,Hagspiel
|
|
||||||
HVDC inverter pair,2030,investment,150000,EUR/MW,Hagspiel
|
|
||||||
HVDC inverter pair,2030,lifetime,40,years,Hagspiel
|
|
||||||
HVDC inverter pair,2030,FOM,2,%/year,Hagspiel
|
|
|
@ -82,7 +82,7 @@ author = "Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann
|
|||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = "0.8"
|
version = "0.8"
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = "0.8.0"
|
release = "0.8.1"
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
@ -5,3 +5,9 @@ s_nom_max,MW,"float","Global upper limit for the maximum capacity of each extend
|
|||||||
max_extension,MW,"float","Upper limit for the extended capacity of each extendable line."
|
max_extension,MW,"float","Upper limit for the extended capacity of each extendable line."
|
||||||
length_factor,--,float,"Correction factor to account for the fact that buses are *not* connected by lines through air-line distance."
|
length_factor,--,float,"Correction factor to account for the fact that buses are *not* connected by lines through air-line distance."
|
||||||
under_construction,--,"One of {'zero': set capacity to zero, 'remove': remove completely, 'keep': keep with full capacity}","Specifies how to handle lines which are currently under construction."
|
under_construction,--,"One of {'zero': set capacity to zero, 'remove': remove completely, 'keep': keep with full capacity}","Specifies how to handle lines which are currently under construction."
|
||||||
|
dynamic_line_rating,,,
|
||||||
|
-- activate,bool,"true or false","Whether to take dynamic line rating into account"
|
||||||
|
-- cutout,--,"Should be a folder listed in the configuration ``atlite: cutouts:`` (e.g. 'europe-2013-era5') or reference an existing folder in the directory ``cutouts``. Source module must be ERA5.","Specifies the directory where the relevant weather data ist stored."
|
||||||
|
-- correction_factor,--,"float","Factor to compensate for overestimation of wind speeds in hourly averaged wind data"
|
||||||
|
-- max_voltage_difference,deg,"float","Maximum voltage angle difference in degrees or 'false' to disable"
|
||||||
|
-- max_line_rating,--,"float","Maximum line rating relative to nominal capacity without DLR, e.g. 1.3 or 'false' to disable"
|
||||||
|
|
@ -78,10 +78,10 @@ them:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
You can find showcases of the model's capabilities in the Supplementary Materials of the
|
You can find showcases of the model's capabilities in the Supplementary Materials of the
|
||||||
preprint `Benefits of a Hydrogen Network in Europe
|
Joule paper `The potential role of a hydrogen network in Europe
|
||||||
<https://arxiv.org/abs/2207.05816>`_, the Supplementary Materials of the `paper in Joule with a
|
<https://doi.org/10.1016/j.joule.2023.06.016>`_, the Supplementary Materials of another `paper in Joule with a
|
||||||
description of the industry sector
|
description of the industry sector
|
||||||
<https://arxiv.org/abs/2109.09563>`_, or in `a 2021 presentation
|
<https://doi.org/10.1016/j.joule.2022.04.016>`_, or in `a 2021 presentation
|
||||||
at EMP-E <https://nworbmot.org/energy/brown-empe.pdf>`_.
|
at EMP-E <https://nworbmot.org/energy/brown-empe.pdf>`_.
|
||||||
The sector-coupled extension of PyPSA-Eur was
|
The sector-coupled extension of PyPSA-Eur was
|
||||||
initially described in the paper `Synergies of sector coupling and transmission
|
initially described in the paper `Synergies of sector coupling and transmission
|
||||||
@ -179,10 +179,13 @@ For sector-coupling studies: ::
|
|||||||
|
|
||||||
@misc{PyPSAEurSec,
|
@misc{PyPSAEurSec,
|
||||||
author = "Fabian Neumann and Elisabeth Zeyen and Marta Victoria and Tom Brown",
|
author = "Fabian Neumann and Elisabeth Zeyen and Marta Victoria and Tom Brown",
|
||||||
title = "The Potential Role of a Hydrogen Network in Europe",
|
title = "The potential role of a hydrogen network in Europe",
|
||||||
year = "2022",
|
journal "Joule",
|
||||||
|
volume = "7",
|
||||||
|
pages = "1--25"
|
||||||
|
year = "2023",
|
||||||
eprint = "2207.05816",
|
eprint = "2207.05816",
|
||||||
url = "https://arxiv.org/abs/2207.05816",
|
doi = "10.1016/j.joule.2022.04.016",
|
||||||
}
|
}
|
||||||
|
|
||||||
For sector-coupling studies with pathway optimisation: ::
|
For sector-coupling studies with pathway optimisation: ::
|
||||||
|
@ -10,43 +10,129 @@ Release Notes
|
|||||||
Upcoming Release
|
Upcoming Release
|
||||||
================
|
================
|
||||||
|
|
||||||
* ``param:`` section in rule definition are added to track changed settings in ``config.yaml``. The goal is to automatically re-execute rules whose parameters have changed. See `Non-file parameters for rules <https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules>`_ in the snakemake documentation.
|
* Updated Global Energy Monitor LNG terminal data to March 2023 version.
|
||||||
|
|
||||||
* **Important:** The configuration files are now located in the ``config`` directory. This counts for ``config.default.yaml``, ``config.yaml`` as well as the test configuration files which are now located in ``config/test``. Config files that are still in the root directory will be ignored.
|
PyPSA-Eur 0.8.1 (27th July 2023)
|
||||||
|
================================
|
||||||
|
|
||||||
* Bugfix: Correct typo in the CPLEX solver configuration in ``config.default.yaml``.
|
**New Features**
|
||||||
|
|
||||||
* Bugfix: Error in ``add_electricity`` where carriers were added multiple times to the network, resulting in a non-unique carriers error.
|
* Add option to consider dynamic line rating based on wind speeds and
|
||||||
|
temperature according to `Glaum and Hofmann (2022)
|
||||||
|
<https://arxiv.org/abs/2208.04716>`_. See configuration section ``lines:
|
||||||
|
dynamic_line_rating:`` for more details. (https://github.com/PyPSA/pypsa-eur/pull/675)
|
||||||
|
|
||||||
* Renamed script file from PyPSA-EUR ``build_load_data`` to ``build_electricity_demand`` and ``retrieve_load_data`` to ``retrieve_electricity_demand``.
|
* Add option to include a piecewise linear approximation of transmission losses,
|
||||||
|
e.g. by setting ``solving: options: transmission_losses: 2`` for an
|
||||||
* Fix docs readthedocs built
|
approximation with two tangents. (https://github.com/PyPSA/pypsa-eur/pull/664)
|
||||||
|
|
||||||
* Add plain hydrogen turbine as additional re-electrification option besides
|
* Add plain hydrogen turbine as additional re-electrification option besides
|
||||||
hydrogen fuel cell. Add switches for both re-electrification options under
|
hydrogen fuel cell. Add switches for both re-electrification options under
|
||||||
``sector: hydrogen_turbine:`` and ``sector: hydrogen_fuel_cell:``.
|
``sector: hydrogen_turbine:`` and ``sector: hydrogen_fuel_cell:``.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/647)
|
||||||
* A new function named ``sanitize_carrier`` ensures that all unique carrier names are present in the network's carriers attribute, and adds nice names and colors for each carrier according to the provided configuration dictionary.
|
|
||||||
|
|
||||||
* Additional tech_color are added to include previously unlisted carriers.
|
|
||||||
|
|
||||||
* Remove ``vresutils`` dependency.
|
|
||||||
|
|
||||||
* Added configuration option ``lines: max_extension:`` and ``links:
|
* Added configuration option ``lines: max_extension:`` and ``links:
|
||||||
max_extension:``` to control the maximum capacity addition per line or link in
|
max_extension:``` to control the maximum capacity addition per line or link in
|
||||||
MW.
|
MW. (https://github.com/PyPSA/pypsa-eur/pull/665)
|
||||||
|
|
||||||
* Add option to include a piecewise linear approximation of transmission losses,
|
* A ``param:`` section in the snakemake rule definitions was added to track
|
||||||
e.g. by setting ``solving: options: transmission_losses: 2`` for an
|
changed settings in ``config.yaml``. The goal is to automatically re-execute
|
||||||
approximation with two tangents.
|
rules where parameters have changed. See `Non-file parameters for rules
|
||||||
|
<https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules>`_
|
||||||
|
in the snakemake documentation. (https://github.com/PyPSA/pypsa-eur/pull/663)
|
||||||
|
|
||||||
|
* A new function named ``sanitize_carrier`` ensures that all unique carrier
|
||||||
|
names are present in the network's carriers attribute, and adds nice names and
|
||||||
|
colors for each carrier according to the provided configuration dictionary.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/653,
|
||||||
|
https://github.com/PyPSA/pypsa-eur/pull/690)
|
||||||
|
|
||||||
|
* The configuration settings have been documented in more detail.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/685)
|
||||||
|
|
||||||
|
**Breaking Changes**
|
||||||
|
|
||||||
|
* The configuration files are now located in the ``config`` directory. This
|
||||||
|
includes the ``config.default.yaml``, ``config.yaml`` as well as the test
|
||||||
|
configuration files which are now located in the ``config/test`` directory.
|
||||||
|
Config files that are still in the root directory will be ignored.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/640)
|
||||||
|
|
||||||
|
* Renamed script and rule name from ``build_load_data`` to
|
||||||
|
``build_electricity_demand`` and ``retrieve_load_data`` to
|
||||||
|
``retrieve_electricity_demand``. (https://github.com/PyPSA/pypsa-eur/pull/642,
|
||||||
|
https://github.com/PyPSA/pypsa-eur/pull/652)
|
||||||
|
|
||||||
|
* Updated to new spatial clustering module introduced in PyPSA v0.25.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/696)
|
||||||
|
|
||||||
|
**Changes**
|
||||||
|
|
||||||
* Handling networks with links with multiple inputs/outputs no longer requires
|
* Handling networks with links with multiple inputs/outputs no longer requires
|
||||||
to override component attributes.
|
to override component attributes.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/695)
|
||||||
|
|
||||||
* Added configuration option ``enable: retrieve:`` to control whether data
|
* Added configuration option ``enable: retrieve:`` to control whether data
|
||||||
retrieval rules from snakemake are enabled or not. Th default setting ``auto``
|
retrieval rules from snakemake are enabled or not. Th default setting ``auto``
|
||||||
will automatically detect and enable/disable the rules based on internet connectivity.
|
will automatically detect and enable/disable the rules based on internet
|
||||||
|
connectivity. (https://github.com/PyPSA/pypsa-eur/pull/694)
|
||||||
|
|
||||||
|
* Update to ``technology-data`` v0.6.0.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/704)
|
||||||
|
|
||||||
|
* Handle data bundle extraction paths via ``snakemake.output``.
|
||||||
|
|
||||||
|
* Additional technologies are added to ``tech_color`` in the configuration files
|
||||||
|
to include previously unlisted carriers.
|
||||||
|
|
||||||
|
* Doc: Added note that Windows is only tested in CI with WSL.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/issues/697)
|
||||||
|
|
||||||
|
* Doc: Add support section. (https://github.com/PyPSA/pypsa-eur/pull/656)
|
||||||
|
|
||||||
|
* Open ``rasterio`` files with ``rioxarray``.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/474)
|
||||||
|
|
||||||
|
* Migrate CI to ``micromamba``. (https://github.com/PyPSA/pypsa-eur/pull/700)
|
||||||
|
|
||||||
|
**Bugs and Compatibility**
|
||||||
|
|
||||||
|
* The new minimum PyPSA version is v0.25.1.
|
||||||
|
|
||||||
|
* Removed ``vresutils`` dependency.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/662)
|
||||||
|
|
||||||
|
* Adapt to new ``powerplantmatching`` version.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/687,
|
||||||
|
https://github.com/PyPSA/pypsa-eur/pull/701)
|
||||||
|
|
||||||
|
* Bugfix: Correct typo in the CPLEX solver configuration in
|
||||||
|
``config.default.yaml``. (https://github.com/PyPSA/pypsa-eur/pull/630)
|
||||||
|
|
||||||
|
* Bugfix: Error in ``add_electricity`` where carriers were added multiple times
|
||||||
|
to the network, resulting in a non-unique carriers error.
|
||||||
|
|
||||||
|
* Bugfix of optional reserve constraint.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/645)
|
||||||
|
|
||||||
|
* Fix broken equity constraints logic.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/679)
|
||||||
|
|
||||||
|
* Fix addition of load shedding generators.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/649)
|
||||||
|
|
||||||
|
* Fix automatic building of documentation on readthedocs.org.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/658)
|
||||||
|
|
||||||
|
* Bugfix: Update network clustering to avoid adding deleted links in clustered
|
||||||
|
network. (https://github.com/PyPSA/pypsa-eur/pull/678)
|
||||||
|
|
||||||
|
* Address ``geopandas`` deprecations.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/678)
|
||||||
|
|
||||||
|
* Fix bug with underground hydrogen storage creation, where for some small model
|
||||||
|
regions no cavern storage is available.
|
||||||
|
(https://github.com/PyPSA/pypsa-eur/pull/672)
|
||||||
|
|
||||||
|
|
||||||
PyPSA-Eur 0.8.0 (18th March 2023)
|
PyPSA-Eur 0.8.0 (18th March 2023)
|
||||||
|
@ -12,74 +12,93 @@ dependencies:
|
|||||||
- _libgcc_mutex=0.1
|
- _libgcc_mutex=0.1
|
||||||
- _openmp_mutex=4.5
|
- _openmp_mutex=4.5
|
||||||
- affine=2.4.0
|
- affine=2.4.0
|
||||||
- alsa-lib=1.2.8
|
- alsa-lib=1.2.9
|
||||||
- ampl-mp=3.1.0
|
- ampl-mp=3.1.0
|
||||||
- amply=0.1.5
|
- amply=0.1.6
|
||||||
|
- anyio=3.7.1
|
||||||
- appdirs=1.4.4
|
- appdirs=1.4.4
|
||||||
|
- argon2-cffi=21.3.0
|
||||||
|
- argon2-cffi-bindings=21.2.0
|
||||||
- asttokens=2.2.1
|
- asttokens=2.2.1
|
||||||
- atlite=0.2.10
|
- async-lru=2.0.3
|
||||||
|
- atk-1.0=2.38.0
|
||||||
|
- atlite=0.2.11
|
||||||
- attr=2.5.1
|
- attr=2.5.1
|
||||||
- attrs=22.2.0
|
- attrs=23.1.0
|
||||||
|
- aws-c-auth=0.7.0
|
||||||
|
- aws-c-cal=0.6.0
|
||||||
|
- aws-c-common=0.8.23
|
||||||
|
- aws-c-compression=0.2.17
|
||||||
|
- aws-c-event-stream=0.3.1
|
||||||
|
- aws-c-http=0.7.11
|
||||||
|
- aws-c-io=0.13.28
|
||||||
|
- aws-c-mqtt=0.8.14
|
||||||
|
- aws-c-s3=0.3.13
|
||||||
|
- aws-c-sdkutils=0.1.11
|
||||||
|
- aws-checksums=0.1.16
|
||||||
|
- aws-crt-cpp=0.20.3
|
||||||
|
- aws-sdk-cpp=1.10.57
|
||||||
|
- babel=2.12.1
|
||||||
- backcall=0.2.0
|
- backcall=0.2.0
|
||||||
- backports=1.0
|
- backports=1.0
|
||||||
- backports.functools_lru_cache=1.6.4
|
- backports.functools_lru_cache=1.6.5
|
||||||
- beautifulsoup4=4.11.2
|
- beautifulsoup4=4.12.2
|
||||||
- blosc=1.21.3
|
- bleach=6.0.0
|
||||||
- bokeh=2.4.3
|
- blosc=1.21.4
|
||||||
|
- bokeh=3.2.1
|
||||||
- boost-cpp=1.78.0
|
- boost-cpp=1.78.0
|
||||||
- bottleneck=1.3.6
|
- bottleneck=1.3.7
|
||||||
- branca=0.6.0
|
- branca=0.6.0
|
||||||
- brotli=1.0.9
|
- brotli=1.0.9
|
||||||
- brotli-bin=1.0.9
|
- brotli-bin=1.0.9
|
||||||
- brotlipy=0.7.0
|
- brotli-python=1.0.9
|
||||||
- bzip2=1.0.8
|
- bzip2=1.0.8
|
||||||
- c-ares=1.18.1
|
- c-ares=1.19.1
|
||||||
- ca-certificates=2022.12.7
|
- c-blosc2=2.10.0
|
||||||
|
- ca-certificates=2023.7.22
|
||||||
- cairo=1.16.0
|
- cairo=1.16.0
|
||||||
- cartopy=0.21.1
|
- cartopy=0.21.1
|
||||||
- cdsapi=0.5.1
|
- cdsapi=0.6.1
|
||||||
- certifi=2022.12.7
|
- certifi=2023.7.22
|
||||||
- cffi=1.15.1
|
- cffi=1.15.1
|
||||||
- cfitsio=4.2.0
|
- cfitsio=4.2.0
|
||||||
- cftime=1.6.2
|
- cftime=1.6.2
|
||||||
- charset-normalizer=2.1.1
|
- charset-normalizer=3.2.0
|
||||||
- click=8.1.3
|
- click=8.1.6
|
||||||
- click-plugins=1.1.1
|
- click-plugins=1.1.1
|
||||||
- cligj=0.7.2
|
- cligj=0.7.2
|
||||||
- cloudpickle=2.2.1
|
- cloudpickle=2.2.1
|
||||||
- coin-or-cbc=2.10.8
|
|
||||||
- coin-or-cgl=0.60.6
|
|
||||||
- coin-or-clp=1.17.7
|
|
||||||
- coin-or-osi=0.108.7
|
|
||||||
- coin-or-utils=2.11.6
|
|
||||||
- coincbc=2.10.8
|
|
||||||
- colorama=0.4.6
|
- colorama=0.4.6
|
||||||
- configargparse=1.5.3
|
- comm=0.1.3
|
||||||
|
- configargparse=1.7
|
||||||
- connection_pool=0.0.3
|
- connection_pool=0.0.3
|
||||||
- country_converter=0.8.0
|
- contourpy=1.1.0
|
||||||
- cryptography=39.0.1
|
- country_converter=1.0.0
|
||||||
- curl=7.88.0
|
- curl=8.2.0
|
||||||
- cycler=0.11.0
|
- cycler=0.11.0
|
||||||
- cytoolz=0.12.0
|
- cytoolz=0.12.2
|
||||||
- dask=2023.2.0
|
- dask=2023.7.1
|
||||||
- dask-core=2023.2.0
|
- dask-core=2023.7.1
|
||||||
- datrie=0.8.2
|
- datrie=0.8.2
|
||||||
- dbus=1.13.6
|
- dbus=1.13.6
|
||||||
|
- debugpy=1.6.7
|
||||||
- decorator=5.1.1
|
- decorator=5.1.1
|
||||||
|
- defusedxml=0.7.1
|
||||||
- deprecation=2.1.0
|
- deprecation=2.1.0
|
||||||
- descartes=1.1.0
|
- descartes=1.1.0
|
||||||
- distributed=2023.2.0
|
- distributed=2023.7.1
|
||||||
- distro=1.8.0
|
- distro=1.8.0
|
||||||
- docutils=0.19
|
- docutils=0.20.1
|
||||||
- dpath=2.1.4
|
- dpath=2.1.6
|
||||||
- entsoe-py=0.5.8
|
- entrypoints=0.4
|
||||||
|
- entsoe-py=0.5.10
|
||||||
- et_xmlfile=1.1.0
|
- et_xmlfile=1.1.0
|
||||||
- exceptiongroup=1.1.0
|
- exceptiongroup=1.1.2
|
||||||
- executing=1.2.0
|
- executing=1.2.0
|
||||||
- expat=2.5.0
|
- expat=2.5.0
|
||||||
- fftw=3.3.10
|
- filelock=3.12.2
|
||||||
- filelock=3.9.0
|
- fiona=1.9.4
|
||||||
- fiona=1.9.1
|
- flit-core=3.9.0
|
||||||
- folium=0.14.0
|
- folium=0.14.0
|
||||||
- font-ttf-dejavu-sans-mono=2.37
|
- font-ttf-dejavu-sans-mono=2.37
|
||||||
- font-ttf-inconsolata=3.000
|
- font-ttf-inconsolata=3.000
|
||||||
@ -88,293 +107,366 @@ dependencies:
|
|||||||
- fontconfig=2.14.2
|
- fontconfig=2.14.2
|
||||||
- fonts-conda-ecosystem=1
|
- fonts-conda-ecosystem=1
|
||||||
- fonts-conda-forge=1
|
- fonts-conda-forge=1
|
||||||
- fonttools=4.38.0
|
- fonttools=4.41.1
|
||||||
- freetype=2.12.1
|
- freetype=2.12.1
|
||||||
- freexl=1.0.6
|
- freexl=1.0.6
|
||||||
- fsspec=2023.1.0
|
- fribidi=1.0.10
|
||||||
- gdal=3.6.2
|
- fsspec=2023.6.0
|
||||||
|
- gdal=3.7.0
|
||||||
|
- gdk-pixbuf=2.42.10
|
||||||
- geographiclib=1.52
|
- geographiclib=1.52
|
||||||
- geojson-rewind=1.0.2
|
- geojson-rewind=1.0.2
|
||||||
- geopandas=0.12.2
|
- geopandas=0.13.2
|
||||||
- geopandas-base=0.12.2
|
- geopandas-base=0.13.2
|
||||||
- geopy=2.3.0
|
- geopy=2.3.0
|
||||||
- geos=3.11.1
|
- geos=3.11.2
|
||||||
- geotiff=1.7.1
|
- geotiff=1.7.1
|
||||||
- gettext=0.21.1
|
- gettext=0.21.1
|
||||||
|
- gflags=2.2.2
|
||||||
- giflib=5.2.1
|
- giflib=5.2.1
|
||||||
- gitdb=4.0.10
|
- gitdb=4.0.10
|
||||||
- gitpython=3.1.30
|
- gitpython=3.1.32
|
||||||
- glib=2.74.1
|
- glib=2.76.4
|
||||||
- glib-tools=2.74.1
|
- glib-tools=2.76.4
|
||||||
|
- glog=0.6.0
|
||||||
|
- gmp=6.2.1
|
||||||
- graphite2=1.3.13
|
- graphite2=1.3.13
|
||||||
- gst-plugins-base=1.22.0
|
- graphviz=8.1.0
|
||||||
- gstreamer=1.22.0
|
- gst-plugins-base=1.22.5
|
||||||
- gstreamer-orc=0.4.33
|
- gstreamer=1.22.5
|
||||||
- harfbuzz=6.0.0
|
- gtk2=2.24.33
|
||||||
|
- gts=0.7.6
|
||||||
|
- harfbuzz=7.3.0
|
||||||
- hdf4=4.2.15
|
- hdf4=4.2.15
|
||||||
- hdf5=1.12.2
|
- hdf5=1.14.1
|
||||||
- heapdict=1.0.1
|
|
||||||
- humanfriendly=10.0
|
- humanfriendly=10.0
|
||||||
- icu=70.1
|
- icu=72.1
|
||||||
- idna=3.4
|
- idna=3.4
|
||||||
- importlib-metadata=6.0.0
|
- importlib-metadata=6.8.0
|
||||||
- importlib_resources=5.10.2
|
- importlib_metadata=6.8.0
|
||||||
|
- importlib_resources=6.0.0
|
||||||
- iniconfig=2.0.0
|
- iniconfig=2.0.0
|
||||||
- ipopt=3.14.11
|
- ipopt=3.14.12
|
||||||
- ipython=8.10.0
|
- ipykernel=6.24.0
|
||||||
- jack=1.9.22
|
- ipython=8.14.0
|
||||||
|
- ipython_genutils=0.2.0
|
||||||
|
- ipywidgets=8.0.7
|
||||||
- jedi=0.18.2
|
- jedi=0.18.2
|
||||||
- jinja2=3.1.2
|
- jinja2=3.1.2
|
||||||
- joblib=1.2.0
|
- joblib=1.3.0
|
||||||
- jpeg=9e
|
|
||||||
- json-c=0.16
|
- json-c=0.16
|
||||||
- jsonschema=4.17.3
|
- json5=0.9.14
|
||||||
- jupyter_core=5.2.0
|
- jsonschema=4.18.4
|
||||||
- kealib=1.5.0
|
- jsonschema-specifications=2023.7.1
|
||||||
|
- jupyter=1.0.0
|
||||||
|
- jupyter-lsp=2.2.0
|
||||||
|
- jupyter_client=8.3.0
|
||||||
|
- jupyter_console=6.6.3
|
||||||
|
- jupyter_core=5.3.1
|
||||||
|
- jupyter_events=0.6.3
|
||||||
|
- jupyter_server=2.7.0
|
||||||
|
- jupyter_server_terminals=0.4.4
|
||||||
|
- jupyterlab=4.0.3
|
||||||
|
- jupyterlab_pygments=0.2.2
|
||||||
|
- jupyterlab_server=2.24.0
|
||||||
|
- jupyterlab_widgets=3.0.8
|
||||||
|
- kealib=1.5.1
|
||||||
- keyutils=1.6.1
|
- keyutils=1.6.1
|
||||||
- kiwisolver=1.4.4
|
- kiwisolver=1.4.4
|
||||||
- krb5=1.20.1
|
- krb5=1.21.1
|
||||||
- lame=3.100
|
- lame=3.100
|
||||||
- lcms2=2.14
|
- lcms2=2.15
|
||||||
- ld_impl_linux-64=2.40
|
- ld_impl_linux-64=2.40
|
||||||
- lerc=4.0.0
|
- lerc=4.0.0
|
||||||
|
- libabseil=20230125.3
|
||||||
- libaec=1.0.6
|
- libaec=1.0.6
|
||||||
|
- libarchive=3.6.2
|
||||||
|
- libarrow=12.0.1
|
||||||
- libblas=3.9.0
|
- libblas=3.9.0
|
||||||
- libbrotlicommon=1.0.9
|
- libbrotlicommon=1.0.9
|
||||||
- libbrotlidec=1.0.9
|
- libbrotlidec=1.0.9
|
||||||
- libbrotlienc=1.0.9
|
- libbrotlienc=1.0.9
|
||||||
- libcap=2.66
|
- libcap=2.67
|
||||||
- libcblas=3.9.0
|
- libcblas=3.9.0
|
||||||
- libclang=15.0.7
|
- libclang=15.0.7
|
||||||
- libclang13=15.0.7
|
- libclang13=15.0.7
|
||||||
|
- libcrc32c=1.1.2
|
||||||
- libcups=2.3.3
|
- libcups=2.3.3
|
||||||
- libcurl=7.88.0
|
- libcurl=8.2.0
|
||||||
- libdb=6.2.32
|
- libdeflate=1.18
|
||||||
- libdeflate=1.17
|
|
||||||
- libedit=3.1.20191231
|
- libedit=3.1.20191231
|
||||||
- libev=4.33
|
- libev=4.33
|
||||||
- libevent=2.1.10
|
- libevent=2.1.12
|
||||||
|
- libexpat=2.5.0
|
||||||
- libffi=3.4.2
|
- libffi=3.4.2
|
||||||
- libflac=1.4.2
|
- libflac=1.4.3
|
||||||
- libgcc-ng=12.2.0
|
- libgcc-ng=13.1.0
|
||||||
- libgcrypt=1.10.1
|
- libgcrypt=1.10.1
|
||||||
- libgdal=3.6.2
|
- libgd=2.3.3
|
||||||
- libgfortran-ng=12.2.0
|
- libgdal=3.7.0
|
||||||
- libgfortran5=12.2.0
|
- libgfortran-ng=13.1.0
|
||||||
- libglib=2.74.1
|
- libgfortran5=13.1.0
|
||||||
- libgomp=12.2.0
|
- libglib=2.76.4
|
||||||
- libgpg-error=1.46
|
- libgomp=13.1.0
|
||||||
|
- libgoogle-cloud=2.12.0
|
||||||
|
- libgpg-error=1.47
|
||||||
|
- libgrpc=1.56.2
|
||||||
- libiconv=1.17
|
- libiconv=1.17
|
||||||
|
- libjpeg-turbo=2.1.5.1
|
||||||
- libkml=1.3.0
|
- libkml=1.3.0
|
||||||
- liblapack=3.9.0
|
- liblapack=3.9.0
|
||||||
- liblapacke=3.9.0
|
- liblapacke=3.9.0
|
||||||
- libllvm15=15.0.7
|
- libllvm15=15.0.7
|
||||||
- libnetcdf=4.8.1
|
- libnetcdf=4.9.2
|
||||||
- libnghttp2=1.51.0
|
- libnghttp2=1.52.0
|
||||||
- libnsl=2.0.0
|
- libnsl=2.0.0
|
||||||
|
- libnuma=2.0.16
|
||||||
- libogg=1.3.4
|
- libogg=1.3.4
|
||||||
- libopenblas=0.3.21
|
- libopenblas=0.3.23
|
||||||
- libopus=1.3.1
|
- libopus=1.3.1
|
||||||
- libpng=1.6.39
|
- libpng=1.6.39
|
||||||
- libpq=15.2
|
- libpq=15.3
|
||||||
|
- libprotobuf=4.23.3
|
||||||
|
- librsvg=2.56.1
|
||||||
- librttopo=1.1.0
|
- librttopo=1.1.0
|
||||||
- libsndfile=1.2.0
|
- libsndfile=1.2.0
|
||||||
|
- libsodium=1.0.18
|
||||||
- libspatialindex=1.9.3
|
- libspatialindex=1.9.3
|
||||||
- libspatialite=5.0.1
|
- libspatialite=5.0.1
|
||||||
- libsqlite=3.40.0
|
- libsqlite=3.42.0
|
||||||
- libssh2=1.10.0
|
- libssh2=1.11.0
|
||||||
- libstdcxx-ng=12.2.0
|
- libstdcxx-ng=13.1.0
|
||||||
- libsystemd0=252
|
- libsystemd0=253
|
||||||
- libtiff=4.5.0
|
- libthrift=0.18.1
|
||||||
|
- libtiff=4.5.1
|
||||||
- libtool=2.4.7
|
- libtool=2.4.7
|
||||||
- libudev1=252
|
- libutf8proc=2.8.0
|
||||||
- libuuid=2.32.1
|
- libuuid=2.38.1
|
||||||
- libvorbis=1.3.7
|
- libvorbis=1.3.7
|
||||||
- libwebp-base=1.2.4
|
- libwebp=1.3.1
|
||||||
- libxcb=1.13
|
- libwebp-base=1.3.1
|
||||||
|
- libxcb=1.15
|
||||||
- libxkbcommon=1.5.0
|
- libxkbcommon=1.5.0
|
||||||
- libxml2=2.10.3
|
- libxml2=2.11.4
|
||||||
- libxslt=1.1.37
|
- libxslt=1.1.37
|
||||||
- libzip=1.9.2
|
- libzip=1.9.2
|
||||||
- libzlib=1.2.13
|
- libzlib=1.2.13
|
||||||
- linopy=0.1.3
|
|
||||||
- locket=1.0.0
|
- locket=1.0.0
|
||||||
- lxml=4.9.2
|
- lxml=4.9.3
|
||||||
- lz4=4.3.2
|
- lz4=4.3.2
|
||||||
- lz4-c=1.9.4
|
- lz4-c=1.9.4
|
||||||
- lzo=2.10
|
- lzo=2.10
|
||||||
- mapclassify=2.5.0
|
- mapclassify=2.5.0
|
||||||
- markupsafe=2.1.2
|
- markupsafe=2.1.3
|
||||||
- matplotlib=3.5.3
|
- matplotlib=3.5.3
|
||||||
- matplotlib-base=3.5.3
|
- matplotlib-base=3.5.3
|
||||||
- matplotlib-inline=0.1.6
|
- matplotlib-inline=0.1.6
|
||||||
- memory_profiler=0.61.0
|
- memory_profiler=0.61.0
|
||||||
- metis=5.1.0
|
- metis=5.1.1
|
||||||
- mpg123=1.31.2
|
- mistune=3.0.0
|
||||||
- msgpack-python=1.0.4
|
- mpg123=1.31.3
|
||||||
|
- msgpack-python=1.0.5
|
||||||
- mumps-include=5.2.1
|
- mumps-include=5.2.1
|
||||||
- mumps-seq=5.2.1
|
- mumps-seq=5.2.1
|
||||||
- munch=2.5.0
|
- munch=4.0.0
|
||||||
- munkres=1.1.4
|
- munkres=1.1.4
|
||||||
- mysql-common=8.0.32
|
- mysql-common=8.0.33
|
||||||
- mysql-libs=8.0.32
|
- mysql-libs=8.0.33
|
||||||
- nbformat=5.7.3
|
- nbclient=0.8.0
|
||||||
- ncurses=6.3
|
- nbconvert=7.7.2
|
||||||
- netcdf4=1.6.2
|
- nbconvert-core=7.7.2
|
||||||
- networkx=3.0
|
- nbconvert-pandoc=7.7.2
|
||||||
|
- nbformat=5.9.1
|
||||||
|
- ncurses=6.4
|
||||||
|
- nest-asyncio=1.5.6
|
||||||
|
- netcdf4=1.6.4
|
||||||
|
- networkx=3.1
|
||||||
- nomkl=1.0
|
- nomkl=1.0
|
||||||
|
- notebook=7.0.0
|
||||||
|
- notebook-shim=0.2.3
|
||||||
- nspr=4.35
|
- nspr=4.35
|
||||||
- nss=3.88
|
- nss=3.89
|
||||||
- numexpr=2.8.3
|
- numexpr=2.8.4
|
||||||
- numpy=1.24
|
- numpy=1.25.1
|
||||||
- openjdk=17.0.3
|
- openjdk=17.0.3
|
||||||
- openjpeg=2.5.0
|
- openjpeg=2.5.0
|
||||||
- openpyxl=3.1.0
|
- openpyxl=3.1.2
|
||||||
- openssl=3.0.8
|
- openssl=3.1.1
|
||||||
- packaging=23.0
|
- orc=1.9.0
|
||||||
- pandas=1.5.3
|
- overrides=7.3.1
|
||||||
|
- packaging=23.1
|
||||||
|
- pandas=2.0.3
|
||||||
|
- pandoc=3.1.3
|
||||||
|
- pandocfilters=1.5.0
|
||||||
|
- pango=1.50.14
|
||||||
- parso=0.8.3
|
- parso=0.8.3
|
||||||
- partd=1.3.0
|
- partd=1.4.0
|
||||||
- patsy=0.5.3
|
- patsy=0.5.3
|
||||||
- pcre2=10.40
|
- pcre2=10.40
|
||||||
- pexpect=4.8.0
|
- pexpect=4.8.0
|
||||||
- pickleshare=0.7.5
|
- pickleshare=0.7.5
|
||||||
- pillow=9.4.0
|
- pillow=10.0.0
|
||||||
- pip=23.0
|
- pip=23.2.1
|
||||||
- pixman=0.40.0
|
- pixman=0.40.0
|
||||||
- pkgutil-resolve-name=1.3.10
|
- pkgutil-resolve-name=1.3.10
|
||||||
- plac=1.3.5
|
- plac=1.3.5
|
||||||
- platformdirs=3.0.0
|
- platformdirs=3.9.1
|
||||||
- pluggy=1.0.0
|
- pluggy=1.2.0
|
||||||
- ply=3.11
|
- ply=3.11
|
||||||
- pooch=1.6.0
|
- pooch=1.7.0
|
||||||
- poppler=22.12.0
|
- poppler=23.05.0
|
||||||
- poppler-data=0.4.12
|
- poppler-data=0.4.12
|
||||||
- postgresql=15.2
|
- postgresql=15.3
|
||||||
- powerplantmatching=0.5.6
|
- powerplantmatching=0.5.7
|
||||||
- progressbar2=4.2.0
|
- progressbar2=4.2.0
|
||||||
- proj=9.1.0
|
- proj=9.2.1
|
||||||
- prompt-toolkit=3.0.36
|
- prometheus_client=0.17.1
|
||||||
- psutil=5.9.4
|
- prompt-toolkit=3.0.39
|
||||||
|
- prompt_toolkit=3.0.39
|
||||||
|
- psutil=5.9.5
|
||||||
- pthread-stubs=0.4
|
- pthread-stubs=0.4
|
||||||
- ptyprocess=0.7.0
|
- ptyprocess=0.7.0
|
||||||
- pulp=2.7.0
|
- pulp=2.7.0
|
||||||
- pulseaudio=16.1
|
- pulseaudio-client=16.1
|
||||||
- pure_eval=0.2.2
|
- pure_eval=0.2.2
|
||||||
|
- py-cpuinfo=9.0.0
|
||||||
|
- pyarrow=12.0.1
|
||||||
- pycountry=22.3.5
|
- pycountry=22.3.5
|
||||||
- pycparser=2.21
|
- pycparser=2.21
|
||||||
- pygments=2.14.0
|
- pygments=2.15.1
|
||||||
- pyomo=6.4.4
|
- pyomo=6.6.1
|
||||||
- pyopenssl=23.0.0
|
- pyparsing=3.1.0
|
||||||
- pyparsing=3.0.9
|
- pyproj=3.6.0
|
||||||
- pyproj=3.4.1
|
|
||||||
- pypsa=0.22.1
|
|
||||||
- pyqt=5.15.7
|
- pyqt=5.15.7
|
||||||
- pyqt5-sip=12.11.0
|
- pyqt5-sip=12.11.0
|
||||||
- pyrsistent=0.19.3
|
|
||||||
- pyshp=2.3.1
|
- pyshp=2.3.1
|
||||||
- pysocks=1.7.1
|
- pysocks=1.7.1
|
||||||
- pytables=3.7.0
|
- pytables=3.8.0
|
||||||
- pytest=7.2.1
|
- pytest=7.4.0
|
||||||
- python=3.10.9
|
- python=3.10.12
|
||||||
- python-dateutil=2.8.2
|
- python-dateutil=2.8.2
|
||||||
- python-fastjsonschema=2.16.2
|
- python-fastjsonschema=2.18.0
|
||||||
- python-utils=3.5.2
|
- python-json-logger=2.0.7
|
||||||
|
- python-tzdata=2023.3
|
||||||
|
- python-utils=3.7.0
|
||||||
- python_abi=3.10
|
- python_abi=3.10
|
||||||
- pytz=2022.7.1
|
- pytz=2023.3
|
||||||
- pyxlsb=1.0.10
|
- pyxlsb=1.0.10
|
||||||
- pyyaml=6.0
|
- pyyaml=6.0
|
||||||
|
- pyzmq=25.1.0
|
||||||
- qt-main=5.15.8
|
- qt-main=5.15.8
|
||||||
- rasterio=1.3.4
|
- qtconsole=5.4.3
|
||||||
- readline=8.1.2
|
- qtconsole-base=5.4.3
|
||||||
- requests=2.28.1
|
- qtpy=2.3.1
|
||||||
- retry=0.9.2
|
- rasterio=1.3.8
|
||||||
- rich=12.5.1
|
- rdma-core=28.9
|
||||||
- rioxarray=0.13.3
|
- re2=2023.03.02
|
||||||
- rtree=1.0.0
|
- readline=8.2
|
||||||
- s2n=1.0.10
|
- referencing=0.30.0
|
||||||
- scikit-learn=1.1.1
|
- requests=2.31.0
|
||||||
- scipy=1.8.1
|
- reretry=0.11.8
|
||||||
|
- rfc3339-validator=0.1.4
|
||||||
|
- rfc3986-validator=0.1.1
|
||||||
|
- rioxarray=0.14.1
|
||||||
|
- rpds-py=0.9.2
|
||||||
|
- rtree=1.0.1
|
||||||
|
- s2n=1.3.46
|
||||||
|
- scikit-learn=1.3.0
|
||||||
|
- scipy=1.11.1
|
||||||
- scotch=6.0.9
|
- scotch=6.0.9
|
||||||
- seaborn=0.12.2
|
- seaborn=0.12.2
|
||||||
- seaborn-base=0.12.2
|
- seaborn-base=0.12.2
|
||||||
- setuptools=67.3.2
|
- send2trash=1.8.2
|
||||||
|
- setuptools=68.0.0
|
||||||
- setuptools-scm=7.1.0
|
- setuptools-scm=7.1.0
|
||||||
- setuptools_scm=7.1.0
|
- setuptools_scm=7.1.0
|
||||||
- shapely=2.0.1
|
- shapely=2.0.1
|
||||||
- sip=6.7.7
|
- sip=6.7.10
|
||||||
- six=1.16.0
|
- six=1.16.0
|
||||||
- smart_open=6.3.0
|
- smart_open=6.3.0
|
||||||
- smmap=3.0.5
|
- smmap=3.0.5
|
||||||
- snakemake-minimal=7.22.0
|
- snakemake-minimal=7.30.2
|
||||||
- snappy=1.1.9
|
- snappy=1.1.10
|
||||||
|
- sniffio=1.3.0
|
||||||
- snuggs=1.4.7
|
- snuggs=1.4.7
|
||||||
- sortedcontainers=2.4.0
|
- sortedcontainers=2.4.0
|
||||||
- soupsieve=2.3.2.post1
|
- soupsieve=2.3.2.post1
|
||||||
- sqlite=3.40.0
|
- sqlite=3.42.0
|
||||||
- stack_data=0.6.2
|
- stack_data=0.6.2
|
||||||
- statsmodels=0.13.5
|
- statsmodels=0.14.0
|
||||||
- stopit=1.1.2
|
- stopit=1.1.2
|
||||||
- tabula-py=2.6.0
|
- tabula-py=2.6.0
|
||||||
- tabulate=0.9.0
|
- tabulate=0.9.0
|
||||||
- tblib=1.7.0
|
- tblib=1.7.0
|
||||||
- threadpoolctl=3.1.0
|
- terminado=0.17.1
|
||||||
|
- threadpoolctl=3.2.0
|
||||||
- throttler=1.2.1
|
- throttler=1.2.1
|
||||||
- tiledb=2.13.2
|
- tiledb=2.13.2
|
||||||
|
- tinycss2=1.2.1
|
||||||
- tk=8.6.12
|
- tk=8.6.12
|
||||||
- toml=0.10.2
|
- toml=0.10.2
|
||||||
- tomli=2.0.1
|
- tomli=2.0.1
|
||||||
- toolz=0.12.0
|
- toolz=0.12.0
|
||||||
- toposort=1.9
|
- toposort=1.10
|
||||||
- tornado=6.2
|
- tornado=6.3.2
|
||||||
- tqdm=4.64.1
|
- tqdm=4.65.0
|
||||||
- traitlets=5.9.0
|
- traitlets=5.9.0
|
||||||
- typing-extensions=4.4.0
|
- typing-extensions=4.7.1
|
||||||
- typing_extensions=4.4.0
|
- typing_extensions=4.7.1
|
||||||
- tzcode=2022g
|
- typing_utils=0.1.0
|
||||||
- tzdata=2022g
|
- tzcode=2023c
|
||||||
|
- tzdata=2023c
|
||||||
|
- ucx=1.14.1
|
||||||
- unicodedata2=15.0.0
|
- unicodedata2=15.0.0
|
||||||
- unidecode=1.3.6
|
- unidecode=1.3.6
|
||||||
- unixodbc=2.3.10
|
- unixodbc=2.3.10
|
||||||
- urllib3=1.26.14
|
- urllib3=2.0.4
|
||||||
- wcwidth=0.2.6
|
- wcwidth=0.2.6
|
||||||
- wheel=0.38.4
|
- webencodings=0.5.1
|
||||||
- wrapt=1.14.1
|
- websocket-client=1.6.1
|
||||||
- xarray=2023.2.0
|
- wheel=0.41.0
|
||||||
|
- widgetsnbextension=4.0.8
|
||||||
|
- wrapt=1.15.0
|
||||||
|
- xarray=2023.7.0
|
||||||
- xcb-util=0.4.0
|
- xcb-util=0.4.0
|
||||||
- xcb-util-image=0.4.0
|
- xcb-util-image=0.4.0
|
||||||
- xcb-util-keysyms=0.4.0
|
- xcb-util-keysyms=0.4.0
|
||||||
- xcb-util-renderutil=0.3.9
|
- xcb-util-renderutil=0.3.9
|
||||||
- xcb-util-wm=0.4.1
|
- xcb-util-wm=0.4.1
|
||||||
- xerces-c=3.2.4
|
- xerces-c=3.2.4
|
||||||
|
- xkeyboard-config=2.39
|
||||||
- xlrd=2.0.1
|
- xlrd=2.0.1
|
||||||
- xorg-fixesproto=5.0
|
- xorg-fixesproto=5.0
|
||||||
- xorg-inputproto=2.3.2
|
- xorg-inputproto=2.3.2
|
||||||
- xorg-kbproto=1.0.7
|
- xorg-kbproto=1.0.7
|
||||||
- xorg-libice=1.0.10
|
- xorg-libice=1.1.1
|
||||||
- xorg-libsm=1.2.3
|
- xorg-libsm=1.2.4
|
||||||
- xorg-libx11=1.7.2
|
- xorg-libx11=1.8.6
|
||||||
- xorg-libxau=1.0.9
|
- xorg-libxau=1.0.11
|
||||||
- xorg-libxdmcp=1.1.3
|
- xorg-libxdmcp=1.1.3
|
||||||
- xorg-libxext=1.3.4
|
- xorg-libxext=1.3.4
|
||||||
- xorg-libxfixes=5.0.3
|
- xorg-libxfixes=5.0.3
|
||||||
- xorg-libxi=1.7.10
|
- xorg-libxi=1.7.10
|
||||||
- xorg-libxrender=0.9.10
|
- xorg-libxrender=0.9.11
|
||||||
- xorg-libxtst=1.2.3
|
- xorg-libxtst=1.2.3
|
||||||
- xorg-recordproto=1.14.2
|
- xorg-recordproto=1.14.2
|
||||||
- xorg-renderproto=0.11.1
|
- xorg-renderproto=0.11.1
|
||||||
- xorg-xextproto=7.3.0
|
- xorg-xextproto=7.3.0
|
||||||
|
- xorg-xf86vidmodeproto=2.3.1
|
||||||
- xorg-xproto=7.0.31
|
- xorg-xproto=7.0.31
|
||||||
- xyzservices=2022.9.0
|
- xyzservices=2023.7.0
|
||||||
- xz=5.2.6
|
- xz=5.2.6
|
||||||
- yaml=0.2.5
|
- yaml=0.2.5
|
||||||
- yte=1.5.1
|
- yte=1.5.1
|
||||||
- zict=2.2.0
|
- zeromq=4.3.4
|
||||||
- zipp=3.13.0
|
- zict=3.0.0
|
||||||
|
- zipp=3.16.2
|
||||||
- zlib=1.2.13
|
- zlib=1.2.13
|
||||||
|
- zlib-ng=2.0.7
|
||||||
- zstd=1.5.2
|
- zstd=1.5.2
|
||||||
- pip:
|
- pip:
|
||||||
- countrycode==0.2
|
- gurobipy==10.0.2
|
||||||
- highspy==1.5.0.dev0
|
- linopy==0.2.2
|
||||||
- pybind11==2.10.3
|
- pypsa==0.25.1
|
||||||
- tsam==2.2.2
|
- tsam==2.3.0
|
||||||
|
- validators==0.20.0
|
||||||
|
@ -53,6 +53,7 @@ dependencies:
|
|||||||
- descartes
|
- descartes
|
||||||
- rasterio!=1.2.10
|
- rasterio!=1.2.10
|
||||||
|
|
||||||
|
|
||||||
- pip:
|
- pip:
|
||||||
- tsam>=1.1.0
|
- tsam>=1.1.0
|
||||||
- git+https://github.com/pypsa/pypsa.git
|
- pypsa>=0.25.1
|
||||||
|
@ -295,6 +295,30 @@ rule build_hydro_profile:
|
|||||||
"../scripts/build_hydro_profile.py"
|
"../scripts/build_hydro_profile.py"
|
||||||
|
|
||||||
|
|
||||||
|
if config["lines"]["dynamic_line_rating"]["activate"]:
|
||||||
|
|
||||||
|
rule build_line_rating:
|
||||||
|
input:
|
||||||
|
base_network=RESOURCES + "networks/base.nc",
|
||||||
|
cutout="cutouts/"
|
||||||
|
+ CDIR
|
||||||
|
+ config["lines"]["dynamic_line_rating"]["cutout"]
|
||||||
|
+ ".nc",
|
||||||
|
output:
|
||||||
|
output=RESOURCES + "networks/line_rating.nc",
|
||||||
|
log:
|
||||||
|
LOGS + "build_line_rating.log",
|
||||||
|
benchmark:
|
||||||
|
BENCHMARKS + "build_line_rating"
|
||||||
|
threads: ATLITE_NPROCESSES
|
||||||
|
resources:
|
||||||
|
mem_mb=ATLITE_NPROCESSES * 1000,
|
||||||
|
conda:
|
||||||
|
"../envs/environment.yaml"
|
||||||
|
script:
|
||||||
|
"../scripts/build_line_rating.py"
|
||||||
|
|
||||||
|
|
||||||
rule add_electricity:
|
rule add_electricity:
|
||||||
params:
|
params:
|
||||||
length_factor=config["lines"]["length_factor"],
|
length_factor=config["lines"]["length_factor"],
|
||||||
@ -317,6 +341,9 @@ rule add_electricity:
|
|||||||
if str(fn).startswith("data/")
|
if str(fn).startswith("data/")
|
||||||
},
|
},
|
||||||
base_network=RESOURCES + "networks/base.nc",
|
base_network=RESOURCES + "networks/base.nc",
|
||||||
|
line_rating=RESOURCES + "networks/line_rating.nc"
|
||||||
|
if config["lines"]["dynamic_line_rating"]["activate"]
|
||||||
|
else RESOURCES + "networks/base.nc",
|
||||||
tech_costs=COSTS,
|
tech_costs=COSTS,
|
||||||
regions=RESOURCES + "regions_onshore.geojson",
|
regions=RESOURCES + "regions_onshore.geojson",
|
||||||
powerplants=RESOURCES + "powerplants.csv",
|
powerplants=RESOURCES + "powerplants.csv",
|
||||||
|
@ -86,7 +86,7 @@ if config["sector"]["gas_network"] or config["sector"]["H2_retrofit"]:
|
|||||||
rule build_gas_input_locations:
|
rule build_gas_input_locations:
|
||||||
input:
|
input:
|
||||||
lng=HTTP.remote(
|
lng=HTTP.remote(
|
||||||
"https://globalenergymonitor.org/wp-content/uploads/2022/09/Europe-Gas-Tracker-August-2022.xlsx",
|
"https://globalenergymonitor.org/wp-content/uploads/2023/07/Europe-Gas-Tracker-2023-03-v3.xlsx",
|
||||||
keep_local=True,
|
keep_local=True,
|
||||||
),
|
),
|
||||||
entry="data/gas_network/scigrid-gas/data/IGGIELGN_BorderPoints.geojson",
|
entry="data/gas_network/scigrid-gas/data/IGGIELGN_BorderPoints.geojson",
|
||||||
|
@ -782,6 +782,30 @@ def estimate_renewable_capacities(n, year, tech_map, expansion_limit, countries)
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def attach_line_rating(
|
||||||
|
n, rating, s_max_pu, correction_factor, max_voltage_difference, max_line_rating
|
||||||
|
):
|
||||||
|
# TODO: Only considers overhead lines
|
||||||
|
n.lines_t.s_max_pu = (rating / n.lines.s_nom[rating.columns]) * correction_factor
|
||||||
|
if max_voltage_difference:
|
||||||
|
x_pu = (
|
||||||
|
n.lines.type.map(n.line_types["x_per_length"])
|
||||||
|
* n.lines.length
|
||||||
|
/ (n.lines.v_nom**2)
|
||||||
|
)
|
||||||
|
# need to clip here as cap values might be below 1
|
||||||
|
# -> would mean the line cannot be operated at actual given pessimistic ampacity
|
||||||
|
s_max_pu_cap = (
|
||||||
|
np.deg2rad(max_voltage_difference) / (x_pu * n.lines.s_nom)
|
||||||
|
).clip(lower=1)
|
||||||
|
n.lines_t.s_max_pu = n.lines_t.s_max_pu.clip(
|
||||||
|
lower=1, upper=s_max_pu_cap, axis=1
|
||||||
|
)
|
||||||
|
if max_line_rating:
|
||||||
|
n.lines_t.s_max_pu = n.lines_t.s_max_pu.clip(upper=max_line_rating)
|
||||||
|
n.lines_t.s_max_pu *= s_max_pu
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if "snakemake" not in globals():
|
if "snakemake" not in globals():
|
||||||
from _helpers import mock_snakemake
|
from _helpers import mock_snakemake
|
||||||
@ -881,6 +905,23 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
update_p_nom_max(n)
|
update_p_nom_max(n)
|
||||||
|
|
||||||
|
line_rating_config = snakemake.config["lines"]["dynamic_line_rating"]
|
||||||
|
if line_rating_config["activate"]:
|
||||||
|
rating = xr.open_dataarray(snakemake.input.line_rating).to_pandas().transpose()
|
||||||
|
s_max_pu = snakemake.config["lines"]["s_max_pu"]
|
||||||
|
correction_factor = line_rating_config["correction_factor"]
|
||||||
|
max_voltage_difference = line_rating_config["max_voltage_difference"]
|
||||||
|
max_line_rating = line_rating_config["max_line_rating"]
|
||||||
|
|
||||||
|
attach_line_rating(
|
||||||
|
n,
|
||||||
|
rating,
|
||||||
|
s_max_pu,
|
||||||
|
correction_factor,
|
||||||
|
max_voltage_difference,
|
||||||
|
max_line_rating,
|
||||||
|
)
|
||||||
|
|
||||||
sanitize_carriers(n, snakemake.config)
|
sanitize_carriers(n, snakemake.config)
|
||||||
|
|
||||||
n.meta = snakemake.config
|
n.meta = snakemake.config
|
||||||
|
155
scripts/build_line_rating.py
Executable file
155
scripts/build_line_rating.py
Executable file
@ -0,0 +1,155 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# SPDX-FileCopyrightText: : 2017-2020 The PyPSA-Eur Authors
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
# coding: utf-8
|
||||||
|
"""
|
||||||
|
Adds dynamic line rating timeseries to the base network.
|
||||||
|
|
||||||
|
Relevant Settings
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
lines:
|
||||||
|
cutout:
|
||||||
|
line_rating:
|
||||||
|
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
Documentation of the configuration file ``config.yaml`
|
||||||
|
Inputs
|
||||||
|
------
|
||||||
|
|
||||||
|
- ``data/cutouts``:
|
||||||
|
- ``networks/base.nc``: confer :ref:`base`
|
||||||
|
|
||||||
|
Outputs
|
||||||
|
-------
|
||||||
|
|
||||||
|
- ``resources/line_rating.nc``
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The rule :mod:`build_line_rating` calculates the line rating for transmission lines.
|
||||||
|
The line rating provides the maximal capacity of a transmission line considering the heat exchange with the environment.
|
||||||
|
|
||||||
|
The following heat gains and losses are considered:
|
||||||
|
|
||||||
|
- heat gain through resistive losses
|
||||||
|
- heat gain through solar radiation
|
||||||
|
- heat loss through radiation of the trasnmission line
|
||||||
|
- heat loss through forced convection with wind
|
||||||
|
- heat loss through natural convection
|
||||||
|
|
||||||
|
|
||||||
|
With a heat balance considering the maximum temperature threshold of the transmission line,
|
||||||
|
the maximal possible capacity factor "s_max_pu" for each transmission line at each time step is calculated.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import re
|
||||||
|
|
||||||
|
import atlite
|
||||||
|
import geopandas as gpd
|
||||||
|
import numpy as np
|
||||||
|
import pandas as pd
|
||||||
|
import pypsa
|
||||||
|
import xarray as xr
|
||||||
|
from _helpers import configure_logging
|
||||||
|
from shapely.geometry import LineString as Line
|
||||||
|
from shapely.geometry import Point
|
||||||
|
|
||||||
|
|
||||||
|
def calculate_resistance(T, R_ref, T_ref=293, alpha=0.00403):
|
||||||
|
"""
|
||||||
|
Calculates the resistance at other temperatures than the reference
|
||||||
|
temperature.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
T : Temperature at which resistance is calculated in [°C] or [K]
|
||||||
|
R_ref : Resistance at reference temperature in [Ohm] or [Ohm/Per Length Unit]
|
||||||
|
T_ref : Reference temperature in [°C] or [K]
|
||||||
|
alpha: Temperature coefficient in [1/K]
|
||||||
|
Defaults are:
|
||||||
|
* T_ref : 20 °C
|
||||||
|
* alpha : 0.00403 1/K
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
Resistance of at given temperature.
|
||||||
|
"""
|
||||||
|
R = R_ref * (1 + alpha * (T - T_ref))
|
||||||
|
return R
|
||||||
|
|
||||||
|
|
||||||
|
def calculate_line_rating(n, cutout):
|
||||||
|
"""
|
||||||
|
Calculates the maximal allowed power flow in each line for each time step
|
||||||
|
considering the maximal temperature.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
n : pypsa.Network object containing information on grid
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
xarray DataArray object with maximal power.
|
||||||
|
"""
|
||||||
|
relevant_lines = n.lines[(n.lines["underground"] == False)]
|
||||||
|
buses = relevant_lines[["bus0", "bus1"]].values
|
||||||
|
x = n.buses.x
|
||||||
|
y = n.buses.y
|
||||||
|
shapes = [Line([Point(x[b0], y[b0]), Point(x[b1], y[b1])]) for (b0, b1) in buses]
|
||||||
|
shapes = gpd.GeoSeries(shapes, index=relevant_lines.index)
|
||||||
|
if relevant_lines.r_pu.eq(0).all():
|
||||||
|
# Overwrite standard line resistance with line resistance obtained from line type
|
||||||
|
r_per_length = n.line_types["r_per_length"]
|
||||||
|
R = (
|
||||||
|
relevant_lines.join(r_per_length, on=["type"])["r_per_length"] / 1000
|
||||||
|
) # in meters
|
||||||
|
# If line type with bundles is given retrieve number of conductors per bundle
|
||||||
|
relevant_lines["n_bundle"] = (
|
||||||
|
relevant_lines["type"]
|
||||||
|
.where(relevant_lines["type"].str.contains("bundle"))
|
||||||
|
.dropna()
|
||||||
|
.apply(lambda x: int(re.findall(r"(\d+)-bundle", x)[0]))
|
||||||
|
)
|
||||||
|
# Set default number of bundles per line
|
||||||
|
relevant_lines["n_bundle"].fillna(1, inplace=True)
|
||||||
|
R *= relevant_lines["n_bundle"]
|
||||||
|
R = calculate_resistance(T=353, R_ref=R)
|
||||||
|
Imax = cutout.line_rating(shapes, R, D=0.0218, Ts=353, epsilon=0.8, alpha=0.8)
|
||||||
|
line_factor = relevant_lines.eval("v_nom * n_bundle * num_parallel") / 1e3 # in mW
|
||||||
|
da = xr.DataArray(
|
||||||
|
data=np.sqrt(3) * Imax * line_factor.values.reshape(-1, 1),
|
||||||
|
attrs=dict(
|
||||||
|
description="Maximal possible power in MW for given line considering line rating"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
return da
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if "snakemake" not in globals():
|
||||||
|
from _helpers import mock_snakemake
|
||||||
|
|
||||||
|
snakemake = mock_snakemake(
|
||||||
|
"build_line_rating",
|
||||||
|
network="elec",
|
||||||
|
simpl="",
|
||||||
|
clusters="5",
|
||||||
|
ll="v1.0",
|
||||||
|
opts="Co2L-4H",
|
||||||
|
)
|
||||||
|
configure_logging(snakemake)
|
||||||
|
|
||||||
|
n = pypsa.Network(snakemake.input.base_network)
|
||||||
|
cutout = atlite.Cutout(snakemake.input.cutout)
|
||||||
|
|
||||||
|
da = calculate_line_rating(n, cutout)
|
||||||
|
da.to_netcdf(snakemake.output[0])
|
@ -596,6 +596,7 @@ def extra_functionality(n, snapshots):
|
|||||||
def solve_network(n, config, solving, opts="", **kwargs):
|
def solve_network(n, config, solving, opts="", **kwargs):
|
||||||
set_of_options = solving["solver"]["options"]
|
set_of_options = solving["solver"]["options"]
|
||||||
cf_solving = solving["options"]
|
cf_solving = solving["options"]
|
||||||
|
|
||||||
kwargs["solver_options"] = (
|
kwargs["solver_options"] = (
|
||||||
solving["solver_options"][set_of_options] if set_of_options else {}
|
solving["solver_options"][set_of_options] if set_of_options else {}
|
||||||
)
|
)
|
||||||
@ -605,6 +606,7 @@ def solve_network(n, config, solving, opts="", **kwargs):
|
|||||||
kwargs["linearized_unit_commitment"] = cf_solving.get(
|
kwargs["linearized_unit_commitment"] = cf_solving.get(
|
||||||
"linearized_unit_commitment", False
|
"linearized_unit_commitment", False
|
||||||
)
|
)
|
||||||
|
kwargs["assign_all_duals"] = cf_solving.get("assign_all_duals", False)
|
||||||
|
|
||||||
rolling_horizon = cf_solving.pop("rolling_horizon", False)
|
rolling_horizon = cf_solving.pop("rolling_horizon", False)
|
||||||
skip_iterations = cf_solving.pop("skip_iterations", False)
|
skip_iterations = cf_solving.pop("skip_iterations", False)
|
||||||
|
Loading…
Reference in New Issue
Block a user