Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a set of polylines which I need to split at varying distances from their starting points.

In general, I'm looking for a something similar to the SPLIT function within the editor tool. There it is possible to specify a certain line length where the split should be applied.

For instance: I have a line A of 3200m length, that I need to split into two separate geometries, one from 0 til 1700m, and one from 1700m til 3200m.

Does anyone have accomplished this using Python? Or this there no way around ArcObjects? Or might there be a different solution I'm missing?

I'm using ArcGIS Desktop 9.3.1. on WinXP with Python 2.7.2.

share|improve this question
add comment

3 Answers 3

There is a Data Management tool called Split Line At Point that does exactly this but it requires ArcGIS Desktop 10.0 (or later), and an ArcInfo (later called Advanced) level license:

import arcpy
from arcpy import env

env.workspace="C:/data"
arcpy.SplitLineAtPoint_management("streets.shp","events.shp","splitline_out.shp","20 Meters")
share|improve this answer
1  
The line at point tool is what I'm looking for. Unfortunately it doesn't exist with ArcGis 9.3.1 yet. The line at vertices tool doesn't help much because I end up with thousandths of splits I don"t need. –  LarsVegas May 14 '12 at 9:47
add comment

I've used this ArcObjects class to split line features before at specific distances.

http://edndoc.esri.com/arcobjects/8.3/Samples/Editing/Edit%20Commands/Line%20Edit%20Toolbar/clsDivideLineFeatures.htm

share|improve this answer
    
This is a very interesting add-on! Thanks for sharing the information. Do you have ever used it from within a script? I need to apply splits at varying distances to more than 100 lines. So what I need here is to call the "Proportion"-tool with an array of distances. Is that possible? Thanks mate! –  LarsVegas May 14 '12 at 12:11
1  
Since you are using 9.3.1, you could either create a VBA macro or a Visual Studio BaseCommand dll. edndoc.esri.com/arcobjects/9.2/NET/…. Then you could iterate through your layer, selecting each feature, and spliting the feature maybe by the feature field value (split at distance value). –  artwork21 May 14 '12 at 12:55
1  
Thanks, I'll look into it. Sounds like a lot of work though, especially because this is terra incognita for me. Might be easier to find someone with ArcGIS 10 installed and let him/her run the SplitLineAtPoint_management-tool. –  LarsVegas May 14 '12 at 14:58
add comment

You can use ETGeowizards (Polyline->Split Polyline). If you need to include this in a script or geoprocessing model, ETGeowizards can be pulled into ModelBuilder.

In PostGis you can use ST_Line_Substring

share|improve this answer
    
The only restriction would be licence. You can not use ET GeoWizzard in model builder without licence. Manually you could use ET for featureclass containing less than 100 features. –  Tomek May 14 '12 at 9:37
    
Too bad: I can't install ETGeowiz at my office. PostGIS also no option for me...I thought about dynamic segmentation which will give me the points for the split. But then I'm stuck with what I just posted down this page: I haven't got access to the split line at point tool. –  LarsVegas May 14 '12 at 9:53
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.