OpenSeaMap-dev:En:Depth Data

Aus OpenSeaMap-dev
Version vom 22. Oktober 2012, 20:44 Uhr von Cleanerx (Diskussion | Beiträge) (Solution Proposal)
Wechseln zu:Navigation, Suche

This Page describes the necessary efforts to retrieve and analyze depth data as well as create renderings from it

Data Aquisition

Depth data can be retrieved from public domain sources or from crowd sourced data.


DIe Daten sind gerendert und stehen als Layer zur Verfügung:

Zoom Inhalt
0..10 Blaustufen und Schattierung
11..18 beschriftete Tiefenlinien, Blaustufen und Schattierung

Noch zu lösende Probleme:

  • der GEBCO-Layer erzeugt einen milchigen Schleier über der Basiskarte
  • Tiefenlinien sind ab z=14 etwas grob (also ab da, wo dann die Flachwassertiefen beginnen) [1]
  • Überschneidungen von 100m-Linie und Küstenlinie [2]
  • Steilküsten (Cuba) [3]

Crowd Sourced Data

Crowd sourced data may be gathered by YOU. There are two options in development. A hardware and a software option.

Hardware logger

We are currently developing a hardware logger that may easily be plugged to the ship's network in order to log the networks data to a SD card. That data may then be uploaded by plugging the SD card to a normal computer with internet connection for upload. The main goal is to support NMEA 0183 data with options for NMEA 2000.

Software logger

A Software logger is in development and can be retrieved here.

It currently supports:

serial ports

retrieving NMEA 0183 data (Bridge needable)

IP Support and NMEA 2000 development is underway.

Upload Process

You'll find further information here.

Data Preprocessing

Data Condition

Raw data is usually erronous and must be corrected

Internal data problems

Depth data may be affected by electrical conditions and software implementations

  • Data is incomplete and fail their checksum (bus errors from physical transmissions errors)
  • Data is erronous sensor data
    • Approximate correctable data i.e. invalid GPS position that may be interpolated
    • Uncorrectable data i.e. failed log sensor that shows slow speeds
  • Data resolution is low i.e. for energy saving purposes GPS position is updated every 10 seconds instead of every second
  • Sensor data is actively miscalibrated i.e. charter companies add additional draft to the sensor depth for safety reasons

External data problems

Depth data may be affected by different environmental circumstances

  • The water temperature affects the ultrasound echo. An inhomogen water temperature yields unwanted echos
  • The seabed affects the ultrasound echo
  • The seastate affects the measurement. There even may be waves when there is no wind.
  • Waves may affect the roll of the measuring vessel resulting in steep measurements that are invalid.
  • The sounder sensor is not the position of the GPS antenna. A position offset including heading must be incorporated.
  • The time of the measurement need not correlate with the time the position was received. This may even happen due to processing time of the hard or software.

Solution Proposal


The ship is influenced by the outlined environment which can be observed. Naturally what is observed is not the state of the ship as i.e. the position if taken from GPS is 95% less than 10m accurate. To improve quality an estimation of the true state yields better results if this noise taken into account properly.


The ship moves according to physical laws. For the easist case imagine a ship with constant velocity and direction. For any point in time you can tell where the ship is with easy math. Considering the full blown setup a ships movement is affected by many parameters such as wind speed, water current, waves, tide, and many more. The ship moves also triaxial in a dynamic way in itself (roll, pitch, yaw). Heeling even changes the measurement position with respect to the depth position. In terms of a filter this is called a system model that describes how the state of the ship may change. Given such a state you can measure what your sensor readings are and compare that to where the system thinks you are.

The Kalman Filter is known to be the best linear estimator for such situations. Unfortunately the system model is not linear which is why the Extended Kalman Filter needs to be used in order to linearize the system at hand.


  • Construct ship system model with at least the position state and probably its course and speed or even more (depth)
  • Estimate the system variance (This is a hard one, proposals welcome)
  • Construct the measurement model according to the data available (GPS, Log)
  • Estimate the measurement noise according to specifc sensors (DPGS is more accurate than GPS)

The estimation with the position and depth can be retrieved and stored in a database.


  • If the system noise is badly chosen the estimation of the system state does not converge to the true state / measurement.
  • If the system is very detailed the system variance can be reduced. The required cpu time for processing increases


  • Having the best estimation of the true position even if measurements are noisy
  • Easy and effective algorithmic processing


A prototype implementation is shown in the following screenshots. An Extended Kalman Filter is being used. It has the position and the current bearing and velocity as system state. The input is the measurement of these four observables. The system function is good old pythagoras. In a first implementation I tried to use orthodrome distances but the system function is not differentiable which is a requirement of the Extended Kalman Filter (due to acrtan2). For small distances pythagoras should be sufficiently accurate. The initial state is taken from the first measurement for convergence reasons.

The following gallery shows the results.

  • You can see the bad position resolution and an outlier in the first screenshot.
  • The second shows the same data overlaid with the applied filter. The outlier is gone and the resolution has improved.
  • The third screenshot shows data from a different GPS sensor with more precision (not DGPS) versus the filtered data.

This of course is just a preliminary test and many setups need to be considered to make it work for most datasets.

The overall process even gives an estimation of the current error which is a capability of the Kalman Filter. This way positional inaccuracies may be added to the overall depth measurement inaccuracy.

Quality rating

Each record (time, positon, depth) should become a quality rating.


Derived from the Fibonacci series.

Point Description
1 extra small improvement
2 small improvement
3 medium improvement
5 large improvement
8 extra large improvement


Name Factor Description
depth offset 8 (extra large) The difference between the depth measured by the echo sounder and the depth (waterline) measured by hand.
device distance 3 (medium) The distance between gps antenna and echo sounder (lengthwise and crosswise).
SBAS 3 (medium) Satellite based augmentation system (WAAS, EGNOS, MSAS) which allows to correct the gps position.
position interpolation 2 (small improvement) Arrival of depth and position packets can have a time difference. It is/should be possible to interpolate the position.

Depth Rendering

Siehe auch