tipos de datos de entrada y de salida

33
Tipos de datos de entrada y de salida Resource Center » Servicios de publicación » Tipos de servicios » Servicios de geoprocesamiento Como se describe en Conceptos clave sobre los servicios de geoprocesamiento , sólo se pueden utilizar ciertos tipos de datos como parámetros de entrada y de salida para los servicios de geoprocesamiento. Nota: Debido a que los procesos dentro del modelo o secuencia de comandos que se publicó se ejecutan en el servidor donde todos los tipos de datos están disponibles, puede utilizar cualquier tipo de datos para los procesos del modelo o secuencia de comandos. Sólo están limitados los tipos de datos del parámetro de entrada y de salida. Hay cuatro niveles de compatibilidad de tipos de datos: Completamente compatible con todos los clientes. Compatible sólo con los clientes de ArcGIS Desktop. No se permite en cualquier cliente. Algunos tipos de datos, tales como TIN, no se permiten para los parámetros de entrada y el modelo no se publicará. Recibirá un error cuando publique, como se ilustra a continuación.

Upload: chica3000

Post on 23-Dec-2015

5 views

Category:

Documents


1 download

DESCRIPTION

arcgis

TRANSCRIPT

Tipos de datos de entrada y de salidaResource Center » Servicios de publicación » Tipos de servicios » Servicios de geoprocesamiento

Como se describe en Conceptos clave sobre los servicios de geoprocesamiento, sólo se pueden utilizar ciertos tipos de datos como parámetros de entrada y de salida para los servicios de geoprocesamiento.

Nota:

Debido a que los procesos dentro del modelo o secuencia de comandos que se publicó se ejecutan en el servidor donde todos los tipos de datos están disponibles, puede utilizar cualquier tipo de datos para los procesos del modelo o secuencia de comandos. Sólo están limitados los tipos de datos del parámetro de entrada y de salida.

Hay cuatro niveles de compatibilidad de tipos de datos:

Completamente compatible con todos los clientes.

Compatible sólo con los clientes de ArcGIS Desktop.

No se permite en cualquier cliente. Algunos tipos de datos, tales como TIN, no se permiten para los parámetros de entrada y el modelo no se publicará. Recibirá un error cuando publique, como se ilustra a continuación.

El tipo de datos se transforma a un tipo de datos de Cadena de caracteres. Por ejemplo, un tipo de datos de unidad de área se convertirá en un tipo de datos de cadena de caracteres en la tarea publicada.

Es posible que tenga que modificar los modelos y las secuencias de comandos que funcionan en ArcGIS Desktop para que sólo utilicen tipos de datos de entrada y de salida compatibles antes de que se pueden publicar en ArcGIS Server.

Tipos de datos de entrada

La tabla siguiente resume los tipos de datos de parámetro de entrada clave para los tres clientes.

Tipo de datos del parámetro de entrada

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Conjunto de entidades Sí Sí Sí

Conjunto de registros Sí Sí Sí

Clase de entidad No (pero la Clase de entidad de entidad de entrada es compatible indirectamente con el tipo de datos del Conjunto de entidades).

No No

Tabla No (pero la entrada de Tabla es compatible indirectamente con el tipo de datos del Conjunto de registros).

No No

ráster Sí No No

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Sí Sí Sí

Archivo (como un archivo .zip o.xml)

Sí Sí Sí

Capa (cualquier tipo de capa: por ejemplo, capa de entidad, capa ráster, capa de Network Analyst)

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Tipos de entrada para los servicios de geoprocesamiento

Para cualquier tipo de datos de entrada de la lista anterior, ocurrirá una de las dos situaciones cuando publique el modelo o secuencia de comandos:

La herramienta se publicará, pero el tipo de datos se convertirá a un tipo de datos de cadena de caracteres que contenga la representación de cadena de los datos.

La herramienta no se publicará, y obtendrá un error. Los tipos de datos que tienen como resultado la publicación de errores son

Cualquier geodataset (tal como una Clase de entidad) o tabla, excepto el ráster

Elemento de datos

Tabla de valores/Valor múltiple

Variables de modelo que son Listas

Clases de entidad y tablas

Los tipos de datos de Tabla y de Clase de entidad no son compatibles como parámetros de entrada porque dependen de grandes bibliotecas de software que no se pueden instalar con clientes sencillos, tales como las aplicaciones Web y de ArcGIS Explorer. Debido a esto, el geoprocesamiento contiene dos tipos de datos sencillos, Conjunto de entidades y Conjunto de registros, que puede sustituir por los tipos de datos Tabla y Clase de entidad.

Los Conjuntos de entidades permiten que todos los clientes Web digitalicen de manera interactiva las entidades en un mapa. En ArcGIS Desktop, el tipo de datos Conjunto de entidades le permite introducir una clase de entidad existente, como se ilustra a continuación. Se permiten las clases de entidades en ArcGIS Desktop porque las bibliotecas de software requeridas están disponibles. Del mismo modo, Conjunto de registros permite que todos los clientes creen de manera interactiva registros de tablas y en ArcGIS Desktop, además puede especificar una tabla existente.

Datasets ráster

Los servicios de geoprocesamiento que tienen entradas de dataset Ráster sólo funcionan en los clientes de ArcGIS Desktop. En un cliente de ArcGIS Explorer, el servicio no se puede agregar como una tarea. En las aplicaciones Web, el servicio devolverá un error.

Tipos de datos de salida

La tabla siguiente resume los tipos de datos de parámetro de salida clave para los tres clientes. Después de esta tabla hay notas sobre cada tipo de datos.

Tipo de datos del parámetro de salida

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Clase de entidad Sí Sí Sí

Capa de entidades Sí Sí Sí

ráster Sí No, sólo se puede visualizar por medio de un servicio de mapas resultantes

No, sólo se puede visualizar por medio de un servicio de mapas resultantes

Capa ráster Sí No No

Geodataset (distinto de clase de entidad o ráster)

