10 votos

Hallar la distancia entre puntos a lo largo de un río (Referencia lineal)

Soy nuevo en el gis y estoy impactado. Tengo una red de ríos que se compone de pequeñas líneas (polilíneas). En un shapefile diferente, tengo las ubicaciones de varias estaciones en un río. Necesito encontrar la distancia a lo largo del río desde cada estación hasta el final del río.

El problema es que no tengo una línea completa de río. Y no hay ningún atributo común que pueda utilizar para unir o fusionar las cadenas de líneas. Además, algunas estaciones están en afluentes.

enter image description here

Así que la conclusión es que necesito hacer una gran red de ríos, incluyendo los afluentes, y realizar la referenciación de líneas. Pero no sé cómo hacerlo. Cualquier ayuda es muy apreciada. Por favor, explique lo más claramente posible.

Por favor, comente si necesita más información.

Gracias de antemano.

BS

2voto

Rafael Almeida Puntos 141

Estoy de acuerdo con BWill. Su principal problema es definir el origen de cada polilínea. ¿Qué constituye un "río"? Ι haría la suposición de que un afluente es una "ruta" independiente a partir de 0-> longitud del afluente. Luego 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 se tiene eso se está "casi" listo. Entonces: Convierta todas sus polilíneas fusionadas en polilíneas medidas (PolylineM) -incluyendo los afluentes. Entonces tendrá su "red de rutas". A partir de ahí es cuestión 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 XYs? Además -otra suposición- no caen exactamente sobre el río, ¿verdad? En cualquier caso, necesitarás una forma de encontrar la distancia de la estación desde el comienzo de cada río o tribu. 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 uno).

Para encontrar esta ubicación se pueden utilizar las herramientas de ArcMap, pero hace tiempo que no las utilizo, así que no me acuerdo. Por otro lado, si importas tus shapefiles (¿?) a PostGIS, puedes usar la herramienta ST_Line_Locate_Point . Esta función:

Devuelve un flotador 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 longitud total de la línea 2d.

Lo que significa que luego puedes encontrar la ubicación a lo largo del río multiplicando lo que encuentres con la longitud del río (fusionado). Una nota final - Si usted utiliza PostGIS no tiene que pasar por el paso de la creación de la PolylineM - sólo ArcGIS requiere esto para la referencia lineal.

Espero que esto tenga sentido.

1voto

Eran Puntos 2193

De mi pregunta de la misma naturaleza,

Cómo crear un punto a lo largo de una línea dada la distancia

los siguientes enlaces útiles aparecieron.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs

No me quedo sin completar mi tarea por falta de esfuerzo. Creo que el tedio que experimentará es nominar el origen de cada polilínea.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X