Skip to content

v0.19.0

Compare
Choose a tag to compare
@onyb onyb released this 04 Jan 07:32
· 142 commits to master since this release

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.

Screenshot 2021-01-04 at 03 11 38

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.

Screenshot 2021-01-04 at 03 16 55

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).

Screenshot 2021-01-04 at 02 26 37

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.

Screenshot 2021-01-04 at 03 38 27

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.

⚠️ The algorithm required a rework of the code that renders the decision tree by making it recursive. While I have tested it extensively, there may be bugs, especially in the non-leaf nodes. Please watch out!

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.

⚠️ The first GUI window should be launched as normal. Subsequent GUI windows must be launched using the--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.

Screenshot 2021-01-04 at 03 53 02

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.