How to calculate stream order for vector data without a DEM?

Check out the NVS Vector Stream Tool which ...

is a user-friendly ArcCatalog (9.3.x) Toolbox geoprocessing tool which simply assigns a numeric order to segments of a poly line feature class. Unlike the Spatial Analyst Tools for Hydrography, this tool solely uses vector stream data instead of raster stream data accompanied by a flow direction raster.

...

NVS Vector Stream Tool installers are available for both ArcGIS Desktop 10.0 and ArcGIS Desktop 9.3.1.


Out of curiosity I downloaded the NVS stream tool and ran it on a vector river network that has loops and compared the Strahler order generated by this tool with the Strahler order computed by RivEX. The algorithm used by the NVS tool is slower (not really a big problem) but more importantly it is not robust when it is dealing with river networks that have loops or braided. The help does not explicitly state that the network needs to be single threaded. So don't use this tool if your network has loops, it seems that this tool requires single threaded networks, the type you would get from a DEM. This is an important difference that it does not highlight.

In my test data the NVS tool was reporting a Strahler order of 14 when RivEX was returning 5...