No, sólo se puede visualizar por medio de un servicio de mapas resultantes

No, sólo se puede visualizar por medio de un servicio de mapas resultantes

No, sólo se puede visualizar por medio de un servicio de mapas resultantes

Tabla Sí No (los servicios que tienen Sí

un tipo de datos de tabla como un parámetro de salida no se mostrarán en la lista de tareas disponibles).

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Sí (se visualizan en el resultado del servicio que se encuentra en la ventanaResultados)

Sí (se visualizan en la ventana Resultado de tarea)

Archivo Sí Sí Sí

Datos de salida

Para cualquier tipo de datos de la lista anterior, ocurrirá una de las dos situaciones cuando publique el modelo o secuencia de comandos:

La herramienta se publicará, pero el tipo de datos se convertirá a un tipo de datos de cadena de caracteres que contenga la representación de cadena de los datos.

La herramienta no se publicará, y obtendrá un error.

Nota:

Si está utilizando un servicio de mapas de resultado para dibujar los datos de salida, la tarea puede generar la salida en cualquier geodataset, ya que el servicio de mapas de resultado dibujará el geodataset y enviará un mapa de vuelta al cliente (en lugar del mismo dataset).

Clase de entidad

El tipo de datos de la Clase de entidad es compatible como un tipo de datos de salida. Cuando publica un modelo o secuencia de comandos, la herramienta se escanea y si se encuentra una Clase de entidad de salida, se convierte en un Conjunto de entidades de salida, que se transporta de vuelta al cliente. Esta transformación ocurre de forma invisible; el modelo o secuencia de comandos no cambia. Sólo ocurre con las clases de entidades de salida porque la transformación se realiza en el servidor, que tiene todas las bibliotecas de software necesarias para realizar la transformación. Por lo tanto, técnicamente hablando, las Clases de entidades no son compatibles como salidas; se permiten porque ArcGIS Server sabe cómo transformarlas al tipo de datos compatible de Conjunto de entidades.

Capas de entidades geográficas

Una capa de entidad hace referencia a una clase de entidad en el disco y es compatible con un conjunto de entidades seleccionadas que son el resultado de una consulta de atributos o espacial. Puede crear las capas de entidades mediante la herramienta Crear capa de entidades y realizar las consultas mediante las herramientas Seleccionar capa por atributo y Seleccionar capa por ubicación. No resulta extraño que las tareas de geoprocesamiento generen la salida en capas de entidades que contienen selecciones.

Cuando ArcGIS Server encuentra una capa de entidad de salida, las entidades seleccionadas se convierten en una clase de entidad y sólo las entidades seleccionadas se transportan de vuelta al cliente.

Nota:

Las capas de entidades de salida no funcionan en los servicios de mapas de resultado.

Cuando utilice los servicios de mapas de resultado, es importante tener en cuenta que hay dos servicios: el servicio de geoprocesamiento y el servicio de mapas de resultado. Estos dos servicios se ejecutan independientemente el uno del otro. Cuando se ejecuta la tarea, ArcGIS Server ejecuta la tarea de geoprocesamiento primero, y después ejecuta el servicio de mapas resultante para dibujar la salida del servicio de geoprocesamiento. Las capas de entidades son objetos temporales que se mantienen en la memoria mientras dura la tarea de ejecución. Una vez que finaliza la tarea, estas capas de entidades en memoria desaparecen. Si el servicio de mapas de resultado hace referencia a la misma clase de entidad que se encuentra en la capa, toda la información sobre las entidades seleccionadas (es decir, el resultado de la tarea) desaparecerá cuando el servicio de mapas dibuje todas las entidades. Si necesita un servicio de mapas para dibujar las entidades seleccionadas en una capa, primero debe guardar las entidades seleccionadas en una clase de entidad mediante la herramienta Copiar entidades utilizando la capa de entidad como entrada. Copiar entidades sólo copiará las entidades seleccionadas en la capa. Después puede dibujar las entidades que se copiaron con un servicio de mapas de resultado.

Datasets ráster

Los datasets ráster son compatibles como salida sólo en los clientes de ArcGIS Desktop.

Capas ráster

Como las capas de entidades, puede generar la salida en una capa ráster sólo en los clientes de ArcGIS Desktop. Cuando ArcGIS Server encuentra una capa ráster de salida, el ráster se transporta de vuelta al cliente. Las capas ráster de salida no funcionan en los servicios de mapas de resultado por la misma razón que no funcionan las capas de entidades, como se describió anteriormente.

Otras capas

Sólo las capas de entidades y las capas ráster son compatibles como salida (y, como ya se mencionó, las capas ráster sólo son compatibles con los clientes de ArcGIS Desktop). Todos los otros tipos de capas, tales como las capas NetCDF, capas de Análisis de red y capas de Análisis de estadísticas geográficas, no son compatibles.

Otros geodatasets

No se puede transferir de vuelta al cliente los datos de los tipos de datos de geodataset de salida además de los de la Clase de entidad o Ráster (tal como TIN o Terreno). Sin embargo, el servicio de geoprocesamiento puede tener un servicio de

mapas de resultado para visualizar los datos y el resultado del servicio de geoprocesamiento será una capa de servicio de mapas que se pueda dibujar en cualquier cliente.

Tabla

El tipo de datos Tabla, al igual que el tipo de datos Clase de entidad también es compatible, se transforma en un Conjunto de registros para transportar de vuelta al cliente.

Estrategias para los tipos de datos no compatibles

Si el modelo o la secuencia de comandos que desea publicar tiene tipos de datos de salida o de entrada no compatibles, o el tipo de datos se convierte en una cadena de caracteres, debe modificar el modelo o la secuencia de comandos de modo que sólo utilice los tipos de datos de salida y de entrada compatibles. Hay dos estrategias generales que puede emplear:

Utilizar la representación de cadena de caracteres.

Convertir los datos en un archivo.

