SK:Konverzia do GPX

From OpenStreetMap Wiki
Jump to navigation Jump to search

Tento článok je venovaný OS Windows. Keďže užívatelia UNIX pozitiv prostredí si vedia oskriptovat jednoduché veci sami, tak tomuto prostrediu sa tu venovať nebudeme ;).

Ako sme už písali v článku WikiProject Slovakia/GPS Logs, ideálne je, pokiaľ vaše logy zaznamenávate vo formáte NMEA, pretože sú to "surové" dáta a Váš GPS prijímač by mohol pri ukladaní priamo do GPX formátu vynechať niektoré údaje, ktoré by sa vám mohli zísť.

Pretože OSM projekt sa opiera o GPS logy vo formáte GPX, potrebujete Váš log prekonvertovať. Veľmi jednoduchým nástrojom je GPSbabel, ktorý umožňuje konverziu medzi rôznymi formátmi.

Základný príkaz

Najjednoduchšie je používať jeho command-line podobu, v tomto prípade odstránime GPS odchylky vačšie ako 3:

gpsbabel.exe -i nmea -f  meno_suboru_nmea  -x discard,hdop=3,vdop=3 -o gpx -F meno_suboru_gpx

Jednoduchý .BAT

Pokiaľ sa Vám však nechce zakaždým písať tento príkaz, môžete si spraviť 'skrpt' s menom napr. 'conv.bat':

gpsbabel.exe -i nmea -f  %1  -x discard,hdop=3,vdop=3 -o gpx -F %1.gpx

V tomto prípade stačí ak si spustíte príkazový riadok pôjdete do adresára, kde budete mať uložený tento skript, Váš NMEA log a zároveň gpsbabel. Príkaz conv.bat <moj_nmea_log_subor> Vám vygeneruje súbor <moj_nmea_log_subor>.gpx

Zautomatizovaná konverzia

Túto verziu spolu s integrovaným gpsbabel nájdete aj na NMEA2GPX

Ak si chceme ušetriť trochu čas a konvertovanie viacerých súborov spraviť naraz, tak tu je ukážkový skript, ktorý používam ja:

@echo off
cls
:START
echo.
echo checking directories...
GOTO DIRCHECK

:RECHECK
echo.
pause

cls
echo.
echo re-checking directories, press CTRL-C if you see any error

:DIRCHECK
IF NOT EXIST gpslog (
   echo.
   echo Creating directory "gpslog"...
   MKDIR gpslog
   IF %errorlevel% NEQ 0 (
      echo.
      echo Can't create directory "%cd%\gpslog"
      GOTO END
   )
   echo gpslog: OK
   echo.
   echo upload your NMEA log files to "%cd%\gpslog" directory and run this script again
   echo.
   GOTO END
)
IF NOT EXIST gpslog\Processed (
   echo.
   echo Creating directory "gpslog\Processed"...
   mkdir gpslog\Processed
   IF %errorlevel% NEQ 0 (
      echo.
      echo Can't create directory "%cd%\gpslog\Processed"
      GOTO END
   )
   echo gpslog\Processed: OK
   GOTO RECHECK
)
IF NOT EXIST GPX (
   echo.
   echo Creating directory "GPX"...
   mkdir GPX
   IF %errorlevel% NEQ 0 (
      echo.
      echo Can't create directory "%cd%\GPX"
      GOTO END
   )
   echo GPX: OK
   GOTO RECHECK
)

echo.
echo Directories: OK
echo.
echo.


echo checking for "gpsbabel.exe"...
IF NOT EXIST gpsbabel\gpsbabel.exe (
   echo.
   echo "%cd%\gpsbabel\gpsbabel.exe" doesn't exists in "gpsbabel" directory. Please check it or download from web.
   GOTO END
)

echo gpsbabel: OK
echo.
echo.


:CONV
set newgpsconv=0
echo "Start of conversion..."

for %%f in (gpslog/*.bin) do (
   set newgpsconv=1

   echo.
   echo Converting "%%f"...
   gpsbabel\gpsbabel.exe -i nmea -f  gpslog\%%f  -x discard,hdop=3,vdop=3 -o gpx -F GPX\%%~nf.gpx
   echo Done
   echo.

   echo Moving "%%f"...
   move "gpslog\%%f" "gpslog\Processed\%%f"
   IF %errorlevel% NEQ 0 (
      echo.
      echo Can't move "%%f" to "%cd%\gpslog\Processed"
      GOTO END
   )
)

IF NOT %newgpsconv%==1 (
   echo.
   echo No new logs in "%cd%\gpslog" directory to convert...
)
:END
set newgpsconv=
echo.
pause

Tento skript skontroluje, či existujú adresáre gpslog, gpslog\Processed a GPX.
Do gpslog adresára ukladám všetky NMEA logy z môjho GPS prijímača.
Do gpslog\Processed sa automaticky presúvajú NMEA logy, ktoré už boli zkonvertované.
Do GPX adresára sa ukladajú zase zkonvertované GPX súbory.

Jediné, čo potrebujete pre chod skriptu je mať vytvorený adesár gpsbabel a v ňom súbory gpsbabel.exe a libexpat.dll.

V tomto prípade stačí spustiť .bat skript.