v0.19.0
Changelog
Periodic predictors
You can now specify the period of each predictor in the post-processing page. You only need to enter the range (low/high) of the predictor values, and the software will figure out the period from that. This was done to allow for greater flexibility and better validation of predictor thresholds.
Validation of predictor thresholds (#139)
The software now performs an exhaustive set of checks on the predictor threshold sequences. It works for both circular and linear predictors. In case of an error (see example below), it points out the specific predictor that has an invalid sequence.
The validation algorithm is based on a stack-based state machine to prevent the GUI from stalling in case of invalid inputs that cannot be understood. The implementation also comes with extensive unit-tests that are automatically run on every commit on GitHub. Here's the list of test cases if anyone's curious.
Contextual errors
Errors originating on the backend now display more context in the toast cards (see example below).
Viewing weather types of non-leaf nodes (#134)
We now have 3 different modes for interacting with the decision tree:
- Simple ⇨ the default mode - clicking on the leaf nodes pops up the weather type; clicking on non-leaf nodes collapses the children.
- Edit ⇨ if enabled, clicking on the leaf nodes opens a modal to run the KS test and introduce splits.
- Non-collapsible ⇨ if enabled, none of the nodes can be collapsed; you can view the weather types on all nodes.
It works by figuring out the rows in the breakpoints matrix based on the selected non-leaf node and simulates a "merge" from the relevant leaf nodes backtracking to the selected node. It's as if you manually merged the children, without affecting the state of the breakpoints matrix.
Framework to compare Weather Types (#105)
The original idea was to split the GUI window into different workspaces such that they don't affect the states of one another. One can use this feature to visually compare two histograms, for example.
The above was achieved by introducing a --fork
command-line argument that can be used to spawn as many copies of the GUI as the user wants while sharing the same backend (Docker containers) in order to be lightweight.
--fork
argument.
Here's how it looks on my laptop. Note that the alignment is not great since my laptop screen is quite small, but it shouldn't be a problem on a desktop monitor.
Miscellaneous
- Display error message for name collisions with predictor variables. (#121)
- Implement more unit-tests for both the backend and electron code.
- Setup electron automated tests on the CI using GitHub Actions.
- Refactored some API routes in the backend to be more modular.
- Some refactorings were done in the excel-like sheet to input breakpoint values.