We are looking at the connectivity between lakes and the ability of fish to pass between them, considering that downstream presents no barriers for these fish but swimming upstream does (barriers = steep gradients embedded in the stream network).

The best solution I have found is to build a geometric network, and run "trace upstream" and "trace downstream". My problem solving drops when I have to figure out how automate it for all 391 lake points, so that the output looks the same as you would get from running an OD Cost Matrix except instead of resistance values I would simply have "connected" or "not connected" or; even a table that resembles a spatial join where each unique waterbody ID has a corresponding record for each lake that it is connected to, as a fish is able to swim.

I have attempted using ModelBuilder and inserting iterate functions to loop through each record in the lake points feature class before the trace operation, but I am not getting the results that I would like (ie either it outputs the exact same feature class or it only outputs the last point). I am not highly experienced in ModelBuilder either so my sequence of functions may not be correct.

Edit Here is my model: enter image description here

  • Sounds like you have nearly solved it, when the trace runs correctly it is outputting the data you want? But it is not running correctly. From your description and without seeing the actual model it sounds like the looping part is not sub-setting the points that feed into the trace tool. Suggest you edit your question and show us your model? – Hornbydd Oct 5 '17 at 11:51
  • @FelixIP yes I am open to a coding solution, though my skills in this are even less than in Modelbuilder. – GIS_fish_YYC Oct 5 '17 at 16:31
  • @Hornbydd if I run a simple trace through the Utility Network toolbar using only one manually-placed flag, then I end up with what I want: all lake point "junctions" selected from that feature class that are downstream/upstream of that flag and connected (barrier isn't preventing that connection, if it is, then that point isn't selected). The output fails when I try to run it all through ModelBuilder and input the entire feature class of lake points as my flags. – GIS_fish_YYC Oct 5 '17 at 18:06
  • Hi, could add one more image, a screen shot of a bit of your data and highlight what "lake features" are and what "lake features(2)" would be if it ran correctly? It may be that you are using the wrong select tool, Select Data extracts data, it does not do a select by location. I can't visualise what your inputs are, if I had done a trace I would then use the result of the trace to select points along the network, is that what you are trying to do? If so Select Data is the wrong tool. – Hornbydd Oct 5 '17 at 18:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.