espenandersen.no

Dataprogrammering som journalistisk metode

Hvor er nærmeste lokalavis?

5. februar 2010
Aviskart

Nå trenger du ikke lenger lete lenge for å finne redaksjonen som er nærmest en nyhetshendelse.

Hvilken lokalavis dekket nyhetsbegivenheten?

Problemstillingen er nokså vanlig i større redaksjoner som ønsker å kjøpe de ferskeste pressebildene fra hendelser rundt om kring i landet.

For noen år siden laget jeg dette kartet, som plasserer de fleste av landets aviser geografisk. Du kan søke på stedsnavn eller avisnavn.

Forhåpentlig kan kartet gjøre jakten på bildene enklere.

Informasjonen er hentet fra hjemmesidene til Mediebedriftenes Landsforening (MBL) og Landslaget for Lokalaviser (LLA).

Gå til kartet.

Skjermskraping i Access

21. januar 2010

Jeg får ofte spørsmål om hvilke dataprogrammer som kan brukes til å massenedlaste strukturerte data fra nettet til journalistisk bearbeiding. Teknikken kalles ofte for skjermskraping eller web scraping. 

De alternativene som finnes er ofte kompliserte å bruke. Noen av dem er i tillegg kostbare i innkjøp. Du kunne lenge laste ned RoboMaker fra OpenKapow. Dette programmet var lenge et alternativ. Men en funksjonell versjon av programmet er ikke lenger tilgjengelig. 

Access og makroer

Mange har imidlertid Microsoft Access installert på sin maskin. Dette er i utgangspunktet et program for å lage personlige databaser. 

Makro-knappen finner du under "Opprett"-fanen i siste versjon av Access

Makro-knappen finner du under "Opprett"-fanen i siste versjon av Access. Velg "Modul".

Men Microsoft har forsynt sine Office-applikasjoner med et kraftig programmeringsverktøy som vi kan utnytte. 

Dersom du oppretter et nytt databaseprosjekt, får du muligheten til å opprette tabeller og spørringer. Men i tillegg har du makroer. Under opprett-fanen kan du klikke på pilen nede på ”Makro“-knappen. 

Velg “Modul“. Du kommer da inn i et komplett utviklingsmiljø der du kan bruke programmeringsspråket Visual Basic for Applications (VBA) til å styre nær sagt hva du vil på datamaskinen. 

For å laste ned informasjon fra nettet, trenger du en nettleser, for eksempel Inernet Explorer (IE). IE kan “fjernstyres” fra Access, og koden bak nettsidene du navigerer til kan hentes. Deretter kan du hente ut strukturert informasjon fra nettsiden. 

Jeg har skrevet litt mer konkret om temaet i forbindelse med et innføring jeg hadde for en håndfull spesielt interesserte kolleger på IJ i begynnelsen av denne uken. Hvis du også er spesielt interessert, finner du mer om temaet her.

Ny seier i miljøklagenemnda

11. januar 2010

Siste: I dag (28. januar) kom filen med basestasjonene fra NetCom – innenfor fristen og på et format som gjør det greit å oppdatere kartet på nettet.

I dag kom vedtaket fra miljøklagenemnda, der Netcom pålegges å utlevere en samlet oversikt over sine GSM-basestasjoner til Brennpunkt-redaksjonen. Tidligere er Telenor pålagt å gjøre det samme.

Informasjonen om hvor GSM-senderne står faller inn under bestemmelsene i miljøinformasjonsloven, og skal altså være tilgjengelig for allmennheten.

Les vedtaket her: DOCS-#1384684-v1-NetCom_-_endelig_vedtak

Ifølge klagenemnda er informasjonen om mobilbasestasjonenes plassering å regne som miljøinformasjon som ikke kan holdes tilbake. Dermed har enhver rett til å få utlevert disse opplysningene fra telenoperatørene:

Flertallet kom til at informasjon om mobilmastenes plassering er opplysninger om forhold som kan medføre en ikke ubetydelig påvirkning på miljøet, jf mil. § 9. Sentralt i flertallets vurdering stod at, selv om Statens strålevern ikke per i dag har dokumentasjon på at det foreligger helserisiko ved stråling, medfører den usikkerheten som foreligger og publikums interesse og uro i tilknytning til strålingen fra mastene, at vilkåret om ”ikke ubetydelig påvirkning” jf mil. § 9 må anses oppfylt.

Jeg synes dessuten at det er interessant at flertallet mener den fysiske utplasseringen av mobilmastene alene kan anses som relevant i forhold til miljøinformasjonsloven. Uavhengig av de vurderingene man måtte gjøre i forhold til strålingen: 

