Skip to content

Release Notes

Upcoming PyPSA-Zambia release

This part of documentation collects descriptive release notes to capture the main improvements introduced by developing the model before the next release.

New Features and Major Changes

  • Use separate custom powerplants datasets for dispatch validation (ERB 2023-2025 data with KGL as reservoir) and capacity expansion (IRP and proposed plants), configured via data.custom-powerplants in the respective config files PR #302

Minor Changes and bug-fixing

  • Added link to download PyPSA APP to docs PR #319

  • Fixed bug whereby docs page was not included into nav tree of readthedocs PR #328

PyPSA-Zambia v0.4

New Features and Major Changes

  • Enable expansion of biomass generators considering realistic regional values of biomass potential PR #220

  • Priority dispatch for existing thermal plants to reflect IRP assumptions PR #280

  • Add cross-scenario comparison plots functionality to allow for comparison across scenario runs PR #276

  • Fix run_all_scenarios to allow running all scenarios in a clean and robust way PR #243

Minor Changes and bug-fixing

  • Fixed double-annualisation of IRP capital costs for wind and solar by introducing investment_annualised config key, which applies pre-annualised costs directly without CRF PR #293

  • Added link to data versioning in docs, and tidied up the links and licenses in the data inventory PR #233

  • Added a baseline configuration for capacity expansion runs PR #242

  • Added proposed hydro powerplants projects from IPPPO to the custom powerplants file PR #242

  • Add GloFAS inflow datasets for different yearsPR #262

  • Fix CI by replacing unresponsive remote data sources PR #279

  • Drop isolated subnetworks from the network that do not meet threshold value greater than 100mw PR #272

  • Add future scenario configs for years 2025,2030, 2040 and 2050 PR #264

  • Created hydro validation config PR #231

  • Updated CI to support weather years greater than 2013 PR #231

  • Updated ReadMe and Docs PR #295

  • Updated Docs to include capacity expansion design PR #304

  • Fix affecting full reuse compliance of the project PR #298

  • Merge latest upstream changes from PyPSA-Earth PR #286

PyPSA-Zambia v0.3

New Features and Major Changes

  • Power Plant disaggregation allowing power plants to retain individual identities PR #153

  • Ability to use custom hydro inflow data in the workflow PR #178

  • Ability to specify cutout retrieval by year for specified years via config file PR #218

  • Merge upstream changes PR #221

  • Enable capacity expansion runs by adding a dedicated configuration file PR #219

Minor Changes and bug-fixing

  • Add test to standard CI to ensure no workflow breaking changes are integrated when introducing custom configuration PR #201

Upcoming changes from upstream

This part of documentation collects descriptive release notes to capture the main improvements introduced by developing the model before the next release.

PyPSA-Zambia v0.2

New Features and Major Changes

  • Add regional-focused marginal costs, efficiencies and hydro reservoir data PR #171

  • Add regional-focused investment costs PR #171

Minor Changes and bug-fixing

  • advance testing infrastructure to update the objective reference values, ensure that run artifacts are always available, add a manual run trigger, and amend an example on adding a new test PR #166

  • Updated readme to align more closely with the Zambian context. Fixed overall consistency PR #170

  • Improved instructions for creating version release PR #181

PyPSA-Zambia v0.1

New Features and Major Changes

  • update Snakefile, add utility_custom_features.py, update prepare_network and add validation notebook PR #88

  • Provide a reproducible way to build a cutout PR #86

  • Retrieve hydrobasins, IRENA and landcover in separate snakemake module PR #74

  • Integrate African transmission line types into PyPSA line type library for improved regional representation.PR #128

  • Add voltage levels for the Zambian PowerGrid PR #122

  • Integrate a regional cutout into a testing workflow for the Zambia model PR #75

  • Adds a PyPSA-Zambia specific GitHub Actions workflow for the Zambia model PR #60

  • Only run Github Action test workflows when workflow-relevant files are changed PR #94

  • Add regional-focused cutouts to the databundles PR #87

Minor Changes and bug-fixing

  • Prevent pre-commit from providing automatic corrections to pull requests PR #89

  • Add release process PR template PR #126

  • Add line_types_data PR #123

  • Add a modelling note PR #120

  • Add maintenance note PR #119

  • Create templates for data collection PR #118

  • Fix linting issues PR #95

