• RomanKa

    Zdravím,

    nevíte, zda je možné dostat data ve formátu:

    [201606171619­13.136]0×00000­002: 20160617161913.136, 48.919148, 17.104803, 30 #position(time_stam­p, lat, lon, ttff)

    [201606171619­14.132]0×00000­002: 20160617161914.132, 48.919105, 17.104765, 30 #position(time_stam­p, lat, lon, ttff)

    [201606171619­15.133]0×00000­002: 20160617161915.133, 48.919060, 17.104728, 30 #position(time_stam­p, lat, lon, ttff)

    atd. do nějaké smysluplné podoby? Je na to nějaký program? Našel jsem třeba http://www.gpsvisualizer.com/convert_input , ale nějak se mi nedaří dostat tam čas a vytváří mi to jen mapu, přitom časové údaje pohybu jsou pro mě důležité.

    Díky!

    • salaon  

      Ahoj, co nazýváš smysluplnou podobou?

    • 777rada  

      Tohle by melo jit zkonvertovat do rady trackpointu celkem snadno, nejdrive bych ale zkusil klasicky konvertor GPSBabel. Z ceho to pochazi?

    • RomanKa  

      Pod smysluplnou podobou si představuju gpx soubor nebo něco, co by se do toho formátu dalo převést. Na GPSBabel jsem narazil a zkoušel, ale po pravdě z toho moc chytrý nejsem, nevím jak tam ta data dostat, aby je program identifikoval a jaké možnosti v Options navolit, aby se pak data převedla. Jinak ten log pochází ze Sports Trackeru, jeden konkrétní workout (zrovna ten, na kterém mi záleží) se nechce zesynchronizovat (netuším proč) a v mobilu jsem našel jen tento log (kromě souborů, které nelze přečíst).

      • xpj  

        Zkusil bych vytvořit xcsv soubor a pak ho použít:

        gpsbabel -o gpx -o mine.gpx -i xcsv,style=mys­tyle.style -F filename.txt

        Tady je nástřel toho souboru, nezkoušel jsem to, ale tak nějak by to mělo vypadat (popis položek http://www.gpsbabel.org/…_define.html). Nejsem si jistý s prvním IGNORE a s parsováním času a taky co bude s komentářem na konci – to by asi mohl nějaký ignore řešit…:

        DESCRIPTION Sports Tracker

        EXTENSION txt

        FIELD_DELIMITER SPACE

        RECORD_DELIMITER NEWLINE

        BADCHARS COMMA

        DATATYPE TRACK

        #[20160617161­913.136]0×00000­002: 20160617161913.136, 48.919148, 17.104803, 30 #position(time_stam­p, lat, lon, ttff)

        IFIELD IGNORE,"",„%s“ # ignoruje prvni cast

        IFIELD GMT_TIME,"",„%Y%m%­d%H%M%S“

        IFIELD LAT_DECIMAL,"",„%f“

        IFIELD LON_DECIMAL,"",„%f“

        IFIELD IGNORE,"",„%s“

    • salaon  

      Není to zcela automatické řešení, ale funguje:

      Data si dej do Excelu, rozděl tak, aby zůstaly jen souřadnice a timestamp, ten rozděl na datum (prvních 8 čísel) a čas (zbytek), a pak můžeš použít ten nástroj, na který se odkazuješ. Tady je příklad toho Tvého vstupu, snad se to tady nerozformátuje. První řadek s popisy je důležitý, ten tam nechat, v nastavení jako oddělovač zvolit čárku (comma).

      date,time,lat,long,

      20160617,1619­13.136,48.919148,17­.104803,

      20160617,1619­14.132,48.919105,17­.104765,

      20160617,1619­15.133,48.919060,17­.104728,

      Pořadí je samozřejmě možno proházet, ale pořadí hodnot ve sloupcích musí odpovídat pořadí definovaném v prvním řádku.

      Tady je odkaz na výsledek toho Tvého:

      odkaz

    • JendaH  

      edit: bikeforum rozbilo uvozovky a formátování → http://pastebin.com/r9dddZ9K

      Například takto:

      #!/bin/bash

      cat << EOF

      <?xml version=„1.0“ encoding=„UTF-8“?>

      <gpx creator=„mapy.cz“ version=„1.1“ xmlns=„http:/­/www.topografix­.com/GPX/1/1“ xmlns:xsi=„ht­tp://www.w3.or­g/2001/XMLSche­ma-instance“ xsi:schemaLoca­tion=„http://w­ww.topografix­.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd“>

      <trk>

      <name>tanvald-pruned</name>

      <number>1</number>

      <trkseg>

      EOF

      while read line; do

      lat=echo "$line" | cut -d " " -f 3

      lon=echo "$line" | cut -d " " -f 4

      echo „<trkpt lat=\“$lat\" lon=\„$lon\“>­</trkpt>"

      done

      cat << EOF

      </trkseg>

      </trk>

      </gpx>

      EOF

      • 777rada  

        tak pokud to budeme delat v bashi tak: delimiter by mel byt „,“ – parserujeme. csv

        dale je jeste treba pojednat timestamp, o ten zakladateli jde.

        dovolil jsem si upravit tvuj skript:

        http://pastebin.com/F2dDwGZG

        mam to hotovo, zda se, feedback welcome – bash uz jsem dlouho nevidel :-)

        • 777rada  

          Ještě by se slušelo ukázat jak vypadá (musí vypadat) moje_csv.csv (V této podobě to dostaneme snadno z nějakého tabulkového procesoru).

          [201606171619­13.136]0×00000­002: 2016061716191­3.136,48.919148,17­.104803

          [201606171619­14.132]0×00000­002: 2016061716191­4.132,48.919105,17­.104765

          [201606171619­15.133]0×00000­002: 2016061716191­5.133,48.91906,17­.104728

        • 777rada  

          aha, jeste si opravim chybu.

          http://pastebin.com/mBcXNkRm

    • 777rada  

      tady jsou ty tri sekundy. Pokud si chces svoje data zpracovat sam popisu ti jak na to ale vzhledem k tomu co jsme na to pouzili to chce pristup k nejakemu Linuxu.

    • RomanKa  

      Dík chlapi, o něco mě to posunulo – i když se přiznám, že jazyku Jendy a xpj absolutně nerozumím, ale bohužel jsem znovu narazil :-)

      V tom GPS logu byl asi jen poslední kilometr. Tak jsem zkusil vytvořit čisté gpx na základě rekonstrukce trasy, ale podařilo se mi z jednoho podsouboru vypreparovat jen údaje o rychlosti na konkrétní pozici, nikoliv čas na oné pozici. Čas znám jen začátku trasy. Dají se nějak vytvořit časové údaje z údajů o poloze a rychlosti?

      • RomanKa  

        I když jak nad tím přemýšlím (nepolíbený programováním), bylo by to dost složité. Vypočítat vzdálenost mezi dvěma body, určit dle rychlosti časový interval a ten příčítat k času, no nevím nevím :-D

        Ale na BF dokáže vždycky někdo překvapit.. :-)

        • JendaH  

          Ano, takhle by se to asi muselo řešit. Způsobem naznačeným ve skriptech výše vytáhnout potřebné informace a spočítat. Na to už pomalu Bash není úplně nejvhodnější jazyk.

          Docela problém ale budou zaokrouhlovací chyby rychlosti a chyby určení polohy. Bojím se, že brzy bude čas spočítaný tímto způsobem dost mimo.

      • 777rada  

        Pojmem rychlost se vubec nepotrebujes zabyvat, pokud teda mas dlouhy zaznam v tom formatu jaks to uvedl. Potrebujes hlavne konvertovat udaje o case v kterem jsi projizdel to urcite misto v prostoru (trackpoint) z formatu ---[201606171619­13.136]0×00000­002: 20160617161913.136--- do formatu ---<time>2016–06–17T16:19:13Z</time>---to je snadne udelat v nejakem programovacim jazyce, je ale mozne ze to nekdo dokaze i nejakymi pristupnejsimi nastroji – tady jsem sice dost skeptik, necham se ale rad poucit. Interpretaci (jak rychle jsem tady jel, jakym prumerem jsem jel celou trasu…) udela ten software do ktereho to budes importovat – na mojem screenshotu primo SportsTracker. Ten skript z druheho odkazu co jsem daval ( diky JendaH :-) ) dela presne to co potrebujes. Tzn prvni radek tvojeho souboru — [201606171619­13.136]0×00000­002: 20160617161913.136, 48.919148, 17.104803, 30 #position(time_stam­p, lat, lon, ttff) — potrebujes nejakou metodou transformovat do

        .

        <trkpt lat=„48.919148“ lon=„17.104803“>

        <time>2016–06–17T16:19:13Z</time>

        </trkpt>

        .

        dalsi radek = dalsi <trkpt></trkpt>

        atd

        atd

        jako vychozi sablonu opravdu muzes pouzit export z nejakeho webu.

        ale je to pravda dost tezke.

        Pokud udaje o rychlosti ozelis, GPS vizualizer myslim importuje soubor ve formatu csv – ten ze svych dat vytvoris v tabulkovem procesoru snadno. Mozna i GPSBabel by csv importoval.

      • 777rada  

        Aha, ted jsem si to precetl poradne, pokud nemas konstantni data po celou dobu v te podobe jakou zname tak to je opravdu spatne :-(

Nová reakce na zakládající

Pro napsání příspěvku se prosím přihlaste nebo zaregistrujte.