Utilizar la representación de cadena de caracteres

Cada tipo de datos tiene una representación de cadena de caracteres. Para obtener más información sobre las representaciones de cadena de caracteres, consulte Tipos de datos para el geoprocesamiento de los parámetros de la herramienta.

Si una entrada a su modelo es uno de los tipos de datos que se convirtió a una cadena de caracteres cuando se publicó en ArcGIS Server, puede modificar el modelo para que acepte la entrada de cadena de caracteres y a continuación convertir la cadena de caracteres en el tipo de datos que desea. La siguiente demostración le muestra cómo realizar esta conversión. Este ejemplo primero muestra cómo convertir un valor de tipo de datos en una cadena de caracteres, que es lo opuesto de lo que necesita hacer para el modelo, pero demuestra un concepto importante: todos los tipos de datos tienen una representación de cadena de caracteres. La segunda parte del ejemplo muestra cómo convertir una cadena de caracteres en un valor de tipo de datos: el método que utilizaría en el servicio.

El tipo de datos utilizado para la demostración es Unidad de área.

La primera parte de esta demostración determina el formato de la cadena de caracteres de una Unidad de área.

1. Crear un modelo nuevo.

2. Cree una variable con un tipo de datos de Unidad de área y cámbiele el nombre Input AU.

3. Agregue la herramienta Calcular valor.

4. Haga doble clic en Calcular valor para abrir el cuadro de diálogo. Para el parámetroExpresión introduzca %Input AU%. Esto da la orden a Calcular valor de leer el contenido de la variable Input AU. Para el parámetro Tipo

de datos, elija Cadena de caracteres, como se ilustra a continuación. 

5. Opcionalmente, puede hacer de la variable Input AU una condición previa para Calcular valor. Una condición previa significa que la variable debe contener un valor antes de que se ejecute la herramienta. Los conectores de condición previa se muestran como líneas con guiones, como se ilustra a continuación.

6. Haga doble clic en la variable Input AU y establezca el valor en 1.000 metros cuadrados.

7. Haga clic en Aceptar.

8. Ejecute el modelo en ModelBuilder. Haga doble clic en output_value y examine su valor. El valor es la representación de la Unidad de área, como se ilustra a continuación. Tenga en cuenta cómo la representación de la cadena de caracteres no contiene un espacio entre Metros y Cuadrados.

Como se demostró anteriormente, todos los valores de tipo de datos tienen una representación de cadena de caracteres. Puede utilizar Calcular valor para visualizar la representación de cadena de caracteres de cualquier tipo de datos. Por ejemplo, puede introducir una variable de Referencia espacial en Calcular valor para visualizar su representación de cadena de caracteres.

Los siguientes pasos le muestran cómo convertir una variable de cadena de caracteres en otro tipo de datos. Los pasos son los mismos que los anteriores, excepto que la variable de entrada es una Cadena de caracteres y la salida es una Unidad de área.

1. Crear un modelo nuevo.

2. Cree una variable con un tipo de datos de Cadena de caracteres y cámbiele el nombre aInput AU String, como se ilustra a continuación.

3. Agregue la herramienta Calcular valor.

4. Haga doble clic en Calcular valor para abrir el cuadro de diálogo. Para el parámetroExpresión introduzca %Input AU String%. Esto da la orden

a Calcular valor de leer el contenido de la variable Input AU String.

Para el parámetro Tipo de datos, elija Unidad de área, como se ilustra a continuación.

5. Opcionalmente, puede hacer de la variable Input AU String una condición previa paraCalcular valor. Una condición previa significa que la variable debe contener un valor antes de que se ejecute la herramienta. Los conectores de condición previa se muestran como líneas con guiones, como se ilustra a continuación.

6. Haga doble clic en la variable Input AU String y establezca su valor a 1.000 metroscuadrados.

7. Haga clic en Aceptar.

8. Ejecute el modelo en ModelBuilder. Haga doble clic en output_value y examine su valor. El valor es una Unidad de área, como se ilustra a continuación. El tipo de datos deoutput_value realmente es Cualquier valor, no la Unidad de área. Un tipo de datos de Cualquier valor es un tipo de datos genérico que se puede conectar a cualquier parámetro de herramienta.

Esta técnica de conversión también se demuestra en el modelo Seleccionar capa por área que se encuentra en el ejemplo de Servicio GP: Seleccionar datos.

La siguiente ilustración muestra un modelo que utiliza la herramienta Simplificación de la construcción, que toma una Unidad de área como entrada. Debido a que la Unidad de área no es un tipo de datos de parámetro de entrada compatible para los servicios de geoprocesamiento, el parámetro de entrada del modelo Área mínima es una Cadena de caracteres que se convierte en una Unidad de Área utilizando el método anterior. La variable output_value se conecta al parámetroÁrea

mínima de Simplificación de la construcción mediante la herramienta Agregar

conexión de ModelBuilder ( ).

Utilizar esta técnica requiere que el usuario de la herramienta introduzca la cadena de caracteres correcta. Por ejemplo, si se introduce 1.000 metros cuadrados (en lugar de 1.000 metroscuadrados) a Calcular valor, la Unidad de área resultante estará

vacía. No importa si las letras están en mayúscula o minúscula: es decir, SquareMETERS y squareMeters son equivalentes.

Si desea proporcionar más verificación de error en el proceso de convertir una cadena de caracteres en un tipo de datos, puede escribir una herramienta de secuencia de comandos para hacer la conversión del tipo de datos y agregar la verificación del error en la secuencia de comandos. El siguiente código de Python muestra la idea básica.

import arcpy # Get the string and call SetParameterAsText on the output #

in_string = arcpy.GetParameterAsText(0) # Do error checking/conversion here,

converting "meters squared" # to "squaremeters" for example # Set the output

parameter # arcpy.SetParameterAsText(1, in_string)

