Stedelijke groei in Azië

12-03-2015

Recent ben ik bezig geweest met het maken van een visualisatie voor een challenge vanuit Visualizing.org om urbanisatie in Oost-Asië in kaart te brengen. Ik heb een interactieve kaart gemaakt die de inwonersverdeling in deze regio weergeeft. Er zijn nog wat andere ideeën die ik verder zou willen uitwerken, maar inmiddels leek het mij een goed idee om alvast iets over dit project op te schrijven.

Interactive visualization on urban expansion in Asia Interactive visualization on urban expansion in Asia

Mijn doel voor deze visualisatie is om inzicht te verschaffen in hoe mensen bewegen binnen een land en daarbij vooral de stedelijke gebieden in ogenschouw te nemen. De belangrijkste vragen die ik wil beantwoorden zijn: waar komt toename in bevolking van steden vandaan? Hoe en waarom verplaatsen mensen zich? En kunnen we die kennis gebruiken om iets te zeggen over toekomstige ontwikkelingen?

Het eerste wat ik wilde doen was een kaart maken waarop de bevolkingsverdeling duidelijk te zien was. De data die ik hiervoor heb gebruikt kwam van World Pop en bestaat uit een raster file met het inwonersaantal per pixel (ca 1 ha). Deze ruwe informatie had een aantal nadelen: ten eerste de hoge resolutie van het raster resulteert in een groot en moeilijk te hanteren bestand. Ten tweede maakt het hoge inwonersaantal in steden de relatief kleine waarden in landelijke gebieden vrijwel onzichtbaar. En tot slot door het gespikkelde karakter van de inwonersaantallen is het lastig om conclusies te trekken op globale schaal. Om die redenen wilde ik proberen om een contourkaart te maken met vloeiende gebieden met gelijk aantal inwoners per vierkante kilometer. Hierbij zou ik de schaal aan willen passen zodat ook veranderingen in landelijke gebieden goed zichtbaar worden. Kortom het doel was om eerst de ruis weg te werken en dan vloeiende contourlijnen te tekenen.

Inwonersverdeling Java, Indonesië in 2010
Inwonersverdeling Java, Indonesië in 2010. Steden zijn zichtbaar als gele gebieden

Om dit te bereiken heb ik eerst de raster file in R geladen met behulp van de package “Raster”. Ik heb de resolutie teruggebracht door gebieden te aggregeren en het totale inwonersaantal op te sommen. Hierdoor ontstond een matrix van lagere resolutie. Vanuit deze nieuwe matrix wilde ik voor elk contourvlak een zwart/wit afbeelding genereren door een bepaalde grenswaarde te gebruiken. Als het inwonersaantal boven een bepaalde waarde komt, teken ik een zwarte pixel, anders een witte. Op deze manier krijg je een aantal zwart/wit afbeeldingen met de gewenste contouren. Deze contouren zijn echter verre van vloeiend. Het zijn ruwe vormen met nog altijd wat ruis, vooral bij de grenzen rond het gebied. Ik wilde graag een mooie vloeiende lijn en het idee was om de bitmap over te trekken naar een SVG-vector afbeelding. Om dit te doen heb ik de tool Potrace gebruikt, die vanuit de command line afbeeldingen kan omzetten. Echter voor ik de bitmaps aan deze tool geef, bleek het nodig om de afbeelding te vervagen om een mooi vloeiend resultaat te krijgen. Met een eigen functie voor vervagen kon ik zelf fine-tunen tot ik het beste resultaat kreeg.

Contourvorm van inwonersverdeling in China
Contourvorm van inwonersverdeling in China (grof niveau)

Uiteraard moet dit hele proces gebeuren voor elk land in de regio, wat behoorlijk wat werk is. Automatiseren was dus noodzakelijk en dat heb ik gelukkig al in een vroeg stadium gedaan. Het veranderen van een setting ergens in het proces is nu geen probleem: met een druk op de knop wordt alles opnieuw gemaakt. Dit is heel waardevol om te kunnen doen in een creatief proces.

