Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 90.12%.
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 terrängskuggning
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-lagret 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 terrängskuggning, 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å menyn
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).
Vi kommer att använda följande värden:
Z-faktor vid
1,0Azimut (horisontell vinkel) vid
300,0°Vertikal vinkel vid
40,0°
Spara filen i en ny mapp
exercise_data/raster_analysis/med namnethillshade.tifKlicka slutligen på Run
You will now have a new layer called hillshade that looks like
this:
Det ser snyggt och 3D ut, men kan vi förbättra det här? På egen hand ser terrängskuggningen 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 terrängskuggning som ett överlägg.
7.3.2. ★☆☆ Följ med: Använda en terrängskuggning som ett överlägg
En terrängskuggning 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 terrängskuggning till att vara mestadels transparent.
Change the symbology of the original
srtm_41_19layer to use the Pseudocolor scheme as in the previous exerciseHide all the layers except the
srtm_41_19andhillshadelayersClick and drag the
srtm_41_19to be beneath thehillshadelayer in the Layers panelSet the
hillshadelayer to be transparent by clicking on the Transparency tab in the layer propertiesStäll in Global opacitet till
50%.Du kommer att få ett resultat som detta:
Switch the
hillshadelayer off and back on in the Layers panel to see the difference it makes.
Using a hillshade in this way, it’s possible to enhance the topography of the
landscape. If the effect doesn’t seem strong enough to you, you can change the
transparency of the hillshade layer; but of course, the brighter
the hillshade becomes, the dimmer the colors behind it will be. You will need
to find a balance that works for you.
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
Choose
srtm_41_19as the Elevation layerHåll Z-faktorn på
1,0Spara utdata som en fil med namnet
slope.tifi samma mapp somhillshade.tifKlicka 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).In the dialog, choose the
aspectlayer, because we want to obtain a layer with the same resolution.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
2graderDen andra är liknande, men lutningen bör vara mindre än eller lika med
5grader.Spara dem under
exercise_data/raster_analysissomslope_lte2.tifochslope_lte5.tif.
Svar
Ställ in din Raster calculator dialogruta med:
följande uttryck:
lutning@1 <= 2slope-lagret som Referenslager
För 5-gradersversionen ersätter du
2i 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: terrain facing northslope_lte2: slope equal to or below 2 degreesslope_lte5: slope equal to or below 5 degrees
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.tifKlicka 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 Lageregenskaper. 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
1fö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 lager 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
Choose
aspectas the Raster layerKlicka 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 lagret som
reclassified.tifi mappenexercise_data/raster_analysis/
Klicka på Run
If you compare the native aspect layer with the
reclassified one, there are not big differences.
But by looking at the legend, you can see that the values go from
1 to 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 rasterlager som vi använde i den här övningen består av bara ett band. Beroende på lagret 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.
Click on a random location of the
srtm_41_19layer. Identify Results will appear with the value of the band at the clicked location:
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 tillägget Value Tool för att lösa detta problem.
Gå till
På fliken All skriver du
värde ti sökrutanVälj tillägget 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 tillägget 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.
But there is more. The Value Tool plugin allows you to query all the active raster layers in the Layers panel. Set the
aspectandslopelayers active again and hover the mouse on the map:
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 terrängskuggning, 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.