Como se ilustra a continuación, el tipo de datos de entrada de la herramienta sería la Cadena de caracteres y el tipo de datos de salida sería el tipo de datos de destino (tal como Unidad de área). El Tipo de parámetro de salida es Derivado.

Convertir los datos en un archivo

Una técnica que pueda utilizar para los espacios de trabajo basados en la carpeta (geodatabase de archivos, coberturas y shapefiles) es darle la orden al usuario de que utilice la utilidad de compresión ZIP para hacer un archivo .zip fuera de un espacio de trabajo y a continuación introduzca el archivo .zip en la herramienta. Dentro del

servicio de geoprocesamiento, puede utilizar la secuencia de comandos descomprimir (ver a continuación) para descomprimir el archivo en un espacio de trabajo y proceder

desde ahí. Esto también sucede con las salidas: puede crear un archivo .zip de un

espacio de trabajo y utilizarlo para la salida.

A continuación hay vínculos para las dos secuencias de comandos Python, zip.py y unzip.py.

La secuencia de comandos zip.py toma un espacio de trabajo de entrada (geodatabase de archivos, una carpeta que contiene coberturas o una carpeta que contiene shapefiles: cualquiera excepto una geodatabase personal o corporativa) y un nombre de archivo de salida y crea un archivo ZIP comprimido. Debería agregar el sufijo .zip al nombre del archivo de salida: la secuencia de comandos no agrega

automáticamente el sufijo.

Las propiedades del parámetro son las siguientes:

Etiqueta Tipo de datos Tipo Dirección

Espacio de trabajo de entrada Espacio de trabajo Requerido Entrada

Archivo de salida Archivo Requerido Salida

Parámetros Zip.py

La secuencia de comandos unzip.py toma un archivo .zip, una ubicación de salida

(una carpeta existente) y un nombre de salida (que se convierte en una nueva carpeta) y escribe el contenido en la nueva carpeta. Si el archivo .zip contiene una geodatabase de archivos, adjunte .gdb al nombre de salida.

Etiqueta Tipo de datos Tipo Dirección

Archivo ZIP de entrada Archivo Requerido Entrada

Ubicación de salida Espacio de trabajo Requerido Entrada

Nombre de salida Cadena de caracteres Requerido Entrada

Ruta de salida Espacio de trabajo Derivado Salida

propiedades unzip.py

Para ver un ejemplo de cómo utilizar estas utilidades ZIP, consulte un ejemplo de Servicio GP: Recortar y enviar y ejemplo de Servicio GP: Datos según demanda.

Conceptos clave sobre los servicios de geoprocesamientoResource Center » Servicios de publicación » Tipos de servicios » Servicios de geoprocesamiento

Un servicio de geoprocesamiento contiene tareas de geoprocesamiento a las que se puede acceder por los clientes habilitados para Web. Las tareas se crean al publicar modelos de geoprocesamiento y herramientas de secuencia de comandos.

Hay dos formas de crear un servicio de geoprocesamiento en ArcGIS Desktop:

Publicar una caja de herramientas de geoprocesamiento. Cada herramienta en la caja de herramientas se convierte en una tarea en el servicio de geoprocesamiento.

Publicar un documento de ArcMap que contenga capas de herramienta de geoprocesamiento. Cada capa de herramienta se convierte en una tarea en el servicio de geoprocesamiento.

Se puede acceder a los servicios de geoprocesamiento y las tareas a través del Internet público y las intranets privadas y se pueden utilizar en ArcGIS Desktop, ArcGIS Explorer y en las aplicaciones Web tales como un sitio Web creado mediante el administrador de ArcGIS Server. En ArcGIS Desktop, los servicios de geoprocesamiento se pueden agregar a la ventana de ArcToolbox como una caja de herramientas y las tareas se convierten en herramientas dentro de la caja de herramientas.

El resto de este tema se trata sobre los conceptos de diseño, reglas y pautas clave con respecto a los servicios y las tareas de geoprocesamiento.

Crear un servicio de geoprocesamiento

Los clientes Web son aplicaciones sencillas: sólo ellos saben cómo enviar paquetes de datos simples a un servidor, tales como texto, números y entidades geográficas poco complicadas. Un servicio de geoprocesamiento toma estos datos simples, los procesa y devuelve alguna salida significativa y útil, tal como el área probable de evacuación para un derrame químico peligroso, el recorrido y fuerza previstos de un huracán que se avecina, un mapa de una cobertura de suelo dentro de una cuenca hidrográfica definida por el usuario, un mapa de parcelas con detalles históricos de propiedad o un permiso para una ruta de un desfile por el centro de una ciudad. Las posibilidades para estos servicios son infinitas.

El geoprocesamiento proporciona la base de herramientas ricas y poderosas desde las que puede crear un servicio que procese los datos de entrada. Si actualmente utiliza el geoprocesamiento, es posible que ya sepa cómo crear herramientas mediante modelos y secuencias de comandos. Lo que necesita

aprender es cómo diseñar la herramienta para que utilice los datos de entrada más simples posible para alcanzar la mayor audiencia posible de clientes.

Por ejemplo, suponga que tiene un modelo que calcula una cuenca hidrográfica aguas arriba desde un conjunto de puntos y extrae polígonos dentro de la cuenca hidrográfica calculada. Los parámetros de entrada para este modelo serían

Un modelo digital de elevación (DEM) ráster

Una clase de entidad de puntos

Una clase de entidad poligonal

Este modelo es adecuado para ArcGIS Desktop pero no para un servicio de geoprocesamiento. Es posible que necesite que lo modifique de la siguiente manera:

En lugar de operar en un área de estudio definida por el usuario, trabajaría en un área de estudio específica. Debido a que el modelo tiene un área de estudio conocida y opera en un DEM específico, el DEM ya no es un parámetro de entrada.

Como un servicio de geoprocesamiento, los clientes no pueden cargar las clases de entidades. En su lugar, el usuario digitalizará los puntos en la aplicación cliente que representen las corrientes de la cuenca hidrográfica. El servicio alineará estos puntos con el DEM mediante una distancia de alineación apropiada que se calculó previamente para la resolución del DEM.

