<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help in segmenting a polyline layer into equally length segments in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038419#M60480</link>
    <description>&lt;P&gt;Hello Jeff,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Yes the source layer is selectable in the TOC. I reran the script with a fresh source to make sure. Interesting enough after the script is the run the source layer is removed from the map visually but still exists under the TOC and Catalog panes with appropriate check boxes turned on. Also thankyou for the tip and will introduce it once I get this script working correctly.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Roderick&lt;/P&gt;</description>
    <pubDate>Fri, 19 Mar 2021 02:18:15 GMT</pubDate>
    <dc:creator>RoderickPerendy</dc:creator>
    <dc:date>2021-03-19T02:18:15Z</dc:date>
    <item>
      <title>Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038327#M60470</link>
      <description>&lt;P&gt;Hello, I have a script that my intentions are for it to segment polylines into equal intervals with the last polyline as a remainder. Initially, I attempted to conduct this through GeneratePointsAlongLines at equal distance and then SplitLinesAtPoint functions but noticed that this produced segmented lines that had lengths that were inconsistent with the required length. Furthermore, I'm the only person at my company that has an Advanced Pro license and I would like to make this tool work for others.&lt;BR /&gt;&lt;BR /&gt;My script is able to successfully iterate through the source polylines layer and add information to an output layer using cursors and segmentAlongLine method. Though the attributes table has the correct number of rows, the feature layer still only shows the original polyline when selected. I believe what is happening is that the segmented polyline doesn't actually exist. Any ideas on what I'm doing wrong? Thank You!&lt;BR /&gt;Below is my script:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_0-1616103090255.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8840i0CF94B804A4C1EE3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_0-1616103090255.png" alt="RoderickPerendy_0-1616103090255.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_1-1616103164728.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8842i4C7CDB8BF43040BF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_1-1616103164728.png" alt="RoderickPerendy_1-1616103164728.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;import arcpy&lt;BR /&gt;arcpy.env.overwriteOutput = True&lt;BR /&gt;arcpy.env.workspace = r"C:\Users\roder\OneDrive\Documents\ArcGIS\Projects\PythonScripting\PythonScripting.gdb" # Change to getParameter&lt;BR /&gt;polylines = "CranePath_OnRoad"#Change to getParameter&lt;BR /&gt;spatial_ref = arcpy.Describe(polylines).spatialReference&lt;BR /&gt;output = "CranePath_OnRoad_Segmented" #Change to getParameter&lt;BR /&gt;interval_dist = 20 # feet, Change to get Parameter&lt;BR /&gt;#distance_interval_unit = getParameter&lt;BR /&gt;arcpy.AddField_management(polylines,"Line_Length","DOUBLE")&lt;BR /&gt;arcpy.management.CalculateGeometryAttributes(polylines, "Line_Length LENGTH_GEODESIC", "FEET_US")&lt;BR /&gt;mem_polyline = arcpy.CreateFeatureclass_management("in_memory", "mem_polyline", "POLYLINE", polylines, "DISABLED", "DISABLED", spatial_ref)&lt;BR /&gt;arcpy.AddField_management(mem_polyline,"LineID","LONG")&lt;BR /&gt;in_flds = ["OID@", "SHAPE@", "Line_Length"]&lt;BR /&gt;out_flds = ["SHAPE@", "Line_Length", "LineID"]&lt;BR /&gt;cnt_in = 0&lt;BR /&gt;cnt_out = 0&lt;BR /&gt;with arcpy.da.InsertCursor(mem_polyline,out_flds) as curs_out:&lt;BR /&gt;with arcpy.da.SearchCursor(polylines,in_flds) as curs_in:&lt;BR /&gt;for row_in in curs_in:&lt;BR /&gt;cnt_in += 1&lt;BR /&gt;polyline_in = row_in[1]&lt;BR /&gt;from_dist = 0&lt;BR /&gt;lineID = row_in[0]&lt;BR /&gt;max_dist = float(row_in[2])&lt;BR /&gt;if cnt_in % 100 == 0:&lt;BR /&gt;print("Processing line: {}, generated {} segments".format(cnt_in, cnt_out))&lt;BR /&gt;&lt;BR /&gt;while from_dist &amp;lt;= max_dist:&lt;BR /&gt;cnt_out += 1&lt;BR /&gt;to_dist = from_dist + interval_dist&lt;BR /&gt;remainder_dist = max_dist - from_dist&lt;BR /&gt;segment = polyline_in.segmentAlongLine(from_dist,to_dist,False)&lt;BR /&gt;lst_out = list((segment,interval_dist,lineID))&lt;BR /&gt;curs_out.insertRow(lst_out)&lt;BR /&gt;from_dist += interval_dist&lt;BR /&gt;else:&lt;BR /&gt;cnt_out += 1&lt;BR /&gt;segment = polyline_in.segmentAlongLine(from_dist-interval_dist,max_dist,False)&lt;BR /&gt;lst_out = list((segment,remainder_dist,lineID))&lt;BR /&gt;curs_out.insertRow(lst_out)&lt;/P&gt;&lt;P&gt;mem_polyline_fl = arcpy.MakeFeatureLayer_management(mem_polyline, "Polylines_memory")&lt;BR /&gt;arcpy.CopyFeatures_management(mem_polyline_fl, output)&lt;BR /&gt;arcpy.Delete_management(mem_polyline)&lt;BR /&gt;arcpy.Delete_management(mem_polyline_fl)&lt;/P&gt;</description>
      <pubDate>Thu, 18 Mar 2021 21:35:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038327#M60470</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-18T21:35:57Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038361#M60473</link>
      <description>&lt;P&gt;&lt;A href="https://community.esri.com/t5/python-blog/code-formatting-the-community-version/ba-p/1007633" target="_blank"&gt;Code formatting ... the Community Version - Esri Community&lt;/A&gt;&lt;/P&gt;&lt;P&gt;would help for code readability&lt;/P&gt;</description>
      <pubDate>Thu, 18 Mar 2021 22:11:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038361#M60473</guid>
      <dc:creator>DanPatterson</dc:creator>
      <dc:date>2021-03-18T22:11:03Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038374#M60476</link>
      <description>&lt;LI-CODE lang="python"&gt;import arcpy
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\Users\roder\OneDrive\Documents\ArcGIS\Projects\PythonScripting\PythonScripting.gdb" # Change to getParameter
polylines = "CranePath_OnRoad"#Change to getParameter
spatial_ref = arcpy.Describe(polylines).spatialReference
output = "CranePath_OnRoad_Segmented" #Change to getParameter
interval_dist = 20 # feet, Change to get Parameter
#distance_interval_unit = getParameter
arcpy.AddField_management(polylines,"Line_Length","DOUBLE")
arcpy.management.CalculateGeometryAttributes(polylines, "Line_Length LENGTH_GEODESIC", "FEET_US")
mem_polyline = arcpy.CreateFeatureclass_management("in_memory", "mem_polyline", "POLYLINE", polylines, "DISABLED", "DISABLED", spatial_ref)
arcpy.AddField_management(mem_polyline,"LineID","LONG")
in_flds = ["OID@", "SHAPE@", "Line_Length"]
out_flds = ["SHAPE@", "Line_Length", "LineID"]
cnt_in = 0
cnt_out = 0
with arcpy.da.InsertCursor(mem_polyline,out_flds) as curs_out:
    with arcpy.da.SearchCursor(polylines,in_flds) as curs_in:
        for row_in in curs_in:
            cnt_in += 1
            polyline_in = row_in[1]
            from_dist = 0
            lineID = row_in[0]
            max_dist = float(row_in[2])
            if cnt_in % 100 == 0:
                print("Processing line: {}, generated {} segments".format(cnt_in, cnt_out))
                
            while from_dist &amp;lt;= max_dist:
                cnt_out += 1
                to_dist = from_dist + interval_dist
                remainder_dist = max_dist - from_dist
                segment = polyline_in.segmentAlongLine(from_dist,to_dist,False)
                lst_out = list((segment,interval_dist,lineID))
                curs_out.insertRow(lst_out)
                from_dist += interval_dist   
            else:
                cnt_out += 1
                segment = polyline_in.segmentAlongLine(from_dist-interval_dist,max_dist,False)
                lst_out = list((segment,remainder_dist,lineID))
                curs_out.insertRow(lst_out)

