National Electricity Market Optimiser

NEMO dispatch
plotThe National Electricity Market Optimiser (NEMO) is a chronological production cost model for testing and optimising different portfolios of renewable and fossil electricity generation technologies. It was first developed by Dr Ben Elliston in 2011 at the Centre for Energy and Environmental Markets, University of New South Wales. It is the original electricity sector model named NEMO. NEMO has been developed and improved over the past decade and has a growing number of users.

NEMO has models for the following generator types: wind (including offshore), PV, concentrating solar thermal, hydropower, pumped storage hydro, biomass, black coal, open cycle gas turbines (OCGTs), combined cycle gas turbines (CCGTs), diesel gensets, coal with carbon capture and storage (CCS), CCGT with CCS, geothermal, demand response, batteries, hydrogen electrolysers, hydrogen fuelled gas turbines.

NEMO is free software and is licensed under the GPL version 3 license. It requires no proprietary software to run, making it particularly accessible to the governments of developing countries, academic researchers and students. The model is available for others to inspect and, importantly, to validate results. Academic journals should not accept papers containing results from "black box" models.

Installation

The easiest way to install NEMO is with the Python pip utility which will install other packages to satisfy dependencies:

$ pip install nemopt

System requirements

NEMO should run on any operating system where Python 3 is available (eg, Windows, Mac OS X, Linux). NEMO utilises some add-on packages: DEAP, Gooey, Matplotlib, Numpy, Pandas and Pint.

For simple simulations or scripted sensitivity analyses, a laptop or desktop PC will be adequate. However, for optimisations, a cluster of compute nodes is desirable. The model is highly scalable and you can devote as many CPU cores to the model as you wish. For multiprocessing across CPU cores and hosts, the SCOOP (Scalable COncurrent Operations in Python) package is required. This can be optionally installed using pip.

Documentation

Documentation will be progressively added to a user's guide in the form of a Jupyter notebook.

Auto-generated library documentation exists for the nemo module. This is useful when building new tools that use the simulation framework.

The model is described in an Energy Policy paper titled Least cost 100% renewable electricity scenarios in the Australian National Electricity Market by Elliston, MacGill and Diesendorf (2013). NEMO no longer uses genetic algorithms, but has adopted the better performing CMA-ES method. However, the approach of searching for least cost solutions is the same.

Source code Coverage Status CodeFactor

The NEMO source code (written in Python) is easy to extend and modify. The source code is distributed under the GNU General Public License. Code snapshots are available as a ZIP archive or from Github.

Enhancements and bug fixes are very welcome. Please report bugs in the issue tracker. Authors retain copyright over their work.

Mailing list

The nemo-devel mailing list is where users and developers can correspond.

Useful references

Australian cost data are taken from the Australian Energy Technology Assessments (2012, 2013), the Australian Power Generation Technology Report (2015) and the CSIRO GenCost 2020-21 report. The GenCost report provides input cost assumptions for the AEMO Integrated System Plan. Costs for other countries may be added in time.

Renewable energy trace data covering the Australian National Electricity Market territory are taken from the AEMO 100% Renewables Study. An accompanying report describes the method of generating the traces.

Acknowledgements

Early development of NEMO was financially supported by the Australian Renewable Energy Agency (ARENA). Thanks to undergraduate and postgraduate student users at UNSW who have provided valuable feedback on how to improve (and document!) the model.

Fork me on
       GitHub