(…) For øvrig peker flertallet på at selve den fysiske utplasseringen av mobilmaster rundt om i landet uansett i mange tilfelle trolig ville måtte anses som et forhold som kan ha en ikke ubetydelig påvirkning på miljøet på grunn av de inngrep som dette forårsaker.

Jeg ba om oversikten for å kunne utvide kartet over GSM-senderne ytterligere. Foreløpig inkluderer det kun Telenor sine sendere.

Kartet har vært godt besøkt siden NRK publiserte det på nettet, og interessen for temaet er åpenbart stor.

Søk i fylkesmennenes postlister

13. desember 2009

Vi venter vel alle på  at den nye, elektroniske postjournalen for forvaltningen skal komme. I mellomtiden har jeg samlet fylkesmennenes postlister i en søkbar database og gjort den tilgjengelig her.

Noen av dere husker kanskje at jeg gjorde akurat dette allerede for noen år siden. Den gangen gikk tjenesten ned etter en stund, fordi formatet på postjournalene ble endret slik at databasen ikke lenger  ble oppdatert.

Nå har jeg skrevet applikasjonen på nytt, og forbedret den en del. Databasen oppdateres hver natt. Den leser postjournalene fra statiske websider hos www.fylkesmannen.no og legger dataene inn i en database.

På den måten får du nå mulighet til å følge enkeltsaker ved å klikke på saksnummeret, eller se hvilke saker som sorterer under gitte avdelingskoder eller saksbehandlere. 

Gå til databasen og prøv selv. Den er forbeholdt journalistisk virksomhet.

Digital speilrefleks under vann

26. november 2009

Undervannshus til Nikon D200 koster noen kroner, men etter dagens dykk må jeg bare si at det var verd pengene!

Her ser dere noen av bildene jeg tok på 10-20 meters dyp utenfor Gylte ved Drøbak i dag:

Som ekte nerd har jeg naturligvis skrudd sammen en plugin til WordPress som leser eksportfilene fra dykkercomputeren min og presenterer dykkerprofilen her.

Undervannshus til Nikon D200

Kjenner at fotointeressen får en ny renessanse nå. Undervannshuset er av merket Nimar (italiensk fabrikat, håpløse hjemmesider), faktisk en forholdsvis rimelig løsning. Huset er gjennomsiktig, og laget av polykarbonat.

Fra før av hadde jeg en Nikonos SB-105 undervannsblitz, som jeg festet til Nimar-huset ved hjelp av plaststrips.

Dertil har jeg kjøpt et fokuslys, som gjør det mulig for kameraets autofokus å holde følge også under såpass dårlige lysforhold som i Oslofjorden i slutten av november.

Valg av brennvidde

Porten (tuten) på undervannshuset kan byttes ut, avhengig av hvilke objetiv du ønsker å ha med deg ned. Jeg gikk for en vidvinkelport til mitt oppsett.

På kameraet står et 20mm objektiv. Jeg priorterte vidvinkel av følgende grunner:

  • Vidvinkelobjektiver har stor dybdeskarphet. Dette betyr at du kan bruke større blenderåpninger i dårlig lys.
  • Med vidvinkel blir kamerabevegelser mindre synlig på bildene. Med andre ord kan du bruke lengre lukkertider for å beholde mest mulig av det lille eksisterende lyset som finnes under vann.
  • Du kan gå mye nærmere motivene. Det betyr færre siktreduserende partikler mellom kameraet og motivet. Bildene blir klarere og skarpere dess nærmere motivet du kommer.
  • Vidvinkel gir god dybde i bildene. Det er lettere å ta bilder med en distinkt forgrunn der perspektivet ikke er sammentrykket og flatt.

Kartet over GSM-stasjonene

16. november 2009
I sommer laget jeg en oversikt over GSM-basestasjonene til Telenor, som ble publisert på NRKs nettsider.

I sommer laget jeg denne oversikten over GSM-basestasjonene til Telenor, som ble publisert på NRKs nettsider.

Jeg legger inn noen linjer om hvordan jeg jobbet med Brennpunkts kart over Telenors basestasjoner. Kanskje noen har innspill til andre og bedre måter å løse ting på i fremtidige prosjekter?

1 Innhenting av data

Rådataene kommer fra Telenor, men utleveringen skjedde ikke frivillig. Vi begjærte innsyn i dataene med hjemmel i miljøinformasjonsloven.

Innsynsbegjæringen ble avslått, men miljøklagenemnda ga oss medhold, og påla teleselskapet å utlevere dataene.

Vi har i skrivende stund en tilsvarende klagesak gående mot NetCom, som også motsetter seg utlevering av informasjon om basestasjonenes plassering.

