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

Polygon aus lon/lat Gebiet ausschneiden

 

Malena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.04.2013, 11:39     Titel: Polygon aus lon/lat Gebiet ausschneiden
  Antworten mit Zitat      
Hallo,

ich habe ein Gebiet, in dem ich jeden km einen Gitterpunkt habe. Die Gitterpunktsangaben sind als Längen- und Breitenkreisangaben angegeben.
Aus diesem Gebiet soll ich ein Polygon ausschneiden um dann nur die entsprechenden Informationen zu verarbeiten und nicht das komplette Gebiet.

Kann mir jemand helfen?
Ich habe schon mit inpolygon versucht zu arbeiten, bin aber nicht weiter gekommen.

Vielen Dank im Vorraus.


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 19.04.2013, 20:34     Titel:
  Antworten mit Zitat      
*dein Code?
*deine Daten?
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Malena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2013, 15:10     Titel:
  Antworten mit Zitat      
Der code wird nicht weiterhelfen, da ich die Daten bisher nur einlese und die Breiten- und Längengrade umrechne.
Dennoch hier der Code:

Code:
load_ga('MRH_1km_1604');
latdec = memilatlon2dec(lat);
londec = memilatlon2dec(lon);
 


Und hier nun ein Ausschnitt der Daten:

'ANZAHL DER GITTERPUNKTE: NX3 =' 35 ', NX2 =' 43 ', NX1 =' 49
'BEZUGSPUNKT [dd.mmss]: BREITE =' 53.3304 ', LAENGE =' 9.5937
'DREHWINKEL DES GITTERS =' 0.0000
'NUMBER OF SURFACE COVER CLASSES = ' 36
'VEKTORIELLE Z-PUNKTE:' -20. 0. 20. 40. 60.
80. 100. 124. 152. 185.
224. 270. 324. 387. 461.
548. 650. 770. 911. 1077.
1272. 1501. 1770. 2086. 2457.
2893. 3405. 4007. 4714. 5545.
6521. 7521. 8521. 9521. 10521.
11521. 12521. 13521.
YXMIN= -27000. YYMIN= -21000.
II IJ YDX YDY ZSURF 1000 1100 1222 1300 2105 2106 2107 2122 2123 2220 2230 2240 2250 2712 2715 3100 3104 3138 3148 3500 3830 3863 4210 4211 4314 4340 5100 5200 5213 5300 5358 5656 5811 6005 6006 7010 LON. LAT.
0 0 1000. 1000. 33.74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.02 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.42 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.01 0.00 0.00 0.00 0.02 0.01 0.00 9.345031 53.212587
1 0 1000. 1000. 33.74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.02 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.42 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.01 0.00 0.00 0.00 0.02 0.01 0.00 9.354437 53.212606
2 0 1000. 1000. 33.74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.02 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.42 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.01 0.00 0.00 0.00 0.02 0.01 0.00 9.363844 53.212623
3 0 1000. 1000. 31.62 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.09 0.76 0.00 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 9.373251 53.212640
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.04.2013, 16:25     Titel:
  Antworten mit Zitat      
Hallo Malena,

In welcher Form liegen die Daten denn genau vor? Oder was liefert "memilatIon2dec" genau zurück?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Malena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2013, 16:38     Titel:
  Antworten mit Zitat      
memilatlon2dec rechnet die Koordinaten aus dd.mmsss in dd.ddddd um (also aus Gradminuten/sekunden in Dezimalgrad).
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.04.2013, 23:08     Titel:
  Antworten mit Zitat      
Hallo Malena,

Ich weiß nicht, was "dd.mmsss" und "dd.ddddd" bedeutet.
Wichtig wäre es zu erfahren, ob die Daten z.B. als [N x 2] Matrix von Typ Double vorliegen. Oder ob das Cell-Strings, Structs, einzelne Vektoren oder was auch immer sind.

Du könntest auch zeigen, was Du genau mit INPOLYGON versucht hast und erklären, welche Probleme es genau gab.
Bisher gibt es noch nicht genügend Informationen, um Dir helfen zu können.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 23.04.2013, 09:41     Titel:
  Antworten mit Zitat      
Ich sehe in deinen Daten die Koordiaten nicht Sad
Was sollen denn die Z-Punkte?
Warum sind so viele Nullen in deinen Daten?
Soll "II IJ YDX YDY ZSURF 1000 1100 1222 1300 2105 2106 2107 2122 2123 2220 2230 2240 2250 2712 2715 3100 3104 3138 3148 3500 3830 3863 4210 4211 4314 4340 5100 5200 5213 5300 5358 5656 5811 6005 6006 7010 LON. LAT." die Beschreibung der folgenden Daten sein?

