Gönderen Konu: AIS Verilerini Okumak  (Okunma sayısı 3266 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı gibraltar

  • Retro Meraklısı
  • ***
  • İleti: 159
AIS Verilerini Okumak
« : 01 Temmuz 2014, 03:27:58 »
Bu yazıda; on sene önce çalıştığım şirkette bir prototipini gerçekleştirdiğimiz, ancak "paradigma kayması" nedeniyle devam ettirmediğimiz "amatör işi" bir AIS alıcısı ve data yorumlayıcısının kabaca bir tarifini vereceğim. Yazıya özetin özeti desem yeridir. Tüm ayrıntıları forum ortamında aktarmam mümkün değil. Aslında kaynakları verdiğim sürece ayrıntıları aktarmam gerekli de değil. "Haa böyle de bir şey varmış" dedirtse yazı amacına ulaşmış olur. Konu, üzerinden hayli zaman geçtiği için anlamını yitirmiş gibi görünse de ilginç olabilir.

Yazıda bahsedilen uygulamaları gerçekleştirebilmek için başlangıç seviyesinde elektronik ve programlama işlerine âşina olmak yeterli.

Yazıya bir takım kavramları açıklayarak başlayalım.

AIS Nedir?
Automatic Identification System (tr: Otomatik tanımlama sistemi)

En kaba tarifle, belli büyüklükteki tüm deniz taşıtlarının bulundurması zorunlu bir kısa mesafe iletişim donanımı. Denizde yüzer durumdaki ticari -yolcu/yük- gemilerin %99'unda bulunmak zorunda.

AIS'e kısaca; NMEA 0183 veri protokolünün varyasyonlarını kullanarak deniz taşıtlarının birbiriyle iletişim kurabilmesini sağlayan bir deniz taşıtı plakası da diyebiliriz.

AIS; geminin konumu, yükü, rotası, boyutları hakkında bilgiler yayımlamak zorundadır. Bu bilgilerin bazıları gemi personeli tarafından elle girildiğinden çoğu durumda doğru olmayabilir. Ancak deniz taşıtının konum verilerini doğru olarak yayımlamakla zorunlu olduğundan, yayımladığı konum ve hız bilgileri konusunda şüphe etmeye gerek yoktur. Tahmin edilebileceği gibi hız verisini konumlar arasını hesaplayarak buluyoruz.

Ek olarak günümüzde tüm AIS donanımları MMSI numarası ile hedeflenen bir gemiye kısa ileti gönderebilmeye imkan tanır.

AIS'i açık olmayan bir deniz taşıtı, sahil güvenlik tarafından tutuklanabilir. Yani AIS'iniz kapalı durumda seyir yapıyorsanız denizde plakasız dolaşıyormuşsunuz gibi muâmele görürsünüz.

AIS verilerini okumanın anlamı nedir?
Belli bir alandaki deniz trafiğinin tümünü dinleyebilmek olarak özetlenebilir.

Profesyonel AIS alıcıları ve gönüllü veri kaynaklarıyla bu işi yapan internet siteleri var:

http://www.marinetraffic.com/tr/
http://www.vesselfinder.com/tr

Bu siteler, AIS verilerini gönüllü kullanıcıların yayımlarından ve piyasada satılan AIS alıcılarından oluşturdukları ağlardan temin ederler. AIS işaretlerinin menzili oldukça düşüktür. İyonosfer'e anten asabilseniz dahi en fazla 480km çapında bir alanı dinleyebilirsiniz. Karada 15m yükseklikten en fazla 80km çapında bir alanı dinleyebilirsiniz. Uygun durumda standart AIS donanımları da ancak bu mesafeyi tarayabilirler. Bu nedenle AIS verilerini dinleyerek deniz trafiğini gözlemlemek sahilden 50-60km açığa kadar etkili olabilecek bir yöntemdir.

Bizim sırrımız, yani yazının aktarılma amacı AIS verilerini temin etme yöntemimizde saklı. Herhangi bir AIS alıcısı kullanmadan verileri karadan alıp, çözümleyebiliriz.
Bir AIS donanımı, temelde belli telsiz frekanslarına bindirilmiş -GMSK modülasyonu- veri paketlerini decode/encode edebilen bir alıcı/vericidir. Yani AIS donanımının çalışma frekanslarını bir şekilde dinleyebilirsek veri paketlerinin içinde bulunduğu telsiz işaretlerini de alabiliriz.

Tüm bu yazının gerekçesi de zaten pahalı AIS donanımları yerine -son 4-5 yıldır ucuzları da var- bu işi elimizde hali hazırda varolan basit el telsizleriyle yapabiliyor oluşumuz (elbette biraz bozarak).
Özellikle denizde kullanılmak üzere tasarlanmış, deniz tipi el telsizlerinin büyük çoğunluğu işimizi görecektir. Tek kıstasımız, telsizin PCB'sinde bir discriminator devresinin olması. Bu devrenin telsizin durumuna -marka, model- göre bir bacağından alacağımız "ham ses verisi" AIS veri paketlerini içeriyor.

Elinizdeki telsizin bu devreye sahip olup olmadığını, varsa bile hangi bacağından veriyi alabileceğinizi öğrenmek için tasarlanmış bir internet sitesi mevcut (sitede Receivers -> Marine VHF). Siteyi tümüyle bilgisayarınıza indirmenizde fayda var. Zira kaybolabilir :)