New Features and Major Changes from upstream

  • Add pixi as an alternative package manager for environment and dependency management, alongside the existing conda-based setup. PR #1789

  • Advance CI: add docs and lint workflows, skip test CI for doc-only PRs PR #1790

  • Add ammonia industry explicitly PR #1783

  • Attach wind and solar generators using real positions from powerplants.csv instead of using redistribution according to the population PR #1622 <https://github.com/pypsa-meets-earth/pypsa-earth/pull/1622>__

  • Revise implementation of myopic optimization PR #1722

  • Migrate all cost data processing to process_cost_data.py PR #1719

  • Add the rule retrieve_cutout using the same script from retrieve_databundle_light. The bundle_to_download excludes cutouts while cutout_to_download include only cutouts. The retrieved cutouts are then verified to ensure their total bounds match the outputs from build_shapes. The config enable: retrieve_cutout allows users to switch off this rule after retrieval. PR #1767

  • Use IRENA statistics for 2023 to normalize countries hydropower generation data PR #1681

  • Drop use of override_components that is no longer needed in newer PyPSA versions PR #1699

  • Ensure connectivity of transformers in buses with several transformers PR #1706

Minor Changes and bug-fixing from upstream

  • Enable green-field capacity expansion of custom lines under construction PR #1778

  • Remove unused override_respot PR #1805

  • Integrate DemandCast dataset for electricity demand PR #1725

Minor Changes and bug-fixing

  • Replace deprecated UNCTAD urban population download endpoint in prepare_urban_percent.py PR #1881

  • Remove unused add_extendable_generators function in add_electricity.py script PR #1854

  • Adjusted the code to be more robust #1812

  • Avoid crash in add_chp_constraints when the network has no links, supporting operational models without brownfield/expandable batteries, pumped storage, or DC links #1750

  • Add error when emission_extractor fails PR #1856

  • Generalize the hard-coded legacy name africa_shape PR #1848

  • Reduce execution time of CI tests PR #1819

  • Avoid crash in build_osm_network when merging substations with the same station_id if tag_substation or symbol contains missing OSM metadata PR #1818

  • Add CI to update reference objective values PR #1811

  • Fix UnboundLocalError and back-pressure RHS leak in add_chp_constraints #1814

  • Add config parameter enable_electricity_connection_cost, which adds electricity grid connection costs to fixed capital costs for solar and onwind generators in prepare_sector_network PR #1810

  • Avoid crash in add_chp_constraints when the network has no links, supporting operational models without brownfield/expandable batteries, pumped storage, or DC links PR #1750

  • Update configuration of powerplantmatching PR #1787

  • Avoid crash in add_electricity when no extendable generators are configured PR #1794

  • Include country-specific nuclear p_max_pu values based on IAEA dataset PR #1718

  • Included critical step in the documentation to confirm Terms and Conditions on Copernicus portal to allow for unrestricted use of API. PR #1785

  • Update biomass transport cost for Australia PR #1784

  • Convert dangling custom_data.rst to MkDocs Markdown and add Custom Data Integration page to the User Guide PR #1767

  • Enhance CI test for myopic optimization (test/config.myopic.yaml) by including additional horizon PR #1776

  • Add options to use custom shapes for offshore subregions PR #1769

  • In cluster_network, replace custom voronoi polygon calculation function with Geopandas gdf.voronoi_polygons method PR #1771

  • Add auto as an option in renewable cutout selection, which directs to the cutout defined in atlite: default. This is executed using the function update_cutout_config(config). Furthermore, improve terminate_if_cutout_exist(w) to be based purely on wildcards of the cutouts name that are to be downloaded. This is applied to both build_cutout and retrieve_cutout. PR #1767

  • Send information from retrieve_databundle_light.py to databundle_cli.py using a temporary yaml file to make missing files consistent. PR #1767

  • Streamline subregions implementation, subdivide EEZs for subregions for build_bus_regions PR #1730

  • Restructure sector configuration and add sector documentation PR #1760

  • Use bus_regions instead of downloading gadm regions again in prepare_gas_network to avoid mismatches in case of simplifying PR #1662

  • Bump powerplantmatching to 0.8.0 PR #1702

  • Update reference values of the objective function in validator workflow and adjust format of the objective outputs in csv files PR #1705, PR #1733, and PR #1749

  • Update steel GEM data to version 2024 and use backup link for GEM pipelines PR #1708

  • Update eia hydro database up to 2023 PR #1703

  • Fix missing bus warning for hydrogen due to pypsa version change PR #1723

  • Fix warning in of H2 pipeline extension in solve_network PR #1732

  • Fix stochastic bundle names causing rerun of workflow every time PR #1746

  • Use production version of Zenodo instead of the Zenodo sandbox PR #1743

  • Bugfix creation of offshore regions: properly specify tolerance and options to eez PR #1739

  • Include solar rooftops as carrier constrained by surface area PR #1737

  • Fix clustering with gadm_layer_id 0 and 2 PR #1714

  • Add hydrobasins to rule input for build_renewable_profiles PR #1753

  • Make checking the need for exclusion rasters more explicit PR #1755

  • Dissolve geometries with duplicated GADM IDs, typical of regions with contested regions PR #1759

  • Update contribution guide PR #1803

  • Fix residual issues with the scaling of H2 demand for export PR #1692

  • Add module-level and missing function docstrings and type hints to scripts/_helpers.py PR #1857