mem_polyline_fl = arcpy.MakeFeatureLayer_management(mem_polyline, "Polylines_memory")
arcpy.CopyFeatures_management(mem_polyline_fl, output)
arcpy.Delete_management(mem_polyline)
arcpy.Delete_management(mem_polyline_fl)&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 18 Mar 2021 23:00:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038374#M60476</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-18T23:00:45Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038391#M60478</link>
      <description>&lt;P&gt;Have to ask... is that layer turned on as selectable in the TOC?&amp;nbsp; Have you stepped through it with a debugger and checked out your values you are getting before being inserted?&lt;/P&gt;&lt;P&gt;If you are also turning this script into a tool, you can use a little conditional to assign a default value while running it as a standalone script so you don't have to keep converting polylines from polylines = getParamter() and polylines = 'CranePath_OnRoad'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;polylines = GetParameter(1)
if polylines == '#' or not polylines:
    polylines = "CranePath_OnRoad" # defaults to the set variable for standalone script operation since getParameter returns a hash when it is not set.&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 12:18:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038391#M60478</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T12:18:13Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038419#M60480</link>
      <description>&lt;P&gt;Hello Jeff,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Yes the source layer is selectable in the TOC. I reran the script with a fresh source to make sure. Interesting enough after the script is the run the source layer is removed from the map visually but still exists under the TOC and Catalog panes with appropriate check boxes turned on. Also thankyou for the tip and will introduce it once I get this script working correctly.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Roderick&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 02:18:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038419#M60480</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T02:18:15Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038422#M60481</link>
      <description>&lt;P&gt;the only debugging that I've done is set a print statement for the 'lst_out' list. Here is a snippet of it:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_0-1616121093378.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8863i693C6778C2B9F3FF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_0-1616121093378.png" alt="RoderickPerendy_0-1616121093378.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 02:31:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038422#M60481</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T02:31:40Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038427#M60482</link>
      <description>&lt;P&gt;Cool, sorry, had to ask... Looking at your code, check your parameters in the calculate function:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;arcpy.management.CalculateGeometryAttributes(polylines, "Line_Length LENGTH_GEODESIC", "FEET_US")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The docs show it takes a list for the geometry_property parameter like:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;arcpy.CalculateGeometryAttributes_management(polylines, ["Line_Length", "LENGTH_GEODESIC"], "FEET_US")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another thing that might be an issue is not converting the values to float for the segmentAlongLine method.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;segment = polyline_in.segmentAlongLine(float(from_dist), float(to_dist), False)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 11:49:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038427#M60482</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T11:49:14Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038544#M60484</link>
      <description>&lt;P&gt;Taking another look at the code,&amp;nbsp; I am curious about the two and have always wanted to ask why ESRI puts &lt;EM&gt;arcpy.management.CalculateGeometryAttributes&lt;/EM&gt; in the documents above the parameter table but always uses the style we know &lt;EM&gt;arcpy.CalculateGeometryAttributes_management &lt;/EM&gt;in the examples.&amp;nbsp; I think it is confusing to people. I have copied that line above the parameter table a few times when they came out with it thinking that is the syntax but the scripts threw not found exceptions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;arcpy.management.CalculateGeometryAttributes()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The example shows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;arcpy.CalculateGeometryAttributes_management()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I fixed that in my post above- and I do wonder how it ran on yours without throwing an error.&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 12:04:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038544#M60484</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T12:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038572#M60485</link>
      <description>&lt;P&gt;Hello Jeff,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I attempted to use the calculate geometry as listed in the API Reference document but couldn't get it to run and got the same error as when trying to run your code. However, what I did was run the calculate Geometry from GUI window and looked at the history detail. From there I was given the code I used, but I agree I wish there weren't two formats for the same function.&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;---------------------------------------------------------------------------
ExecuteError                              Traceback (most recent call last)
In  [21]:
Line 10:    arcpy.CalculateGeometryAttributes_management(polylines, ["Line_Length", "LENGTH_GEODESIC"], "FEET_US")

File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\management.py, in CalculateGeometryAttributes:
Line 3820:  raise e

File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\management.py, in CalculateGeometryAttributes:
Line 3817:  retval = convertArcObjectToPythonObject(gp.CalculateGeometryAttributes_management(*gp_fixargs((in_features, geometry_property, length_unit, area_unit, coordinate_system, coordinate_format), True)))

File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\_base.py, in &amp;lt;lambda&amp;gt;:
Line 511:   return lambda *args: val(*gp_fixargs(args, True))

ExecuteError: Traceback (most recent call last):
  File "c:\program files\arcgis\pro\Resources\ArcToolbox\scripts\calculategeometry.py", line 269, in &amp;lt;module&amp;gt;
    CalculateGeometry(fc, properties, lUnit, aUnit, cs, cformat)
  File "c:\program files\arcgis\pro\Resources\ArcToolbox\scripts\calculategeometry.py", line 101, in CalculateGeometry
    for row in ucur:
RuntimeError: Cannot find field 'LENGTH_GEODESIC'

Failed to execute (CalculateGeometryAttributes).&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 12:28:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038572#M60485</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T12:28:10Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038581#M60486</link>
      <description>&lt;P&gt;Hey Jeff, I do really appreciate the help on this. I attempted to add float into the segment function but resulted in same output.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 12:35:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038581#M60486</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T12:35:18Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038588#M60487</link>
      <description>&lt;P&gt;That error says its not finding the 'Length Geodesic' field, which can be added by using the &lt;A href="https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/add-geometry-attributes.htm" target="_self"&gt;AddGeometryAttributes&lt;/A&gt; method&lt;/P&gt;&lt;LI-CODE lang="python"&gt;arcpy.AddGeometryAttributes_management(in_features, properties, length_unit,
                                                              area_unit,
                                                              coordinate_system)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 12:41:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038588#M60487</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T12:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038627#M60489</link>
      <description>&lt;P&gt;I took your code and did some testing and I got the Attribute 'isLicensed' error when running it in 3.6.&amp;nbsp; I changed to 2.7 and got it to run and produce segments.&amp;nbsp; One issue was it needed to create the field 'LENGTH_GEODESIC' but that is too long so it was truncating the name to 'LENGTH_GEO'.&amp;nbsp; Using 'LENGTH_GEO' instead of Line_Length worked.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Edited:&amp;nbsp; I made some changes and it worked in 3.6 without the attribute error, and just using AddGeometryAttributes_management.&amp;nbsp; Updated the code below-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# ------------------------------------------------------------------------------
