Znalazłem plik zawierający około 85 000 wiadomości (3-minutowy kanał AISHub na żywo), ale nie mogę tego zrobić.
http://www.aishub.net/nmea-sample.html
!AIVDM,1,1,,A,13aEOK?P00PD2wVMdLDRhgvL289?,0*26
!AIVDM,1,1,,B,16S`2cPP00a3UF6EKT@2:?vOr0S2,0*00
!AIVDM,2,1,9,B,53nFBv01SJ<thHp6220H4heHTf2222222222221?50:454o<`9QSlUDp,0*09
!AIVDM,2,2,9,B,888888888888880,2*2E
Czy jest gdzieś schemat?
Odpowiedzi:
Istnieje dobre repozytorium github Kurta Schwehra, który pracuje w Centre for Coastal and Ocean Mapping ( na przykład w celu śledzenia działalności wielorybów ). Znajdziesz tam dekoder i dokumenty do zrozumienia wiadomości nmea (głównie linki wymienione w postach @ianmayo i @GID Dev). Oto małe howto biegnące pod
LINUX
ipython 2.7
.Aby uzyskać pewne uruchomiony kod, musisz
git
sięC++
kompilatora, tympython setup environment
,cmake
. Pobierz dane zi postępuj zgodnie z instrukcjami instalacji na stronie github lub uruchom
W końcu powinieneś mieć biblioteki w swoim
python
środowisku.Oto szybki i nieprzyzwoity kod w skrypcie wywoływanym w
test-ais.py
celu uzyskania uniksowego polubieniahead
i zachowaniatail
. Używamjson
jako „ładnej drukarki z czystym tekstem”.Zakładając, że
nmea-samples
plik znajduje się wdata
katalogu, możesz odfiltrować wiersz, który chcesz wyświetlićcat
,head
itail
...Począwszy od kodu json, powinno być łatwo kontynuować formatowanie i przechowywanie rzeczy.
źródło
AIVDM / protokół AIVDO dekodowania strona zawiera odpowiedź, ale nie ma wiele do przesiać przez nie. Aby odpowiedzieć na postawione pytanie, pochodzi ono ze wspomnianej strony w tym formacie:
Co więcej, ważną częścią tutaj jest pole 6, więc jeśli przejrzysz trochę więcej strony, otrzymasz odpowiedź: ten ładunek danych pola 6 zawiera tonę (nie, naprawdę tonę!) Różnych pól w niej zawartych. Możesz więc napisać własny kod, aby go przeanalizować lub alternatywnie użyć repozytorium github zamieszczonego w innej odpowiedzi, która zawiera różne zestawy SDK / API, które prawdopodobnie powinny mieć to, czego potrzebujesz (w zależności od tego, skąd masz dane AIS): https: / /github.com/bcl/aisparser
źródło
Oto schemat tego formatu, wydaje się dość dokładny:
Dekodowanie protokołu AIVDM / AIVDO
źródło