Stream Segmentation

761
2
02-02-2018 10:27 AM
OwenWickenheiser
New Contributor

My colleagues and I are trying to extract meanders from large stream networks.  We are looking for a way to separate segments based on angles (lines being straight versus curved above a specific degree).  We tried using COGO tools to create segments, but we could not specify the threshold and the segments were too small.

After we identify the meanders, we want to split the polyline into curved and straight segments with each having an attribute denoting which category it falls into.  

Any help would be greatly appreciated!  

0 Kudos
2 Replies
DanPatterson_Retired
MVP Emeritus

Owen

I have some code in Origin, distances and bearing... geometry wanderings

Should want to segment your polylines, the procedure is pretty straightforward to get the angles and angular changes.

Should you need additions or modifications, then follow up

DuncanHornby
MVP Notable Contributor

An approach which may be to crude for your analysis is to compute the sinuosity of the line between tributary junctions. Assuming your river network is topologically correct, which is often not the case, then you could easily compute the sinuosity of each segment of river. Topologically correct is taken to mean lines join at their nodes only to create the river network.

Attached is a simple field calculate python script which you would load into the field calculate tool and run it on a new numeric field (type double). It will compute the sinuosity of each polyline in your network.

This code will only work if your segments are composed of more than 2 vertices. So if your river network is bizarrely represented by lines of only two vertices then this approach won't work. As you don't actually describe the nature of your data or show any images we don't know what you actually have... It would be prudent in future questions to include images when asking such questions, you can also go back and edit your existing questions to improve them and this might attract other answers.