Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

13.2. Rasteranalys

13.2.1. Rasterkalkylator

Med Raster Calculator i Raster-menyn kan du utföra beräkningar på grundval av befintliga rasterpixelvärden (se Fig. 13.26). Resultaten skrivs till ett nytt rasterlager i ett GDAL-stött format.

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

Fig. 13.26 Rasterkalkylator

Listan Raster bands innehåller alla inlästa rasterlager som kan användas. Om du vill lägga till ett raster i rasterkalkylatorns uttrycksfält dubbelklickar du på dess namn i listan Fields. Du kan sedan använda operatörerna för att konstruera beräkningsuttryck eller bara skriva in dem i rutan.

I avsnittet Resultatskikt måste du definiera ett utdataskikt. Det kan du göra:

  • checkbox Skapa raster i farten i stället för att skriva lagret till disken:

    • Om den inte är markerad lagras utdata på disken som en ny vanlig fil. En sökväg till Output layer och ett Output format krävs.

    • Om det är markerat skapas ett virtuellt rasterlager, dvs. ett rasterlager som definieras av sin URI och vars pixlar beräknas i realtid. Det är inte en ny fil på disken; det virtuella skiktet är fortfarande kopplat till de raster som används i beräkningen, vilket innebär att det skulle gå sönder om dessa raster raderades eller flyttades. En Layer name kan anges, annars används beräkningsuttrycket som sådant. Om det virtuella lagret tas bort från projektet raderas det, och det kan göras beständigt i filen med hjälp av lagrets Export ► Save as… kontextuella meny.

  • Definiera Rumslig utsträckning för beräkningen baserat på en utsträckning för ett rasterskikt eller på anpassade X,Y-koordinater

  • Ställ in Resolution för lagret med hjälp av kolumn- och radnummer. Om indataskiktet har en annan upplösning kommer värdena att omsamplas med närmaste grannar-algoritmen.

  • Med kryssrutan checkbox Add result to project läggs resultatlagret automatiskt till i legendområdet och kan visualiseras. Markerad som standard för virtuella raster.

Avsnittet Operators innehåller alla tillgängliga operatorer. Om du vill lägga till en operator i rasterkalkylatorns uttrycksruta klickar du på lämplig knapp. Matematiska beräkningar (+, -, *, … ) och trigonometriska funktioner (sin, cos, tan, … ) är tillgängliga. Villkorliga uttryck (=, !=, <, >=, … ) returnerar antingen 0 för falskt eller 1 för sant, och kan därför användas med andra operatorer och funktioner.

Se även

algoritmerna Rasterkalkylator och :ref:`qgisvirtualrastercalc

13.2.1.1. Uttryck för rasterkalkylator

Dialogen

Dialogen Raster calculator expression ger möjlighet att skriva uttryck för pixelberäkningar mellan en uppsättning rasterlager.

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

Fig. 13.27 Kalkylator för rasteruttryck

  • Lager: Visar en lista över alla rasterlager som laddats i legenden. Dessa kan användas för att fylla uttrycksfältet (dubbelklicka för att lägga till). Rasterskikt refereras till med sitt namn och bandets nummer: layer_name@band_number. Till exempel kommer det första bandet från ett lager med namnet DEM att refereras till som DEM@1.

  • Operators: innehåller ett antal beräkningsoperatorer för pixelmanipulation:

    • Aritmetiska: +, -, *, qrt, abs, ln, …

    • Trigonometriska: sin, cos, tan, …

    • Jämförelse: =, !=, <, >=, …

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

    • Statistik: min, max

    Om du vill lägga till en operator i uttrycksrutan för rasterkalkylatorn klickar du på lämplig knapp.

  • Rasterkalkylatoruttryck är det område där uttrycket är sammansatt

Exempel

Konvertera höjdvärden från meter till fot

Om du skapar ett höjdraster i fot från ett raster i meter måste du använda omvandlingsfaktorn för meter till fot: 3.28. Uttrycket är:

"elevation@1" * 3.28

Använda en mask

Om du vill maskera bort delar av ett raster, t.ex. för att du bara är intresserad av höjder över 0 meter, kan du använda följande uttryck för att skapa en mask och tillämpa resultatet på ett raster i ett steg.

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

Med andra ord, för varje cell som är större än eller lika med 0 utvärderas det villkorliga uttrycket till 1, vilket innebär att originalvärdet behålls genom att det multipliceras med 1. Annars utvärderas det villkorliga uttrycket till 0, vilket innebär att rastervärdet sätts till 0. Detta skapar masken i farten.

Klassificera ett raster

Om du vill klassificera ett raster, t.ex. i två höjdklasser, kan du använda följande uttryck för att skapa ett raster med de två värdena 1 och 2 i ett steg.

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

Med andra ord, för varje cell som är mindre än 50 sätts värdet till 1. För varje cell som är större än eller lika med 50 sätts värdet till 2.

Eller så kan du använda operatorn IF.

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