yr.no API – väderdata för Sverige och världen
av Andreas Krohn
På yr.no så kan man få väderdata om 700.000 norska platser och över 6 miljoner internationella platser, och detta inkluderar givetvis Sverige. Sidan är ett samarbetar Meteorologisk Institutt (norska motsvarigheten till SMHI) och NRK. Det är en bra sida med många svenska besökare (hela 25% av besökarna är från Sverige), men det bästa med yr.no är att de har ett rikt API som gör det möjligt att använda sig av all denna väderdata. I ett kommande inlägg här på mashup.se så kommer jag att ta en närmare titt på hur svenska sajter använder detta API, men låt oss först ta en titt på vad man kan göra med APIet.
Gratis väderdata
Eftersom alla denna väderdata är betald av skattebetalare så ansåg Meteorologisk Institutt att det borde komma skattebetalarna till gangn, och detta gör de via yr.no och det öppna APIet. Detta är unikt i Europa, SMHI säljer sin data precis som de flesta meterologiska institut i världen gör.
För att använda yr.nos API så behöver man inte registrera sig elle använda en API-nyckel. Det finns dock ett antal krav man måste leva upp till, de viktigaste är:
- Tala om att man har fått väderdatan från yr.no, inklusive en länk tillbaka (det har nog inte skadat yr.nos PageRank)
- Hämta endast den data som behövs och att cacha den data man hämtar, allt för att undvika överbelastning på deras servrar
- Man får inte ändra den väderdata man hämtar innan den visas
Väderdata via RSS eller XML
Om man vill använda väderdatan i sin egen applikation så är det bästa sättet att hämta den via XML eller RSS. RSS-flödet innehåller information om de närmsta 10 dagarnas väder, men innehållet är antingen på något av de norska språken eller engelska. Rätt RSS feed hittar man lättat genom att klicka sig fram till det område eller den stad man är intresserad av på yr.no, vädret för Stockholm finns tex på http://www.yr.no/place/Sweden/Stockholm/Stockholm/forecast.rss.
Om man vill ha information i ett mer lättarbetat och mer internationellt format (norska är ju inte för alla) så kan man hämta väderprognoser i XML istället. Istället för att avsluta en URL med forecast.rss så använder man då forecast.xml, så Stockholmsdata är tillgängligt på http://www.yr.no/place/Sweden/Stockholm/Stockholm/forecast.xml. Det man får via ett sådant anrop är temperatur, vind, nederbörd och lufttryck för de närmsta 10 dygnen, samt en hel del annan användbar data som soluppgång och solnedgång med mera:
... <sun rise="2009-11-25T08:04:57" set="2009-11-25T15:04:03" /> <forecast> <tabular> <time from="2009-11-25T12:00:00" to="2009-11-25T18:00:00" period="2"> <!-- Valid from 2009-11-25T12:00:00 to 2009-11-25T18:00:00 --> <symbol number="9" name="Rain" /> <precipitation value="0.8" /> <!-- Valid at 2009-11-25T12:00:00 -->
<windDirection deg="151.0" code="SSE" name="South-southeast" /> <windSpeed mps="4.9" name="Gentle breeze" /> <temperature unit="celcius" value="5" /> <pressure unit="hPa" value="997.4" /> </time> ...
Script, plugins och applikationer
Om man vill komma åt informationen från APIet men inte vill hantera XML eller RSS så finns det flera färdiga implementationer man kan använda sig av. Det finns ett officiellt PHP-script som visar en 5-dagars prognos för ett specifikt område.
På tillegg.yr.no så finns applikationer som använder yr.nos API men som ej är gjorda av yr.no. Bland annat så finns ett PHP-script där man får en detaljerad 10-dagars prognos som man antingen kan inkludera i sin PHP applikation eller använda som en självständig sida. Det finns även en Drupal modul, en Facebook applikation, en Windows widget och mycket mer. Har du gjort en egen implementation som kan vara av intresse för andra så kan man ladda upp den till tillegg.yr.no för att dela med sig av sin skapelse.
REST API
Det finns även ett REST API, men det innehåller mest detaljerad data om Norskt väder samt viss information om nordiskt väder. Via detta API kan man tex hämta detaljerat sjöväder, information om strömmar och is i norska vatten och väderdata för de norska fjällen.
Ett för oss svenskar användbart exempel på vad man kan göra med REST APIet är att få en regnradarkarta över Norden. Det gör man med anropet http://api.yr.no/weatherapi/radar/1.2/?radarsite=nordic;type=animation;width=800 och resultatet ser ni här nedanför.