Article View: pl.comp.os.linux.programowanie
Article #72184Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas
From: 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.
Technical Details
Message-ID:
<535fd4a7-f748-4fd2-89a7-528b66a7258a@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!n2no4758610pbg.1!news-out.google.com!z6ni20003pbu.0!nntp.google.com!fx3no5847462qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<4da428b4$0$2497$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.66.148.8 with SMTP id to8mr6600510pab.0.1377646659137; Tue, 27 Aug 2013 16:37:39 -0700 (PDT) X-Received: by 10.49.59.35 with SMTP id w3mr421456qeq.8.1377646658894; Tue, 27 Aug 2013 16:37:38 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!n2no4758610pbg.1!news-out.google.com!z6ni20003pbu.0!nntp.google.com!fx3no5847462qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.os.linux.programowanie Date: Tue, 27 Aug 2013 16:37:38 -0700 (PDT) In-Reply-To: <4da428b4$0$2497$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.4.197.63; posting-account=nY2eSQoAAACoeOiMB8SAbBVboQxTrew2 NNTP-Posting-Host: 83.4.197.63 References: <4da428b4$0$2497$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <535fd4a7-f748-4fd2-89a7-528b66a7258a@googlegroups.com> Subject: Re: GPSPhotoTagger - sqllite - jak wyciągnąć datę i czas From: McViking <mslusar@onet.pl> Injection-Date: Tue, 27 Aug 2013 23:37:38 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit