PyPSA-ASEAN
The first open-source ASEAN-wide cross-sectoral energy system model with high spatial and temporal resolution.
https://github.com/pypsa-meets-earth/pypsa-asean
Category: Energy Systems
Sub Category: Global and Regional Energy System Models
Keywords from Contributors
energy-system-model energy-system-planning investment-optimization operational-optimization power-system-model power-system-planning pypsa-africa pypsa-earth scenario-analysis energy-system
Last synced: about 9 hours ago
JSON representation
Repository metadata
PyPSA-ASEAN: A flexible Python-based open optimisation model to study energy system futures in the ASEAN region
- Host: GitHub
- URL: https://github.com/pypsa-meets-earth/pypsa-asean
- Owner: pypsa-meets-earth
- Fork: true (pypsa-meets-earth/pypsa-earth)
- Created: 2025-07-08T07:51:33.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-04-02T21:32:52.000Z (9 days ago)
- Last Synced: 2026-04-05T21:03:02.174Z (7 days ago)
- Language: Python
- Homepage: https://pypsa-meets-earth.github.io/pypsa-asean/
- Size: 40 MB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 4
- Releases: 0
https://github.com/pypsa-meets-earth/pypsa-asean/blob/main/
# PyPSA-ASEAN: A flexible Python-based open optimisation model to study energy system futures in the ASEAN region.
## Development Status: **Ongoing Validation**
[](https://github.com/pypsa-meets-earth/pypsa-earth/actions/workflows/test.yml)
[](https://pypsa-earth.readthedocs.io/en/latest/?badge=latest)

[](https://www.gnu.org/licenses/agpl-3.0)
[](https://api.reuse.software/info/github.com/pypsa-meets-earth/pypsa-earth)
[](https://github.com/psf/black)
[](https://results.pre-commit.ci/latest/github/pypsa-meets-earth/pypsa-earth/main)
[](https://discord.gg/AnuJBk23FU)
[](https://drive.google.com/drive/folders/13Z8Y9zgsh5IZaDNkkRyo1wkoMgbdUxT5?usp=sharing)
[](https://doi.org/10.1016/j.apenergy.2023.121096)
**PyPSA-ASEAN: An ASEAN-Focused Sector-Coupled Open-Source Multi-Energy System Model**

Figure: ASEAN power system. Transmission data from OpenStreetMaps and national power development plans. Capacity data from powerplantmatching. Data extracted in 2025.
PyPSA-ASEAN is the first open-source ASEAN-wide cross-sectoral energy system model with high spatial and temporal resolution. It builds on the existing PyPSA-Earth framework and integrates region-specific data tailored to the context of the Southeast Asia region. It aims to leverage the ongoing improvements in PyPSA-Earth using the soft-fork strategy while making it as easy as possible for users to create validated models of individual ASEAN countries or the entire region at once.
The following countries are available to use in this model:
- 🇧🇳 **Brunei**
- 🇰🇠**Cambodia**
- 🇮🇩 **Indonesia**
- 🇱🇦 **Laos**
- 🇲🇾 **Malaysia**
- 🇲🇲 **Myanmar**
- 🇵🇠**Philippines**
- 🇸🇬 **Singapore**
- 🇹🇠**Thailand**
- 🇹🇱 **Timor-Leste**
- 🇻🇳 **Vietnam**
**PyPSA-Earth: A Global Sector-Coupled Open-Source Multi-Energy System Model**
PyPSA-Earth is the first open-source global cross-sectoral energy system model with high spatial and temporal resolution. The workflow provide capabilities for modelling the energy systems of any country in the world, enabling large-scale collaboration and transparent analysis for an inclusive and sustainable energy future. PyPSA-Earth is suitable for both operational studies and capacity expansion studies. Its sector-coupled modeling capabilities enable features for the detailed optimization of multi-energy systems, covering electricity, heating, transport, industry, hydrogen and more.
All the data needed for a simulation are automatically and flexibly retrieved from open sources. This includes, in particular, energy demand across sectors, generation capacities, medium- to high-voltage networks, and renewable energy potentials. Custom datasets can also be integrated as needed, and kept private if required. At the same time, [PyPSA-Earth-Status](https://github.com/pypsa-meets-earth/pypsa-earth-status) provides functionality to share regional insights. If you are willing to contribute your regional expertise, feel free to open an issue there.
PyPSA-Earth is capable of providing the modelling evidence needed to translate the implications of energy scenarios into actionable regional strategies. By making this tool openly available, we aim to foster collaboration, innovation, and informed decision-making to support sustainable and efficient energy solutions worldwide.
Details on the model are available in the following academic publications:
- *power model* M. Parzen et all. "PyPSA-Earth: A new global open energy system optimization model demonstrated in Africa", Applied Energy, 341, 2023. https://doi.org/10.1016/j.apenergy.2023.121096
- *sector-coupled model* H. Abdel-Khalek et al. "PyPSA-Earth sector-coupled: A global open-source multi-energy system model showcased for hydrogen applications in countries of the Global South", Applied Energy, 383, 2025. https://doi.org/10.1016/j.apenergy.2025.125316
**PyPSA meets Earth is an independent research initiative developing a powerful energy system model for Earth.** We work on open data, open source modelling, open source solver support and open communities. Stay tuned and join our mission - We look for users, co-developers and leaders!
Figure: Example power systems build with PyPSA-Earth.
See images of ~193 more countries at Zenodo
The diagram below depicts one representative clustered node for the sector-coupled model with its generation, storage and conversion technologies.
## Livetracker. Most popular global models:
[](https://www.star-history.com/#pypsa-meets-earth/pypsa-earth&OSeMOSYS/osemosys_global&niclasmattsson/Supergrid&EnergySystemsModellingLab/MUSE_OS&etsap-TIMES/TIMES_model&Date)
## How to get involved
There are multiple ways to get involved and learn more about our work:
1. **Join** [**our Discord Server**](https://discord.gg/AnuJBk23FU) to connect in discussion channels, get help in the support forum, and join our meetings
2. **Chat on Discord with us** in the following open meetings:
- **General initiative meeting** for project news and [high-level code updates](https://docs.google.com/document/d/1r6wm2RBe0DWFngmItpFfSFHA-CnUmVcVTkIKmthdW3g/edit?usp=sharing). Held every [fourth Thursday 16-17:00 (UK time)](https://drive.google.com/file/d/1naH4WwW9drkOkOJ3PLO4fyWdkZQi5-_w/view?usp=share_link) and is a perfect place to meet the community and get a high-level update on PyPSA ecosystem relevant for PyPSA-Earth developments.
- **Weekly developers meetings**
- Eastern-Hemisphere friendly *Morning meeting* every [Thursday at 09:00 (UK time)](https://drive.google.com/file/d/1PDdmjsKhzyGRo0_YrP4wPQkn2XTNh6jA/view?usp=share_link).
- Western-Hemisphere friendly *Evening meeting* every [Thursday 16:00 (UK time)](https://drive.google.com/file/d/1gaLmyV4qGPXsogkeRcAPWjC0ESebUxU-/view?usp=share_link). Every forth Thursday is replaced by the General initiative meeting which has a more high-level perspective, but you can also join to discuss more particular questions.
3. **Look at public materials** at [**google Drive**](https://drive.google.com/drive/folders/13Z8Y9zgsh5IZaDNkkRyo1wkoMgbdUxT5?usp=sharing) to share to minutes, presentations, lists and documents. Feel gree to get a look!
4. **Notify your interest** to on-demand meetings:
- On-demand meetings
- Demand creation and prediction meeting
- AI asset detection meeting
- Outreach meeting for planning, discussing events, workshops, communication, community activities
5. Join us and **propose your stream**.
6. Participate in mapping power grids on [**OpenStreetMap project**](https://osm.org) through the [**MapYourGrid initiative**](https://mapyourgrid.org). Many resources as [video tutorials](https://www.youtube.com/channel/UC52jOcw_6_7iTMW-lXwLrQQ) or [starter-kit](https://mapyourgrid.org/starter-kit/) help to improve open data that is used by PyPSA-Earth to build the grid topology.
## Installation
1. Open your terminal at a location where you want to install pypsa-earth. Type the following in your terminal to download the package from GitHub:
```bash
.../some/path/without/spaces % git clone https://github.com/pypsa-meets-earth/pypsa-earth.git
```
2. The python package requirements are curated in the `envs/{your operating system}64.lock.yaml` file.
- On linux, the environment can be installed using:
```bash
.../pypsa-earth % conda env create -f envs/linux-64.lock.yaml
```
- On newest macOS (arm-based), the environment can be installed using:
```bash
.../pypsa-earth % conda env create -f envs/osx-arm64.lock.yaml
```
On non-arm macOS, the environment can be installed using:
```bash
.../pypsa-earth % conda env create -f envs/osx-64.lock.yaml
```
- On Windows, the environment can be installed using:
```bash
.../pypsa-earth % conda env create -f envs/win-64.lock.yaml
```
If the above takes longer than 30 min, you might want to try mamba for faster installation:
```bash
(base) conda install -c conda-forge mamba
.../pypsa-earth % mamba env create -f envs/{{your operating system}}64.lock.yaml
```
3. (optional) In step 2, three solvers are installed: HiGHs, glpk and gurobi. HiGHs is the recommended open-source solver. Gurobi is generally faster, but requires a license for full functionality, which is [freely available to academics](https://www.gurobi.com/features/academic-named-user-license/) (see instructions website).
4. To use jupyter lab (new jupyter notebooks) **continue** with the [ipython kernel installation](http://echrislynch.com/2019/02/01/adding-an-environment-to-jupyter-notebooks/) and test if your jupyter lab works:
```bash
.../pypsa-earth % ipython kernel install --user --name=pypsa-earth
.../pypsa-earth % jupyter lab
```
5. Verify or install a java redistribution from the [official website](https://www.oracle.com/java/technologies/downloads/) or equivalent.
To verify the successful installation the following code can be tested from bash:
```bash
.../pypsa-earth % java -version
```
The expected output should resemble the following:
```bash
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
```
## Running the model in previous versions
The model can be run in previous versions by checking out the respective tag. For instance, to run the model in version 0.8.0, which is the last version before the recent PyPSA update, the following command can be used:
```bash
git checkout v0.8.0
```
After checking out the tag, the model can be run as usual. Please make sure to use the environment built for the respective version.
## Test run on tutorial
- In the folder open a terminal/command window to be located at this path `~/pypsa-earth/`
- Activate the environment `conda activate pypsa-earth`
- Rename config.tutorial.yaml to config.yaml. For instance in Linux:
```bash
mv config.tutorial.yaml config.yaml
```
- Run a dryrun of the Snakemake workflow by typing simply in the terminal:
```bash
snakemake -j 1 solve_all_networks -n
```
Remove the -n to do a real run. Follow the tutorial of PyPSA-Eur 1 and 2 on [YouTube](https://www.youtube.com/watch?v=ty47YU1_eeQ) to continue with an analysis.
## Training
- We recently updated some [hackathon material](https://github.com/pypsa-meets-earth/documentation) for PyPSA-Earth. The hackathon contains jupyter notebooks with exercises. After going through the 1 day theoretical and practical material you should have a suitable coding setup and feel confident about contributing.
- The get a general feeling about the PyPSA functionality, we further recommend going through the [PyPSA](https://github.com/PyPSA/PyPSA/tree/master/examples) and [Atlite](https://github.com/PyPSA/atlite/tree/master/examples) examples.
## Questions and Issues
- We are happy to answer questions and help with issues **if they are public**. Through being public the wider community can benefit from the raised points. Some tips. **Bugs** and **feature requests** should be raised in the [**GitHub Issues**](https://github.com/pypsa-meets-earth/pypsa-earth/issues/new/choose). **General workflow** or **user questions** as well as discussion points should be posted at the [**GitHub Discussions**](https://github.com/pypsa-meets-earth/pypsa-earth/discussions/categories/q-a) tab. Happy coding.
## Documentation
The documentation is available here: [documentation](https://pypsa-earth.readthedocs.io/en/latest/index.html).
## Collaborators
Owner metadata
- Name: PyPSA meets Earth
- Login: pypsa-meets-earth
- Email:
- Kind: organization
- Description: An open source energy system model initiative for our Earth
- Website: https://pypsa-meets-earth.github.io/
- Location:
- Twitter: pypsameetsearth
- Company:
- Icon url: https://avatars.githubusercontent.com/u/84225086?v=4
- Repositories: 11
- Last ynced at: 2023-03-04T04:30:40.464Z
- Profile URL: https://github.com/pypsa-meets-earth
GitHub Events
Total
- Delete event: 15
- Member event: 1
- Pull request event: 14
- Issues event: 6
- Watch event: 6
- Issue comment event: 2
- Push event: 69
- Create event: 16
Last Year
- Delete event: 15
- Member event: 1
- Pull request event: 14
- Issues event: 6
- Watch event: 6
- Issue comment event: 2
- Push event: 69
- Create event: 16
Committers metadata
Last synced: 2 days ago
Total Commits: 5,190
Total Committers: 85
Avg Commits per committer: 61.059
Development Distribution Score (DDS): 0.799
Commits in past year: 360
Committers in past year: 32
Avg Commits per committer in past year: 11.25
Development Distribution Score (DDS) in past year: 0.769
| Name | Commits | |
|---|---|---|
| davide-f | f****s@g****m | 1044 |
| ekatef | e****a@g****m | 754 |
| pre-commit-ci[bot] | 6****] | 527 |
| Max Parzen | m****n@e****k | 525 |
| Hazem-IEG | h****k@i****e | 413 |
| energyls | l****m@o****e | 297 |
| Restyled.io | c****s@r****o | 288 |
| yerbol-akhmetov | y****3@g****m | 148 |
| Emmanuel Bolarinwa | g****a@g****m | 141 |
| Daniele Lerede | d****e@o****g | 93 |
| github-actions[bot] | 4****] | 92 |
| Virio Andreyana | 1****a | 84 |
| Fabian | f****f@g****e | 70 |
| mnm-matin | m****9@g****m | 67 |
| DeniseGiub | d****o@s****t | 63 |
| contrib-readme-bot | c****n@n****m | 62 |
| Eddy-JV | e****t@g****m | 54 |
| Anton Achhammer | a****r@o****e | 45 |
| Thomas Kouroughli | t****u@i****m | 42 |
| Fabrizio Finozzi | f****s@g****m | 37 |
| Hazem | 8****G | 31 |
| drifter089 | a****7@g****m | 27 |
| GridGrapher | 1****r | 25 |
| Eric Nitschke | e****e@t****e | 20 |
| glenkiely-ieg | 9****g | 17 |
| cpschau | c****s@i****e | 15 |
| dependabot[bot] | 4****] | 13 |
| giacfalk | g****a@g****m | 12 |
| ljansen | l****n@i****e | 12 |
| carlosfv | c****2@h****m | 11 |
| and 55 more... | ||
Committer domains:
- ieg.fraunhofer.de: 3
- ed.ac.uk: 2
- oth-regensburg.de: 2
- restyled.io: 1
- openenergytransition.org: 1
- gmx.de: 1
- studenti.unipi.it: 1
- noreply.com: 1
- tuhh.de: 1
- iee.fraunhofer.de: 1
- kit.edu: 1
- pm.me: 1
- dl580-cpu1.unipi.it: 1
- ieg.fraunhofer.degit config --global user.email hazem.abdel-khalek: 1
- ieg.frauunhofer.de: 1
- exeter.ac.uk: 1
- kth.se: 1
- uit.no: 1
- up.edu.ph: 1
- htc-login001.zib.de: 1
- ulg.ac.be: 1
- ryanmsparks.com: 1
- ing.unipi.it: 1
- infos-reseaux.com: 1
- stud.th-rosenheim.de: 1
- it-u.at: 1
- berkeley.edu: 1
- mit.edu: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 5
Total pull requests: 14
Average time to close issues: N/A
Average time to close pull requests: 7 days
Total issue authors: 1
Total pull request authors: 2
Average comments per issue: 0.0
Average comments per pull request: 0.14
Merged pull request: 7
Bot issues: 0
Bot pull requests: 3
Past year issues: 5
Past year pull requests: 14
Past year average time to close issues: N/A
Past year average time to close pull requests: 7 days
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 0.0
Past year average comments per pull request: 0.14
Past year merged pull request: 7
Past year bot issues: 0
Past year bot pull requests: 3
Top Issue Authors
- virio-andreyana (5)
Top Pull Request Authors
- virio-andreyana (11)
- github-actions[bot] (3)
Top Issue Labels
- enhancement (5)
Top Pull Request Labels
Score: 6.840546529288687