Mapping the Parisian trees

I’ve made lots of maps of car trips during my time at Uber, but when I had a chance to experience with kepler.gl, for my first map I wanted to view something different. Before moving to the U.S. 5 years ago, I was very invested in Open Data in France so my first thought went to Open Data Parisdatasets. I quickly found a dataset of all the trees in Paris which was exactly what I wanted: over 200,000 records, very granular, and I was definitely expecting to see patterns in the data once represented visually.

Open Data Paris, the Open Data platform of the city of Paris

I downloaded a geoJSON file and dragged it into kepler.gl.

Uploading data to kepler.gl

Immediately a shape appeared, very similar to that of the streets of Paris, and especially Avenues.

First look at the dataset in kepler.gl

kepler.glactually created 2 layers. That is because, in the dataset, the coordinates of trees appeared in 2 different fields. I didn’t need the second one so I just deleted it.

Details of the second layer

I tried a few settings with that layer. First, I made the radii of the points smaller. While the data set includes the circumference of the trees there are a few anomalies which make this information hard to use (during my 15 years in Paris I never heard of a tree with a circumference of 90 meters!). Instead, I colored the trees by species and a really interesting pattern appeared:

Trees colored by species
Zoom on legend

I wanted to be able to do something around the height of trees. The layer type I chose (polygon) doesn’t support height for a single point, so instead I had to use 2 point layers, one with an altitude and one without.

The problem is that in order to use the point layers, we need a latitude and longitude fields as opposed to just a geoJSON field. Not a deal breaker, using the awesome jqI made exactly the file I wanted from my original one:

Full disclosure — it took me a few tries, but that’s not too bad for my first try with this tool!

Now back to kepler.gl, I can just create point layers with that new file:

Similar map but using the csv file I made instead. I’m using latin species names instead of the French colloquial tree names so the color mapping is different.

In the point layer, I can put the tree height in the altitude field.

Using a data attribute for height

I’m creating a second layer with just one color (brown) and nothing in the altitude. The juxtaposition of both layers creates the impression that the colored spots float over the brown ones.

Adding a second layer with no altitude, brown dots are not aligned though.

Still, they don’t seem very aligned: that’s why I need to activate high-precision rendering.

With high-precision rendering, dots are well-aligned

Ah, there we are. Not only are the colored spots synced with the brown ones, but we can see beautiful alignments along the avenues and parks. The Champ de Mars is where the Eiffel Tower stands.

Bagneux cemetery, south of Paris

Some of the structures which show the most alignment are cemeteries, even if older ones like le père Lachaise are somewhat more chaotic:

The Père Lachaise cemetery

Looking at this map, I can instinctively tell which color is what tree as I’ve walked these streets so much. Orange are chestnut trees, dark blue are plane trees, light blue are linden trees…

I saw these 3 trees every morning from my Paris apartment.

Here is the map with everything:

The trees of Paris

I hope you enjoy kepler.gl and we can’t wait to see your maps!