Tuesday, July 6, 2010

SCB-hack för öppnare data

Uppdatering: Tyvärr funkade hacket inte riktigt som det ska. Det är någon kaka eller session eller något som spökar till det. Och min tid för detta rann ut. Säg till om du *verkligen* behöver det här hacket - då kanske jag kan fixa till det. Eller om du själv är utvecklare och vill ha koden (i php + curl) och själv vill fixa till den och dela med dig av den, till allas glädje!

Som ni kanske känner till så är Martina och jag på Almedalsveckan i Visby. I dag lunchade vi med Cecilia Westström Simonsson, som är avdelningschef på kommunikationsavdelningen på Statistiska Centralbyrån, SCB. Vi hade ett riktigt långt och trevligt samtal, som var ovanligt svårt att slita sig från.

Det vi diskuterade var hur SCB kan göra sina databaser mer tillgänglig för externa innovatörer. Hur de kan göra det lättare för företag, individer och organisationer att använda och vidareutveckla informationen, integrera den i sina tjänster eller bygga helt nya spännande tjänster baserat på den.

Har man bara tillgång till bra data, så kan man nämligen bygga otroligt spännande och sammhällsnyttiga tjänster, på kort tid. Och Statistiska Centralbyrån sitter på en guldgruva med data.

Om ni inte har sett det här klassiska TED-talket med Hans Rosling, kolla in det. Mot slutet av klippet (runt 15 minuter in) pratar han om hur problematiskt det är att så mycket bra statlig data är svårtillgänglig. Som han säger: "The Data is hidden, down in the databases".



Så hur ser det ut på SCB? Jo, det finns faktiskt massor av bra data tillgänglig i nedladdningsbart format i statistikdatabasen på SCB:s hemsida. Men ett stort problem, som det ser ut just nu, är att man inte kan "spara frågor". Om man vill hämta samma datafil med jämna mellanrum så måste man gå in och ta fram den manuellt varje gång. Man kan alltså inte hämta den per automatik, varje natt.

Det är ett stort hinder, som gör det svårt att få tillgång till aktuell data. Enligt Cecilia är detta något som SCB jobbar på. Kanske blir man klar till årsskiftet... Eller kanske någon gång nästa år... Cecilia berättade, till min fasa, att Hans Rosling faktiskt varit i kontakt med dem - men att samarbetet föll på att denna funktionalitet inte fanns hos SCB.

Jag gillar att lösa problem, och jag blev lite rastlös av det hela. Så ikväll har jag byggt ihop ett eget litet hack, som åtgärdar den här bristen hos SCB. :)

En timmes programmerande var faktiskt allt som behövdes, och nu man kan hämta rapporter från SCB med en permanent länk! Det är lite ugly, men det funkar i alla fall.

Hans Rosling - det skulle vara kul om du vill använda dig av detta!

Så här gör du:
  1. Använda Mozilla Firefox som webbläsare.
  2. Gå in och installera Firebug som plug-in till webbläsaren.
  3. Gå nu på SCB:s statistikdatabas på webben och ta fram den statistik du vill ha. Exempelvis befolkningen i Sverige, efter ålder och kön. Välj fil-formatet Excel-fil. Klicka på fortsätt.
  4. Du kommer nu till sidan med resultaten. Nu klickar du på ikonen för Firebug och hitta de variabler som postats till sidan. Klipp ut textstycket med alla variabler!
  5. Gå sedan till http://www.allakartor.se/dev/scb/ och klistra in variablerna i rutan där.
  6. Klicka på skicka. Om allt går rätt så får du nu fram en permanent länk. Den länken kan du alltid använda framöver.
Du behöver alltså bara göra detta en gång, och du får en permanent länk till datafilen. En "sparad fråga" helt enkelt. Så slipper du vänta i ett år, eller mer, på att SCB ska fixa det.

Här är en exempelsökning, som hämtar en Excel-fil med befolkningen i Sverige, efter ålder och kön: http://www.allakartor.se/dev/scb/?id=13

Slutsats:

Det här är en liten bit på vägen för utvecklare som vill bygga tjänster på data från SCB.

Förhoppningen är naturligtvis att SCB inom snar framtid tar till sig från önskemålen från oss externa utvecklare, och både underlättar och börjar aktivt uppmuntra till extern innovation kring datan. Då kan det hända väldigt spännande saker.

Sverige har bra data - så det är viktigt att den kommer till användning. Som sagt, kolla på Hans Roslings talk, det är ett av de bästa TED-talken som någonsin gjorts.

För dig som är tekniskt lagt och vill veta vad jag gjort:
  • Sök-variablerna du klistar in sparas i min databas, och får en egen länk.
  • Varje gång du hämtar länken postas sökning på nytt mot SCB.se (via Curl). Från resultatsidan hämtas länken till den nya datafilen.
  • Mitt script redirectar dig automatiskt (med en 301-redirect) till den nya datafilen.
Behöver du mer hjälp, kolla på bildinstruktionerna:

Punkt 3. Ta fram statistiken:



Punkt 4. På resultatsidan, gå in i Firebug. Klicka på fliken Net, och sedan Alla.



Klicka på POST SaveShow.asp och sedan på Post-fliken:



Scrolla sedan ner så hittar du textblocket med alla variablerna, som du kopierar.



Punkt 5: Klistra in variablerna på


Klar:

10 comments :

Mikael Olsson said...

Otroligt intressant! Tyvärr får jag inte länken att funka, men jag hoppas att det är något lättjusterbart, för som sagt, det skulle kunna leda till bra grejer!

Daniel said...

Länkarna verkar inte fungera för evigt? Provade från dina exempel:
http://www.allakartor.se/dev/scb/?id=14
samt
http://www.allakartor.se/dev/scb/?id=13

Får två olika felmeddelanden ifrån SCB.

Ted Valentin said...

Ah, nu hittade jag en liten bugg. Nu fixad. Nu hoppas jag att allt funkar som det ska...

Daniel said...

Nope, dina exempellänkar funkar ändå inte.

Pernillan said...

Riktigt bra jobbat!!! Nu gäller det bara att fundera ut vad man ska använda all spännande data till... Finns säkert oändligt många användningsområden och roliga slutsatser man kan dra. *smider planer...*

Ted Valentin said...

Hej Daniel!

Jag har testar på flera olika devices, och länkarna funkar.

http://www.allakartor.se/dev/scb/?id=13

Observera att länken inte leder till en webbsida utan till en nedladdningsbar fil.

Så du får förmodligen upp en ruta någonstans i din webbläsare där det står "vill du ladda ner denna fil"? Man kan missa det. :)

Björn Hagström said...

Jag får inte heller dina länkar att fungera. Har testat i IE7 och FF3.6.6 på WinXP. Kommer till en 404 och ingen filnedladdning.

Mikael Olsson said...

Igår fick jag en 404 på den ena och en Virtual Directory listing not allowed på den andra (id 13 resp 14), nu får jag 404 på båda.

Ted Valentin said...

Jäklar, SCB använder någon slags timeid i länken också. Jobbigt. Jag ska se om jag kan fixa en workaround för det på lunchen...

Robert Pohl said...

Ted, lysande! Grymt att du tagit dig tid med så detaljerade beskrivningar.


Om jag endå hade tid... :)