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 Fig. 13.26). Resultaten skrivs till ett nytt rasterlager i ett GDAL-stött format.
i -menyn kan du utföra beräkningar på grundval av befintliga rasterpixelvärden (se
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:
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 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
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.

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 namnetDEM
att refereras till somDEM@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 )