Untuk itu kita perlu tukarkan data-data yang diperoleh itu ke GPX file supaya aplikasi mapper dapat membaca dan memprosesnya. Untuk tujuan itu, kita gunakan python.
Step 1 : copy python skrip ini dalam note pad.
#!/usr/bin/env python3
import sys
import re
import gpxpy
import gpxpy.gpx
from datetime import datetime
gpx = gpxpy.gpx.GPX()
with open('output.gpx', 'w') as f:
track = gpxpy.gpx.GPXTrack()
segment = gpxpy.gpx.GPXTrackSegment()
for line in sys.stdin:
match = re.search(r"(\d{2}:\d{2}:\d{2}) +alt: ([\d\.]+) +lat: ([\d\.]+) +lon: ([\d\.]+) +\[OK\]", line)
if match:
time, alt, lat, lon = match.groups()
point = gpxpy.gpx.GPXTrackPoint(float(lat), float(lon), elevation=float(alt))
today = datetime.now( )
point.time = datetime.strptime(time, '%H:%M:%S').replace(year=today.year, month=today.month, day=today.day)
segment.points.append(point)
track.segments.append(segment)
gpx.tracks.append(track)
f.write(gpx.to_xml())
import sys
import re
import gpxpy
import gpxpy.gpx
from datetime import datetime
gpx = gpxpy.gpx.GPX()
with open('output.gpx', 'w') as f:
track = gpxpy.gpx.GPXTrack()
segment = gpxpy.gpx.GPXTrackSegment()
for line in sys.stdin:
match = re.search(r"(\d{2}:\d{2}:\d{2}) +alt: ([\d\.]+) +lat: ([\d\.]+) +lon: ([\d\.]+) +\[OK\]", line)
if match:
time, alt, lat, lon = match.groups()
point = gpxpy.gpx.GPXTrackPoint(float(lat), float(lon), elevation=float(alt))
today = datetime.now( )
point.time = datetime.strptime(time, '%H:%M:%S').replace(year=today.year, month=today.month, day=today.day)
segment.points.append(point)
track.segments.append(segment)
gpx.tracks.append(track)
f.write(gpx.to_xml())
Save dalam file weathex dan namakan parse2gps.py
cd RS
cd weathex
chmod +x parse2gps.py
hasilnya parse2gps.py akan jadi warna hijau. kemudian mari kita cuba dekod. dalam post part 1, saya ada menyatakan yang kita ambil contoh audio rakaman daripada google drive yang 9w2rut sediakan tu.
tapi oleh kerana nama fail wav tu terlalu panjang, maka saja rename saja agar pendek dan tidak semak perut dan saya namakan sepang.wav, terpulanglah kepada anda untuk namakan apa.
buka terminal baru, install module gpxpy
pip install gpxpy pip
./weathex -b sepang.wav | python3 parse2gps.py
maka sukseslah. selepas ni kita buka file output.gpx ni dalam viking pula untuk lihat dimana dia jatuh samada laut atau darat. untuk itu, buka terminal baru. kita install viking pula. Viking ni aplikasi yang baca gpx file dan plotkan di peta.
sebelum kita install apa-apa software, saya syorkan kita update dan upgrade dahulu raspi kita mana tau kut-kut ada latest package information ke. buat awai tak kalut.
sudo apt update
sudo apt upgrade
sudo apt install viking
untuk run viking gps mapper ni, kita hanya perlu taip viking saja pada terminal.
tiada maps kan? untuk itu pergi ke Layers kemudian pergi ke New Map Layer, pada Map Type pilih OpenStreetMap (Mapnik)
maka siaplah sudah hasil pencerapan dan rakaman audio radiosonde buruan kita. semoga post ini memberi manfaat dan pedoman kepada anda semua untuk terus berjuang memburu belon kaji cuaca. 73 de 9m2zak.