WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

gpx-Datei in Matlab einlesen

 

paul87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2010, 23:29     Titel: gpx-Datei in Matlab einlesen
  Antworten mit Zitat      
Hallo Leute,

ich habe ein Problem und bin schon am verzweifeln. Ich bin ein Matlab "Anfänger".

Ich möchte eine .gpx oder schon umgewandelt in .txt Datei in Matlab einlesen. Was für Daten diese enthält, könnt ihr im Anhang sehen.

Diese Dabei soll eingelesen werden und am Ende benötige ich quasi 2 Spalten mit den "lon"-Koordinaten und eine mit den "lat"-Koordinaten.

Das Einlesen habe ich über verschiedene Funktionen hinbekommen. Jedoch habe ich keine Ahnung wie ich die einzelnen Sachen voneinander trennen kann.

Vielleicht kann mir einer von euch helfen und hilfreiche Tipps geben. Vielen Dank.

test.txt
 Beschreibung:
Diese Datei wurde erstellt durch die Seite www.openrouteservice.org und stellt die Strecke von Bochum nach Dortmund in GPS Koordinaten dar.

Download
 Dateiname:  test.txt
 Dateigröße:  19.36 KB
 Heruntergeladen:  558 mal


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.12.2010, 09:30     Titel:
  Antworten mit Zitat      
Es gibt das hier auf dem FileExchange. Schon mal probiert?

http://www.mathworks.com/matlabcent.....nge/24154-gpx-file-reader

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 15.12.2010, 09:39     Titel:
  Antworten mit Zitat      
Hi,

ich habe gerade versucht, einen Teil der angehangene Datei zu lesen. Als ersten Schritt würde ich aus der Textdatei den Header entfernen, so dass du nur die Zeilen mit den Koordinaten vorliegen hast. Die Datei kannst du dann mit einem

Code:

f = fopen('test.txt')
 


öffnen.

Die Zeilen liest du folgendermaßen aus:

Code:

values = textscan(f,'%s%f%s%f%s','delimiter','"')
 


Die Werte liegen dir nun in den Zellen 2 und 4 vor.

Hoffe das hilft dir weiter....
Private Nachricht senden Benutzer-Profile anzeigen
 
paul87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2010, 21:28     Titel:
  Antworten mit Zitat      
Vielen Dank für Eure Hilfe.

Zitat:
Es gibt das hier auf dem FileExchange. Schon mal probiert?

http://www.mathworks.com/matlabcent.....nge/24154-gpx-file-reader

Andreas


Danke für den Link, daraus kann ich mir einige Teile entnehmen, aber alles verstehe ich leider nicht.

Zitat:
Hi,

ich habe gerade versucht, einen Teil der angehangene Datei zu lesen. Als ersten Schritt würde ich aus der Textdatei den Header entfernen, so dass du nur die Zeilen mit den Koordinaten vorliegen hast. Die Datei kannst du dann mit einem

Code:

f = fopen('test.txt')



öffnen.

Die Zeilen liest du folgendermaßen aus:

Code:

values = textscan(f,'%s%f%s%f%s','delimiter','"')



Die Werte liegen dir nun in den Zellen 2 und 4 vor.

Hoffe das hilft dir weiter....


Das habe ich vorher auch schon probiert. Jetzt habe ich wie in deinem Code die Matrix "values". Wie kann ich die denn jetzt aber auslesen?

Code:
values(1,:)

ans =

    {1x1 cell}    [1]    {1x1 cell}    [0x1 double]    {0x1 cell}


Das kommt wenn ich in die Matrix will. Was mache ich falsch bzw. was verstehe ich da nicht?
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 16.12.2010, 09:44     Titel:
  Antworten mit Zitat      
Hallo Paul,
da es sich um eine XML Datei handelt, würde ich die auch genauso behandeln.

Mit folgendem Code werden die Attribute erstmal ausgegeben.
Du kannst die Ausgabe dann wie gewünscht abändern wie du es brauchst.

Code:

x_doc = xmlread('C:\test.txt');
x_root = x_doc.getFirstChild;
trkpt_nodes = x_root.getElementsByTagName('trkpt');

for i = 0 : trkpt_nodes.getLength - 1
   trkpt_element = trkpt_nodes.item(i);
   disp(trkpt_element.getAttribute('lon'));
   disp(trkpt_element.getAttribute('lat'));
end
 

_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 16.12.2010, 11:46     Titel:
  Antworten mit Zitat      
Die XML-Datei auch wie eine zu behandeln ist sicherlich die eleganteste Methode.

Trotzdem hier die Möglichkeit auf die Daten in der Zelle zuzugreifen, wenn du über einen textscan darauf zugreifen willst:

Anstatt runde, musst du geschweifte Klammern nutzen:

Code:


s =

<trkpt lon="7.2188361" lat="51.4854502"/>
<trkpt lon="7.2188361" lat="51.4845802"/>

>> v = textscan(s,'%s%f%s%f%s','delimiter','"')

v =

    {2x1 cell}    [2x1 double]    {2x1 cell}    [2x1 double]    {2x1 cell}

>> v{:,2}

ans =

    7.2188
    7.2188

>> v{:,4}

ans =

   51.4855
   51.4846

 


So kannst du dann auch die Längen- und Breitengrade in eine entsprechende Variable kopieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
paul87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2010, 21:12     Titel:
  Antworten mit Zitat      
Super!! Vielen Vielen Dank...

Ich glaub ich sollte mir unbedingt ein Buch zulegen.

Könnt ihr eins empfehlen?

Viele Grüße
 
bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 17.12.2010, 08:43     Titel:
  Antworten mit Zitat      
Sicherlich ist es hilfreich, wenn du bereits einige Erfahrungen in Sachen Programmierung gesammelt hast (C/C++, Java, etc.). So ist zumindest meine eigene Meinung. Smile

Ansonsten hat mir die MATLAB-Hilfe und dieses Forum immer gut geholfen. Das wichtigste ist aber wohl "Learning by doing"

Aber irgendwo im Forum wird es wahrscheinlich auch Hinweise auf geeignete Einsteiger-Bücher geben.
Private Nachricht senden Benutzer-Profile anzeigen
 
paul87
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 02.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2011, 15:29     Titel:
  Antworten mit Zitat      
Hallo leute,

nachdem ich nun die datei einlesen kann und die lon und lat werte habe, muss ich diese umrechnen.

in x un y koordinaten. aber noch wichtiger sind die höhendaten, also die z koordinate. kann ich die auch aus den lon und lat koordinaten berechnen? oder brauche ich dafür wieder zusätzliche informationen?

frohes neues allen hier!! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
bushmills
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 07.10.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 10.01.2011, 11:04     Titel:
  Antworten mit Zitat      
Leider kann ich deine Textdatei nicht mehr öffnen und daher weiß ich nicht genau, wo dein Problem liegt.
Musst du die Koordinaten von Dezimalgrad in UTM umrechnen? Liegen dir denn weiterhin die z-Koordinaten vor? Diese sollten bereits metrisch vorliegen...

Falls die nicht vorliegen, kannst du die auch nicht aus Long und Lat bestimmen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.