Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Osm Contributor Statistics

Version 0.2.1 August 18 2014

How to use this Python class to produce contributor statistics

The Python script is an example of instructions to extract objects and calculate statistics using the OsmContributorStats Class Module.

CSV Output files show the statistics [Prefix] of files contains the prefix provided by the user + the date range ex. oef-togo-2013-06-26--2013-06-27 )

  1. Users statistics : [prefix].csv ( ex. oef-togo-2013-06-26--2013-06-27.csv )

  2. Teams statistics : [prefix]-team.csv ( ex. oef-togo-2013-06-26--2013-06-27-team.csv )

  3. Changesets statistics : [prefix]-changeset.csv ( ex. oef-togo-2013-06-26--2013-06-27-changeset.csv )

    • flag=1 Changesets flagged for elimination (edit bounds largely outside the bbox defined for this analysis)

File format 1 and two are obsolete and might be deleted in other versions of the script. File format 3 (by CSV) can be analysed in a spreadsheet and produce statistics with the various variables such as day, user, team. Statistics by date show the progression of an activity. Statistics by user let's see how many contributors up to date. In general, we filter and eliminate changesets with flag=1 since these changesets often correspond to mechanical edits covering continents.


You need to import and instantiate both OsmApi and OsmContributorStats. You should also indicate the directory where the Modules are stored and where the files produced will be stored.

OsmContributorStats class module from Pierre Béland, is en enhancement of a first script written by Sebastien Pierrel. From our experience in 2013 in Haiti (60 trainees in six teams) and with various French african projects we supported, various flexibilities were added to the script.

  • Differentiate History extraction and Statistic steps as two funcions. The History extraction step may take some time. We should also be careful to avoid adding too much burden on the OSM API server. The possibility to first identify all contributors and later group them for analysis is an other aspect to take into account. For these reasons, we thought that it would be better to differentiate Extract and Statistic phases.
  • Add the possibility to compile statistics by teams. This is useful to follow various classes or groups in the same bbox area.
  • when the user array is empty, Changesets for all contributors are extracted.
  • For the Statistic phase, it is possible to have a different User's array and then select a portion of the users.
  • Possibility to exclude some changesets from either Bots or Massive edits often covering continents. The solution we retained is to exclude Changesets that cover a bbox area 10 times larger then the bbox specified in the Function.


Statistics for each contributor and teams are compiled and saved in csv files.

Statistic type variable names
number of changesets changeset
objects created object_c, node_c, way_c, relation_c
objects modified object_m, node_m, way_m, relation_m
objects deleted object_d, node_d, way_d, relation_d
POI nodes poi_total_nodes, node_amenity, node_shop, node_office, node_power, node_place, node_man_made, node_history, node_tourism, node_leisure
ways way_highway, way_waterway, way_building, way_landuse, way_man_made



Osm Contributor Statistics







No releases published


No packages published