Ejemplo de servicio GP: Datos según demanda

Complejidad: Principiante Requisitos de datos: Configuración de datos de tutorial de ArcGIS

Carpeta

DataOnDemand

Propósito

Utilizar un polígono digitalizado por el usuario, recorta datasets en una geodatabase de archivos, al generar shapefiles, y después crea un archivo .zip que se envía por correo electrónico al usuario.

Servicios

PortlandDataMapService (servicio de mapas), DataOnDemand (servicio de geoprocesamiento).

Tareas de geoprocesamiento

ClipZipAndEmail

Entradas

Área de interés (Establecer entidad poligonal) y dirección de correo electrónico para enviar los datos.

Salidas

aoizip.zip, un archivo comprimido que contiene los datos.

Datos

El ejemplo utiliza un dataset pequeño de la ciudad de Portland, Oregon.

Extensiones

Ninguna.

Importante

Este servicio se aloja en el servidor de muestra de Esri; ver nota siguiente. Este es un servicio de recortar y enviar, como se describió en el ejemplo de recortar y enviar.

Acerca de este ejemplo

Carpeta correspondiente

C:\arcgis\ArcTutor\GP Service Examples\DataOnDemand contiene las herramientas y los datos.

Acerca de este ejemplo

Este servicio DataOnDemand es otro ejemplo de un servicio de recortar y enviar. Antes de explorar este servicio, primero debería leer el ejemplo de recortar y pegar, debido a que las entidades y capacidades de este servicio se comparan con ese servicio, como se describe brevemente en la siguiente tabla. Si está creando su propio servicio de recortar y enviar, es posible que desee combinar las entidades y capacidades de los dos servicios en su servicio.

Ejemplo de Recortar y enviar

Este ejemplo

El usuario puede elegir qué capas descargar.

Se descarga un conjunto fijo de datos.

Se puede especificar la referencia especial de los datos de salida.

No se puede especificar la referencia espacial; se establece en la referencia espacial de los datasets que se recortan.

Se puede especificar el formato de salida.

Sólo los shapefiles generan la salida.

Utiliza modelos, secuencias de comandos y capas de herramienta. El servicio se publica mediante un documento de mapa.

No se utilizan modelos, sólo secuencias de comandos. Se publica la caja de herramientas en lugar de un documento de mapa.

Se recortan las capas del documento de mapa.

Se recortan los datasets. (Debido a que no hay ningún documento de mapa de origen que contenga capas, las capas no se pueden utilizar, sólo los datasets).

No se descarga el área de interés (el polígono de clip que el usuario digitaliza).

Se descarga el área de interés.

La salida no se puede enviar por correo electrónico.

La salida se puede enviar por correo electrónico al especificar un nombre de servidor de correo electrónico en la secuencia de comandos ClipZipAndEmail (el archivo de origen es DataOnDemand/Scripts/zipandemail.py).

Comparación entre el ejemplo de Recortar y enviar y este ejemplo de DataOnDemand

Otras entidades de este servicio incluyen

Esri aloja este servicio

Este servicio se aloja en los servidores de ArcGIS Online de Esri. Puede probar este servicio de la siguiente forma:

  1. Agregue http://sampleserver1.arcgisonline.com/arcgis/services como un servidor ArcGIS.
  2. Agregue http://sampleserver2.arcgisonline.com/arcgis/services como un servidor ArcGIS.
  3. En ArcMap, agregue el servicio de mapas Portland/Portland_Esri_LandBase_AGO desde sampleserver1.
  4. Agregue el servicio de geoprocesamiento Portland/Esri_CadastralData_Portland de sampleserver2 a ArcToolbox.
  5. Expanda la caja de herramientas Esri_CadastralData_Portland y ejecute la tarea ClipAndShip.

