Utilizar parámetros con atributos de red
Los valores de atributo de red dependen a veces de condiciones variables. Por ejemplo, la altura de un vehículo puede determinar si un segmento del camino con un paso elevado de baja altura se puede atravesar o no. Las condiciones meteorológicas existentes pueden reducir las velocidades de viaje y afectar así a los costes horarios de la red. Existen dos enfoques posibles para modelar restricciones basadas en la altura del vehículo, los costes del viaje basados en factores de escala y otros aspectos variables del análisis de red. El primero de ellos consiste en crear un atributo de red para cada variación de la altura o las condiciones meteorológicas; sin embargo, este enfoque no es escalable a medida que el número de permutaciones crezca. Un enfoque más versátil consiste en utilizar un atributo de red único con un parámetro que contenga la parte variable del atributo.
Los parámetros son marcadores de posición para los valores especificados más adelante. Cada uno de ellos tiene un valor predeterminado para el caso de que no se le asigne un nuevo valor. En ArcCatalog, los parámetros se agregan a los atributos de red y son consultados por los evaluadores del atributo. Los valores de parámetro se pueden cambiar en ArcMap al configurar los problemas de red de forma que los valores de los atributos de red se puedan determinar en tiempo de ejecución utilizando la expresión y el valor actual del parámetro.
Comportamiento de los atributos de red parametrizados
Un atributo de red parametrizado tiene un VBScript o un evaluador de función que utiliza un parámetro en el atributo de red así como otro atributo de red para ayudar a determinar su valor. Dado que los parámetros pueden cambiar en tiempo de ejecución, sus valores no se escriben en la base de datos, sino que se calculan bajo demanda. Por consiguiente, no es necesario volver a construir el dataset de red cuando el valor del parámetro cambie.
Parámetros en atributos de restricción
Puede agregar parámetros a los atributos de restricción para determinar qué elementos de red puede utilizar un vehículo. El parámetro que representa una determinada característica del vehículo se compara con un valor procedente de un atributo de descriptor para determinar si el elemento de red se puede atravesar. Por ejemplo, un atributo de restricción parametrizado puede comparar la altura de su vehículo con un atributo de descriptor que contiene la distancia al suelo bajo los pasos elevados o en los túneles. Si la altura del vehículo es mayor que la distancia al suelo, el borde se restringirá, lo que puede derivar en la existencia de rutas diferentes para vehículos diferentes: tal y como se muestra a continuación, un vehículo de poca altura podría seguir una ruta directa que atraviese un puente con poca distancia al suelo, mientras que un vehículo alto tomaría una ruta diferente que evite ese puente.
En este tipo de escenario se podrían crear dos atributos: un atributo de descriptor y un atributo de restricción, llamados respectivamente MaxHeight y HeightRestriction, por ejemplo. MaxHeight tomaría valores de distancia al suelo de los datos de origen y HeightRestriction leería los valores de MaxHeight y los compararía con un parámetro que contendría la altura del vehículo. El siguiente diagrama muestra una versión generalizada de este proceso.
Parámetros en atributos de coste
Puede que prefiera disponer de un atributo de coste parametrizado que pueda hacer referencia a otro atributo de coste y escalarlo. Esto le resultará útil si su área de estudio soporta condiciones meteorológicas adversas como hielo, niebla o lluvia fuerte que entorpecen la fluidez del tráfico. Tener un parámetro ya preparado en un atributo de coste le permite ajustar la previsión de la duración de los viajes en consonancia con cambios en las velocidades del tráfico.
Podría crear dos atributos de red: DriveTime, que almacenaría las impedancias de tiempo de recorrido normales con valores procedentes de los campos de sus datos de origen, y DriveTime_scaled, que tomaría el valor del atributo DriveTime y lo escalaría en función de un parámetro del atributo DriveTime_scaled que contiene el factor de escala actual.
Configurar un atributo parametrizado
Una vez haya creado los atributos de red necesarios, puede configurar el atributo parametrizado, que consta de dos pasos primarios:
- Agregar un parámetro a un atributo de red.
- Configurar el evaluador del atributo para utilizar el parámetro.
Estos pasos se llevan a cabo en ArcCatalog mediante la ficha Atributos del cuadro de diálogo Propiedades de dataset de red.
Más información sobre cómo editar los dataset de red
Agregar un parámetro
Puede seguir los siguientes pasos para crear un parámetro. El siguiente ejemplo ilustra un atributo de restricción, HeightRestriction, pero el mismo procedimiento funciona con los atributos de coste.
Se agrega al atributo HeightRestriction un nuevo parámetro, Altura del vehículo, al que se le asigna un valor predeterminado de cero. (Una altura de vehículo igual a cero indica que el vehículo puede pasar bajo cualquier distancia al suelo.) Puede cambiar el valor predeterminado del parámetro al realizar un análisis de red en ArcMap.
Configurar el evaluador
Una vez agregado el parámetro, deberá diseñar un evaluador que incorpore el parámetro y una constante o bien otro atributo de red que almacene información relativa al parámetro. En el siguiente ejemplo, el atributo de restricción parametrizado HeightRestriction tiene asignado un evaluador que comparará el parámetro Altura del vehículo con el atributo de red del descriptor, MaxHeight, que contiene las mediciones de la distancia al suelo para los elementos de red.
Dado que el evaluador de VBScript calcula sus valores durante el análisis utilizando el entorno de VBScript, especificar este evaluador tiende a afectar negativamente al rendimiento del análisis. ESRI recomienda encarecidamente utilizar el evaluador de funciones en lugar del evaluador de VBScript siempre que sea posible para obtener el máximo rendimiento durante el análisis.
Más información sobre los tipos de evaluador utilizados por una red
Para este ejemplo se eligió el evaluador de funciones. El cuadro de diálogo Evaluadores Función mostrado a continuación presenta la expresión evaluada para cada calle. Cuando el evaluador de funciones devuelve el valor True, indica que el elemento de red está restringido. Si devuelve False, el elemento de red se puede atravesar y se puede utilizar en la solución.
Para poder comparar, se configuró un atributo de coste parametrizado, DriveTime_scaled, con un evaluador de funciones (mostrado a continuación) que utiliza el parámetro DriveTime Factor. El evaluador lee el tiempo de recurrido del atributo de coste DriveTime y lo multiplica por el valor de DriveTime Factor, que se especifica en tiempo de ejecución.
Puede cambiar el valor predeterminado del parámetro, que es 1, en tiempo de ejecución. Un valor de 1,5 ralentizaría un 50 por ciento los tiempos de recorrido respecto de los tiempos normales. Un elemento de red con un valor de DriveTime de 5 minutos tendría un valor de DriveTime_scaled de 7,5 minutos.
Reconstruir el dataset de red
Puesto que los evaluadores de funciones no almacenan sus valores en la base de datos sino que los calculan en tiempo de ejecución, no es necesario que reconstruya el dataset de red tras agregar o modificar un evaluador de funciones o los parámetros de atributos correspondientes en ArcCatalog. Sin embargo, en caso de que realice cambios en su atributo relacionado basado en un evaluador de campo, deberá reconstruir el dataset de red para poder utilizar los nuevos valores.
Una vez tenga el atributo parametrizado preparado en ArcCatalog, puede empezar a utilizarlo para resolver los problemas de red en ArcMap. Al cambiar el valor predeterminado del parámetro no es necesario reconstruir la red.