En lugar de extraer los polígonos de una clase de entidad de entrada, el modelo operará en un conjunto de datos conocido, tal como polígonos de cobertura de suelo. La salida sería polígonos de cobertura de suelo dentro de la cuenca hidrográfica que se calculó. Ya no se necesita el polígono de entrada.

El modelo modificado toma las entradas simples y responde una consulta espacial específica: Para el área de estudio, ¿cuál es la cobertura de suelo dentro de la cuenca hidrográfica definida por este punto? El modelo se publicaría como un servicio de geoprocesamiento y se utilizaría en un sitio Web pensado para los administradores de suelo en el área de estudio.

Esto no quiere decir que no puede crear servicios genéricos mediante ArcGIS Server. El ejemploservicio de puntos de zona de influencia es un servicio completamente genérico que crea una zona de influencia en cualquier conjunto de entidades de puntos. ArcGIS Server es flexible y con el uso de algunas técnicas avanzadas o programación personalizada, puede crear servicios genéricos que procesen grandes datasets proporcionados por los usuarios. Pero la mayoría de los servicios se centran en áreas geográficas específicas,

responden consultas espaciales específicas y trabajan en clientes sencillos. El diseño de los servicios de geoprocesamiento de ArcGIS Server se basa en la necesidad de crear y publicar estos tipos de servicios centrados.

Configuraciones del servicio de geoprocesamiento

Los servicios de geoprocesamiento se pueden crear al publicar dos recursos de ArcGIS Desktop diferentes; una caja de herramientas de geoprocesamiento o un documento de ArcMap (.mxd) que contenga capas de herramienta.

Cuando publica una caja de herramientas, todas las herramientas dentro de la caja de herramientas se convierten en tareas de geoprocesamiento dentro del servicio de geoprocesamiento.

Cuando publica un documento de ArcMap, todas las capas de herramienta dentro del documento de mapa se convierten en tareas de geoprocesamiento dentro del servicio de geoprocesamiento. (Las capas de herramienta se crean al arrastrar y soltar las herramientas en la tabla de contenido de ArcMap).

Cuando publica un documento de ArcMap que contiene capas de herramienta, también puede especificar que desea que el documento de ArcMap se convierta en un servicio de mapas que se utilizará para dibujar la salida de las tareas. Un servicio de mapas que dibuja las salidas de las tareas se denomina un servicio de mapas de resultado.

Estas tres configuraciones se ilustran a continuación.

Servicio de geoprocesamiento a partir de una caja de herramientas

Cuando publica una caja de herramientas, todas las herramientas dentro de la caja de herramientas se convierten en tareas de geoprocesamiento. La salida de datos generada por las tareas se transporta nuevamente al cliente.

Servicios de geoprocesamiento con un documento de mapa de origen

Si utilizó herramientas de geoprocesamiento en una sesión de ArcMap, sabe que las herramientas a menudo pueden utilizar capas que se encontraron en la tabla de contenido de ArcMap, así como también datos en disco.

De la misma manera, la tarea de geoprocesamiento puede utilizar capas que se encontraron en el documento de mapa de origen. En este caso, el documento de mapa de origen actúa como un contenedor de capas. Puede hacer capas en los parámetros de entrada del documento de mapa de origen para su tarea. En el siguiente gráfico, la variable Datos a extraer es un parámetro de entrada que permite al usuario elegir las capas en el documento de mapa de origen.

Precaución:

Las tareas de geoprocesamiento sólo pueden acceder a las capas que se encuentran en el documento de mapa de origen, no pueden acceder a las capas que se encuentran en otros servicios de mapas o en la aplicación cliente.

Hay beneficios de rendimiento para utilizar las capas desde un documento de mapa de origen en los procesos de modelo o de secuencia de comandos. La siguiente ilustración muestra un modelo que utiliza un dataset de red, StreetsNetwork, para construir una capa de análisis de ruta. La variable StreetsNetwork puede hacer referencia a una capa (lo que hace en

este caso) o a un dataset en disco. Abrir un dataset de red es costoso en relación con otros tipos de datasets debido a que los datasets de red contienen varias estructuras de datos avanzadas y tablas que se deben leer y almacenar en la memoria caché. Al utilizar la capa en lugar del dataset, hay una ventaja de rendimiento, debido a que ArcMap abre el dataset una vez, almacena en la memoria caché las propiedades básicas del dataset y mantiene el dataset abierto. Cuando se ejecuta el modelo, no se tiene que volver a abrir el dataset, ya que el documento de mapa de origen ya lo abrió; una mejora en el rendimiento. Por el contrario, si la variable StreetsNetwork hace referencia directamente al dataset, el dataset

se abrirá cada vez que se ejecute el modelo; una degradación del rendimiento.

Para el análisis de red, siempre se quiere el dataset de red como una capa en el documento de mapa de origen y utilizar la capa en las variables de modelo. Para otros tipos de datasets, tales como las entidades y los rásteres, la ventaja de rendimiento de utilizar capas en el documento de mapa de origen es muy pequeña.

Servicios de geoprocesamiento con un servicio de mapas de resultado

Los servicios de geoprocesamiento pueden tener un servicio de mapas de resultado para crear una imagen de mapa digital de resultados de tarea. Los mapas digitales contienen representaciones visuales de datasets geográficos que comunican la información. Los mapas digitales se transportan a través de la Web como imágenes (tales como una imagen .jpg). Una imagen de

mapa, byte por byte, contiene mucha más información interpretable por el hombre que las entidades sin procesar en una clase de entidad. Las imágenes de mapa también son manejables: se comprimen fácilmente, se pueden teselar en partes manejables y hay métodos establecidos para trasportarlas y visualizarlas a través de la Web.

Un servicio de mapas de ArcGIS Server crea las imágenes de mapa y son el resultado de publicar un documento de ArcMap (.mxd). Debido a las

