Model modifications#
To better match client needs, various modifications have been added to PyPSA-Eur. To implement this, two approaches have been considered :
when feasible, the request is generalized and submitted to the community as pull request (see Submitted pull requests) ;
if not, a custom modification is added to the model (see Custom modifications).
Submitted pull requests#
Here is the list of pull requests shared with the community. Depending on the pull request, the modification has been integrated or not to the official repository of PyPSA-Eur.
Define methanol energy demand for industry (PyPSA/pypsa-eur#1068) ;
Improve run_gurobi to wait for available token (PyPSA/linopy#281) ;
Fix non steel related coal demand during transition (using sector_ratios_fraction_future) (PyPSA/pypsa-eur#1047) ;
Add calculate_nodal_supply_energy in make summary (PyPSA/pypsa-eur#1046) ;
Fix gas network retrofit in brownfield (PyPSA/pypsa-eur#1036) ;
Improve agg_p_nom_limits configuration (PyPSA/pypsa-eur#1023) ;
Fix small issues in add_land_use_constraint_m (PyPSA/pypsa-eur#1022) ;
Clarify suffix usage in add existing baseyear (PyPSA/pypsa-eur#1017) ;
Fix custom busmap read in cluster network (PyPSA/pypsa-eur#1008) ;
Fix typo (PyPSA/pypsa-eur#1005, PyPSA/pypsa-eur#1045) ;
Fix fill missing in industry sector ratios intermediate (PyPSA/pypsa-eur#1004) ;
Fix index for existing capacities in add_existing_baseyear (PyPSA/pypsa-eur#992) ;
Fix grouping year reference in add_land_use_constraint_m (PyPSA/pypsa-eur#991) ;
Fix error with symbol of buses in simplify_network (PyPSA/pypsa-eur#987) ;
Fix type error in cluster_network with “m” configuration (PyPSA/pypsa-eur#986) ;
Fix duplicated years in add_land_use_constraint_m (PyPSA/pypsa-eur#968) ;
Add decommissioning of renewables assets (PyPSA/pypsa-eur#959) ;
Add warning when negative bev availability profile values (PyPSA/pypsa-eur#858) ;
Fix typo in buses definition for oil boilers in add_industry in prepare_sectors_networks (PyPSA/pypsa-eur#812) ;
Fix nodal fraction with distributed generators (PyPSA/pypsa-eur#798) ;
Add option for SMR CC (PyPSA/pypsa-eur#757) ;
Add rule to update IRENA renewables capacities (PyPSA/pypsa-eur#756) ;
Improve Gurobi usage for linopy package (PyPSA/linopy#162) ;
Raised issue for snakemake package to better manage Gurobi licenses (snakemake/snakemake#1801) ;
Raised issue for pulp package to better manage Gurobi licenses (coin-or/pulp#571).
Custom modifications#
When no suitable for a pull request, the customisation is added on our fork of the model. Techno-economic assumptions have been thoroughly reviewed as described in Techno-economic parameters.
Add project specific configurations ;
Develop a Streamlit app available at https://climact-veka-2050plus.streamlit.app/ ;
Develop a data management pipeline to produce files required by the app ;
Define a set of configurations and techno-economic assumptions, needed for scenario management ;
Add custom configuration to model Flanders as a node ;
Add custom configuration to model nuclear powerplants ;
Fix PV shares in Belgium to reflect current imbalance between regions ;
Split HVC primary route into three types of routes (NSC, NSC CC and MTO) to include VLAIO scenarios for Flanders ;
Split DRI route of steel in two routes (DRI CH4 and DRI H2), needed for scenario management of industry. DRI CH4 is model using MIDREX process ;
Fix BEV dsm restriction time to take time aggregation and time zones into account ;
Add emission prices for each planning horizon ;
Update IRENA data to 2023 ;
Update status of TYNDP links to the latest version available ;
Limit offshore wind capacity in Belgium to a realistic value ;
Add a proxy to model distribution costs of gas boilers ;
Update OCGT, CCGT and coal CC efficiencies to include electricity demand of CC ;
Add CC and H2 gas turbines ;
Add hydrogen import terminals ;
Add a marginal costs for gas and hydrogen pipelines to model operating costs ;
Add a rule to produce map with capacities ;
Add a rule to manage multiple set of costs, needed for scenario management ;
Generalize agg_p_nom_minmax constraint to handle nuclear and all types of offshore wind ;
Fix config provider to work as expected with reference scenario ;
Stick to version 0.5.11 of PyPSA/powerplantmatching to ensure stability ;
Fix various minor issues.