Fra SSB til SVG

I denne posten viser jeg hvordan du lager et fargerikt kart, som fargelegges med data fra data.ssb.no.

jupyter bare dukket opp. Jeg brukte Ipython tidligere, og har hatt et øye på utviklingen, men plutselig ble det like naturlig å skrive python i jupyter som noe annet sted. Hovedgrunnen tror jeg er fordi det er så interaktivt. Hver celle kan evalueres. Det er lett å «flytte ballen» framover, ved å sjekke at alt fungerer opp til punktet jeg jobber nå, og eksperimentere derfra. Det låner seg god til eksperimentell analyse, men også til å lære kode.

En annen ting jupyter gjør elegant er å vise fram datastrukturene. Pandas kanskje mer enn alt annet. Bilde under viser toppen av en dataframe, som hentet fram med df.head()

pandas dataframe i jupyter
pandas dataframe i jupyter

Andre strukturer er ikke like elegant, men som open source programvare, er det bare å utvide der du trenger. Det er det noen som har gjort med geografi. Jeg snubla over dette lille rammeverket chorogrid, som lager SVG-kart over USA, som kan farges av data du trenger å se som bilde. Canada og Europa-kartet kan chorogrid også tegne. Den kan gjøre statene om til firkanter, og heksagoner også. Dette er nyttig når areal og avstand ikke er viktig.

Chorogrid eksempler
Chorogrid eksempler

Så jeg brukte (alt for mye) tid på å legge til Norge i Chorogrid. Knota masse rundt og lærte nye ting (f.eks. måtte jeg legge til støtte for viewBox i SVG, som var tungt). Jeg fant ingen elegant måte å legge lat/long over i en grid som ser ut som Norgeskartet, selv om dette sikkert finnes. Jeg løste det ved å gjøre hver kommune om til en firkant, og deretter sortere de fra øst til vest og nord til sør. Så manuelt bygge opp noe som likner på Norge. Dermed ligger kommunene bare omtrent der de skal være, ikke perfekt. Gi meg en lyd om dette er noe du ønsker å fikse, så kan jeg peke. Versjonen som er ute nå har 426 kommuner, som er riktig antall kommuner just nå. Det sagt, så måtte jeg justere inn litt da det originale Norgeskartet som jeg bruker er fra wikipedia, og det hadde de 429 kommunene vi hadde for kun kort tid siden..

Inn og utflytting i kommune-Norge 2017K1.
Inn og utflytting i kommune-Norge 2017K1.

SSB på kartet

Bildet over viser et utsnitt av et kart der jeg henter data fra SSB (inn og utflytting av Norske kommuner første kvartal 2017), lager en metric for flytting gitt innbyggertall, slik at Oslo og Utsira (størst og minst i folketall) blir sammenliknbare, og plotter på firkant-Norgeskartet. Du finner en jupyter notatbok med hele leksa her.

Det er snart valg, da kan vi fargelegge med velgresultater :)
Det er snart kommunereform, da må hele kartet lages på nytt :/

Slik setter du kartverkets kart bak openstreetmaps

Vi som er opptatt av åpne data ender tidvis om å snakke om kartverket. Det er ikke alltid (særlig noen år tilbake) at kartverket får de peneste adjektivene, men i dag skal jeg trekke fram noe fint.

I openstreetmap (osm) er det fortsatt mye av Norge som ikke er kartlagt fullt ut. Kart er også levende dokumenter, i alle fall de som kan endre seg slik som openstreetmap, så det trengs stadig noen rettelser. Når slike rettelser er vanskelige å tracke med GPS eller tegne for hånd, har openstreetmap et sett med bakgrunner du kan legge bak det du lager i kartet, f.eks. flyfoto.

For Norge er ikke alltid disse flyfotoene og alternativene til osm like gode. Lav oppløsning. Skyer. Uvær. Motgang. Men her kommer altså statkart inn og gir en hjelpende hånd. Ved å velge «custom» og så «edit custom background», kan du lime inn en URL til statkart.no sine kart, og ha disse bak det du mapper. Det er nyttig, presist og gjør at kartverkets proffe data kan komme til nytte i mange andre kontekster.

Her er URL’n du trenger:
http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=norges_grunnkart&zoom={zoom}&x={x}&y={y}

Jeg har ikke funnet noen liste over hvilke kart som funker (fant dog valgene til Anders Eriksens her, og at tjenestenavnene herfra (uten «wsm.» forran) ser ut til å funke), det er altså parametre som heter ‘layers=’ der jeg har brukt norges_grunnkart i eksemplet over.

Risør i openstreetmap redigeringsmodus
Risør sentrum i openstreetmaps redigeringsmodus. Legg merke til gråe bygg, de er fra statkart, mens de røde er mappede polygoner som blir til bygninger i openstreetmap. Når noen velger å mappe dem da..

Dette er sikkert et kjent knep for ivrige OSM-brukere, men det var nytt for meg. Om du vet hvor jeg kan finne den fulle listen med tjenestenavn som funker, eller andre nyttige knep for en fersk kartmaker, legg gjerne igjen en kommentar under.

Perspektivering – hva om oljen var her?

Oljen har gjort Norge til et av de mest velstående landene i verden. Det er vi sikkert gladere for enn hva vi gir uttrykk for i det daglige. Vi skal ikke kødde med oljebransjen, men heller ikke la dem kødde med oss.

For at vi skal kunne leve med å leve med oljen må vi ta alle forbehold, også worst-case. Utslipp er kanskje det verste som kan skje, og det skjer i Mexico-gulfen. Men hva som noe tilsvarende skjer i Lofoten, eller andre steder hvor det drilles nær oss?

Andy har laget et kart der du kan legge olje-sølet over din by. Jeg la flaket over Lofoten, et vakkert stykke Norge:

Oljeflaget fra Mexico-gulfen flyttet til Lofoten. Et skremmende prospekt

Oljeflaget fra Mexico-gulfen flyttet til Lofoten. Et skremmende prospekt.

Heldigvis er Lofoten langt fra Mexico-gulfen, men kartet er uansett en stilig måte å sette ulykken i perspektiv. Dette unner vi ikke de stakkars New Orleansianerne.