Changelog¶
Planned features in Backlog.
* breaking change.
0.21.0 (2026.03.24)¶
Breaking changes¶
Updated stubs and docstrings for Python API object and attributes. Some Python objects have changes in name and what namespace they belongs to.
- Updated stubs and docstrings for methods on Python API objects.
Attribute
HydraulicCoupling::is_station_joinedhas been renamed toHydraulicCoupling::station_joinedAttribute
HydraulicCoupling::have_hydraulic_flow_resultshas been changed into a methodhave_hydraulic_flow_results()Reservoir result method
discharge()has an alias,drawdown(). The alias has been removed.busbar.reservoirs()does not include station joined hydraulic couplings anymore. Usebusbar.hydraulic_couplings().
Non-breaking changes¶
0.20.3 (2026.03.06)¶
Non-breaking changes¶
Keys
ltm_core_linear_interpolationandis_periodicare allowed when importing Txy from JSON.Removed attributes
periodic_lower_boundandperiodic_upper_boundfrompyltm.util. They were causing problems on Windows.
0.20.2 (2026.03.03)¶
Breaking changes¶
Changed base year for cyclic curves from year 0000 to year 1703. Added is_periodic to TxyLin.
Added support for cyclic PQ-curves. From JSON use weeks-notation (ie: W01 up to W52), for Python use DateTime with 1703 as year.
Non-breaking changes¶
Relaxed requirements for TxyLin curves. Invalid curves will not result in a hard stop, but a validation discrepancy. Validation discrepancies can be ignore by setting
allow_validation_failurestotrue.
0.20.1 (2026.02.02)¶
Non-breaking changes¶
Attributes is now a compile time tuple/list for each object.
Added support for cyclic TxyLin curves that will automatically repeat for each year in the data period.
Import: Do not print ‘Hydraulic coupling 0 not handled for reservoir [reservoir name]’ when hydraulic coupling code is 0.
0.20.0 (2026.01.21) *¶
Breaking changes¶
Added energy equivalent validation checks. Validation will fail if those two energy equivalents are not approximately the same, +-5% range is allowed.
Extra TxyLin checks for curves that will be linearized in LTM Core.
Extra TxyLin checks for curves that will be linearized in LTM Core. Time dependent constraints for minimum and maximum discharge, bypass and reservoir volume are checked for invalid data, the minimum values are not allowed to be higher than maximum values at any point
Validation of correctly specified pump_capacity for pumping head and pumped discharge
Non-breaking changes¶
Improved error messages.
0.19.5 (2026.01.12)¶
Non-breaking changes¶
metadataattribute is working as expected again.
0.19.4 (2026.01.12)¶
Internal release.
0.19.3 (2026.01.12)¶
Non-breaking changes¶
DETD modules with no production will no longer have any PQ-curves
added txylin datatype for time dependent reservoir reference curve, min/max reservoir volume curve, min/max bypass curve and min/max discharge where the name of the datatype “txylin” reflects to the users that the values are linearisation in the LTM-core.
added control of concurrent presence of min/max constraints and tests
Bugfixes¶
fix for letter casing in method getting area results from detsimres.h5
DETD-writer with no PQ-curves will write a correctly formatted entry. It was -1, 0.00, now it is 0, 0.00.
DETD-parser will correctly parse modules with 0 PQ-curves.
When shutting down pyltm, it will no longer give an error.
DETD-writer: Will throw an error if FALLHOYDE/gross_head is 0.0.
DETD import: Will set gross_head and tailrace_elevation on Plant and not Reservoir if Plant exists in the same system.
0.19.2 (2025.11.27)¶
Changes:
ENMD parser will complain with filename if trying to import a dataset with manually adjusted water value weights.
Fixed bug when getting hydraulic couplings for a busbar, saying dataset
HydUtvekslingis not available.Added
hc.production()andhc.discharge()for station joined hydraulic connections.Fixed hydraulic exchange flow results.
Updated pyltm.pyi stub file
0.19.1 (2025.11.20)¶
Added:
LTM files written by the API will be encoded in ISO-8859-1. Using nordic characters for area/busbar names is highly discouraged.
import_directorywill import DCLines from MASKENETT.DATA. Variable capacity is read from Cap_file.h5 and constant capacity is read from MASKENETT.DATA. Variable capacity on MASKENETT.DATA is not, and will not be supported.Import will not output both mutually exclusive attributes
max_volumeandvolume_curveReservoirs.Strings written to DETD and ENMD files is consistently in ISO-8859-1.
Bug with calculating time periods when importing data is fixed.
0.19.0 (2025.11.14)¶
Added:
First prototype for EMPS import directory functionality, with focus on DETD-topology and LtmApi model dump.
session.import_directoryandsession.dump_model.Updated DETD topology plots.
Added: Make missing return statements in non-void methods a compiler error with compiler flags “-Wreturn-type -Werror=return-type”
0.18.3 (2025.11.11)¶
Fixed: Station joined hydraulic connections did not connect to downstream reservoirs.
Bugfix: Detailed hydro results - reservoir volume unit
0.18.3-rc1 (2025.10.17)¶
Added:
Experimental methods
import_directoryanddump_model.
0.18.2 (2025.09.29) *¶
Added:
Support for outage/breakdown period (HAVARI.STAS) with attribute
breakdown_unavailable_capacityon Plants and Pumps.Results from hydraulic couplings type 200 and 300 if they are available through EMPS/EOPS license.
0.18.0 (2025.09.18) *¶
Change: Renamed some attributes to make them more consistent.
aggregated_hydro_mdule.regulated_energy_inflow->aggregated_hydro_mdule.regulated_power_inflowaggregated_hydro_mdule.unregulated_energy_inflow->aggregated_hydro_mdule.unregulated_power_inflow
Change: Renamed some result series.
aggregated_hydro_module.sum_hydro_energy_production->aggregated_hydro_module.sum_hydro_power_productionbattery_module.sum_energy_production->battery_module.sum_power_productionbusbar.sum_pumped_energy->busbar.sum_pumped_powerbusbar.sum_energy_used_for_pumping->busbar.sum_power_used_for_pumping
Unit for sum_pumped_power and sum_power_used_for_pumping is changed to MW from GWh.
Change:
Simplified the use of Txy timeseries.
- Added:
Added
reservoir.reservoir_type. Valid values arebufferandregulation.
Removed:
Txy attribute values in timeseries is removed and the API will generate an error if that key is used.
0.17.0 (2025.09.01) *¶
Warning
It is highly recommended to avoid using the attribute
busbar.water_value_weightsunless you know how to use it.
Warning
Energy inflow series for aggregated hydro modules has been changed from
MWhtoMW.
Warning
Attributes
spill_costandload_penaltyhave been changed to scalars. If they are omitted, default price for spill cost is 0.01 and default price for load penalty is 3000.0.
Change: Renamed some attributes in the JSON model and Python interface.
Result attribute
busbar.water_value->busbar.water_value_resultsInput attribute
busbar.water_value->busbar.water_value_weightsbusbar.reservoir->busbar.sum_reservoir
Added result series:
aggregated_hydro_module.sum_hydro_energy_productionaggregated_hydro_module.sum_hydro_energybattery_module.sum_energy_productionbattery_module.sum_energybusbar.sum_pumped_energybusbar.sum_energy_used_for_pumping
Removed:
global_settings.reservoir_pts
Added: Default currency unit/energy unit is EUR/MWh.
Change: Regulated and unregulated energy inflow for aggregated hydro modules and batteries have changed unit from MWh to MW. In the the same change, the API will now correctly sum up any variations within the week in case of hourly resolutions. The requirements for input series has been relaxed. It no longer strictly necessary to have the input series as a 2D matrix where the extra dimension is number of scenarios (historical years). When the input series is a 1D vector, the API will build a 2D series from the 1D input vector.
Added: Environment variable
LTM_ARCHIVEis always set toAPI.Added:
global_settings.default_spill_costandglobal_settings.default_load_penaltyprice series. If no spill cost/load penalty are defined on a busbar, they will use the default from global settings.Change:
spill_cost,load_penalty,default_spill_costanddefault_load_penaltyhave been changed to a scalar data type (double).Change: If
water_value_weightsis specified, number of weights must be exactly 7.
0.16.3 (2025.08.07)¶
Added: session.build_busbar_graph() for drawing dot graphs with busbars and connected DCLines
0.16.2 (2025.07.31)¶
Bugfix: Performance problem when fetching detailed hydro results with large result sets fixed.
0.16.1 (2025.07.29)¶
Bugfix: Disallow reassigning market steps, loads, +++, to other busbars if they already has been connected to a busbar.
0.16.0 (2025.07.28)¶
Added: Results from FBMC
Bugfix: Inflow series for hydraulic couplings
0.15.0 (2025.06.25)¶
Bugfix: Reservoir reference curve week bugfix. Week was offset by 1 week.
Added: Forecast and forecast period. Forecast.
Added:
global_settings/historical_type.
0.14.2 (2025.06.04)¶
Bugfix: Some features were wrongly disabled when using license file. Some features are always on and will not be disabled when running with license file or enviroment passwords.
0.14.1 (2025.06.04)¶
Added: Support for EMPS/serial simulation.
Added: Support for specifying timestamps in ISO-week notation, ie.
2024-W01. iso-week-time-labelBugfix: Aggregated hydro modules no longer requires upper/lower production/reservoir limits. Improved error message.
0.14.0 (2025.05.21)¶
Major: Flow based market coupling
Added: Generate LtmSystem.XML / EmpsSystem.XML
Major: Arbitrary start and end week for simulation.
calc_water_value_flagis nowsimulation_period.*Bugfix: Aggregated hydro modules used wrong unit in results. Correct units are MW and MWh, where GW and GWh was used previously.
*Added: More unit testing
Added: Fetching results from EOPS simulations
Added: Secondary price series
Added: Sum load and sum production from market steps aggregate results.
*Added: Results with time axis.
*Bugfix: Battery time series with relaxed requirements for time series.
*Added: Simplified price segment requirements and use.
Added: More detailed errors from H5.
Added: Interest rate
Bugfix: Aggregated hydro modules energy inflow used wrong unit when writing LTM data files. Energy inflow is correctly converting from MWh to GWh.
*Added: Market steps with exogenous prices.
Cosmetic: Attribute table displays the default value.
Added: Separate default precision and iterations for busbars with batteries.
Added: Specify precision and iterations per busbar.
Added: Specify feedback factors per busbar.
Bugfix: Interpolate volume restrictions (min/max volume) for all reservoirs for every week in the data period.
0.13.0 (2025.02.07)¶
Minimal EOPS simulation.
Revisions/unavailable capacity on pumps. *
Batteries included (again). *
V10Converter for exogenous prices
nt_inflowremoved from water value result matrix. *
0.12.3 (2025.01.17)¶
Bugfix: Spot price market step
0.12.1 (2025.01.14)¶
Bugfix: Spot price market step
0.12.0 (2025.01.10)¶
Spot price market step
0.11.0 (2024.12.19)¶
Exogenous price writer, but not usable from the API.
Added 2 attributes to global settings,
model_typeandsimulation_type.Hydraulic couplings. Hydraulic Couplings
Live LTM.
0.10.5 (2024.12.12)¶
Bugfix: Wind can be unlocked with password.
0.10.4 (2024.12.09)¶
Bugfix: Multiple DCLines between busbar is supported, while using Cap_file.
0.10.3 (2024.12.06)¶
Bugfix:
IdandTS_nameadded toTidsserieData.h5file when using loads with hourly resolution.
0.10.2 (2024.12.05)¶
Bugfix: Detailed hydro module, spill.
Added scenario dependent loads (
TidsserieData.h5).
0.10.1 (2024.12.02)¶
Bugfix: Fetching detsimres results from the API is not slow anymore.
0.10.0 (2024.11.29)¶
V10 converter for TidsserieData.h5. V10 Dataset Converter
Bugfix: Reservoir -> Plant -> Reservoir fix
Added: Waterways for Bypass and Spill. API Waterways and hydro topology
DETD results per reservoir.
Known issues:
Batteries does not work.
0.9.1 (2024.11.20)¶
Major: Pumps. Pumps in the LtmApi.
Added: Restriction 9 on plants, gross head max discharge.
Minor: Bugfixes on pumps.
Minor: Bugfixes when using external timeseries for some timeseries.
0.9.0 (2024.11.13)¶
Major: Detailed hydro modules has been reworked and previous models will not work. Detailed hydro modules.
Added: Utility-method for converting Historical.h5 series to LTM-API data series. V10 Dataset Converter.
Added: Writer for
reservoir.star. Initial reservoir volumes for detailed and aggregated hydro modules.Added: Writer for
revisjonsplan.stas. This file contains planned station outages.
0.8.1 (2024.10.25)¶
Fixed some bugs with TidsserieData.h5 and ENMD.
Added “stop words”. LTM-API will scan the contents of the produced log files and stop execution if any of the defined “stop words” are present. Ignore by setting
global_settings.ignore_stopwordstotrue.More properties and attributes on API objects in Python are defined and exposed.
0.8.0 (2024.10.24)¶
Dynamic attributes for Python API objects.
Loads are using a local index per busbar, allowing for more than 100 total loads in the simulation. Each busbar is still limited up to 100 loads.
The way the LTM core applications are launched have been changed.
Batteries included. Documentation: Battery functionality.
Reader for price segments.
Reader/writer for LASTPROFIL.ARCH and EFFEKTPROFIL.ARCH.
External timeseries for CSV and SQLite. External data.
DCLines with hourly resolution. Constant capacity is written to MASKENETT.DATA, any varying values goes to Cap_file.h5.
Very early prototypes of next iteration of DETD object included, not usable in this version.
Loads and market steps with hourly resolution is written to TidsserieData.h5. Constant values goes to {BUSBAR}.ENMD.
0.7.0 (2024.08.08)¶
Added the use of license file. License.
Reworked how attributes are defined for the API model.
Bugfix: Use globally unique names for solar and wind series.
Bugfix: Suppressed some H5-warnings.
0.6.1 (2024.06.25)¶
Bugfix: Expanded data buffer when writing string data to historical and wind/solar H5 data files.
0.6 (2024.06.17)¶
Residual loads and negative residual loads check. Residual loads.
Ability to set User-callback for all LTM Core application invokations. set_execute_callback.
Bugfix where some LTM Core option environment variables had wrong value.
0.5.2 (2024.06.07)¶
Export of results. Exporting of results.
Implemented Wind and Solar. Wind and Solar.
Explicit handling of environment variables for LTM Core.
Sequence numbers for market steps in busbar is incremented per busbar, and not globally.
0.5.1 (2024.05.22)¶
Bugfix when having multiple DCLines (maskenett) fixed.
More lenient requirements with energy inflow series.
0.5 (2024.05.22)¶
Support for external timeseries. External data.
Support for logging. Logging.
Model validation. Model Validation.
Market calibration areas. Market Calibration Areas.