Seite 1 von 1
gps Daten einlesen
Verfasst: Samstag 5. März 2022, 21:23
von Krischu
Ich habe eine Datei mit GPS-Daten in folgendem Format:
Code: Alles auswählen
2022-02-24T14:09:07.000Z,49.8464488,13.1807312,526.521
Wie kann ich diese Daten in ein Array einesen, so daß ich sie als Datentypen weiter verwenden kann, z.B.
DATE ,LAT, LON, ELEV
Die drei Floatwerte würde ich noch hinbekommen, aber den DATE-String, den müßte ich noch weiter verhackstücken.
Wie kriege ich die kommaseparierten Werte am elegantesten in ein Array von unterschiedlich getypten Variablen? Insbesondere den String?
Re: gps Daten einlesen
Verfasst: Samstag 5. März 2022, 21:48
von Sirius3
pandas.read_csv
Re: gps Daten einlesen
Verfasst: Samstag 5. März 2022, 22:03
von Krischu
Sirius3 hat geschrieben: Samstag 5. März 2022, 21:48
pandas.read_csv
Gut. Habe ich mal eingebaut:
Code: Alles auswählen
df = pd.read_csv (r'./gps.txt',names=['DATE','LAT', 'LON','NN'], header=None)
print (df)
Code: Alles auswählen
DATE LAT LON NN
0 2022-02-24T14:09:07.000Z 52.846449 14.180731 516.521
1 2022-02-24T14:09:08.000Z 52.846451 14.180736 516.537
2 2022-02-24T14:09:09.000Z 52.846456 14.180743 516.398
3 2022-02-24T14:09:10.000Z 52.846461 14.180746 516.580
4 2022-02-24T14:09:11.000Z 52.846463 14.180747 516.525
.. ... ... ... ...
77 2022-02-24T14:10:24.000Z 52.846462 14.180794 520.922
78 2022-02-24T14:10:25.000Z 52.846462 14.180794 520.968
79 2022-02-24T14:10:26.000Z 52.846462 14.180794 520.983
80 2022-02-24T14:10:27.000Z 52.846462 14.180795 521.003
81 2022-02-24T14:10:28.000Z 52.846462 14.180795 521.024
[82 rows x 4 columns]
Jetzt will ich die Punkte LAT,LON plotten
Vorher hatte ich ein Array
und folgendes Stück Code:
Code: Alles auswählen
plt.scatter(*zip(*gps))
plt.title('GPS-Werteverteilung')
plt.xlabel('sek')
plt.ylabel('n')
plt.grid(True)
plt.show()
wie addressiere ich jetzt die LAT,LON Werte in df und kriege die in ein Array, auf das ich zip anwenden kann?
Re: gps Daten einlesen
Verfasst: Samstag 5. März 2022, 22:16
von Sirius3
Der erste Schritt wäre, das pandas-Tutorial durchzuarbeiten.
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 08:41
von __deets__
Du willst auch kein zip anwenden. Dieses Konstrukt hat ja nur aus einer Liste mit Tupeln zwei Listen gemacht, und die an Plot übergeben. Das kannst du jetzt direkt mit den Spalten machen. Kein Grund das mühselig so hinzufrickeln.
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 08:53
von Krischu
Guter Tipp,kein zip.
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 09:01
von __deets__
Reimt sich, und was sich reimt ist gut!
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 10:57
von Krischu
"Tutorial durcharbeiten". RTFM ist immer leicht zu sagen. Besser wäre es gewesen, vielleicht noch ein Tut zu empfehlen. W3Schools ist nicht sehr ergiebig.
Aber gut, hatte ja eine gewisse "erzieherische " Wirkung. Nicht helfen hilft auch zur Selbsthilfe.
Komme jetzt etwas weiter:
Code: Alles auswählen
import numpy as np
import matplotlib
import math as m
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline
df = pd.read_csv (r'./gps.txt',names=['DATE','LAT', 'LON','NN'], header=None)
#print (df)
#print(df.info())
#print(df.loc[:,'LAT'])
lat=df.loc[:,'LAT']
lon=df.loc[:,'LON']
print(lat[63])
print(lon[28])
Warum heißt die Funktion bloß "loc"? Printe ich "lat" alleine, bekomme eine 2spaltige Darstellung mit lfd. Index. Printe ich ``` lat [ i ] ``` , so bekomme ich ein einzelnes Array-Element.
Freue ich mich zwar drüber, verstehe es aber nicht.
OK, ist type "Series". Muß noch sowas wie:
Code: Alles auswählen
alat = np.array(lat.values.tolist())
alon = np.array(lon.values.tolist())
durchführen. Komme jetzt weiter.
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 11:14
von Sirius3
Was hat jetzt W3Schools damit zu tun?
Wenn ich von Tutorial schreibe, meine ich immer das offizielle:
https://pandas.pydata.org/pandas-docs/s ... 10min.html
oder speziell zum Plotten:
https://pandas.pydata.org/docs/getting_ ... tting.html
Der Index könnte z.B. die DATE-Spalte sein, damit man gleich die richtige x-Achse hat.
Re: gps Daten einlesen
Verfasst: Sonntag 6. März 2022, 15:51
von Krischu
W3Schools war das erste Pandas Tutorial, das ich fand. Danke für den Hinweis auf das offizielle.