All Projects → ktuukkan → Marine Api

ktuukkan / Marine Api

Licence: lgpl-3.0
Java Marine API - NMEA 0183 library for Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Marine Api

Multi sensor fusion
Multi-Sensor Fusion (GNSS, IMU, Camera) 多源多传感器融合定位 GPS/INS组合导航 PPP/INS紧组合
Stars: ✭ 357 (+105.17%)
Mutual labels:  gps, navigation
Luatelemetry
FrSky SmartPort(S.Port), D-series, F.Port and TBS Crossfire telemetry on all Taranis and Horus transmitters
Stars: ✭ 206 (+18.39%)
Mutual labels:  gps, radar
Navit
The open source (GPL v2) turn-by-turn navigation software for many OS
Stars: ✭ 368 (+111.49%)
Mutual labels:  gps, navigation
Navego
NaveGo: an open-source MATLAB/GNU Octave toolbox for processing integrated navigation systems and performing inertial sensors analysis.
Stars: ✭ 294 (+68.97%)
Mutual labels:  gps, navigation
Trail Sense
An Android app that uses your phone's sensors to assist with wilderness treks or survival situations.
Stars: ✭ 144 (-17.24%)
Mutual labels:  gps, navigation
Jquery Navobile
A jQuery plugin that makes mobile navigation easy.
Stars: ✭ 157 (-9.77%)
Mutual labels:  navigation
Ulogger Android
μlogger • android application for real-time collection and publishing of geolocation data
Stars: ✭ 168 (-3.45%)
Mutual labels:  gps
React Site Nav
A kick ass site menu powered by styled components inspired by Stripe.
Stars: ✭ 155 (-10.92%)
Mutual labels:  navigation
Redux Saga Router
A router for Redux Saga
Stars: ✭ 153 (-12.07%)
Mutual labels:  navigation
Advio
An Authentic Dataset for Visual-Inertial Odometry
Stars: ✭ 170 (-2.3%)
Mutual labels:  navigation
React Native Navigation
A complete native navigation solution for React Native
Stars: ✭ 12,387 (+7018.97%)
Mutual labels:  navigation
Fusion Ukf
An unscented Kalman Filter implementation for fusing lidar and radar sensor measurements.
Stars: ✭ 162 (-6.9%)
Mutual labels:  radar
Hitrava
Convert your Huawei Health sport activities and import them in Strava.
Stars: ✭ 156 (-10.34%)
Mutual labels:  gps
Persistentbottomnavbar
A highly customizable persistent bottom navigation bar for Flutter
Stars: ✭ 165 (-5.17%)
Mutual labels:  navigation
Locationsimulator
MacOS 10.15 / 11.0 application to spoof your iOS / iPadOS or iPhoneSimulator device location. WatchOS and TvOS are partially supported.
Stars: ✭ 157 (-9.77%)
Mutual labels:  navigation
React Router Native Stack
A stack navigation component for react-router-native
Stars: ✭ 171 (-1.72%)
Mutual labels:  navigation
React Native Nav Transition
React Native Nav Transition
Stars: ✭ 154 (-11.49%)
Mutual labels:  navigation
Motion
Navigation and insight in Go
Stars: ✭ 163 (-6.32%)
Mutual labels:  navigation
Rtrootnavigationcontroller
Implicitly make every view controller has its own navigation bar
Stars: ✭ 2,066 (+1087.36%)
Mutual labels:  navigation
Mstar deeplearning project
Radar target classification, detection and recognition using deeplearning methods on MSTAR dataset
Stars: ✭ 163 (-6.32%)
Mutual labels:  radar

Java Marine API

License Build Status Maven Central Download Java Marine API Javadocs Sponsored by Spice

About

Java Marine API is an NMEA 0183 parser library for decoding and encoding the data provided by various electronic marine devices such as GPS, echo sounder and weather instruments.

Features

  • Generic and extentable API
  • Detects NMEA 0183 sentences from most input streams
    • E.g. from file, serial port, TCP/IP or UDP socket
    • The provided data readers can be overridden with custom implementation
  • Converts the ASCII data stream to event/listener model with interfaces and parsers for selected sentences
  • Additional parsers may be added by extending the provided base classes
    • This can be done at runtime and does not require compiling the library
  • Sentence encoding with common validation and unified formatting
  • Several sentences can be aggregated to single event by using providers
    • For example, to record current position and depth of water
  • Decoding of selected AIS messages
  • The NMEA 0183 layer of Raymarine SeaTalk1
  • Utilities and enumerations for handling the extracted data

Licensing

Java Marine API is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Java Marine API is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Java Marine API. If not, see http://www.gnu.org/licenses/.

Disclaimer

Java Marine API is not official NMEA 0183 software. Further, it is not related to National Marine Electronics Association.

The interpretation of NMEA 0183 and related protocols is based entirely on varying set of publicly available documents in the Internet. Thus, it is not guaranteed that the library follows and implements these standards correctly.

Electronic devices and software do not replace safe navigation practices and should never be your only reference.

Requirements

Usage

Write a listener:

class GGAListener extends AbstractSentenceListener<GGASentence> {
    public void sentenceRead(GGASentence gga) {
        Position pos = gga.getPosition();
        // .. your code
    }
}

