Why I am mapping trees

Posted by woodpeck on 15 August 2020 in English. Last updated on 31 May 2022.

In the last year or so I’ve taken an interest in mapping trees. Urban trees, to be more precise; I’d probably not attempt to map a forest that way. I try to record the location, type, and size of each tree. With “type” I mean the species, and “size” I express in height, crown diameter, and circumference of the trunk.

Trees are in many ways an antipole to today’s turbo-charged life. I used to frown when people made a big deal about trees (“OMG they are planning to cut X number of trees for this new railway station”), and I thought what’s the problem, you can just plant some elsewhere. But walking the city with open eyes, I saw many trees that have been where they are for longer than I live, and many that will still be there long after I’m gone. Planting trees is not something for a startup where the venture capitalists demand quick returns. If you plant a tree today, it is the next generation that will be enjoying its shade. And that shade can really make the difference between a livable city and one you’d rather just cross in your air-conditioned automobile.


In practical terms, if OSM had good data about which streets are lined by really big trees with a dense crown, you could run simulations about city climate with OSM data; you could determine the best routes to walk in the summer, or which pub to go to if you want to enjoy a beer in the shade. (Perhaps I should add an explicit survey date so you can algorithmically extrapolate the tree size.) But going further, if information about trees becomes readily available, people will perhaps appreciate trees more, and think twice before cutting them down to make room for a shopping mall.

But mapping trees also brings me back to the beginnings of OSM. I know nothing about trees.

Just like I knew nothing about surveying when I started contributing to OSM. I wasn’t a trained surveyor then and I’m not a trained botanist now. I bought books and use I apps to help me, and meanwhile I know my Acer pseudoplatanus from my Acer platanoides (though, Tilia platyphyllos vs Tilia cordata still beats me occasionally). Still, I’m light-years away from an expert who can identify a tree without any leaves on by simply looking how the branches are structured. But I’m mapping trees nonetheless. Take that, botanists ;)

Mapping trees requires being on location and surveying. Hence, I am extremely unlikely to encounter competition from the likes of Apple, Amazon, or Facebook who are all using hired labour or artificial intelligence to distil streets or buildings from aerial imagery and stuff that into OSM, leading to many a hobby mapper turning their back on OSM. If you had super detailed aerial imagery then you might be able to recognize the species, and you could guess the height from the size of the shadow… but why would big capital pay people to map trees, there’s no money to be made from knowing about trees.


When mapping trees, I use a standard measuring tape to determine the circumference, and I’ve bought a simple laser range finder for golfers that lets me measure the height of the tree by first aiming at the base of the tree from a distance, then at the top of the crown. It’s a €100 device, not super precise but good enough.

tape and range finder

As for the crown diameter, I make do with estimating that. To determine the species, I use an old fashioned book as well as a couple of apps (e.g. Pl@ntNet, Flora Incognita - both free but sadly not open source) that let me take photos and then suggest what kind of tree it might be, though if there’s one thing I can say, it is never trust the app, only use it as a starting point. It can be quite difficult but if you map trees in one particular city you will soon find that the city’s gardening department tends to have their favourites that you meet everywhere. After a while you learn to cherish the exceptions, or marvel an an exceptionally large example of an otherwise rather boring species.

I’ve made myself a simple Vespucci preset that shows only trees and nothing else, and can give them a pink “validation” border if they’re missing one of the properties I deem important. I’ve also made a simple CartoCSS style that draws green tree symbols when a tree is fully mapped, and red symbols in a couple of different variations that let me see which properties are still missing, and I have used that to print a kind of “walking papers” before going somewhere.


Mapping the precise location of a tree with GPS is difficult because the signal gets worse the more leaves you have above you! And more often than not the available aerial imagery has been taken while the trees had leaves and if they’re standing close together, it is practically impossible to pinpoint individual trees on the image. A technique that often works in the city is placing trees in relation to houses: “Ok, this tree is on the right hand side of the road just where house #13 ends and house #15 begins”.

Progress is slow, mostly because to do it right you need to view the tree from up close and from a distance - and because of the research you have to do on account of not being a botanist. But it’s a rewarding pastime. I can recommend it.


Comment from marcoarthur on 16 August 2020 at 01:23

This is an awesome Idea. I live in Place that is surrounded by a florest (Ubatuba -SP - Brazil ), and I see it every day being cut down. After read about your effort in map trees in streets I just realize how important could be to map, at least the oldest one in the forest, as they generally are really important as a seed spreed and animal life. As I like to walk sometimes in tracks here I just will try to map them too

Comment from Heather Leson on 16 August 2020 at 12:18

Frederik, this is great. In Toronto, teams were mapping fruit trees. This then connected to an urban harvest team that picked the fruit and redistributed it to communities.

Comment from CloCkWeRX on 16 August 2020 at 13:06 may be of interest as well.

Comment from CloCkWeRX on 16 August 2020 at 13:10

This is useful mapping, some local authorities have quite good data on this.

The urban heat island effect is something that will challenge a lot of cities as climate change bites; so the more data mapped; the better decisions can be made. talks about the wider local government possible actions.

