How to match OSM data with OpenData in QGIS?

Hi,

Short intro: I would like to do a (local) matching of OpenData of my country with already existing OSM data to see how much objects are still missing in OSM.
Disclaimer: There should be no import and I am aware of the Automated Edits and Import guidelines.

It’s about signposts of hiking trails, which my government provides as Open Government Data (OGD). (Basically the data would be compatible for OSM, written consent is also already available, but before I even think about something like import, I want to do a match first to see how much objects are still missing).

I have therefore downloaded and installed QGIS, but never worked with it. Or is there also a way to do this in JOSM?
In the meantime I managed to load the OGD data via shapefile into QGIS (red) and put the OSM objects (green) as another layer on top:

Now I would like to “merge” the objects or subtract the OSM objects from the OGD objects. Since the OSM objects and the OGD objects are not always exactly at the same position, I would have to have a function that also takes a small radius into account.
In the end I would like to have a layer of the OGD objects from which all OSM objects are subtracted that already exist.

What is the best way to do this?

Since the OGD objects include an elevation and a reference number, which is also on the ground on the signs, a transfer of the values in a second step would be very useful.

(Depending on the number of objects left or missing in OSM, I would either consider an import in the community or consider a MapRoulette challenge, but that’s still up in the air).

Thanks a lot!

This is not quite the same but I wrote a diary post about comparing OSM and open data in QGIS to make a MapRoulette challenge not too long ago: mvexel's Diary | Tutorial: Creating a MapRoulette Cooperative Challenge to Add Microsoft Builing Footprints to OSM | OpenStreetMap

I think the key steps here are:

  1. Reproject your open data layer to a meter-based CRS if it isn’t already
  2. Buffer the points in the OSM features layer with an appropriate buffer size (for example 50 meters) Vector → Geoprocessing Tools → Buffer
  3. Optional, create a spatial index for both layers if they don’t have one, especially if the layers contain more than a few hundred features.
  4. Use “Extract by Location” to select everything from the OSM layer that is disjoint from the buffered points in the open data layer

Now you should have a selection that contains all OSM features that don’t have a corresponding feature in the open data layer, purely based on the buffer distance. This is not a perfect comparison but it will get you started.

4 Likes

Thank you! I will try to follow your tutorial!