OpenNEM Developer Documentation

PyPI PyPI - License

Warning

OpenNEM v3 is still in release candidate stage and all data has not been vetted and is still under active development.

The OpenNEM project aims to make global energy network data more accessible to a wider audience through a website portal and data access API’s and tools.

This client library for Python enables accessing the Opennem API and data sets.

Supported Data Sets

Currently supported electricity networks:

Project Overview

The OpenNEM project (GitHub organization opennem) consists of three primary projects in separate source code repositories:

  • opennem-backend - GitHub - GitHub project name opennem. The primary backend stack that crawls all the data sources, parses them, generates outputs, the database schema and the API interface for integrations. The primary development language is Python.

  • opennem-fe - GitHub - This is the web frontend for OpenNEM written in Javascript and powering the OpenNEM website

  • opennem - GitHub - GitHUB project name opennempy. This is the Python client library for accessing OpenNEM data via the API. It also contains a large set of tools for dealing with energy data.

Warning

OpenNEM project names and GitHub project names often do not match. For ex. the backend is opennem-backend on PyPI and when installed but is on opennem as a project name on the GitHub organization

Which project is for me?

We are open to constributions for any of the projects. The backend is developed in Python with FastAPI, SQLAlchemy, Alembic et al. while the frontend is developed in Javascript with vue.js.

  • opennem-backend (opennem/opennem on GitHub) is the main project and involves collecting and parsing data from numerous sources and storing it in the backend database that is made available via an api at api.opennem.org.au. If you are a developer or an academic that is looking to contribute additional features or data source for OpenNEM then this is likely the project you are looking for.

  • If you are a front-end developer and wish to contribute to the features currently on the website then you are likely looking for the opennem-fe project.

  • opennem (opennem/opennempy on GitHub) is the Python client library. If you are an academic, data scientist or wish to query the OpenNEM API to parse and report on the data, then this project is for you. The documentation for the client library begins in the next section of this website.

Documentation

The backend, frontend and client libaries are all documented here on this site at https://developers.opennem.org.au/. The source for this documentation is available within the opennempy GitHub repository. For ex. the source code for this page is available here

Documentation is build from within the opennemy project using a Sphinx template with the source in markdown.

You can run make watch which will open a browser with a preview build of the documentation.

Final builds of the documentation are made with make. There is currently a GitHub action that automatically publishes these pages on checkin.

Indices and tables