|
1 | 1 | import warnings |
2 | 2 | from datetime import datetime, timedelta |
| 3 | +from dataclasses import dataclass |
3 | 4 |
|
4 | 5 | import matplotlib.pyplot as plt |
5 | 6 | import numpy as np |
|
14 | 15 | from stonesoup.platform.base import Obstacle |
15 | 16 | from stonesoup.platform.shape import Shape |
16 | 17 | from stonesoup.plotter import Plotter, Dimension, AnimatedPlotterly, AnimationPlotter, Plotterly, \ |
17 | | - PolarPlotterly, AnimatedPolarPlotterly, merge_dicts |
| 18 | + PolarPlotterly, AnimatedPolarPlotterly, RAGPlotterly, RAG, merge_dicts |
18 | 19 | from stonesoup.predictor.kalman import KalmanPredictor |
19 | 20 | from stonesoup.sensor.radar.radar import RadarElevationBearingRange |
20 | 21 | from stonesoup.types.detection import TrueDetection, Clutter |
@@ -686,3 +687,21 @@ def test_obstacles(plotters, obstacles): |
686 | 687 | plotters.plot_measurements(all_measurements, [0, 1]) |
687 | 688 | plotters.plot_tracks(track, [0, 1]) |
688 | 689 | plotters.plot_obstacles(obstacles) |
| 690 | + |
| 691 | + |
| 692 | +@dataclass |
| 693 | +class TestMetric: |
| 694 | + value: float |
| 695 | + timestamp: int = None |
| 696 | + |
| 697 | +def test_rag_plot(): |
| 698 | + track = Track([State([0, 0], timestamp=0), |
| 699 | + State([1, 1], timestamp=1), |
| 700 | + State([2, 2], timestamp=2)], id="track_1") |
| 701 | + plotter = RAGPlotterly(metric_name="Test Metric", target_value=0, |
| 702 | + rag_boundaries=RAG(GREEN=1, AMBER=2)) |
| 703 | + metrics = {("track_1", 1): {"Test Metric": TestMetric(value=[ |
| 704 | + TestMetric(value=0.5, timestamp=0), |
| 705 | + TestMetric(value=1.5, timestamp=1), |
| 706 | + TestMetric(value=2.5, timestamp=2)])}} |
| 707 | + plotter.plot_tracks({track}, [0, 1], metrics) |
0 commit comments