PyPSA-Earth 0.8.0

New Features and Major Changes

  • Generalize usage of SEG option PR #1535

  • Added a hot-fix to handle UNSD data downtime causing CI to fail PR #1653

  • Account for existing batteries in powerplants file and improve logging on installed capacity PR #1623

  • Add an option to estimate solar-rooftop potentials using GlobalMLBuildingFootprints, a simplified data is provided for tutorials PR #1629

  • Align PyPSA-Earth costs with the reference units used in technology-data, avoiding discrepancies when combining technologies with different original currency years PR #1604

  • Add an option to redefine countries into subregions in cluster_networks PR #1542

  • Added Section covering Optimization for Energy Systems Models PR #1558

  • Add the configuration co2_budget to set COâ‚‚ emission targets in multiple planning horizon years PR #1553

  • Add pseudo branch() to streamline snakemake workflow. Replace this with Snakemake implementation if Snakemake >= 8.3.0. Added an option to configure which sector components to include which when disabled, irrelevant rules are skipped automatically PR #1538

  • Extend functionality of isolated nodes to networks and fix to demand scaling when gdp or pop is empty PR #1540

  • Redesign temporal matching including yearly, monthly and hourly matching PR #1463

  • Add option to ignore loading network data in clean_osm_data PR #1580

  • Add ll wildcard option 'l{factor}' to enable line-wise transmission expansion, including optional lower and upper bounds PR #1592

  • Update build_natura_raster.py to function regardless of RAM size PR #1545

  • Enable config options to customize hydrogen and renewable carriers for temporal matching PR #1489

  • Revise CCL constraint and enhance it with an option to include existing capacities in the calculation PR #1610

Minor Changes and bug-fixing

  • Add heuristics to infer missing hydropower technologies: if the energy-to-capacity ratio exceeds the threshold defined in hydro_min_inflow_pu, the plant is classified as a reservoir. Otherwise, it is treated as run-of-river PR #1684

  • Fix issues where gas and biomass powerplant capacity were not added in add_existing_baseyear.py. Differentiate urban central solid biomass CHP with non-CHP biomass for historical capacity PR #1678

  • Avoid creating duplicate conventional generators by setting keep_existing_capacities to false. Convert CCGT as links in prepare_sector_network PR #1630

  • Refine load shedding capacity calculation to use bus-specific maximum loads instead of fixed large values, improving solver performance and numeric stability. Rename load shedding generator carrier to 'load shedding' (now) instead of just 'load' (previously) PR #1581

  • The configuration setting for focus_weights has been moved from focus_weights: to cluster_options: focus_weights:. Backwards compatibility to old config files is maintained PR #1565

  • Disable distribute_cluster only for one subnetwork and country PR #1539

  • Reintroduce sanitize_carriers and sanitize_location to reduce the number of warnings related to components with undefined carriers PR #1555

  • Fix the offwind depth calculation by providing the proper GEBCO file PR #1559

  • bug-fix in clean_osm_data.py so that cleaned data has the same number of circuits as in the raw data and assumptions are correctly applied PR #1552

  • Avoid using variable "nodes" in prepare_sector_network unless explicitly in the arguments PR #1575

  • Fix and reactivate the option for a custom busmap in cluster_network.py PR #1537

  • Create a section in the documentation to include information about custom data in the model PR #1571

  • Bug-fixing override co2opt in add_co2_budget PR #1597

  • Fix shipping and aviation implementation in multi-country models PR #1582

  • Increase robustness of geometry management by merging MultiLineStrings and adding tolerance in splitting linestrings PR #1608

  • Add geojson output to build_osm_network PR #1611

  • Add missing colors for energy carriers in the sector-coupled model PR #1625

  • Adjust default solver parameters for using HiGHS to improve convergence PR #1650

  • Fix Labeling of technologies PR #1644

  • fix workflow when augmmented_line_connection is false for Tunisia PR #1677

  • Copyedit + fixes of documentation, PR template PR #1675, PR #1674, and PR #1673

  • Update credits and cross-referals in the documentation PR #1614

  • Add configtable for some sector parameters PR #1494

  • Included a configuration option to quantitatively set the tolerance levels for simplifying GADM shapes PR #1147

