5 votos

¿Cómo se eliminan las carreteras aisladas de una red mayor?

Estoy tratando de realizar un cálculo de la Matriz de Costes OD en un conjunto de puntos utilizando una red de carreteras a partir de datos de OpenStreetMap. La red contiene muchas carreteras que no conectan con el resto de la red. En el caso de que un punto se conecte a un lugar de la red de este tipo, no puede alcanzar ningún otro punto de muestra.

¿Cómo puedo eliminar estos tramos de carretera? O si eso no es posible, ¿cómo podría identificar sistemáticamente esas zonas y conectarlas con el resto de la red?

6voto

Steve Puntos 11

Mi solución a esto fue una especie de kludge, pero entonces yo estaba haciendo un pequeño proyecto de clase trabajando con un subconjunto de las carreteras de un condado por lo que la red no era tan grande y no necesitaba hacerlo como una tarea común. Simplemente ejecuté un análisis del área de servicio con el tiempo establecido lo suficientemente grande como para que en teoría todo debería ser alcanzable. Eso resaltó todo lo que estaba conectado, mostrando así lo que no lo estaba. A algunos les añadí nuevas conexiones porque necesitaba preservar esas áreas, a otros simplemente seleccioné y eliminé las carreteras aisladas del conjunto de datos.

10.1 la ayuda hace referencia a un Encontrar desconectados de la barra de herramientas de Utility Network Analyst si tiene acceso a ella.

La 10.2.1 también tiene una nueva herramienta que podría hacer lo que quieres, si tienes acceso a esa versión o a una superior: Encontrar rasgos desconectados en una red geométrica (gestión de datos)

3voto

Taurayi Puntos 118

Yo también buscaba la posibilidad de borrar líneas aisladas de los datos de OSM. Por desgracia, tengo una gran cantidad de datos. Y teniendo que tratar con conjuntos de datos de redes de todos modos, no quería examinar las redes geométricas. Pero la sugerencia de Michaels funcionó, ¡muchas gracias! Tuve que cambiar dos cosas: En primer lugar, tuve que desdoblar las líneas en el principio, de modo que yo era capaz de eliminar también las partes aisladas que consiste en más de 1 línea de características. En segundo lugar, el último paso consiste en una consulta a las líneas con un joinCount de 2 (en lugar de un iCount de 1). Mis datos son datos OSM preprocesados, almacenados en una geodatabase de archivos. Aquí están los pasos detallados:

  1. Haga una copia del conjunto de datos de carreteras -> roads_copy
  2. Utilice la herramienta "unsplit line" en roads_copy -> roads_unsplit
  3. Utilice la herramienta "feature vertices to points" en roads_unsplit (tipo de punto: ambos extremos) -> roads_vert
  4. Usar la herramienta "recoger eventos con renderizado" en roads_vert (bastante tiempo) -> roads_collect (los extremos no conectados obtienen ICOUNT = 1)
  5. Consulta roads_collect: "Select from roads_collect where ICOUNT = 1"
  6. Exportar el resultado de la consulta -> roads_icount1
  7. Utilice la herramienta "spatial join" para unir roads_icount1 (= características de unión) a roads_unsplit (= características de destino); elija "one_to_one", "keep all target features" e "intersect" -> roads_join (las carreteras aisladas obtienen Join_Count = 2)
  8. Consulta roads_join: "Select from roads_join where Join_Count = 2"
  9. Utilizar "seleccionar capa por ubicación" en las carreteras originales (¡no divididas!); seleccionar características = roads_join, relación = "share_a_line_segment_with", tipo de selección = "new_selection"
  10. Eliminar las filas seleccionadas con la herramienta "eliminar filas"

Ahí lo tienes. Tal vez ponerlo en un modelo. Parece un poco complicado, pero conduce al resultado deseado para mí.

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