http://www.discriminator.nl/index-en.html

Sitede tüm telsiz modelleri yok. Ancak oldukça fazla çeşit var. Elinizdeki telsiz oradaki listede yoksa bile discriminator devresi muhtemelen generic bir marka olacağından farklı telsizlerdeki devreleri kontrol edebilirsiniz.
 
Sizi siteye yönlendirdiğimde inceleme fırsatı bulduysanız, sitenin tam da yapmak istediğimiz işe yönelik tonlarca bilgi içerdiğini görmüşsünüzdür. Bu noktadan sonra isterseniz oradan devam edebilirsiniz. Zira hemen hemen aynı işleri farklı biçimlerde yapacağız.
...

Bu yazıya geri döndüyseniz DISCRIMINATOR.NL'den yardım alarak telsizinizi modifiye ettiğinizi farzediyorum (ya da henüz hiç bir şey yapmadan sadece okuyorsunuz).

Telsizin standart alıcı anteninin menzili oldukça düşüktür. Yine de sahile yakın yüksekçe bir konumdan bir çok gemiyi dinlemeniz mümkün. Anteni biraz masrafla geliştirmek isterseniz deniz tipi dikey kamçı anten kullanabilirisiniz (ya da Coaxial Collinear).

Anteninizi uygun bir konuma getirip telsizinizi 88. kanal 162 Mhz'e ayarlayın ve dinlemeye başlayın.
Bu esnada devrenin bacağından aldığınız ham ses verisini bir jakla ses kartının line-in veya mikrofon girişine verip bilgisayarda işleyeceğiz (bunu zaten discriminator.nl'den gördüğünüz şekliyle yapmış olmalısınız). İsterseniz bir kaç dakikalık bir örnek kaydedebilirsiniz (Audacity kayıt ve ses işleme için gayet iyi bir yazılımdır).

Telsizden ses verisini kaydedebiliyorsanız şimdi sıra geldi frekansa bindirilmiş sayısal veri paketlerini açığa çıkarmaya. Bu noktada aşağıdaki türde bedava ve açık kaynaklı yazılımlar kullanabilirsiniz.

http://gnuais.sourceforge.net/
http://forum.aishub.net/ais-decoder/ais-decoder-beta-release/

Bu mini yazılımlar telsizinizle bilgisayarınıza kaydettiğiniz ham ses verisinden GMSK dataları kolayca ayırmanızı sağlar ve size ASCII paketleri çıktılarlar (bu paketlerin de ayrıştırılması gerekiyor).

Harita desteği olan, yani baştan sona her işi kendisi yapan ticari bir uygulama ararsanız ShipPlotter(http://www.coaa.co.uk/shipplotter.htm) bu iş için biçilmiş kaftan.

ShipPlotter benzeri farklı ticari/hobi alternatifler bulunabilir.
Biz manuel yoldan devam edelim ve örneğin GNUAIS ile sesten AIS veri paketlerinin ayrıştırılması ve son kullanıcı verilerine dönüştürülmesi işine odaklanalım.

GNUAIS düzgün çalışıyorsa "!AIVDM,1,1,,A,13u?etPv2;0n:dDPwUM1U1Cb069D,0*24" gibi ASCII veri paketlerini ham ses verisinden süzebiliyor olmalısınız. GNUAIS bu veri paketlerini bir MySQL veritabanına kaydedecektir (elbette text dökümanı olarak çıktılamasını sağlayabilirsiniz).

!AIVDM,1,1,,A,13u?etPv2;0n:dDPwUM1U1Cb069D,0*24
!AIVDM,1,1,,A,18UG;P0012G?Uq4EdHa=c;7@051@,0*53
!AIVDM,2,2,0,B,00000000000,2*27

Bu tür paketleri nasıl açıp okuyabileceğinizi anlatmayacağım, onun yerine bu ve benzeri paketleri anlaşılabilir verilere dönüştürmeyi öğrenebileceğiniz bir kaynak vereceğim:
http://catb.org/gpsd/AIVDM.html

Sayfa, bu verilerin nasıl yorumlanacağını öğrenebileceğiniz halka açık ve kapsamlı tek yer. Burası varolmasaydı muhtemelen NMEA0183 ve NMEA2000 için spesifikasyon, uygulama dökümanlarını iyice araştırıp satın almanız gerekecekti (IMO, ITU, SOLAS Rec.). Hangi dökümanın ne kadar eksik, doyurucu ve kapsamlı olduğunu, tüm dökümanları iyice idrak etmenin ne kadar zaman alacağını, işin ne kadara patlayacağını hiç sormayın.
Halka açık dökümanı geliştiren Eric S. Raymond'u linux'cular yakından tanıyacaklardır, kendisine bu eforu için teşekkür ederim... (muhafazakar bir bireysel silahlanma destekçisi olsa da)

ASCII veri paketlerini de ayrıştırdık.
Ayrışan veri paketleri artık gemiler hakkında gözle görülür bilgiler sunuyor olmalı.

Yazıyı bitirirken, şimdiye kadar uyguladığımız her şeyin hava taşıtları için de uygulanabileceğini söylemek isterim. Zira hava taşıtlarında da AIS yerine benzer işi, benzer tekniklerle gerçekleştiren ADS-B donanımı mevcuttur. Tabii çalışma frekansları ve uçak tiplerine göre veri paketlerinin decode edilmesi işi biraz farklıdır.

Önemli not: Bu yazıyı temel alarak yaptığınız işler elinizdeki çalışır malzemeye zarar verebilir. Çok dikkatli ve yaptığınız işin farkında olmanızda fayda var.

Okuduğunuz için teşekkürler.

Kaynaklar:
http://catb.org/gpsd/AIVDM.html
http://www.discriminator.nl/index-en.html
http://rl.se/aivdm
http://forum.aishub.net/ais-decoder/ais-decoder-beta-release/
http://www.rtl-sdr.com/rtl-sdr-tutorial-cheap-ais-ship-tracking/
http://sharpais.codeplex.com/
http://ais.tbsalling.dk/
Bilgehan Korkmaz

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2882
  • Advanced User Simulator
    • ae unutmadan
Ynt: AIS Verilerini Okumak
« Yanıtla #1 : 01 Temmuz 2014, 14:21:54 »
ilgi alanımın çok dışında (bu sebepten metnin tamamını okumadım) ama ufacık bir teknemiz var, hafta sonları arkadaşla açıldığımızda gördüğüm tankerlerin nereden gelip nereye gittiğini artık biliyorum :D

Peki merak ettiğim, sen kıyıdan 50-60 km açıktan sonra bu sinyali alamayız demişsin ama bu AIS verileri okyanusun ortasında bile alınabiliyor anladığım kadarıyla. diğer taraftan şunun gibi ufacık teknelerde bile mevcut:

http://www.marinetraffic.com/tr/ais/details/ships/271010722/vessel:KIZ_KULESI_2

Bu yayımın kapsam alanı ne kadardır? Yoksa etrafta (okyanusta falan) toplayıcı antenler mi var, uydular ile mi toplanıyor bu veriler?

Çevrimdışı gibraltar

  • Retro Meraklısı
  • ***
  • İleti: 159
Ynt: AIS Verilerini Okumak
« Yanıtla #2 : 01 Temmuz 2014, 15:12:34 »
Deniz seviyesinden 15m yükseklikte bir AIS alıcı anteniyle normal şartlar altında en çok 35mil çevresi sağlıklı taranabilir. AIS 80mil ve daha fazlasını da tarayabilir ancak garanti vermez. Duruma göre Tuzla'da konumlanmış bir alıcı İzmit Körfez'den İstanbul Boğazına kadar bir alanı gözleyebilirken kimi zaman Tuzla Tersaneler bölgesinde demirli gemileri bile zar zor görür. Antenin deniz seviyesinden yüksekliği, önündeki engeller, doğal manyetik alanlar, hava durumu, güneş patlamalarının oluşturduğu manyetik fırtınalar iletimi sanıldığından fazla etkiler. Bazı gemilerde de bu AIS donanımlarının antenleri çok saçma yerlere konur. Radar, MF/HF gibi yüksek frekanslı donanımların çıkışı, antenler yerleştirilirken kot farkı gözetilmemişse AIS sinyalini bastırabilir (hatta bu olay çok sık yaşanır).

AIS verilerini gemilerden alarak dinleyen VTS servisleri vardır. Bunlar liman devletlerinin kontrolünde AIS verilerini alırlar ve deniz trafiğini denetlerler (çarpışma vs.). Zaten AIS'in en önemli amaçlarından biri de budur.

marinetraffic.com gibi siteler çoğunlukla küresel gönüllü veri kaynaklarını kullanarak tüm verileri bir sepette toplayıp haritaya basarlar. Sitede de görebileceğin gibi güvenli verilerin tam olarak yoğunlaştığı bölgeler ana kara parçalarına yakın yerler ya da üzerinde VTS sistemi olan küçük adalardır. Kıyıyla arasında yüzlerce mil olan bölgelerde (okyanusun ortası) veri almak AIS ile mümkün değildir. Bu gibi menzil dışı yerlerden veri alınması işi AIS çıkışına bağlanmış bir bilgisayar ile INMARSAT-C donanımı üzerinden verileri karaya iletmek olarak açıklanabilir.

Zaten AIS'in menzil problemi nedeniyle şimdilerde LRIT denen (Long Range Identification and Tracking) bir donanım zorunlu kılındı (SOLAS tarafından). Bu donanım, uydu ile haberleştiği için oldukça uzak mesafelerden -1200 mil- olağan bir şekilde haberleşme, izleme yapılabiliyor. Tabii LRIT, uyduyu etkin kullanıyor ve bu nedenle uydu maliyeti hayli yüksek. AIS'in uyduyla tek bağlantısı kendi içindeki veya harici bir GPS ile konum bilgisi almak. Standart bir U-AIS'in uyduyla ilişkisi cebimizdeki GPS'li bir telefondan fazla değil.

Belli büyüklükteki tüm tekneler (yanlış hatırlamıyorsam 8m ve üstü) AIS bulundurmak ve seyirdeyken açık tutmak zorunda. Bu nedenle balıkçı tekneleri bu cihazı pek sevmezler. :)
Malum balıkların bol bulunduğu noktaları kendilerine saklamak istiyorlar...
Bilgehan Korkmaz