Färgkartor

Denna forumdel är inte längre aktiv, för att diskutera saker relaterat till väder eller temperatur.nu - använd https://www.facebook.com/groups/temperatur.nu
Kategoriregler
Denna forumdel är inte längre aktiv, för att diskutera saker relaterat till väder eller temperatur.nu - använd https://www.facebook.com/groups/temperatur.nu
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Färgkartor

Inlägg av Mímir »

Jag har funderat lite över vilka enorma mängder temperaturdata som finns på sidan här och om man kanske skulle kunna göra något roligt med den. Specifikt så funderade jag över om det hade gått att göra en "färgkarta" där landets karta färgas baserat på de temperaturer som gäller för en viss tidpunkt. När jag sökte på forumet så såg jag att jag inte var den enda personen med denna idé. Det tycktes dock som ingen ännu har gjort något konkret.

Jag har därför börjat undersöka metoder för att göra just detta och jag tror mig också ha hittat en metod som bör fungera. Som exempel så presenterar jag följande bild:
Nederbördskarta
Nederbördskarta
Bilden är ett exempel som jag slängde ihop för att visa hur det skulle kunna se ut och visar i det här fallet nederbördsdata (tror jag). För temperaturdata så skulle Norge och Danmark också vara helt vita då interpoleringsfunktionen som jag troligtvis kommer att använda inte gör någon extrapolering till områden där det inte finns data.

Vidare så tänker jag mig att koden som jag skriver skulle kunna generera en karta för alla dygnets 24 timmar och sedan sätta ihop dessa till en film där man kan se senaste tidens temperaturtrender.

För att gå vidare så skulle jag dock behöva temperaturdata från alla temperatursensorer på temperatur.nu för (till en början) en tidpunkt samt longitud och latitud för dessa sensorer. Som jag förstår det så är detta inget som jag lätt kan hämta via det API som temperatur.nu har. Skulle du kunna tänka dig att ge mig en textfil innehållande dessa data elf? Jag delar gärna med mig av koden när jag är färdig om du är intresserad.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Färgkartor

Inlägg av elf98 »

APIet ger i nuläget inte historisk data i textformat då det är en rätt krävande process. Alla aktuella temperaturer (med koordinater) går dock att enkelt hämta via APIet.

Jag har kollat en del på detta men inte lyckas få till något som fungerar bra. Det optimala vore en lösning där man kan få till ett overlay på Google Maps...
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

Hur man lägger in overlays i Google Maps har jag ingen aning om, om det inte är en liknande metod som för Google Earth. Vad gäller själva overlay bilden så borde det vara relativt enkelt att generera den med samma kodbibliotek som det jag använder för bilden ovan. Det är bara att låta bli och generera gränser och kuststräckor, låta bilden gå ända ut i kanterna, sätta det som nu är vitt till att vara transparent samt att ändra projektionen till en som är lämplig för Google Maps.

Med det sagt så undrar jag om det är särskilt användbart ha den typen av färgkarta i Google Maps. Hur ska du visa hur temperatur/färg-skalan ser ut?
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Färgkartor

Inlägg av elf98 »

Exakt hur det skall göras tydligt för användaren har jag inte klurat på, men det bör inte vara allt för svårt att fixa till en bra legend som ligger i något hörn.

Min önskan/tanke är att ha någon form av heatmap på http://www.temperatur.nu/karta.html.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

Jag lyckades till slut hitta på forumet att det går att hämta all temperaturdata på en gång via API:et varför mitt lilla projekt kunde fortsätta.

Jag är inte riktigt hundra men jag tror att jag också lyckades reda ut att Google Maps föredrar en cylindrisk kartprojektion. Med denna kunskap så satte jag ihop följande bild:
test3.png
test3.png (108.68 KiB) Visad 12410 gånger
Personligen så tycker jag att det är en väldigt vacker bild. Men sen så är jag ju inte helt opartisk heller. :D

Notera att jag tills vidare lämnade kvar kuststräckan. Icke färgade områden ska dock vara transparenta. Om någon vill börja experimentera med Google Maps så gäller följande:
Nedre vänstra hörnet har koordinaterna:
longitud:10.5
latitud:55.3

Övre högra hörnet har koordinaterna:
longitud: 24.5
latitud: 69.2

Det kommer nog dock att dröja några dagar innan jag har tid att jobba vidare på koden.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Färgkartor

Inlägg av elf98 »

SNYGGT!

JAg ser fram emot kodexempel så det går att implementera på temperatur.nu :)
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Färgkartor

Inlägg av CirruZZ »

Även om det inte går att göra overlay på Google Maps så vore det en kul/snygg funktion att ha ändå. Ser riktigt snyggt ut! :D
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

