Nächste Seite: Ergebniss Aufwärts: Lösung mit GRASS Vorherige Seite: Das Modul v.digit Inhalt Index

## Erzeugung einer Rastermaske aus der Vektordatei

Die Umwandlung der Vektordatei in eine Rastermaske geschieht durch das Kommando `v.to.rast`. Um die Ausgangsmaske maske nicht zu überschreiben wird als neuer Name für die Rasterdatei maske2 gewählt.

    GRASS:~ > v.to.rast

    OPTION:   vector input file
         key: input
    required: YES

    Enter the name of an existing vector file
    Enter 'list' for a list of existing vector files
    Hit RETURN to cancel request
    > maske
    <maske>

    OPTION:   raster output file
         key: output
    required: YES

    Enter a new raster file name
    Enter 'list' for a list of existing raster files
    Hit RETURN to cancel request
    > maske2
    <maske2>

    OPTION:   number of rows to hold in memory
         key: rows
     default: 512
    required: NO
    enter option >
    Loading vector information ...                  0 mins 00 secs
    Sorting areas by size ... 1 areas               0 mins 00 secs
    Pass #1 (of 3)
      Processing areas ... 1 areas                  0 mins 00 secs
      Processing lines ... 0 lines                  0 mins 00 secs
      Processing sites ... 0 sites                  0 mins 00 secs
      Writing raster map ...                        0 mins 01 sec
    Pass #2 (of 3)
      Processing areas ... 1 areas                  0 mins 00 secs
      Writing raster map ...                        0 mins 00 secs
    Pass #3 (of 3)
      Processing areas ... 1 areas                  0 mins 00 secs
      Writing raster map ...                        0 mins 00 secs
    Creating support files for raster map ...       0 mins 00 secs

    Raster map <maske2> done.
    Total processing time:     0 mins 01 sec

Jetzt kehren wir zum Anfang der Aufgabe zurück und erstellen eine neue Maske, die nur die Wasseroberfläche in 1883 m Höhe über dem Meeresspiegel bedeckt. Zuerst benutzen wir die gerade erzeugte maske2 um in `mapcalc` nur die Wasseroberfläche zu berücksichtigen. Dazu rufen wir `r.mask` auf.

    GRASS:~ > r.mask

    MASK:  Program for managing current GIS mask

    current mask:          none

    Options:
        1      Remove the current mask
        2      Identify a new mask
      RETURN   Exit program

    > 2

    Enter name of data layer to be used for mask
    Enter 'list' for a list of existing raster files
    Enter 'list -f' for a list with titles
    Hit RETURN to cancel request
    > maske2

Im folgenden Menü können den verschiedenen Ebenen der Rasterdatei nummerische Werte zugewiesen werden. Der Einfachheit halber wird der fünften Ebene mask der Wert 5 zugeteilt.

    IDENTIFY THOSE CATEGORIES TO BE INCLUDED IN THE MASK

    OLD CATEGORY NAME                      CAT
                                           NUM

      . . . . . . . . . . . . . . . . .   0     0____
      . . . . . . . . . . . . . . . . .   1     0____
      . . . . . . . . . . . . . . . . .   2     0____
      . . . . . . . . . . . . . . . . .   3     0____
      . . . . . . . . . . . . . . . . .   4     0____
    mask  . . . . . . . . . . . . . . .   5     5____

    Next category: end__  (0 thru 6)

Jetzt wird nocheinmal der `mapcalc` Befehl für die Rasterdatei `crater1` aufgerufen und man erhält die gewünschte Wasseroberfläche als Rasterdatei surface.

    GRASS:~ > r.mapcalc surface="if((crater1 <= 1883),1,null())"

    EXECUTING mask = ...  100%
    CREATING SUPPORT FILES FOR ergebnis
    range: 1 1

Abbildung 8.6: Maskierte Wasseroberfläche des Kraters

Die Datei surface wird nun als neue Maske eingesetzt, nachdem die alte mask2 verworfen wurde.

    GRASS:~ > r.mask

    MASK:  Program for managing current GIS mask

    current mask:          <mask2@tutorial> in mapset <tutorial>
    masking category(ies): 5

    Options:
        1      Remove the current mask
        2      Identify a new mask
      RETURN   Exit program

    > 1

    MASK:  Program for managing current GIS mask

    current mask:          none

    Options:
        1      Remove the current mask
        2      Identify a new mask
      RETURN   Exit program

    > 2

    Enter name of data layer to be used for mask
    Enter 'list' for a list of existing raster files
    Enter 'list -f' for a list with titles
    Hit RETURN to cancel request
    > surface

    IDENTIFY THOSE CATEGORIES TO BE INCLUDED IN THE MASK

    OLD CATEGORY NAME                                  CAT
                                                       NUM

      . . . . . . . . . . . . . . . . . . . .   0     0____
      . . . . . . . . . . . . . . . . . . . .   1     1____

    Next category: end__  (0 thru 1)

    AFTER COMPLETING ALL ANSWERS, HIT <ESC><ENTER> TO CONTINUE
                    (OR <Ctrl-C> TO CANCEL)

Ein Aufruf der gesamten so maskierten Rasterdatei d.rast crater1 erzeugt nur noch die Wasserfläche im GRASS-Monitor (Abb. 8.6). Um die in crater1 gespeicherten Höheninformationen auf die Wasseroberfläche zurückzuführen, ziehen wir von der Höhe der Wasseroberfläche (1883 m) über dem Meeresspiegel jede Höhenangabe in jeder Rasterzelle der Datei crater1 ab. Sollten sich die Höhenangaben in Bereichen unter dem Meeresspiegel bewegen oder benutzt man eine andere lokale Referenzhöhe so zieht man natürlich die Höhenangaben des Seegrundes von der des Wasserspiegels ab. Das Ergebniss bleibt gleich, nur das Vorzeichen ändert sich.

    r.mapcalc volumen="1883 - crater1"

    EXECUTING volumen = ...  100%
    CREATING SUPPORT FILES FOR volumen
    range: 0 585

Das eigentliche Volumen wird mit dem Befehl r.volume ermittelt.

    GRASS:~ > r.volume volumen
    Complete ... 100%
    Volume report on data from volumen using clumps on MASK map

     Cat   Average  Data  # Cells       Centroid          Total
    Number in clump Total in clump  Easting   Northing    Volume

     1    329.32  19615517  59564  573090.40 4754376.55 17661187006.99
                                         Total Volume = 17661187006.99

Unterabschnitte

- Ergebniss

Nächste Seite: Ergebniss Aufwärts: Lösung mit GRASS Vorherige Seite: Das Modul v.digit Inhalt Index