Las secuencias de comandos y herramientas de la carpeta DataOnDemand son las mismas que aquellas utilizadas por la tarea ClipAndShip en el servicio de geoprocesamiento Esri_CadastralData_Portland. Los datos utilizados en este ejemplo, que se encuentran en DataOnDemand/ToolData/Portland.gdb, son un pequeño subconjunto de los datos utilizados en el servicio de mapas Portland_Portland_Esri_LandBase_AGO.

NotaNota:

Los servicios de mapas y de geoprocesamiento que se encuentran en sampleserver1 y sampleserver2 pueden cambiar en el futuro. No hay garantía de que los servicios que se describieron anteriormente estén siempre disponibles.

Datos

Los datos son de una pequeña área de la ciudad de Portland, Oregon y se encuentran enC:\arcgis\ArcTutor\GP Service Examples\DataOnDemand\ToolData\Portland.gdb.

La herramienta ClipZipAndEmail utiliza una variable Conjunto de entidades, la que a su vez necesita un esquema para definir los tipos de entidades y campos. El esquema puede encontrarse en C:\arcgis\ArcTutor\GP Service Examples\DataOnDemand\ToolData\Templates.gdb.

La carpeta ToolData también contiene Mapofzip.mxd, que se incluye en el archivo ZIP y muestra los datos que se recortaron y se enviaron.

Secuencias de comandos

La caja de herramientas DataOnDemandTools contiene una herramienta de secuencia de comandos, ClipZipAndEmail. El origen de esta herramienta de secuencia de comandos es DataOnDemand/Scripts/zipandemail.py.

Antes de utilizar la herramienta ClipZipAndEmail, debe editar el código y proporcionar el nombre del servidor de correo electrónico. (Puede editar la fuente de Python directamente en una aplicación como PythonWin o hacer clic con el botón derecho del ratón en la herramienta secuencia de comandos y, a continuación, hacer clic en Editar). Su administrador de sistema debe poder proporcionarle el nombre del servidor de correo electrónico.

Algunas propiedades y entidades importantes de esta secuencia de comandos se describen a continuación:

Publicar

PortlandDataMapService se publica como un servicio de mapas.

La caja de herramientas DataOnDemandTools se publica como un servicio de geoprocesamiento.

Configurar el servicio

Para configurar este servicio para los datos, deberá editar la herramienta de secuencia de comandos ClipZipAndEmail. El origen de esta herramienta de secuencia de comandos es DataOnDemand/Scripts/zipandemail.py. Puede editar la fuente de Python directamente en una aplicación como PythonWin o hacer clic con el botón derecho del ratón en la herramienta secuencia de comandos y, a continuación, hacer clic en Editar.

Deberá cambiar la ubicación de los datos y la lista de datasets. En la rutina principal,

if __name__ == '__main__':

Ubique la definición de la variable dataloc y cámbiela:

 global dataloc; dataloc = os.path.dirname(sys.path[0]) + g + "tooldata" + g + "portland.gdb" + g

La ubicación de los datos está relacionada con la ubicación de la secuencia de comandos.

Más información sobre el uso de la ubicación de la secuencia de comandos para crear rutas

A continuación, cambie la lista de los datasets que va a recortar, que se encuentran en este fragmento de código:

    ds = ["Streets" + g + "streets", \             "Water" + g + "StreamRoute", "Water" + g + "floodplain", "Water" + g + "riv_fill", \             "Transit" + g + "railroad", \             "Census" + g + "blockgrp", \             "Develop" + g + "Buildings", \             "Land" + g + "zoning", "Land" + g + "Parks", \             "Places" + g + "schools", "Places" + g + "hospital"]

Por último, deberá proporcionar el nombre del servidor de correo electrónico en la secuencia de comandos sendemail.py. El código que debe modificar está cerca de la secuencia de comandos:

def send_mail(send_from, send_to, subject, text, f=""):     assert type(send_to)==list      # Provide the name of your email server below     #     server = "ouremailserver.somewhere.com"

Temas relacionados


7/11/2012