AustralianElectricityMarkets.jl
A Julia package for interfacing with the Australian Energy Market Operator (AEMO) data archive.
Description
This package provides a set of tools to fetch, cache, and process data from AEMO's public data sources, particularly through the NEMWEB data archive. It allows users to read various datasets, and integrates with PowerSystems.jl for power system modeling and simulation.
Installation
To install the package, open the Julia REPL and run:
using Pkg
Pkg.add("AustralianElectricityMarkets")Usage
Here is a basic example of how to use the package to read demand data:
using AustralianElectricityMarkets
using TidierDB
# Establish a database connection
db = aem_connect(duckdb());
# Download the data from the monthly archive, saving them locally
# in parquet files
# Only the data requirements for a RegionalNetworkConfiguration are downloaded.
date_range = Date(2025, 1, 1):Date(2025, 1, 2)
fetch_table_data(date_range, RegionalNetworkConfiguration())
demand_df = read_demand(db)
println(demand_df)And parsing the data into PowerSystems.jl
# Instantiate a System
sys = nem_system(db, RegionalNetworkConfiguration())
println(demand_df)Features
Data Fetching: Fetch data from AEMO's NEMWEB data source for specified time ranges.
Data Processing: Read and process various NEMDB tables, including:
Interconnector data
Regional demand
Generation unit details
PowerSystems.jl Integration: Parse AEMO data into
PowerSystems.jlmodels for simulation.
Data Sources
This package primarily interfaces with data from the Australian Energy Market Operator (AEMO). It relies on the NEMWEB data archives and data models.
License
This project is licensed under the BSD-3 License.