Nu har jag fått några timmar över till att putsa på koden och jag anser nu att den är "färdig". Den här posten lär bli ganska lång, så känsliga läsare varnas. Innan vi börjar så ska jag dock visa resultatet av den här versionen. Temperaturdatan som låg till grund för figuren nedan hämtades 23.40.
Temperaturdata från 23.40 11/3-11.
Temperaturdata från 23.40 11/3-11.
Koden är skriven i Python och då jag gissar att detta inte är ett språk som Erik är väldigt van vid så har jag dokumenterat den väldigt väl (mer än 60% kommentarer). Python i sig själv har inte de funktioner som krävs för vad jag önskade, varför flera tilläggspaket måste installeras. Vi ska dock börja med vilken Python-version som ska användas. Jag testat koden endast med Python 2.7, jag är dock ganska säker på att även 2.6 och 2.5 bör fungera alldeles utmärkt. Version 3.0 och uppåt fungerar inte alls då koden som genererar kartan inte är anpassad till 3.x versionerna av Python ännu.

Det första paketet som behöver installeras är Numpy och hittas på http://numpy.scipy.org/. Att kompilera numpy själv brukar ge mig åtskilliga extra gråa hår varje gång jag gör det då det krävs att man har en fungerande fortran kompilator och vektorberäkningsbibliotek installerade. Jag rekommenderar därför att man använder färdigkompilerade filer eller att man använder ett automatiserat system för kompilering av Numpy.

Det andra paketet som behövs är matplotlib. Detta bibliotek hittas på följande adress http://matplotlib.sourceforge.net/. En liknande situation gäller för matplotlib som för Numpy varför jag återigen rekommenderar att man använder automatiska kompileringssystem eller färdigkompilerade filer.

Det sista paketet som behövs är Basemap (http://matplotlib.sourceforge.net/basemap/doc/html/). Basemap är det bibliotek som tar hand om kartprojektionerna och är relativt lätt att installera. Det enda extra biblioteket som du behöver installera är geos, och det följer med installationen om du inte vill ladda hem det själv.

Vad gäller själva koden så har jag anpassat den för att antingen kunna göra en standard-karta eller göra en overlay-karta beroende på hur man anropar funktionen som skapar kartan. Man kan också välja vilket temperaturintervall som färgerna ska sättas till. För mer information så bör koden studeras.

Även på min relativt snabba dator så tar det några sekunder att generera kartan varför jag rekommenderar att, för en hemsida, endast återskapa figuren max några gånger i timmen.

Då koden är nästan 200 rader lång så vilja inte ha med den direkt i inlägget. Istället så ligger den "tills vidare" på min egna server på adressen http://crete.homeip.net/temp_map_plot.py.zip. Anledningen till att koden är paketerad i en zip-fil är för att bevara teckenkodningen som är utf-8.

Jag tror det var allt, om det finns frågor så svarar jag gärna (så länge det inte är allt för jobbigt :) ).
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Färgkartor

Inlägg av CirruZZ »

Riktigt snyggt!!!! :D

Vad är det som begränsar kanterna till fjälls och i norr? Måste det finnas någon station i varje hörn? Varför blir det inte samma "kant effekt" vid kusten?
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

Tja, man brukar ju säga att en bild kan säga mer än tusen ord, varför jag ger dig följande:
Temperaturdata från 01.39.
Temperaturdata från 01.39.
För sakens skull så ska jag dock nämna några korta ord om den. De svarta punkterna representerar förstås mätstationer. Algoritmen som jag använder för att ta fram kartan kan bara interpolera fram värden, det vill säga att den kan bara skapa en yta av värden mellan tre eller fler punkter. Slutligen så använder jag en funktion i biblioteket som skapar själva kartan, vilken tar bort alla värden som ligger över öppet vatten. För den här bilden så har jag deaktiverat den funktionen.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Färgkartor

Inlägg av elf98 »

Tack!

Jag kommer dock inte att lägga tid på det på den gamla servern, den nya är på gång att installeras och bör vara i drift inom några veckor!
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Färgkartor

Inlägg av CirruZZ »

Mímir skrev:Tja, man brukar ju säga att en bild kan säga mer än tusen ord, varför jag ger dig följande:
temperaturkarta.jpg
För sakens skull så ska jag dock nämna några korta ord om den. De svarta punkterna representerar förstås mätstationer. Algoritmen som jag använder för att ta fram kartan kan bara interpolera fram värden, det vill säga att den kan bara skapa en yta av värden mellan tre eller fler punkter. Slutligen så använder jag en funktion i biblioteket som skapar själva kartan, vilken tar bort alla värden som ligger över öppet vatten. För den här bilden så har jag deaktiverat den funktionen.
Okey, jag förstår. Då skulle man haft tillgång till några enstaka stationer som låg "utanför" för att få till det med andra ord.
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

Jo, just precis. Jag har hittat en algoritm som kan extrapolera också. Det är dock nästan alltid matematiskt tveksamt att extrapolera.
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Färgkartor

Inlägg av CirruZZ »

Mímir skrev:Jo, just precis. Jag har hittat en algoritm som kan extrapolera också. Det är dock nästan alltid matematiskt tveksamt att extrapolera.
Jo det är ju sant, men i det här fallet så tycker i alla fall jag att det inte gör något då det är så "litet" om råde som det berör, dock hade det gjort kartan mer tilltalande för ögat.
Mímir
Wannabe
Inlägg: 18
Blev medlem: 02 mar 2011, 15:40
Ort: Lund

Re: Färgkartor

Inlägg av Mímir »

OK, ok. :) Jag ska testa när jag får tid.
Låst