1

I am looking for a way to compare two shape layers automatically. We have two files that represent two different states of our project and thus contain similar data in the same format (e.g. both point data with similar attribute fields). We need to find out the geographic and attribute differences between both data sets. The data sets are quite big, so doing it by hand would be very timeconsuming.

To compare if the location we can simply use the "Select by Location"-Tool, however we still need to know if attributes were changed. To give an example: An extended solution would be a function similar to MS Word "compare two versions of a document".

I have an idea of how to do this with a script, but before I sit down for an afternoon programming it, I wanted to ask, if there is a Plugin or another tool, I don't know, that already does that.

I am using QGIS 3.16.0 and my colleague is using 3.14.X I assume.

5
  • 1
    This should be relatively easy using a virtual layer and union - but my SQL is a bit very rusty, can't provide the correct code right now, sorry. – Erik Feb 24 at 8:44
  • Thanks for the hint. I will try that first unless someone comes up with a ready to use tool. – C.-F. Vintar Feb 24 at 9:06
  • A table join could be another way with creating virtual fields that compare the contents of the two according fields. – Babel Feb 24 at 14:17
  • 1
    You didn't state what version you're using, but at 3.16.3 Processing Toolbox > Vector General > Detect Dataset Changes is available. – Stu Smith Feb 24 at 15:54
  • @StuSmith: Thanks that worked for my colleague. Could you write this as an answer so I can mark this thread answered. – C.-F. Vintar Feb 26 at 7:48
2

QGIS has the Processing Toolbox > Vector General > Detect Dataset Changes tool that will detect both spatial and tabular differences. This tool is available at version 3.16.3, possibly earlier.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.