Tipos de evaluadores utilizados por una red

Cada atributo definido en la red debe tener valores para cada origen que participe en la red. Los evaluadores asignan valores al atributo de cada origen. En las aplicaciones precursoras de ArcGIS (ARC/INFO y ArcView GIS), los valores de los atributos se asignaban a partir de un campo del shapefile o la cobertura. En ArcGIS, el evaluador de campo asigna valores a un atributo de red a partir de un campo de un origen de red. Además, ArcGIS proporciona otros tipos de evaluadores que se puede utilizar, por ejemplo, constante, expresión de campo, función y evaluadores de secuencia de comandos.

A continuación se describen los evaluadores.

Evaluador

Descripción

Evaluador de campo

La manera más común de asignar valores a un atributo de red consiste en identificar un campo único que se utilizará para evaluar el atributo de red durante la generación del dataset de red. Por ejemplo, un evaluador de campo se puede utilizar en los casos en que el valor indique una medición, como el largo de cada segmento de la carretera en metros.

Evaluador de expresiones de campo

El evaluador de campo se puede modificar para tomar como valor una expresión de campo en lugar de un único campo. En este caso, se generará una expresión en el cuadro de diálogo Evaluador de campo utilizando VBScript o Python. Por ejemplo, si el atributo de red se expresa en metros pero los datos de origen están en pies, puede crear una expresión que convierta los pies en metros en el momento de generar el dataset de red.

SugerenciaSugerencia:

Los evaluadores de expresión de campo escritos en VBScript se ejecutan mucho más rápido que los escritos en Python. Debe intentar utilizar VBScript por este motivo; sin embargo, tenga en cuenta los siguientes puntos al elegir un lenguaje de secuencia de comandos:

  • La mayoría de los productos de ArcGIS puede interpretar VBScript o Python.
  • ArcGIS for Server (Linux) sólo puede interpretar Python.
  • La secuencia de comandos en un evaluador de expresión de campo se interpreta cuando se crea el dataset de red.
Las consecuencias lógicas de estos puntos son las siguientes:
  • Si planea construir el dataset de red mediante cualquier otro producto ArcGIS diferente de ArcGIS for Server (Linux), entonces puede escribir la secuencia de comandos en VBScript.
  • Si planea construir el dataset de red en ArcGIS for Server (Linux), entonces debe escribirla en Python.
  • Si planea construir el dataset de red mediante cualquier otro producto ArcGIS diferente de ArcGIS for Server (Linux) y luego usar ArcGIS for Server (Linux) para resolver los análisis de red que hacen referencia al dataset de red construido, puede escribir la secuencia de comandos en VBScript.

Evaluador de constantes

Los atributos pueden tener asignado un valor constante. El valor puede ser numérico (0, 1, 2) para los atributos de coste, descriptor y jerarquía o bien un tipo de dato booleano de Uso restringido o No restringido para un atributo de restricción.

Evaluador de funciones

El evaluador de funciones calcula los valores de los atributos aplicando una función multiplicativa o lógica sobre otro valor de atributo o de parámetro. Para los tipos de atributo numéricos, los valores se derivan de una expresión que multiplica el valor de otro atributo por algún valor, por ejemplo, DriveTime * 1.25. Para los tipos de atributo booleanos, los valores se derivan de una expresión que compara otro valor de atributo con el valor de un parámetro, por ejemplo, MaxHeight < VehicleHeight.

Evaluador de retraso de giro global

El evaluador de retraso de giro global asigna un valor de coste predeterminado a la transición entre dos elementos de bordes. El coste está basado en el ángulo de desviación entre los dos ejes y la clase de camino (primario, secundario o local) de los ejes que se atraviesan. Especifique la clase de camino utilizando el cuadro de diálogo Rangos de jerarquía junto con un atributo de jerarquía. Por ejemplo, puede utilizar el evaluador de retraso de giro global para hacer que todos los giros a la izquierda, determinados por ángulos de desviación, de caminos locales a caminos secundarios tarden más tiempo que los giros a la izquierda desde caminos locales a otros caminos locales. También puede especificar costes agregados para otras transiciones, tales como agregar retrasos de 10 segundos al continuar de frente en la intersección de dos caminos secundarios.

