Project Configuration
This section details the configuration settings for PyPSA-ASEAN, primarily defined in configs/config.asean.yaml. These settings control various aspects of the model. Most of the configurations are available in the PyPSA-Earth configuration website
scenario
foresight: myopic
scenario:
clusters: [100]
ll:
- "v2.0"
opts:
- ""
planning_horizons: # investment years for myopic and perfect; or costs year for overnight
- 2025
- 2030
- 2035
- 2040
- 2045
- 2050
sopts:
- "3h"
demand:
- "DEC"
The PyPSA-ASEAN scenarios are based on the following parameters:
- Foresight: Myopic, with 5-year timesteps (2025–2050).
- Resolution: 3-hourly intervals.
- Demand: DEC (more details in the sector section).
countries
countries: [BN, KH, ID, LA, MM, MY, PH, SG, TH, TL, VN]
The model consists of 11 countries. Adding more countries requires validation and adjustment that are outside the current scope of the model. It is possible to reduce the number of countries.
load_options
load_options:
substitute: # Load profile not available for LA and TL, use substitute instead
LA: KH
TL: ID
scale:
LA: 1456.62 # 12.76 TWh / 8760
TL: 47.35 # 414.76 MWh / 8760
The load profile for Laos and Timor Leste is not available in the default version of PyPSA-Earth. Therefore, the load profiles for these countries are substituted with those of Cambodia and Indonesia, respectively. Rough estimates of the total electricity demand for these countries were also made.
build_shape_options and subregion
build_shape_options:
simplify_gadm: false
subregion: # remove 'false' if subregion are to be specified
enable:
simplify_network: true
cluster_network: true
define_by_gadm:
ID_Java-Bali: [ID.2_1, ID.4_1, ID.7_1, ID.9_1, ID.10_1, ID.11_1, ID.33_1]
ID_Kalimantan: [ID.12_1, ID.13_1, ID.14_1, ID.34_1, ID.35_1]
ID_Maluku: [ID.18_1, ID.19_1]
ID_Nusa-Tenggara: [ID.20_1, ID.21_1]
ID_Papua: [ID.22_1, ID.23_1]
ID_Sulawesi: [ID.6_1, ID.25_1, ID.26_1, ID.27_1, ID.28_1, ID.29_1]
ID_Sumatra: [ID.1_1, ID.3_1, ID.5_1, ID.8_1, ID.16_1, ID.17_1, ID.24_1, ID.30_1, ID.31_1, ID.32_1]
MY_Peninsular: [MY.1_1, MY.2_1, MY.3_1, MY.4_1, MY.6_1, MY.7_1, MY.8_1, MY.9_1, MY.10_1, MY.11_1, MY.12_1, MY.15_1, MY.16_1]
MY_Sabah: [MY.5_1, MY.13_1]
MY_Sarawak: [MY.14_1]
PH_Luzon: [PH.1_1, PH.5_1, PH.7_1, PH.8_1, PH.10_1, PH.11_1, PH.12_1, PH.13_1, PH.17_1, PH.18_1, PH.19_1, PH.20_1, PH.23_1, PH.24_1, PH.33_1, PH.34_1, PH.35_1, PH.37_1, H.38_1, PH.39_1, PH.40_1, PH.45_1, PH.46_1, PH.47_1, PH.50_1, PH.55_1, PH.56_1, PH.57_1, PH.58_1, PH.59_1, PH.60_1, PH.61_1, PH.62_1, PH.63_1, PH.64_1, PH.65_1, PH.69_1, PH.76_1, PH.78_1]
PH_Visayas: [PH.4_1, PH.6_1, PH.14_1, PH.15_1, PH.22_1, PH.25_1, PH.31_1, PH.32_1, PH.36_1, PH.43_1, PH.51_1, PH.52_1, PH.54_1, PH.66_1, PH.68_1, PH.71_1]
PH_Mindanao: [PH.2_1, PH.3_1, PH.9_1, PH.16_1, PH.21_1, PH.26_1, PH.27_1, PH.28_1, PH.29_1, PH.30_1, PH.41_1, PH.42_1, PH.44_1, PH.48_1, PH.49_1, PH.53_1, PH.67_1, PH.70_1, PH.72_1, PH.73_1, PH.74_1, PH.75_1, PH.77_1, PH.79_1, PH.80_1, PH.81_1]
The subregion feature in PyPSA-Earth stems from an attempt to model Southeast Asia. The region's archipelago landscape makes clustering and simplifying the model difficult.
In PyPSA-ASEAN, at least three countries are divided into subregions:
- Indonesia: Java-Bali, Kalimantan, Maluku, Nusa Tenggara, Papua, and Sulawesi;
- Malaysia: Peninsular Malaysia, Sabah, and Sarawak
- Philippines: Luzon, Visayas, and Mindanao
focus_weights
focus_weights:
BN: 0.0
KH: 0.046396
LA: 0.058770
MM: 0.169951
SG: 0.0
TH: 0.131035
TL: 0.0
VN: 0.084013
ID_Java-Bali: 0.035281
ID_Kalimantan: 0.135732
ID_Maluku: 0.0
ID_Nusa-Tenggara: 0.016782
ID_Papua: 0.0
ID_Sulawesi: 0.046963
ID_Sumatra: 0.120713
MY_Peninsular: 0.033556
MY_Sarawak: 0.031638
MY_Sabah: 0.018709
PH_Luzon: 0.023487
PH_Visayas: 0.023487
PH_Mindanao: 0.023487
If left at the default setting, the nodes will be aggregated based on the largest load. The focus weight configuration redistributes the nodes based on the land area of each country and subregion. To focus on a specific country or subregion, increase its focus weight by subtracting from the values of other locations.
co2_budget
co2_budget:
enable: false
override_co2opt: true
co2base_value: 1.0e+09 # choose from: [co2limit, co2base, absolute, {float}]
year:
2025: 1.0
2030: 0.82
2035: 0.64
2040: 0.46
2045: 0.28
2050: 0.1
if enable is true, An ASEAN-wide cap on power-sector emissions was added, tightening from 1000 MtCO₂-eq in 2025 to 100 MtCO₂-eq by 2050, corresponding to a 90% reduction. This pathway reflected a regionally coordinated decarbonisation strategy.
electricity and transmission_projects
This configuration is explained in ASEAN Grid Infrastructure.
cluster_options
cluster_options:
simplify_network:
remove_stubs_across_borders: false
p_threshold_drop_isolated: 0 # [MW] isolated buses are being discarded if bus mean power is below the specified threshold
p_threshold_merge_isolated: 0 # [MW] isolated buses are being merged into a single isolated bus if a bus mean power is below the specified threshold
s_threshold_fetch_isolated: 0.1 # [-] a share of the national load for merging an isolated network into a backbone network
To maintain as much of the original electricity assumption as possible, buses are not dropped or merged in the simplification process. However, if nodes represent less than 10% of the total country or subregion electricity demand, they are assumed to be connected to the network.
costs
This configuration is explained in Final Adjustment.
sector
sector:
enable:
heat: true
biomass: true
industry: true
shipping: true
aviation: true
land_transport: true
rail_transport: true
agriculture: true
residential: true
services: true
biomass_transport: false
solid_biomass_potential: 360 # TWh/a, technical maximum in Southeast Asia (higher granular data needed). https://doi.org/10.1016/j.energy.2017.06.162
# biogas_potential: 0.5 # TODO find ASEAN equivalent # TWh/a, Potential of whole modelled area
hydrogen:
network: false
co2_network: false
land_transport_fuel_cell_share:
DEC_2020: 0.00
DEC_2025: 0.00
DEC_2030: 0.00
DEC_2035: 0.00
DEC_2040: 0.00
DEC_2045: 0.00
DEC_2050: 0.00
land_transport_electric_share:
DEC_2020: 0
DEC_2025: 0.05
DEC_2030: 0.2
DEC_2035: 0.45
DEC_2040: 0.7
DEC_2045: 0.85
DEC_2050: 1
shipping_hydrogen_share:
DEC_2020: 0.00
DEC_2025: 0.00
DEC_2030: 0.00
DEC_2035: 0.00
DEC_2040: 0.00
DEC_2045: 0.00
DEC_2050: 0.00
solar_rooftop: # adds distribution side customer rooftop PV (only work if electricity_distribution_grid: true)
use_building_size: true
In the sector configuration, all sectors are applied, though many components are removed during the final adjustment. Important assumption:
- The solid biomass potential is 360 TWh/a, based on the technical maximum (https://doi.org/10.1016/j.energy.2017.06.162). Currently, the potential is not spatially distributed.
- Hydrogen and CO₂ networks are disabled.
- It is assumed that land transport will be 100% electric by 2050.
- It uses the Global Buildings Dataset to estimate solar rooftop potential.
policy_config, export and solving
policy_config:
hydrogen:
temporal_matching: "no_temporal_matching"
export:
enable: false
h2export: [0]
solving:
options:
load_shedding: false
These are minor adjustments to disable:
- Hydrogen-related exports
- Load shedding options
final_adjustment
This configuration is explained in Final Adjustment.