3

I have a HUGE dataset of points that were collected along a route. The data may change daily, and the most recent data is the most important. What I would like to do is take only 1 point from a given radius (say 30ft). If there are 5 pts within 30ft of eachother, then I want to keep the one with the most recent date.

What is the best way to do this across the entire dataset?

I was thinking small buffers, then a selection of if they overlap... I don't know... I'm using latest stable QGIS, but could give GRASS a shot if there's a way in there.

As an example, I've attached a screenshot that has the dense cluster of points, and I would like to reduce so that there is approx. one pt every 30ft. This shapefile is approx. 1.1gB.

Too Many Points, need to reduce

  • This sounds like a clustering or grouping exercise (maybe aggregate points or some other generalization/cartographic tool), but I'm not familiar with QGIS to that extent. I only know where I'd start searching with ArcGIS and/or Spatial Analyst. However just based on your description, what happens if A is 25 from B which is 25 from C, but A and C are 40 from each other? As you describe it, even with a 'moving window' analysis, earlier operations can affect later outcomes. – Chris W Mar 19 '15 at 4:45
  • 1
    Here's a wild (slash brute force slash simple) idea for a model or script: Select all most recent points, buffer by 30 ft, delete all points that intersect that buffer except the ones that created it. Iterate back through the dates with that process until nothing is selected in the first step. Possibly forgo the buffer and just use SQL selects by distance? – Chris W Mar 19 '15 at 4:48
3

As a workaround you could create a vector grid with 30m resolution with an unique ID for each grid cell. Join attributes by location of points and grid and you have a table with the grid ID and the date. I would use MS Access and create a query on this table with the options group by ID and max of date. But there are probably many ways to summerize a table.

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.