Set up the reader:

File file = new File("/var/log/nmea.log");
SentenceReader reader = new SentenceReader(new FileInputStream(file));
reader.addSentenceListener(new GGAListener());
reader.start();

Manual parsing:

String nmea = "$GPGSA,A,3,03,05,07,08,10,15,18,19,21,28,,,1.4,0.9,1.1*3A";
SentenceFactory sf = SentenceFactory.getInstance();
GSASentence gsa = (GSASentence) sf.createParser(nmea);

See also:

Supported Protocols

NMEA 0183

The following sentences are decoded and encoded. The provided parsers may be overridden and additional parsers may be added at runtime, without compiling the library. See wiki for instructions.

ID Description
ALK The NMEA 0183 layer of Raymarine SeaTalk1 ($STALK)
APB Autopilot cross-track error, destination bearings and heading
BOD Bearing from origin to destination
CUR Water currents information
DBT Water depth below transducer in meters, feet and fathoms
DPT Water depth in meters with offset to transducer
DTA Boreal GasFinder2 and GasFinderMC
DTB Boreal GasFinder2 and GasFinderMC
DTM Datum reference
GBS Glonass satellite fault detection (RAIM support)
GGA GPS fix data
GLL Current geographic position and time
GNS Glonass fix data
GSA Precision of GPS fix
GST GPS pseudorange noise statistics
GSV Detailed GPS satellite data
HDG Heading with magnetic deviation and variation
HDM Magnetic heading in degrees
HDT True heading in degrees
HTC Heading/Track control systems input data and commands.
HTD Heading/Track control systems output data and commands.
MDA Meteorological composite
MHU Relative and absolute humidity with dew point
MMB Barometric pressure
MTA Air temperature in degrees Celcius
MTW Water temperature in degrees Celcius
MWD Wind speed and direction.
MWV Wind speed and angle
OSD Own ship data
RMB Recommended minimum navigation information "type B"
RMC Recommended minimum navigation information "type C"
ROT Vessel's rate of turn
RPM Engine or shaft revolutions
RSA Rudder angle in degrees
RSD Radar system data
RTE GPS route data with list of waypoints
TLB Target label
TTM Tracked target message
TXT Text message
VBW Dual ground/water speed.
VDM The NMEA 0183 layer of AIS: other vessels' data
VDO The NMEA 0183 layer of AIS: vessel's own data
VDR Set and drift
VHW Water speed and heading
VLW Distance traveled through water
VTG Course and speed over ground
VWR Relative wind speed and angle
VWT True wind speed and angle
WPL Destination waypoint location and ID
XDR Transducer measurements
XTE Measured cross-track error
ZDA UTC time and date with local time offset

AIS

The following AIS messages are decoded.

ID Description
01 Position Report Class A
02 Position Report Class A (Assigned schedule)
03 Position Report Class A (Response to interrogation)
04 Base Station Report
05 Static and Voyage Related Data
09 Standard SAR Aircraft Position Report
18 Standard Class B CS Position Report
19 Extended Class B Equipment Position Report
21 Aid-to-Navigation Report
24 Static Data Report
27 Position Report for long range applications

Raymarine SeaTalk1

Not to be confused with SeaTalkng derived from NMEA 2000.

Only the NMEA layer is currently supported, see STALKSentence and Issue #67.

NMEA Vendor Extensions

u-blox

The following u-blox vendor extension messages are supported:

ID Description
PUBX,01 Lat/Long Position Data
PUBX,03 Satellite Status

For more information, please see the ZED-F9P Interface Description Manual

Distribution

Releases and snapshots are published every now and then, but there is no clear plan or schedule for this as most of the development happens per user requests or contribution.

Pre-built JARs

Release JARs may be downloaded from releases and Sourceforge.net. The ZIP package should contain all to get you going.

The project was first published in Sourceforge, hence the net.sf.marineapi package naming.

Maven

Both releases and snapshots are deployed to Maven Central Repository and may be imported by adding the following dependency in your pom.xml.

<dependency>
  <groupId>net.sf.marineapi</groupId>
  <artifactId>marineapi</artifactId>
  <version>0.10.0</version>
  <type>bundle</type>
</dependency>

Snapshots

The snapshots should be mostly stable, but they are still Work In Progress and should be considered as a preview of the next release.

See changelog for the current SNAPSHOT version. Notice that you may need to tweak your Maven settings to enable snapshot dependencies.

<dependency>
  <groupId>net.sf.marineapi</groupId>
  <artifactId>marineapi</artifactId>
  <version>0.11.0-SNAPSHOT</version>
  <type>bundle</type>
</dependency>

Snapshots may also be downloaded manually from the repository.

Contributing

Any feedback or contribution is welcome. You have several options:

References

All information and specifications for this library has been gathered from the following documents, availability last checked on 2020-03-15.

Notice: any warnings regarding the accuracy of the information in below documents apply equally to Java Marine API.

Wikipedia

National Marine Electronics Association

Navigation Center of U.S. Department of Homeland Security

Product Manuals and User Guides

Miscellaneus

No longer available

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].