diff --git a/README.md b/README.md
index c21d290..ff92c87 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,10 @@ Used for [2024 study](https://www.agora-energiewende.org/publications/modernisin
[![License: AGPL v3](https://img.shields.io/badge/License-AGPLv3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![REUSE status](https://api.reuse.software/badge/github.com/pypsa-meets-earth/pypsa-kz-data)](https://api.reuse.software/info/github.com/pypsa-meets-earth/pypsa-kz-data)
-# pypsa-kz-data
+# PyPSA-KZ-Data
+
+
+
Extra data for the Kazakhstan model that will be used as input for PyPSA-Earth.
Repo design oriented on: https://github.com/pypsa-meets-earth/pypsa-zm-data
@@ -42,7 +45,7 @@ Monthly electricity demand data with monthly aggregation provided by Kazakhstan
## Setting up the general repositories
-The provided workflow builds on [PyPSA-Earth](https://github.com/pypsa-meets-earth/pypsa-earth). Therefore, first, the PyPSA-Earth repository must be forked and the fork should then be cloned. A fork can be created by navigating to the [PyPSA-Earth](https://github.com/pypsa-meets-earth/pypsa-earth) website. By clicking on the fork-symbol in the upper right corner, a fork is created and linked to the specific user.
+The provided workflow builds on [PyPSA-Earth](https://github.com/pypsa-meets-earth/pypsa-earth). Therefore, first, the PyPSA-Earth repository must be forked and the fork should then be cloned. A fork can be created by navigating to the [PyPSA-Earth](https://github.com/pypsa-meets-earth/pypsa-earth) website. By clicking on the fork-symbol in the upper right corner, a fork is created and linked to the specific user. While making a fork, unclick `Copy the main branch only` option to fork all branches and tags of `pypsa-earth` repository.
Next, we also need to fork the [pypsa-kz-data](https://github.com/pypsa-meets-earth/pypsa-kz-data) repository. A fork can be created by navigating to the [pypsa-kz-data](https://github.com/pypsa-meets-earth/pypsa-kz-data) website and clicking the fork symbol in the upper right corner.
@@ -56,7 +59,11 @@ After that, one must change to the freshly created pypsa-earth repository.
```bash
cd pypsa-earth/
```
-and repeat the cloning, this time for the pypsa-kz-data repository.
+Switch to the stable `v0.4.0` version of `pypsa-earth` that is compatible with `pypsa-kz-data` repository:
+```bash
+git checkout tags/v0.4.0
+```
+Repeat the cloning, this time for the pypsa-kz-data repository.
```bash
git clone https://github.com//pypsa-kz-data
```
@@ -72,7 +79,7 @@ conda activate pypsa-earth
To adapt the overall workflow for kz, only two further changes are necessary.
-Firstly, open the Snakefile (in `pypsa-earth/`) and navigate to line [1057-1058](https://github.com/pypsa-meets-earth/pypsa-earth/blob/main/Snakefile#L1057-L1058), which should read
+Firstly, open the Snakefile (in `pypsa-earth/`) and navigate to line [1071-1072](https://github.com/pypsa-meets-earth/pypsa-earth/blob/main/Snakefile#L1057-L1058), which should read
```bash
os.system("snakemake -j all solve_all_networks --rerun-incomplete")
os.system("snakemake -j1 make_statistics --force")
@@ -92,7 +99,7 @@ In case you already have a custom config file, make sure to replace it as well,
```bash
cp pypsa-kz-data/config.kz_default.yaml config.yaml
```
-
+**Note!** Run two aforementioned commands in `pypsa-earth` directory.
You are now all set to run all scenarios!
## Running KZ scenarios
@@ -132,6 +139,8 @@ snakemake -j 1 retrieve_databundle_light
- The rule `retrieve_databundle_light` always executes with an error. To avoid this, try setting `enable: build_cutout: False` to `True`.
+- Hydrobasins data might not be accessible in some regions (e.g. in Kazakhstan). It is recommended to retrieve the databundle using VPN.
+
# Comes in handy
After all cutouts were generated (i.e. the three files `asia--era5.nc` exist in the folder `pypsa-earth/cutouts/`, where `` is 2011, 2013, and 2018, navigate to `pypsa-earth/pypsa-kz-data`, open the default config file, navigate to line 36, which should read `build_cutout: True`, and set it to `build_cutout: false`. This will save you a lot of time when (re-)runnig scenarios. But remember to set it back to `true` in case one of the cutouts was deleted!
diff --git a/config.kz_default.yaml b/config.kz_default.yaml
index e507c66..8fbc5ef 100644
--- a/config.kz_default.yaml
+++ b/config.kz_default.yaml
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: AGPL-3.0-or-later
-version: 1.0.0
+version: 0.4.0
tutorial: false
logging:
@@ -101,6 +101,12 @@ clean_osm_data_options: # osm = OpenStreetMap
tag_substation: "transmission" # Filters only substations with 'transmission' tag, ('distribution' also available)
add_line_endings: true # When "True", then line endings are added to the dataset of the substations
generator_name_method: OSM # Methodology to specify the name to the generator. Options: OSM (name as by OSM dataset), closest_city (name by the closest city)
+ use_custom_lines: "OSM_only" # Use OSM (OSM_only), customized (custom_only), or both data sets (add_custom)
+ path_custom_lines: false # If exists, provide the specific absolute path of the custom file e.g. (...\data\custom_lines.geojson)
+ use_custom_substations: "OSM_only" # Use OSM (OSM_only), customized (custom_only), or both data sets (add_custom)
+ path_custom_substations: false # If exists, provide the specific absolute path of the custom file e.g. (...\data\custom_substations.geojson)
+ use_custom_cables: "OSM_only" # Use OSM (OSM_only), customized (custom_only), or both data sets (add_custom)
+ path_custom_cables: false # If exists, provide the specific absolute path of the custom file e.g. (...\data\custom_cables.geojson)
build_osm_network: # Options of the build_osm_network script; osm = OpenStreetMap
group_close_buses: true # When "True", close buses are merged and guarantee the voltage matching among line endings
@@ -128,6 +134,8 @@ electricity:
co2base: 3.17e+8 # Kazakhstan default for 1990
agg_p_nom_limits: data/agg_p_nom_minmax.csv
hvdc_as_lines: false # should HVDC lines be modeled as `Line` or as `Link` component?
+ automatic_emission: false
+ automatic_emission_base_year: 1990 # 1990 is taken as default. Any year from 1970 to 2018 can be selected.
BAU_maxcapacities:
solar: 1e9 # essentially no limit
onwind: 1e9 # essentially no limit
@@ -170,11 +178,12 @@ electricity:
PV: [solar]
lines:
- types:
+ ac_types:
220.: "490-AL1/64-ST1A 220.0" #"Al/St 240/40 2-bundle 220.0"
110.: "243-AL1/39-ST1A 110.0" #"Al/St 240/40 3-bundle 300.0"
500.: "Al/St 240/40 4-bundle 380.0" #"Al/St 560/50 4-bundle 750.0" #
- dc_type: "HVDC XLPE 1000"
+ dc_types:
+ 500.: "HVDC XLPE 1000"
s_max_pu: 0.7
s_nom_max: .inf
length_factor: 1.25
@@ -297,9 +306,10 @@ renewable:
extendable: true
hydro:
cutout: asia-2013-era5
+ hydrobasins_level: 6
resource:
method: hydro
- hydrobasins: data/hydrobasins/hybas_world_lev06_v1c.shp
+ hydrobasins: data/hydrobasins/hybas_world.shp
flowspeed: 1.0 # m/s
# weight_with_height: false
# show_progress: true
@@ -440,13 +450,21 @@ plotting:
"electricity": "#f9d002"
"lines": "#70af1d"
"transmission lines": "#70af1d"
+ "AC": "#70af1d"
"AC-AC": "#70af1d"
"AC line": "#70af1d"
"links": "#8a1caf"
"HVDC links": "#8a1caf"
+ "DC": "#8a1caf"
"DC-DC": "#8a1caf"
"DC link": "#8a1caf"
- "load": "#FF0000"
+ "load": "#ff0000"
+ "load shedding": "#ff0000"
+ "battery discharger": slategray
+ "battery charger": slategray
+ "h2 fuel cell": '#c251ae'
+ "h2 electrolysis": '#ff29d9'
+ "csp": "#fdd404"
nice_names:
OCGT: "Open-Cycle Gas"
CCGT: "Combined-Cycle Gas"