Om det kan bli krångligt att skapa avancerade rumsliga analyser, så blir det inte lättare nu. Då gäller det att man har god koll på processen i förväg och en tydlig bild av vad man vill göra, innan man gör det.
Det som menas med rubriken är dels att slå samman attributtabeller och dels att ”plocka” värden från andra lager baserat på geografiskt läge.
För att exemplifiera så använder jag höjddata i rasterformat och ett polygonlager med byggnader. Jag vill nu skapa ett nytt lager med byggnader där även byggnaden får ett värde med hur högt över havet det ligger.
Jag skall även passa på att säga att det sällan finns ett enda sätt att lösa en uppgift på! Mitt sätt här är säkert inte optimalt, men det passar för att jag skall kunna demonstrera ytterligare ett sätt att kombinera data.
Efter lite letande så hittar jag en funktion som med stöd av SQL hämtar ett värde från rasterlagret och lägger till det i ett attribut som jag skapar innan processen körs.
I det här fallet så behövde jag ställa upp ett villkor för vilka byggnader som skall påverkas, men då jag vill köra alla så får jag skapa ett villkor som också gäller allt, exempelvis attributet ”KKOD” som skall vara större än 0.
Kombinera tabeller
Om man har objekt med geografi, exempelvis en administrativ indelning i kommuner, så kan man vilja kombinera detta med statistik i tabellform där det inte finns någon geometri lagrad.
Då kan man använda sig av ”sammanslagning” av tabellerna. Detta fungerar så länge det finns ett överensstämmande attribut som är gemensamt i båda tabellerna.
Här använder jag resultatet från valet 2014, som jag importerar som tabell utan geometri.
I kommunlagret i kartan så finns det ett attribut med namnet ”NAMN_KOM” som motsvarar tabellens attribut ”KOMMUN”.
I egenskaperna för kommunlagret skapas en ”Sammanslagning” med tabellen baserat på dessa två attribut. Här väljer jag även att sätta ett anpassat, lite kortare prefix på sammankopplade kolumner. Resultatet blir en utökad attributtabell.
Det går nu att välja att spara det sammanslagna lagret till ett nytt vektorlager, men om man slår samman geodatalager med tabeller från en databas som konstant redigeras i andra sammanhang, så kan det vara klokare att behålla sammanslagningen i stället, för att på det viset få uppdateringarna från den kopplade tabellen.
Med alla nya attributdata så kan man skapa mängder av nya presentationer, som i bilden ovan. Här presenteras fördelningen av röster mellan de etablerade rikspartierna med siffror som ange den procentuella fördelningen mellan V+S+Mp och M+Kd+L+C.
Det senare är dock mer en fråga om visualisering. Vilket det blir mer om i morgon.
Kan man ha någon slags ”levande” koppling? T.ex. att ha en shapefil med geometri och någon id kopplat till ett excelark med samma id men där attribut i excelarket löpande kan uppdateras av någon som bara har excel medan den kopplade varianten kan öppnas av den som har QGIS?
Japp! Om du med Excel menar en tabell som kan öppnas och redigeras i ett kalkylarksprogram som Excel. QGIS läser inte *.xls filer vad jag vet men *.dbf eller *.csv fungerar bra. Det går sedan att sätta bevakning på tabellen så att QGIS ”synkar” om innehållet om det har uppdaterats. Har du möjlighet så skulle jag ju förorda en databaslösning mot Postgresql/PostGIS och ett html/php gränssnitt för att redigera tabelldata, men det är förstås betydligt mycket mera jobb.
Tackar för svar. Jo en databaslösning är förstås bättre. Nackdelen med en sådan är att man då måste ha databaskontakt för den som sitter med exceluppdateringarna.
Tackar även för intressanta infobrev!
/Per B