Makes working with AEMO data more pleasant.
http://www.rubydoc.info/gems/aemo
% gem install aemo
# Gemfile
gem 'aemo'
Access to AEMO Market Information from www.nemweb.com.au/mms.GRAPHS/GRAPHS/GRAPH_5#NSW1.csv or www.nemweb.com.au/mms.GRAPHS/GRAPHS/GRAPH_30#NSW1.csv
AEMO::Market::REGIONS
AEMO::Market.current_dispatch('NSW')
AEMO::Market.current_trading('NSW')
AEMO::Market::Interval(datetime, { 'REGION' => 'NSW', 'TOTALDEMAND' => 123.456, 'RRP' => 78.96, 'PERIODTYPE' => 'TRADING'})
interval.datetime
interval.interval_length
interval.interval_type
interval.is_dispatch?
interval.is_trading?
The value of the interval in Australian Dollars
interval.value
AEMO Regions.
Hash of abbreviations to fullnames of AEMO regions.
AEMO::Region::REGIONS
AEMO::Region.new('NSW')
region.abbr
region.to_s
region.fullname
region.current_dispatch
region.current_trading
AEMO::Region.all
TODO: Update this to provide more information on these class constants.
RECORD_INDICATORS TRANSACTION_CODE_FLAGS UOM UOM_NON_SPEC_MAPPING QUALITY_FLAGS METHOD_FLAGS REASON_CODES DATA_STREAM_SUFFIX
AEMO::NEM12.new(nmi)
nem12.flag_to_s
nem12.to_a
nem12.to_csv
AEMO::NEM12.parse_nem12_file(path_to_file)
AEMO::NEM12.parse_nem12(string)
General support for a National Meter Identifier.
AEMO::NMI::REGIONS
NMIs have been allocated to DNSPs by AEMO. Provides an easy lookup of the network for a given NMI.
AEMO::NMI::NMI_ALLOCATIONS
Distribution Loss Factor Codes as a hash of the code to the various sets of data from AEMO.
AEMO::NMI::DLF_CODES
Transmission Node Identifiers as a hash of the TNI to the various sets of data from AEMO including relevant Marginal Loss Factors.
AEMO::NMI::TNI_CODES
nmi = AEMO::NMI.new("4001234567")
nmi.valid_nmi?
nmi.valid_checksum?(checksum_value)
Returns the network information based on NMI allocation.
nmi.network
Returns the checksum for a NMI
nmi.checksum
Returns MSATS NMI Detail data as opposed to mapping it into
nmi.raw_msats_nmi_detail(options)
Requires MSATS authorization to work. Sets attributes from MSATS NMI Detail request data.
nmi = AEMO::NMI.new("4001234567")
nmi.update_from_msats!
Helper method for friendly address for a NMI from AEMO's structured address.
nmi.friendly_address
Returns the meters for a provided status ("C(urrent)" or "R(etired)").
nmi.meters_by_status(status)
Returns the data streams for a provided status ("A(ctive)" or "I(nactive)").
nmi.data_streams_by_status(status)
Provides current daily load for the NMI instead of at a data stream level.
nmi.current_daily_load
Returns the TNI MLF value for a given datetime.
nmi.tni_value(datetime)
Returns the DLF value for a given datetime.
nmi.dlfc_value(datetime)
MSATS is the Market Settlements And Trading System. This gem currently only provides support for AEMO's MSATS Web Services and does not provide capabilities around the B2B Inbox or other services not exposed via the AEMO Web Service.
Further information available at AEMO's website
Authentication requires an MSATS username and password configured for your participant id.
AEMO::MSATS(PARTICIPANT_ID, USERNAME, PASSWORD)
AEMO::MSATS.c4(nmi, from_date,to_date,as_at_date, options = {})
AEMO::MSATS.msats_limits
AEMO::MSATS.nmi_discovery_by_delivery_point_identifier(jurisdiction_code,delivery_point_identifier)
AEMO::MSATS.nmi_discovery_by_meter_serial_number(jurisdiction_code,meter_serial_number)
AEMO::MSATS.nmi_discovery_by_address(jurisdiction_code,options = {})
- :building_or_property_name
- :location_descriptor
- :lot_number
- :flat_or_unit_number
- :flat_or_unit_type
- :floor_or_level_number
- :floor_or_level_type
- :house_number
- :house_number_suffix
- :street_name
- :street_suffix
- :street_type
- :suburb_or_place_or_locality
- :postcode
- :state_or_territory
AEMO::MSATS.system_status
AEMO::MSATS.nmi_detail(nmi, options = {})
- :type
- :reason