25 votos

¿Cómo encontrar la distancia de un punto a lo largo de una polilínea con ArcGIS Desktop?

Necesitamos encontrar la distancia de una serie de puntos a lo largo de una polilínea dada.

Disponemos de un conjunto de datos polilineales que representa los ríos de una cuenca, desglosados en tramos fluviales (FID 1 a 35, por ejemplo).

También disponemos de un conjunto de datos puntuales de licencias de extracción en esta cuenca, algunas de las cuales están situadas a lo largo de los ríos; en la tabla de atributos podemos saber cuáles son, ya que se definen como licencias de aguas subterráneas o superficiales.

Los dos no están relacionados, es decir, uno no se ha derivado del otro. Por lo tanto, no todas las licencias de aguas superficiales se sitúan exactamente sobre las polilíneas fluviales, aunque en "realidad" se encuentren en esos ríos.

Necesitamos poder ver qué puntos están "aguas arriba/aguas abajo" unos de otros, por lo que queríamos tener una lista de en qué tramo del río se encuentra el punto, seguida de la distancia aguas abajo desde el comienzo de este tramo. Así podremos comparar las distancias aguas abajo de dos puntos para ver cuál está aguas arriba y cuál aguas abajo: ¡el resultado deseado!

Para resolver el problema de encontrar puntos en los ríos o muy cerca de ellos, se nos dijo que utilizáramos un (pequeño) búfer alrededor de cada tramo fluvial y que consultáramos el búfer para encontrar los puntos que había en él.

Esto está bien, pero entonces nos quedamos con un área (buffer), no una línea, por lo que no podemos medir una distancia a lo largo / dentro de este.

¿Podemos utilizar un buffer como el descrito para encontrar los puntos en/cerca del tramo del río en cuestión y luego, de alguna manera (?!) consultar estos puntos por la distancia a lo largo del tramo del río (segmento polilineal)?

23voto

cjstehno Puntos 131

Se trata de una tarea perfecta para el referencia lineal en ArcGIS. Consulte la ayuda de Localización de elementos a lo largo de las rutas y sondear a partir de ahí. Las herramientas incluyen la posibilidad de convertir una capa de puntos cercanos a una ruta (los tramos fluviales) en descriptores de "evento puntual", que nombran la ruta (el tramo) y la distancia desde el inicio de la ruta. Eso es exactamente lo que quieres. Además, estas herramientas permiten una "tolerancia" configurable por el usuario: los puntos no tienen por qué coincidir exactamente con las rutas.

El flujo de trabajo es:

  1. Haz que los tramos del río sean "mensurables". Esto permite encontrar distancias a lo largo de cada tramo.

  2. Representar los puntos como una capa de puntos.

  3. Utilice la herramienta para crear una "tabla de eventos" para los puntos relativos a las rutas.

  4. Compruebe su trabajo, porque es posible que tenga que invertir las direcciones de algunos de los tramos del río, dependiendo de la coherencia con la que se digitalizaron.

3voto

saint_groceon Puntos 2696

Nunca lo he probado pero podrías considerar tratar esto como un geocodificación inversa problema. Para ello, cree un localizador de direcciones para sus ríos, tratando la medida como dirección de origen y destino.

1voto

Erik Öjebo Puntos 6937

1voto

ParoX Puntos 773

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/QueryPointAndDistance_Method/002m00000116000000/

El atributo DistanceAlongCurve te dará lo que buscas. Pero sólo para uno de los ríos.

1voto

Sumit goswami Puntos 16

http://resources.arcgis.com/en/help/main/10.1/index.html#//004800000006000000

Esta herramienta toma en la red ( Usted tiene que tener Network Analyst) y puntos. Después de aplicar la herramienta se obtiene el valor t (valor entre 0 y 1) como PosAlong. Los valores se almacenan en la tabla de puntos de entrada. Dado que 0 es el punto inicial de la polilínea y 1 es el punto final, debe multiplicarlo por la longitud de la polilínea. También tiene SourceOID que es el id de la polilínea en la misma tabla.

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