PyPSA-Earth 0.7.0

New Features and Major Changes

  • Revise bundle_cutouts_northamerica PR #1479

  • Revise pinned to locked environments PR #1458

  • Update to technology-data version v0.12.0 PR #1452

  • Add a command-line interface in databundle_cli.py that will be triggered if retrieve_databundle_light.py fails to retrieve all necessary files, providing a fallback to assist with debugging the issue PR #1366

  • Add Wikipedia as a source for the preparation of transport_data.csv PR #1410

  • Add a new page for sector-coupled tutorial PR #1374

  • Add an option to redefine countries into subregions which can be activated at various stages of the workflow. The subregions can be defined either by the GADM_ID or a custom map. Currently, it is only used in the simplify_network rule PR #1300

  • Drop duplication of retrieve_data and COST_DIR, add params and update technology-data version PR #1249

  • In alternative clustering, generate hydro inflows by shape and avoid hydro inflows duplication for plants installed in the same node PR #1120

  • Add a function to calculate length-based efficiencies and apply it to the H2 pipelines PR #1192

  • Support of Linopy for Power and Sector-Coupled Modelling and latest PyPSA version PR #1172

  • Update workflow to geopandas >= 1.0 PR #1276

  • Index hydro units by their location and drop use of alternative clustering option for hydro PR #1331

  • Introduce universal currency conversion to allow use of currencies other than EUR in input data and results PR #1319

  • Introduce US-specific cost configurations and update to technology_data_version v0.13.2 PR #1448

  • Add new hydrogen production technologies and reorganize existing structure PR #1227

  • Add all cutouts to sandbox zenodo PR #1688

Minor Changes and bug-fixing

  • Remove duplicates in environment file PR #1473

  • Fix fallback logic for missing currency data by correctly applying the default exchange rate and build cache for storing commonly used exchange rates PR #1492

  • Update code to reflect the Wikipedia source page for prepare_transport_data_input PR #1486

  • Add efficiency gain and growth rates for other energy consumption and fill missing NaNs with 0 PR #1468

  • Fix missing nodes in prepare_sector_network PR #1432

  • Fix missing country attribute in cluster_network PR #1443

  • Fix numpy TypeErrors PR #1430

  • Update description of the sector-coupled capabilities PR #1449

  • Modified how_to_contribute documentation page PR #1439

  • Redefine h2export wildcard_constraint to allow digits + optional dot followed by more digites (decimals) PR #1434

  • Update the AL_production.csv data from another source with more countries PR #1428

  • Fix params for prepare_sector_network script PR #1427

  • Add option to adjust load shedding costs PR #1403

  • Fix: Use the mean value instead of the sum to remove duplicates in the urban percentage data per country and year PR #1420

  • Fix prepare_ports script to generate both outputs if export ports with custom data is selected PR #1424

  • Update the applications list for PyPSA-Earth model PR #1413

  • Fix problem with a discontinued World Bank data source in prepare_transport_data_input PR #1410

  • Fix bug in myopic run PR #1369

  • Fix missing focus_weights on cluster_network params without augmented_line_connections, minimize warnings on subregions PR #1348

  • Align structure of the components with consistency checks in the updated PyPSA version PR #1315

  • Prevent computation of powerplantmatching if replace option is selected for custom_powerplants PR #1281

  • Fix overlapping bus regions when alternative clustering is selected PR #1287

  • Fix readthedocs by explicitly specifying the location of the Sphinx config PR #1292

  • Fix lossy bidirectional links, especially H2 pipelines, which would sometimes gain H2 instead of losing it PR #1192

  • Fix the need for administrative rights on Windows by changing all shadow directory settings for Windows in the Snakefile PR #1295 and PR #1301

  • Add CITATION.cff to guide users on how cite PyPSA-Earth. Insert the DOI badge in the README linking to the very first PyPSA-Earth paper PR #1316

  • Remove pyomo from cluster_network and introduce scip PR #1320

  • Fix mixup of plant locations for hydro inflow and inflow overestimation PR #1322

  • Fix namibia geofk, line country tag mismatch and minor fixes PR #1330

  • Minor revision docker workflow to have it working on upstream PR #1343

  • Fix the scaling factor for time-varying loads of the sector model PR #1372

  • Integrate EIA data for US-specific CAGR and fuel shares for the sector model PR #1372

  • Revise naming of Wikipedia data for vehicles PR #1422

  • Monte Carlo: move qmc.discrepancy to logging only PR #1418

  • Extending powerplant filter option to custom powerplants PR #1465

  • Fix an issue with the GEBCO file by limiting libgdal-core<3.10 PR #1519

  • Fix a naming issue with European cutout PR #1530

  • Avoid adding CO2 pipeline links when option is disabled PR #1504

  • Add possibility to overwrite cost attributes for sector model PR #1567

  • Update team description in the documentation PR #1670