Sorry, aber sollen wir dir jetzt auch beim Aufbereiten helfen?



[edit] mit dd.mmsss ist wohl eher Grad° Minute' Sekunde'' gemeint, welche in Grad (mit vielen vielen Dezimalstellen) umgewandelt werden.

Aber he, ohne Code ist das alles nur Mutmaßung.[/edit]
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Malena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2013, 10:17     Titel:
  Antworten mit Zitat      
Tut mir leid, dass meine Informationen so stückchenweise kommen.

Mein file, den ich einlese besteht als erstes aus einem header:

'ANZAHL DER GITTERPUNKTE: NX3 =' 35 ', NX2 =' 43 ', NX1 =' 49
'BEZUGSPUNKT [dd.mmss]: BREITE =' 53.3304 ', LAENGE =' 9.5937
'DREHWINKEL DES GITTERS =' 0.0000
'NUMBER OF SURFACE COVER CLASSES = ' 36
'VEKTORIELLE Z-PUNKTE:' -20. 0. 20. 40. 60.
80. 100. 124. 152. 185.
224. 270. 324. 387. 461.
548. 650. 770. 911. 1077.
1272. 1501. 1770. 2086. 2457.
2893. 3405. 4007. 4714. 5545.
6521. 7521. 8521. 9521. 10521.
11521. 12521. 13521.
YXMIN= -27000. YYMIN= -21000.
II IJ YDX YDY ZSURF 1000 1100 1222 1300 2105 2106 2107 2122 2123 2220 2230 2240 2250 2712 2715 3100 3104 3138 3148 3500 3830 3863 4210 4211 4314 4340 5100 5200 5213 5300 5358 5656 5811 6005 6006 7010 LON. LAT.

Die Zeile beschreibt den Inhalt der Daten, die darunter folgen.

II IJ YDX YDY ZSURF 1000 1100 1222 1300 2105 2106 2107 2122 2123 2220 2230 2240 2250 2712 2715 3100 3104 3138 3148 3500 3830 3863 4210 4211 4314 4340 5100 5200 5213 5300 5358 5656 5811 6005 6006 7010 LON. LAT.

Meine Daten werden entsprechend schon so eingelesen, dass ich die z.B. die Angaben von II, IJ u.sw. als eigene Nx1 Matrix erhalte.
LON und LAT geben die Breiten- und Längengrade meiner Gitterpunkte an. Sind also jeweils die letzten beiden Zahlen einer Zeile.
Die Zahlen nach ZSURF sind die Beschreibungen meiner Landnutzungsklassen, die auf dem entsprechenden Gitterpunkten vorhanden sind. Daher kommt es, dass meine Daten viele Nullen enthalten, da nicht jede Landnutzungsklasse an jedem Gitterpunkt auftaucht.
Nach dem Einlesen erhalte ich eine eigene MxN Matrix meiner Landnutzungsklassen vom Format double.

Mit der Funktion memilatlon2dec rechne ich meiner Längen- und Breitengradangeben in Grad,Dezimalgrad um, da in meinem file LAT und LON als Grad*Minuten*Sekunden angeben ist und ich damit schwer weiter rechnen kann.

Mit Z-Punkten sind vertikale Gitterpunkte gemeint, die in dem Modell mit dem ich diesen File erstelle, verwendet wurde. Für mein Problem hier also nicht relevant.

Und hier einmal mein Code:
Mit inpolygon bekomme ich immer nur rechteckige Flächen. Ich benötige aber entweder ein Vieleck oder einen Kreis.

Code:

% Umrechnung der METRAS Längen- und Breitenangaben in Gradangaben

load_ga('MRH_1km_1604');
latdec = memilatlon2dec(lat);
londec = memilatlon2dec(lon);

% Gebiet eingrenzen und Grenzen setzten
int=[];
for help=1:length(londec)
  if londec(help) >= 9.599075 & londec(help) <= 10.32692 & ...
     latdec(help) >= 53.365304 & latdec(help) <= 53.744650
    int = [int, help];
  end
end

lons = londec(int);
maxlon = max(lons);
minlon = min(lons);

lats = latdec(int);
maxlat = max(lats);
minlat = min(lats);

% Darstellen der Gitterpunkte, die im Gebiet liegen

in = inpolygon(londec,latdec,lons,lats);
plot(lons,lats,londec(in),latdec(in),'r+',londec(~in),latdec(~in),'bo')
 
 
Malena

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2013, 11:57     Titel:
  Antworten mit Zitat      
Hallo ihr,

vielen Dank für eure Antworten und eure Bemühungen.
Durch Zufall bin ich jetzt auf meine Lösung gekommen.

Viele Grüße,
Malena
 
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.