Utrecht Bomen

Hi all, I am very new to OSM but have a background in geomatics/GIS.

Utrecht city has a Bomen database which seems like a great dataset to make natural=tree nodes from. There are fairly obvious attribute to tag mappings too as the set includes planting dates and latin species names but some non-obvious ones, like what to do with the registered ids of each tree.

But bulk imports like this seem to be a delicate matter and require involving the community… which I’m not sure how to approach given my newness to the platform. So I thought I’d start here for input/planning.

Thanks!

Welcome!

Glad that you mention it. :wink: There has been a lot to do about trees and imports:
https://forum.openstreetmap.org/viewtopic.php?id=59806
https://forum.openstreetmap.org/viewtopic.php?id=58126
https://forum.openstreetmap.org/viewtopic.php?id=59371

edit 23:27: If you are new to OSM than it is not a good idea to start with a large project. It is best to map your local neighbourhood.

Hi welcome Geomatics/GIS colleague, on your linkedin profile I saw you are canadian. Trees are typical micromapping for which there is discussion if every tree is cartographic relevant, compare with lampposts, a single ornamental lamppost in front of a mansion should be mapped, but we don’t map all lampposts on earth.

Are you able to read Dutch?

I think a general rule or guideline should be that you should only do imports in an area to which you are somehow committed. It doesn’t make much sense to do an import of trees in Utrecht just for the fun of it. In my opinion such an import should be done or requested by someone from the city or area or at least someone who is somewhat familiar with the location and situation.

Hi all. Thanks for the thoughtful replies.

Definitely doing this to get more familiar with the platform, and to build a personal sense of how committed I can/will be to the maintenance of my edits. When Google Maps had a plaform for contribution I was a regular contributor, but did not transition to OSM when their platform was shut down.

Actually from the US but lived/studied/worked in Canada for several years. Now living in Utrecht and working in Zeist. I am not even close to fluent in Dutch, but I make use of Google Translate extensively so I did read the entirety of the threads that observer linked to.

I appreciate this. I am curious where that line is drawn for specifically the OpenStreetMap community. When is it better for datasets to live outside OSM and simply be overlayed versus actually living in the OSM dataset? And/or is there room for partial imports with clear source linking/attribution?

I understand that identifying individual trees in a planted forest instead of using a landuse=forest area does not make broad cartographic sense (except to a very narrow audience such as forest managers). In contrast, in a city with planned trees which are in general ornamental, and multiuse traffic that likely will have to interact with those trees, I quickly see reasons for trees to be mapped. The Utrecht dataset is actively managed, and in my experience tends to reflect what I would describe as trees of interest, but there are exceptions as the maintainers primary interest is not navigation but instead stock management. For example, some densely forested parks have every tree mapped, probably not of value. On the flip side there are trees mapped in OSM in some high traffic public squares of the city that no longer exsist, this removal is reflected in the Utrecht Bomen dataset (peeking at some licensed image datasets it appears this error is >2 years old). There are other squares for which no trees are shown but would probably be of value to have them mapped. At a minimum, tagging the trees that are mapped in OSM with a reference to the Utrecht Bomen dataset would provide a tool for detecting such errors.

I am from the area, I have lived in Utrecht for 2 years and have no plans yet to move. I did think about contacting the city, and if this moves forward will absolutely make that contact, but felt that touching base with the OSM community first would be best. Though I do not plan to manage trees ad infinitum in Utrecht, for the next several years at least, if there are some easy tools for deconflicting between OSM and the Utrecht Bomen dataset I do envision maintaining the mapped trees in the area.

I also have taken an interest in mapping trees. Surely mapping every beech (nl:beuk) in a beech forest doesn’t make much sense. But I agree trees in an urban environment are different. Much different from street lights (to quote a comparison earlier in this thread). I’m pretty sure urban trees are more often a conversation topic than commodity street lanterns. More people ask “Do you happen to know what kind of trees we have in this street?” than which “Which brand of street lantern are we looking at?” I started to sample tree maps from Dutch cities and otherwise. See Powerpoint http://infodisiac.com/bomen/bomenkaarten.pptx

I’m impressed by the work that has been put into these. Best one I’ve seen so far is the New York tree map: https://tree-map.nycgovparks.org/ 678 thousand trees, their species and environmental importance. More than other maps this is a crowd sourced tree map where individual people can learn about each tree and how to help care for it.

