AIS

From wiki.opennauticalchart.org
Revision as of 09:51, 5 October 2025 by Dirk-- (Talk | contribs) (webSDR)

Jump to: navigation, search

AIS sources

build your own receiver

webSDR

Many stations allow AIS tuning, see Map of SDR Receivers. On Windows, virtual audio cable and AISmon works well.

!AIVDM,1,1,,,8vjHWT@0Gh0TN1N>vCC0Qi0lnPAL`GFigwl?wnSwe7wvlOwwsAwwnSGmwvh0,0*57 {"class":"AIS","device":"stdin","type":8,"repeat":3,"mmsi":992356241,"scaled":true,"dac":1,"fid":31,"lat":51.4643,"lon":0.3112,"accuracy":false,"timestamp":"26T12:02Z","wspeed":14,"wgust":16,"wdir":105,"wgustdir":360,"humidity":74,"airtemp":13.9,"dewpoint":9.3,"pressure":1015,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":30.0,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,1,1,,,8vjHWR00Gh05I1NBtkC0gwvlFR06EuOwgrVWwnSwe7wvlOwwsAwwnSGmwvh0,0*09 {"class":"AIS","device":"stdin","type":8,"repeat":3,"mmsi":992356232,"scaled":true,"dac":1,"fid":31,"lat":51.4982,"lon":0.0460,"accuracy":false,"timestamp":"26T12:02Z","wspeed":127,"wgust":127,"wdir":360,"wgustdir":360,"humidity":101,"airtemp":-102.4,"dewpoint":50.1,"pressure":1310,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":3.3,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,1,1,,,8vjHWQ00GwwJlAN>g;C0gwvlFR06EuOwgquOwnSwe7wvlOwwsAwwnSGmwvh0,0*7F {"class":"AIS","device":"stdin","type":8,"repeat":3,"mmsi":992356228,"scaled":true,"dac":1,"fid":31,"lat":51.4623,"lon":-0.3173,"accuracy":false,"timestamp":"26T12:02Z","wspeed":127,"wgust":127,"wdir":360,"wgustdir":360,"humidity":101,"airtemp":-102.4,"dewpoint":50.1,"pressure":1310,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":0.0,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,1,1,,,8vjHWPh0Gh0f1aN<:SC0wwvlFR06EuOwgreGwnSwe7wvlOwwsAwwnSGmwvh0,0*13 {"class":"AIS","device":"stdin","type":8,"repeat":3,"mmsi":992356227,"scaled":true,"dac":1,"fid":31,"lat":51.4403,"lon":0.3927,"accuracy":false,"timestamp":"26T12:03Z","wspeed":127,"wgust":127,"wdir":360,"wgustdir":360,"humidity":101,"airtemp":-102.4,"dewpoint":50.1,"pressure":1310,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":3.9,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,2,1,7,A,8>jHE700Gwr7HIVSwS;JPwtqFPC3b2o;gwl>0Dt1R9@1`b0PSb0>:gB;wvv00000,0*77 !AIVDM,2,2,7,A,001,0*20 {"class":"AIS","device":"stdin","type":8,"repeat":0,"mmsi":992351516,"scaled":true,"dac":1,"fid":31,"lat":56.0127,"lon":-3.2138,"accuracy":false,"timestamp":"25T13:42Z","wspeed":7,"wgust":127,"wdir":114,"wgustdir":360,"humidity":58,"airtemp":15.2,"dewpoint":-50.1,"pressure":1028,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":30.0,"leveltrend":"N/A","cspeed":0.0,"cdir":335,"cspeed2":0.1,"cdir2":273,"cdepth2":5,"cspeed3":0.0,"cdir3":209,"cdepth3":10,"waveheight":0.2,"waveperiod":2,"wavedir":117,"swellheight":0.0,"swellperiod":28,"swelldir":171,"seastate":13,"watertemp":13.9,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,1,1,,,6>jaws@00004>da5P000000,2*48 {"class":"AIS","device":"stdin","type":6,"repeat":0,"mmsi":992641005,"scaled":true,"seqno":0,"dest_mmsi":1,"retransmit":false,"dac":235,"fid":10,"off_pos":false,"alarm":false,"stat_ext":0,"ana_int":13.90,"ana_ext1":0,"ana_ext2":0,"racon":0,"racon_text":"No RACON installed","light":0,"light_text":"No light or no monitoring"}

!AIVDM,1,1,,,8@30oo@0GuhqcQ@O6hRAhWveFPAEtP01gwl?wnSwe7wvlOwwsAwwnSGmwvh0,0*5E {"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":3160029,"scaled":true,"dac":1,"fid":31,"lat":43.9561,"lon":-78.1510,"accuracy":false,"timestamp":"04T09:07Z","wspeed":4,"wgust":127,"wdir":346,"wgustdir":360,"humidity":95,"airtemp":13.8,"dewpoint":12.8,"pressure":799,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":30.0,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

!AIVDM,1,1,,,8@30oo@0Guhp71@O9`RAgwvlFR06EuOwgr2GwnSwe7wvlOwwsAwwnSGmwvh0,0*44 {"class":"AIS","device":"stdin","type":8,"repeat":1,"mmsi":3160029,"scaled":true,"dac":1,"fid":31,"lat":43.9565,"lon":-78.1644,"accuracy":false,"timestamp":"04T09:06Z","wspeed":127,"wgust":127,"wdir":360,"wgustdir":360,"humidity":101,"airtemp":-102.4,"dewpoint":50.1,"pressure":1310,"pressuretend":"N/A","visgreater":false,"visibility":12.7,"waterlevel":0.4,"leveltrend":"N/A","cspeed":25.5,"cdir":360,"cspeed2":25.5,"cdir2":360,"cdepth2":31,"cspeed3":25.5,"cdir3":360,"cdepth3":31,"waveheight":25.5,"waveperiod":63,"wavedir":360,"swellheight":25.5,"swellperiod":63,"swelldir":360,"seastate":13,"watertemp":50.1,"preciptype":"N/A","salinity":51.0,"ice":"N/A"}

NMEA

AIShub used to offer a NMEA stream of all connected stations as a benefit for their contributors. From mid 2024 on, this service retired.

Norway

Stream is filtered. Missing message types: 4/...

Florida

Reception area is limited.

AIS-catcher sites

API

  • https://www.aishub.net
  • https://aisstream.io
    • wscat -c wss://stream.aisstream.io/v0/stream -w 300 -x '{"APIKey": "***", "BoundingBoxes": [[[-180, -90],[180, 90]]], "FilterMessageTypes":["SafetyBroadcastMessage","LongRangeAisBroadcastMessage","BinaryBroadcastMessage","GroupAssignmentCommand"]}'

Historic

  • ...

AIS decoders

Ais Decoder

gpsdecode

{"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"}
{"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

{"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"}

aisdecode

AIS-catcher