Skip to content

Feature/7883 add count plotters #686

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

KueblerJelle
Copy link
Contributor

OP#7883

ar0305 and others added 11 commits May 13, 2025 16:14
…the counting process from the exporting and make it reusable
added counts image wrapping a PIL image, and some metadata:
name, timestamp, width and height

an abstract CountsPlotter handles obtaining Count object from a TrafficCounting, counting specification and actual plotting of the data is delegated to subclasses
a CountsPlotter can produce multiple CountsImages per Count being plotted (e.g. one plot per flow)

added abstract MatplotlibCountsPlotter, applying a predefined style (MatplotlibPlotStyler) to a matplotlib figure/axes, subclasses can plot the data on the provided Axes object

MultipleCountsPlotters wraps multiple CountsPlotters, delegates plot call and collects all CountsImages

added example FlowByModeCountPlotter which currently only prints the count as dict to the console
this list of CountsImages can be used to store/update the computed count plots and notify observers

added usecase CountPlotsUpdater which observes width and height of track view state as well as the event repository and trigger the provided plotter when notified
the newly created CountImages are set in the track view state, replacing the previous images
add missing get_counting_specification to MultipleCountsPlotters
pass list of plotters in constructor

Add data class FigurePlotter to wrap name and plotting-lambda for matplotlib plotting

Updated MatplotlibCountPlotStyler: styling of track plotting could unfortunately not be reused
styler can receive a list of FigurePlotters, the styler sets up figure and axes, applies the plotter and then styles the axes for each FigurePlotter

Implemented Flow/Classification based plotters

apply plotters for testing in base application/add observers for testing in gui_application
apply CountPlotSaver in base_application, register plot saver as observer at count plot list in TrackViewState
…iew model

trigger count plot update after create events
undo changes for testing in TrafficCounting disabling create_events
removed update count plots use case as observer from event repo in gui application
renamed class names containing "...Counts..." to "...Count..."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants