I'm hoping to tap into the python community for advice on how to efficiently convert a shapely linestring back into an arcpy polyline. I am developing a suite of python tools in the ArcPro 3.1.0 toolbox (atbx).
So I read from a file geodatabase polyline geometries and convert them to a shapely linestring. I do this as shapely exposes a useful method on a polyline that does not exist in the arcpy. A simplified snippet of my reading code (which works fine) is shown below:
from shapely.wkb import loads
with arcpy.da.SearchCursor(mylayer, ["SHAPE@WKB"]) as cursor:
for row in cursor:
geom = row
line = loads(bytes(geom)) # Convert arcpy geometry into shapely geometry
# Do something with line using shapely
Later on in my code I want to write the processed shapely linestring back into a new Feature Class using an insert cursor.
What I cannot work out, hence me coming to you, is how do I efficiently turn a linestring back into an arcpy polyline geometry so I can write it back to a new file geodatabase feature class? In the help file the arcpy polylines take arrays of points when constructing a polyline. I was expecting to find the reverse of the WKB property on a polyline? It seems to me that arcpy allows you to convert from a polyline into alternative ways of recording geometry (json, wkb, wkt) but does not seem to consume them?
Solved! Go to Solution.
Awesome! It never occurred to me that it would be a function of arcpy, I was looking for some sort of read/write property of a geometry. Well you have definitely earned yourself a 🍺
Thank you for your swift reply.