কর্ট শ্বেওয়ারের একটি ভাল গিথুব সংগ্রহশালা রয়েছে যারা সেন্টার ফর কোস্টাল অ্যান্ড ওশান ম্যাপিংয়ে কাজ করেন ( উদাহরণস্বরূপ তিমির ক্রিয়াকলাপ ট্র্যাক করার জন্য)। সেখানে আপনি এনএমএ বার্তাগুলি বোঝার জন্য একটি ডিকোডার এবং নথি পাবেন (বেশিরভাগ ক্ষেত্রে @ianmayo এবং @GID দেব পোস্টগুলি দ্বারা সংযুক্ত লিঙ্কগুলি)। এখানে একটি ছোট হাওটো LINUX
এবং এর নীচে চলছে python 2.7
।
কিছু কোড চলমান পেতে, আপনি প্রয়োজন git
একটি C++
কম্পাইলার, python setup environment
, cmake
। থেকে ডেটা ডাউনলোড করুন
$ cd YOUR_BUILD_PATH
$ git clone https://github.com/schwehr/libais.git
এবং গিথুব পৃষ্ঠায় / চালনায় ইনস্টলেশন নির্দেশ অনুসরণ করুন বা রান করুন
$ cd YOUR_BUILD_PATH/libais
$ cmake . # to bulid the Makefile
$ make # to build the libais C++
$ python setup.py build # to build the python stuff
$ sudo python setup.py install # to deploy it
সর্বোপরি আপনার python
পরিবেশে লাইব্রেরি থাকা উচিত ।
$ ls /usr/local/lib/python2.7/dist-packages/
easy-install.pth libais-0.16-py2.7-linux-x86_64.egg
$ ls /usr/local/lib/python2.7/dist-packages/libais-0.16-py2.7-linux-x86_64.egg
ais _ais.py _ais.pyc _ais.so EGG-INFO test
এখানে স্ক্রিপ্টে কিছু দ্রুত এবং নোংরা কোড দেওয়া হয়েছে যাতে ইউনিক্সটিকে & আচরণের test-ais.py
জন্য পেতে বলা হয় । আমি একটি "পরিষ্কার পাঠ্য প্রিন্টার" হিসাবে ব্যবহার করি ।head
tail
json
#!/usr/bin/python
# To supress the warning ...could be done better
# FutureWarning: The stream module is deprecated and will be removed in 1.0
# https://github.com/schwehr/libais/blob/master/ais/stream/__init__.py
# coded in in __init__.py line 10-14
import warnings
warnings.filterwarnings("ignore")
# import json module for pretty print
import json
# import ais.stream module to decode
# a ais binary nmea message to json
import ais.stream
# import sys module to read stuff from
# standard input STDIN
import sys
# decode a file or somthing form the STDIN
f = open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin
# Iterate over the messages
for msg in ais.stream.decode(f):
# make a json pretty print for each message
print json.dumps(msg, indent=4, sort_keys=True)
# EOF
Assuming যে nmea-samples
ফাইলটি একটি হল data
ডিরেক্টরি, আপনি লাইন আপনি দেখাতে চান ফিল্টার করতে পারে cat
, head
এবং tail
...
$ tail -1 data/nmea-sample | ./test-ais.py
{
"day": 14,
"fix_type": 1,
"hour": 11,
"id": 4,
"minute": 33,
"mmsi": 2320717,
"month": 3,
"position_accuracy": 0,
"raim": false,
"repeat_indicator": 3,
"second": 30,
"slot_offset": 2250,
"slot_timeout": 0,
"spare": 0,
"sync_state": 0,
"transmission_ctl": 0,
"x": -5.782454967498779,
"y": 57.842193603515625,
"year": 2012
}
জসন কোড থেকে শুরু করে, আরও ফর্ম্যাটিং এবং স্টোর স্টাফ দিয়ে চালানো সহজ হওয়া উচিত।