Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 2.61 KB

README.md

File metadata and controls

49 lines (33 loc) · 2.61 KB

enc_parser

Parser for marine cartography: S-57 encapsulated in ISO/IEC 8211

The US NOAA publishes free and excellent marine cartography, which is often repackaged and sold by sketchy chartplotter apps (often via a subscription). Open source options exit but are few, heavy-handed, and not very portable. This project aims to make cartorgaphy easy to visualize by translating it into a sane intermediate representation. The freely available marine cartography (ENC charts) in the mess of a S-57 standard, encapsulated in [ISO/IEC 8211] is The standard for ISO/IEC 8211 is (of course) not free. A brief preview is available here.

ENC charts published by NOAA are available here. An example enc chart (of the Boston inner harbor) encodes a superset of data visualized in this printable official marine chart.

###Setting up your enviornment

This project requires ocaml and its package manager, opam, as well as a few modules. To set up both on a Debian/Ubuntu linux, the following is sufficient (note that <parser> refers to the ./parser/ directory):

cd <parser>
sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install ocaml opam
opam init
eval `opam config env`
opam install ocamlfind core menhir

You also must build a native tool (in ./c-src) to parse the ISO/IEC 8211 format into an intermediate representation. To do so, simply:

cd <parser>/c-src
make

###Related work

A handful of parsers exist.

OpenCPN is an excellent, although opinionated and bulky open source chart plotter in C++. It includes an adequate parser for ENC files. opencpn

Other ENC parsers on Github

This one does not look like it's going to happen, but this one may one day do some good.

Acknowledgements

This project uses the iso8211lib tool (copied here)