Más información sobre cómo establecer giros globales

Evaluador de secuencia de comandos

Es posible asignar atributos a partir del resultado de la ejecución de una secuencia de comandos Python o VBScript. De este modo podrá modelar atributos complejos. Al contrario que otros evaluadores, el evaluador de secuencia de comando no asigna valores durante la generación de una red. En su lugar, asigna valores cuando un determinado análisis de red requiere el uso de ese atributo, que puede ocurrir durante el tiempo de resolución. Si los valores de un atributo cambian constantemente, el uso de un evaluador de secuencia de comandos puede asegurar que los atributos sean actualizados para cada análisis de red.

SugerenciaSugerencia:

Dado que el evaluador de secuencia de comando calcula sus valores durante el análisis, tiende a afectar negativamente al rendimiento del análisis. Intente utilizar otro evaluador, si es posible.

Los evaluadores de secuencia de comandos escritos en VBScript se ejecutan mucho más rápido que los escritos en Python. Debe intentar utilizar VBScript por este motivo; sin embargo, tenga en cuenta los siguientes puntos al elegir un lenguaje de secuencia de comandos:

  • La mayoría de los productos de ArcGIS puede interpretar VBScript o Python.
  • ArcGIS for Server (Linux) sólo puede interpretar Python.
  • La secuencia de comandos en evaluador de secuencia de comandos se interpreta cuando una capa de análisis de red se resuelve.
Las consecuencias lógicas de estos puntos son las siguientes:
  • Si planea resolver análisis de red mediante cualquier otro producto ArcGIS diferente de ArcGIS for Server (Linux), entonces puede escribir la secuencia de comandos en VBScript.
  • Si planea resolver análisis en ArcGIS for Server (Linux), entonces debe escribirla en Python.

Evaluador de tráfico de borde

Los evaluadores de ejes de tráfico están diseñados para ser utilizados con datos de tráfico. Pueden proporcionar tiempos de viaje para una hora del día y día de la semana determinados usando datos históricos o en vivo. Disponen de atributos de coste de reserva que proporcionan tiempos de viaje para días laborables y de fin de semana cuando no hayan disponibles tiempos de viaje específicos Los evaluadores de eje de tráfico, también disponen de atributos de coste sin distinción de días a los que Network Analyst hace referencia al secuenciar paradas en un análisis de ruta o visitas en un problema de generación de ruta del vehículo.

Más información acerca de los datos de tráfico

Cada origen de cruce y cada origen de giro pueden tener un evaluador. Cada origen de eje puede tener dos, uno para cada dirección digitalizada del eje.

Es posible asignar un evaluador predeterminado a ejes, cruces y giros. Si no se especifica un evaluador explícito para un determinado origen, el evaluador predeterminado es el que asigna los valores para ese origen.

A continuación se muestra el flujo de trabajo general para asignar un evaluador:

  1. Seleccione el origen al que debe asignarse el evaluador.
  2. Elija un tipo de evaluador, como Campo, Constante, Función o Secuencia de comandos.
  3. Especifique el valor que se va a asignar al atributo de red.

    Si los valores se derivan de un campo, este se seleccionará de un menú desplegable. Si los valores van a calcularse con base en una expresión de campo, establezca el tipo de evaluador como Campo y presione F12 en su teclado para abrir el cuadro de diálogo Evaluadores de campo. Si lo prefiere, puede hacer clic con el botón derecho en el origen en el cuadro de diálogo Evaluadores y elegir Propiedades en el menú Valor para abrir el cuadro de diálogo Evaluadores de campo.

Ejemplos de evaluadores

Asignar valores a los atributos de coste