características de una imagen de mapa, es posible que desee crear una para los resultados de la tarea de geoprocesamiento y transportar la imagen a

través de la Web en lugar de transportar el dataset o datasets de resultados. Los servicios de geoprocesamiento pueden tener un servicio de mapas de resultado que ArcGIS Server utiliza para crear imágenes de mapa de los datos de salida.

Los servicios de mapas de resultado deben utilizarse cuando

El resultado de la tarea es un dataset (potencialmente) grande.

El tipo de datos de la salida no es compatible con el cliente, tal como los rásteres en ArcGIS Explorer. En este caso, utilice el servicio de mapas de resultado para visualizar la salida.

Desea proteger el resultado de la tarea al permitir que sólo se pueda visualizar como un mapa y no se pueda descargar como un dataset.

Tiene cartografía compleja que debe dibujar el servicio de mapas de resultado y no el cliente.

Cuando utilice los servicios de mapas de resultado, es importante tener en cuenta que hay dos servicios: el servicio de geoprocesamiento y el servicio de mapas de resultado. Estos dos servicios se ejecutan independientemente el uno del otro. Cuando se ejecuta la tarea, ArcGIS Server ejecuta la tarea de geoprocesamiento primero, y después ejecuta el servicio de mapas resultante para dibujar la salida del servicio de geoprocesamiento. Debido a este orden de ejecución, el servicio de mapas resultante necesita datasets en disco, que el servicio de geoprocesamiento produce. Esto significa que la salida de las tareas en el servicio de geoprocesamiento deben ser datasets en disco, no capas o datasets en la memoria.

Mapas base para el servicio de geoprocesamiento

Para la mayoría de las tareas de geoprocesamiento, el usuario necesitará algún tipo de mapa base para utilizar como una referencia geográfica. Puede ser un mapa base de carreteras, lugares poblados, puntos de interés o cualquier otra entidad.

El servicio de geoprocesamiento probablemente depende de un mapa base determinado para guiar al usuario cuando introduce las ubicaciones. Por ejemplo, el usuario introduce un punto que debe caer dentro de un límite de parcela en una ciudad específica, por lo tanto el mapa base debe mostrar los límites de parcela de esa ciudad. Además, el servicio sólo puede funcionar dentro de una determinada área de estudio, en lugar de un servicio que funciona globalmente. El área de estudio se puede considerar como la extensión de geoprocesamiento debido a que el servicio sólo tiene conocimiento de los datos dentro del área de estudio.

Nota:

Un error común es utilizar el servicio de mapas de resultado para visualizar un mapa base para el servicio de geoprocesamiento.Por ejemplo, si el usuario identifica una parcela al señalar y hacer clic y la tarea dibuja la parcela identificada simbolizada por algún atributo de la parcela, su pensamiento inicial sería utilizar el servicio de mapas de resultado para visualizar los datos de parcela de entrada (el mapa base) así como también la parcela que se identificó. Hay dos razones por las que no debería utilizar el servicio de mapas de resultado como un mapa base:

Cuando el servicio de mapas de resultado se agrega a la aplicación, todas las capas en el servicio de mapas están disponibles para la visualización. Estas capas incluyen las capas de herramientas de geoprocesamiento para dibujar la salida, las capas que pueden contener datos confidenciales, o las capas utilizadas por el servicio de geoprocesamiento pero que no tienen sentido para el usuario (como las capas de herramientas).

Los mapas base son multiescala y de resolución múltiple. Cuando se acerca y se aleja, el mapa base cambia, mostrando los detalles a grandes escalas y agregando los detalles en las generalizaciones a pequeñas escalas (por ejemplo, los ríos cambian de entidades de línea a pequeña escala a entidades poligonales a grandes escalas). Construir un mapa base de resolución múltiple y multiescala que dibuja rápidamente no es algo de lo que el servicio de mapas de resultado deba ocuparse; su trabajo es dibujar las salidas. Debe mantener el diseño y la implementación de los servicios de mapas de mapa base separado del diseño y la implementación de los servicios de mapas de resultado.

Al volver a la aplicación de parcela para señalar y hacer clic, debería tener un servicio de mapas para visualizar los datos de parcela (el mapa base) y utilizar el servicio de mapa de resultado para volver a visualizar la parcela, quizás codificada por colores por algunos atributos. Los dos servicios de mapas utilizan el mismo dataset de parcela (no hay problemas con esto) y usted divide el trabajo al visualizar un mapa base de referencia desde el trabajo de visualizar los resultados.

Otras consideraciones para tener en cuenta al diseñar los servicios de mapas son las características del cliente. Para una aplicación Web, tiene control completo sobre qué tareas de mapas y de geoprocesamiento estarán disponibles en la aplicación y los servicios de mapas de resultado no deben aparecer como una capa de mapa en la tabla de contenido de la aplicación Web. Los clientes de ArcMap y ArcGIS Explorer son un poco más problemáticos debido a que, en la práctica, los usuarios pueden buscar cualquier servicio de mapas o de geoprocesamiento y terminar con faltas de coincidencia entre la extensión del mapa base y la extensión de geoprocesamiento. Cuando publica los servicios, no hay ninguna opción donde puede especificar "cuando agrega

este servicio de geoprocesamiento, también agregue estos otros servicios de mapa". Sin embargo, puede distribuir los documentos de ArcMap (.mxd) o los documentos de ArcGIS Explorer (.nmf) que contienen los servicios correctos.

También puede proporcionar la documentación de tarea incorporada para los servicio y tareas de geoprocesamiento al detallar qué servicios de mapas se necesitan. Todos los clientes pueden acceder a la documentación de tarea.

Tipos de datos y capacidades del cliente

