2

This polygon was created from a grid of 500 x 500 meters, then Union, Generalize and Dissolve was used to arrive at this geometry, the laspoint not help me, I just want to have points on each vertex.

How I can eliminate this point (lastpoint) that I can not enumerate my vertex.

laspoint from polygon's geometry


I'm working with ArcGIS 10.1 and according to my workflow, it is performed as follows:

  • From a grid of 500 x 500 meters, I select an area and generated a polygon with arcpy.Union_analysis as shown in the graphs.

  • Using arcpy.Dissolve_management and arcpy.Generalize_edit, try to delete the intermediate points.

  • From this polygon Figure A, generated a Feature (point type). With arcpy.FeatureVerticesToPoints_management to label then using the ID field and deploy the polygon to see a result like Figure B. Sometimes it works without problems, sometimes it fails.

enter image description here

Thanks again to everyone for their comments and suggestions. Well, the first graph posted has a wrong result, and the second graph has a correct result, was only posted to show that sometimes it works and sometimes it does not and I do not know why. In fact, unnecessary points that show the outcome of this third graph, I can remove the very fast and easy way to "Start Editing" ArcGIS, but the fact is that I am creating automated processes with python, then put them as services in ArcGIS Server. I have tried using many methods like Dissolve, Generalize, SimplifyPolygon_cartography, geometry Modify, Repair Geometry, I tried to recreate the polygon convert to line UnsplitLine_management. The most important thing for me is to label the vertices of the polygon with the corresponding geometry (would like to use some expression), as not doing so, I convert the polygon to get points and the geometry of these points as a label. enter image description here

  • Either edit it out manually if this is a one-off or try to see if a Repair Geometry will get rid of it. The syntax is in the help file. – user681 Aug 7 '14 at 3:01
  • 2
    @DanPatterson is that definitely an error? It looks like it's a valid but extraneous vertex, and Simplify should be used to remove it? – Stephen Lead Aug 7 '14 at 5:29
  • 1
    It's still unclear from your edits where the vertex is being introduced. Why is it a problem - can you just ignore it? If not, the simplify suggestion below will remove it – Stephen Lead Aug 8 '14 at 1:38
  • Dan and Stephen,I can not ignore the extra points from the geometry of the polygon, because based on the points obtained, create a Feature Class type point and then have label based on their respective ID. Maybe I could not express what I really want to do, anyway I appreciate the help and interest in this problem. – Alvaro Murillo Aug 20 '14 at 21:23
3

As mentioned above, you can use:

arcpy.SimplifyPolygon_cartography("polygon", "output", "POINT_REMOVE", 1)

You might have to tweak the tolerance- I'm not real familiar with how it works.

You could also do this using geometry, but there are a lot of factors that go along with it. It's hard to tell by your question if this is for many features, or just one feature. If it is more than one feature, is the scenario the same for each one?

If it is always the first/last point you want removed, then this should work:

search = arcpy.da.SearchCursor("existing polygon", "SHAPE@")
insert = arcpy.da.InsertCursor("new polygon", "SHAPE@")

for row in search:
    points = [arcpy.Point(point.X, point.Y) for shape in row[0] for point in shape]

    del points[0]
    del points[-1]
    points.append(points[0])

    array = arcpy.Array(points)
    polygon = arcpy.Polygon(array)

    insert.insertRow([polygon])
  • Ian, Thanks for your advice but sometimes the extra point is located in the middle of geometry or point numbering, the procedure works, but not for my purposes. Thanks anyway – Alvaro Murillo Aug 20 '14 at 21:13

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.