# setup input parameters and variables
arcpy.env.workspace = arcpy.GetParameter(0)
if arcpy.env.workspace == '#' or not arcpy.env.workspace:
    arcpy.env.workspace = r"C:\Users\...\PythonTests\PythonTests.gdb"

polylines = arcpy.GetParameter(1)
if polylines == '#' or not polylines:
    polylines = "driveway"
spatial_ref = arcpy.Describe(polylines).spatialReference

output = arcpy.GetParameter(2)
if output == '#' or not output:
    output = "driveway_Segmented"

interval_dist = arcpy.GetParameter(3)
if interval_dist == '#' or not interval_dist:
    interval_dist = 20 #distance_interval_unit = getParameter
# ------------------------------------------------------------------------------

def insertSegment(insertList):
    with arcpy.da.InsertCursor(outFC, ["SHAPE@", "Line_Length", "LineID"]) as icur:
        icur.insertRow(insertList)

def createOutputFeatureClass():
    spatial_ref = arcpy.Describe(polylines).spatialReference
    mem_polyline = arcpy.CreateFeatureclass_management("in_memory", "mem_polyline", "POLYLINE", polylines, "DISABLED", "DISABLED", spatial_ref)
    arcpy.AddField_management(mem_polyline, "LineID", "LONG")
    return mem_polyline

def createTempPolyLines():
    polylineTemp = arcpy.MakeFeatureLayer_management(polylines, 'tempLyr')
    arcpy.AddField_management(polylineTemp, "Line_Length", "DOUBLE")

    arcpy.AddGeometryAttributes_management(polylineTemp, "LENGTH_GEODESIC", 'FEET_US', '', spatial_ref)

    return polylineTemp

def createSegments(outFC, polylineTemp):
    with arcpy.da.SearchCursor(polylineTemp, ["OBJECTID", "SHAPE@", "LENGTH_GEO"]) as scur:
        for srow in scur:
            cnt_out = 0
            polyline_in = srow[1] #shape@
            from_dist = 0
            lineID = srow[0] #OID
            max_dist = float(srow[2]) #Line_Length
            remainder_dist = ''

            while from_dist &amp;lt;= max_dist:
                cnt_out += 1
                to_dist = from_dist + interval_dist
                remainder_dist = max_dist - from_dist
                segment = polyline_in.segmentAlongLine(float(from_dist), float(to_dist), False)
                insertSegment([segment, interval_dist, lineID])
                from_dist += interval_dist
            else:
                cnt_out += 1
                segment = polyline_in.segmentAlongLine(float(from_dist-interval_dist), float(max_dist), False)
                insertSegment([segment, remainder_dist, lineID])

            print("Processing line OID: {}, generated {} segments".format(srow[0], cnt_out))

    arcpy.CopyFeatures_management(outFC, output)


if __name__ == "__main__":
    outFC = createOutputFeatureClass()
    polylineTemp = createTempPolyLines()
    createSegments(outFC, polylineTemp)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="segment.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8927i76065C585608C9C0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="segment.png" alt="segment.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 13:32:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038627#M60489</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T13:32:53Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038872#M60503</link>
      <description>&lt;P&gt;Jeff,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Thank your for cleaning up my code. I had to make a few changes, naming changing "OBJECTID" to "OID@" in 'scur' and add&amp;nbsp;arcpy.AddField_management(mem_polyline, "Line_Length", "DOUBLE") to createOutputFeatureClass() in order to get it to run but I'm still getting the same issues so I'm bewildered how it was able to work for you.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_0-1616188724961.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8980iD522EEDA4DE50C28/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_0-1616188724961.png" alt="RoderickPerendy_0-1616188724961.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_1-1616188756184.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8981i2E2182AD1009FA0D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_1-1616188756184.png" alt="RoderickPerendy_1-1616188756184.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import arcpy
arcpy.env.overwriteOutput = True


# USER INPUT FIELDS 
arcpy.env.workspace = r"C:\Users\roder\OneDrive\Documents\ArcGIS\Projects\PythonScripting\PythonScripting.gdb" # Change to getParameter
polylines = "CranePath_OnRoad"#Change to getParameter
spatial_ref = arcpy.Describe(polylines).spatialReference
output = "CranePath_OnRoad_Segmented" #Change to getParameter
interval_dist = 20 # feet, Change to get Parameter
#distance_interval_unit = getParameter

def insertSegment(insertList):
    with arcpy.da.InsertCursor(outFC, ["SHAPE@", "Line_Length", "LineID"]) as icur:
        icur.insertRow(insertList)

def createOutputFeatureClass():
    spatial_ref = arcpy.Describe(polylines).spatialReference
    mem_polyline = arcpy.CreateFeatureclass_management("in_memory", "mem_polyline", "POLYLINE", polylines, "DISABLED", "DISABLED", spatial_ref)
    arcpy.AddField_management(mem_polyline, "LineID", "LONG")
    arcpy.AddField_management(mem_polyline, "Line_Length", "DOUBLE")
    return mem_polyline

def createTempPolyLines():
    polylineTemp = arcpy.MakeFeatureLayer_management(polylines, 'tempLyr')
    arcpy.AddField_management(polylineTemp, "Line_Length", "DOUBLE")

    arcpy.AddGeometryAttributes_management(polylineTemp, "LENGTH_GEODESIC", 'FEET_US', '', spatial_ref)

    return polylineTemp

def createSegments(outFC, polylineTemp):
    with arcpy.da.SearchCursor(polylineTemp, ["OID@", "SHAPE@", "LENGTH_GEO"]) as scur:
        for srow in scur:
            cnt_out = 0
            polyline_in = srow[1] #shape@
            from_dist = 0
            lineID = srow[0] #OID
            max_dist = float(srow[2]) #Line_Length
            remainder_dist = ''

            while from_dist &amp;lt;= max_dist:
                cnt_out += 1
                to_dist = from_dist + interval_dist
                remainder_dist = max_dist - from_dist
                segment = polyline_in.segmentAlongLine(float(from_dist), float(to_dist), False)
                insertSegment([segment, interval_dist, lineID])
                from_dist += interval_dist
            else:
                cnt_out += 1
                segment = polyline_in.segmentAlongLine(float(from_dist-interval_dist), float(max_dist), False)
                insertSegment([segment, remainder_dist, lineID])

            print("Processing line OID: {}, generated {} segments".format(srow[0], cnt_out))

    arcpy.CopyFeatures_management(outFC, output)

outFC = createOutputFeatureClass()
polylineTemp = createTempPolyLines()
createSegments(outFC, polylineTemp)&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 19 Mar 2021 21:20:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038872#M60503</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T21:20:00Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038883#M60505</link>
      <description>&lt;P&gt;That is very odd.&amp;nbsp; I just ran your code and it gave me the desired output like before.&amp;nbsp; ... any updates waiting to be installed?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="segment2.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8983i9798921091DFEB2E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="segment2.png" alt="segment2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 21:45:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038883#M60505</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-19T21:45:14Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038888#M60507</link>
      <description>&lt;P&gt;It looks as though I'm up to date:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RoderickPerendy_0-1616191262487.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/8984i31FA5352F21D43D4/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RoderickPerendy_0-1616191262487.png" alt="RoderickPerendy_0-1616191262487.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Guess I'll have to reach out to Esri and report on a bug.&lt;/P&gt;</description>
      <pubDate>Fri, 19 Mar 2021 22:01:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1038888#M60507</guid>
      <dc:creator>RoderickPerendy</dc:creator>
      <dc:date>2021-03-19T22:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: Help in segmenting a polyline layer into equally length segments</title>
      <link>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1039407#M60525</link>
      <description>&lt;P&gt;Here is the script that I put together to work with the data.&amp;nbsp; I think the key is projecting it from WGS84 to stateplane, and deleting the full line that is getting inserted somewhere by selecting by attributes and toasting anything over 21.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# ------------------------------------------------------------------------------
