Archives for category: Data

Hur har allmännyttan i Stockholms stad förändrats de senaste åren? Jag har analyserat fastighetsförteckningar från de kommunala bostadsbolagen Svenska Bostäder, Stockholmshem och Familjebostäder mellan 2007 och 2013.

Sedan 2007 har allmännyttan minskat från 97 933 till 70 094 hyresrätter. Det är en minskning med 27 839 hyresrätter eller 28 procent. Under denna period försvann flest hyresrätter år 2007, då minskningen var 9 740 lägenheter.

Per bolag så står Svenska Bostäder för den största minskningen av hyresrätter, minus 41 procent mellan 2007 och 2013. Under samma period har Stockholmshem minskat sitt bostadsbestånd med 21 procent och Familjebostäder med 14 procent.

diff

Förutom att visa alla fastigheter på kartan år för år, hade jag även en tanke om att det skulle vara intressant att visa endast nyproduktion och försäljningar, det vill säga förändringen mellan två år.

Det jag ville göra var alltså att jämföra filerna för två år i taget, till exempel 2013 och 2012, och på något sätt få fram de fastigheter som bara finns med i en av filerna. De fastigheter som finns med 2013, men inte 2012, är nytillkomna fastigheter. De fastigheter som finns med 2012, men inte 2013, är fastigheter som sålts under året.

Jag testade dessa kommandon i terminalen:

cat 2012 2013 |cut -f1 |sort|uniq -u > list

while read line ;do cat 1 2|grep “$line”;done < list > diff

Det första kommandot kopplar först ihop de två filerna (cat), plockar ut kolumn ett (fastighetsbeteckning), sorterar kolumnen och plockar ut de unika raderna och skickar till filen list. Filen list innehåller alltså fastighetsbeteckningarna för de fastigheter som jag vill få fram.

För att även få med information som byggår och adress för fastigheterna krävs en till manöver. Det andra kommandot läser filen list rad för rad och hittar motsvarande fastighetsbeteckningar i den ihopslagna filen. All information som hör till fastigheten plockas ut och skickas till filen diff.

Här finns kartan som jag gjorde med dessa filer.

Jag har gjort två kartor över allmännyttan i Stockholms stad 2007-2013. Här följer en arbetsbeskrivning.

Insamling av data

Kartorna bygger på fastighetsförteckningar från bostadsbolagens årsredovisningar. Årsredovisningarna finns att ladda ner i pdf-format på respektive bolags hemsida. Jag använde mig av programmet pdftk för att “klippa ut” de sidor jag ville ha från årsredovisningen, det vill säga endast fastighetsförteckningen.

Programmet körs i terminalen på Linux, och jag använde följande kommando:
pdftk arsredovisning.pdf cat 34-46 output fastighetslista.pdf

Det säger åt pdftk att ta ut sidorna 34-46 från filen arsredovisning och skriva ut till en ny fil, fastighetslista. Med hjälp av sidan Cometdocs omvandlade jag sedan pdf-filerna till xls-filer.

Städning av data

Xls-filerna krävde en hel del städning. Jag använde Open Refine för att bland annat ta bort onödiga kolumner och text. I Libre Office Calc lade jag till kolumner som saknades och skapade ett fullständigt adressfält. Till sist slog jag ihop filerna från de olika bostadsbolagen till en enda fil för varje år. Resultatet blev sju filer med cirka 1500 rader i varje.

I Libre Office Calc var formeln VLOOKUP till väldigt stor hjälp. I två av fastighetsförteckningarna fanns det inga gatunummer, utan bara gatunamn. Genom VLOOKUP kunde jag “hämta” många adresser från ett annat års förteckning. Sedan kompletterade jag de adresser som inte fanns med där genom att söka på nätet.

Geokodning

Först installerade jag ett litet script i Google Docs Spreadsheet, enligt instruktioner på denna sida: http://schoolofdata.org/handbook/recipes/geocoding/. Det klarade inte att geokoda alla adresser.

I ett senare läge visade det sig också att det gav samma koordinater till adresser med samma gata, fast olika gatunummer. Det ledde till ett stort fel på kartan, eftersom flera fastigheter blev en och samma punkt. Därför använde jag även gpsvisualizer.com/geocoder för många av adresserna.

Visualisering

