He estado trabajando en un proyecto de trazado de líneas en una red geométrica. He tenido que invertir la dirección de la línea (flujo) en muchas líneas para que funcionen las trazas. Ahora estoy en un punto en el que tengo que actualizar el conjunto de datos maestros y, por lo tanto, hacer esas mismas inversiones de línea en la base de datos.
Mi pensamiento es que ejecutaría un pequeño script arcpy para verificar el / a XY de cada línea contra el / de las líneas coincidentes en el conjunto de datos maestros, cualquiera que tenga el XY que coincida con el maestro de XY (y viceversa -versa) se registraría para voltear.
Aunque creo que este script no debería ser demasiado difícil de escribir, ahora me pregunto si ya hay una herramienta disponible que identifique las líneas invertidas para mí. Todavía no he podido encontrar uno en ArcToolbox, pero puede que esté buscando algo incorrecto.
Tenga en cuenta que hay otros cambios de geometría en mi conjunto de datos que no quiero encontrar, solo líneas coincidentes idénticas (coincidentes en una ID) donde la única diferencia es la dirección. Líneas donde XY es diferente que quiero ignorar.
Por ejemplo, las siguientes líneas muestran la dirección de la línea.
Las líneas en el área azul de las que quiero tomar nota, la única diferencia es la dirección de la línea. La línea en el área roja no quiero grabar ya que la línea se ha movido realmente.
¿Existe una herramienta en ArcGIS Desktop (10.5) que pueda identificar líneas que se han volteado, pero ignorar otros cambios de geometría? ¿Si es así, Cuál?
Acabo de encontrar la herramienta "Detectar cambios en las funciones", que estoy probando en este momento (es muy, muy lenta). No estoy seguro de si esto va a encontrar solo líneas invertidas, o todo. Por supuesto, puedo haber configurado los parámetros incorrectamente.
La herramienta Detectar cambios de características finalizó el procesamiento, tardó cerca de 20 minutos en ejecutarse, pero solo encontró 9 características en las que la dirección de la línea había cambiado. Espero al menos 10000 funciones invertidas.
fuente
Respuestas:
Yo usaría un diccionario para hacer eso. Me sorprende lo rápido que son.
fuente