El atributo de red DriveTime en el gráfico a continuación usa un evaluador de campo para la clase de entidad de origen de Calles. Este se indica en la columna Tipo. La columna Valor muestra que el campo FT_Minutes suministra los valores de atributo de red para la dirección origen a destino del origen de Calles. De igual forma, los valores para la dirección destino a origen del origen de las calles se dibuja desde el campo TF_Minutes.

En este ejemplo, los demás orígenes de eje de esta red son ejes de tráfico y no tienen asignado un tiempo de conducción. Por lo tanto, pueden asignar un valor constante de -1, o mejor, un valor constante de cero y atributos de restricción determinados que prohíban a los automóviles y otros vehículos de calle.

InmersiónInmersión:

Se prefieren restricciones, en lugar de costes negativos, porque los costes negativos se restan cuando se acumulan atributos de coste.

Asignar valores a los atributos de coste

Los atributos de coste se pueden derivar también de otro atributo de coste utilizando el evaluador de funciones. Por ejemplo, un atributo que modele los tiempos de viaje de los vehículos lentos puede utilizar el evaluador de funciones para hacer referencia a un atributo que modele los tiempos de viaje normales y multiplicarlo por un factor de retraso.

Evaluador de funciones que modela un tiempo de viaje más largo

Asignar valores a restricciones

Los atributos de restricción tienen un tipo de datos booleano. Debido a que los elementos de origen pueden usar o ignorar la restricción asociada, se les pueden asignar un valor constante para Usar restricción o Ignorar restricción.

Asignar valores a restricciones

Los atributos de restricción también se pueden derivar utilizando el evaluador de funciones para comparar otro atributo con un valor de parámetro. Por ejemplo, un atributo que modele las restricciones de altura del vehículo puede utilizar el evaluador de funciones para comparar el límite de altura de una carretera con la altura real del vehículo almacenada en un parámetro del atributo. Cuando la expresión se evalúa y resulta verdadera, la restricción se usa en la carretera, cuando la expresión se evalúa y resulta falsa, la restricción se ignora. La excepción a esta regla es que cada vez que los operandos (MaxHeight o Altura del vehículo) tienen un valor de cero, la expresión siempre se evalúa como falsa.

Evaluador de funciones que modela una restricción de altura

Más información sobre cómo utilizar parámetros con atributos de red

Los atributos de restricción también pueden asignarse a partir de un campo en la clase de entidad de origen. Por ejemplo, puede utilizar un evaluador de expresión de campo para generar resultados booleanos, si la expresión es verdadera, el elemento usa la restricción, si no, el elemento ignora la restricción.

Cuando se crea un dataset de red, la Extensión ArcGIS Network Analyst busca en todos los orígenes los campos utilizados normalmente, como Unidireccional. Si encuentra un campo Unidireccional en cualquier origen, crea un atributo de red Unidireccional y asigna valores al origen pertinente basándose en expresiones de campo.

A continuación se muestran dos capturas de pantalla de la expresión VBScript para un atributo de restricción Unidireccional. Hay un evaluador y una expresión para cada dirección digitalizada de la calle.

Evaluador de expresión de campo para la dirección origen-destino (VBScript)
Evaluador de expresión de campo para la dirección origen-destino (VBScript)

Estas expresiones determinan la dirección o direcciones de viaje permitidas basándose en el valor de texto del campo Unidireccional:

  • FT o F = Solo se permite el desplazamiento en la dirección digitalizada de la entidad de línea (la dirección origen a destino).
  • TF o T = Solo se permite el desplazamiento en la dirección contraria a la dirección digitalizada de la entidad de línea (la dirección destino a origen).
  • N = No se permite el desplazamiento en ninguna de las dos direcciones.
  • Cualquier otro valor = Se permite el desplazamiento en ambas direcciones.

NotaNota:

Aunque se recomienda VBScript para los evaluadores de red, necesitará escribir secuencias de comandos en Python si el evaluador se ejecutará en ArcGIS for Server (Linux). Lo que escribe en las secciones Código de secuencia de comandos Pre-Logic y Valor = del cuadro de diálogo del evaluador varía entre VBScript y Python.

