6 votos

Python script/Modelo para rellenar los nombres de las calles transversales en las intersecciones

¿Alguien ha creado una versión/modelo en Python de este VBA script de ArcScripts que rellena el to y from ¿nombres de calles en las intersecciones? El flujo de trabajo lógico se describe muy bien en este hilo de ESRI pero requiere ArcInfo, y me gustaría saber si hay otra forma de hacerlo.

El resultado final sería, por ejemplo, si hay líneas que se cruzan en la calle Primera y la calle Tercera, y en la calle Primera y la calle Mayor, el registro de la calle Primera tendría to = Third Street y from = Main Street (el orden no importa).

Utilizando Select By Location a seleccione las carreteras conectadas parece que podría funcionar, e incluso podría reemplazar la necesidad de crear puntos en el flujo de trabajo antes mencionado (haciendo un bucle sobre cada calle, escribiendo en campos separados las calles que toca en base a la salida del select by location, y luego extrayendo los dos nombres de las calles que son diferentes). ¿Alguien tiene alguna otra idea?

4voto

Abbasi Puntos 31

Implementé el flujo de trabajo anterior creando un modelo principal y un submodelo. Main model Pasos:

  1. Añadir campos TO_ROAD y FROM_ROAD
  2. Spatial Join con la capa de calles como objetivo y unir características. La operación de unión es one_to_many y la opción de coincidencia es boundary_touches para garantizar que todas las calles que tocan una misma calle estén unidas a ella.

La salida de la unión espacial y la clase de características de las calles se utilizan como entradas para el submodelo. Submodel

  1. Iterate Feature Selection agrupa las características en función de cada street_id .
  2. Se crea una lista (multivalor) de todos los nombres de calles unidos a las características seleccionadas.
  3. El nombre de la calle de la característica actualmente seleccionada se elimina de la lista, y los nombres restantes se escriben en los dos campos añadidos en el modelo principal. Si sólo se encuentra un nombre de calle que se toca, se escribe "Cul de sac" en TO_ROAD .

Esta solución no está optimizada - necesitaba algo rápido para resolver mi problema. Todo el procesamiento para las calles táctiles en el submodelo se puede poner en un solo script, pero prefiero hacer el proceso visualmente en ModelBuilder para poder ver mi flujo de trabajo claramente antes de cambiarlo a scripts de Python.

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