Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
7.3. Lektion: Terränganalys
Vissa typer av rasters gör att du kan få mer insikt i den terräng som de representerar. Digitala höjdmodeller (DEM) är särskilt användbara i detta avseende. I den här lektionen kommer du att använda verktyg för terränganalys för att ta reda på mer om studieområdet för den föreslagna bostadsutvecklingen från tidigare.
Målet för den här lektionen: Att använda verktyg för terränganalys för att få fram mer information om terrängen.
7.3.1. ★☆☆ Följ med: Beräkning av en Hillshade
Vi kommer att använda samma DEM-lager som i föregående lektion. Om du börjar det här kapitlet från början, använd Browser-panelen och ladda raster/SRTM/srtm_41_19.tif
.
DEM-skiktet visar terrängens höjd, men det kan ibland verka lite abstrakt. Det innehåller all 3D-information om terrängen som du behöver, men det ser inte ut som ett 3D-objekt. För att få en bättre bild av terrängen kan man beräkna en hillshade, som är ett raster som kartlägger terrängen med hjälp av ljus och skugga för att skapa en 3D-liknande bild.
Vi kommer att använda algoritmerna i menyn
.Klicka på
-menynMed algoritmen kan du ange ljuskällans position: Azimuth har värden från 0 (norr) till 90 (öst), 180 (syd) och 270 (väst), medan Vertical angle anger hur högt ljuskällan är (0 till 90 grader).
Vi kommer att använda följande värden:
Z-faktor vid
1,0
Azimut (horisontell vinkel) vid ``300,0``°
Vertikal vinkel vid
40,0
°
Spara filen i en ny mapp
exercise_data/raster_analysis/
med namnethillshade.tif
Klicka slutligen på Run
Du kommer nu att ha ett nytt lager som heter hillshade och som ser ut så här:

Det ser snyggt och 3D ut, men kan vi förbättra det här? På egen hand ser bergsskuggan ut som en gipsavgjutning. Kan vi inte använda den tillsammans med våra andra, mer färgstarka raster på något sätt? Naturligtvis kan vi det, genom att använda hillshade som ett överlägg.
7.3.2. ★☆☆ Följ med: Använda en Hillshade som ett överlägg
En hillshade kan ge mycket användbar information om solljuset vid en viss tidpunkt på dagen. Men den kan också användas för estetiska ändamål, för att få kartan att se bättre ut. Nyckeln till detta är att ställa in hillshade till att vara mestadels transparent.
Ändra symbologin för det ursprungliga srtm_41_19-lagret så att det använder Pseudocolor-schema som i föregående övning
Dölj alla lager utom lagren srtm_41_19 och hillshade
Klicka och dra srtm_41_19 så att det hamnar under hillshade-skiktet i Layers-panelen
Ställ in skiktet hillshade på att vara transparent genom att klicka på fliken Transparency i skiktets egenskaper
Ställ in Global opacitet till
50%
.Du kommer att få ett resultat som detta:
Stäng av och sätt på lagret hillshade i panelen Layers för att se vilken skillnad det gör.
Genom att använda en hillshade på det här sättet kan man förstärka landskapets topografi. Om du inte tycker att effekten är tillräckligt stark kan du ändra transparensen i hillshade-lagret, men ju ljusare hillshaden blir, desto svagare blir färgerna bakom den. Du måste hitta en balans som fungerar för dig.
Kom ihåg att spara projektet när du är klar.
7.3.3. Följ med på resan: Hitta de bästa områdena
Tänk tillbaka på fastighetsmäklarproblemet, som vi senast behandlade i lektionen Vektoranalys. Låt oss föreställa oss att köparna nu vill köpa en byggnad och bygga en mindre stuga på fastigheten. På södra halvklotet vet vi att en idealisk tomt för exploatering måste ha områden som:
är norrvända
med en lutning på mindre än 5 grader
Men om lutningen är mindre än 2 grader spelar aspekten ingen roll.
Låt oss hitta de bästa områdena för dem.
7.3.4. ★★☆ Följ med: Beräkna lutningen
Slope informerar om hur brant terrängen är. Om du t.ex. vill bygga hus på marken där, behöver du mark som är relativt platt.
För att beräkna lutningen måste du använda algoritmen
i .Öppna algoritmen
Välj srtm_41_19 som Elevation layer
Håll Z-faktorn på
1,0
Spara utdata som en fil med namnet
slope.tif
i samma mapp somhillshade.tif
Klicka på Run
Nu ser du terrängens lutning, där varje pixel har motsvarande lutningsvärde. Svarta pixlar visar platt terräng och vita pixlar brant terräng:

