Thread View: pl.comp.os.linux.programowanie
6 messages
6 total messages
Started by pigobocian
Tue, 12 Apr 2011 10:25
GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: pigobocian
Date: Tue, 12 Apr 2011 10:25
Date: Tue, 12 Apr 2011 10:25
29 lines
1986 bytes
1986 bytes
Witam. Program wymieniony w temacie tworzy po odczytaniu danych z GPS'a pliki ITM, które są zwykłymi ZIP'ami. Wewnątrz jest plik z bazą SQLITE. Dane typu latitude, longtitude, altitude są zapisane w sposób czytelny. Natomiast data i czas każdego pomiaru to jakieś długie liczby. Eksport z tabeli wygląda tak: "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" "1","0","30114423","67089792","0.0" "2","0","30114423","467089792","11.0" "3","0","30114423","517089792","10.0" "4","0","30114423","567089792","2.0" "5","0","30114423","707089792","12.0" "6","0","30114423","757089792","14.0" "7","0","30114423","807089792","13.0" "8","0","30114423","987089792","0.0" "9","0","30114423","1087089792","5.0" "10","0","30114423","1147089792","6.0" "11","0","30114423","1197089792","8.0" Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? Funkcje sqlite typu date(...), time(...), datetime(...) dla tych kolumn zwracają bzdury. Podpowie ktoś? Pozdr. pigobocian.
Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: bofh
Date: Tue, 12 Apr 2011 12:32
Date: Tue, 12 Apr 2011 12:32
34 lines
2193 bytes
2193 bytes
On 12.04.2011 12:25, pigobocian wrote: > Witam. > Program wymieniony w temacie tworzy po odczytaniu danych z GPS'a pliki > ITM, które są zwykłymi ZIP'ami. Wewnątrz jest plik z bazą SQLITE. > Dane typu latitude, longtitude, altitude są zapisane w sposób > czytelny. Natomiast data i czas każdego pomiaru to jakieś długie liczby. > Eksport z tabeli wygląda tak: > > "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" > "1","0","30114423","67089792","0.0" > "2","0","30114423","467089792","11.0" > "3","0","30114423","517089792","10.0" > "4","0","30114423","567089792","2.0" > "5","0","30114423","707089792","12.0" > "6","0","30114423","757089792","14.0" > "7","0","30114423","807089792","13.0" > "8","0","30114423","987089792","0.0" > "9","0","30114423","1087089792","5.0" > "10","0","30114423","1147089792","6.0" > "11","0","30114423","1197089792","8.0" > > Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? > > Funkcje sqlite typu date(...), time(...), datetime(...) dla > tych kolumn zwracają bzdury. > > Podpowie ktoś? A co ile mniej więcej robiłeś te pomiary? -- wer <",,)~~ http://szumofob.eu
Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: pigobocian
Date: Tue, 12 Apr 2011 12:41
Date: Tue, 12 Apr 2011 12:41
34 lines
2494 bytes
2494 bytes
W dniu 2011-04-12 14:32, bofh@nano.pl pisze: > On 12.04.2011 12:25, pigobocian wrote: >> Witam. >> Program wymieniony w temacie tworzy po odczytaniu danych z GPS'a pliki >> ITM, które są zwykłymi ZIP'ami. Wewnątrz jest plik z bazą SQLITE. >> Dane typu latitude, longtitude, altitude są zapisane w sposób >> czytelny. Natomiast data i czas każdego pomiaru to jakieś długie liczby. >> Eksport z tabeli wygląda tak: >> >> "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" >> "1","0","30114423","67089792","0.0" >> "2","0","30114423","467089792","11.0" >> "3","0","30114423","517089792","10.0" >> "4","0","30114423","567089792","2.0" >> "5","0","30114423","707089792","12.0" >> "6","0","30114423","757089792","14.0" >> "7","0","30114423","807089792","13.0" >> "8","0","30114423","987089792","0.0" >> "9","0","30114423","1087089792","5.0" >> "10","0","30114423","1147089792","6.0" >> "11","0","30114423","1197089792","8.0" >> >> Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? >> >> Funkcje sqlite typu date(...), time(...), datetime(...) dla >> tych kolumn zwracają bzdury. >> >> Podpowie ktoś? > > A co ile mniej więcej robiłeś te pomiary? > > Ustawienia urządzenia (chyba wszystkie bo mam ich kilka): Zapis co 3-5 sekundy, stop przy 3km/h
Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: Michal Jaegermann
Date: Tue, 12 Apr 2011 21:00
Date: Tue, 12 Apr 2011 21:00
41 lines
2741 bytes
2741 bytes
pigobocian <pigobocian@wp.pl> wrote: > Natomiast data i czas każdego pomiaru to jakieś długie liczby. To wyglada jak data i czas. Tyle, że zapisana w jakowychś jednostkach od jakiejś bazy. Tak naprawdę to systemowe daty na Unixie/Linuxie wyglądają wyłącznie tak. To co jest wyświetlane to wygodne "złudzenie" produkowane przez programy pokazujące datowniki. > Eksport z tabeli wygląda tak: > > "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" > "1","0","30114423","67089792","0.0" > "2","0","30114423","467089792","11.0" > "3","0","30114423","517089792","10.0" > "4","0","30114423","567089792","2.0" > "5","0","30114423","707089792","12.0" > "6","0","30114423","757089792","14.0" > "7","0","30114423","807089792","13.0" > "8","0","30114423","987089792","0.0" > "9","0","30114423","1087089792","5.0" > "10","0","30114423","1147089792","6.0" > "11","0","30114423","1197089792","8.0" Na przykład $ date --utc -d '@1197089792' Sat Dec 8 04:56:32 UTC 2007 Można z 'date' zrobić dużo więcej i "bazą" nie musi być "Jan 1 00:00:00 UTC 1970". Szczegóły w dokumentacji. > Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? Nie tyle przekonwertować co ustalić jak interpretować. Dokumentacja GPSPhotoTagger byłaby właściwym miejscem do zaczęcia. Stała końcówka "089792" sugeruje, że w "fGPSTime2" są jakieś małe jednostki poniżej rozdzielczości czasu systemowego. Google pytane o "GPS Time" znajduje "About 38,600 results (0.20 seconds)" no i można się szybko dowiedzieć, że "GPS time was zero at 0h 6-Jan-1980 ..." i dużo więcej. Michał
Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: pigobocian
Date: Thu, 14 Apr 2011 13:59
Date: Thu, 14 Apr 2011 13:59
40 lines
2733 bytes
2733 bytes
W dniu 2011-04-12 12:25, pigobocian pisze: > Witam. > Program wymieniony w temacie tworzy po odczytaniu danych z GPS'a pliki > ITM, które są zwykłymi ZIP'ami. Wewnątrz jest plik z bazą SQLITE. > Dane typu latitude, longtitude, altitude są zapisane w sposób > czytelny. Natomiast data i czas każdego pomiaru to jakieś długie liczby. > Eksport z tabeli wygląda tak: > > "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" > "1","0","30114423","67089792","0.0" > "2","0","30114423","467089792","11.0" > "3","0","30114423","517089792","10.0" > "4","0","30114423","567089792","2.0" > "5","0","30114423","707089792","12.0" > "6","0","30114423","757089792","14.0" > "7","0","30114423","807089792","13.0" > "8","0","30114423","987089792","0.0" > "9","0","30114423","1087089792","5.0" > "10","0","30114423","1147089792","6.0" > "11","0","30114423","1197089792","8.0" > > Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? > > Funkcje sqlite typu date(...), time(...), datetime(...) dla > tych kolumn zwracają bzdury. > > Podpowie ktoś? > > Pozdr. > pigobocian. O ile z polem fGPSTime1 "prawie" sobie poradziłem o tyle dziwne jest pole fGPSTime2 ma gdzieniegdzie znak minus. Coś takiego powtarza się cyklicznie średnio co 20,30 rekordów. Dokumentacji do GPSPhotoTagger nie znalazłem - program dołączany do datalogerów gps made in china. Jeśli kogoś to interesuje, zamiast zmagać się ze strukturą danych tego programu - poeksperymentowałem z GPSBabael, obecnie obsługuje już chipy SkyTraq i da się przy jego pomocy pobrać log, wyczyścić datalogger i zapisać dane np. w cvs.
Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
Author: McViking
Date: Tue, 27 Aug 2013 23:37
Date: Tue, 27 Aug 2013 23:37
63 lines
4351 bytes
4351 bytes
Witam Dla potomnych podaję przepis "krok po kroku" jak ja to zrobiłem w Excelu (trochę metodą prób i błędów, ale skutecznie): Sposób liczenia czasu na podstawie fGPSTime1 i fGPSTime2 w QSTARZ (SQLite): 1. Jeżeli fGPSTime2 < 0 to wyliczam fGPSTime2A jako fGPSTime2 + (2)^32 fGPSTime2A = [ fGPSTime2 + 4 294 967 296 ] 2. wyliczam fGPSTime1A jako fGPSTime1 * ( (2)^32 / 10 000 000 ) fGPSTime1A = [ fGPSTime1 * ( 4 294 967 296 / 10 000 000 ) ] 3. wyliczam liczbę sekund od 1601-01-01 00:00:00 do 2000-01-01 00:00:00, która wynosi 12 591 158 400 4. wyliczam liczbę sekund od 2000-01-01 00:00:00 jako fGPSTime fGPSTime = [ fGPSTime1A + ( fGPSTime2A / 10 000 000 ) - 12 591 158 400 5. wyliczam liczbę dni od 1.01.2000. jako część całkowitą (nie przez zaokrąglenie tylko odcięcie części ułamkowej) z liczby ( fGPSTime / 3600 / 24 ) dniOdMilenium = [ LICZBA.CAŁK( fGPSTime / 3600 / 24 ) ] 6. wyliczam godzinę jako część całkowitą z liczby (( fGPSTime - ( dniOdMilenium * 3600 * 24 )) / 3600 ) godzina = [ LICZBA.CAŁK( fGPSTime - ( dniOdMilenium *3600 * 24 )) / 3600 ) ] 7. wyliczam minutę jako część całkowitą z liczby (( fGPSTime - ( dniOdMilenium * 3600 * 24 ) - ( godzina *3600 )) / 60 ) minuta = [ LICZBA.CAŁK( fGPSTime - ( dniOdMilenium *3600 * 24 ) - (godzina * 3600 )) / 60 ) ] 8. wyliczam sekundę jako (( fGPSTime - ( dniOdMilenium * 3600 * 24 ) - ( godzina *3600 ) - ( minuta * 60)) sekunda = [ fGPSTime - ( dniOdMilenium *3600 * 24 ) - ( godzina * 3600 ) - (minuta * 60 ) ] 9. wyliczam datę i czas jako data(2000-01-01 + dniOdMilenium) + czas(godzina; minuta; sekunda) = [ DATA(2000;1;1) + dniOdMilenium + CZAS(godzina;minuta;sekunda) ] W ten sposób dla kolejnych 5 rekordów będą to czasy: 2010-11-12 14:36:38 2010-11-12 14:37:18 2010-11-12 14:37:23 2010-11-12 14:37:28 2010-11-12 14:37:42 Pozdrawiam - McViking W dniu wtorek, 12 kwietnia 2011 12:25:56 UTC+2 użytkownik pigobocian napisał: > Witam. > Program wymieniony w temacie tworzy po odczytaniu danych z GPS'a pliki > ITM, które są zwykłymi ZIP'ami. Wewnątrz jest plik z bazą SQLITE. > Dane typu latitude, longtitude, altitude są zapisane w sposób > czytelny. Natomiast data i czas każdego pomiaru to jakieś długie liczby. > Eksport z tabeli wygląda tak: > > "fID","fZero","fGPSTime1","fGPSTime2","fGPSSpeed" > "1","0","30114423","67089792","0.0" > "2","0","30114423","467089792","11.0" > "3","0","30114423","517089792","10.0" > "4","0","30114423","567089792","2.0" > "5","0","30114423","707089792","12.0" > "6","0","30114423","757089792","14.0" > "7","0","30114423","807089792","13.0" > "8","0","30114423","987089792","0.0" > "9","0","30114423","1087089792","5.0" > "10","0","30114423","1147089792","6.0" > "11","0","30114423","1197089792","8.0" > > Jak przekonwertować pola fGPSTime1 i fGPSTime2 na datę i czas? > > Funkcje sqlite typu date(...), time(...), datetime(...) dla > tych kolumn zwracają bzdury. > > Podpowie ktoś? > > Pozdr. > pigobocian.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads