Sunday, 20 November 2016

geometry - Determining if point on boundary using ArcPy?


From comments at Determining if point on boundary using shapely? I am creating an ArcPy equivalent Q&A to that one which was answered for shapely. Quoting the asker of the original question:



I'm new to Python, and I want to test if a certain point lies ON the (boundary) of a polygon - not inside, not outside, just if it's on the boundary. The points and polygon already defined



polygon = [(3, 2), (5, 1), (7, 2), (8, 6), (9, 7), (11, 6), (10, 4), (12, 2), (15, 2), (16, 5), (19, 7), (18, 11), (14, 12), (11, 9), (5, 9), (2, 6)] 

Point_X = 14
Point_Y = 12


this point should be a boundary. How can I do that?




Answer



As commented by @Vince on the original question:



Due to the imprecision associated with floating-point values, far fewer points which are "on" a line will actually be reported as such in real-world situations. If you want to test this, your code needs to use ArcPy functions to assemble Polygon and PointGeometry objects, so that you can cast the Polygon to a line (using Geometry.boundary()) and test for point intersection with Geometry.contains(). Be sure to specify an appropriate SpatialReference.




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...