När jag hämtade data från SMHI (CC BY) igår så hämtade jag även ett lager som kort och gott kan benämnas ”aktuellt väder” (länk). Här är värdet en ”kod” som hämtar sin betydelse från en lista som går att återfinna på sidorna från SMHI.
Det är en ganska lång lista och om man vill skapa nya uppdaterade kartor med aktuellt väder så kanske man vill ha med så många koder som möjligt i projektet i QGIS.
Jag provar att öppna tabellen från webbsidan i Calc där jag även kan spara till csv-format.
Här passar jag på att ändra teckenkodningen till UTF-8, då detta alltid fungerar bättre än Latin-1.
Jag provade sedan att gå in under ”attributformulär” i lageregenskaperna och ändra till en ”värdekarta” som widget, vilken kan läsa in denna tabell.
Det löste en del problem, men det gick fortfarande inte att få dessa beskrivningar i teckenförklaringen för lagret..?
Om jag exporterar lagret till GeoPackage, så får jag alternativet att använda värdekartan i stället för de koder som ursprungligen fanns i fältet. Detta fungerar utmärkt, men det skapar ett moment extra i framtagningen av väderkartan. Jag vill helst bara behöva använda csv-filen för stilsättning direkt, så jag får prova något annat.
Jag kan läsa in kodtabellen som en csv-fil utan geografisk position. Det gör den till en ren tabell, men denna kan jag hantera i QGIS och exempelvis koppla till värdet i ”väderfältet”.
Genom att lägga till värdekolumnens motsvarighet till koderna i ett nytt fält, så kan jag använda detta fält för stilsättning i stället för koderna i QGIS.
Men, då kommer nästa ”problem”. Sammanslagningen av tabeller följer inte med lagerstilen! Då det är mer än ett ”lager” involverat så hanteras <vectorjoins> i projektfilen…
Det jag kan göra är att göra projektet färdigt där jag använder en omdöpt csv-fil (ex. ”väder.csv”). När jag sedan hämtar ett nytt väderläge så ersätter jag den gamla filen med den nya och när jag sedan öppnar projektet så används de nya värdena, men med den tidigare definierade kopplingen. Tills jag kommer på ett bättre sätt så är det så jag får göra.
Detta fungerar, men varje gång som jag får data med ett värde som jag inte haft med tidigare så ställs jag inför ett problem.
Det finns inget enkelt sätt att lägga till saknade klassificeringar i listan med symboler. Jag måste antingen göra detta manuellt, eller börja om från början. Om jag har tid att skapa stilen en gång för alla, så kanske det finns ett annat alternativ.
För detta så går jag tillbaka till min tabell med väderkoder. I denna lägger jag till en kolumn kallad ”x” och en kallad ”y”. Dessa ger jag värdet ”0” för samtliga rader. När jag sedan läser in den nya kodfilen (jag gjorde ändringarna i en kopia) så kan jag läsa in den med position och därmed även stilsätta lagret. Jag döpte även om kolumnen ”Beskrivning” till samma namn som jag använde i väderlagret, men jag är inte säker på om det behövs.
Det enda jag sedan behöver göra är att välja kategoriserad stil för den nya inlästa tabellen och ”Klassificera” alla möjliga alternativ. Sedan är det bara att kopiera stilen och klistra in den på väderlagret. Jag skulle kunna sätta en tillfällig stil på alla mina klasser och bara byta stil allt eftersom det dyker upp nya, eller sätta mig och gå igenom hela listan direkt.
Även om man inte gör allt direkt, så blir det på det här sättet ganska enkelt att se när det dyker upp en symbol som inte är använd tidigare, och smidigt att välja en ny i listan med kategorier.
Förr eller senare så är stilen så pass klar att man kan spara den som standard, vilket man i och för sig kan göra hela tiden man håller på, och därmed göra det möjligt att dela med sig av den till andra.
Symbolerna jag använt kommer förresten från http://adamwhitcroft.com/climacons/ och är fria att använda.