I’ve started a proof of concept for a botanically oriented tree map for a park in Leiden: de Groenesteeg, former cemetery. There will be images for tree species from Wikimedia Commons, and leaves from Leafsnap: http://leafsnap.com/ I started a month ago, so it’s still early days. A proof of concept in progress. Doing this with my wife now. But my hope is that others will chime in later and we can map all of Leidens Singelpark, which is planned to evolve into ‘The longest park in the Netherlands’. (official meme, please forgive the bragging, the park will be very sparsely populated in certain parts). Groenesteeg and Leiden’s botanical garden (Hortus) will be part of that. http://infodisiac.com/bomen/groenesteeg.html

For convenience I’ll paste some tree map urls here:

Amsterdam https://maps.amsterdam.nl/bomen/?LANG=nl
Utrecht: https://gemu.maps.arcgis.com/apps/webappviewer/index.html?id=53c67672c1fa46e5bef555a611b58301
Rotterdam: https://rotterdam.maps.arcgis.com/apps/webappviewer/index.html?id=e1f1284dbb0d49f79af19e1afde56265
Den Haag: http://ddh.maps.arcgis.com/apps/webappviewer/index.html?id=26717c16f2ad43678a9bbcc53c90cb03
Lelystad: https://gis.lelystad.nl/html/OpenData/leaflet/bijzondere_bomen.html
Leiden Groene Kaart (very incomplete, more an administration tool) https://kaart.leiden.nl/#!/

New York: https://www.mapbox.com/analysis-demos/trees/
Pittsburg: https://www.mapbox.com/help/demos/heatmap/index.html
Washington: http://dcgis.maps.arcgis.com/home/webmap/viewer.html?webmap=fea6079cf9bc4310a8b6c94f8c2bf1da
San Francisco: https://www.opentreemap.org/urbanforestmap/map/?z=16/37.7624/-122.4328
London: https://www.london.gov.uk/what-we-do/environment/parks-green-spaces-and-biodiversity/trees-and-woodlands/london-tree-map

Hi,
From personal experience of importing things into OSM (recycling containers and city green) I can probably give some advise on how to do this.

First you need a way to process/split the source data. The dataset contains almost 200k entries, which is way too much to import in one go (20 changesets is the technical minimum you would need for this). So you need to split the source data into smaller batches, preferably split based on coordinates. The next thing is to convert the tags of the source data to the corresponding tags used within OSM. Make sure you check that you use the correct tags! Wrong tags and typos have happened in the past. I consider all of this to be the easy part and should not really be a problem considering your background.

The hard part of the import process is actually to merge the data you want to import with the already existing data. With standalone objects and features like trees and lampposts this usually is not that big of a deal. But you still need to check for already existing trees in Openstreetmap. And if they exist, only delete those which are contained in the import dataset.

In some places a user might have mapped large trees in backyards and other private grounds. These are almost never present in datasets supplied by the city (the only exception being monumental trees). So you cannot just delete all existing trees in the area which you import. You should manually check these conflicts. It is not like tools to easily do this for you exist right now anyway.

There is (in my opinion) definitely a place for datasets like the Utrecht tree dataset in Openstreetmap. They do have to be of sufficient quality though, as an incomplete or outdated dataset has almost no value. With the Utrecht one you mention this obviously is not a concern.

What I believe to be one of the most important things. Is to have a way to easily filter the imported data from the rest of the OSM database. This greatly helps with keeping the data in OSM up to date. But more importantly, it gives the commutity an easy way to (in case of problems) undo the import any time in the future.

The best way of doing this is to always add the source= tag to all objects you import. This is (unfortunately) not always mentioned in the wiki guides.

As an example: In Lelystad there appears to be an import of many thousands of trees. But there is no source attached to those objects. So no easy way of finding out were they come from. They could of course have been mapped manually, but i doubt that’s what happened.

It is great you reached out to the forum for doing the tree import. It is always appreciated when things get discussed with the community before actually doing it.

I do advise, before doing an import like this, you get some familiarity/experience with the tools used to edit Openstreetmap. Imports are generally done using JOSM. It is a pretty powerful editor with lots of functionality, plugins and options, but that also means that the program does have a slight learning curve. Simply do some local edits first just to get some experience with OSM. It really helps if you know exactly what you are doing when doing an import. :slight_smile: