6 votos

¿Cómo se obtiene acceso a un elemento de capa de Network Analyst en ArcPy?

Tengo un script en Python que estoy trabajando. He creado una Instalación más Cercana de la capa (en la memoria). Puedo agregar instalaciones. Puedo añadir incidentes. Realizo Resolver. Estos completos de todos. El único problema es que no parece ser una manera de acceder a cualquiera de los resultados.

He conseguido describir un objeto fuera de la capa de Análisis de Red. Tengo a los niños de la capa de análisis de red. Puedo obtener el nombre de cada niño, pero ese es el punto. Cada niño que se supone para ser una función de la capa, pero no de la capa de las operaciones de trabajo en cualquiera de ellas: "Error en la ejecución de la herramienta". Puedo obtener el conjunto de datos de objeto para cada capa. Cada objeto de datos se llama a sí misma una Clase de entidad. No puedo obtener ninguna Clase de entidad de operaciones para trabajar en estas "Clases de entidad". Me sale el mismo estúpido error.

La documentación sobre la implementación de la Red de trabajo de Análisis en Python es muy incompleta.

¿Cómo se puede acceder a los resultados de un resolver? Solo tengo algo que puede alimentar a la arcpy.GetCount herramienta, nada más.

9voto

dave Puntos 34

La respuesta a mi pregunta es que cuando se ejecuta la resolución, se crea una capa en memoria llamada "Rutas". Para obtener el recuento del número de funciones, simplemente haga esto:

 int(arcpy.GetCount_management("Routes").getOutput(0))
 

2voto

jeds Puntos 106

No estoy 100% seguro de haber entendido tu pregunta...es todo lo que necesita el número de resolver los expedientes de las diversas capas secundarias, o usted está buscando para extraer datos como el tiempo de viaje, etc.?

En cualquier caso, el siguiente fragmento de código podría ser de ayuda. Utiliza los cursores para el paso a través de una de las Rutas de la subcapa de un Analista de Red de la Ruta de la capa y extraer los datos de campo y un recuento de todos resuelto rutas. La variable sCur es el cursor que busca a través de las rutas de capa, uRow es el cursor que las actualizaciones de otra clase de entidad de la tabla de atributos con los valores recogidos.

 # Get field value for travel time from Routes sublayer 

            #initialize a variable to hold the count
            recordCount = 0
            #create a search cursor
            sCur = arcpy.SearchCursor("Route\\Routes")

            for row in sCur:
                    TripTime = row.getValue("Total_TravelTime")
                    EndTime = row.getValue("EndTime")
                    #print EndTime

            # Set field value of travel time in origin feature table.
            uRow.setValue("Trip_A_Time850", TripTime)
            uRow.setValue("Trip_A_EndTime850", EndTime)
            # Update the row.
            uCur.updateRow(uRow)
            # move cursor to next record.
            uRow = uCur.next()
            recordCount += 1
            #(used for diagnostics): print "recordCount: ", recordCount
            x += 1

Un par de lectura de los enlaces (por favor, no me di cuenta si usted ha sido a través de estos, un millón de veces ya):

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Closest_facility_analysis/00470000004n000000/ (la lista de todos los de la instalación más cercana de la capa de nombres de campo).

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002z0000001q000000 (descripción de los cursores).

Espero que esto ayude,

Michael

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