1

I'm looking for advice on how to compile some datasets that each have a different set of attributes. Each dataset is point data, recorded in one of the two coordinate systems that have been used historically in my area. With each of my six datasets (thousands of points in each file) there are points that are contained in other datasets, as well as some which are unique. The duplicated points may not be exact coordinate matches, as they are observed coordinates, and may not be from the same observation.

I would like to compile these datasets into a single dataset, where each successive attribute table is appended onto the end so no data is lost, but all duplicated entries are merged into a single row/feature. I don't want to calculate a mean, or best likely coordinate, I want it to just add each source layers coordinates, and other fields as new attributes, so I can see the history of each observation.

The result will be a master database that I can then clean up without 6 entries for 70% of the points.

2 Answers 2

1

You can use Join attributes by location and Join attributes by nearest - you can run both using Menu Procssing > Toolbox and entering the respective name in the search box.

enter image description here

1
  • I tried this, and it worked to grab the duplicates from dataset two, but all the unique points from both datasets are not present in the final output. So dataset 1 (1390 rows) (most current info) > Join Nearest to Dataset 2 (6085 rows) > Resulting joined file has 1360 rows, ignoring the 30 rows from Dataset 1 that are unique, and the 4725 from Dataset 2. I tried telling it to export the unused ones as well, but that threw out junk data, about a dozen rows of useful info, and ~4500 with no data. Apr 27, 2022 at 19:03
1

You can achieve that using table join.

  1. Define one of the datasets (layers) as master - the one with best data quality/most details.

  2. Create a new attribute with a code that identifies the correspoinding feature from the remaining datasets: like point 5 of master dataset corresponds to point with id=17 of dataset_2, point with id=32 of dataset_3 etc.

  3. The make a table join to add the attributes of point 17/dataset_2 and point 32/dataset_3 to point 5 of the master dataset. Open Layer properties of the master layer > Join and add a new Vector Join (see screenshot), joining first dataset_2 and join its id field to the corresponding Target field (named dataset_2 in my case):

enter image description here


Edit

If you have unique points you want to add to the other layer (your comment), just copy them, switch to the layer where you want to add them > toggle editing > paste them using Menu Edit > Paste Features.

3
  • Ok So I've tried this a few ways, and though it works where I have a common field, it doesn't do anything with the unique points in the second data set. Is there a way to have it add any unique points from dataset two, at the end of dataset 1? Apr 27, 2022 at 18:53
  • I'll try to boil this down to the essense of what my scenario is. Example Dataset 1 > 1390 points > 30 are unique > 1360 are present in Dataset 2 with different attributes. Dataset 2 > 6085 points > 4725 are unique > 1360 are present in Dataset 1 with different attributes. I would like to create Joined Dataset > 7015 points > with all the attributes, including the undisplayed coordinates, from both datasets. Then repeat this process, three more times, merging duplicates, and compiling unique points each time. For each dataset, the number of duplicate points is actually unknown. Apr 27, 2022 at 19:16
  • See edited answer
    – Babel
    Apr 30, 2022 at 11:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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