ArcGIS Explorer es una aplicación cliente sencilla, es decir que tiene una pequeña instalación, a diferencia de ArcGIS Desktop. Las aplicaciones Web son sitios Web a los que se puede acceder con un navegador de Internet. Los navegadores son clientes muy sencillos (o ligeros). Debido a la naturaleza sencilla de estos clientes, todo el rango de los tipos de datos de entrada y de salida que encuentre en ArcGIS Desktop no están disponibles para estos clientes (de lo contrario, el cliente podría ser pesado como ArcGIS Desktop). Por ejemplo, los clientes sencillos no son compatibles con los rásteres como entrada para una tarea de geoprocesamiento.

Nota:

Debido a que los procesos dentro del modelo o secuencia de comandos que se publicó se ejecutan en el servidor donde todos los tipos de datos están disponibles, puede utilizar cualquier tipo de datos para los procesos del modelo o secuencia de comandos, como se ilustra a continuación. Sólo están limitados los tipos de datos del parámetro de entrada y de salida. Cualquier tipo de datos al que se pueda acceder desde el servidor se puede utilizar por los procesos del modelo o secuencia de comandos.

La tabla siguiente resume los tipos de datos de parámetro de entrada clave para los tres clientes.

Tipo de datos del parámetro de entrada

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Conjunto de entidades Sí Sí Sí

Conjunto de registros Sí Sí Sí

Clase de entidad No (pero la Clase de entidad de entidad de entrada es compatibleindirectamente con el tipo de datos del Conjunto de entidades).

No No

Tabla No (pero la entrada de Tabla es compatibleindirectamente con el tipo de datos del Conjunto de registros).

No No

ráster Sí No No

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Sí Sí Sí

Archivo (como un archivo .zip o.xml)

Sí Sí Sí

Capa (cualquier tipo de capa: por ejemplo, capa de entidad, capa ráster, capa de Network Analyst)

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Sólo las capas que se encuentran en el servicio de mapas resultante o el documento de mapa de origen

Tipos de entrada para los servicios de geoprocesamiento

Cualquier tipo de datos que no esté enumerado anteriormente se convierte a un tipo de datos de cadena de caracteres o no está permitido. El tema Tipos de datos de entrada y de salida proporciona más detalles sobre los tipos de datos para los servicios de geoprocesamiento.

De la misma manera, los modelos y secuencias de comandos toman las clases de entidades y las tablas como entrada, debido a que estos son los tipos de datasets más comunes que se utilizan con el geoprocesamiento. Esto significa que estos modelos y secuencias de comandos existentes deberán modificarse antes de publicarlos como tareas de geoprocesamiento. Si el modelo o la secuencia de comandos toma una entrada de clase de entidad, puede modificarla para que tome un conjunto de entidades en su lugar. Si el modelo toma una tabla como entrada, puede modificar el modelo para que tome un conjunto de registros en su lugar.

La tabla siguiente resume los tipos de datos de parámetro de salida clave para los tres clientes.

Tipo de datos del parámetro de salida

¿Compatible con los clientes de ArcGIS Desktop?

¿Compatible con el cliente de ArcGIS Explorer?

¿Compatible con los clientes de la aplicación Web?

Clase de entidad Sí Sí Sí

ráster Sí No (sólo se puede visualizar en el mapa por medio del uso de un servicio de mapas resultantes)

No (sólo se puede visualizar en el mapa por medio del uso de un servicio de mapas resultantes)

Tabla Sí No (los servicios que tienen un tipo de datos de tabla como un parámetro de salida no se mostrarán en la lista de tareas disponibles).

Tipos estándar (como Long, Double, Boolean, Date, String) y unidad lineal (por ejemplo "1000 metros")

Sí (se visualizan en el resultado del servicio que se encuentra en la ficha Resultados de la ventana de ArcToolbox)

Sí (se visualizan en el Resultado de tarea)

Archivo Sí Sí Sí

Datos de salida

Uso concurrente de datos: %scratchworkspace%

Una tarea de geoprocesamiento se puede utilizar simultáneamente (al mismo tiempo) por varios usuarios. Para los datos que se leen por el modelo o la secuencia de comandos, no hay problemas de concurrencia; todos los usuarios concurrentes pueden leer los mismos datos. Sin embargo, los datos creados o actualizados por el servicio requieren que comprenda los problemas con respecto a los escritores concurrentes.

Crear nuevos datos

Las tareas de geoprocesamiento generalmente crean datos intermedios y datos de salida. ArcGIS Server proporciona un mecanismo que garantiza que no hay problemas de concurrencia con los datos intermedios y de salida. Cuando se ejecuta una tarea, ArcGIS Server crea una carpeta de trabajos única en un directorio de trabajos. Esta carpeta de trabajos contiene una carpeta llamada trabajo temporal, que a su vez contiene una geodatabase de archivos llamada trabajo temporal, como se ilustra a continuación. Después de crear esta estructura de carpetas, ArcGIS Server establece la variable de entorno del espacio de trabajo temporal de geoprocesamiento en la carpeta trabajo temporal (no la geodatabase de trabajo temporal, sino la carpeta). El modelo y la secuencia de comandos pueden fácilmente descubrir y utilizar este espacio de trabajo temporal al colocar signos de porcentaje alrededor del nombre de la variable de entorno (%scratchworkspace%).Debe escribir

los datos intermedios y los datos de salida en la carpeta de trabajo temporal o en la geodatabase de trabajo temporal.

Hay dos métodos que puede utilizar para asegurarse de que los datos se escriban en la carpeta o geodatabase de trabajo temporal:

En ModelBuilder, haga clic con el botón derecho del ratón en cualquier variable de datos intermedios y elija Administrado.

Precaución:

No establezca las variables de salida como administradas, sólo las variables intermedias.

Utilice la sustitución de variable (%scratchworkspace%) para las rutas. Por

ejemplo:

%scratchworkspace%/templines.shp

%scratchworkspace%/scratch.gdb/outWatershed

