Map Quality Measurement (MQM)
OpenStreetMap (OSM) data quality is always a concern and frequently a barrier for use when compared to commercial data. Inspired by other OSM mapping projects, the Map Quality Measurement initiative intends to visualize map quality with a heat-map approach by summarizing map error indicators within relevant grids. We are not simply indicating areas that are missing map quality, we are providing insight for prioritization by overlapping social-economic metrics (e.g., population density, road density, etc.) to enable people-first decision-making when deciding where to work on improving map quality and function. The Map Quality Measure (MQM) is a heat-map style representation showing the map quality for a given geographic unit. To make MQM informative, the size and value of each unit used to summarize quality is sensitive to local context. Our project is developing an automated process to find the optimal heat-map grid size and update in response to an update trigger on demand.
Eventually, this project will be on PyPI, which will make the following steps only necessary for development.
The MQM tool is compatiable with python 3.7. The run from source, first install
pip install pipenv
brew install pipenv
Now you can create a virtual environment with python 3.7.
pipenv --python 3.7
Activate the virtual environment by typing:
And finally, install the MQM dependencies
Locate your Atlas Checks data to use as the input for MQM, and execute the following command:
python3 -m mqm --folderPath [a absolute folder path] --maxDepth [maximum tree depth (default = 10)] --countNum [a count number (default = 10)] --gridPercent [a grid percentage (default = 0.9)] --maxCount [maximum count to the second k-d tree] For example: python3 -m mqm --folderPath ~/desktop/program/test_data
- Users can adjust all parameters, and minimum value of the depth number is 1.
- When users specify the maximum count to the second k-d tree, the tool performs the second tree automatically.
- If you add a geojson file name 'boundary.json' to any of the sub-directories of the input folder, the bounding box of the first feature in that file will be used as the bounding box of the folders results.
The output format of this program is also a geojson format that includes coordinates of all grids
and the number of counts.
The program yields two types of results: histograms and geojson files.
Running the test suite
We also use
pipenv to manage our developer environment, keeping it consistent across a variety of machines and local
Then, initialize a virtual environment for this project:
pipenv install --dev
After that, start a
python uses the developer python environment. We can run tests by simply typing:
To exit out of the virtual environment, type:
There is a bug with certain versions of pip and pipenv.
If you find yourself running into errors like
TypeError: 'module' object is not callable, try upgrading pipenv:
pip install --upgrade pipenv