[GRASS-de] "Globale" intersection

Martin Bley martin.bley at bvl.bund.de
Mo Sep 24 16:33:04 CEST 2007


Liebe Liste,

ich beginne gerade damit, mich mit GRASS zu beschäftigen, weil ich folgende
Aufgabe habe:

Ich brauche für jeden Breitenkreis die Länge der vom Land überdeckten
Teile des Breitenkreises. Ich habe dazu ein Shapefile einer Weltkarte
importiert. Die Breitenkreise konstruiere ich mir mit Hilfe des ASCII
Importmoduls v.in.ascii. Die Eingabedatei sah anfangs so aus:

--Schnipp
ORGANIZATION:
DIGIT DATE:
DIGIT NAME:
MAP NAME:
MAP DATE:
MAP SCALE:    1
OTHER INFO:
ZONE:         0
MAP THRESH:   0.000000
VERTI:
L  2 1
 -180 0
 180 0
 1     1
--Schnapp

da ist leider erstmal nichts zu sehen. Wenn ich die Linie stückweise
zeichne klappt es

--Schnipp
L  2 1
 -180 0
 -100 0
 1     1
L  2 1
 -100 0
 0 0
 1     2
L  2 1
 0 0
 100 0
 1     3
L  2 1
 100 0
 180 0
 1     3
--Schnapp

Das Kommando 

v.overlay ainput=lat atype=line,area binput=World btype=area \
output=land operator=and olayer=1,0,0

schneidet mir sauber die "Ozeanstrecken" heraus. 

Wie kann ich mir nun die Summe der Längen der Teilstücke anzeigen
lassen? Die dbf Datei von "land" zeigt mir folgende Kopfzeilen

cat,N,11,0  a_cat,N,11,0    b_cat,N,11,0    b_ObjectID,N,11,0
b_CONTINEN,C,13 b_SQMI,N,20,6   b_SQKM,N,20,6

Das sind jeweils die Kontinente mit ihrer größe in SQKM, die von der
Linie geschnitten werden. Wie bekomme ich die Informationen über die
vorhandenen Liniensegmente?

Kann ich für die automatisierung diese Vorgangs auch mit Shell scripten
arbeiten?

Vielen Dank schonmal im Voraus.

Viele Grüße,
Martin

-- 
Dipl.-Ing.(FH) Martin Bley    Bundesamt für Verbraucherschutz
Tel.: +49 (0) 531 299 3561    und Lebensmittelsicherheit
Fax: +49 (0) 531 299 3002     Messeweg 11/12
http://www.bvl.bund.de        38104 Braunschweig