2 Konvertering av data

Dataene fra Telenor kom som en Excel-fil, med felter for kommune, navn, type, og desimalgrad. Denne konverterte jeg til en sql-fil for databaseimport.

3 Databasen

Jeg brukte MySQLs geospatial indexing for koordinatene til basestasjonene. Denne delen av MySQL er imidlertid svært mangelfull. PostgreSQL gir langt bedre muligheter dersom man tar i bruk PostGIS.

Mange av GIS-funksjonene i MySQL er ennå ikke implementert, for eksempel funksjonen for å regne ut avstand mellom to punkter, noe jeg trengte for å plukke ut nærmeste basestasjoner i forhold et gitt kartpunkt, samt geografisk avstand i kilometer mellom hver av dem.

Jeg fant denne presentasjonen, som beskriver en veldig hårete spørring for å returnere avstanden mellom to punkter i MySQL. Funker som bare det J

http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

4 XML-feeden

Et PHP-skript genererer en XML-feed med informasjon om basestasjonene innenfor et kartutsnitt. Klienten (flashapplikasjonen) rapporterer valgt kartutsnitt til PHP-skriptet, som returnerer et cachet utsnitt tilpasset området brukeren vil titte på.

Eksempel:

http://www.nrk.no/basestasjoner/list.php?bounds=18.80,69.70,19.12,69.60&z=9

Skriptet normaliserer (kvantiserer) det bestilte utsnittet, slik at de returnerte dataene alltid dekker et større område enn det utsnittet (viewport) brukeren ser på i øyeblikket. Dette for å begrense nettverkstrafikken og for å gjøre caching praktisk mulig.

Jeg har forsøkt å begrense størrelsen på individuelle XML-filer til under 300K. De fleste ligger nok på godt under 100K.

Klienten gjør en ny spørring mot databasen bare dersom brukeren har dratt kartet utenfor den leverte rammen.

5 Clustring av kartpunkter

I områder med stor tetthet av kartpunkter blir punktene samlet i klynger. Dette skjer server-side, i PHP-skriptet. Klienten rapporterer zoomnivået, noe som gjør det mulig å regne ut avstand i absolutte piksler mellom hvert punkt.

Punkter slås sammen dersom avstanden mellom dem er mindre enn 70 piksler. Informasjon om hvordan gjøre dette fant jeg et eksempel på her:

http://www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps

Clustringen skjer altså server-side for å avlaste klientene. Dette er en tung rutine som drar fordel av server-side cacing. Client side clustering av kartpunktene ville ført til ulidelig treg responstid på lave zoomnivåer.

6 Caching

Bruker Zend Cache, hvor man enkelt kan swappe mellom memcached og file cache. Produksjonsmiljøet kjører med memcached og nyter godt av gode responstider, selv når trafikken er høy.

7 Google Maps for flash

Veldokumentert API her:

http://code.google.com/intl/no/apis/maps/documentation/flash/reference.html

Har ingenting i mot AJAX, men det blir for kronglete å styre med JS i publiseringsverktøyet vårt, som er Polopoly — derfor ble det Flash.

Bruker for øvrig Googles geocoding-tjeneste (ClientGeocoder-objektet) til stedsnavn-søket. Informasjonsknappen som søker opp basestasjoner rundt et gitt kartpunkt bruker dessuten Googles reverse geocoding-funksjon for å returnere stedsnavn fra et gitt koordinat.

8 Grafikk

Animerte kartikoner er laget i LightWave 3D. Ikke veldig utfordrende å lage noe som ligner på de rektangulære GSM-antenneboksene til Telenor.

Animasjonen ble lagt inn i en egen (bitte liten) flash-fil og kompilert til en frittstående swf som jeg deretter embeddet i hoved-flashen.

Størrelsen på den ferdige swf-en er 228 kB. Den inkluderer alt av grafikk, animasjoner og fonter. Flashappen bruker ikke andre eksterne ressurser enn Google Maps API-et samt XML-feeden fra vår egen MySQL-database.

Dere kan slutte å mase

14. november 2009

Gamle espenandersen.no har tatt turen til de uvaliderte websiders evige jaktmarker.

Dette skjer etter et vedvarende, utidig press fra visse venner og kolleger, hvis omsvøpsløse karakteristikker av mine tidligere, håndkodede websider nærmet seg Dagbladets legendariske slakt av Postgirobyggets «Supertanker» i 1999.

De hadde rett. Foreløpig er det litt snaut med innhold her, men satser på å fylle opp med faglige ting, pludring og hobbyting utover vinteren.

Häng med!