7.3.5. ★★☆ Prova själv: Beräkning av aspekten
Aspect är den kompassriktning som terrängens lutning vetter mot. En aspekt på 0 innebär att sluttningen är nordvänd, 90 östvänd, 180 sydvänd och 270 västvänd.
Eftersom denna studie äger rum på södra halvklotet bör fastigheter helst byggas på en sluttning som vetter mot norr så att de kan hålla sig i solljuset.
Använd algoritmen Aspect i för att få lagret aspect.tif
sparat tillsammans med slope.tif
.
Svar
Ställ in din Aspect-dialog så här:

Ditt resultat:
7.3.6. ★★☆ Följ med: Hitta den norrvända aspekten
Nu har du raster som visar både lutning och aspekt, men du har inget sätt att veta var de ideala förhållandena uppfylls på en gång. Hur skulle den här analysen kunna göras?
Svaret finns i Raster calculator.
QGIS har olika rasterkalkylatorer tillgängliga:
Under bearbetning:
Varje verktyg leder till samma resultat, men syntaxen kan vara något annorlunda och tillgången till operatörer kan variera.
Vi kommer att använda
i Processing ToolboxÖppna verktyget genom att dubbelklicka på det.
I den övre vänstra delen av dialogrutan listas alla inlästa rasterlager som
namn@N
, därnamn
är lagrets namn ochN
är bandet.I den övre högra delen ser du en mängd olika operatörer. Stanna upp ett ögonblick och tänk att ett raster är en bild. Du ska se det som en 2D-matris fylld med siffror.
Nord ligger på 0 (noll) grader, så för att terrängen ska vara vänd mot norr måste dess aspekt vara större än 270 grader eller mindre än 90 grader. Därför är formeln:
aspect@1 <= 90 OR aspect@1 >= 270
Nu måste du ställa in rasterdetaljerna, t.ex. cellstorlek, utsträckning och CRS. Detta kan göras manuellt eller automatiskt genom att välja ett
Reference layer
. Välj det sista alternativet genom att klicka på knappen … bredvid parametern Reference layer(s).I dialogrutan väljer du skiktet aspect, eftersom vi vill få ett skikt med samma upplösning.
Spara lagret som
aspect_north.tif
.Dialogrutan bör se ut som följer:
Klicka slutligen på Run.
Ditt resultat kommer att bli detta:

