[Fossgis-talk] Präzision von Vektorkarten in GRASS GIS

Christoph Heibl christoph.heibl at gmx.net
Di Feb 22 16:31:21 CET 2011


Hallo Markus,

On Feb 22, 2011, at 8:44 AM, Markus Neteler wrote:

> Hallo Christoph,
> 
> bitte schicke ein paar Punkte zum "Spielen"...

echo "-71.3876471914375,-30.0016908798727
-71.3822639370486,-30.0016908798727
-71.368357196544,-29.9909243710949" | v.in.ascii --o out=xx fs=,

Mit diesen Punkten (liegen an der Westküste Südamerikas) kann man das Phänomen nachstellen.

Zwischenzeitlich hab ich rausgefunden, dass das Rastergrid gewahrt bleibt, wenn ich die -a Option von g.region benutze. Damit konnte ich das unten beschriebene Problem lösen. 

Allerdings frage ich mich nun, wie ich die Rasterzellen definiert, bwz. deren Werte bestimmt werden:

echo "-71.3876,-30.0017" | v.in.ascii --o out=xx fs=,
v.buffer --o in=xx out=buf buffer=0.05
g.region vect=buf res=0:00:30
d.rast <irgendeine_rasterkarte>
d.vect xx

zentriert das Rastergrid auf den Punkt -71.3876,-30.0017. Dabei müssen wohl die Rasterwerte neuberechnet werden. Ich gehe davon aus, dass jeder Rasterwert mit den Koordinaten der Mitte der Rasterzelle verknüpft ist und bei einer Verschiebung des Grids der neue Wert der Zellen durch jeden (ehemaligen) Punkt bestimmt wird, der in der (neuen) Zelle zu liegen kommt. Das hat unter anderem den Effekt, dass sich die Grenze zu NULL-Werten (Küstenlinien, etc.) und die Position hinsichtlich anderer Vektorobjekte verändern. Übersehe ich einen wichtigen Punkt, wenn ich sage, das Verhalten von g.region mit a-Flag sollte default sein, weil es prinzipiell höhere Konsistenz mit den anderen Karten im Mapset erhält?

Grüße,
Christoph


> 
> ciao
> Markus
> 
> -- 
> http://gis.cri.fmach.it/
> 
> 2011/2/20 Christoph Heibl <christoph.heibl at gmx.net>:
>> Hallo zusammen,
>> 
>> ich habe in GRASS ein "Phänomen" entdeckt, aus dem ich nicht so ganz schlau werde:
>> 
>> Ich habe eine Vektorkarte mit 2000 Punkten, die ich als ASCII-file einlese. Die Koordinaten sind dabei auf 4 Dezimalstellen gerundet. Wenn ich nun die Auflösung auf 2 Gradminuten setze und die Vektorpunkte im Monitor auf eine beliebige Rasterkarte plotte, erhalte ich genau das Bild, das ich erwarte: Die Punkte liegen zufällig verteilt (im Bezug auf die Rasterzellen) im Raum.
>> 
>> Wenn ich das Ganze mit einer Auflösung von 1 Gradminute (oder weniger) wiederhole, bietet sich ein anderes Bild: Der Großteil der Vektorpunkte ist nun auf einen von vier Rasterzellen gebildeten Eckpunkt gerutscht, wird also wie magnetisch auf das Gitter gezogen. (so sieht das aus: http://www.christophheibl.de/punkte.gif)
>> 
>> Mein erster Verdacht war, dass hier die Präzison von vier Dezimalstellen nicht mehr ausreichend war, um die Punkte in der neuen Auflösung zu platzieren und dass sie deshalb auf eine "default"-Position geschoben werden. Wenn ich allerdings beliebig viele Nullen oder eine 1er-Periode an die Koordinaten anhänge, gibt sich dasselbe Bild. Es scheint also nicht an der fehlenden Präzision der Koordinaten zu liegen. Aber woran dann?
>> 
>> Kann mir hier jemand auf die Sprünge helfen?
>> 
>> Viele Grüße
>> Christoph
>> 
>> Anbei noch meine Projektionsinfo:
>> 
>> g.proj -p
>> -PROJ_INFO-------------------------------------------------
>> name       : Lat/Lon
>> proj       : ll
>> datum      : wgs84
>> ellps      : wgs84
>> no_defs    : defined
>> -PROJ_UNITS------------------------------------------------
>> unit       : degree
>> units      : degrees
>> meters     : 1.0
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -------------------------------------------
>> Christoph Heibl
>> 
>> Marktplatz 6
>> 83607 Holzkirchen
>> 
>> E-Mail:     christoph.heibl at gmx.net
>> Festnetz:   +49 8024 470 72 72
>> Mobil:      +49 176 23 86 57 92
>> 
>> www.christophheibl.de
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Fossgis-talk-liste mailing list
>> Fossgis-talk-liste at fossgis.de
>> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>>