Sziasztok.
Vettem nemrég egy hazai hajósboltban egy ilyet:
http://www.ejmotiwalla.com/Codes/Maxphotos/Geomatictools/Previews/silva…
12 csatornás csak, de tulajdonképpen remekül elvagyok vele, robosztus szerkezet, nem az a fajta, ami szétesik vagy szétázik.
A problémám vele nem ép elméjű.
Az SD kártyára nekem nem szabványos XML nyelven íródott GPX fájlokat ír, hanem valami binárisnak tűnő őrületet, USR kiterjesztéssel.
GPSBabel-lel nekiálltam, hátha sikerül valami oda-vissza konverzió de nem jutottam célba.
Kérdésem:
mik ezek a fájlok, hogyan lehetne a PC-n lévő GIS-ekbe (pl. qlandkarte, viking, QGIS stb.) beolvasni használható állományként?
- 7946 megtekintés
Hozzászólások
Az első onlne megoldotta a konverziót, köszönöm szépen, így szebb a dolog. A második linken valami windows nevűt követelt tőlem valami exe file, ezt nem értem.
Szóval offline módon használható, elsősorban linuxon futó megoldás érdekelne, bár az online-nak is örülök ebben a pillanatban
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
beillesztenél ebből pár sort amit ír?
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
Persze.
a[nautical]$
a[USR]$ cat CANYON.USR
Man Overboard6]�#'Qoute 1Poute 1Trail 1(���V��p�V����Vf�
�Vb���V�E�V)���VG��V(�~V!��V���(RN�
�(RT�
�(RL�
�(RJ�
�(RI�
�(RH�
(ez csak egy file-részlet...)
Szépen látszik, hogy benyomtam a
MOB-ot (ember a vízben), így rögzítettem egy nevezetes útpontot. Aztán ez a kicsike lekódolja itt nekem, ahelyett, hogy gpx-ezne.
A fenti online módszer bolondbiztos: bekéri a file-t, majd gpx-ként etölthetem. De ettől nem leszek okosabb sajnos
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Próba szerencse:
gpsbabel -i lowranceusr -f valami.usr -o gpx -F valami.gpx
fordítva is müködik:
gpsbabel -i gpx -f valami.gpx -o lowranceusr -F valami.usr
http://www.gpsbabel.org/htmldoc-development/fmt_lowranceusr.html
- A hozzászóláshoz be kell jelentkezni
Működik!!!!!!
Köszönöm :)
Honap letesztelem a visszafelé menetet is, rátöltve a gps-re.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Végigcsináltam oda-vissza, működik.
Alkottam egy rondaságot is hozzá, hála Neked:
root[test]# cat konverzio.sh
#!/bin/bash
kiterjesztes=`echo $1 |\
awk 'BEGIN \
{FS="."}\
{print $2}'`
if [ "$kiterjesztes" = "USR" ]
then
gpxfilename=`echo $1 |\
awk 'BEGIN \
{FS="."}\
{print $1".gpx"}'`
gpsbabel -i lowranceusr -f $1 -o gpx -F $gpxfilename
lower.sh $gpxfilename
else
usrfilename=`echo $1 |\
awk 'BEGIN \
{FS="."}\
{print $1".USR"}'`
gpsbabel -i gpx -f $1 -o lowranceusr -F $usrfilename
upper.sh $usrfilename
fi
exit 0
az upper.sh és a lower.sh a nagy- és kisbetűsítő script...
Most már csak az érdekelne, hogy a Silva Atlas Pro GPS-hez hol tudok beszerezni természetesen legálisan nautikai térképeket. Amióta a Silvát felvásárolták, megszűnt a support?
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Nagyon off, s közvetlenül nem kapcsolódik a témához, csak egy apró észrevétel. Az awk scriptet nem kell egy sorba írni, így felesleges a sor végi backslash.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Azért szoktam nem egy sorba írni az awk utáni dolgokat, mert sokszor átláthatóbb, mi van az awk után. Karakterkihagyásoknál nálam hasznos, itt a hupon tanultam :)
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Félreértettél. Épp azt mondom, hogy a sorvégi backslash-ekkel ugyan vizuálisan több sorban van a scripted, valójában azonban egyetlen sorban. S azt mondom, hogy az awk egy rendes script nyelv, lehet abban bátran valódi, hús-vér newline, nem kell backslash-sel eliminálva némileg nehezen olvashatóvá tenni a kódot.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
(A kezdeti kérdésfelvetéshez képest ez az offtopic offtopicja.)
Akkor ezt pontosítsuk egy kicsit, mert a fenti megoldással az olvashatóságon kívül van más probléma is.
a) shell-ben ha aposztrófok ( ' ) között ENTER-t ütök, az marad ENTER. Ellenben ha \ + ENTER-t ütök, az marad \ + ENTER - mármint aposztrófok között. Azaz a példában - mivel aposztrófok között van a \ + ENTER kombináció, ezek meg is maradnak, az awk megkapja mind a két karaktert.
b) awk-ban ellenben a \ kb ugyanazt jelenti, mint shell-ben, tehát a mögötte álló egyetlen karakter speciális jelentését megszünteti - ha mögötte ENTER áll, akkor az nem jelent sor végét, hanem csak egy közönséges elválasztójelet (kb, mintha szóközt írtam volna). Egy példa:
$ awk 'BEGIN
{ print $0 }
' /etc/hosts
Ez a három jelenleg (általam) elérhető nyílt forráskódú awk megvalósításban (GNU-féle gawk, Mike Brennan-féle mawk és a Kernighan-féle One-True-Awk) ugyanúgy hibaüzenetet eredményez, míg ha a BEGIN sor végén (közvetlenül az ENTER előtt) áll egy \ , akkor már lefut. (És amúgy kiír egy tök üres sort.)
Ugyanis az awk-ban (amúgy az eddigiektől teljesen függetlenül) van egy eléggé kötött szintaxis: a végrehajtandó utasítások általános formája un. minta { akció } párosokból áll, ahol viszont az "akció" részhez tartozó { kötelezően a "minta" résszel egy sorban kell, hogy szerepeljen. Ha ez nem áll fenn, azaz az "akció" részhez tartozó nyitó kapcsos zárójel nem a "minta" résszel áll egy sorban, akkor az mást jelent, azaz:
minta {
akció
}
teljesen mást jelent, mint
minta
{
akció
}
Az első példában van egy összetartozó minta-akció páros, és azt jelenti, hogy ha a "minta" illeszkedik (gyengébbek kedvéért: a minta által leírt feltétel teljesül), akkor (de csak akkor) végrehajtjuk az "akcó" részben szereplő utasítás(oka)t.
A második példában ellenben van egy "minta" - amihez nem tartozik akció. Ennek definíció szerinti jelentése: a "minta" illeszkedése (azaz a feltétel teljesülése esetén) az éppen aktuálisan vizsgált rekord tartalmát kiírjuk az STDOUT-ra (mintha az lenne az akció rész, hogy: { print $0 } ; és van egy második minta-akció páros, ahol viszont a "minta" rész hiányzik, ennek jelentése pedig: az "akció" részt minden egyes bemeneti rekord esetén végrehajtjuk mindenféle feltételvizsgálattól függetlenül.
A BEGIN (és az END) szavak "minta" helyen szerepeltetésének van (szabvány szerint) pár sajátossága: BEGIN csak az első (END pedig csak az utolsó) lehet a "minta" sorozatban, és ez a két "minta" nem adható meg "akció" nélkül. Ezért jelez hibát a legelső kódomra az awk.
bzs:
No és akkor vissza az eredetire: mivel aposztrófok között van \ + ENTER, ezért azt mind a kettőt megkapja az awk - azaz gyakorlatilag egy sorban írtad az egész awk kódot. "Zab" kolléga ezt jelezte, és arra próbált figyelmeztetni, hogy nyugodtan elfelejtheted a \ -t az aposztróf miatt. (Én meg azt jelzem, hogy viszont ha elhagyod a sorok végén a \ -t, akkor a BEGIN mintához tartozó FS-változó értékadást tedd egy sorba a BEGIN-nel, különben nem lesz jó. Az más kérdés, hogy az FS-nek BEGIN minta helyett parancssorból is lehet értéket adni, erre jó a -F opció.)
- A hozzászóláshoz be kell jelentkezni
Teljesen egyetértek, én a kezdő kapcsos zárójelet bash-ben a függvénynév után, awk-ban a minta után írom. Úgy emlékszem, az awk - legalább is a gawk - jól elvan a C-szerű szintaxissal, amikor az utasítás végét pontosvesszővel zárjuk le. Én így szoktam használni, hibaüzenetet még nem kaptam ezért.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni