Eu concordo com BWill. Seu principal problema é definir a origem de cada polilinha. O que constitui um 'rio'? Ι assumiria que um tributário é uma "rota" autônoma a partir de 0-> comprimento do tributário. Então eu faria o mesmo para os rios principais, mas nesse caso eu criaria uma polilinha mesclada a partir de todas as polilinhas constituintes. Eu acho que uma vez que você tem que está "quase" lá. Então: converta todas as polilinhas mescladas em polilinhas medidas (PolylineM), incluindo os tributários. Você tem sua 'rede de rotas'. A partir daí, é uma questão de encontrar a distância ao longo do seu percurso para cada estação. Eu acho que os locais das estações são definidos em XYs? Além disso, outro palpite, eles não caem exatamente no topo do rio, Eles? De qualquer forma, você precisará encontrar uma distância da estação desde o início de cada rio ou triburário. Em teoria, se uma estação estiver na interseção do rio e do tributário, ela poderá ter 2 locais (um para cada).
Para encontrar esse local, você pode usar as ferramentas do ArcMap, mas não as utiliza há um tempo, por isso não consigo me lembrar do topo da minha cabeça. Por outro lado, se você importar seus shapefiles (?) Para o PostGIS, poderá usar o ST_Line_Locate_Point . Esta função:
Retorna um ponto flutuante entre 0 e 1 representando a localização do ponto mais próximo em LineString ao ponto especificado, como uma fração do comprimento total da linha 2d.
O que significa que você pode encontrar o local ao longo do rio multiplicando o que encontra pelo comprimento do rio (mesclado). Uma observação final - se você usa o PostGIS, não precisa passar pela etapa de criação do PolylineM; somente o ArcGIS exige isso para referência linear.
Espero que isso faça sentido!