Un recorrido rápido por los servicios de creación e intercambio
Crear un servicio de geoprocesamiento implica la creación de las tareas en el servicio. Crear una tarea significa seleccionar o crear una herramienta, definir de los parámetros de entrada y de salida de la tarea y la ubicación de los datos utilizados por la tarea. Estos son los pasos con un poco más detalles:
- Seleccione una o varias herramientas de geoprocesamiento que se convertirán en las tareas del servicio. Puede utilizar una de las muchas herramientas del sistema que se suministran con ArcGIS o bien crear sus propias herramientas con las secuencias de comandos ModelBuilder o Python.
- Recopilar los datos de entrada necesarios para ejecutar la herramienta. Por lo general, estos datasets son capas de la tabla de contenido de ArcMap.
- Ejecutar la herramienta crea un resultado en la ventana Resultados.
- La definición de la simbología de los datasets de entrada y de salida, si es necesario.
- Compartir el resultado como un servicio de geoprocesamiento. Cuando comparte un resultado, puede utilizar el Editor de servicio para definir los modos de los datasets de entrada (que se describe a continuación) junto con otras propiedades del servicio y sus tareas.
Ejemplo: un simple modelo de oferta y demanda
A continuación se ilustra un ejemplo de una herramienta creada con ModelBuilder que se debe convertir en una tarea. El modelo (y tarea publicada) es un modelo de asignación muy simple de oferta y demanda; dado un conjunto de ubicaciones de punto que representan la oferta de servicios (como respuesta de emergencia o instalaciones al por menor) y otro conjunto de puntos que representa la demanda (como los hogares o las empresas que requieren el servicio), asigne los puntos de demanda a la instalación más cercana, cree un polígono de área de comercio para cada instalación y resuma todas las instalaciones de la demanda en el ámbito comercial. La salida es un conjunto de polígonos, un polígono para cada instalación de entrada con un atributo que contiene la demanda total dentro del polígono.
Tenga en cuenta que en el modelo anterior, las variables Instalaciones Demanda y Polígonos de Thiessen de salida son parámetros de modelo (tienen una P junto a ellas). Estos parámetros de modelo se convierten en los argumentos de tarea que los clientes de su tarea proporcionan cuando ejecutan la tarea.
Los parámetros de modelo aparecen en el cuadro de diálogo de la herramienta, como se ilustra a continuación, donde la herramienta de modelo se abre en la ventana Catálogo.
Cuando el modelo se ejecuta como una herramienta, se escribe un resultado en la ventana Resultados, como se ilustra a continuación. El resultado contiene toda la información que ArcGIS necesita para construir una tarea.
- El nombre y la ubicación de la caja de herramientas y la herramienta que crearon el resultado.
- La salida (ThiessenPolys1) producida al ejecutar la herramienta.
- El esquema (el tipo de entidad y atributos) de la salida.
- La simbología de la salida. En este ejemplo, la simbología de salida es un color graduado basado en la suma de la demanda dentro de cada polígono.
- Las entradas para la herramienta (las capas de los sitios de materiales peligrosos y estaciones de bomberos).
- El esquema (el tipo de entidad y atributos) de cada entrada. En este ejemplo, las Estaciones de bomberos tienen un atributo de texto: FacilityName. Los Sitios de materiales peligrosos también tienen un atributo: Demanda, un entero largo.
- La simbología de la entrada. En el ejemplo, la capa Estaciones de bomberos se simboliza con un símbolo de estación de bomberos para cada ubicación. Demanda se simboliza con círculos graduados.
- La configuración del entorno de geoprocesamiento que estuvo en efecto cuando se ejecutó la herramienta.
Otro aspecto importante de un resultado es que forma parte de una sesión de ArcMap y, por tanto, tiene acceso a todas las capas y tablas de la Tabla de contenido y su tarea publicada también puede acceder a estas capas. La Tabla de contenidoque se ilustra antes solamente contiene las dos capas de entrada y salida, pero podría contener muchas más capas (como una capa de ubicaciones al por menor) que pueden estar disponibles para los clientes de la tarea.
Un servicio de geoprocesamiento y su tarea inicial se crean haciendo clic con el botón derecho en un resultado y eligiendo Compartir como > Servicio de geoprocesamiento. Esto abre el asistente Compartir como servicio y después seleccionar una conexión al servidor y elegir un nombre para el servicio, el Editor de servicio se abre. El Editor de servicio es donde se definen las propiedades y la configuración del servicio, así como las propiedades los parámetros de cada tarea individual. La siguiente ilustración muestra cómo establecer el modo de entrada del parámetro Instalaciones. En este ejemplo, el modo de entrada se establece en Valor definido por el usuario lo que significa que se espera que el cliente proporcione un conjunto de puntos con un atributo de texto FacilityName.
Aquí, el punto principal es que el Editor de servicio le proporciona un nivel adecuado de control sobre la definición de las entradas y salidas de la tarea. Aunque esto se produce durante el proceso de compartir, puede tener repercusiones sobre cómo se crea la herramienta.
Ejemplo: otros modos de entrada
La herramienta Generar tabla próxima es una herramienta del sistema que calcula las entidades más cercanas a las entidades de entrada y devuelve los resultados en una tabla. En este ejemplo, Generar tabla próxima se utiliza para devolver todas las escuelas elementales, escuelas secundarias, estaciones de bomberos, tiendas de comestibles y tiendas minoristas dentro de cinco millas de cualquier punto de entrada. En este escenario, los puntos de entrada se consideran casas para venta, este es es un simple servicio destinado a ayudar a compradores de viviendas evaluar casas para la venta. Todas las entradas de dataset son capas en la tabla de contenido de ArcMap.
Cuando el resultado es compartida como una tarea de geoprocesamiento, lasEntidades próximas pueden ser una Lista de selección de las entidades cercanas a buscar, como se ilustra a continuación. El cliente debe especificar una o más de estas capas. Por ejemplo, es posible que el cliente solo esté interesado en las escuelas elementales y escuelas secundarias, pero ninguna de las otras capas.
O bien, como alternativa, las Entidades próximas pueden ser fijas, un Valor constante, en cuyo caso ya no es un argumento de la tarea y el cliente no tiene control sobre qué Entidades próximas se devuelven; siempre obtendrán una tabla de todas las entidades más cercanas.
Modos de entrada
En los ejemplos anteriores, observó cómo configurar el modo de entrada es una decisión de creación y diseño de tarea importante. Establecer el modo de entrada es algo que hace en el Editor de servicio yq que se refiere solo a las tareas de geoprocesamiento y no la herramienta subyacente. Hay tres modos de entrada de las entidades de entrada:
- Valor definido por el usuario: el cliente creará un conjunto de entidades que se transportará por Internet para que lo lea la tarea. Cuando se especifica un Valor definido por el usuario, el tipo de entidad, los atributos, la referencia espacial y la simbología de la capa de entrada se almacenan con el conjunto de entidades. Los clientes pueden recuperar este esquema y utilizarlo para digitalizar las entidades del conjunto de entidades o bien cargar entidades desde un archivo del disco en el conjunto de entidades. Para las tablas de entrada, existe un conjunto de registros correspondiente que almacena el esquema de atributos de la tabla.
- Lista de selección: el cliente puede introducir los nombres de una (o varias) de las capas que marque en la lista de capas. Si el cliente puede introducir más de una capa depende de la herramienta. La herramienta Generar tabla próxima que se muestra arriba permite introducir varias capas de entrada. Otras herramientas, como Zona de influencia, solo permiten introducir una capa desde la lista de selección.
- Valor constante: la tarea utilizará el valor que se especificó al ejecutarse la herramienta. Valor constante es igual que la eliminación del parámetro, la capa (dataset) se utiliza internamente por parte de la tarea y no está expuesta al cliente.
Más información sobre los modos y los tipos de datos de entrada
Ejemplo: herramienta de secuencia de comandos
También puede crear una tarea con una herramienta de secuencia de comandos. La siguiente ilustración muestra la página de propiedades de una herramienta de secuencia de comandos que hace exactamente el mismo trabajo que el modelo de oferta y demanda simple anterior, solo mediante Python en lugar de ModelBuilder. Tiene los mismos parámetros que el modelo y se utiliza el mismo procedimiento que para crear una tarea: ejecute la herramienta para crear un resultado y compártalo como un servicio de geoprocesamiento.
Datos de proyecto y el almacenamiento de datos
Datos de proyecto es un término que utiliza el geoprocesamiento para describir los datos de entrada que no son un parámetro; es decir, los datos no son proporcionados por el usuario de la herramienta o tarea, sino se utilizan internamente por la herramienta o tarea. Por ejemplo, la variable Dataset de red San Francisco en el modelo que se muestra a continuación es datos de proyecto porque se utiliza por el modelo pero no expone como un parámetro. Esencialmente, los datos del proyecto de modelo es un óvalo azul sin una P junto al mismo.
Los datos de proyecto pueden aparecer en secuencias de comandos, como se muestra en el siguiente fragmento de código de Python.
import arcpy # The inputPoints variable is considered to be project data # since it is not an input parameter. # inputPoints = r"c:\data\Toronto\residential.gdb\shelters" arcpy.Buffer_analysis(inputPoints, 'shelterBuffers', '1500 Meters')
En el Editor de servicio, los datos de entrada que tiene un parámetro tienen un Modo de entrada de Valor constante equivalente a los datos del proyecto utilizados por la herramienta pero no expuesta como argumento de la tarea. Puede pensar de un modo de entrada de Constante como a la eliminación de P junto a la variable en ModelBuilder.
Los datos de proyecto son una cuestión importante cuando se crea y comparte una tarea porque el servidor debe tener acceso a los datos de proyecto cuando se ejecuta la tarea. Los servicios de geoprocesamiento tienden a utilizar muchos diferentes datos en diferentes ubicaciones. No es atípico que los problemas en su servicio se puedan atribuir a cuestiones de acceso a los datos de proyecto.
Cuando publica su resultado, la publicación de los procesos escanea todos los modelos y secuencias de comandos que se utilizan para producir el resultado y descubre los datos de proyecto. Entonces determina qué hacer con estos datos. Solo hay dos opciones:
- Si los datos de proyecto se pueden encontrar en el almacenamiento de datos del servidor, la tarea publicada utilizará los datos en el almacenamiento de datos.
- Si los datos de proyecto no se pueden encontrar en el almacenamiento de datos del servidor, se copian en el servidor, se colocan en una ubicación conocida accesible por el servidor (el directorio de entrada del servidor) y la tarea publicada utilizará el copiado los datos. Los datos copiados no forman parte del almacenamiento de datos del servidor. Si vuelve a publicar la tarea, los datos se copiarán de nuevo.
Acerca del almacenamiento de datos
Cada instalación de ArcGIS Server contiene un almacenamiento de datos. El almacenamiento de datos es una forma de dar el servidor una lista de ubicaciones de datos que el servidor puede acceder. Cuando el servidor puede acceder a los datos, los datos que se encuentran en su equipo local no se copiarán en el servidor al publicar.
Para obtener más información sobre cómo registrar los datos con el ArcGIS Server, consulte:
Si la opción para copiar automáticamente los datos durante la publicación se ha deshabilitado, deberá registrar sus datos de entrada y salida de la tarea en el almacén de datos del servidor. Cuando se deshabilita la opción para copiar automáticamente los datos, no se pueden copiar en el servidor los datos necesarios para la tarea. Deberá registrar los datos en el almacén de datos del servidor, o bien habilitar la copia automática de los datos en el servidor, o modificar la tarea para que el usuario defina todas las entradas y que todas las salidas se escriban en el espacio de trabajo de in_memory
Datos simples en, simple de los datos
Un servicio SIG debe funcionar con el cliente más sencillo: un navegador web que se ejecute en un ordenador sin ninguna de las prestaciones SIG. Estos clientes sencillos solo saben enviar paquetes de datos simples a un servidor, como texto, números, tablas y las entidades geográficas y sus atributos. Estos clientes no conocen las representaciones geográficas de datos más avanzadas que se utilizan en ArcGIS for Desktop, como datasets de red, topologías, TIN, clases de relación, las redes geométricas, etc. Estos datasets se conocen como datasets complejos; modelan complejas relaciones entre entidades simples. Los datasets complejos no se pueden transportar a través de Internet; solamente las entidades simples, las tablas, los rásteres y los archivos se pueden transportar.
Cuando se crea una tarea, debe saber que todos los clientes, ya sea aplicaciones Web, ArcGIS Explorer o ArcGIS for Desktop solo saben enviar y recibir (transportar) estos datasets simples. Incluso si sabe que solo accederán a su servicio los clientes sofisticados como ArcMap, cuando cree sus tareas seguirá limitándose a los datos de entrada simples.
Consulte el tema Modos de entrada y los tipos de datos de parámetro para obtener más información acerca de datasets transportables y no transportables.
Los resultados de la tarea de dibujo con un servicio de mapas
Al publicar un servicio de geoprocesamiento, puede elegir visualizar el resultado de su tarea como un mapa (además de cualquier otro resultados de su tarea). El mapa se crea en el servidor mediante ArcMap y, a continuación, se transportan de vuelta al cliente. La simbología, el etiquetado, la transparencia y todas las demás propiedades del mapa devuelto son iguales que en la capa de salida en su sesión actual de ArcMap. El flujo de trabajo para crear un servicio de mapas de resultado es simple:
- Ejecute la herramienta para crear un resultado en la ventana Resultados. Los datos creados por la herramienta se agregarán a la tabla de contenido de ArcMap como una capa.
- Cambie la simbología de las capas que son la salida de la herramienta.
- Haga clic con el botón derecho en el resultado y compártalo como un servicio de geoprocesamiento.
- En el Editor de servicio, haga clic en Parámetros y habilite Ver resultado con un servicio de mapas.
Si su capa de salida son los valores exclusivos de dibujo, quizás tenga que desmarcar <all other values> en las propiedades de capa para forzar un nuevo cálculo de los valores exclusivos antes de dibujar. Consulte el tema Crear un archivo de simbología de capa para obtener más información.
Documentar su tarea
Proporcionar una buena documentación para su servicio y tareas es esencial si desea que el servicio sea descubierto, entendido y utilizado por la mayor audiencia posible.
Una buena documentación comienza con la herramienta que creó el resultado que publicará. Cada herramienta en el sistema tiene una descripción del elemento que puede visualizar uno editado al hacer clic con el botón derecho en la ventana Catálogo y elegir Descripción del elemento.
Más información acerca de la documentación, tareas y servicios de geoprocesamiento
Configuración del entorno de geoprocesamiento
La configuración del entorno de geoprocesamiento incluye parámetros adicionales que modifican los resultados de una herramienta. Estos parámetros difieren de los parámetros de herramientas normales en que no se muestran en el cuadro de diálogo de una herramienta (con algunas excepciones). En cambio, son valores que se establecen una vez en un cuadro de diálogo separado y que las herramientas consultan y utilizan cuando son ejecutadas.
Jerarquía de configuración del entorno
Hay varias maneras de cambiar la configuración del entorno, y donde haga los cambios se puede considerar como un nivel en una jerarquía. La configuración del entorno se transmite de nivel a nivel. En cada nivel, puede invalidar la configuración de entorno transmitida desde el nivel superior con otra configuración.
- Nivel de la aplicación: en el menú principal haga clic en Geoprocesamiento > Entornos. Los cambios que realiza aquí afectará a la ejecución de cualquier herramienta.
- Nivel de la herramienta: en un cuadro de diálogo de la herramienta, haga clic en el botónEntornos. Esto abrirá el cuadro de diálogo Configuración del entorno. Tenga en cuenta que toda la configuración del entorno, independientemente de si la herramienta los respeta o no, se enumeran en el cuadro de diálogoConfiguración del entorno. Deberá consultar la página de referencia de la herramienta para determinar si la herramienta distingue el entorno. Cualquier configuración que haga aquí se invalida la configuración de nivel de aplicación. Esta configuración solo se aplica a la ejecución de la herramienta; la configuración a nivel de la aplicación no se sobrescribe.
- Nivel de modelo, proceso de modelo o secuencia de comandos: en un modelo o secuencia de comandos, tiene un alto nivel de control sobre la configuración del entorno. Puede cambiar un entorno para una herramienta en particular, un conjunto de herramientas, o para cada herramienta en el modelo o secuencia de comandos. La configuración que haga en este nivel anulará todas las configuraciones realizadas en la herramienta o a nivel de la aplicación.
La configuración del entorno se almacena en un resultado
Un resultado en la ventana Resultados almacena todas las configuraciones del entorno que se hacen en la aplicación o a nivel de la herramienta. Cuando se ejecuta la tarea en el servidor, la configuración del entorno en el resultado se utiliza durante la ejecución de la tarea. Sin embargo, la configuración que haga en el nivel de modelo o de secuencia de comandos no se muestran en el resultado, pero se utilizarán durante la ejecución de la tarea. Puede considerar la configuración del entorno en el resultado como transmitida a la herramienta de modelo o secuencia de comandos que es libre para invalidar la configuración.