Downloads¶
v0.2.9¶
- Sneaky release with optimisation exposed to the Python API.
- Also includes:
pip install kalix==0.2.9
v0.2.8¶
- File tree (NEW!!!)
- Compare files
- Compare files to active editor
- Move, copy, delete, right in the file tree
- Copy file paths (absolute, relative, trailhead-relative to your model file)
- Have multiple models (or files) open at once and switch between them seamlessly.
- Icon set migrated to FA6.
- Kalix tutorials published.
pip install kalix==0.2.8
v0.2.6¶
- Routing node now supports the "Nonlinear Muskingum" (
nlm) model. - Linting performance improvements.
- Custom line style extended to the envelope drawing mode used when data density is too high. Line styles are now visible on exceedance plots after this change.
pip install kalix==0.2.6
v0.2.5¶
- Custom colour palettes (colour and style) in the plotting tool. Custom palettes are automatically saved in your preferences file. The association between data and line can be chosen by the user, and consistency is maintained across tabs.
- Performance and reliability: Stats tab performance improved by better mask design, and shared prep work across stats. Revised approach to series tracking under the hood, eliminating minor bugs related to series selection.
- Changed optimisation UX so that multiple new configs may be prepared simultaneously before starting the runs. Cleaned up optimisation result presentation.
- Table View (
ctrl+t) is now available for the "rain" property, making it easier to copy rainfall weighting coefficients from model to report. - Loss node was previously saving the "table" property back out after optimisation finished even if it was not supplied in the original model. Fixed now.
- Kalix can now be installed as a Python package (
pip install kalix) directly from PyPI. The package currently supports:- loading and running models
- reading and writing Pixie compressed timeseries datasets
- Automatic unit testing in the cloud (Windows, Linux, macOS) on every repository push.
- Automatic deployment (Windows, Linux only) upon a new tag starting with "v", e.g. "v0.2.5".
pip install kalix==0.2.5
v0.2.4¶
- Resource management:
- Accounts [BETA]
- User accounts form the basis of resource management systems.
- Accounts are implicitly created when mentioned in user nodes (
regulated_userorunregulated_user). They are given any name you like, e.g. "brwss_0031". Multiple users may refer to the same account. - Model results associated with accounts are recordable using the prefix "acc.", e.g.
acc.brwss_0031.balance.
- Accounts [BETA]
- Support for non-daily timesteps (only required minor tweaks):
- CSV I/O format clarification
- Internal logic for handling start and end timestamps
- Performance improvements:
- Internal function engine now caches function pointers rather than switching in the hot path (previously the execution tree matched on function name during evaluation).
- Support for compressed data on STDIO for faster loading of very long model result sets (now on by default). This uses Kalix's Gorilla-based compression algorithm.
- Optimisation enhancements:
- Multi-objective optimisation enabled by arbitrary combination of fitness terms. The modeller defines individual fitness terms and then combines them as they like.
- Model parameter expressions are now full-blown functions, allowing modellers to articulate more complex relationships between optimisable parameters.
v0.2.3¶
- User-interface stuff:
- The new Parameter Sheet tool (Tools > Parameter Sheet).
- Plotting — lasso zoom by shift + click and drag.
- Plotting — undo/redo on plots!
- Plotting — new mask button for filtering to overlapping data.
- Plotting — added 2 new plot types, "Residual Mass" and "Double Mass".
- Plotting — different plot tabs now have independent datasets, so changing the data selection in one doesn't affect the other.
- Reference data using Trailhead Paths! This is a new type of relative path that starts with a "^" symbol meaning "the current folder or some parent folder". For example,
^/data/evap.csvwill match data in./data/evap.csv,../data/evap.csv,../../data/evap.csv, etc, whichever comes first. Trailhead paths let models reference data relative to some parent location without having to know how far below the parent we are. - Other minor things:
- Tweaked storage algorithm to avoid floating-point noise in storage release values.
- Routing node performance improvements and bugfix for
x=1. - Ordering through 100% loss now results in 0 order.
pip install kalix==0.2.3
v0.2.2¶
- User-interface stuff:
- Autocomplete added to editor context menu.
- New "Copy Location" item in map context menu.
- New "Go to Node Definition" in editor context menu when clicking on node names in links.
- Linting rules expanded to handle comments on
TYPE,LOC,DS_1lines. - Linting rules now see
[inputs]and[outputs]sections as optional. - Fixed sticky timeseries selection in Run Manager when filtering.
- Dynamic expression improvements:
- New "this" syntax allows functions to refer to the current node more cleanly. E.g.
this.usflowrefers to the flow upstream of the current node. - Recorders for the following outputs have been moved to allow earlier access to those values:
usflowis recorded at start of flow phaseds_1_orderis recorded at start of order phase (same for other links)- other order-phase recorders moved to within the ordering phase as allowed
- New "this" syntax allows functions to refer to the current node more cleanly. E.g.
- Can now launch KalixIDE from the CLI (if on the path). The command accepts one optional argument, the filename of a model to open.
- Ordering stuff:
- Loss node ordering calc correction.
- Loss node ordering calc now handles loss segments with slope=0 through slope=1. The latter represents a situation where additional inflow produces no additional outflow; in this case order is capped at the minimum value that produces some additional flow.
- Storage nodes can now propagate orders verbatim using
order_through = true. - Storage nodes can now generate orders to maintain target level using the
target_levelproperty.
v0.2.1¶
- Auto-complete! Press
ctrl+spacein the text editor to see suggestions. This gives you easy access to all timeseries in your defined input data, and all model variables. It filters as you type, and is context-aware, so what you see depends on where you are. - Confluence node has a new
harmony_fractionproperty for harmony functions. The confluence node also now automatically handles branches with different travel times. - Storage node outlets
ds_1_outlet,ds_2_outletetc now used to specify minimum operating levels on storage outlets. - Storage node meets
ds_1orders from spills first if possible. - New Storage node recorders for outlet flow (
ds_1_outlet) and spillway flow (ds_1_spill). - New commandline flag
-preports simulation times for performance benchmarking. - Improved error reporting with context tracking for hot-path panics.
- Cut/copy/paste selected nodes and links in the schematic map.
- Right-click menu in schematic map with handy things including Rename node and Zoom to fit.
- With selected nodes in the schematic, use
ctrl+dragto rotate the node selection. Ctrl+fon the map to Find node.- Right-click in the text editor to access Show on Map. This selects the node you are working on and brings it to the centre of the screen.
- Map shows mouse coordinates in the bottom left.
- Run Manager window has a new filter above the Timeseries tree. Find the thing you want to plot more easily!
- Linting performance improvements to reduce sluggishness when multiple errors or warnings are displayed.
- Linting rules (editor warnings) for
sim.year,sim.month,sim.day,sim.day_of_year,sim.stepsimulation variables. - Improvements to the
order_constraintnode type. New icon. - Improved case-sensitivity in functions, data references and model variables. Result recording now preserves case (used in the output section) for output file columns.
- Bug fixes:
- Fixed Hadis's issue whereby saving a calibrated model reverted the version property (#198).
- Fixed issue with plot sometimes not automatically updating.
- Fixed issue with auto-Y not going small enough to see small values.
v0.2.0¶
- Ordering system.
- Removed the "user" node type and replaced it with "unregulated_user" and "regulated_user".
- New node type "order_constraint" to implement minimum orders, maximum orders, or to set order. This node type also has the ability to delay orders (for advanced applications).
- Reversed convention for data access offset. Negative offsets now refer to the past, e.g.
data.file_csv.by_name.myflow[-3, 0.0]means the value 3 timesteps ago. - New "Table View" context tool in KalixIDE, available for most tabular properties.
- New aliases "sim" and "opt" for the CLI commands.
- Pyramid storage generation tool improved and moved to the Table View.
- CSV reader improvements — handling trailing commas in the header row.
- Node execution order now always follows the definition sequence (automatic execution order removed).
- Storage node enhancement — binary search for a more efficient solution, and added pond diversion functionality.
v0.1.2¶
- More robust internal case-insensitivity for node names. Fixes an issue with optimisation of models with uppercase nodes.
v0.1.1¶
- New recorders for Sacramento internal fluxes —
roimp,flosf,floin,flobf. - Windows icon fixes.
- Good error messages when a data reference is not found.
- Simplified status-bar messaging.
- RSyntaxArea initialisation improvements.
v0.1.0¶
- Gauge node can force flows, and can report the difference between modelled flow (upstream) and an input reference flow. Details are in the gauge node documentation.