En VBScript, escriba una expresión en Código de secuencia de comandos Pre-Logic que establezca una variable y luego establezca Valor = para esa variable.

Para escribir un evaluador en Python, debe escribir una función en el cuadro de texto Código de secuencia de comandos Pre-Logic, empezando con la palabra clave def, retornando un valor en algún punto con la palabra clave return y llamando luego la función en el cuadro de texto Valor =. A continuación se muestran dos capturas de pantalla que ilustran cómo escribir un evaluador de expresión de campo en Python para establecer una restricción Unidireccional. Compárelo con el ejemplo de VBScript anterior para entender mejor las diferencias entre escribir expresiones de evaluador en VBScript y Python.

Evaluador de expresión de campo para dirección destino-origen (Python)
Evaluador de expresión de campo para dirección destino-origen (Python)
Además, tenga en cuenta que la sentencia if en el ejemplo Python anterior utiliza una expresión lógica compuesta, en lugar de un expresión lógica simple, para capturar valores nulos y evitar errores. Si valor se quita de if value y de value.upper() en ('N', 'FT', 'F'):, y se pasa un valor nulo desde el campo ONEWAY, se producirá un error porque la función value.upper() no puede manejar valores nulos. En su lugar, valor se evalúa como falso y Python inmediatamente sale de la sentencia if antes de hacer la evaluación de value.upper().

Parámetro Uso de restricción

Un atributo de restricción siempre tiene un parámetro asociado denominado Uso de restricción, que determina si los elementos que usan la restricción son prohibidos, solamente se evitan o incluso se prefieren. En la mayoría de casos, establecerá el Uso de restricción para prohibir, pero hay varios casos en los que puede elegir lo contrario.

Más información sobre Uso de restricciones

Asignar jerarquías

Asignando las jerarquías del dataset de red, puede clasificar los ejes en diferentes niveles jerárquicos y, así, reducir los tiempos de resolución. Sin embargo, tenga presente que los resultados de las soluciones jerárquicas pueden ser peores que las soluciones no jerárquicas. Es recomendable leer también Sobre el análisis de redes con jerarquías para entender mejor qué son las jerarquías y cómo podrían utilizarse.

Los niveles de jerarquía se definen mediante enteros consecutivos, empezando en uno. El entero más bajo, es decir, uno, representa el nivel superior de la jerarquía. Los valores enteros más altos representan los niveles más bajos de la jerarquía. Por ejemplo, si está descomponiendo una red en tres niveles de jerarquía, asignaría un valor de 1 a los caminos primarios, un valor de 2 a los caminos secundarios y valor de 3 a los caminos terciarios. Los caminos primarios podrían incluir las autopistas, mientras que los caminos terciarios podrían incluir las calles residenciales.

La jerarquía de un dataset de red suele asignarse mediante un campo o un evaluador de expresión de campo. Si la clase de entidad de Calles tiene un atributo de clase de carretera (jerarquía) con valores 1, 2 y 3 (que representen autopistas, carreteras nacionales y carreteras secundarias, respectivamente) el atributo de jerarquía puede establecerse simplemente mediante evaluadores de campos.

Asignar jerarquías

Normalmente, a un atributo de jerarquía se asignan tres, cuatro o cinco niveles de jerarquía, pero puede asignar tantos como desee, siempre que cada nivel se represente mediante un entero consecutivo empezando por uno. Debe evitar asignar demasiados niveles de jerarquía; no obstante, dado que esto podría dejar algunos ejes desconectados del resto de la jerarquía, lo que provocaría fallos al resolver las capas de análisis de red.

Si la clase de entidad de origen tiene un atributo que clasifica los caminos en más grupos de los deseados como niveles en la jerarquía, puede clasificar los grupos mediante un evaluador de expresión de campo que permita obtener el número de niveles de jerarquía deseados. Por ejemplo, suponga que una clase de entidad de Calles tiene un campo entero denominado Func_Class que tiene las siguientes seis clases de camino:

