Ejemplo de servicio de geoprocesamiento: ruta más corta en una red de calles
Carpeta |
ShortestRoute |
Propósito |
Muestra la ruta más rápida en un determinado momento del día entre puntos en una red de calles y genera indicaciones para conducir en un archivo de texto o HTML |
Servicios |
ShortestRouteService (servicio de geoprocesamiento) |
Tareas de geoprocesamiento |
Calcular Ruta más corta |
Entradas |
|
Salidas |
|
Datos |
Utiliza un dataset de red de calles para el área de San Francisco que se proporciona en la carpeta ToolData |
Extensiones |
|
Importante |
|
Carpeta correspondiente
Los datos de este tutorial se pueden descargar desde ArcGIS.com. Extraiga los datos a C:\arcgis\ArcTutor\. El modelo y algunos datos correspondientes se encuentran en C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute. El dataset de red al que se hace referencia mediante la capa de análisis de red en el modelo se almacena en la geodatabase SanFrancisco, que se encuentra en C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute.
Acerca de este ejemplo
ShortestRouteService, que se creó en este ejemplo, muestra cómo publicar las tareas de geoprocesamiento que calculan la ruta más corta en una red de calles entre los puntos especificados por el usuario y generan un archivo que contiene las indicaciones para conducir.
El dataset de red San Francisco utilizado en este ejemplo está configurado con datos de tráfico históricos, que permiten encontrar la ruta más rápida para conducir en un día de la semana y una hora del día determinados. Esto significa que puede encontrar la mejor ruta desde el punto A al punto B a las 8:00 a.m., las 10:00 a.m., las 10: 25 p.m. y así sucesivamente. La forma de la ruta puede variar o la duración de la ruta puede cambiar, pero en cualquier caso, se calcula la ruta más rápida para la hora de inicio.
Datos
El dataset de red para este ejemplo viene de C:\arcgis\ArcTutor\GP Service Ejemplos\Network Analyst\SanFrancisco. gdb. El documento de mapa, la caja de herramientas y otros datos adicionales se almacenan en C:\arcgis\ArcTutor\GP Service Ejemplos\Network Analyst\ShortestRoute.
Dataset de red
La carpeta Network Analyst contiene una geodatabase de archivos, SanFrancisco.gdb. En el dataset de entidades Transporte hay un dataset de red, Streets_ND. Este dataset de red es un modelo de la red de calles del área de San Francisco. Proporciona varios atributos de red, que incluyen TravelTime, que indica el tiempo que se tarda en viajar por cada segmento de calle en minutos, y Metros, que indica la longitud de cada segmento de calle.
Caja de herramientas y documento de mapa
La caja de herramientas para el servicio de geoprocesamiento es ShortestRouteService.tbx.
El documento de mapa, ShortestRouteService.mxd se incluye para quitar pasos secundarios de este tema de flujo de trabajo, como agregar capas o extensiones de mapa adecuada en el área de estudio.
ShortestRouteService que contiene una herramienta de secuencia de comandos y un modelo. La herramienta de secuencia de comandos, Cambiar la hora de inicio de ruta, es parte del modelo Calcular ruta más corta.
Modelo
Vista general del modelo
El modelo Calcular ruta más corta se ilustra a continuación.
Hay tres parámetros de entrada: Hora de inicio, que es opcional y representa la hora de partida desde la primera parada; Paradas de entrada, que representa puntos digitalizados por el usuario a los que dirigirse; y Tipo de archivo para indicaciones, que especifica si generar las indicaciones en formato de texto o HTML.
El modelo utiliza una herramienta de secuencia de comandos para establecer la hora de inicio de ruta de una capa de análisis de red existente, agrega paradas a la capa de análisis de ruta, encuentra la mejor ruta y genera la forma de la ruta y las indicaciones para conducir. La ruta resultante visita las paradas en el orden en el que se digitalizaron.
Utilizar una capa de análisis de red existente
No se crea una capa de análisis de red en el modelo Calcular ruta más corta; más bien el modelo supone que ya existe una capa. Con este diseño, el modelo y cualquier tarea de geoprocesamiento publicada por el mismo vuelven a utilizar una capa de análisis de red en lugar de crear un para cada solución. Esto evita un montón de procesamientos innecesarios.
El modelo hace referencia a una herramienta de secuencia de comandos, Cambiar la hora de inicio de ruta, que utiliza Python y el módulo Network Analyst (arcpy.na) para acceder a la capa de análisis de red de ruta existente y cambiar la propiedad hora de inicio de ruta por la fecha y hora que el usuario introduzca. Más concretamente, la secuencia de comandos pasa la capa de análisis de red a arcpy.na.GetSolverProperties, que devuelve un objeto RouteSolverProperties. Con este objeto, la propiedad timeOfDay de la capa de análisis de red se establece.
Aunque no se recomienda, podría evitar agregar la herramienta de secuencia de comandos al iniciar el modelo con la herramienta Hacer la capa de la ruta y exponer el parámetro de la herramienta Hora de inicio como un parámetro de modelo. Sin embargo, una nueva capa de análisis de red se crearía para cada solicitud de cliente cuando el modelo se publica como una tarea en un servidor. Utilizar este enfoque causaría una gran cantidad de procesamiento adicional en sus servidores. La herramienta de secuencia de comandos y el módulo Network Analyst le permiten editar las propiedades de una capa de análisis de red existente para que el servicio solo cree y utilice una única capa.
Antes de 10.1, el módulo Network Analyst no existía. La única forma de cambiar las propiedades de una capa de análisis de red era crear una nueva capa en un modelo utilizando una o varias herramientas de geoprocesamiento creadoras de capas (por ejemplo, Hacer la capa de la ruta) y luego exponer uno o más parámetros de análisis de la herramienta como parámetros de modelo.
La capa de ruta que se utilizó como variable de entrada en el modelo Calcular ruta más corta se creó agregando en primer lugar el dataset de red Streets_ND a ShortestRouteService.mxd y, a continuación, utilizando la herramienta Hacer la capa de la ruta. Para este ejemplo, se establecieron los siguientes parámetros de herramienta cuando se creó la capa de ruta. Los valores predeterminados se utilizaron para los parámetros que no se mencionaron en esta tabla.
Parámetro |
Valor |
Entrada de la red de análisis |
Streets_ND |
Nombre de capa de salida |
Ruta |
Atributo de impedancia |
TravelTime |
Hora de inicio | |
Acumuladores |
Metros; TravelTime |
Directiva sobre cambios de sentido |
ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY |
Procesos de modelo
La herramienta de secuencia de comando Cambiar hora de inicio de la ruta le permite aprovechar la dinámica de las horas de viaje dinámicas del dataset al establecer una hora de inicio para la ruta. Si no establece una fecha y una hora, el solucionador encuentra la mejor ruta basándose en un atributo de coste de red que se genera a partir de los tiempos de viaje genérico. Estableciendo una fecha y una hora, sin embargo, el solucionador utiliza un atributo de coste basado en tiempos de viaje históricos, que tiende a producir mejor las rutas.
La herramienta Agregar ubicaciones agrega los puntos digitalizados por el usuario como paradas en la capa de ruta. El parámetro Ubicaciones de entrada para la herramienta se especifica a través de un parámetro de modelo, Paradas de entrada. Este parámetro es un tipo de datos de conjunto de entidades. El esquema y la simbología para el conjunto de entidades derivan del archivo InputStops.lyr que se encuentra dentro de la carpeta ToolData.
El esquema para el conjunto de entidades de Paradas de entrada contiene un campo de texto, Nombre. Este campo se puede utilizar para proporcionar los nombres de paradas mientras genera indicaciones para conducir al asignar la propiedad de Nombre al campo de nombre en Asignaciones de campos, como se ilustra a continuación. Si el valor para el campo de nombre no está especificado por el usuario, se utilizan los valores predeterminados por el usuario de Ubicación 1, Ubicación 2, etc., para los nombres de paradas.
Debido a que se utiliza la misma capa de ruta para cada ejecución del modelo, se deben quitar todas las paradas existentes antes de agregar las paradas nuevas. Para eliminar las paradas existentes, se desmarca la opción Adjuntar a ubicaciones existentes, que se ilustra a continuación.
Excluir las porciones restringidas de la red está marcado para que cuando se agreguen paradas, no se ubiquen en los bordes que no se pueden trazar. Esto evita fallos en el momento de la resolución.
La herramienta Solucionar calcula la ruta más corta en base al atributo de red TravelTime, al ajuste Hora de inicio y a otras opciones como se especificó en la capa de ruta. La ruta que se calculó se escribe en la subcapa Rutas de la capa de ruta de salida.
Las capas de análisis de red (tal como una capa de ruta) no son tipos de datos de parámetros de salida compatible con los clientes de ArcGIS Server. Por lo tanto la herramienta Seleccionar datos se utiliza para obtener la subcapa Rutas desde la capa de análisis de ruta.
La herramienta Indicaciones genera las indicaciones para conducir y las exporta a un archivo de texto, XML o HTML, dependiendo de la elección del usuario. Sin embargo, la opción XML se elimina de la lista cuando se ejecuta la tarea resultante de ArcGIS for Server. Esta opción se elimina desmarcando XML en el Editor de servicios, bajo Tipo de archivo para indicaciones, al publicar el servicio. La variable SolveSucceeded, que deriva de la herramienta Resolver, se utiliza como una condición previa para la herramienta Indicaciones. Esto significa que el archivo de indicaciones se genera sólo si la herramienta Solucionar puede encontrar una ruta entre los puntos de entrada.
Descripción de elemento
Al documentar la descripción del elemento del modelo de geoprocesamiento, también está documentando el servicio resultante y sus parámetros, porque el asistente de publicación copia el texto en la descripción del elemento del servicio. La descripción, o de la documentación, del servicio es necesaria y ayuda a los usuarios a entender cómo interactuar con éxito con el servicio y encontrar las rutas más cortas. La herramienta de modelo y de secuencia de comandos para este ejemplo se documentan; puede inspeccionar la documentación haciendo clic derecho en el modelo de geoprocesamiento en la ventana Tabla de Contenidos y eligiendo Descripción del elemento.
Publicación
El servicio de geoprocesamiento se publica como se describe en los pasos que aparecen a continuación.
- Abra ShortestRouteService.mxd. La ubicación predeterminada para los datos del tutorial es C:\arcgis\ArcTutor\GP Service Ejemplos\NetworkAnalyst\ShortestRoute.
- Ejecutar el modelo de geoprocesamiento Calcular ruta más corta.
- En la ventana Catálogo, expanda ShortestRouteService.tbx y haga doble clic en el modelo Calcular ruta más corta.
- En el cuadro de diálogo Calcular ruta más corta de la herramienta, haga clic en el símbolo junto a Paradas y haga clic en el mapa para agregar paradas.
- Haga clic en Aceptar para generar una ruta y direcciones de conducción.
- Abra la ventana Resultados haciendo clic en Geoprocesamiento > Resultados.
- En la ventana Resultados, expanda Sesión actual.
- Haga clic con el botón derecho en CalculateShortestRoute (que está seguido por la fecha y la hora en la que el modelo se ejecutó) y elija Compartir como > Servicio de geoprocesamiento.
- En el cuadro de diálogo Compartir como servicio, haga clic en Siguiente.
- Elija una conexión de ArcGIS Server con capacidades de responsable de publicación en la lista desplegable o realice una conexión utilizando el botón a la derecha de la lista desplegable.
- Haga clic en Siguiente.
- Elija publicar el servicio en la carpeta raíz o especifique una carpeta diferente y haga clic en Continuar.
Aparece el cuadro de diálogo Editor del servicio. El texto de la descripción del elemento del modelo de geoprocesamiento y las descripciones del elemento se copia para describir el servicio. Se visualiza para la edición en la sección Descripción del elemento del cuadro de diálogo, así como en las secciones inmediatamente superiores (Route_Directions, Hora de inicio, etc.).
- Puesto que un análisis de ruta en esta área de estudio es un proceso rápido, haga que el servicio sea sincrónico haciendo clic en la pestaña Parámetros y marque Sincrónico. Si está publicando un servicio para la solución de problemas de ubicación-asignación o de la matriz de coste OD, establezca esta propiedad como Asíncrono y considere incrementar el valor del Tiempo máximo que un cliente puede utilizar un servicio, que se encuentra bajo la pestaña Agrupación .
- Cambie el Nivel de mensaje a Advertencia para que se devuelvan todos los mensajes de error se ejecuta la tarea.
- Quitar XML de las opciones de formato de archivo para las indicaciones para conducir haciendo clic en Tipo de archivo para indicaciones y desmarcando XML.
- Haga clic en Analizar para ver todos los mensajes de error y advertencia en la ventana Publicador.
A menos que haya establecido un almacenamiento de datos, recibirá una advertencia de que los datos se copiarán en el servidor.
Haga clic derecho en cualquier otro mensaje de error en la ventana Responsable de publicación para obtener ayuda sobre cómo afrontarlas.
- Haga clic en Publicar en el cuadro de diálogo Editor de servicios.
Puede parecer un cuadro de diálogo inmediatamente para informarle de que Streets_ND se copiará en el servidor. Si es así, haga clic en Aceptar. Una vez que el servicio lo publica correctamente, aparece el cuadro de diálogo Correcto.
- Haga clic en Aceptar.
Utilización
- Abra un documento de mapa en blanco y agregue la clase de entidad Calles de los datos del tutorial (C:/arcgis/ArcTutor/Ejemplos de servicio GP/Network Analyst/SanFrancisco/Transporte/Streets). De manera opcional, puede agregar una capa de mapa base de ArcGIS Online y quitar la capa de entidad Calles.
- Cree una conexión a ArcGIS Server en la ventana Catálogo si no existe ninguna.
- Expanda la conexión de usuario y el servicio CalculateShortestRoute.
- Abra la tarea Calcular ruta más corta haciendo doble clic sobre la misma.
- Agregue al menos dos puntos para crear ubicaciones de parada. De manera opcional, especifique nombres para cada parada en la tabla de atributos para la capa que aparecerá en la tabla de contenido: CalculateShortestRoute::Stops.
- Especifique una fecha y hora para cuando la ruta salga de la primera parada. Elija si generar indicaciones para conducir en formato de texto o HTML. Haga clic en Aceptar para ejecutar la tarea.
ArcGIS for Server recibe la solicitud, resuelve el análisis, devuelve una capa llamada Rutas, y almacena el archivo de indicaciones de conducción en el directorio temporal. Puede acceder a las indicaciones para conducir a través de la ventana Resultados: expanda Sesión actual > CalculateShortestRoute y haga doble clic en Indicaciones de ruta: RouteDirections. (Puede hacer clic con el botón derecho en Indicaciones de ruta: RouteDirections y elegir Copiar ubicación para determinar dónde se encuentra el archivo en su equipo.)