I have an ordered stream network and I want to select all stream features that contain water that has come from a certain area. To start with I'm running a select by location query to find all stream segments that cross my polygon. The problem is that this does not select the stream segments further down stream that these segments flow into.
What I need to do is create a selection that will select stream segments that touch existing selected segments only if they have a higher number for the stream order attribute, then repeat this until the result does not change. I expect I have to do this in python, but I'm not sure of a few things: how to use the select by location and select by attribute at the same time (select intersecting lines that have a value above a threshold), how to make the threshold relate to the line you're checking the intersection with (select intersecting lines that have a higher value than the line they're intersecting with, how to get this to iterate through until the selection isn't changing.
This feel quite complicated, but I'm sure people will have run into this problem before so there might even be an easier way, or a tool. Is there?