También puede escribir datos intermedios en la memoria. Escribir datos en la memoria es más rápido que escribirlos en el disco. Si escribe los datos intermedios en la memoria, no es necesario que haga la variable del modelo intermedia o administrada porque los datos se eliminarán una vez que se ejecute la tarea.

Actualizar datos existentes

Cualquier tarea que actualice los datos existentes es de particular importancia. Por ejemplo, es posible que una tarea dentro de un servicio actualice una tabla o clase de entidad existente, al agregar nuevas filas o entidades (mediante la herramienta Adjuntar, por ejemplo), o al actualizar los atributos existentes (mediante la herramienta Calcular campo, por ejemplo). Si el servicio de geoprocesamiento se configura para permitir varias instancias simultáneas (usuarios) y se están ejecutando varias instancias, es posible que tenga una colisión de varias instancias que tratan de actualizar el mismo dataset. En estos casos, debe limitar la cantidad de instancias a una cuando configura el servicio. De esta forma, ArcGIS Server hará una cola de los requisitos y sólo accederá a los datos una instancia a la vez. Otro problema es el bloqueo: si está actualizando un dataset y el dataset también es una capa en un servicio de mapas, el servicio de mapas bloqueará los datos y fallará la actualización. No cree servicios de mapas que visualizan datos que se actualizan por otro servicio.

Simbolizar datos

Tiene dos opciones para dibujar los datos de salida de una tarea:

El cliente dibuja los datos.

El servicio de mapas resultantes dibuja los datos.

Cuando el cliente dibuja los datos de salida, se envían al cliente dos elementos de información: los datos y una descripción de dibujo de capa. La descripción de dibujo de capa contiene la información que especifica en la ficha Simbología de un cuadro de diálogo Propiedades de capa. Esta información incluye cómo agrupar datos (la simbología de capa) y qué símbolos utilizar (tipos de símbolo). Sólo ciertas simbologías de capa y tipos de símbolo son compatibles con los clientes.

Cuando un servicio de mapas de resultado dibuja los datos, se utilizan la simbología de capa y los tipos de símbolo que se encuentran en la capa de herramienta correspondiente. Cuando utiliza un servicio de mapas de resultado, puede utilizar cualquier simbología de capa y tipo de símbolo ya que ArcMap (que se ejecuta en el servidor) dibujará los datos y transportará una imagen del mapa completo de vuelta al cliente. Las capacidades del cliente no afectan cómo ArcMap dibuja el resultado.

Más información acerca de definir la simbología de salida para las tareas de geoprocesamiento

Validación

Si ya utilizó herramientas de geoprocesamiento en ArcGIS Desktop, probablemente haya visto de qué manera las herramientas de geoprocesamiento validan las entradas. Un ejemplo de validación es una lista de campos que cambian cuando cambia una tabla de entrada.

Otros ejemplos de validación incluyen advertencias ( ) y errores ( ), el cambio de valores predeterminados en base a los datos de entrada y la habilitación o deshabilitación de los parámetros.

Nota:

No ocurre ninguna validación con las tareas de geoprocesamiento. Por ejemplo, supongamos que crea un modelo que tiene un parámetro de capa de entrada y un parámetro de campo de entrada. La lista de campos que se muestra en el parámetro de campo depende del valor del parámetro de capa. En ArcGIS Desktop, si se cambia la capa, la lista de campos cambia. Este no es el caso con una tarea:

La lista de campos contendrá la lista en el momento en que la publique.

Si el usuario de la tarea elige otra capa, la lista de campos no se actualizará.

Seguridad

Su servidor SIG representa una inversión de esfuerzo y recursos que desea proteger. ArcGIS Server contiene mecanismos de seguridad que pueden evitar que usuarios no autorizados accedan a sus servicios y aplicaciones. También puede utilizar ArcGIS Server para configurar niveles de acceso para distintos grupos dentro de su organización.

Hay dos propiedades de un servicio de geoprocesamiento que proporcionan seguridad:

Puede limitar la cantidad de entidades o registros que devolverá el servicio. Para evitar que el usuario descargue cualquier entidad o registro, puede establecer este límite a cero.

Cuando se ejecuta un servicio de geoprocesamiento, este escribe mensajes que el usuario puede visualizar. Algunos de estos mensajes contienen rutas hacia datos y es posible que no desee que el usuario vea estas rutas. Puede desactivar el envío de mensajes de un servicio de geoprocesamiento.

6.2.- Entrada y salida de datos

La entrada de datos consiste en colocar en la memoria principal datos

provenientes desde algún dispositivo de entrada( teclado, disco, etc. ) para que

la computadora, de acuerdo a un programa, realice una tarea.

La salida de datos consiste en enviar datos ( que, generalmente, son el

resultado de un procesamiento) desde la memoria principal hacia un

dispositivo de salida ( pantalla, impresora, disco, etc.).

La siguiente figura muestra un esquema conceptual del equipo de cómputo.

Esquema conceptual del equipo de cómputo

La consola

En los albores de la computación, el teclado y la pantalla formaban la consola.

En la actualidad, a la combinación de teclado y pantalla se les sigue

considerando como a la antigua consola.

En C#, la entrada y la salida de datos se pueden manejar a través de los

métodos de la clase Console.

Entrada de datos desde el teclado

Para la entrada de datos por medio del teclado se pueden utilizar los métodos

Read( ) y ReadLine( ) de la clase Console.

Ejemplos:

System.Console.Read( ) ; // Lee el siguiente carácter desde el flujo de la

entrada estándar.

System.Console.ReadLine( ) ; // Lee la siguiente línea de caracteres desde el

flujo de la entrada estándar.

Salida de datos hacia la pantalla

La salida de datos hacia la pantalla se puede realizar utilizando los métodos

Write y WriteLine( ) de la clase Console.

Ejemplos:

System.Console.Write( ) ; // Escribe el siguiente carácter en el flujo de la salida

estándar (la pantalla).

System.Console.WriteLine( ) ; // Escribe la siguiente línea de caracteres en el

flujo de la salida estándar.