OpenNEM Developer Documentation
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.
Project Links
Project homepage at https://opennem.org.au
Developer Documentation (what you’re reading now) at https://developers.opennem.org.au
OpenAPI documentation at https://api.opennem.org.au/docs
Our GitHub organization is
opennem
and at https://github.com/opennemThe client library package is on PyPI at https://pypi.org/project/opennem/
Twitter username is
@opennem
and we are at https://twitter.com/opennem
Supported Data Sets
Currently supported electricity networks:
NEM
- Australia NEMAPVI
- APVI - Rooftop solar data for Australia
Project Overview
The OpenNEM project (GitHub organization opennem
) consists of three primary projects in separate source code repositories:
opennem-backend
- GitHub - GitHub project nameopennem
. 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 websiteopennem
- GitHub - GitHUB project nameopennempy
. 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 atapi.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.