Utgångsvärdena är 0
eller 1
. Vad innebär detta? För varje pixel i rastret returnerar formeln vi skrev om den matchar villkoren eller inte. Slutresultatet blir därför False (0) och True (1).
7.3.7. ★★★☆ Prova själv: Fler kriterier
Nu när du har gjort aspekten skapar du två nya lager från DEM.
Den första ska identifiera områden där lutningen är mindre än eller lika med
2
graderDen andra är liknande, men lutningen bör vara mindre än eller lika med
5
grader.Spara dem under
exercise_data/raster_analysis
somslope_lte2.tif
ochslope_lte5.tif
.
Svar
Ställ in din Raster calculator dialogruta med:
följande uttryck:
lutning@1 <= 2
lutnings
-skiktet som :guilabel:Reference layer(s)
För 5-gradersversionen ersätter du
2
i uttrycket och filnamnet med5
.
Dina resultat:
2 grader:
5 grader:
7.3.8. ★★☆ Följ med: Kombinera resultat från rasteranalys
Nu har du genererat tre rasterlager från DEM:
aspect_north: terräng vänd mot norr
slope_lte2: lutning lika med eller under 2 grader
slope_lte5: lutning lika med eller under 5 grader
Där villkoret är uppfyllt är pixelvärdet 1
. På andra ställen är det 0
. Om du multiplicerar dessa raster kommer därför de pixlar som har värdet 1
för alla att få värdet 1
(resten får 0
).
De villkor som ska uppfyllas är:
vid eller under 5 graders lutning, terrängen måste vara vänd mot norr
vid eller under 2 graders lutning spelar det ingen roll i vilken riktning terrängen vetter.
Därför måste du hitta områden där lutningen är på eller under fem grader `` OCH`` terrängen vetter mot norr, ELLER
lutningen är på eller under 2 grader. Sådan terräng skulle vara lämplig för utveckling.
För att beräkna de områden som uppfyller dessa kriterier:
Öppna Raster calculator igen
Använd detta uttryck i Expression:
( aspect_north@1 = 1 AND slope_lte5@1 = 1 ) OR slope_lte2@1 = 1
Sätt Reference layer(s) parametern till
aspect_north
(det spelar ingen roll om du väljer en annan - de har alla beräknats frånsrtm_41_19
)Spara utdata under
exercise_data/raster_analysis/
somall_conditions.tif
Klicka på Run
Resultatet blev..:

Råd
De föregående stegen kunde ha förenklats med hjälp av följande kommando:
((aspect@1 <= 90 OR aspect@1 >= 270) AND slope@1 <= 5) OR slope@1 <= 2
7.3.9. ★★☆ Följ med: Förenkling av Raster
Som du kan se på bilden ovan har den kombinerade analysen gett oss många, mycket små områden där villkoren är uppfyllda (i vitt). Men dessa är egentligen inte användbara för vår analys, eftersom de är för små för att bygga något på. Låt oss göra oss av med alla dessa små oanvändbara områden.
Öppna verktyget Sieve ( i Processing Toolbox)
Ställ in Input file till
all_conditions
, och Sieved tillall_conditions_sieve.tif
(underexercise_data/raster_analysis/
).Ställ in Threshold till 8 (minst åtta sammanhängande pixlar) och kontrollera Use 8-connectedness.
När bearbetningen är klar kommer det nya lagret att laddas.
Vad är det som händer? Svaret ligger i den nya rasterfilens metadata.
Visa metadata under fliken Information i dialogrutan Layer Properties. Titta på värdet
STATISTICS_MINIMUM
:Detta raster, liksom det som det härrör från, borde bara innehålla värdena ”1” och ”0”, men det har också ett mycket stort negativt tal. Undersökning av data visar att detta nummer fungerar som ett nollvärde. Eftersom vi bara är ute efter områden som inte har filtrerats bort, kan vi sätta dessa nollvärden till noll.
Öppna Raster Calculator, och skapa detta uttryck:
(all_conditions_sieve@1 <= 0) = 0
Detta innebär att alla icke-negativa värden bibehålls och att de negativa talen sätts till noll, vilket innebär att alla områden med värdet
1
förblir intakta.Spara utdata under
exercise_data/raster_analysis/
somall_conditions_simple.tif
.
Din utdata ser ut så här:

