# Split multiple polylines by distance in ArcGIS

Is there a method to split thousands of polylines by employing a tool like the "Editor" - "Split" method and using distance, in ArcGIS?

When I utilize the "split" - "distance" tool (fig1), it only splits one section leaving the remainder unsplit (fig2).

I have attempted the "COGO" tool - using "Proportion", and can utilize the "duplicate" button to assign the remainder of segments which seems like a viable option. But I would like to find some way to automate this process. Has anyone found a method to do this? Or is Python (coding) the only way?

I am trying to split over 2000 lines into equal distance segments (fig 3) of ~600m. Each segment will have its angle measured, and will ultimately result in a rose diagram representing angular statistics. The distance of each segment is important in my splitting regime (a long line will have a greater representation of a particular angle on my rose diagram than the neighboring shorter line segments).

• Check out this post that first creates points at equal intervals along the lines, then splits the polylines at the points using Python in ArcMap. Jul 14 '16 at 10:04

To split multiple lines at a set distance using ArcGIS desktop (or ArcPro), the following two steps work:

1. Generate Points Along Lines tool. It's in the Data management toolbox under "sampling". You can set a specific distance between points along the lines.

2. Split Line at Point tool. It's in the Data Management toolbox under "Features". Use the points from the previous step to split your lines.

There is an easier and quicker way to do this in QGIS too.

You can use GRASS plugin under QGIS instead of ArcGIS software to split the polyline by specific length. There is a tool "v.split.length - Split lines to shorter segments by length" that can do exactly what you asking, as you can see below:

If QGIS with GRASS is not installed, I think it is time to try it. You need to download OSGeo4W Network Installer, then double click the EXE file, select `Advance install` and follow the steps until you find the following window:

Make sure to install Grass 7.0.4 with QGIS 2.14.4 (Long Term Release), and SAGA 2.1.2.

QGIS 2.16 is the latest, you can download it if you want to see the latest features of QGIS, but the Long Term Release is the stable version. Then continue with the installation process.

1. Open QGIS -> Go to Processing menu -> Enable Processing Toolbox.
2. From Processing Toolbox -> Go GRASS GIS 7 Commands -> Vector -> v.split.length - Split lines to shorter segments by length. OR easier write "split" in the search box and you will find the tool.
• Never used QGIS, but this was a great way to introduce me to it's platform. And with a little exploring using your methods, it worked a treat! Thank you! Jul 22 '16 at 10:21
• Where does this plugin/tool live on recent (2020) versions of QGIS? Mar 27 '20 at 19:34

The method you would use in ArcMap would be to use linear referencing. This assumes each line seen in your image above is indeed a single polyline. You would need to convert your polyline dataset into a polylineM featureclass and set the measurement to be the length of the polyline. This creates a new featureclass that superficially looks identical but is a PolylineM featureclass with measure (I'm assuming this will be in metres).

Knowing the length of each polyline you create a separate non-spatial "event" table with start and end values that are the distances along each polyline ID. So imagine you have a polyline that is 150m long and you want to break it up into three 50m lines then your start and ends would be: 0-50, 50-100 and 100-50.

You would then create these "events" on top of your base PolylineM dataset.

An advantage of this approach is what happens if 50m was too much and say you wanted 25m polylines? It's trivial to edit the event table. You are also not breaking up your base dataset, there may be good reasons to keep that whole?

• I have successfully created my polylineM featureclass as per your suggestions, but am confused as to the process of making my non-spatial "event" table. I am not sure if I am meant to "add fields" representing the ranges (0-50, 50-100, etc that you mentioned) into my attribute table? My polylines range from 185 to 46,000 meters in length and I would like to break all 406 polylines in my featureclass into (for example) 185m segments. That would be a lot of fields to add. Jul 21 '16 at 14:58
• No you create a table with 3 fields, route I'd, from distance and to distance. Each row would be a line. You do not add fields to the polyline M featureless. Jul 21 '16 at 18:16

If you create a point at the midpoint of the line (create two attributes X, and Y in the attribute table; then calculate geometry for each attribute calculating midpoint X and then midpoint Y), export the attribute table as a table, bring it into ArcMap, then display X, Y Data. You should then just be able to use the Split Line at Point tool.