Estoy de acuerdo con BWill. Su principal problema es definir el origen de cada polilínea. ¿Qué constituye un 'río'? Ι supondría que un afluente es una "ruta" independiente a partir de 0-> longitud del afluente. Entonces haría lo mismo para los ríos principales, pero en este caso crearía una polilínea fusionada a partir de todas las polilíneas constituyentes. Creo que una vez que tienes que estás "casi" allí. Luego: Convierta todas sus polilíneas combinadas en polilíneas medidas (PolylineM), incluidos los afluentes. Entonces tienes tu 'red de rutas'. A partir de entonces, se trata de encontrar la distancia a lo largo de su ruta para cada estación. ¿Supongo que las ubicaciones de las estaciones están definidas en XY? Además, otra suposición, no caen exactamente sobre el río, ¿ellos? En cualquier caso, necesitará una forma de encontrar la distancia de la estación desde el comienzo de cada río o triburary. En teoría, si una estación está en la intersección del río y el afluente, puede tener 2 ubicaciones (una para cada una).
Para encontrar esta ubicación, puede usar las herramientas de ArcMap, pero no las he usado por un tiempo, así que no puedo recordar la parte superior de mi cabeza. Por otro lado, si importa sus archivos de forma (?) A PostGIS, podría usar ST_Line_Locate_Point . Esta función:
Devuelve un flotante entre 0 y 1 que representa la ubicación del punto más cercano en LineString al Punto dado, como una fracción de la longitud total de la línea 2d.
Lo que significa que luego puede encontrar la ubicación a lo largo del río multiplicando lo que encuentre con la longitud (combinada) del río. Una nota final: si usa PostGIS, no tiene que pasar por el paso de crear el PolylineM, solo ArcGIS lo requiere para la referencia lineal.
Espero que esto tenga sentido!