Jag tänkte laborera lite med höjdkurvor som jag gör själv i detta inlägg.
Jag börjar med att ladda hem lite höjddata från SRTM i *.hgt format (länk). I den komprimerade filen man tar hem så finns det flera hgt-filer som när man lägger till dem symbolsätts individuellt. Ett enkelt sätt att skapa ett enda hanterbart lager med samma symbolsättning är att skapa ett virtuellt rasterlager.
Gå till ”Raster”, ”Övrigt” och ”Bygg Virtuellt Raster (Katalog)”.
När jag försöker välja sökvägar med knapparna ”Välj…” i verktyget så totalkraschar QGIS, men det går bra att skriva eller klistra in sökvägarna till katalogen med hgt-filer och till den vrt-fil man vill skapa. Jag lägger vrt-filen på samma ställe som datat, jag tycker det blir enklast så just nu. Observera att jag även valt att öppna en katalog med filer och inte enskilda filer.
När verktyget kört så läggs den virtuella katalogen till i lagerlistan, därefter är det bara att klicka på ”Stäng” för att ta bort verktyget (varför kan det inte stängas automatiskt?).
Bilden ovan visar ”tiles” till vänster och den virtuella katalogen till höger.
Sedan så kör man ”bara” verktyget för att skapa höjdkurvor.
Du hittar verktyget under ”Raster”/”Extrahera”.
Jag kryssade även i rutan att skapa attributnamn för höjdkurvorna, så att dessa även fick ett höjdvärde. Kan vara bra att ha senare.
Höjdkurvorna gick ganska snabbt att få fram, med hänsyn till att de beräknades över hela Götaland och del av Svealand (i princip), och resultatet efter lite stilval och etiketter ser du här nedanför.
Klicka på bilden för att se den i full skärmupplösning.
Om jag får säga det själv så är jag ganska nöjd med resultatet. Jag använder en regelbaserad stil där de tunna linjerna är en ofiltrerad regel och de tjockare en regel med ”Regular Expression” som filtrerar fram rader på jämna 50-tal meter:
regexp_match( tostring( toint( ”ELEV”) ),’.[05].’)
”ELEV” är mitt höjdattribut och för att testa attributet som text så tar jag bort decimaler med ”toint” och gör om talen till text med ”tostring”. Uttrycket matchar sedan strängar med ett valfritt tecken på position ett och tre, och en femma eller nolla på position två. Uttrycket fungerar således bara på höjder under 1000 meter, men det är ganska lätt att modifiera.
Jag använder ett villkor med samma urval för att välja ut vilka linjer som skall få etiketter. Jag lägger även till ett ”m” efter höjdangivelsen.
CASE WHEN regexp_match( tostring( toint( ”ELEV”) ),’.[05].’) THEN tostring(ELEV) || ’ m’ END
I bakgrunden så har jag den virtuella höjddatakatalogen som låg till grund för beräkningen. Och om du undrar så är det Vättern och Jönköping som syns på bilden.