Más

¿Cómo editar la polilínea "Auto Intersección" en ArcGIS for Desktop?

¿Cómo editar la polilínea


Tratando de averiguar cómo editar una polilínea autocruzada (rampa interestatal) de modo que termine con un nodo desde, un bucle de autointersección y luego un nodo final.

Estoy usando ArcGIS versión 10.3 y los datos se almacenan en una clase de entidad de una geodatabase de archivos

Ricardo. Comentarios geniales y perspicaces, pero creo que encontré una solución que ambos podríamos encontrar útil. Descubrí que si, como dijiste, creo dos características, luego vuelvo a trazar las características (rampa) y luego elimino las características subyacentes, me quedaba una línea que se interseca automáticamente y que parece funcionar bien en el analista de redes (Ver Figura). El único problema que tengo ahora es que cuando rastreo la nueva característica, pierdo toda la atribución, así que sospecho que algún tipo de unión para repoblar los atributos.

Para copiar atributos de una característica a otra pluma utilicé el siguiente procedimiento ...

1.Haga clic en el menú Editor y haga clic en Iniciar edición.

2.Haga clic en la herramienta Editar herramienta Editar en la barra de herramientas del Editor.

3.Seleccione las entidades cuyos atributos desea editar.

4.Haga clic en el botón Atributos botón Atributos en la barra de herramientas del Editor.

En el cuadro de diálogo Atributos, haga clic con el botón derecho en la entidad desde la que desea copiar y haga clic en Copiar.

6. Haga clic con el botón derecho en la función en la que desea pegar y haga clic en Pegar.


Si crea una entidad de polilínea única a partir de las líneas que se muestran, siempre se creará una entidad de varias partes. Esta regla relativa a las entidades que se intersecan automáticamente está integrada en las especificaciones de Esri para una polilínea y no se puede anular. Los polígonos están hechos de polilíneas cerradas y los polígonos deben forzar una entidad de polilínea de varias partes en las autointersecciones para que se dibuje correctamente. Permitir auto-intersecciones ininterrumpidas de una sola línea parcial daría como resultado que ambos lados de la línea formen el interior y el exterior del polígono simultáneamente (algo parecido a una tira de mobius), y eso no está permitido. Esri decidió hacer cumplir esa regla para todas las polilíneas.

Simplemente he aceptado que tengo que crear dos características siempre para las líneas de rampa de bucle para asegurarme de que estén orientadas correctamente. Siempre divido esas líneas en algún lugar dentro del bucle. Utilizo un atributo específico para ese par de líneas para permitir que mi código de Python o las herramientas de geoprocesamiento comprendan que analíticamente quiero que el par de líneas se trate como una sola línea con el fin de encontrar los puntos finales que comienzan y terminan la transición de una carretera a la otro. Para un atributo de dirección, asigno ambos segmentos con la dirección final de la línea final (SW en su ejemplo) aunque una de las líneas puede tener su final apuntando en una dirección diferente (aunque en su ejemplo puede crear el salto de línea justo antes de la intersección propia de modo que ambas líneas tengan sus extremos apuntando SW).

Además, no hay forma de usar la herramienta Crear ruta con tales bucles para formar una sola ruta sin crear rutas completamente inutilizables. El algoritmo Create Routes convierte todas las líneas que se intersecan automáticamente en líneas multiparte para cada segmento de par de vértices y codifica la secuencia de la parte del segmento. Como no veo ningún valor en mantener mis rutas mediante la edición manual y confío en un proceso automatizado para regenerar completamente mis rutas cada semana, creo dos rutas separadas con un nombre de ruta similar a partir de las dos líneas que he roto en el bucle. Por supuesto, si no confía en el mantenimiento automatizado, puede editar manualmente las líneas para obtener medidas en su mayoría utilizables, pero realizar estas ediciones lleva mucho tiempo y seguirán informando medidas complejas en el punto de intersección.

Jeff: comportamiento interesante con la herramienta de seguimiento. No sabía que se comportaba de manera diferente a las herramientas de dibujo normales. En mi caso, actualmente no uso Network Analyst y principalmente uso LR. Probé una forma de bucle de rampa de línea de una sola parte creada usando la herramienta de trazado con la herramienta Crear ruta para asignar medidas. La salida Crear ruta también era una línea de una sola parte y las medidas se asignaron correctamente a través de la autointersección de la misma manera que lo haría para cualquier línea normal sin autointersecciones. Ese paso adicional durante la edición para crear características no es demasiado difícil ni requiere mucho tiempo. Lo más probable es que recree mis rampas usando esta técnica.

En cuanto a los atributos de las líneas originales, usaría la herramienta de transferencia de atributos en la barra de herramientas de ajuste espacial. Ese método agregará solo unos pocos clics más durante la edición de la función para transferir los atributos. Es más fácil que administrar una clase de entidad separada creada mediante un atributo de unión o una unión espacial.


¡Guau! Nunca pensé que fuera tan complicado. Para pagar mi arrogancia, escribí un guión que maneja esto. El script asume que la primera capa en TOC es la capa de polilínea de destino. La secuencia de comandos de parámetros de herramienta obtiene la selección y completa uno y el único parámetro de secuencia de comandos (tipo largo, MultiValue = Sí).

Script de validación:

def initializeParameters (self): "" "Refina las propiedades de los parámetros de una herramienta. Este método se llama cuando se abre la herramienta." "" mxd = arcpy.mapping.MapDocument ("CURRENT") lyr = arcpy.mapping.ListLayers ( mxd) [0] d = arcpy.Describe (lyr) aBmNodes = d.FIDset self.params [0] .value = aBmNodes self.params [0] .enabled = 1 return

El usuario debe mezclar los FID de las líneas seleccionadas en el orden correcto, p. Ej. para 3 líneas seleccionadas que se muestran a continuación:

el orden correcto es:

Script que se adjuntará a la herramienta:

importar arcpy, traceback, os, sys try: def showPyMessage (): arcpy.AddMessage (str (time.ctime ()) + "-" + mensaje) aBmLinks = arcpy.GetParameterAsText (0) aBmLinks = aBmLinks.split ('; ') nSet = len (aBmLinks) si nSet <2: arcpy.AddWarning ("Por favor, seleccione al menos 2 líneas") raise SystemExit (' Falta entrada ') mxd = arcpy.mapping.MapDocument ("CURRENT") lyr = arcpy. mapping.ListLayers (mxd) [0] d = arcpy.Describe (lyr); fidName = d.OIDFieldName first = arcpy.AddFieldDelimiters (lyr.workspacePath, fidName) arr = arcpy.Array () para fid en aBmLinks: quer = " % s =% s "% (primero, fid) con arcpy.da.SearchCursor (lyr, (" OID @ "," Shape @ "), quer, explode_to_points = True) como cursor: para la fila del cursor: arr.add (fila [1] .firstPoint) # pLine = arcpy.Polyline (arr) # con arcpy.da.UpdateCursor (lyr, "Shape @", quer) como curT: # para fila en curT: curT.updateRow ((pLine, )) excepto: mensaje = " n *** PYTHON ERRORS ***"; showPyMessage () message = "Información de seguimiento de Python:" + traceback.format_tb (sys.exc_info () [2]) [0]; showPyMessage () message = "Información de error de Python:" + str (sys.exc_type) + ":" + str (sys.exc_value) + " n"; showPyMessage ()

Descomente las últimas 3 líneas y reemplazará la geometría de la última característica en la lista ordenada (FID = 0 en el ejemplo que se muestra) por una polilínea de una sola parte.


Ver el vídeo: como extraer vértices de un polígono y sus coordenadas