PyPSA-Earth 0.6.0

New Features and Major Changes (24th December 2024)

  • Include option in the config to allow for custom airport data PR #1241

  • Added Dev Containers and docker as an option to get started with pypsa-earth PR #1228

  • Add a list of PyPSA-Earth applications in academic and industrial projects PR #1255

  • Computational improvements of build_osm_network PR #845

  • Boost computational performances of set_lines_ids with cKDTree by scipy PR #806

  • Boost computational performances of set_substation_ids using DBSCAN PR #799

  • Boost computational performances of fix_overpassing_line PR #807

Minor Changes and bug-fixing

  • Added electricity bus to Fischer-Tropsch in prepare_sector_network.py PR #1226

  • Update BW, NG and BJ tutorial databundles to include gadm-like sources from geoboundaries PR #1257

PyPSA-Earth 0.5.0

New Features and Major Changes (14th December 2024)

Minor Changes and bug-fixing

  • The default configuration for electricity:estimate_renewable_capacities:year was updated from 2020 to 2023. PR #1106

  • Fix the mismatch between buses and x, y locations while creating H2 Stores PR #1134

  • Enable configfile specification for mock_snakemake PR #1135

  • Removed duplications of devendencies in environment.yaml PR #1128

  • Fix pre-commit docformatter python issue. PR #1153

  • Drop duplicate entries in AL_production.csv data used in build_industry_demandrulePR #1143

  • Fix bugs in prepare_sector_network.py related to links with H2 buses and bug of re-addition of H2 and battery carriers in present PR #1145

  • Drop entries that contain non-string elements in country column of CO2_emissions_csv data in prepare_transport_data_input.pyscriptPR #1166

  • Local tests are now run with make test. This uses a Makefile which runs snakemake calls with different configurations. PR #1053

  • Adds Dependabot to keep GitHub actions up to date. PR #1184

  • Adds code security scans via CodeQL to CI. PR #1185

  • Adds CI to update keep pinned environment files up to date. PR #1183 and PR #1210

  • Revise ports data for export in add_export.py related to sector model PR #1175

  • Restore string values of tech_colors in config file PR #1205

  • Drop vrestil dependency PR #1220

  • Include a configuration option to simplify / not simplify shapefiles based on a boolean value specified under build_shape_options:simplify_gadmoption in the config filePR 1138

  • Fix the mismatch between buses and x, y locations while creating H2 Stores PR #1134

  • Remove duplicate entries from hydrogen export ports PR #1233

  • Fix the environment placing a version limit to numpoly PR #1237

PyPSA-Earth 0.4.1

New Features and Major Changes (19th September 2024)

  • Add functionality to modify the cost assumptions using config files PR #1097

Minor Changes and bug-fixing

PyPSA-Earth 0.4.0

New Features and Major Changes (27th July 2024)

  • Improve Monte Carlo feature with more distributions types, independent by PyPSA component. PR #930

  • Introduce flexible regional selection of the demand files of GEGIS. PR #991

  • Generalize line types for AC and DC networks. PR #999

  • Add an option to merge isolated networks into respective backbone networks by countries. PR #903

  • Add an option to use csv format for custom demand imports. PR #995

Minor Changes and bug-fixing

  • Minor bug-fixing to run the cluster wildcard min PR #1019

  • Add option to adjust load scale for each individual countries PR #1006

  • Minor bug-fixing to get the generalised line types work for DC lines and AC lines. PR #1008 , PR #1011 and PR #1013

  • Minor bug-fixing for GADM_ID format naming. PR #980, PR #986 and PR #989

  • Fix download_osm_data compatibility for earth-osm v2.1. PR #954 and PR #988

  • Improve geometry filtering in clean_osm_data. PR #989

  • Revise bus region definition by gadm. PR #1001

  • Documentation improvements. PR #1007

  • Remove unnecessary imports. PR #1020

  • Resolve pandas deprecation warning. PR #1023

  • Create files where the code outputs the value of the objective function. PR #1033

  • Introduce versioning of the configuration files. PR #1058

  • Fix bug for hydro inflow normalization for gadm regions (alternative clustering). PR #1057

  • Minor bug-fixing for s_nom_min. PR #961

