DUIC in data: Sporten gezonde wijken meer?

| Om gelijk maar met de deur in huis te vallen: deze relaties hebben we niet kunnen vinden. Een gezondere wijk vraagt niet meer leefbaarheidsbudget aan voor sportactiviteiten dan een minder gezonde wijk. En sportvoorzieningen zijn zo goed verspreid over de stad dat bijna niemand meer dan 5 kilometer hoeft te reizen om te kunnen sporten. Ondanks dat dit geen spectaculair artikel oplevert wilden we wel graag delen hoe we tot deze conclusie zijn gekomen. (Data)journalistiek is tenslotte zoeken naar verhalen, en in dit artikel kunnen we op zijn minst delen hoe we op zoek zijn gegaan. |
Het leefbaarheidsbudget, nu initiatievenfonds genoemd, is een fonds voor grote en kleine initiatieven in Utrecht. De gemeente wil met het geven van een bijdrage meer mensen stimuleren om zich vrijwillig in te zetten voor elkaar, de buurt, de wijk of de stad Utrecht. |
Wat valt op?
Het eerste dat hieruit opvalt is dat er grote verschillen zitten in de uitgaves uit het leefbaarheidsbudget per inwoner per wijk. Zo heeft Zuid hier géén leefbaarheidsbudget voor ingezet en Zuidwest het meeste van alle wijken. Kijken we naar de relatie tussen de ervaren gezondheid, dan is er geen direct logisch verband uit op te maken. In wijken waar minder mensen aan te geven hun gezondheid als gaat wel, slecht of zeer slecht ervaren wordt niet méér aan Sport en Bewegen uitgegeven uit het leefbaarheidsbudget. Een licht vermoeden bestond dat dit omgekeerd evenredige verband er wel zou zijn.Nabijheid van sportfaciliteiten
Een volgende vraag die vervolgens opspeelde was de afstand die iemand af moet leggen om bij een sportvoorziening te komen. Zou er misschien een verband zitten tussen de bestedingen aan leefbaarheidsbudget per wijk en de afstand tot sportvoorzieningen? Deze speurtocht leidde tot de volgende kaart. Om deze kaart iets makkelijker leesbaar te maken hebben we deze op een kaart van Utrecht van openstreetmap gelegd. [caption id="attachment_151089" align="aligncenter" width="610"]Verantwoording
Leefbaarheidsinitiatieven en ervaren gezondheid
De dataset van leefbaarheidsinitiatieven in 2013 hebben we gerangschikt op thema en subthema. Dan wordt duidelijk dat er een thema “Sport en Bewegen" is, deze vallen ook onder het Thema Welzijn / subthema Bewegen. Tevens geeft deze tabel ook de wijken waar dit budget gehonoreerd/uitgegeven is. Uit deze gegevens hebben we kunnen halen hoeveel er vanuit het leefbaarheidsbudget aangevraagd is voor "Sport en Bewegen". Omdat wijken nogal verschillen in grootte hebben we uitgerekend wat er per inwoner per week besteed is. Het inwonersaantal in de wijken is afkomstig van de wijkwijzer 2013 (p19). De gezondheid van Utrechters komt uit het gezondheidspeiling 2012 (excel). Helaas waren deze gegevens niet van 2013 beschikbaar. Het gebruik van deze data vinden we verdedigbaar omdat de veranderingen per wijk minimaal zijn én omdat enige afwijking toelaatbaar is voor deze vergelijkingen. Uit deze tabellen hebben we de gegevens gebruikt van mensen die aangeven dat ze hun “gezondheid ervaren als gaat wel, slecht of zeer slecht”. De inwoners die aan hebben gegeven dat ze “zwaar belemmerd bij dagelijkse bezigheden door lichamelijke en/of psychische ziekte of aandoening” zijn, hebben we buiten beschouwing gelaten doordat de verwachting is dat deze minder gebruik zullen maken van sportvoorzieningen.Afstand tot sportlocaties
Tijdens het onderzoek voor dit artikel kwamen we terecht op sportinutrecht.nl. Op deze site worden alle sportlocaties in de gemeente Utrecht bijgehouden. Na een vraag stuurden ze spontaan de lijst op. Maar wat te doen met de lijst? Een simpel overzicht maken met pinnetjes op iedere locaties voegde niet zoveel toe aan wat zij al boden. Maar als we het over gezondheid en sport hebben, is de factor afstand tot sportvoorzieningen natuurlijk ook interessant. Immers, hoe verder weg een voorziening is, hoe groter de drempel om vaak te sporten.Dus vroegen we ons af wat nou in de Gemeente Utrecht voor iedere willekeurige plek de afstand tot de dichtstbijzijnde voorziening was. Een eenvoudige vraag, die iets minder eenvoudig te beantwoorden dan je zou denken. Je zou bijvoorbeeld van iedere huisadres de afstand tot dichtstbijzijnde sportlocatie kunnen uitrekenen. Maar dat is best bewerkelijk. Dus bedachten we dat we Utrecht gewoon in vlakjes van honderd bij honderd meter opdelen en vanaf het midden van ieder vlakje bepalen hoe ver de dichtstbijzijnde locatie is en dan een mooie heatmap maken. Zo gezegd, zo gedaan. Ho ho, niet zo snel. Want er bleken nogal wat stapjes te nemen. Zo moesten we van iedere sportlocatie nog even de GPS coördinaten weten voor het uitrekenen. Gelukkig werden daarvoor via twitter snel zeer bruikbare opties aangeleverd. Overigens hebben we de locaties die alleen voor specifieke doelgroepen bestemd zijn, uit het lijstje gehaald. In Python, een programmeertaal, ziet dat stuk er dan als volgt uit:
lees = open("locaties_sport.txt","r")
regels = lees.readlines()
locaties = []
for regel in regels:
regel = regel.strip("n")
waarden = regel.split(",")
if len(waarden)>3:
locaties = locaties + [[waarden[4],waarden[3]]]
Goed, dus nu hadden we de gps-coördinaten van die locaties. Nu moeten we Utrecht nog in vlakjes van 100 bij 100 meter opknippen. Nu is het met een Pythonscript makkelijk een een groot raster met vlakken te genereren van west naar oost en van noord naar zuid waarbinnen Utrecht zeker valt. Hoppa, een blok van 200 bij 200 vlakjes (20km bij 20km).
bestand_schrijf = open("raster_uit.txt","w")
for i in range(0,200):
y=y-0.00089873
x=4.950000
for j in range(0,200):
x=x+0.00145898
bestand_schrijf.write(str(y)+”,”+str(x)+”n”)
We lezen het bestandje in Tableau (visualisatie software) in. Maar dan krijg je dit:
from matplotlib.path import Path
#laad gemeentegrens
with open("grens_utrecht.json") as data_file:
data = json.load(data_file)
coordinaten = data["features"][0]["geometry"]["coordinates"]
pad = Path(coordinaten[0][0])
bestand_schrijf = open("raster_uit.txt","w")
y=52.150000
for i in range(0,200):
y=y-0.00089873
x=4.950000
for j in range(0,200):
x=x+0.00145898
if pad.contains_point([x,y]) == 1:
#als punt binnen grens, schrijf resultaten weg
bestand_schrijf.write(str(x)+","+str(y)+"n")
Dan ziet het plaatje er al beter uit.
from matplotlib.path import Path
from geopy.distance import vincenty
#laad coordinaten sportlocaties
lees = open("locaties_sport.txt","r")
regels = lees.readlines()
locaties = []
for regel in regels:
regel = regel.strip("n")
waarden = regel.split(",")
if len(waarden)>3:
locaties = locaties + [[waarden[4],waarden[3]]]
#laad gemeentegrens
with open("grens_utrecht.json") as data_file:
data = json.load(data_file)
coordinaten = data["features"][0]["geometry"]["coordinates"]
pad = Path(coordinaten[0][0])
#maak raster aan
bestand_schrijf = open("raster_uit.txt","w")
y=52.150000
for i in range(0,200):
y=y-0.00089873
x=4.950000
for j in range(0,200):
x=x+0.00145898
if pad.contains_point([x,y]) == 1:
#als punt binnen grens
afstand = 10000000
for locatie in locaties:
#vind kortste afstand
deze = vincenty(locatie,(x,y)).meters
if deze < afstand:
afstand = deze
#schrijf resultaten weg
bestand_schrijf.write(str(x)+ ","+str(y)+","+str(afstand)+"n")
bestand_schrijf.close()
#klaar
En dan laden we de data weer in Tableau en krijgen we dit plaatje!



