java pdm 解析_java解析静态AIS原始数据

首先项目中引入如下jar包:

dk.tbsalling

aismessages

2.2.1

然后跑一个小Demo:

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import dk.tbsalling.aismessages.AISInputStreamReader;

public class ais {

public static void main(String[] args) throws IOException {

InputStream inputStream = new ByteArrayInputStream(demoNmeaStrings.getBytes());

System.out.println("AISMessages Demo App");

System.out.println("--------------------");

AISInputStreamReader streamReader = new AISInputStreamReader(inputStream, aisMessage ->

System.out.println("Received AIS message from MMSI " + aisMessage.getSourceMmsi().getMMSI() + ": " + aisMessage)

);

streamReader.run();

}

private final static String dem

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过使用AISParser库来解析静态AIS(Automatic Identification System)原始数据AIS是一种船舶自动识别系统,它通过无线电信号传输船舶位置、速度、航向等信息,用于船舶交通管理和海上安全。 在Java解析静态AIS原始数据,首先需要导入AISParser库。然后,我们需要读取AIS原始数据文件或从网络中接收AIS数据流。接下来,使用AISParser提供的方法将原始数据转换为可读的AIS消息。 AISParser库提供了一些常用的方法来解析AIS原始数据。例如,可以使用parse方法将原始数据解析AIS消息对象。该方法接收原始数据作为参数,并返回一个包含解析AIS消息的对象。 解析后的AIS消息对象可以获取各种信息,例如船舶的MMSI(Maritime Mobile Service Identity)、呼号、船名、船长、船宽等。可以使用AIS消息对象的getter方法获取这些信息。 解析静态AIS原始数据的过程如下: 1. 导入AISParser库。 2. 读取AIS原始数据文件或接收AIS数据流。 3. 使用AISParser的parse方法解析原始数据AIS消息对象。 4. 获取AIS消息对象的各种信息。 例如,我们可以通过以下代码片段来解析静态AIS原始数据: ``` import com.aisparser.AisInputStream; import com.aisparser.AisMessage; import com.aisparser.AisMessageException; import com.aisparser.MessageException; import com.aisparser.Vdm; import com.aisparser.Itdma; ... AisInputStream inputStream = new AisInputStream(); ... try { while (true) { // 从数据流中读取AIS原始数据 String rawMessage = inputStream.readMessage(); // 解析原始数据AIS消息对象 Vdm vdm = new Vdm(); if (vdm.parse(rawMessage) != 0) { throw new MessageException("Error parsing raw message"); } AisMessage aisMessage = AisMessage.getInstance(vdm); // 获取AIS消息对象的信息 int mmsi = aisMessage.getUserId(); String callSign = aisMessage.getCallSign(); String shipName = aisMessage.getShipName(); double shipLength = aisMessage.getLength(); double shipWidth = aisMessage.getWidth(); // 输出船舶信息 System.out.println("MMSI: " + mmsi); System.out.println("Call Sign: " + callSign); System.out.println("Ship Name: " + shipName); System.out.println("Ship Length: " + shipLength); System.out.println("Ship Width: " + shipWidth); // 进一步处理AIS消息对象... } } catch (AisMessageException e) { e.printStackTrace(); } finally { inputStream.close(); } ``` 通过上述代码,我们可以解析静态AIS原始数据并获取船舶的各种信息。这样可以对AIS数据进行分析、存储或进一步处理,从而实现对船舶交通和海上安全的管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值