Visualization of Cologne Tree Data. As of now, this is work in progress. [Page code on github]
This visualization uses heavily modified and enriched data derived from the official "Baumkataster" tree inventory datasets for 2017 and 2020, published by
Stadt Köln under Creative Commons Namensnennung 3.0 DE in https://offenedaten-koeln.de/dataset/baumkataster-koeln
Please refer to https://zushicat.github.io/cologne-trees-static-API
and https://github.com/zushicat/cologne-trees-data
for detailled information about the data enrichment process and the accumulation of the underlaying data.
Please note:
Both Cologne "Baumkataster" tree inventory datasets are obviously far from being a complete depiction of the tree distribution throughout the city.
For a quick illustration, please change to "satellite" display in the map options, zoom in at any point and compare the rendered
tree datapoints with trees that you can identify on the satelite image.
(The satellite images are not necessarily up to date. Please refer to this mapbox documentation.)
Overcoming the dataset limitations
A separate machine learning project for object detection on orthographic images, or more specificially: tree crown detection on urban landscapes,
(based on this model https://deepforest.readthedocs.io)
is in developement right now and should be publicy available soon.
So far, this method of tree detection showed great initial results and will be a tremendous step forward to depict the real situation of
tree distribution throughout the city.
You can find the implementation of the tree crown detection in this repository: https://github.com/zushicat/tree-crown-detection
Any results (resp. the repository link) regarding a Cologne specific analysis will be published as soon as possible.
Please keep in mind that this visualization as of now only reflects the tree distribution
as derived from the official inventories, hence it shows what is counted and not necessarily what is real.
Overall Numbers
Dataset Overview
Tree Existence In Datasets
(%) of trees in Cologne are presumably cut down between 2017 and 2020.
Those trees appear in the 2017 dataset but not in the 2020 dataset, assuming they were actively taken out of the inventory
due to the fact they are no longer existing.
Please note the
explanation of the merging process
for both datasets (first note on top of the page), trying to eliminate double entries by proximity check.
[JSON data]
Mean Data Completeness
[JSON data]
Distribution by Object Types
In which environment are trees located according to the official tree inventories?
Existing trees
Cut down trees
Distribution in %
The data reflects a strong bias towards cataloguing trees of following object types:
- building/school/dormitory (home) building
- street/court (plaza)
whereas object types which could be summarized under parks & recreation are under-represented.
But random samples also show that many trees in such surroundings are wrongly categorized as
"building/school/dormitory (home) building" (or not at all), hence these findings should be considered
as highly unreliable.
Please compare: OpenStreepMap matches of tree geolocations in the next section.
[JSON data]
Distribution in %
In contrast, the object types
- street/court (plaza)
- unknown
have a significant share within the data of (presumably) cut down trees with felled
trees in street surroundings with approx. half of the share clearly in top position.
[JSON data]
Distribution by Location Types
In which environment are trees located according to a geolocation match with OpenStreetMap data?
For details regarding the naming conventions, please refer to
dataschema.md (section: tree_location_type).
Existing trees by broad categories
Please note
Here, "unknown" means: a tree nether intersects a polygon (broadly) defined as green space, nor a (buffered) polygon of any highway.
These trees are rather "undefined" since another layer (derived from OSM) could be introduced in the future.
[JSON data]
Cut down trees by broad categories
[JSON data]
Existing trees: Detailled green space environment
[JSON data]
Cut down trees: Detailled green space environment
[JSON data]
Age groups
Existing trees
[JSON data]
Cut down trees
[JSON data]
The age information per tree is derived from a regression model (relationship genus, trunk diameter -> age,
applied to each individual tree) due to the unreliable and incomplete (individual) age data in the original datasets.
Please note:
The age (and consequently the age group as of 2020) refers to the real age (instead of the planting year).
City trees are usually planted at an age between 8 - 12 years.
Overview Genus
Existing trees by genus (>= 1.5% occurance in this cohort)
Cut down trees by genus (>= 1.5% occurance in this cohort)
Distribution in %
[JSON data]
Distribution in %
[JSON data]
Overview Districts
How many trees are in which district?
Absolute numbers of existing (green) and cut down trees (red)
Distribution in %
Distribution in % of overall cut down trees
The data shows that
-
significantly more trees were felled in Rhodenkirchen and Lindenthal
-
significantly less trees were felled in Porz
compared to other districts.
Cut down trees % of each individual district tree distribution
If the proportion of trees that no longer exist is examined separately for each district,
Rhodenkirchen also takes the top position in loss compared to the previous tree population.
[JSON data]
[JSON data]
Age groups by district
How are age groups distributed throughout the districts?
<= 25 years
26 - 40 years
> 40 years
unknown
Absolute numbers of trees by age group
Share of age groups in each district
[JSON data]
Absolute numbers of cut down trees by age group
Share of age groups (cut down trees) in each district
[JSON data]
Tree density
The areas of the districts vary quite considerably, hence the density (trees per square km)
can be of interest in certain situations.
Existing trees per square km
Cut down trees per square km
Districts details
Get detailled insights about individual districts and their suburbs.
Innenstadt
Rodenkirchen
Lindenthal
Ehrenfeld
Nippes
Chorweiler
Porz
Kalk
Mülheim