[GRASS-de] r.surf.idw liefert nur ganzzahlige Werte

Robert Pollak robert.pollak at scietec.at
Mo Dez 4 15:44:46 CET 2006


Hallo Liste!

Als erst kurzzeitiger GRASS-User (GRASS 6.0.1) habe ich folgendes Problem:

Gegeben ist eine Datei, die zeilenweise x-, y- und z-Werte (Position und 
Höhe als Gleitkommazahl in Metern) enthält, die durch Leerzeichen 
getrennt sind.
Die Positionen liegen auf einem 10-Meter-Raster, viele Punkte sind 
ungültig und haben daher den z-Wert "1.70141E+038".

Ich möchte aus diesen Punkten eine raster map erstellen und diese dann 
durch Mittelwertbildung auf 20-Meter-Raster ausdünnen.

Das habe ich wie folgt versucht:

Ich habe
1.)
mit fgrep alle Punkte mit dem ungültigen z-Wert rausgeworfen.
(Es bleiben ca 250000 von 610000 Punkten.)

2.)
in der GRASS-Testlocation spearfish60 ein neues Mapset angelegt und 
dieses geöffnet.

3.)
mit v.in.ascii die Datei importiert.
(Dabei habe ich im GUI den field separator auf Leerzeichen und die 
"Number of column used as z coordiniate" auf 3 gestellt. Weiters habe 
ich "create 3D file" und "Do not create table in points mode" verwendet, 
obwohl ich aus der Doku nicht herausgefunden habe, was diese 
Einstellungen bedeuten.)
:
 > v.in.ascii input=W10_nomissing.xyz output=W10 format=point fs=  x=1 
y=2 z=3 cat=0 -z -t

4.)
die Region von der vector map übernommen und die Auflösung auf 10 Meter 
gestellt:
 > g.region vect=W10 res=10

5.)
die entsprechende raster map erzeugt:
 > v.to.rast input=W10 layer=1 output=W10 use=z value=1 rows=4096
(Data type DCELL und data range in r.info sehen ok aus.)

6.)
die Zielauflösung auf 20 Meter gestellt (g.region res=20) und dann die 
"inverse distance weighed average interpolation" verwendet:
 > r.surf.idw input=W10 output=W10_idw20


Wenn ich das Ergebnis W10_idw20 mit d.what.rast untersuche, sehe ich, 
dass die map nur ganzzahlige Werte enthält! (Auch r.info zeigt den 
Integer-Datentyp CELL.) Die Mittelwertbildung über die ursprünglichen 
Gleitkommawerte sollte aber i.A. Gleitkommazahlen ergeben. Werden diese 
gerundet? Warum? Wie muss ich vorgehen, damit r.surf.idw eine FCELL- 
oder DCELL-Map erzeugt?

Kann es was damit zu tun haben, dass nach Schritt 5 die raster map laut 
r.info "Number of Categories: 255" hat?
Aber es hilft auch nichts, vor dem r.surf.idw-Call mit "g.region res=10; 
r.resample input=W10 output=W10nocat" die Kategorien zu entfernen 
("Number of Categories: 0").

(Wenn ich stattdessen zum Ausdünnen r.resamp.rst verwende, ist das 
Ergebnis erwartungsgemäß nicht vom Typ CELL (nämlich FCELL).)

Beste Grüße,
Robert

-- 
______________________________________
Dipl.-Ing. Robert Pollak
SCIETEC Flussmanagement GmbH
Herrenstraße 4
A-4020 Linz

Phone:      [+43] (0)732 / 71 31 20 26
Fax:        [+43] (0)732 / 71 31 20 4
Cell Phone: [+43] (0)699 / 11 44 30 32

URL:    http://www.scietec.at
______________________________________