Det här är vad som förväntades: en förenklad version av de tidigare resultaten. Kom ihåg att om resultaten du får från ett verktyg inte är vad du förväntade dig kan det vara viktigt att titta på metadata (och vektorattribut, om tillämpligt) för att lösa problemet.
7.3.10. ★★☆ Följ med: Omklassificering av Raster
Vi har använt Raster calculator för att göra beräkningar på rasterlager. Det finns ett annat kraftfullt verktyg som vi kan använda för att extrahera information från befintliga lager.
Tillbaka till ”aspekt”-lagret. Vi vet nu att det har numeriska värden inom ett intervall från 0 till 360. Vad vi vill göra är att omklassificera detta skikt till andra diskreta värden (från 1 till 4), beroende på aspekten:
1 = Norr (från 0 till 45 och från 315 till 360);
2 = Öst (från 45 till 135)
3 = Syd (från 135 till 225)
4 = Väst (från 225 till 315)
Denna operation kan uppnås med rasterkalkylatorn, men formeln skulle bli mycket mycket stor.
Det alternativa verktyget är verktyget Reclassify by table i i Processing Toolbox.
Öppna verktyget
Välj aspect som
Input raster layer
Klicka på … i Reclassification table. En tabellliknande dialogruta öppnas där du kan välja minimi-, maximi- och nya värden för varje klass.
Klicka på knappen Add row och lägg till 5 rader. Fyll i varje rad enligt följande bild och klicka på OK:
Den metod som används av algoritmen för att behandla tröskelvärdena för varje klass definieras av Range boundaries.
Spara skiktet som
reclassified.tif
i mappenexercise_data/raster_analysis/
Klicka på Run
Om du jämför det ursprungliga aspect-skiktet med det reclassified-skikt du har fått, är det inga stora skillnader. Men genom att titta på legenden kan du se att värdena går från 1
till 4
.
Låt oss ge detta lager en bättre stil.
Öppna panelen Layer Styling
Välj Paletted/Unique values, istället för Singleband gray
Klicka på knappen Classify för att automatiskt hämta värdena och tilldela dem slumpmässiga färger:
Utdata ska se ut så här (du kan ha olika färger eftersom de har genererats slumpmässigt):

Med denna omklassificering och den palettstil som tillämpas på lagret kan du omedelbart skilja mellan aspektområdena.
7.3.11. ★☆☆ Följ med: Förfrågan på raster
Till skillnad från vektorlager har rasterlager inte någon attributtabell. Varje pixel innehåller ett eller flera numeriska värden (enbands- eller flerbandsraster).
Alla rasterskikt som vi använde i den här övningen består av bara ett band. Beroende på skiktet kan pixelvärdena representera höjd-, aspekt- eller lutningsvärden.
Hur kan vi fråga rasterlagret för att få värdet på en pixel? Vi kan använda knappen Identify Features!
Välj verktyget i verktygsfältet Attribut.
Klicka på en slumpmässig plats i skiktet srtm_41_19. Identify Results visas med värdet på bandet på den klickade platsen:
Du kan ändra utmatningen i panelen Identify Results från det aktuella
träd
-läget till etttabell
-läge genom att välja Table i menyn View längst ned i panelen:
Att klicka på varje pixel för att få fram värdet på rastret kan bli irriterande efter ett tag. Vi kan använda pluginet Value Tool för att lösa detta problem.
Gå till
På fliken All skriver du
värde t
i sökrutanVälj insticksprogrammet Value Tool, tryck på Install Plugin och sedan på Close i dialogrutan.
Den nya Value Tool-panelen kommer att visas.
Tips
Om du stänger panelen kan du öppna den igen genom att aktivera den i
eller genom att klicka på ikonen i verktygsfältet.För att använda pluginet behöver du bara markera kryssrutan Enable och se till att lagret
srtm_41_19
är aktivt (markerat) i panelen Layers.Flytta markören över kartan för att se värdet på pixlarna.
Men det finns mer. Med tillägget Value Tool kan du fråga alla aktiva rasterlager i panelen Layers. Aktivera lagren aspect och slope igen och håll muspekaren över kartan:
7.3.12. Sammanfattningsvis
Du har sett hur man kan härleda alla typer av analysprodukter från en DEM. Dessa inkluderar beräkningar av kulleffekt, lutning och aspekt. Du har också sett hur du använder rasterkalkylatorn för att ytterligare analysera och kombinera dessa resultat. Slutligen har du lärt dig hur du omklassificerar ett lager och hur du söker efter resultaten.
7.3.13. Vad händer härnäst?
Nu har du två analyser: vektoranalysen som visar de potentiellt lämpliga tomterna, och rasteranalysen som visar den potentiellt lämpliga terrängen. Hur kan dessa kombineras för att komma fram till ett slutresultat för det här problemet? Det är ämnet för nästa lektion, som börjar i nästa modul.