Detta är en gammal version av dokumentet!
Innehållsförteckning
Analys av Nationella höjddatabasen
Bra att veta om NH50
Från https://www.lantmateriet.se/globalassets/kartor-och-geografisk-information/hojddata/hojd50_plus_nh_v1.4.pdf:
”Produkten baseras på nationella höjdmodellen i form av ett 1-meters grid. Från detta 1-meters grid interpoleras, med bilinjär metod, ett 5m grid i ras-terformat som i sin tur inter-poleras till 10 m, 10 m gridet interpoleras till 20 m som till sist interpoleras till 50 m grid. Den här interpolationskedjan inne-bär att varje höjdvärde är representativt för en större yta än om ett 50-me-tersgridskulle tas fram direkt ur 1-metersgridet.”
”Medelfelet i höjd i ett måttligt kuperat landskap ligger på ca 1 m. Maximalt fel kan dock vara många gånger större. Felen ökar i starkt kuperad terräng.Metoden att stegvis skapa glesare och glesare färdiga grid innebär att land-skapet blir utjämnat -höga toppar blir lägre, och djupa dalar grundare.”
T.ex. Vaggeryds högsta punkt Högenacke som har ett punktvärde på 359m har följande 50m-värden:
- NH2016: 353.2903
- NH2020: 350.69684
Bra att veta om GSD Sverigekartan
- Enklaver mindre än 9kvm^2 finns inte med.
- Gränserna är förenklade vilket kan gör att höjdpunkter hamnar på fel sida kommungräns.
Verktyg som behövs:
- QGIS
Data som behövs:
- Kommungränser, finns i GSD-Sverigekartor https://www.lantmateriet.se/sv/Kartor-och-geografisk-information/geodataprodukter/produktlista/sverigekartor/ - filen ak_riks.shp innehåller polygoner för Sveriges kommuner. Hyfsat högupplösta
1. Ladda hem en fräsch kopia av NH (Nationella höjdmodellen): h_10_Blekinge_lan_Sweref_99_TM_geotiff.zip nh_23_Jamtland_lan_Sweref_99_TM_geotiff.zip nh_12_Skane_lan_Sweref_99_TM_geotiff.zip nh_24_Vasterbotten_lan_Sweref_99_TM_geotiff.zip nh_13_Halland_lan_Sweref_99_TM_geotiff.zip nh_25_Norrbotten_lan_Sweref_99_TM_geotiff.zip nh_14_Vastra_Gotaland_lan_Sweref_99_TM_geotiff.zip nh_3_Uppsala_lan_Sweref_99_TM_geotiff.zip nh_17_Varmland_lan_Sweref_99_TM_geotiff.zip nh_4_Sodermanland_lan_Sweref_99_TM_geotiff.zip nh_18_Orebro_lan_Sweref_99_TM_geotiff.zip nh_5_Ostergotland_lan_Sweref_99_TM_geotiff.zip nh_19_Vastmanland_lan_Sweref_99_TM_geotiff.zip nh_6_Jonkoping_lan_Sweref_99_TM_geotiff.zip nh_1_Stockholm_lan_Sweref_99_TM_geotiff.zip nh_7_Kronoberg_lan_Sweref_99_TM_geotiff.zip nh_20_Dalarna_lan_Sweref_99_TM_geotiff.zip nh_8_Kalmar_lan_Sweref_99_TM_geotiff.zip nh_21_Gavleborg_lan_Sweref_99_TM_geotiff.zip nh_9_Gotland_lan_Sweref_99_TM_geotiff.zip nh_22_Vasternorrland_lan_Sweref_99_TM_geotiff.zip 2. zippa upp unzip \*.zip 3. Slå ihop till en tif-fil gdal_merge.py -o NH2020.tif nh*.tif 4. Ladda hem gränsfilerna, sve_1milj_Sweref_99_TM_shape.zip 5. Öppna ak_riks.shp i QGIS 6. Hitta högsta punkten i varje kommun <del><<TEMP>> A. ZonalStatistics fungerar dåligt med decimaltal, så vi måste preppa NH2020.tif så att vi tar bort decimaltalen: gdal_calc.py -A NH2020.tif --type='Float32' --calc="(A*1000000)" --outfile NH2020_Million.tif <</TEMP>></del> Processing toolbox->Zonal statistics Raster layer: NH2020, Band 1 Vector layer: ak_riks Statistics to calculate: Max -> Utdatat sparar i ak_riks 7. Välj lagret ak_riks -> Attribute table En ny kolumn har lagts till: "_max" där högsta värdet i varje kommun finns. T.ex. Älvdalen som har _max=1200,6136474609375 OBS: Bli inte orolig för att antalet rader än fler än antalet kommuner. Enklaver större än 9km^2 (se info.pdf för ak_riks) får egna rader eftersom de har egna polygoner. I 2020 års data av ak_riks så finns det också en bugg för Norrtälje. En del av kustremsan är med i en mycket mycket smalt egen polygon. 8. Med ak_riks markerat. Välj Layer->Save as Format: CSV Select fields to export: Välj alla 9. Öppna CSV-filen i lämplig editor, typ Excel eller Open Office. - Ta bort alla dubletter, spara den med högst värde på _max Nästa steg blir lite kladdigt. Vi måste få veta var punkten ligger. Då får vi för varje _max-värde springa igenom hela Sverige och söka rätt på punkter som matchar. Spara alla högsta värden i en fil: highAll.txt Första, för att skapa en tom highAll.tiff: gdal_calc.py -A ../Sverige/NH2020.tif --type='Float32' --calc="(A==666.666)*A" --outfile highAll.tiff while read line; do gdal_calc.py -A ../Sverige/NH2020.tif --type='Float32' --calc="(A==$line)*A" --outfile highTemp.tiff && gdal_calc.py -A highTemp.tiff -B highAll.tiff --type='Float32' --calc="(A+B)" --outfile highTempAll.tiff && mv highTempAll.tiff highAll.tiff; done < highAll.txt Det blir 2x gdal_calc per kommun. Varje gdal_calc har c:a XXX minuter på min laptop. Totalt XX minuter för hela Sverige. -> highAll.tiff innehåller nu ett raster med 0 höjd på alla punkter utom 290 punkter som är kommunpunkterna För att klä på varje punkt lite information, typ om län och kommun: -> Skapa en kopia av highAll där höjdvärdena är multiplicerade med 1000000 så att vi inte tappar bort decimaltalen: gdal_calc.py -A highAll.tiff --type='Float32' --calc="(A*1000000)" --outfile highAllMillion.tiff --> Härifrån och ner kör vi med highAllMillion -> Polygonize. highAllMillionVector -> Union med riks: highAllMillionVectorRiksUnion -> rensa bort så bara det högst DN-värdet är kvar i varje kommun: 1. Öppna Attribute Table för highAllMillionVectorRiksUnion 2. Välj Advanced filter Expression 4. filter, advanced filter: DN = maximum("DN",group_by:="KOM_KOD") -> Nu visas alla punkter som är högsta punkten i någon kommun 5. Högerklick->Select all 6. Layer->Save as-> ESRI ShapeFile -> Save only selected -> highAllMillionVectorRiksUnionMaximum.shp Geometry Tools->Centroids Centroids20210320 -> Rensa punkter utan KOM_KOD