# setup input parameters and variables
arcpy.env.workspace = arcpy.GetParameter(0)
if arcpy.env.workspace == '#' or not arcpy.env.workspace:
    arcpy.env.workspace = r"C:\Users\klingj\Documents\ArcGIS\Cranewalk - On Road.gdb"

polylines = arcpy.GetParameter(1)
if polylines == '#' or not polylines:
    polylines = r"Polylines_Project"

# for the stateplane projection .
spatialref = arcpy.GetParameter(1)
if spatialref == '#' or not spatialref:
    spatialref = r"Polylines_Project"
spatial_ref = arcpy.Describe(spatialref).spatialReference

outFC = arcpy.GetParameter(2)
if outFC == '#' or not outFC:
    outFC = "cranePath_Seg"

interval_dist = arcpy.GetParameter(3)
if interval_dist == '#' or not interval_dist:
    interval_dist = 20 #distance_interval_unit = getParameter
# ------------------------------------------------------------------------------

def insertSegment(insertList, output):
    with arcpy.da.InsertCursor(output, ["SHAPE@", "Line_Length", "LineID"]) as icur:
        icur.insertRow(insertList)

def createOutputFeatureClass():
    mem_polyline = arcpy.CreateFeatureclass_management('memory', "cranePath_Seg", "POLYLINE", polylines, "DISABLED", "DISABLED", spatial_ref)
    arcpy.AddField_management(mem_polyline, "LineID", "LONG")
    return mem_polyline

def createTempPolyLines():
    # project data here to stateplane
    polylineTemp = arcpy.MakeFeatureLayer_management(polylines, 'tempLyr')
    arcpy.AddField_management(polylineTemp, "Line_Length", "DOUBLE")
    arcpy.AddGeometryAttributes_management(polylineTemp, "LENGTH_GEODESIC", 'FEET_US', '', spatial_ref)
    return polylineTemp

def createSegments(FCGeom, output):
    outFC = os.path.join(arcpy.env.workspace, 'cranePath_Seg')
    with arcpy.da.SearchCursor(FCGeom, ["OID@", "SHAPE@", "LENGTH_GEO"]) as scur:
        for srow in scur:
            cnt_out = 0
            polyline_in = srow[1] #shape@
            from_dist = 0
            lineID = srow[0] #OID
            max_dist = float(srow[2]) #LENGTH_GEO
            remainder_dist = ''

            while from_dist &amp;lt;= max_dist:
                cnt_out += 1
                to_dist = from_dist + interval_dist
                remainder_dist = max_dist - from_dist
                segment = polyline_in.segmentAlongLine(from_dist, to_dist, False)
                insertSegment([segment, interval_dist, lineID], output)
                from_dist += interval_dist
            else:
                cnt_out += 1
                # print("Processing line OID: {},  segment from: {} to remainder: {}".format(srow[0], from_dist-interval_dist, remainder_dist))
                segment = polyline_in.segmentAlongLine(from_dist-interval_dist, remainder_dist, False)
                insertSegment([segment, remainder_dist, lineID], output)

            print("Processing line OID: {}, generated {} segments".format(srow[0], cnt_out))

        selctFeatures = arcpy.SelectLayerByAttribute_management(output, 'New_Selection', '''SHAPE_LENGTH &amp;gt; 21''')
        arcpy.DeleteFeatures_management(selctFeatures)
        arcpy.CopyFeatures_management(output, outFC)
        # project to WGS84

if __name__ == "__main__":
    output = createOutputFeatureClass()
    FCGeom = createTempPolyLines()
    createSegments(FCGeom, output)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Mar 2021 17:59:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/help-in-segmenting-a-polyline-layer-into-equally/m-p/1039407#M60525</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-03-22T17:59:44Z</dc:date>
    </item>
  </channel>
</rss>

