NOAA ENC Direct to GIS Import

From OpenStreetMap Wiki
Jump to navigation Jump to search

About

The purpose of this import to populate the OpenSeaMap map with sea marks imported from NOAA ENC charts

The rendered map

Import Plan Outline

Goals

The goals of the import is to populate sea marks for the Open Sea Map project. Current OSM data base is virtually missing any sea marks objects for United States.

Schedule

Start: January 2013 Live: Pending approval ...

Import Data

Background

Data source site: http://www.charts.noaa.gov/ENCs/ENCs.shtml
Data license: http://www.nauticalcharts.noaa.gov/mcd/enc/download_agreement.htm
ODbL Compliance verified: no

OSM Data Files

I'm not planning to have the static OSM data files to be imported. The OSM changeset is created by the Java application converting from shape file to OSM change format on the fly.

In order to review the data proposed to be imported, here is the OSM file produced during an intermediate processing step.

Import Type

Data Preparation

Data Reduction & Simplification

No plans, any suggestions are appreciated.

Tagging Plans

The mapping of source attributes to the OSM tags is governed by the Shp-to-osm.jar rules file noaa_gis-to-open_sea_map-rules.txt

Changeset Tags

No plans, any suggestions are appreciated.

Data Transformation

  • Download NOAA ENC chart.
  • Convert S-57 ENC file to OSM XML file.
  • For each node
    • Add tag noaa:lnam derived from the S-57 LNAM field. This tag is the unique global identifier of this feature.
    • Add tag noaa:geohash - the hash of the lat and lon produced by the conversion utility
    • Add tag noaa:taghash - the hash of the tags produced by the conversion utility
  • Download all nodes for given area with existing noaa:lnam tag
  • Identify the nodes with the same noaa:lnam
  • For each matched node
    • Using noaa:geohash check if human being moved the node, then if NOAA hasn't changed the location accept user change
    • Using noaa:taghash check if human being changed the original attributes, then if NOAA hasn't changed them accept user change
    • In summary, user is allowed to move nodes and change tags until NOAA changes them to the new values.
    • User is always allowed to add new tags and as long as they are not known to NOAA they will not be changed.
  • Produce change file using rules above
  • Upload the changeset to OSM data base using API 0.6
  • Repeat the step for NOAA ENC chart

Data Transformation Results

I'm not planning to have the static OSM data files to be imported. The OSM changeset is created by the Java application converting from shape file to OSM change format on the fly.

The sample OSM file is here

Data Merge Workflow

Team Approach

All software and data is open so any collaboration is welcomed. Currently it's singlehanded effort.

References

Workflow

NOOA updates their data set weekly, so I'm planning to have this script maybe at least twice a week.

This is fully automatic import, I'm contemplating having to run it on AWS micro instance, so the maintenance of it can be easily delegated to the community.

The import is done using API 0.6 from the Java app. The Java app is the branch of Shp-to-osm.jar located at github.

Conflation

The sea marks are virtually non existent for US, so I would shelve it for now ...

QA

I plan to work on SF bay area where all nav aids can be verified by me personally during sail boat races or day sailing.

Could you please send me an OSM extract for the Potomac River in the vicinity of Dahlgren, VA for on-site checking? sadam 19:58, 14 January 2013 (UTC)

Noticed some strange things in your noaa_gis_0.xml: seamark:${object}:height=0 (railway bridge next to Benicia-Martinez-Bridge) Dirk 2013-01-23