Func_Class

Tipo de calle

1

Interestatal

2

Carretera interestatal de peaje

3

Carretera estatal

4

Carretera principal

5

Calle local

6

Acceso de autopista

Además, suponga que desea agrupar los valores de Func_Class como se muestra en la siguiente tabla para crear tres niveles de jerarquía.

Nivel de jerarquía

Valores de Func_Class

1

1 (interestatales)

2 (carreteras interestatales de peaje)

6 (accesos de autopista)

2

3 (carreteras estatales)

4 (caminos principales)

3

)5 (calles locales

Para modelar este escenario, agregue una secuencia de comandos al campo evaluadores del atributo Jerarquía. Puede elegir entre escribir uno en la secuencia de comandos Python o VBScript. Para el ejemplo a continuación,que es en VBScript, se crea la variable denominada nivel y se establece en 3 (el nivel de jerarquía más bajo de este ejemplo). A continuación, se establecen las siguientes condiciones: si Func_Class es 1, 2 o 6, asignar a nivel un valor de 1. Si Func_Class es 3 o 4, asignar a nivel un valor de 2. Para todos los demás casos, el valor sigue siendo 3. El cuadro de texto Valor contiene nivel para que el atributo de jerarquía de red evalúe al valor que representa al final de la secuencia de comandos.

Establecer niveles jerárquicos utilizando VBScript de lógica previa

Esto garantiza que a todos los niveles con Func_Class 1, 2 o 6 se asigne el valor de jerarquía de 1; a todos los elementos con Func_Class 3 o 4 se asignan un valor de jerarquía de 2; y a todos los demás (es decir, los elementos con valores de Func_Class de 5) se asigna un valor de jerarquía de 3.

HerenciaHerencia:

Antes de ArcGIS 10, se utilizaba el cuadro de diálogo Rangos de jerarquía para convertir los diversos valores de campo en exactamente tres niveles de jerarquía. Ahora, sin embargo, su único propósito es definir caminos primarios, secundarios y locales cuando trabaja con un evaluador de retraso de giro global o establecer rangos de escala para la visualización de tráfico. Esto significa que el cuadro de diálogo Rangos de jerarquía no tiene ningún efecto sobre el atributo de jerarquía del dataset de red; solo afecta al evaluador de retraso de giro global.

El cuadro de diálogo Rangos de jerarquía.
Haga clic en Rangos en el panel Atributos para ver el cuadro de diálogo Rangos de jerarquía.

Si se utiliza un evaluador de retraso de giro global con un atributo de jerarquía, deberá categorizar los ejes en tres clases: carreteras locales, secundarias y primarias. Puesto que un atributo de jerarquía podría especificar cualquier número de niveles de jerarquía, el cuadro de diálogo Rangos de jerarquía permite agrupar esos niveles en exactamente tres clases de camino. Esto permite especificar costes que se agregan de forma predeterminada a las maniobras de giro en función de la clase de camino. Por ejemplo, puede agregar un retraso de 10 segundos a todos los giros a la izquierda de caminos secundarios a caminos locales, y un retraso de tres segundos a todos los giros a la izquierda de caminos locales a otros caminos locales. Otras muchas combinaciones de giros son posibles al utilizar clases de camino con el evaluador de retraso de giro global.

Más información sobre cómo establecer giros globales

Se pueden establecer rangos de escala cuando se visualiza el tráfico para que cuando se haga zoom en el mapa, se muestren todas las carreteras con tráfico. Cuando se aleja, se filtran de la visualización las carreteras locales, secundarias y luego las primarias. Esto mantiene el mapa de tráfico despejado y muestra solo los niveles de jerarquía de la carretera que son relevantes para las distintas escalas de mapa. Los rangos de escala se establecen con respeto a los rangos de jerarquía que especifique en el cuadro de diálogo Rangos de jerarquía.

Más información acerca de visualización de tráfico

Temas relacionados

9/11/2013