Kartan är gjord med hjälp av OpenLayers, som är ett open source Javascript-bibliotek för att skapa kartor. Jag kopierade koden på denna länk: http://wiki.openstreetmap.org/wiki/Openlayers_POI_layer_example och sparade xls-filerna som csv-filer enligt mallen på samma sida.

total

Under våren 2014 gick jag en kurs i datajournalistik på Södertörns högskola. Som slutprojekt ville jag undersöka hur allmännyttan i Stockholm ser ut idag och vid ett antal tidpunkter längre tillbaka i tiden genom att visualisera det på en karta.

Resultatet blev två kartor som visar alla fastigheter med hyresrätter hos de kommunala bostadsbolagen Svenska Bostäder, Familjebostäder och Stockholmshem uppdelat på år.

Den första kartan visar hur det såg ut i början och slutet av den undersökta perioden. 2013 fanns de blåa fastigheterna i allmännyttan och 2007 de röda. Den andra kartan visar alla år mellan 2007 och 2013. Läs mer om kartorna här.

Jag har gjort en lokal ytmönsterkarta med data från valmyndigheten. Det är en uppgift för en kurs i datajournalistik på Södertörns högskola, som jag går under våren.

Så här gjorde jag för att skapa en krypteringsnyckel i Linux.

1. Öppna programmet Seahorse.

2. Välj “New…” under “File”.

3.  Välj vad du vill skapa, i det här fallet “PGP Key”.

4. Fyll i ditt namn och mejladress.

5. Tryck på “Advanced key options” om du vill ändra default-inställningarna.

6. Skriv in ett lösenord till nyckeln. Se till att det inte är för lätt. När du trycker på OK kommer programmet att skapa en krypteringsnyckel.

7. Det kan ta en stund.

8. Nu är krypteringsnyckeln skapad och du kan se den i fönstret.

9. Spara en kopia av nyckeln genom att gå in på “Export…” under “File”.

Det finns ett par saker till som kan vara bra att göra (och jag använde terminalen till detta).

Publicera nyckeln på en nyckelserver genom att skriva följande kommando i terminalen (byt ut KEYID):

gpg –keyserver pgp.mit.edu –send-keys KEYID

Skapa och spara ett revocation certificate för framtida behov genom följande kommando:

gpg –output revoke.asc –gen-revoke KEYID

Min nyckel finns här.

Varför?

E-postmeddelanden är som vykort – lätta att läsa för den som får tag på dem. Om man inte vill att någon annan än mottagaren ska kunna läsa meddelandet ska man kryptera det.

Hur fungerar det?

När man krypterar ett meddelande förvrängs det och blir oläsligt, till och med för den som skickar det. Bara mottagaren kan låsa upp meddelandet med sin nyckel.

Krypteringsnyckel

För att skicka eller ta emot krypterade e-postmeddelanden behöver man en krypteringsnyckel. Krypteringsnyckeln består av två delar, en publik del och en privat del.

Den publika delen lämnar man ut till den som man ska mejla med. Det går även att söka efter publika nycklar på en nyckelserver. Den privata delen av nyckeln behåller man själv och den ska aldrig lämnas ut.

Man krypterar meddelanden med mottagarens publika nyckel, och mottagaren låser upp meddelanden med sin privata nyckel.

Digital signatur

För att avgöra om avsändaren verkligen har skickat mejlet och att innehållet inte har förändrats använder man dessutom en digital signatur.

Genom att signera ett krypterat mejl försäkrar du mottagaren om att det är du som har skickat och krypterat mejlet.

Hur gör man?

Det finns flera standarder för kryptering. De vanligaste är S/MIME och PGP. GPG (Gnu Privacy Guard) är en open source-version av PGP.

I Linux kan man använda ett program som Seahorse eller terminalen för att skapa en krypteringsnyckel.

En dator som ansluts till internet får en IP-adress (sök på “vad är min ip-adress” för att lätt ta reda på den) och när man surfar lämnar man alltid spår efter sig på de webbsidor som man besöker. Det finns olika sätt att surfa anonymt. Tor är ett gratis program för anonym surfning som fungerar för både Mac, Windows och Linux.

När man surfar med Tor skyddas man mot trafikanalys (dataövervakning) genom att Tor gömmer en bland de andra som använder nätverket och det går inte att spåra avsändaren eller mottagaren av information. Däremot krypteras inte själva informationen, till exempel text och bilder som sänds, och kan därför läsas av tredje part.

