All posts by Anders G. Eriksen

  • Slik tar du CartoDB-kartet ditt til neste nivå

    Skjermbilde 2016-02-03 kl. 13.34.40

    Først: har du ikke lest “Fem tips til et bedre kart” så bør du gjøre det nå.

    Denne bloggposten tar for seg litt mer avansert bruk av CartoDB.

    Legg logikk i infovinduene

    Ofte har du en kolonne i tabellen din som har verdier i enkelte rader og er tom/null i andre rader. Da kan det være nyttig å vise verdien der den finnes, f.eks. som del av en tekst, samtidig som du viser en annen forhåndsdefinert tekst dersom verdien mangler.

    Infovinduene i CartoDB bruker et malspråk kalt Mustache. Der kan du lage enkel if else-logikk på følgende måte:

    Kodesnutten over gjør følgende: Sjekker om “minkolonne” har verdi {{#minkolonne}} (ikke er tom). Hvis den har det vises et avsnitt med tekst og verdien fra kolonnen. Dersom det ikke er verdi {{^minkolonne}}  , vises en annen tekst.

    Avrunding og norske tegn

    CartoDB bruker konsekvent engelsk format på tall. Det betyr at desimalskilletegnet er punktum. Det fungerer greit så lenge du bare skal regne med verdier, men skal du vise verdiene i kartet eller infovinduer vil du gjerne ha komma som skilletegn.

    Som regel bør du også runde av tallene i samme slengen. Det gjør du med følgende SQL:

    Her må du bytte ut “minkolonne” med navnet på kolonnen som har tallet ditt, og “mintabell” med navnet på din tabell. Du får da ut en ny kolonne som heter “minkolonne_avrundet” som er avrundet til et desimal og bruker komma i stedet for punktum.

    Du kan bruke den nye kolonnen i et infovindu ved å bruke  {{minkolonne_avrundet}} som vanlig.

    Fjern støy i kartet

    Her blir det litt mye på en gangDersom du legger til labels i kartet (tekst) f.eks. ved bruk av wizarden i CartoDB så kan det fort bli for mye informasjon i kartet når du har zoomet ut.

    Du kan løse det med å si at lablene først skal vises når brukeren har nådd et visst zoomnivå i CartoDB. Hver gang du zoomer inn kommer du til et nytt nivå. Hvilket nivå det er kan du se på tallet som står under zoom-knappene i CartoDB.

    La oss si at du vil skjule labels helt til brukeren har zoomet inn til nivå 7 eller mer.

    • Begynn med å klikke på “CSS”-fanen.
    • Legg til koden   [zoom>7] etter der det står  ::labels

    Eksempel:

     

    Avansert filtrering

    For å filtrere hvilke verdier som skal vises kan du bruke filter-fanen i CartoDB. Vil du ha mer kontroll kan du bruke SQL-kode.

    Denne koden vil kun vise de punktene som har navn som er del av den komma separerte listen:

    Dersom du for eksempel har kommunenummer i en kolonne kan du velge å vise kun kommuner i Hordaland (fylke 12) og Sogn og Fjordane (fylke 14) med følgende SQL:

    Husk å bytte ut “mintabell” med navnet på din tabell.

    Importere datasett med andre koordinatsystem

    Dersom du får geodata fra offentlige instanser er sannsynligheten stor for at du får det i et annet koordinatsystem enn det CartoDB-bruker.

    Det offisielle koordinatsystemet i Norge er UTM/EUREF89. Der er koordinatene angitt i meter nord og øst for et nullpunkt. For å gjøre det mer komplisert finnes det flere UTM-soner i verden. Du må derfor sjekke hvilken sone koordinatene du har fått er angitt i. De vanligste er 33N og 32N.

    Alle koordinatsystem har en slags unik id, kalt SRID. For å få CartoDB til å konvertere dine koordinater til lengde- og breddegrad må du vite denne id-en. Sannsynligvis trenger du kun å notere deg at UTM33N har id 32633 og UTM32N har id 32632.

    I et datasett (eks et Excel-ark) med UTM-koordinater vil du ha to kolonner, et for nord og et for øst. Kall dem gjerne “utm_nord” og “utm_ost”.

    Slik gjør du: 

    • Sørg for at du har to kolonner i arket ditt med utm_nord og utm_ost (eller tilsvarende)
    • Importer arket på vanlig måte i CartoDB
    • Velg SQL-fanen og bruk følgende SQL (merk at det her er angitt at kildekoordinatsystemet er UTM33N (altså id 32633))

      SQL-spørringen over tar utgangspunkt i de to kolonnene dine med nord- og øst-koordinater og konverterer dem fra UTM33N (SRID 32633) til koordinatsystemet CartoDB-bruker (SRID 4326).
    • Pass på å velge “Map view” etterpå og se om punktene ligger rett sted.
    • OBS: denne metoden fungerer kun om dataene dine er punkter, ikke polygoner eller linjer.

    Flere tips

     

  • Få deg et (kommune)-nummer

    Skjermbilde 2016-02-03 kl. 12.31.59

    La oss ta det først som sist: ser du et kommunenummer med tre sifre så betyr det trøbbel.

    Som datajournalist kommer du garantert innom kommune- og fylkesnummer på din vei gjennom offentlige datasett.

    Kommunenummer er en unik identifikator for hver eneste kommune i Norge. Og unike indentifikatorer liker vi. Det gjør det enklere å krysse datasett, sette dem sammen, og vite at du opererer med riktig kommune.

    Lite kreativt

    I Norge er vi nemlig så lite kreative at vi ikke har klart å finne unike navn på hver kommune. Det finnes to av både Herøy, Sande, Nes, Os, Våler og Bø kommuner i ulike fylker.

    Det betyr at dersom du krysser to datasett basert på kommunenavn kan du ende opp med å krysse feil kommuner med hverandre.

    Alltid fire sifre

    Kommunenummer i Norge har alltid fire sifre. De to første angir fylket (eks 12 for Hordaland), mens de to siste angir kommunen i fylket (1201 for Bergen). Det skal alltid være fire sifre. Det betyr at f.eks. Halden har kommunenummer 0101 og ikke 101.

    Siden kommunenummer har ledende null er det viktig at du behandler det som en tekststreng og ikke et tall i databaser etc. Gjør det uten unntak og du får mindre trøbbel med å matche datasett.

    Slik konverterer du til rett format

    Ofte kan du få tilsendt datasett som ikke har ledende null i kommunenummeret (eks 101 for Halden). Slik endrer du på det:

    I Excel

    • Dersom kommunenummeret ditt (eks 101) står i celle B2, kan du bruke denne formelen i cellen C2 ved siden av:  =TEKST(B2;"0000")
    • Marker kolonnen C og velg å formattere den som tekst (Cmd+1 eller Ctrl+1).
    • Du kan så kopiere den formelen nedover og den retter opp alle kommunenummer med tre sifre.

    I Python

    Bruk funksjonen zfill for å legge til null i begynnelsen av nummeret slik:

    I Javascript

    I SQL (Postgres og f.eks. CartoDB)

    Pass på at du først endrer kolonnetypen til tekst. I CartoDB gjør du det i drop-down menyen over kolonnen. Så kan du kjøre denne SQL-spørringen. Pass på at du bytter ut “mintabell” med navnet på din tabell.

    I QGIS (kartverktøy)

    • Høyreklikk på laget ditt og velg “Show attribute table”
    • Klikk på blyanten helt oppe til venstre for å starte redigering
    • Klikk på kuleramma til høyre (“Field calculator”)
    • Kryss av for “Create a new field” og legg inn det nye feltnavnet i “Output field name”
    • Velg Text i “field type” og set “output field width” til 4.
    • Bruk så koden  lpad(kommunenummer, 4, '0') i expression-feltet.
    • Klikk OK og QGIS generer et nytt felt med riktig kommunenummer (fire sifre) til deg.

    PS: Liste over alle kommunenummer finner du blant annet hos SSB.

    Lager du kart i CartoDB?: Få fem tips til et bedre kart her og her kan du dykke ned i avanserte SQL-spørringer for å få mer ut av ditt kart.

     

  • Fem tips til et bedre kart

    cartodb_blogg2

    Et godt kart kan opplyse leserne dine på en enkel og kjapp måte. Men det er lett for at kartet blir for detaljert, eller at viktig informasjon gjemmes vekk i popups.

    På #bord4 er vi flittige brukere av CartoDB. Det spanske verktøyet lar deg enkelt lage kartvisualiseringer av datasett og regneark du har liggende.

    Vi har laget mye rart i CartoDB, og her er noe av det vi har lært.

    Read more

  • Slik laget vi #kommunebygger – del 2: kart, men uten terreng

    Kart, men ikke terreng

    Historien om et kart uten terreng, og en dose nyttige kartverktøy.

    Dette er del 2 i serien “Slik laget vi #kommunebygger”. Del 1 finner du her og del 3 finner du her

    Read more

  • Slik laget vi #kommunebygger – del 1: tall til folket

    #kommunebygger

    Vi trodde kommunesammenslåing var noe grått og byråkratisk. 25.000 kommuner senere viste leserne at vi tok feil.

    Dette er det første av tre blogginnlegg om #kommunebygger. Del 2 om kart finner du her og del 3 om viral folkeopplysning finner du her. Vi har også laget en metoderapport til Skup som du kan lese i sin helhet her (PDF).

    Read more

  • Når kun den innerste kretsen er god nok

    grunnkretser

    Vi liker å gi det store bildet, trendene, de nasjonale tallene. Men kanskje er det nabolaget leseren er mest interessert i. Slik får vi dem med inn i våre interaktive univers.

    Read more