##Estimate the quality of OSM features based on their changes
OpenStreetMap (OSM) features experience changes which can span from adding or removing certain tags to updating existing tags or geometries. These changes can increase the overall quality of the OSM dataset, but they can also indicate features affected by significant changes. This Python tool is designed to analyze and determine the quality of OSM features.
###Overview The following operations are currently available:
- Count tag inserts, deletions, updates and geometric changes
- Detect the locations of certain types of changes
- Evaluate changes using string matching techniques
- Use the Jaro-Winkler distance or the Levenshtein distance to analyze the changes in certain types of tags (e.g. name, operator, etc.)
- The similarity between strings can be indicative of the type of changes, such as correction of typographical errors or changes in ownership.
- Determine the currency of spatial objects
- Distinguishes between up-to-date and out-of-date features by calculating the difference between the feature's timestamp and the median timestamp of the analyzed group
- Inapplicable to long-standing features (e.g. castles, highways, etc.)
- Estimate geometric changes
- Movements of points, increases/reductions of lengths/areas in (Multi)LineStrings/(Multi)Polygons
###Requirements
###OSM data extraction
- Input data: OSM PBF files
- Modifications (optional): Osmconvert, Osmfilter
- Usage:
$ python osm-changes/extract.py osm-changes/data/INPUTFILE.osm.pbf
Warning: The name of the input file should contain its creation date (the rest of the name is optional): YYYYMMDD-name.osm.pbf
###OSM data processing
- Output format: GeoJSON
- Location of the output files (and several examples): ./osm-changes/output
- Usage:
$ python osm-changes/main.py "job_name" "feature_key" "feature_value" osm_version -ogj -optional_arguments
- For more info type:
$ python osm-changes/main.py -h
###Examples See ./osm-changes/output