För att använda Tor laddar man ner Tor Browser Bundle till sin dator. Programmet behöver inte installeras och lämnar inga spår efter sig. Man kan även spara programmet på ett USB-minne och ta med sig. Det innehåller en specialversion av webbläsaren Firefox som man surfar med.

För att göra surfningen ännu säkrare finns det ett par saker att tänka på:

  • Använd Tors webbläsare.
  • Aktivera och installera inga plugins till webbläsaren.
  • Använd HTTPS-versioner av webbplatser.
  • Öppna inte dokument som du har laddat ner med Tor medan du fortfarande är uppkopplad.
  • Var försiktig med att fylla i webbformulär och att logga in på webbplatser.

I höstas gick jag en gratis kurs på nätet: Introducton to Databases. Den är till stor del baserad på den databaskurs som studenterna i datavetenskap på Stanford University läser och ges av samma professor.

Kursen var tio veckor lång och tog upp en rad olika ämnen:

  • Relational databases
  • XML
  • Relational algebra
  • SQL
  • Relational Design Theory
  • Quering XML (XPath, XQuery, XSLT)
  • UML
  • Index
  • Constraints and Triggers
  • Views
  • Authorization
  • Transactions
  • Recursion
  • OLAP
  • NoSQL

Kursen bestod av videoföreläsningar (ca 2 timmar i veckan), uppgifter och två tentor. Efter kursen fick man ett “statement of accomplishment” med uppnådda resultat på uppgifter och tentor, men det är inget officiellt intyg från Stanford och man får inga universitetspoäng för kursen.

Utöver föreläsningarna tog uppgifterna allt från en halvtimme upp till flera dagar. Jag kan tänka mig att det beror på hur mycket programmering och matematik man redan kan. Själv har jag läst enstaka kurser på universitetsnivå i dessa ämnen och kunde hänga med i övningarna, men det var inte helt lätt.

Snart sätter vårens kurser igång. Tyvärr ges inte databaskursen igen, men på den här sidan finns material om man vill plugga själv. Och det finns flera andra spännande kurser att amäla sig till. Vad sägs om datavetenskap för nybörjare, Natural Language Processing, Cryptography eller Information Theory? Titta längst ner på kurssidorna för att se en lista över alla kurser.

Den här bloggen tänkte jag använda som en anteckningsbok när jag försöker lära mig nya saker som kan vara till nytta i arbetet som journalist. Bland annat vill jag testa olika verktyg som finns gratis på nätet och det första som jag tänkte ge mig på är att skapa ett ordmoln (känns lagom överkomligt för en bloggnybörjare).

För att skapa ett ordmoln kan man använda till exempel Wordle eller TagCrowd. Man matar helt enkelt in en text eller en URL på hemsidan och ut kommer ett ordmoln. Ord som används oftare i texten blir större. Det är alltså ett sätt att visualisera data.

Några exempel på hur Wordle har använts av journalister är till exempel när Guardians datablogg jämförde Obamas tal till parlamentet med Clintons och Reagans tal eller när de jämförde Obamas tal efter skjutningarna i Arizona med Sarah Palins uttalande. Lite mer avancerat blir det om man först samlar in datan som man vill analysera, till exempel twitterkommentarer om ett visst ämne eller 22 000 horoskop.

Men man kan man fråga sig hur användbara ordmoln egentligen är? Bara för att man lätt kan visualisera något betyder inte det att det är det effektivaste sättet att presentera informationen, utan det kan i stället leda till missvisande “chartjunk” (diagramskräp), skriver journalistikprofessorn Paul Bradshaw.

Till sist, resultatet av min egen Wordle-premiär kan ni se nedan. Jag matade in URL:en för DN Bostad, vilket resulterade i följande ordmoln:

ordmoln

ENGLISH SYNOPSIS: In this blog I will try new tools that are available online and can be useful for journalists. In this post I discuss the usefulness of creating “word clouds” using tools like Wordle or TagCrowd and link to interesting examples of journalists visualizing data in this way. But I also point out that even though visualizations can be easy to make, they might not be the right way to present information. My own word cloud is created from the URL to the Homes section of Sweden’s largest news paper.