Comment from arnalielsewhere on 17 August 2020 at 02:23

Great idea! Thanks for sharing!

Comment from ToniE on 17 August 2020 at 08:22

Thanks Frederik for sharing this.

And sometimes it is good to know where old trees are located, before planning and building/fixing a road.

Now constructions are paused and they have to spend another € 200k to shift the road for a 300 year old tree, because no one did a survey before.

Comment from turepalsson on 19 August 2020 at 16:09

How good (or bad!) are those “cheap” range finders? How big does the “target” need to be? What is the range? 100m? 1km? I’d love to see a post with a bit more detail about those!

Comment from stevea on 23 August 2020 at 17:39

Thank you Frederick! This is awesome. With some modest tools and a little elbow grease (time, care, love even!) you add some of human’s best friends (trees, Earth’s major lungs) to our map.

My little downtown as our local “high street” -style shopping district was / is a “pedestrian mall” (after being fairly destroyed by an earthquake in 1989). It has come back, and one of the earlier things I did (2010? 2011?) in OSM was to map that it was a tree-lined street: trees are important!

Comment from trial on 23 August 2020 at 19:46

You can spare almost 100 € by using Thales theorem instead of high tech stuff. 0 W in sleep mode. 0 W in active mode too ;-). As I couldn’t find the name in English you get the French explanation, but math’ is international (and you know French speaking people).

Comment from stevea on 23 August 2020 at 20:07

Très beau; mon nouveau meilleur ami, “Thales theorem.” Slightly magical mathematics.

Comment from Awo on 24 August 2020 at 01:02

Thanks for the note Frederik Ramm.

It is impressive that each time trees take center stage in OSM, they already represent 8.7% of all nodes. From Chile a few years ago I dedicated myself to mapping the trees in various cities, today being the challenge of completing the city of Valdivia, Los Ríos Region. Currently, several citizen organizations at the national level are pressing for the enactment of an Urban Trees Law, for its regulation and care, in addition to proposing the OSM platform as the ideal tool to register the Urban Trees with Open Data at the national level.

We will make it.

Our web mapping prototype for Urban Trees.

Greetings from Chile.

Comment from joost schouppe on 24 August 2020 at 08:41

Something local birders told me, was that older trees are particularly important for owl nesting. But old trees here tend to shed large branches from time to time, posing a risk to hikers or, oh no!, cars. Keeping track of the largest trees is really useful then.

Comment from nickjohnston on 24 August 2020 at 20:46

I’m a little late to the discussion, but is an excellent example of government tree data (from Singapore). There are details (girth, height, crown diameter, scientific name, common name, …) for around 529,000 trees.

Comment from woodpeck on 24 August 2020 at 20:56

Thanks for all the comments. Where I live, tree databases are a thing typically kept by a city, mostly not so much because they’re interested in trees but because they need to cut them down when they pose a safety risk ;) crucially only trees on public ground will be in the city’s database, and trees on private ground, which can form a significant proportion depending on where you are, are not catalogued.

Comment from Cascafico on 25 August 2020 at 08:36

Thanks Frederik: I was looking for a tool which allows thematic surveys and you gave me the Vespucci hint. And, of course, trees survey is in my TODO list.

Comment from dieterdreist on 1 September 2020 at 19:54

Great post. Maybe the natural=tree_stump is also of interest for your tree mapping, thinking about trees cut down for safety reasons, it can create the gap.

Comment from joost schouppe on 2 September 2020 at 09:46

Talking about tree_stump, I haven’t found a good solution yet for “monumental trees” that have fallen over and are deliberately left in place. Example:

Comment from dieterdreist on 2 September 2020 at 10:18

your adhoc tag natural=fallen_tree seems perfectly valid, suitable and intuitive for this situation. What are your doubts? I’d go an document it, there are already 9 of them ;-)

Comment from trial on 2 September 2020 at 11:50

10 now ;-), adding a natural:=tree and a start_date (as fallen tree). Thanks for the idea to map them.

Comment from westnordost on 31 May 2022 at 14:14

Which do you find better / more accurate? PlantNet or Flora Incognita?

Comment from woodpeck on 31 May 2022 at 14:47

Neither is perfect! I find that PlantNet is more willing to give you a guess even when all you have is one single photo, whereas Flora Incognita wants you to input more information. But PlantNet has a higher likelihood of whatever proprietary server runs in the the backend not being available, in my experience.

Either software will often give you a couple of likely matches, and one thing I sorely miss is some kind of “decision tree” feature: Something that says “ok, this can either be an X or an Y. The main difference between both is the leaf size. Are the leaves generally smaller than 10cm, then it’s an X, else it’s an Y” (or for a simple real-life example, “this can be an Acer pseudoplatanus or a Platanus x hispanica, check if it has walnut-sized hairy fruit then it’s a Platanus, else an Acer”).

Comment from westnordost on 31 May 2022 at 20:42

FWIW, I created an account at PlantNet to contribute some observations and noticed that I retain my copyright for pictures contributed but must agree to license them under a permissive cc-license. Not sure how it works with Flora Incognita.

Log in to leave a comment