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 Raster ► Raster terrain analysis.

  1. Klicka på Hillshade-menyn

  2. Med 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).

  3. 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°

    ../../../_images/hillshade_explanation.png
  4. Spara filen i en ny mapp exercise_data/raster_analysis/ med namnet hillshade.tif

  5. Klicka slutligen på Run

Du kommer nu att ha ett nytt lager som heter hillshade och som ser ut så här:

../../../_images/hillshade_raster.png

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.

  1. Ändra symbologin för det ursprungliga srtm_41_19-lagret så att det använder Pseudocolor-schema som i föregående övning

  2. Dölj alla lager utom lagren srtm_41_19 och hillshade

  3. Klicka och dra srtm_41_19 så att det hamnar under hillshade-skiktet i Layers-panelen

  4. Ställ in skiktet hillshade på att vara transparent genom att klicka på fliken Transparency i skiktets egenskaper

  5. Ställ in Global opacitet till 50%.

    Du kommer att få ett resultat som detta:

    ../../../_images/hillshade_pseudocolor.png
  6. 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 Slope i Processing ► Raster terrain analysis.

  1. Öppna algoritmen

  2. Välj srtm_41_19 som Elevation layer

  3. Håll Z-faktorn1,0

  4. Spara utdata som en fil med namnet slope.tif i samma mapp som hillshade.tif

  5. 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:

../../../_images/slope_raster.png

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 Processing ► Raster terrain analysis för att få lagret aspect.tif sparat tillsammans med slope.tif.

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:

  • Raster ► Rasterkalkylator

  • Under bearbetning:

    • Rasteranalys ► Rasterkalkylator

    • GDAL ► Raster diverse ► Raster kalkylator

    • SAGA ► Rasterkalkyl ► Rasterkalkylator

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 Raster Analysis ► Raster calculator i Processing Toolbox

  1. Öppna verktyget genom att dubbelklicka på det.

    • I den övre vänstra delen av dialogrutan listas alla inlästa rasterlager som namn@N, där namn är lagrets namn och N ä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.

  2. 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
    
  3. 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).

  4. I dialogrutan väljer du skiktet aspect, eftersom vi vill få ett skikt med samma upplösning.

  5. Spara lagret som aspect_north.tif.

    Dialogrutan bör se ut som följer:

    ../../../_images/raster_calculator.png
  6. Klicka slutligen på Run.

Ditt resultat kommer att bli detta:

../../../_images/aspect_result.png

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 grader

  • Den andra är liknande, men lutningen bör vara mindre än eller lika med 5 grader.

  • Spara dem under exercise_data/raster_analysis som slope_lte2.tif och slope_lte5.tif.

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:

  1. Öppna Raster calculator igen

  2. Använd detta uttryck i Expression:

    ( aspect_north@1 = 1 AND slope_lte5@1 = 1 ) OR slope_lte2@1 = 1
    
  3. 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ån srtm_41_19)

  4. Spara utdata under exercise_data/raster_analysis/ som all_conditions.tif

  5. Klicka på Run

Resultatet blev..:

../../../_images/development_analysis_results.png

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.

  1. Öppna verktyget Sieve (GDAL ► Raster Analysis i Processing Toolbox)

  2. Ställ in Input file till all_conditions, och Sieved till all_conditions_sieve.tif (under exercise_data/raster_analysis/).

  3. Ställ in Threshold till 8 (minst åtta sammanhängande pixlar) och kontrollera Use 8-connectedness.

    ../../../_images/raster_sieve_dialog.png

    När bearbetningen är klar kommer det nya lagret att laddas.

    ../../../_images/sieve_result_incorrect.png

    Vad är det som händer? Svaret ligger i den nya rasterfilens metadata.

  4. Visa metadata under fliken Information i dialogrutan Layer Properties. Titta på värdet STATISTICS_MINIMUM:

    ../../../_images/sieve_metadata.png

    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.

  5. Ö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.

  6. Spara utdata under exercise_data/raster_analysis/ som all_conditions_simple.tif.

Din utdata ser ut så här:

../../../_images/raster_sieve_correct.png

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 Raster analysis i Processing Toolbox.

  1. Öppna verktyget

  2. Välj aspect som Input raster layer

  3. 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.

  4. Klicka på knappen Add row och lägg till 5 rader. Fyll i varje rad enligt följande bild och klicka på OK:

    ../../../_images/reclassify_table.png

    Den metod som används av algoritmen för att behandla tröskelvärdena för varje klass definieras av Range boundaries.

  5. Spara skiktet som reclassified.tif i mappen exercise_data/raster_analysis/

    ../../../_images/reclassify_setup.png
  6. 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.

  1. Öppna panelen Layer Styling

  2. Välj Paletted/Unique values, istället för Singleband gray

  3. Klicka på knappen Classify för att automatiskt hämta värdena och tilldela dem slumpmässiga färger:

    ../../../_images/unique_style.png

Utdata ska se ut så här (du kan ha olika färger eftersom de har genererats slumpmässigt):

../../../_images/reclassify_result.png

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 Identify Features!

  1. Välj verktyget i verktygsfältet Attribut.

  2. Klicka på en slumpmässig plats i skiktet srtm_41_19. Identify Results visas med värdet på bandet på den klickade platsen:

    ../../../_images/identify_raster.png
  3. Du kan ändra utmatningen i panelen Identify Results från det aktuella träd-läget till ett tabell-läge genom att välja Table i menyn View längst ned i panelen:

    ../../../_images/identify_raster_table.png

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.

  1. Gå till Plugins ► Hantera/Installera Plugins…

  2. På fliken All skriver du värde t i sökrutan

  3. Välj insticksprogrammet Value Tool, tryck på Install Plugin och sedan på Close i dialogrutan.

    ../../../_images/value_tool.png

    Den nya Value Tool-panelen kommer att visas.

    Tips

    Om du stänger panelen kan du öppna den igen genom att aktivera den i Vy ► Paneler ► Value Tool eller genom att klicka på ikonen i verktygsfältet.

  4. 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.

  5. Flytta markören över kartan för att se värdet på pixlarna.

    ../../../_images/value_tool_query.png
  6. 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:

    ../../../_images/value_tool_query_multi.png

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.