DUIC in data: Sporten gezonde wijken meer?

DUIC in data: Sporten gezonde wijken meer?
Jaarlijks hebben vele mensen het goede voornemen om meer te gaan sporten en gewicht te verliezen. Nu is de periode van goede voornemens al bijna twee maanden achter ons. Een mooi moment om de balans op te maken hoe het staat met die voornemens.

Jaarlijks hebben vele mensen het goede voornemen om meer te gaan sporten en gewicht te verliezen. Nu is de periode van goede voornemens al bijna twee maanden achter ons. Een mooi moment om de balans op te maken hoe het staat met die voornemens.

Zoals je van ons gewend bent, duiken we de gemeentelijke data in om dit uit te zoeken. Maar helaas is daar geen open data van, wel maakte het ons nieuwsgierig wat we te weten kunnen komen over de gezondheid van Utrechters. Bijvoorbeeld of “gezondere wijken” (wijken waar mensen aangeven zich gezonder te voelen) ook zelf meer sportactiviteiten organiseren. En voelen mensen in de buurt van veel sportvoorzieningen zich gezonder dan mensen die daarvoor verder moeten reizen?

Een uitleg van de bronnen voor dit artikel en de bewerkingen die we gedaan hebben staat bij de verantwoording onderaan dit artikel.


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.


 

Leefbaarheidsbudget versus gezondheid

Te beginnen met de eerste vraag: worden er meer sportactiviteiten georganiseerd in gezondere wijken? Om deze vraag te beantwoorden hebben we meerdere databronnen van de gemeente moeten combineren. Dit leidde tot de volgende tabel:

Ervaren gezondheid en besteding aan sport uit het leefbaarheidsbudget per wijk.
Tabel 1: Ervaren gezondheid en besteding aan sport uit het leefbaarheidsbudget per wijk.

In deze tabel is tegen elkaar afgezet wat er per inwoner per wijk besteed is aan leefbaarheidsbudget met het thema “Sport en Bewegen” en welk percentage inwoners van die wijk aan heeft gegeven hun gezondheid te ervaren als gaat wel, slecht of zeer slecht. De bestedingen zijn x10 gedaan om de leesbaarheid te vergroten.

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.

Sportvoorzieningen in Utrecht.
Sportvoorzieningen in Utrecht (klik op de kaart voor een grotere versie, deze opent in een nieuw venster).

De witte plekken geven aan waar sportvoorzieningen zijn. Hoe donkerder rood een gebied is, hoe groter de afstand tot een sportvoorziening is. In de kaart is te zien dat sportvoorzieningen in bewoonde gebieden goed vertegenwoordigd zijn. De donkere plekken zijn slecht bewoond, dit zijn industriegebieden, parken of landbouwgebied.

Hieruit kunnen we afleiden dat je als Utrechter in ieder geval niet het excuus mag gebruiken dat je niet aan sport doet omdat de sportverenigingen zo ver van je huis verwijderd zijn. We mogen dus bij ons zelf te raden gaan als we na 2 maanden 2016 onze goede voornemens op het gebied van beweging al aan de Paastak gehangen hebben.

Ben je nu benieuwd naar hoe we deze data gekregen hebben en deze kaarten gemaakt hebben? Lees dan onderstaande verantwoording en tutorial en ga zelf aan de slag. We zijn benieuwd naar jullie bevindingen.


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.

Tabel ervaren gezondheid en leefbaarheidsbudget sport

 

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:

1_RasterUtrecht

En dat is meer dan Utrecht. Dus moeten we de grens van de gemeente Utrecht erbij zoeken. En als er iets als eerste open data zou moeten zijn, is dat toch de gegevens van de grens van een gemeente, toch?

Ja. Maar dat werd toch een iets langer verhaal. Het is bijvoorbeeld beschikbaar als zogenaamde shapefile. Maar daar heb je pakketten als QGIS, een open geodata programma, voor nodig. Of het is beschikbaar in een coördinatenstelsel dat weer niet aansluit bij de GPS coördinaten waar we mee begonnen.

Gelukkig schoot men op Twitter weer te hulp en kon men op bestanden wijzen (die zoekmachines niet snel lieten zien) waar het in bruikbare vorm in staat.

Mmm, okay. Dus nu hebben we een grens, wat eigenlijk niet veel meer is dan een reeks punten. Maar hoe weten we nu of een punt uit ons raster, binnen die andere punten valt?

Google is your friend. Daar is een algoritme voor. Maar goed, we zijn aan de slag met Python, dus moet ik nou dat hele algoritme gaan uitprogrammeren? Nee, gelukkig had iemand dat al gedaan (zoals vaak met dat soort programmeertalen). Dus gebruiken we Path uit de matplotlib library, daarmee maak je van punten een polygoon (pad).

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.

2_RasterGemeenteUtrecht

Mooi! Nu nog even per vakje (bijna 10.000 van de 40.000 blijven over) uitrekenen hoever tot de dichtstbijzijnde sportlocatie. We doen dat “as the crow flies”. Oftewel, niet over de weg, maar door de lucht. En ook daar is een algoritme voor. En ook die zit gelukkig in een Python library.
We moeten daartoe wel steeds alle afstanden uitrekenen en dan tussendoor bijhouden wat de laagste waarde is.
Dan ziet het er als volgt 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!

3_RasterGemeneenteUtrechtAfstanden

Gelukt! Wil je nu zelf aan de slag? Kom je ergens niet uit? Wil je je resultaten delen. Laat het ons dan weten. We zien benieuwd naar jullie resultaten.

De DataDUICers

De DataDUICers

Als je echt alles wilt weten over Utrecht, dan zal je de data in moeten duiken. De DataDUICers doen dit sinds kort voor DUIC! De DataDUICers zijn Sebastiaan ter Burg, Tom Kunzler, Stephan Okhuijsen en Frank Verschoor.

Profiel

geen Reacties

Reageren

Er zijn nog geen reacties geplaatst.

Plaats een reactie

Lees voor u reageert onze algemene voorwaarden. Alle reacties worden vooraf gemodereerd. Uw IP adres is geregistreerd (wordt niet gepubliceerd).