[FOSSGIS-Talk] GRASS v.overlay / clipping problem

Lars Lingner lars at lingner.eu
Mo Jun 23 15:14:06 CEST 2014


Hallo,

mit GRASS 6.4.3 versuche ich gerade Linien (isolinien6) zu clippen.
Meine Maske (germany_boundary) ist ein Polygon.

Wenn ich in QGis über die processing toolbox v.overlay aufrufe, bekomme
ich die geclippten Linien. Soweit so gut.

Beide Layer sind bereits in GRASS importiert.

die Kommandos aus dem QGis-Log:

g.proj -c proj4="+proj=longlat +datum=WGS84 +no_defs"

v.in.ogr min_area=0.0001 snap=-1
dsn="/tmp/processing/3cd5c3d6f68e463c80f913aa58b2142a"
layer=isoraster6lines1line output=tmp1403527312793 --overwrite -o

v.in.ogr min_area=0.0001 snap=-1 dsn="/path/to/isolinien/dummydaten"
layer=germany_boundary output=tmp1403527312794 --overwrite -o

g.region n=55.1175485 s=47.2701114 e=15.0419319 w=5.8663153 res=1

v.overlay ainput=tmp1403527312793 atype=line binput=tmp1403527312794
operator=and output=output8a5fffb95c4d4705ae0ebbf2cd2dad8e --overwrite

Das Clippen möchte ich automatisiert per (Python)Script ausführen. Hier
die einzelnen Kommandos:

# clipfile / cliplayer enthalten den Pfad zu den Dateien
...
grass.run_command('v.in.ogr', dsn=clipfile,  layer=cliplayer,
      output='germany', min_area=0.001, snap=-1, overwrite=True)

grass.run_command('g.region', n=55.1175485, s=47.2701114, e=15.0419319,
                   w=5.8663153, res=1)

grass.run_command('v.overlay', ainput='isoraster6_lines', atype='line',
                   binput='germany', out='isoraster6_lines_clipped',
                   operator='and', overwrite=True)
...

Hier wird nicht an der Kante des clipping layer geclipped. Die Kommandos
laufen ohne Fehler durch. Es werden lediglich Objekte entfernt die
keinen geschlossenen Linienzug bilden.

Wenn ich die Kommandos aus dem Logfile in die GRASS-Konsole copy/paste,
erhalte ich auch das gewünschte Ergebnis.

Wo gibt es denn hier einen Unterschied? Was übersehe ich?

Vielen Dank für Eure Tipps...

Lars