NOAA ENC import

I am writing to propose importing United States marine navigational aids from [NOAA][]'s S-57 electronic navigation charts (ENCs) into OpenStreetMap. These charts are in the public domain and serve as the canonical source for navigational mark locations in United States waters.

While OSM currently includes some United States seamarks, a prototype import of lateral buoys suggests that the majority of these buoys are currently missing from the OSM dataset. Furthermore, many of the seamarks which are present are out-of-date in either their position or metadata.

I propose that NOAA seamarks be consistently added into OSM and be kept up-to-date via automated import.

Project Overview

I am working to develop infrastructure to import and update seamarks from NOAA ENCs into OSM. The import includes lateral (BOYLAT/BCNLAT), cardinal (BOYCAR/BCNCAR), safe-water (BOYSAW/BCNSAW), and special-purpose (BOYSPP/BCNSPP) buoys and beacons, capturing a variety of attributes of each including colour, light, and fog signal information. This is similar to a seemingly stalled import attempt from 2013.

Currently the import would entail:

  • 9318 modifications to existing OSM seamarks
  • 13038 new seamarks which are not currently represented in OSM

Additionally, there are 1403 seamarks in OSM which do not have an obvious corresponding NOAA seamark. This is addressed below in the “Open Questions” section.

To make the import more manageable and potentially facilitate manual review, I have broken the import into regions of each roughly 500 seamarks by state boundaries and further subdivision.

Covered tags

Imported NOAA seamarks will bear the following OSM tags using the following S-101 attributes:

OSM tag S-101 schema analogue
seamark:name OBJNAM
seamark:fog_signal_category CATFOG
seamark:beacon_lateral:system MARSYS
seamark:beacon_lateral:shape BOYSHP
seamark:beacon_lateral:colour COLOUR
seamark:beacon_lateral:category BOYCAT
seamark:light:colour COLOUR
seamark:light:visibility LITVIS
seamark:light:exhibition EXCLIT
seamark:light:character LITCHR
seamark:light:period SIGPER
seamark:light:multiple MLTYLT
seamark:light:range VALNMR

Provenance tracking

To track the provenance of imported seamarks, I currently use a new key, source:noaa_lnam, to record the S100 LNAM field used to identify the feature in the source NOAA ENCs.

In addition to LNAM, it may also be useful to preserve the SORDAT (source date) field from the ENCs. This would make it easy to identify changes to seamarks in future updates.

Matching algorithm

To find OSM seamarks associated with NOAA seamarks a simple distance-thresholding method is currently used, taking the closest match within 200 meters. Here we call a pair of a NOAA seamark and its closest match in the OSM dataset a pair of “correlated seamarks”.

As with all automated matching algorithms, this may fail in false-positives and false-negatives:

  • A false-positive correlation is one where two unrelated buoys are incorrectly deemed the same by the algorithm. This would have the effect of the import redefining an existing existing OSM seamark to be NOAA seamark.

  • A false-negative correlation is one where two related buoys are deemed distinct. This would mean that instead of updating the existing OSM entry, the import would introduce a new, redundant seamark.

False-positive characterisation

To quantify the false-positive rate, I conducted a study comparing the NOAA OBJNAM and OSM seamark:name of correlated seamarks as an oracle for buoy equivalence. Of the 1455 seamarks that satisfy the distance-threshold criteria, 114 match exactly in their names.

Of those that do not match exactly in name, the majority match via their buoy number. For instance, here are a few typical pairings:

seamark:name OBJNAM
7 Shilshole Bay Buoy 7
Spa Creek Channel Junction Buoy SC Spa Creek Channel Junction Buoy SC
2DW Dundalk Terminal West Channel Buoy 2DW
Upper Chesapeake Channel Lighted Buoy 40 Upper Chesapeake Channel Lighted Ice Buoy 40
R N “38” Merrimack River Buoy 38
SD 4 Sea Dog Creek Buoy SD4
R18 Lewis Bay Approach Channel Lighted Buoy 18
R “4” Gong Hampton Harbor Channel Gong Buoy 4

To match via buoy number, I compared the last tokens (as split by whitespace after dropping double-quotes) of the two names. Counting matches in buoy number, 1304 of the 1455 correlated seamarks match in name.

Examining the remaining non-matching pairs by hand revealed that only 66 of the 1455 correlated seamarks disagree substantially in their names. This suggests that the false-positive rate is quite low for this method (4.5%).

Open Questions

  • What to do with seamarks in the covered region that are not present in NOAA ENCs? Some of these may be non-NOAA seamarks while in other cases these correspond to seamarks that were previously present but have since been decommissioned. This puts us in the awkward situation of either losing useful information or keeping redundant, inaccurate marks.

  • What, if anything, should be done to mitigate false matches?

  • Currently seamark:name of OSM seamarks is often a descriptive string (e.g. G C 13, short for “green can 13”) rather than the proper NOAA seamark name (that is, the S57 OBJNAM field).

    To take a specific example, currently the seamark with NOAA name Piscataqua River Lighted Buoy 2 is given the seamark:name value R "2" in the OSM dataset. The R in the latter name is redundant to the seamark:colour attribute (which indicates that the seamark is red). To avoid this sort of redundancy, I suggest that seamark:name should be changed to reflect the object’s NOAA name. Is there a precedent for how seamark:name should be defined?

Future work

Here I only propose to include coastal seamarks; seamarks for United States inland waterways are maintained by the Army Corp of Engineers, which provides a [similar ENC product][IENC] which could be similarly imported in the future.

Beyond seamarks, there is a wealth of additional navigational information in NOAA ENCs (e.g. cable areas, anchorage areas). Perhaps this would be a useful addition to OSM in the future.

16 posts - 4 participants

Read full topic

Ce sujet de discussion accompagne la publication sur