pyltm package

Module contents

pyltm package

This is the entry point for pyltm package.

class pyltm.AggregatedHydroModule

Aggregated hydro module

An area can be represented by aggregated hydro.

It’s a simplified representation of hydro-power operating with energy units: energy inflow, energy generation and stored energy.

property busbar_name

Busbar name

Required: no

property comment

User comment

Required: no

property lower_production_limits

Lower production limits (MW)

Required: no

property lower_reservoir_limits

Lower reservoir limits (MWh)

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property regulated_power_inflow

Regulated power inflow (MW)

Required: yes

property reservoir_energy

MWh.

Required: yes

Type:

Total reservoir energy. Unit

property start_reservoir_energy

Initial aggregated reservoir energy (MWh)

Required: yes

property station_power

MW.

Required: yes

Type:

Max station production. Unit

sum_hydro_energy(self: pyltm._core_pyltm.AggregatedHydroModule, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Aggregated hydro module sum hydro energy

sum_hydro_power_production(self: pyltm._core_pyltm.AggregatedHydroModule, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Aggregated hydro module sum hydro power production

property unregulated_power_inflow

Unregulated power inflow (MW)

Required: yes

property upper_production_limits

Upper production limits (MW)

Required: no

property upper_reservoir_limits

Upper reservoir limits (MWh)

Required: no

class pyltm.BatteryModule

Battery module

A battery module stores surplus energy and discharges when demand is high. Modelling of batteries is available on area level. It occupies an emps area and excludes other hydro-power.

Connects to a busbar/area.

property busbar_name

Busbar name

Required: no

property charging_cost

Charging cost (Currency)

Required: yes

property charging_efficiency

Charging efficiency (Factor)

Required: yes

property comment

User comment

Required: no

property endvalue_type

Endvalue type

Required: no

property exogenous_endvalue

Exogenous endvalue (Currency / energy unit)

Required: no

property max_charging_power

Max charging power (MW)

Required: yes

property max_discharge_power

Max discharge power (MW)

Required: yes

property max_energy_level

Max energy level (MWh)

Required: yes

property metadata

User metadata

Required: no

property min_discharge_power

Min discharge power (MW)

Required: yes

property min_energy_level

Min energy level (MWh)

Required: yes

property name

Object name

Required: yes

property start_battery_energy

Initial battery energy. (MWh)

Required: yes

sum_energy(self: pyltm._core_pyltm.BatteryModule, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Battery module sum energy

sum_power_production(self: pyltm._core_pyltm.BatteryModule, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Battery module sum power production

class pyltm.BiddingZone

Bidding zone - FBMC

Bidding zone is used to place the emps areas in Bidding zones (e.g NO1, NO2, etc). Bidding zones are based on available input of FBMC-paramters (PTDFs)

property comment

User comment

Required: no

property is_fbmc

Is bidding zone a part of the FBMC network (Yes/No)

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.Busbar

Area for connecting market steps, loads, dclines, hydro power+++.

A Busbar represents an ENMD-file in a classical EMPS/EOPS dataset.

build_connection_tree(self: pyltm._core_pyltm.Busbar) str

Create a directed acyclic graph in GraphViz dot format

property comment

User comment

Required: no

property feedback_factors

Busbar feedback factors

Required: no

property has_detailed_grid

Participates in detailed grid or not

Required: no

have_aggregated_hydro_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if busbar has aggregated hydro results and is not a battery busbar. Result is only valid if the object is part of a model.

have_battery_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if the busbar has battery results

have_detailed_hydro_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if the busbar has detailed hydro results

have_hydraulic_coupling_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if there are results from hydraulic couplings type 200 or type 300. Result is only valid if the object is part of a model.

have_market_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if the busbar has market results

have_water_value_results(self: pyltm._core_pyltm.Busbar) bool

Returns true if the busbar has water value results

hydraulic_couplings(self: pyltm._core_pyltm.Busbar) list[pyltm._core_pyltm.HydraulicCoupling]

A list of hydraulic couplings connected to this busbar

property id

Internal ID

Required: no

property load_penalty

Load penalty price

Required: no

market_result_price(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Busbar market results over time

property max_iterations

Max number of iterations for this busbar

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property precision

Precision for this busbar

Required: no

reservoirs(self: pyltm._core_pyltm.Busbar) list[pyltm._core_pyltm.Reservoir]

A list of reservoirs (with plants) connected to this busbar

property spill_cost

Spill cost price

Required: no

sum_hydro_production(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Busbar sum hydro production steps over time

sum_load(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Busbar sum load filling over time

sum_power_used_for_pumping(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Aggregated sum of power used to pump in the busbar

sum_production_from_market_steps(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Busbar sum production from market steps over time

sum_pumped_power(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Aggregated sum of power stored with pumping

sum_reservoir(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Busbar sum reservoir filling over time

water_value_results(self: pyltm._core_pyltm.Busbar, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Water values for busbar

property water_value_weights

Water value weights

Required: no

class pyltm.BusbarTS
property busbar_name
property txy
class pyltm.BusbarTSes
property busbar_tses
class pyltm.BusbarWaterValue
property busbar_name
property water_values
class pyltm.Bypass

Use a bypass to change the outlet from the default discharge outlet/reservoir to another reservoir. Can also go to the sea.

property comment

User comment

Required: no

property max_bypass_curve

Max bypass curve (m3/sec)

Required: no

property max_bypass_scale

Max bypass scaling factor (factor)

Required: no

property max_bypass_series_name

Max bypass series name (string)

Required: no

property metadata

User metadata

Required: no

property min_bypass_curve

Min bypass curve (m3/sec)

Required: no

property min_bypass_scale

Min bypass scaling factor (factor)

Required: no

property min_bypass_series_name

Min bypass series name (string)

Required: no

property name

Object name

Required: yes

class pyltm.CalendarMode

Members:

ISO

EFI

invalid_calendar_type

EFI = <CalendarMode.EFI: 1>
ISO = <CalendarMode.ISO: 0>
invalid_calendar_type = <CalendarMode.invalid_calendar_type: 2>
property name
property value
class pyltm.ConversionLimit
property normal_value
property value
class pyltm.CriticalNetworkElement

CNE

Critical network element (CNE) contains the remaining available capacity (RAM), power transfer distribution factors (PTDF) and Bidding zone connection points.

property active

Active timeseries (time/on/off)

Required: yes

property comment

User comment

Required: no

get_dual_values(self: pyltm._core_pyltm.CriticalNetworkElement, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

FBMC dual values. Results are only valid with model type EMPS.

get_flow_values(self: pyltm._core_pyltm.CriticalNetworkElement, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

FBMC flow values. Results are only valid with model type EMPS.

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property ptdf

Power Transfer Distribution Factor

Required: yes

property ram

Remaining available capacity (MW)

Required: yes

class pyltm.DCLine

DCLine connects two busbars/areas

property backward_capacity

Defines the capacity from busbar B to busbar A

Required: yes

property backward_cost

Backward cost

Required: no

property comment

User comment

Required: no

property forward_capacity

Defines the capacity from busbar A to busbar B

Required: yes

property forward_cost

Forward cost

Required: no

property from_busbar

From busbar

Required: no

have_transmission_results(self: pyltm._core_pyltm.DCLine) bool

Returns true if there are valid transmission results for this DCLine

property id

Internal ID

Required: no

property loss_percentage

Loss percentage

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property to_busbar

To busbar

Required: no

transmission_results(self: pyltm._core_pyltm.DCLine, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Transmission results for DCLine

class pyltm.ExportSettings
property export_water_values
property export_wind_data
class pyltm.ExportTarget

Members:

NoExport

User

Hdf5

SQLite

Hdf5 = <ExportTarget.Hdf5: 2>
NoExport = <ExportTarget.NoExport: 0>
SQLite = <ExportTarget.SQLite: 3>
User = <ExportTarget.User: 1>
property name
property value
class pyltm.ExportedData
property data
property model
class pyltm.Exporter
export_data(self: pyltm._core_pyltm.Exporter, arg0: pyltm._core_pyltm.ExportedData) None
class pyltm.FactorValues
property normal_value
property start_week_values
class pyltm.FeedbackFactors
property artificial_minimum_production
property conversion_limit
property feedback_factor
property flexibility_factor
property form_factor
class pyltm.GlobalSettings

Global settings.

Global settings defines the common runtime parameters and configuration for the model.

property allow_validation_failures

Ignore validation failures

Required: no

property calendar_mode

Calendar mode

Required: no

property comment

User comment

Required: no

property currency_unit

Default currency unit

Required: no

property data_period

Data period

Required: no

property default_load_penalty

Default load penalty. Must be higher than the highest price in any other market step.

Required: no

property default_max_iterations_battery

Default max iterations for battery areas (busbars)

Required: no

property default_precision_battery

Default precision for batteries

Required: no

property default_spill_cost

Default spill cost. Usually non-zero, but very close to zero.

Required: no

property delete_output_dir

Delete runtime directory after execution

Required: no

property energy_unit

Default energy unit

Required: no

property etha

ETHA

Required: yes

property export_directory_path

No description

Required: no

property export_settings

No description

Required: no

property export_target

No description

Required: no

property extra_environment

Expert use only. Additional environment variables to set when executing LTM applications.

Required: no

property fbmc

Flow-Based Market-Coupling

Required: no

property fbmc_period

FBMC active period

Required: no

property forecast_period

Forecast period

Required: no

property generate_output_dir

Generate a runtime subfolder under output_path

Required: no

property historical_period

Historical period

Required: yes

property historical_type

Historical period calendar type

Required: no

property ignore_stopwords

Continue execution even if there are possible errors in EMPS/EOPS logs

Required: no

property interest_rate

Global interest rate

Required: no

property intraweek_timesteps

Former ‘simulation_price_period’ / price segments

Required: no

property jao_data_source

JAO data source (file) with PTDF data

Required: no

property kronasjer

Default currency unit

Required: no

property ltm_license_file_path

Path to LTM license file

Required: no

property max_iterations

Default max iterations

Required: no

property metadata

User metadata

Required: no

property model_type

EMPS or EOPS model

Required: no

property name

Object name

Required: yes

property num_price_scenarios

No description

Required: no

property num_processes

Number of paralell MPI processess

Required: no

property output_path

Output and runtime directory where LTM will read and write data

Required: yes

property precision

Default precision

Required: no

property simulation_period

EMPS/EOPS simulation period. Previously calc_water_value_flag.

Required: yes

property simulation_type

Parallel or serial simulation

Required: no

property timesteps_per_week

Automatic, sequential time steps / price segments

Required: no

property water_value_period

Water value period

Required: no

class pyltm.HistoricalType

Members:

EFI

ISO

Civillian

invalid_historical_type

Civillian = <HistoricalType.Civillian: 2>
EFI = <HistoricalType.EFI: 0>
ISO = <HistoricalType.ISO: 1>
invalid_historical_type = <HistoricalType.invalid_historical_type: 3>
property name
property value
class pyltm.HydraulicCoupling

Hydraulic coupling

Join multiple reservoirs into a connected system. Used to add flexibility to the hydro-power modelling. Allows for connecting multiple reservoirs and plants.

property busbar_name

Busbar name

Required: no

property comment

User comment

Required: no

connected_reservoirs(self: pyltm._core_pyltm.HydraulicCoupling) list[pyltm._core_pyltm.Reservoir]

For a non-station joined hydraulic coupling (type 200 or 300), returns connected reservoirs.

discharge(self: pyltm._core_pyltm.HydraulicCoupling, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Hydraulic coupling discharge. Only relevant if HC is connected to a plant.

property gate_switch_frequency

Gate/hatch switch frequency. 0-100. 0 and 100 = no limits, 50 = most limited. Numbers 0-49, 51-100 determines what side of the hatch/gate to prefer. (unit-less)

Required: no

have_hydraulic_flow_results(self: pyltm._core_pyltm.HydraulicCoupling) bool

Are there hydraulic flow results available for this hydraulic coupling. Only available in EOPS, and with a license enabling hydraulic flow results.

property max_flow

Max flow through the coupling, note the unit is an integer (m3/sec)

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

production(self: pyltm._core_pyltm.HydraulicCoupling, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Hydraulic coupling production. Only relevant if HC is connected to a plant.

property station_joined

Is connected to a plant/station. Readonly (bool)

Required: no

class pyltm.Inflow

Inflow series is used for historical series and some time-dependent restrictions on reservoirs and plants.

Optional short-term forecast can be used to override the historical series with a given period.

property comment

User comment

Required: no

property forecast

Optional forecast series (m^3/s)

Required: no

property forecast_period

Optional forecast period

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property series

Inflow series (m^3/s)

Required: yes

class pyltm.Load

Load refers to contractual rights to buy or sell power. The load is forecast and time-dependent.

Connects to a busbar/area.

property busbar_name

Busbar name

Required: no

property capacity

Load capacity (MW)

Required: yes

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.LtmApiModel
add(self: pyltm._core_pyltm.LtmApiModel, what: str, name: str, data: json = None) object
aggregated_hydro_modules(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.AggregatedHydroModule]
battery_modules(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.BatteryModule]
busbars(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.Busbar]
calculate_residual_load(self: pyltm._core_pyltm.LtmApiModel, sample_rate: datetime.timedelta = datetime.timedelta(seconds=3600), output_resolution: datetime.timedelta = datetime.timedelta(days=364)) json

Calculates the residual loads for all scenarios with the given sample rate and output resolution

cnes(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.CriticalNetworkElement]
dclines(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.DCLine]
property exporter
get_discharges(self: pyltm._core_pyltm.LtmApiModel, reservoir: pyltm._core_pyltm.Reservoir) dict[str, int]

Returns a dictionary with discharge, bypass, and spill module numbers for the a given reservoir

property global_settings
loads(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.Load]
market_calibration_areas(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.MarketCalibrationArea]
market_steps(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.MarketStep]
solar(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.Solar]
wind(self: pyltm._core_pyltm.LtmApiModel) list[pyltm._core_pyltm.Wind]
class pyltm.LtmApiModule
static attributes() json
build_busbar_graph(self: pyltm._core_pyltm.LtmApiModule) str
build_connection_tree(self: pyltm._core_pyltm.LtmApiModule) str
connect(self: pyltm._core_pyltm.LtmApiModule, arg0: pyltm._core_pyltm.PyLtmReference, arg1: pyltm._core_pyltm.PyLtmReference) pyltm._core_pyltm.PyLtmConnection

Connects two model objects

Parameters:
Returns:

connection object

Return type:

PyLtmConnection

dump_model(self: pyltm._core_pyltm.LtmApiModule, dump_path: str, model_filename: str = 'model.json', timeseries_filename: str = 'timeseries.h5') None

Dumps the model to a JSON file and timeseries to h5-file.

Parameters:
  • dump_path (str) – relative path to dump folder

  • model_filename (str, optional) – name of json file. Default value is model.json.

  • timeseries_filename (str, optional) – name of h5-file with timeseries. default value is timeseries.h5.

Return type:

None

execute_model(self: pyltm._core_pyltm.LtmApiModule, path: str = '') json

Executes a model and returns a JSON-like dictionary.

Parameters:

path (str) – Path to the model. Defaults to an empty string.

Returns:

A dictionary representing the JSON response.

Return type:

dict[str, Any]

export_results(self: pyltm._core_pyltm.LtmApiModule) None
import_directory(self: pyltm._core_pyltm.LtmApiModule, arg0: str) bool

Imports an EMPS/EOPS directory into a LTM-API model

Parameters:

datadir (str) – Path to a classic runtime directory

Returns:

Success or failure of the import

Return type:

success (bool)

load(*args, **kwargs)

Overloaded function.

  1. load(self: pyltm._core_pyltm.LtmApiModule, model: json = {}) -> str

  2. load(self: pyltm._core_pyltm.LtmApiModule, filename: str = ‘’) -> str

load_from_ltm_dir(self: pyltm._core_pyltm.LtmApiModule, path: str = '') None

Import a classic EMPS/EOPS runtime directory to be able to fetch results.

This creates a minimal LtmApiModel with busbars, detailed hydro modules and dclines based on the classic runtime directory. Only used for getting results.

Parameters:

datadir (str) – Path to a classic runtime directory

Returns:

void

property model
static results() json
set_execute_callback(self: pyltm._core_pyltm.LtmApiModule, arg0: Callable[[dict, object], bool], arg1: object) None

Sets a user-callback that will be called after every program LTM core has executed

Parameters:
  • fn (callback) –

    A Python function with signature: def usercallback(program_info: dict, userdata: any):

    … return True

  • userdata (any) – User provided userdata

validate_model(self: pyltm._core_pyltm.LtmApiModule) None
write_model(*args, **kwargs)

Overloaded function.

  1. write_model(self: pyltm._core_pyltm.LtmApiModule) -> bool

    Write the in-memory model to disk

  2. write_model(self: pyltm._core_pyltm.LtmApiModule, model: json = {}) -> bool

    Writes the model directly to disk from a JSON/Python Dictionary.

    Args:

    model (dict): A dictionary representation of a LtmApi model

class pyltm.MainPriceSeries

Main price series

Main price series allows for specifying exogenous prices. The series is connected to a market_step.

Only one series is allowed.

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property percentiles_for_water_values

Customize percentiles for the price levels. Adds a price scenario dimension to water values.

Required: no

property probabilities

price scenarios has equal probability.

Required: no

Type:

Option to customise probabilities of the price scenarios. Overrides default

property series

Price series values (Unknown)

Required: yes

class pyltm.MarketCalibrationArea

Market calibration area

Market calibration areas are used to group emps areas. The group of areas is used in water value calculations. Used when a bottle-neck limits exchange between groups.

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.MarketStep

Market step

A market step represents time-dependent price-elastic power supply/demand. For example import, export, thermal-power etc.

property busbar_name

Busbar name

Required: no

property capacity

Capacity time series

Required: yes

property capacity_vv

Capacity time series used for the water value calculation

Required: no

property cat

Category for market step

Required: no

property comment

User comment

Required: no

property exogenous_price

Exogenous price time series

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property price

Price time series

Required: no

property secondary_price_series_name

Name of connected seconday price series

Required: no

class pyltm.ModelType

Members:

EMPS

EOPS

invalid_model_type

EMPS = <ModelType.EMPS: 0>
EOPS = <ModelType.EOPS: 1>
invalid_model_type = <ModelType.invalid_model_type: 2>
property name
property value
class pyltm.NDArray_f32
property dim_names
property unit
class pyltm.NDArray_f64
property dim_names
property unit
class pyltm.NDArray_int64_t
property dim_names
property unit
class pyltm.Plant

A plant represent a hydro-power plant. It receives storable hydro from a reservoir and generates power.

property average_unregulated_inflow

Average yearly unregulated inflow. (m^3/s)

Required: yes

property breakdown_unavailable_capacity

Unforeseen downtimes capacity outage for a plant (havari) (MW)

Required: no

property busbar_name

Busbar name

Required: no

property comment

User comment

Required: no

property discharge_energy_equivalent

Local discharge energy equivalent time series, given together with turbine PQ-curves. The time period must be aligned with pq_curves. If using a repeating PQ-curve, discharge energy equivalent must be within the same range. If unsure, use W01 (kWh/m^3)

Required: yes

property gross_head

Nominal gross head (brutto fallhoyde) (m)

Required: yes

property gross_head_max_discharge

Maximum discharge as function of gross head (m3/s - m)

Required: no

property max_bypass_curve

Max bypass curve (m3/sec)

Required: no

property max_bypass_scale

Max bypass scaling factor. Only used for series from historical.h5 (factor)

Required: no

property max_bypass_series_name

Max bypass series name in historical.h5 (string)

Required: no

property max_discharge_curve

Max discharge curve (m3/sec)

Required: no

property max_discharge_scale

Scale factor of the input series. Only used for series from historical.h5 (factor)

Required: no

property max_discharge_series_name

Series name for max discharge series in historical.h5 (string)

Required: no

property metadata

User metadata

Required: no

property min_bypass_curve

Min bypass curve (m3/sec)

Required: no

property min_bypass_scale

Min bypass scaling factor. Only used for series from historical.h5 (factor)

Required: no

property min_bypass_series_name

Min bypass series name in historical.h5 (string)

Required: no

property min_discharge_curve

Min discharge curve (m3/sec)

Required: no

property min_discharge_scale

Min discharge scaling factor. Only used for series from historical.h5 (factor)

Required: no

property min_discharge_series_name

Min discharge series name in historical.h5 (string)

Required: no

property name

Object name

Required: yes

property ownership

Ownership of this module. In percent (%)

Required: no

property pq_curves

PQ efficiency curves. Must be used with discharge energy equivalent. Timestamps must also be in the same period as discharge energy equivalent. (Time + X=m^3/sec Y=MW)

Required: yes

property tailrace_elevation

Plant tailrace elevation (utlopskote stasjon) (m)

Required: yes

property unavailable_capacity

Planned capacity outage for a plant (revision) (MW)

Required: no

property unregulated_inflow

Unregulated inflow time series (m^3/sec)

Required: no

property unregulated_inflow_name

Inflow series name

Required: no

class pyltm.Pump

A pump represents pumped hydro. Pumped hydro is stored and available for discharge. Pump uses surplus power to store water in upper reservoirs. There are two kinds of pumps;

  1. Station joined pumps

  2. Standalone pumps

Station joined pump, connect the pump to the plant: pump -> plant.

Standalone pump, insert the pump between upper and lower reservoirs: upper -> pump -> lower.

property average_power

Average pump power (MW)

Required: yes

property breakdown_unavailable_capacity

Unforeseen downtimes capacity outage for a pump (havari) (MW)

Required: no

property busbar_name

Busbar name

Required: no

property comment

User comment

Required: no

property lower_reservoir_reference_curve

Lower reservoir reference curve. Pump will stop pumping if lower reservoir goes under this limit. (timestamp, Mm3)

Required: yes

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property ownership

Pump ownership share (%)

Required: yes

property pump_capacity

Pump capacity, pump height / flow (meter, m3/sec)

Required: yes

property unavailable_capacity

Planned capacity outage for a pump (revision) (MW)

Required: no

property upper_reservoir_reference_curve

Upper reservoir reference curve. Pump will stop pumping if upper reservoir goes over this limit. (timestamp, Mm3)

Required: yes

class pyltm.PyExporter
class pyltm.PyLtmConnection
property from
property to
class pyltm.PyLtmReference
property name
property what
class pyltm.PyltmResult
as_tuple(self: pyltm._core_pyltm.PyltmResult) tuple
property data
property results
property time_axis
class pyltm.Reservoir

A reservoir is one of the main components in a detailed hydro power system. It stores water, receives inflow and discharges water to other modules and/or plants.

property average_regulated_inflow

Average yearly regulated inflow. (m^3/s)

Required: yes

property average_spill_energy_equivalent

Average energy equivalent for spills. (kWh/m3)

Required: yes

property busbar_name

Busbar name

Required: no

bypass(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir bypass over time (price segment resolution).

property comment

User comment

Required: no

property degree_of_regulation

Reservoir regulation capacity (reguleringsgrad) (factor)

Required: no

discharge(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir discharge over time (price segment resolution).

flow(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Flow exchange results for hydraulic coupling. Only available with EOPS, and a license enabling flow exchange results.

property gross_head

Nominal gross head (brutto fallhoyde) (m)

Required: no

property hc_has_gate

Hydraulic coupling has gate

Override has_gate in a hydraulic system per module

Required: no

property hc_max_flow

Hydraulic coupling max flow

Override max_flow in a hydraulic system per module

Required: no

inflow(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir inflow over time (price segment resolution).

property initial_volume

Reservoir initial volume. (Mm3)

Required: no

property max_bypass_curve

Max bypass curve

Time dependent curve for maximum allowed bypass (m3/sec)

Required: no

property max_bypass_scale

Max bypass scaling factor (factor)

Required: no

property max_bypass_series_name

Max bypass series name (string)

Required: no

property max_discharge

Maximum production discharge (m^3/sec)

Required: yes

property max_discharge_curve

Max discharge curve (m3/sec)

Required: no

property max_discharge_scale

Scale factor of the input series (factor)

Required: no

property max_discharge_series_name

Series name for max discharge series (string)

Required: no

property max_volume

Maximum volume of this reservoir (Million m^3)

Required: no

property max_volume_curve

Restriction 1, reservoir max volume (Mm3)

Required: no

property max_volume_curve_hard_limit

Restriction 1, reservoir has max volume hard limit (bool)

Required: no

property metadata

User metadata

Required: no

property min_bypass_curve

Min bypass curve (m3/sec)

Required: no

property min_bypass_scale

Min bypass scaling factor (factor)

Required: no

property min_bypass_series_name

Min bypass series name (string)

Required: no

property min_discharge_curve

Min discharge curve (m3/sec)

Required: no

property min_discharge_scale

Min discharge scaling factor (factor)

Required: no

property min_discharge_series_name

Min discharge series name (string)

Required: no

property min_volume_curve

Restriction 2, reservoir min volume (Mm3)

Required: no

property min_volume_curve_hard_limit

Restriction 2, reservoir has min volume hard limit (bool)

Required: no

property module_number

Automatically generated DETD module number. Used by LTM to build relations between modules.

Required: yes

property name

Object name

Required: yes

production(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir/plant production over time (price segment resolution).

property reference_curve

Reservoir reference curve (Million m^3)

Required: yes

property regulated_inflow

Regulated inflow time series (m^3/sec)

Required: no

property regulated_inflow_name

Inflow series name

Required: no

reservoir(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir filling over time (price segment resolution).

property reservoir_type

Regulation or buffer reservoir

Required: no

spill(self: pyltm._core_pyltm.Reservoir, time_axis: bool = True) pyltm._core_pyltm.PyltmResult

Reservoir spill over time (price segment resolution).

property tailrace_elevation

Reservoir tailrace elevation (utlopskote) (m)

Required: no

property volume_curve

Reservoir volume curve (meter / million m^3)

Required: no

class pyltm.ReservoirType

Members:

REGULATION

BUFFER

invalid_reservoir_type

BUFFER = <ReservoirType.BUFFER: 1>
REGULATION = <ReservoirType.REGULATION: 0>
invalid_reservoir_type = <ReservoirType.invalid_reservoir_type: 2>
property name
property value
class pyltm.SecondaryPriceSeries

Secondary price series

Secondary price series is used to set exogenous prices different from the main price series. Several price series can be defined.

The series is connected to a market step.

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

property probabilities

Option to customise probabilities of the price scenarios. Use to override the default where each price scenario receives equal probability.

Required: no

property series

Price series values1. Given as a flattened Txy of 1931_1, 1931_2, 1932_1, … (Unknown)

Required: yes

class pyltm.SimulationType

Members:

Serial

Parallel

invalid_simulation_type

Parallel = <SimulationType.Parallel: 1>
Serial = <SimulationType.Serial: 0>
invalid_simulation_type = <SimulationType.invalid_simulation_type: 2>
property name
property value
class pyltm.Solar

Solar power production. Connects to a busbar/area.

property busbar_name

Busbar name

Required: no

property capacity

Solar power (MW)

Required: yes

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.Spill

Use a spill to change the outlet from the default discharge outlet to another reservoir. Can also go to the sea.

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.Txy
property is_periodic

Is a repeating timeseries. Only relevant for TxyLin

property ltm_core_linear_interpolation

Will be linearized in LTM Core. Only relevant for TxyLin

property name

Optional name.

property scenarios

Array of double for values corresponding to time in timestaps.

property timestamps

Array of strings with timestamps.

property unit

Unit for values in scenarios.

class pyltm.TxyLin
property name

Optional name.

property scenarios

Array of double for values corresponding to time in timestaps.

property timestamps

Array of strings with timestamps.

property unit

Unit for values in scenarios.

class pyltm.V10DatasetConverter
export_exogenous_prices(self: pyltm._core_pyltm.V10DatasetConverter, externalDataType: pyltm._core_pyltm.ExternalDataType, externalDataFilename: str = '', filename: str = 'exogenous_prices.h5') json
export_historical(self: pyltm._core_pyltm.V10DatasetConverter, externalDataType: pyltm._core_pyltm.ExternalDataType, externalDataFilename: str = '', filename: str = 'historical.h5', scaleFactor: float = 1.0) json
export_tidsseriedata(self: pyltm._core_pyltm.V10DatasetConverter, externalDataType: pyltm._core_pyltm.ExternalDataType, externalDataFilename: str = '', filename: str = 'TidsserieData.h5') json
read_revisjonsplan_stas(*args, **kwargs)

Overloaded function.

  1. read_revisjonsplan_stas(self: pyltm._core_pyltm.V10DatasetConverter, filename: str) -> json

  2. read_revisjonsplan_stas(self: pyltm._core_pyltm.V10DatasetConverter) -> json

class pyltm.WaterValue
property inflow_conditions
property weights
class pyltm.WaterValueData
property busbar_water_values
class pyltm.Watercourse

Water course exists as an object placeholder. Currently not used.

property busbar_name

Busbar name

Required: no

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.Wind

Wind power generation. Connects to a busbar/area.

property busbar_name

Busbar name

Required: no

property capacity

Wind power (MW)

Required: yes

property comment

User comment

Required: no

property metadata

User metadata

Required: no

property name

Object name

Required: yes

class pyltm.WindData
class pyltm.Xy
property x
property y
pyltm.add(arg0: int, arg1: int) int

Add two integers. Do not remove. Used in unit testing.

pyltm.get_pyltm_shlibpath()[source]

Returns the absolute path to the location of shared libraries within the pyltm python package.

Return type:

str

pyltm.update_path_env()[source]

Updates the PATH environment variable, adding the pyltm shared library path.