Nice, France/Trees Import

From OpenStreetMap Wiki
Jump to navigation Jump to search


The goal of that import is to import the municipal trees of the city of Nice, France.


The import has been launched at the begining of August 2015.

Import Data


Data source site: Open Data de Nice Côte d'Azur (
Data license:
Type of license: Open License (OL/LO).

OSM Data Files

Three differents XML file (for JOSM) are generated:

  • One for the creation of new trees
  • One for the update of existing trees
  • One for non makable trees (because there are inside existing buildings)

The last file will be eventually uploaded but later because modifications must be done before (on buildings or on trees, depending on each case) to have the trees outside of buildings.

Import Type

The import is designed to be launched one-time although it could be relaunched at any time (it should be relaunched if updated opendata are available).

The process is semi-automatic: first XML files are generated by the program (Osmaxil) and then they are loaded into JOSM for manual updating.

Data Preparation

Data Reduction & Simplification

There is no data reduction or simplification, for now the only information available is the location of municipal trees, there is no genus/species or height informations, but it could change in the future.

Tagging Plans

On each created/updated tree 2 tags are set (in addition of latitude and longitude) :

  • natural = tree
  • ref:FR:Nice:trees = internal reference

For existing trees, their original tags are keept.

Changeset Tags

Every 1000 updated buildings a new changeset is created with the following tags:

Data Transformation

On existing tree, a update of the coordinates is done in order to match it with the closest imported tree but all tag values are kept untouched.

Data Merge Workflow

For each imported tree a first search is performed to check if the tree is inside of an existing building. If it is not the case another search is done in order to find all existing trees which are closed to it (current settings is a radius of 5 meters). If there is no existing tree a new one is created from scratch, else the closest existing tree is updated with the coordinates of the imported tree. Note that all tags of the existing tree are conserved after the update and that the closest existing tree must be found even if that exsting tree matches several imported trees (a special process is performed on multi matching tree, see the source code of

Team Approach

I'm doing it solo for now but any help or suggestions are welcome.

The software itself is available on GitHub :

Of course the import has been discussed on the talk-fr mailing list.


Well there's no really workflow since the import process is almost automatic. The only thing to do is to the launch the main class, load the generated files into JSOM, do some checks and upload.


As described above all existing trees are keept with an eventual small update of their coordinates (but their tags are keept untouched).


The quality of the opendata is very good but unfortunately it concerns coordinates only (no genus or height information). Since the data set is about all municipal trees in Nice, including small ones, a manual effort would be much appreciable to add genus or height tags. That way relevant representations depending on the real nature of the tree would be possible, specially in 3D rendering.


Total of makable imports: 30246

Total of non makable imports: 275

Matching area radius: 5.0

Total of created trees: 29411

Total of updated trees: 835

Total of created or updated trees: 30246

Total of multi matching trees: 306