Is there somebody out there having experiences with decoding and implementing AIS data stream.
I currently have access to a data stream of raw NMEA data: e.g.:
Does Geoeventextension supports decoding of these raw data or is somebody aware of a tool that supports such a stream?
Thanks and best regards
Hello Felix -
The AIS data stream you illustrate looks like raw 7-bit encoded NMEA-0183HS AIS data.
The GeoEvent Extension does not provide an adapter which is capable of decoding this format.
NMEA-0183HS messages are a variation of the NMEA 0183 data standard. They are 7-bit encoded ASCII messages which are not human readable. While they are part of the broader NMEA specification, they are not what common consumer devices like Garmin or smart phone applications broadcast.
The NMEA messages the GeoEvent Extension is able to ingest are 8-bit NMEA-0183 messages which typically look more like the following:
The full NMEA specification details a variety of different message sentence structures. There was a pull-request, for example, on the Esri / nmea-for-geoevent GitHub project to modify the sample connector we have on the gallery to support RMC sentences of different lengths.
Having open-sourced our NMEA implementation, developers are able to tailor the connector to match their device's sentence structure - if what they are receiving does not happen to match the GGA / GSA / GSV / RMC sentence structures illustrated above.
Since the NMEA-0183HS AIS data you are receiving cannot be adapted by the NMEA connector on the Gallery, have you considered the exactEarth Latest Vessel Information connector available from the Partner Gallery?
Best Regards -
We've built a Geoevent extension custom adaptor that takes in raw AIS Messages and decodes them using Thomas Borg Salling's AIS Message Java API library. More information about the Java API can be found at AIS Message Decoder.
A colleague mentioned that while the Java AIS library https://github.com/tbsalling/aismessages is open source, it does require a commercial license. Since TB Salling is what James referenced in his post, I don't think James will be able to share the custom adapter he built - it's probably licensed for use by their client / customer.
There are a few other Java AIS libraries out there:
Some other tools / hints you might find helpful:
It was also mentioned that serial to TCP/IP hardware adapters were a big help to the development team. They allowed access the AIS transponders remotely.
A big thank you to the Esri Australia team for the information above.
You can reach out to them via their distributor page: https://esriaustralia.com.au/contact-us
I tested the custom connector ais-for-geoevent which is available on GitHub here:
The author implemented this for GeoEvent 10.2.2. It will need to be slightly modified (e.g. pom file and geometry code) to make it work with GeoEvent 10.3.x or later. In general the connector works well with the raw AIS NMEA. The connector only provides coordinates and a subset of fields though.
Esri GeoEvent Team has developed an AIS connector for GeoEvent. Please give it a try. Any issues, comments, enhancement requests sould be added as comments on the connector's gallery page.