3

I have a lot of points in one layer. All of which represent the same type of real world feature.

I want to perform a delete identical within XY of each point but in a specific order. (by splitting them into a layer each if there is no smarter way to do this within the layer??)

I want the order to start with the point closest to a specific line feature so I have added a distance attribute to each point with the near tool.

Thus the first time the operation runs it deletes identical points close to the point with the distance attribute closest to 0.

The second time it should then move on to the next point but it will skip those points deleted because they were too close to the first point. and repeat until all points have been dealt with.

How can I make such a loop either dealing with just the one layer or with having each point split into its own layer (might be easier?)

The pic below illustrates the line and blue points will be kept while red ones deleted, as a type of generalization. The red circle represents the XY tolerance.

I want to try and make this in FME or ArcMap ModelBuilder.

illustration

enter image description here

  • Is your data as you show it always in this idealistic situation? Such that there is always this tight grouping of points? Would you ever get a line of points running say west to east from your black line all within the tolerance distance thus a point could exist within multiple buffer zones? – Hornbydd Mar 23 '16 at 23:43
  • It could appear in any random grouping so the result of a line would keep only the blue points like this: i.imgur.com/9WoPohN.jpg – G.Costanza Mar 24 '16 at 15:04
  • Could you edit your question and add this extra image as that is very useful. – Hornbydd Mar 24 '16 at 15:07
  • edited, added the other picture too :) – G.Costanza Mar 24 '16 at 15:39
2

The workflow could go something like this:

  1. Use the Find Identical tool to separate all the points into their identical groups. Let's call this our Results table.
  2. Use the Join Field tool to join the distance field to the Results table by the IN_FID.
  3. Use the Summary Statistics tool to match the minimum distance with each FEAT_SEQ. The input table will be the Results table. To use the tool, for parameters, set the Case Field to FEAT_SEQ, and set the Statistics Field(s) to Distance, MIN.
  4. Use the Join Field tool to join the MIN_DISTANCE field to the Results table from Step 1. (Join by FEAT_SEQ.)
  5. Join the Results table to the original feature class by IN_FID.
  6. Select records where DISTANCE = MIN_DISTANCE.
  7. Use the Feature Class To Feature Class tool to copy the selected records to a new feature class, this being the points you want, minus all the duplicates.

The picture below shows what the input table would look like after Step 6.

enter image description here

  • Note that you could end up with some duplicate points if some are equidistant from the line. You could run Delete Duplicates at the end to make sure. – RHB Mar 23 '16 at 14:30

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.