AIS
Contents
AIS decoders
Ais Decoder
gpsdecode
- https://gpsd.gitlab.io/gpsd/gpsdecode.html
-
nc 153.44.253.27 5631 | gpsdecode | grep '"type":8'
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":257057800,"scaled":true,
"dac":200,"fid":10,"vin":"00000000","length":215,"beam":60,"shiptype":8440,"shiptype_text":"Illegal ship type value.",
"hazard":5,"hazard_text":"Unknown","draught":0,"loaded":0,"loaded_text":"N/A (default)",
"speed_q":false,"course_q":false,"heading_q":false}
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":215349000,"scaled":true,"dac":1,"fid":27,"linkage":90,"sender":0,"rtype":5,"rtype_text":"Ship route plan","start":"00-00T24:60Z","duration":262143,"waypoints":[{"lon":7.107972,"lat":62.844255},{"lon":7.112132,"lat":62.848032}]}
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":215349000,"scaled":true,"dac":1,"fid":29,"linkage":90,"text":"LESSREMMAN - ELNES (VIA RORVIK; OUTSIDE) CAPT YURI"}
-
nc ssia-ais.erau.edu 4000 | gpsdecode | grep -e '"type":8' -e '"type":27'
{"class":"AIS","device":"stdin","type":27,"repeat":0,"mmsi":368429323,"scaled":true,"status":"Not defined","accuracy":true,"lon":-81.0,"lat":29.2,"speed":0,"course":511,"raim":true,"gnss":false}
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":369493715,"scaled":true,"dac":366,"fid":56,"data":"256:a83746ce99bb9edbd3eebb88bb7dcecba01df41d94f9397136c0c97eb4af8d69"}
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":369493715,"scaled":true,"dac":366,"fid":57,"data":"512:bf68e50cc47b8ae14771ed1a0c075bfb60f82bb9ffec80211e4aad32b4edac38b33a6b4280f403d0dff4069a452f9cd51dfc44285226e53d7f337377f15829d6"}
missing/problems
- Text Telegram does not decode!
{"class":"AIS","device":"stdin","type":6,"repeat":0,"mmsi":538007497,"scaled":true,"seqno":1,"dest_mmsi":212848000,"retransmit":false,"dac":1,"fid":0,"data":"96:8040494e05054d48120d612e"}
- also valid, 'Illegal ship type' decoded! see https://unece.org/fileadmin/DAM/trans/doc/2013/sc3wp3/ECE-TRANS-SC3-WP3-2013-05e.pdf
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":257303700,"scaled":true,"dac":200,"fid":10,"vin":"00000000","length":114,"beam":36,"shiptype":8450,"shiptype_text":"Illegal ship type value.","hazard":5,"hazard_text":"Unknown","draught":150,"loaded":0,"loaded_text":"N/A (default)","speed_q":false,"course_q":false,"heading_q":false}
- does not decode!
{"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":257605000,"scaled":true,"dac":265,"fid":1,"data":"512:02017cf22f19aa2bc00f83af410ade2bc2dffbf6bff7822bc50fd3bbbffee02bc00f9874c049812bc140019c3ffd542bc0a017a6fee9842bc0787ea28bd27600"}
Maritec online AIS decoder
pyais
- https://github.com/M0r13n/pyais
-
pipx install pyais -
pipx ensurepath -
nc 153.44.253.27 5631 | ais-decode --json | grep '"msg_type": 8'
missing/problems
- poor Msg:8 decoding. Only DAC:200 FI:10
{"msg_type": 8, "repeat": 0, "mmsi": 257057800, "dac": 200, "fid": 10, "vin": "00000000", "length": 21.5, "beam": 6.0, "shiptype": 8440, "hazard": 5, draught": 0.0, "loaded": 0, "speed_q": false, "course_q": false, "heading_q": false}
{"msg_type": 8, "repeat": 0, "mmsi": 215349000, "dac": 1, "fid": 27, "data": "FwFAGPP//3ggjnij9kTwQREIR+t9QIGPWI/RpYEAV0kfnN4B/oNCP0lbA/56ZH7oMAfMqQkAPXgPnOUSBujgIEAnJCF1QEOc0Uhdt0CLKQCQxYXBGjYZIXqkAkLbgkK4VwS3FHSHEE4JngLpEMz8"}
{"msg_type": 8, "repeat": 0, "mmsi": 215349000, "dac": 1, "fid": 29, "data": "FwUw4VOC2BYVIQEyChYkGAdIlCnI"}
others
- https://github.com/tbsalling/aismessages
- https://github.com/bcl/aisparser
- https://github.com/schwehr/libais
- https://github.com/dma-ais/AisLib
aisdecode
- https://github.com/madpsy/aisdecode/
-
./aisdecode-linux-amd64 -log-all-decodes decoded
AIS-catcher
- input: https://docs.aiscatcher.org/configuration/input/tcp/
- output: https://docs.aiscatcher.org/configuration/output/console/
- web view: https://docs.aiscatcher.org/configuration/output/web-viewer/
-
AIS-catcher -t txt://153.44.253.27:5631 -o 5 -N 8101 GEOJSON false MESSAGE true REALTIME false