Open Data geeft het antwoord: hoe groen is mijn wijk?
Bram
Backend developer

Met dat in mijn achterhoofd vroeg ik me af: wat is eigenlijk de meest groene buurt van Nijmegen?
Vegetatie en infrarood
Het antwoord blijkt af te leiden uit Open Data beschikbare satellietfoto’s. De groen-grijs verhouding berekenen kan met een normale satellietfoto, maar nog beter gaat het als je gebruik kan maken van infrarood [1]. Een gezonde plant, met veel bladgroen, reflecteert veel infrarood - terwijl gebouwen en straten juist infrarood absorberen. Op die manier is het verschil tussen groen en grijs nog duidelijker te zien dan op een gewone foto. Gelukkig slaan veel satellieten [2] in de foto’s niet alleen de zichtbare (rood, groen, blauwe) kleuren op, maar ook informatie over infrarood.
![]() | ![]() | |
Normaal beeld | Infrarood beeld |
In foto’s op basis van infrarood zijn alle planten rood, hoe gezonder, hoe roder ze zijn. Alle bebouwing, pleinen en straten blijven groen zoals op bovenstaande afbeelding goed te zien is (inclusief de algen die op de vijver groeien).
Om makkelijker een verhouding te berekenen, zet ik vervolgens deze foto om in een zwart-wit foto op basis van de kleuren rood en groen. De verhouding tussen groen en "grijs" (niet-groen) van het gebied is dan simpel te berekenen, door de verhouding te nemen van de zwarte en de witte punten.
![]() | ![]() | |
Infrarood | Zwart-wit |
De groenste buurt
Op deze manier ben ik stap voor stap de groen/grijs-verhouding gaan berekenen van alle wijken in Nijmegen. Hieronder bijvoorbeeld de afbeelding van de Nijmeegse buurt Meijhorst, waar ik zelf woon: 32% groen.
![]() |
Infrarood satellietfoto van Meijhorst |
Als ik de scores van de buurten op een kaart teken, heb ik eindelijk het antwoord waar ik naar zocht: de meest groene wijk in Nijmegen is Kwakkenberg.
![]() |
De buurten van Nijmegen, op basis van de groen/grijs verhouding |
Zo heb ik het antwoord op mijn vraag gevonden, met behulp van als Open Data aangeboden satellietfoto’s met infrarood. De methode is simpel en effectief. Mijn onderzoek roept een vervolgvraag op: wat is de meest groene stad van Nederland? Misschien dat ik daar binnenkort in een vervolg op dit blog op terug kom.
Bram is developer bij Tweede golf en heeft veel interesse in data engineering, in het bijzonder (open) data waarmee vegetatie in kaart kan worden gebracht. Heb je vraagstukken waarbij "groene data" nodig is? Neem gerust contact op met Bram of Erik.
Bronnen
Related articles
Instant data retrieval from large point clouds
The Dutch government offers the AHN [[1]](https://www.ahn.nl/) as a way to get information about the height of any specific place in the country. They offer this data by using a point cloud. That is, a large set of points with some additional meta information. With the current version of the AHN the resolution of the dataset is about eight points per square meter. This results in about 2.5TB of compressed data for the relatively small area of the Netherlands. While this is something that is not impossible to store locally, it does offer some challenges.
At tweede golf, we value innovation: we take the time to research new technologies and subsequently challenge ourselves to try out these new techniques in order to discover new applications. We also like to learn by doing: build something first, ask questions later.
Sorting with SIMD
Google recently published a blog article and paper introducing their SIMD-accelerated sorting algorithm.
SIMD stands for single instruction, multiple data. A single instruction is used to apply the same operation to multiple pieces of data. The prototypical example is addition, where one instruction can do e.g. 4 32-bit additions. A single SIMD addition should be roughly 4 times faster than performing 4 individual additions.
This kind of instruction-level parallelism has many applications in areas with a lot of number crunching, e.g. machine learning, physics simulations, and game engines. But how can this be used for sorting? Sorting does not involve arithmetic, and the whole idea of sorting is that each element moves to its unique correct place in the output. In other words, we don't want to perform the same work for each element, so at first sight it's hard to see where SIMD can help.
To understand the basic concepts, I played around with the ideas from the paper Fast Quicksort Implementation Using AVX Instructions by Shay Gueron and Vlad Krasnov. They provide an implementation in (surprisingly readable) assembly on their github. Let's see how we can make SIMD sort.