I have a point shapefile with points that have identical geometry but different attributes. I would like to merge the points in the same location, but keep the highest value of the attribute from them.

I tried using dissolve and statistics fields, it dissolved the points but it kept the highest value of each attribute from the entire shapefile, while i only want the point to keep the value of each cluster.

For example, in a position i have a pole, with 3 fiber optics lines coming, and 2 leaving. I would like for the position of the pole to merge the points into one, and keep the highes value, in this case, 3.

  • 1
    How are your clusters defined? You need to have them as common values in your column you want to use for dissolving. – Matte Feb 13 '18 at 10:18
  • Ok, so a little more backstory might help. I have poles as point features and fiber optics lines as polylines. All the lines start or end in a pole, and i used feature vertices to points to create points from the lines at both ends. Now as you might imagine, i have an end point from a line, and a start point from another line overlapped over the same pole. I need to add to that pole the values from the points that i got from the lines, but since i might get different values from the lines, i need to choose the MAX value. So the clusters are defined spatially, identical points. – Alexandru S. Feb 13 '18 at 10:18
  • 1
    Welcome to GIS SE! As a new user be sure to take the Tour to learn about our focussed Q&A format. Please use the edit button beneath your question to revise it with any requested clarifications. – PolyGeo Feb 13 '18 at 10:27

If the points are in one shape file.. it might be worth selecting by attributes and creating three separate shape files in order to then use spatial join. That sounds circuitous but I think effecting a conditional merge would require some code to iterate through each point.

When the points are in separate shape files :

It is very unlikely the points will be literally identical even if they started out as a common set, so that will need to be handled.

One option which might work (not tried it myself) is to set the XY tolerance in the Environments such that small differences are ignored. Alternatively you could buffer one dataset by a very small amount, then spatial join this to the other set of points.

With that done you could use the spatial join tool (in Analysis Tools) which gives you more options. Here you can right click on the field of interest and set "merge rule" to maximum. Alternatively, do a usual spatial join via right click from the Table of Contents then create a field in the joined shapefile and use a nested conditional statement in field calculator to select the highest.

Another option (and this would be my preference) would be to export it to a database and use a query


I found another solution. The points are identical, becasue the lines were drawn manually with snapping to the poles. My solution was to add XY coordinates to all the points, create a new field in which i calculated "Point_X * 100 + Point_Y", which gave me a "unique" value on which i could do a simple dissolve and use the statistics fields with max option to output my required attributes.

Your Answer

