Monitoring Real-Time Maritime Sensor Data Using Grafana

Written

October 27, 2022

Written by the Engineering Team, Kongsberg Geospatial

Kongsberg research vessels are packed with sensor technology that tracks many points of data on the ocean such as measuring water composition, position data from a GPS, and sensors to collect vessel engine performance. Hundreds of sensors are deployed on these ships and report their findings in real-time. With some of these systems running for over 20 years, we were required to provide rich dashboards with modern visualizations to a pre-existing, legacy system so that our customers would have a better way of interacting with all of that ocean data.

How did we provide rich dashboards to a legacy system?

To accomplish this, our team at Kongsberg Geospatial turned to Grafana, a very powerful time-series graphing tool. While generally used for application telemetry, Grafana is easily adaptable to all forms of time-series data. Our sensor data was already being stored in a time series format so it was straightforward for Grafana to consume it.

Figure 1: Vessel interconnected sensor network

Used by many organizations to create beautiful data-driven dashboards, Grafana allows developers to select different data visualizations in panels, and then compose those panels into dashboards without writing any code. Creating a dashboard in Grafana involves making a few configuration choices and ultimately building up a JSON file that, when uploaded to Grafana via its API, adds the dashboard to the application. Decisions like whether to display the latest value of a dataset or historical data over time and which panel type to use are all included in the JSON configuration files. The queries that populate the data visualizations are also stored in those files and will run against a separately configured data source.  

In most cases, visualizations are rudimental and display data in a time-series sequence on a graph. In some cases, like the map, the data needed to be aggregated to be visualized in a meaningful way. On the map we aggregate data by location, and display colored points of different sizes along the path of the vessel. The color corresponds to the average value of the data at that point and a size corresponding the difference between the minimum and maximum values. This allows analysts to easily find trends and points of interest. To make trends even more obvious and provide even more context, maps are always accompanied by a graph with the aggregated data points overlaid on a line graph of the unaggregated data like in Figure 2.

Figure 2: EK80 Sensor Dashboard

How did we get all our sensors represented in Grafana?

Grafana out of the box can be used to create and configure dashboards from scratch with their UI, without any coding as previously mentioned. Beautiful Grafana applications can be created that way, however, with so many dashboards and sensors to represent, we needed a way of re-using queries and components so that dashboards could be built quickly and components could be updated in a way that would propagate to each dashboard that uses them. With this in mind, our team built out a library in python for this purpose. It provides a developer the ability to write python code that will generate the dashboard JSON files with minimal configuration and maximum code reuse. This capability is very valuable as it allows new dashboards to be created extremely quickly and provides a unified look and experience across each dashboard.

Figure 3: MRU Sensor Dashboard

There are also many different panel types that allow for live usage as well as analyzing data over time. In Figure 3 we see the MRU dashboard which has a good mix of the two types. At the top of the dashboard, there are gauges for pitch and roll, and a line graph showing the latest heave. Below that we see a line graph where the historical values of all 3 are being plotted together and further below that we see a gauge that shows the current heading and a custom graph type that shows heading over time.

The value that these dashboards bring to our customers is immense as it provides much richer insights into the data than they ever had before. An increased effort in modern times towards mapping the ocean means there is much more data, and while AI has become very important in data analytics, it is only through visualizations like these that human analysts are able to harness the power of all that data.

About Midas:

MIDAS™ (Modular ISR Data Analysis and Storage) automates the processing of Intelligence, Surveillance, and Reconnaissance (ISR) sensor data for UAS and other Unmanned Systems (UxS).
With MIDAS, you can review and compare real-time, near real-time, and historical sensor data, full motion video included.
Sensor data can be analyzed, viewed in a temporal context, and even analyzed with AI tools without having to wait for data to be transferred to headquarters. It allows operators to develop actionable intelligence from sensor data at the forward edge, where it is most needed.

Build Your Own UAS Sensor Data Solution with TerraLens®

Real-Time Geospatial SDK

Learn More

Learn More

Build Your Own UAS Sensor Data Solution with TerraLens®

Real-Time Geospatial SDK