2

I have two layers: points and areas (buildings).

In many places I have two or three points in one building. I would like to leave only one point in one building. How can I do that?

2

I suggest using the Delete Identical Tool. However, the precise application depends on both your data and the purpose of your task.

In case your point features share the same location (you want to delete duplicates), use the Delete Identical Tool and select the "Shape" field.

In case your point features don't share the same location and you want to delete points according to certain field values, use Spatial Join or Intersect to first identify points which are located inside your polygons. As a next step, you can use Select by Attributes to delete points with respect to specific field values.

2

You could just calculate and export the centroid of the polygon/building footprint to give you one point.

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • This method is creating an entirely new point layer, how does this clean up the existing point layer with many features per polygon? – artwork21 Jun 15 '16 at 12:32
1

I can't comment because of status credits, but in response to

You could just calculate and export the centroid of the polygon/building footprint to give you one point.

It is to be weary that centroids don't necessarily fall within polygons (buildings), such as polygons with donuts (in your instance a building with an atrium).

http://support.esri.com/technical-article/000011754

Using the Feature To Point (Data Management) tool can force the point to fall within the polygon. From the above article

Within the tool parameters there is an option to calculate the centroid that falls within the feature boundaries; this option can be enabled by checking the box for 'inside'. Enabling this parameter forces the tool to calculate a centroid that is inside the feature boundaries, if it originally falls outside the boundaries the point will be adjusted to what is considered the center of gravity within the boundaries.

This will also create new features without any attributes from the previous point layer.

  • Though you state that this is a comment to another answer, I believe that this answer stands alone as a great start to getting the centroid to fall within the polygon. – MaryBeth Jun 15 '16 at 12:03
  • This method is creating an entirely new point layer, how does this clean up the existing point layer with many features per polygon? – artwork21 Jun 15 '16 at 12:33
  • This is making some presumptions that the existing layer is purely points inside polygons, and has no attributes. It doesn't clean the existing layer, the user would remove the existing point layer. If there are other points in the layer, what attributes is the user planning on aggregating if the merge has to be completed. – JamesLeversha Jun 15 '16 at 12:53
0

This method should clean up the point layer many points per polygon:

  1. Use Feature To Point to create new centroid point layer representing each polygon
  2. Use Generate Near Table to identify the nearest point layer to the new polygon/centroid point layer (this will give you the fid value of each layer)
  3. Join near table result back to original point layer (using NEAR_FID field)
  4. Create new point layer based on features that joined successfully from step 3

This should keep the existing point attributes, but produce a new new point layer that has one feature per polygon.

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.