Wat ik interessant vind om naar te kijken zijn de landelijke gebieden direct om de stad heen. Met de kaart kun je ontdekken dat rond sommige steden het inwonersaantal er rondom heen afneemt, terwijl bij andere steden er niet veel verschil is. In sommige gevallen migreren mensen mogelijk vanuit dit gebied naar de stad, terwijl in andere gebieden de groei wellicht vanuit de stad zelf komt of uit gebieden verder weg.

Een ander onderdeel van dit experiment was het onderzoeken van de dichtbevolkte stadscentra en de ontwikkeling hiervan. Sommige steden vindt de groei vooral plaats in de vorm van uitdijing, kortom toename van het gebruikte oppervlak. In andere steden kan de groei vooral komen uit toename van de bevolkingsdichtheid, zonder dat het oppervlak veel toeneemt. Daarnaast is de groei van de stad in relatie tot de opbouw van het direct gebied eromheen iets wat me interesseert. Ik ben daarom begonnen met een systeem te maken dat automatisch deze grote dichtbevolkte stadscentra kan vinden in de rasterlaag. Het idee is om hiermee verschillende facetten te analyseren als: hoe groeit de stad, in oppervlak of dichtheid? En hoe zit het met de omgeving rondom de stad? Wonen hier veel mensen? Zijn er andere steden in de buurt?

Another part of the experiment is the research of the dense city centers and the development of those areas. Some cities may grow in area size, while others grow more in density. The relation between growth of a city and the properties of the rural area surrounding it, is something I'm also interested in. I started work on a system to autocratically detect the larger dense area's (cities) in the raster map. Then analyze the growth of this dense area, is it getting denser or is it getting larger? And what about the area surrounding it?

Het detecteren van de stadskernen was nog niet zo gemakkelijk als het leek. Het is moeilijk om met de hoeveelheid ruis die aanwezig is de randen van een gebied betrouwbaar te vinden. Daarbij blijken er veel verschillen in dichtheid van steden te zitten. Mijn eerste aanname was dat het stadscentrum het meest dichtbevolkte gebied van een stad is en dat dit afneemt naar buiten toe. Dit leek redelijk te kloppen toen ik het testte op steden in Vietnam. In Indonesië bleek het echter een ander verhaal, steden daar zijn niet dichtbevolkt en de meest dichtbevolkte gebieden liggen vaak niet in het centrum van de stad. Dit soort problemen maakt het moeilijk om het script zo in te stellen dat het goed werkt.

Verschil tussen steden, links Jakarta, rechts Hanoi. Merk op het verschil tussen oppervlak en dichtheid
Verschil tussen steden, links Jakarta, rechts Hanoi. Merk op het verschil tussen oppervlak en dichtheid

Het idee was om vervolgens om de stadsnamen te verkrijgen door het adres op te zoeken met de Location API van Google aan de hand van de locatie die het script heeft gevonden. Omdat het zo lastig bleek om precies het stadscentrum te vinden, bleek ook het opzoeken van de namen een probleem. Vaak resulteerde het in een stadsnaam van een kleinere stad uit de agglomeratie.

Concept voor het visualiseren van verandering in steden in relatie met de omgeving.
Concept voor het visualiseren van verandering in steden in relatie met de omgeving.

De volgende stap binnen dit experiment is om deze problemen te overwinnen en alsnog op een betrouwbare manier de contouren van de stadscentra te vinden. Daarna zou ik graag het gebied om de steden heen analyseren en kijken hoe dichtbevolkt het gebied eromheen is, of er toe- of afname in inwonersaantal is en of er andere steden in de buurt liggen. Het zou mooi zijn om te kunnen verkennen hoe steden zich op verschillende manieren ontwikkelen. Misschien is het dan mogelijk om daarin relaties te leggen en zo een idee te krijgen in het waarom. Als het lukt om dat allemaal visueel over te kunnen brengen, krijgen we daarmee misschien ook een blik op de toekomst van de regio.

Bekijk de interactieve kaart

Screenshot map urban expansion