Wichtig

Translation is a community effort you can join. This page is currently translated at 28.21%.

17.2. Rasteranalyse

17.2.1. Rasterrechner

The Raster Calculator in the Raster menu allows you to perform calculations on the basis of existing raster pixel values (see Abb. 17.22). The results are written to a new raster layer in a GDAL-supported format.

../../../_images/raster_calculator1.png

Abb. 17.22 Rasterrechner

The Raster bands list contains all loaded raster layers that can be used. To add a raster to the raster calculator expression field, double click its name in the Fields list. You can then use the operators to construct calculation expressions, or you can just type them into the box.

In the Result layer section, you will need to define an output layer. You can:

  • checkbox Create on-the-fly raster instead of writing layer to disk:

    • If unchecked, the output is stored on the disk as a new plain file. An Output layer path and an Output format are required.

    • If checked, a virtual raster layer, i.e. a raster layer defined by its URI and whose pixels are calculated on-the-fly, is created. It’s not a new file on disk; the virtual layer is still connected to the rasters used in the calculation meaning that deleting or moving these rasters would break it. A Layer name can be provided, otherwise the calculation expression is used as such. Removing the virtual layer from the project deletes it, and it can be made persistent in file using the layer Export ► Save as… contextual menu.

  • Define the Spatial extent of the calculation based on an input raster layer extent, or on custom X,Y coordinates

  • Set the Resolution of the layer using columns and rows number. If the input layer has a different resolution, the values will be resampled with the nearest neighbor algorithm.

  • With the checkbox Add result to project checkbox, the result layer will automatically be added to the legend area and can be visualized. Checked by default for virtual rasters.

The Operators section contains all available operators. To add an operator to the raster calculator expression box, click the appropriate button. Mathematical calculations (+, -, *, … ) and trigonometric functions (sin, cos, tan, … ) are available. Conditional expressions (=, !=, <, >=, … ) return either 0 for false or 1 for true, and therefore can be used with other operators and functions.

17.2.1.1. Raster calculator expression

The dialog

The Raster calculator expression dialog provides means to write expressions for pixels calculations between a set of raster layers.

../../../_images/raster_calculator_expression.png

Abb. 17.23 Raster Expression Calculator

  • Layers: Shows the list of all raster layers loaded in the legend. These can be used to fill the expression box (double click to add). Raster layers are referred by their name and the number of the band: layer_name@band_number. For instance, the first band from a layer named DEM will be referred as DEM@1.

  • Operators: contains a number of calculation operators for pixels manipulation:

    • Arithmetical: +, -, *, sqrt, abs, ln, …

    • Trigonometric: sin, cos, tan, …

    • Comparison: =, !=, <, >=, …

    • Logical: IF, AND, OR, (, )

    • Statistical: min, max

    To add an operator to the raster calculator expression box, click the appropriate button.

  • Raster calculator expression is the area in which the expression is composed

Beispiele

Höhenwerte von Meter zu Fuß konvertieren

Für das Erstellen eines Rasterlayers in Fuß aus einem Rasterlayer in Metern müssen Sie den Konvertierungsfaktor von Metern zu Fuß benutzen: 3.28. Der Ausdruck lautet:

"elevation@1" * 3.28

Eine Maske verwenden

Wenn Sie Teile des Rasterlayers ausmaskieren wollen, weil Sie nur an Höhenwerten über 0 Metern interessiert sind, können Sie den folgenden Ausdruck zum Erstellen einer Maske und zum gleichzeitigen Anwenden auf den Rasterlayer verwenden.

("elevation@1" >= 0) * "elevation@1"

Mit anderen Worten, für jede Zelle größer oder gleich 0 wird der bedingte Ausdruck mit 1 ausgewertet, was den ursprünglichen Wert durch Multiplikation mit 1 beibehält, ansonsten wird der bedingte Ausdruck zu 0 ausgewertet, was den Rasterwert auf 0 setzt und die Maske im laufenden Betrieb erzeugt.

Classify a Raster

Wenn Sie ein Raster klassifizieren wollen, sagen wir beispielsweise in zwei Höhenklassen, können Sie die folgenden Ausdrücke verwenden um ein Raster mit zwei Werten 1 und 2 in einem Schritt erstellen.

("elevation@1" < 50) * 1 + ("elevation@1" >= 50) * 2

In anderen Worten stelle den Wert für jede Zelle mit einem Wert kleiner 50 auf 1 ein. Für jede Zelle mit einem Wert größer als oder gleich 50 stelle den Wert 2 ein.

Or you can use the IF operator.

if ( elevation@1 < 50 , 1 , 2 )