PyPSA-Earth 0.3.0

New Features and major Changes (24th December 2023)

  • Keep all traceback in logs. PR #898

  • Function added in clean_osm_data script to allow the use of custom network data instead or on-top of OSM data. PR #842

  • Improve retrieve_databundle to prioritize smallest databundles PR #911

  • Add functionality to load shapefiles for hydrobasins directly from the data source directly PR #919

  • Use new CC0 v1 dataset for the natura input and automate download of WDPA protected planet data PR #913

Minor Changes and bug-fixing

  • Revise databundles and improve logging in retrieve_databundle PR #928

  • Improve documentation on installation and short tutorial PR #918

PyPSA-Earth 0.2.3

New Features and major Changes (19th October 2023)

  • Add params: section in rule definition to keep track of changed settings in config.yaml. PR #823 and PR #880

  • Fix Natural Gas implementation in "add_electricity" to avoid "Natural Gas" to be filtered out PR #797

  • Improve network simplification routine to account for representation HVDC as Line component PR #743

  • Remove deprecated pypsa.networkclustering approach and replace by pypsa.clustering.spatial PR #786

  • Drop code-dependency from vresutil PR #803

  • Add a check to ensure match between a cutout and a modelled area PR #805

  • Support renewables or renewable expansion to meet a desired share of total load. PR #793

  • Add NorthAmerican and Earth cutouts, and improve African cutout PR #813

  • Bug fixing to restore Africa execution and improve performances PR #817

  • Add Asian cutout PR #826

  • Add a cutout for Western Asia PR #837

  • Add osm_config yaml file PR #822

  • Re-enable offshore wind and revise hydro PR #830

  • Add databundle of cutouts for Kazakhstan for CI test PR #856. The bundle (~5MB) is used in pypsa-kz-data repository during CI tests.

  • Option to specify a global upper capacity limit (using existing BAU functionality) PR #857

  • Add cluster options all, min and flexPR #848

  • Add commit id of pypsa earth in the n.meta of the .nc file per default PR #863

PyPSA-Earth 0.2.2

