OpenStreetMap 로고 OpenStreetMap

Osmlint to detect errors in OSM

Rub21님이 English로 2016년 3월 2일에 게시함. 최근 2016년 3월 3일에 업데이트됨.

We have been developing OSMLint as a tool identify common geometry and metadata problems OpenStreetMap data. OSMLint processes vector tiles with turf.js and TileReduce to produce geojson files of detected data errors.

In this post, I will demonstrate using OSMlint with OSM-qa-tiles to detect errors in OpenStreetMap.

  • Clone my sample repository and install required software.

git clone https://github.com/Rub21/run-osmlint

cd run-osmlint

./install.sh

  • To run this for your country, run the worker.sh. The worker.sh requires 2 parameters:
  • input vector tiles, get them from the OSM-QA tiles website,
  • boundingbox of your area.

sh ./worker.sh https://s3.amazonaws.com/mapbox/osm-qa-tiles/latest.country/brazil.mbtiles.gz "[-73.975067, -34.108073, -34.512177,5.5056583]"

The script runs all the available linters and produces a gist file that you can visualize.

screen shot 2016-03-01 at 16 41 19

If you want to run a specific linter, check out sample commandes here: https://github.com/Rub21/run-osmlint#executing-the-comands

We are continuing this work by adding more linters, if you have any suggestions, check out the code or open a ticket.

이메일 아이콘 Bluesky 아이콘 Facebook 아이콘 LinkedIn 아이콘 마스토돈 아이콘 텔레그램 아이콘 X 아이콘

토론

2016년 3월 4일 23:45d1g님의 의견

Lovely dashboard! “Filter data” is a gem, but unexplained/no docs.

I would recommend to explain how to write and process amenity=cafe+name=Cafe Mirage -> amenity=cafe+Mirage using OSMLint - so users are not afraid of new interfaces and workflows (because common tasks are the same).

Could you please create sample code how to detect disconnected graphs (connected components with less 20 ways)? It is possible?

More platform independent code would be nice in examples (Java / Python)

2016년 3월 9일 15:51Rub21님의 의견

Hello d1g:

There are basic examples of code:

https://github.com/osmlab/osmlint/blob/master/validators/filterDate/map.js

if you want to filter data, you can only use if sentences

https://github.com/osmlab/osmlint/blob/master/validators/bridgeOnNode/map.js#L7-L12

About your question amenity=cafe+name=Cafe Mirage

here is the example:

The result on gist : https://gist.github.com/anonymous/4f2ec7eda3b15b6544f3

The result on dashboard : http://rub21.github.io/geojson-dashboard/#https://gist.github.com/4f2ec7eda3b15b6544f3

Cheers,

Ruben

2016년 3월 9일 16:02Rub21님의 의견

Hey d1g, For the above the example, I used peru.mbtiles

osmlint namecafeonamenity --bbox="[-81.462250,-18.417079,-68.542328,0.24169850]" peru.mbtiles>peru.json

2016년 4월 8일 18:56d1g님의 의견

Yes, thank you for examples in repo!

It is easier to learn new tools when you can compare apples from one tool to apples in other tool (and especially if it was done before).

댓글을 남기려면 로그인하세요