New Features and major Changes (8th July 2023)

  • Fix Natural Gas assignment bug in build_powerplants rule PR #754.

  • Add GEM datasets to the powerplantmatching config PR #750.

  • Add merge and replace functionalities when adding custom powerplants PR #739. "Merge" combined the powerplantmatching data with new custom data. "Replace" allows to use fully self-collected data.

  • Add functionality of attaching existing renewable caapcities from custom_powerplants.csv. PR #744. If custom_powerplants are enabled and custom_powerplants.csv contains wind or solar powerplants, then p_nom and p_nom_min for renewables are extracted from custom_powerplants.csv, aggregated for each bus, and set.

  • Fix dask parallel computations for e.g. cutouts calculations. Now again more than 1 core will be used when available that can lead to ~8x speed ups with 8 cores PR #734 and PR #761.

  • Add the usage of custom rules. Custom rule files must be specified in the config as a list, e.g. custom rules: ["my_rules.smk"]. Empty by default (i.e. no custom rules). PR #755

  • Add trailing whitespace linter which removes unnecessary tabs when running pre-commit PR #762

  • Add codespell linter which corrects word spellings PR #763

  • Remove RES addition functionality from attach_conventional_generators PR #769. Currently wind and solar powerplants stored in powerplants.csv are added to the network by attach_conventional_generators.

  • Add functionalities to download and extract emission of countries. [PR #748 https://github.com/pypsa-meets-earth/pypsa-earth/pull/748`

PyPSA-Earth 0.2.1

New Features and major Changes (20th May 2023)

PyPSA-Earth 0.2.0

New Features and major Changes (7th May 2023)

  • Finalize package restructuring PR #462

  • Fix made in config.default and config.tutorial changing Monte-Carlo from true to false PR #463

  • Add new config test design. It is now easy and light to test multiple configs PR #466

  • Revision of documentation PR #471

  • Move to new GADM version PR #478

  • Update natura tiff to global scale, revise default databundle description and remove old limitations to environment PR #470 and PR #500

  • Update docs on installation PR #498

  • Update docs on tutorial PR #507

  • Moved from pycountry to country_converter PR #493

  • Fix workflow in order to solve the landlock countries bug PR #481 and PR #517

  • Add meta data of config to pypsa network per default. Allows keeping track of the config used to generate the network PR #526

  • Fix renewable profiles generation for possible data loss in ERA5-derived cutouts PR #511

  • Adapt dependencies of powerplantmatching to the PyPSA main branch PR #527

  • Calculate the outputs of retrieve_databundle dynamically depending on settings PR #529

  • Fix shape bug in the Voronoi cell creation PR #541

  • Adapt dependencies on PyPSA to the PyPSA main branch PR #538

  • Fix None geometries into regions PR #546

  • Swap OpenStreetMap python download interface from esy-osm to earth-osm PR #547

  • Restore saving of logger outputs PR #559

  • Techno-economic parameters of technologies (e.g. costs and efficiencies) can be now retrieved from a separate repository PyPSA/technology-data that collects assumptions from a variety of sources. It is activated by default with enable: retrieve_cost_data: true and controlled with costs: year: and costs: version:. The location of this data changed from data/costs.csv to resources/costs.csv``. Adapted from [#184].

  • Added approaches to process contended areas PR #572

  • Improve parallel capabilities of build_shapes to enable parallelization even within a country shape PR #575

  • Add pypsa-eur scenario management PR #577

  • Minor bug fixing and improvements PR #580

  • Streamline default configuration file PR #589

  • Fix rule run_test, remove code duplication, add gitstars to readme `PR #593 https://github.com/pypsa-meets-earth/pypsa-earth/pull/593[

  • Add new build_demand_profiles.py. It builds demand_profiles.csv and allow easier interfacing of new data `PR #582](https://github.com/pypsa-meets-earth/pypsa-earth/pull/582)

  • Upgrade technology data to v0.5.0 PR #600

  • Update simplify_network and cluster_network according to PyPSA-Eur developments PR #597

  • Revise OSM cleaning to improve the cleaning process and error resilience PR #620

  • Fix isolated buses when simplifying the network and add clustering by networks PR #632

  • Include hydro runoff normalization PR #631

  • Add REUSE compatibility PR #651

  • Fix bug of missing GitHub issue template PR #660

  • Fix GADM bug when using alternative clustering and store gadm shape with two letter instead of three letter ISO code PR #670

  • Fix GADM naming bug related to level-2 clustering PR #684

  • Fix append bug in build_powerplants rule PR #686

  • Add zenodo_handler.py to update and upload files via code PR #688

  • Fix a few typos in docstrings PR #695

  • Update and improve configuration section in documentation PR #694

  • Improve earth coverage and add improve make_statistics coverage PR #654

  • Fix bug for missing renewable profiles and generators PR #714

  • Update instructions on how to write documentation. PR #720

  • Enable workflow to run including countries with empty OSM data, test on all UN countries [PR #701 https://github.com/pypsa-meets-earth/pypsa-earth/pull/701`__

PyPSA-Earth 0.1.0

Model rebranded from PyPSA-Africa to PyPSA-Earth. Model is part of the now called PyPSA meets Earth initiative which hosts multiple projects.

New features and major changes (10th September 2022)

  • Identify DC lines but temporary transform them back into AC `PR #348](https://github.com/pypsa-meets-earth/pypsa-earth/pull/348)

  • Get renewable capacities from IRENA statistics PR #343

  • Bug fixing (script retrieve_databundle) and rule run_test to ease testing PR #322

  • Handling non-numerical entries in raw OSM data: PR #287

  • General user experience improvements: PR #326

  • Fix minor validation notebook inaccuracy: PR #332

  • Make clean_osm_data script work with land-locked country: PR #341

  • Add demand validation notebook for 2030 prediction: PR #344

  • Revise build_powerplants with new version of powerplantmatching: PR #342

  • Fix typo causing the wrong coordinate reference systems (CRS) to be used when determining available land types using CLC PR #345

  • Add high resolution population raster via API: PR #325

  • Fix bounds of cutouts aka weather cells: PR #347

  • Add new countries and update iso code: PR #330

  • Fix solar pv slope and add correction factor for wake losses: PR #335

  • Add renewable potential notebook: PR #351

  • Make cutout workflow simpler: PR #352

  • Add option to run workflow without pop and gdp raster: PR #353

  • Add latitude_optimal to get optimal solar orientation by default: Commit 1b2466b

  • Harmonize CRSs by options: PR #356

  • Fix powerplantmatching problem for DRC and countries with multi-word name: PR #359

  • Change default option for build_natura: PR #360

  • Add renewable potential validation notebook and update others: PR #363 and PR #369

  • Constrain rasterio version and add plotting dependencies: PR #365

  • Change solar power density form 1.7 to 4.6 MW/km2: PR #364

  • Bug fixing of unexpected float value in build_powerplants: PR #372 and PR #373

  • Revise hydro capacities, add hydro validation notebook and minor revisions: PR #366

  • Revise dropnan for regions: PR #366

  • Fix bug in GADM clustering. Missing crs input: PR #379

  • Optimise availabilitymatrixspeed by factor 4-5:PR #380

  • Fix bug in inline documentation for GADM and Voronoi clustering: PR #384

  • Fix simple clustering enabling the creation of networks such regions_onshore_elec_s54_14.nc:PR #386

  • Add transformer components which connect different voltage level lines: PR #389

  • Enable the use of a float value for the scale in load_options: PR #397

  • Add operational reserve margin according to PyPSA-Eur: PR #399

  • Add optional normalization of hydro inflows by hydro_capacities or eia stats: PR #376

  • Enable DC carrier in the network model and include converters into the model: PR #392

  • Implement PyPSA-Eur improvements. Add gas limit constraints, add marginal cost sweeps wildcard, add and harmonize aggregation strategies, improve config usability by carrier clarifications, ease debugging by removing snakemake inputs from functions: PR #402

  • Fix and add docs. Fix incomplete tutorial, recommend mamba for installation, add YouTube videos PR #412 and PR #423

  • Restructure the package to ease readability and fix google drive downloading method: PR #355

  • Update config links to adhere to the new structure of the package: PR #420

  • Improve and finalize capacity_validation notebook: PR #406 and PR #455

  • Fix hydro technology with the GADM clustering approach: PR #428

  • Adapt for a custom shapefile for MA as a first step towards generalizing the feature: PR #429

  • Improve line augmentation for network expansion explorations. Use k-edge augmenation for AC lines and random sampling for long HVDC lines: PR #427

  • Fix minor bug in clustering about missing prefix assignment PR #434

  • Fix major aggregation bug and adjust config: PR #435

  • Fix nan techtype and wrong tech for nuclear which improves the representation of existing powerplants PR #436

  • Add notebook to compare results by different solvers PR #421

  • Fix overestimation of the network capacity by simplify network PR #443

  • Fix output electricity column in clean_data PR #441

  • Bug fixing to download global OSM and shape data: PR #433

PyPSA-Africa 0.0.2

New features and major changes (6th April 2022)

  • Plotting and summary features: PR #211 and PR #214

  • Templates for issue, PR, feature request: PR #216

  • Attach hydro enabled with all hydro types: PR #232

  • Parallel download of osm data: PR #232

  • Decoupling iso coding from geofabrik; rule download_osm_data extended to the world: PR #236

  • Rule build_shape extended to the world: PR #236

  • Validation of geofabrik links: PR #249

  • Generalized version of Data retrieval with google and zenodo hosting platforms: PR #242 and PR #260

  • Fix random state for kmean clustering, adopted from PR 313

  • Implement area exclusions based on land type using the Copernicus Land Cover: PR #272.

  • Flexible demand extraction for multiple years across the globe: PR #275

  • Add CI caching and windows CI: Commit CI windows, PR #277.

  • Change config to allow weather year extraction from snapshots as default: PR #301.

  • Replace Restyler by .pre-commit [PR #307 https://github.com/pypsa-meets-earth/pypsa-earth/pull/307`__.

  • Solved the issue of "overpassing nodes" and restyling osm_build_network: `PR #294](https://github.com/pypsa-meets-earth/pypsa-earth/pull/294)

  • Revise deprecations in build_shape: PR #315

PyPSA-Africa 0.0.1

This is the first release of PyPSA-Africa which heavily builds on PyPSA-Eur.

New features and major changes (24th December 2021)

Release Process

  • Checkout a new release branch [git checkout -b release-v0.x.x.

  • Finalise release notes at doc/release_notes.rst.

  • Make sure thah pinned versions of the environments *-pinned.yaml in envs folder are up-to-date.

  • Update version number in doc/conf.py, default.config.yaml, tutorial.config.yaml and test/config.*.yaml.

  • Open, review and merge pull request for branch release-v0.x.x. Make sure to close issues and PRs or the release milestone with it (e.g. closes #X). Run `pre-commit run --all`` locally and fix any issues.

  • Update and checkout your local main and tag a release with git tag v0.x.x, git push, git push --tags. Include release notes in the tag message using Github UI.

  • Upload code to `zenodo code repository](https://doi.org) with GPLv3 license.

  • Create pre-built networks for [config.default.yaml by running `snakemake -j 1 extra_components_all_networks``.

  • Upload pre-built networks to `zenodo data repository](https://doi.org/10.5281/zenodo.3601881) with CC BY 4.0 license.

  • Send announcement on the PyPSA-Earth Discord channel.