Ejemplo de servicio GP: Seleccionar datos
Carpeta |
SelectingData |
Propósito |
Muestra varias formas de seleccionar los datos según la consulta de atributos o la consulta de ubicación. |
Servicios |
|
Tareas de geoprocesamiento |
Varias (Consulte los siguiente modelos). |
Entradas |
Varias según el modelo; generalmente una cadena de caracteres de consulta o un conjunto de entidades. |
Salida |
Datos seleccionados |
Datos |
Utiliza un dataset de un área mínima en la ciudad de Portland, Oregon. |
Extensiones |
Ninguna |
Acerca de estos servicios
Una tarea común para los servicios de geoprocesamiento es seleccionar un subconjunto de datos en base a una consulta de atributos o a una consulta espacial. Los modelos en este ejemplo muestran varias formas útiles de seleccionar los datos. Las herramientas de geoprocesamiento principales que se utilizan es estos modelos son Seleccionar capa por atributo y Seleccionar capa por ubicación. Las dos herramientas toman las capas como entrada. La salida es la capa de entrada actualizada que contiene las entidades seleccionadas.
Debido a que Seleccionar capa por atributo y Seleccionar capa por ubicación generan las salidas en capas (en lugar de datasets), debe tener en cuenta cómo ArcGIS Server maneja las tareas que generan salidas en capas. Recuerde que hay tres configuraciones del servicio de geoprocesamiento, se muestran a continuación:
En las primeras dos configuraciones, cuando ArcGIS Server ejecuta una tarea que genera una salida en una capa, éste lee las entidades que se seleccionaron desde la capa y transporta las entidades seleccionadas de vuelta al cliente.
En la tercera configuración, hay dos servicios: el servicio de geoprocesamiento y el servicio de mapas de resultado. Los 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 de resultado, que dibuja la salida del servicio de geoprocesamiento, al enviar la imagen de mapa de los datos de salida de vuelta al cliente. 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, no capas. Las capas, que se permiten en las primeras dos configuraciones, no funcionan con la configuración del servicio de mapas de resultado.
En este ejemplo, encontrará dos pares de caja de herramientas/documento de mapa; SelectingData (para publicar como un servicio de geoprocesamiento con un documento de mapa de origen) y SelectingDataRMS (para publicar como un geoprocesamiento con un servicio de mapas de resultado). Las herramientas en la caja de herramientas SelectingDataRMS darán como resultado datasets en disco, mientras que las herramientas en la caja de herramientas SelectingData darán como resultado capas. En general, las herramientas en la caja de herramientas SelectingDataRMS demoran un poco más de tiempo en ejecutarse debido a que deben copiar los datos en el disco.
De usted depende que servicio elegirá para publicar: SelectingData o SelectingDataRMS. Generalmente, se publica un servicio de mapas de resultado cuando ninguno de lo siguiente es verdadero:
- El conjunto de entidades seleccionado puede ser grande y no desea transportar una gran cantidad de entidades de vuelta al cliente.
- Desea proteger los datos y sólo dejar que el cliente vea una imagen de mapa de los datos.
- Cuenta con cartografía avanzada que sólo ArcMap puede dibujar, ninguna otra aplicación cliente.
Datos
Los datos son de una pequeña área de la ciudad de Portland, Oregon y se encuentran enC:\arcgis\ArcTutor\GP Service Examples\SelectingData\ToolData\Portland.gdb. Esta geodatabase de archivos se comprimió para guardar espacio mediante la herramienta Comprimir datos de geodatabase de archivos. No puede realizar modificaciones a una geodatabase de archivos comprimidos. Si necesita realizar modificaciones, utilice la herramienta Descomprimir geodatabase de archivos.
Varios de los modelos utilizan variables de conjunto de entidades y de conjunto de registros, que necesitan esquemas para definir los tipos de entidades y campos. Estos esquemas pueden encontrarse en C:\arcgis\ArcTutor\GP Service Examples\SelectingData\ToolData\Templates.gdb.
Vista general de los modelos
Caja de herramientas y documento de mapa SelectingData
Conjunto de herramientas |
Herramienta |
Descripción |
---|---|---|
Seleccionar por atributos |
||
Seleccionar lotes impositivos con un valor mayor que |
Selecciona todos los lotes impositivos cuyo valor total es mayor que el valor que introdujo el usuario. |
|
Seleccionar lotes impositivos con un valor mayor que (con resumen) |
Igual que el anterior, pero además resume el valor total de todos los lotes seleccionados. |
|
Seleccionar lote impositivo por dirección (método de atributo) |
Dada una dirección, selecciona el lote impositivo. |
|
Seleccionar vecindad |
Selecciona una vecindad desde una lista desplegable. |
|
Seleccionar capa por área |
Permite que el usuario seleccione primero una capa, y después seleccione las entidades en base al área. |
|
Lista de correo |
Selecciona un lote impositivo por dirección, selecciona todos los lotes impositivos dentro de una distancia determinada, después produce una lista de correo para todos los lotes impositivos seleccionados. |
|
Seleccionar por ubicación |
||
Seleccionar lote impositivo por dirección (método de ubicación) |
Dadas las direcciones, crea una entidad de punto para cada dirección y utiliza estas entidades de punto para seleccionar los lotes impositivos. |
|
Seleccionar lotes impositivos por vecindad |
Selecciona los lotes impositivos en base a un polígono de vecindad seleccionada. |
|
Seleccionar lotes impositivos por vecindad (optimizado) |
Igual que el anterior, pero utiliza un dataset preprocesado para realizar la selección. |
Caja de herramientas y documento de mapa SelectingDataRMS
Las herramientas en la caja de herramientas SelectingDataRMS realizan el mismo trabajo que las herramientas en la caja de herramientas SelectingData. La diferencia principal es que las herramientas SelectingDataRMS generan salidas en clases de entidades que el servicio de mapas de resultado puede dibujar. La herramienta Copiar entidades se utiliza para copiar las entidades de la capa a la clase de entidad. A continuación se ilustra el modelo Seleccionar lotes impositivos con un valor mayor que mediante la herramienta Copiar entidades. Todas la herramientas de la caja de herramientas siguen un patrón similar.
Índices espaciales y de atributos
Cuando realiza consultas a menudo en un campo determinado, como hacen los servicios, la velocidad de las consultas puede aumentar al crear índices en los campos de consulta. Por ejemplo, la tarea Seleccionar lotes impositivos con un valor mayor que realiza consultas al campo TOTALVAL, por lo tanto para optimizar las consultas, TOTALVAL tiene un índice de atributos. Puede utilizar la herramienta Agregar índice del atributo para crear los índices de atributos.
Del mismo modo, si realiza consultas espaciales, los índices espaciales aumentarán la velocidad con que se pueden ubicar las entidades. Los índices espaciales se crean y se mantienen automáticamente para las clases de entidades en una geodatabase, pero no para los shapefiles.
Trabajar con selecciones de capa y capas de herramienta
El documento de mapa SelectingData contiene las capas de herramienta para cada una de las herramientas que se enumeraron anteriormente. La subcapa que se encuentra en la capa de herramienta (la salida de la herramienta) es la misma que la capa de entrada; no es una capa independiente. Debido a que no es independiente, si cambia las propiedades de la capa de entrada original o la subcapa de salida, las otras propiedades de capa también cambian. Como se ilustra a continuación con la herramienta Seleccionar lotes impositivos con un valor mayor que, tanto la capa de entrada como la de salida son Lotes impositivos. Si hace clic con el botón derecho del ratón en la capa de Lote impositivo (la capa de entrada) en la tabla de contenido de ArcMap y cambia la simbología, cambiará la simbología en las dos capas.
Cuando trabaja con las selecciones de capa (como lo hacen estas herramientas), hay unas pocas pautas que debe recordar:
- Cuando crea la capa de herramienta en ArcMap (antes de la publicación), la subcapa (la salida del modelo) siempre será una capa con el mismo nombre que la capa de entrada, independientemente del nombre de la variable de salida en el modelo. La simbología será la misma que la de la capa de entrada.
- Cuando ejecuta la tarea del servidor (después de la publicación), la capa de salida será el nombre de la variable del modelo.
Crear expresiones mediante la sustitución de variables
Las expresiones de selección generalmente requieren una entrada del usuario. Como se muestra en el siguiente modelo Seleccionar lotes impositivos con un valor mayor que, la entrada del usuario es la variable Valor total mayor que. Es una variable doble que se creó de la siguiente forma:
- En ModelBuilder, haga clic con el botón derecho del ratón en el lienzo y haga clic en Crear variable
- En el cuadro de diálogo Crear variable, elija Doble como el tipo de variable.
- Haga clic en Aceptar.
- Cambie el nombre de la variable.
- Abra la variable y proporcione un valor predeterminado, si lo desea.
Cuando crea la expresión en el cuadro de diálogo de la herramienta Seleccionar capa por atributo, utilice los signos de porcentaje (%) alrededor del nombre de la variable.
Aunque no se requiere, se recomienda hacer de la variable una condición previa para el proceso que sustituye la variable. Para hacer una condición previa, siga estos pasos:
- En ModelBuilder, haga clic con el botón derecho del ratón en la herramienta y después en Propiedades.
- Haga clic en la pestaña Condiciones previas.
- Elija la variable o variables que son una condición previa para la ejecución de la herramienta.
Método de selección
Tanto la herramienta Seleccionar capa por atributo como la herramienta Seleccionar capa por ubicación para tener varias opciones para seleccionar. Por ejemplo, en lugar de crear una nueva selección, puede agregar o quitar las entidades de la selección actual. La herramienta Seleccionar capa por ubicación le permite establecer una relación espacial, tal como CONTAINS, WITHIN e INTERSECT. Los modelos de ejemplo utilizan sólo algunas de las opciones. Consulte la documentación de la herramienta Seleccionar capa por ubicación para obtener más información.
Seleccionar los datos sin capas de mapa
No necesita utilizar las capas de un documento de mapa para utilizar las herramientas Seleccionar capa por atributo y Seleccionar capa por ubicación. Puede crear una capa de entidades desde un dataset mediante la herramienta Crear capa de entidades, como se muestra a continuación.
También puede utilizar la herramienta Seleccionar para crear un dataset de las entidades seleccionadas desde un dataset; no se requiere ninguna capa.
La herramienta Seleccionar realiza una selección de atributos. Si necesita realizar una selección espacial, considere utilizar una o más de las siguientes herramientas:
- La herramienta Crear capa de entidades
- Las herramientas de la caja de herramientas Análisis, tal como Recortar o Unión espacial
SelectionUtilities
Esta caja de herramientas contiene varias herramientas de utilidad para admitir las tareas.
Herramienta |
Descripción |
---|---|
Comprobar los resultados de coincidencia |
Verifica la salida de la herramienta Geocodificar direcciones y genera un error si las direcciones no coinciden. |
Obtener 1 valor de campo |
Lee un valor de campo del primer registro de una tabla y lo genera como salida en una variable del modelo de geoprocesamiento. |
Obtener 2 valores de campo |
Igual que el anterior, pero lee dos campos y genera la salida en dos variables. |
Obtener 3 valores de campo |
Igual que el anterior, pero lee tres campos y genera la salida en tres variables. |
Superponer lotes impositivos y vecindades |
Crea el dataset que utiliza el modelo anterior Seleccionar lotes impositivos por vecindad (optimizado). |
Imprimir etiquetas de correo del lote impositivo |
Dado un conjunto seleccionado de lotes impositivos, imprime un archivo de etiquetas de correo. |
Notas sobre los modelos
Seleccionar lotes impositivos con un valor mayor que
Este es el más simple de los modelos. Selecciona todos los lotes impositivos cuyo valor total es mayor que el valor de entrada. Como se indicó anteriormente, utiliza la sustitución de variables para crear la expresión de selección.
Seleccionar lotes impositivos con un valor mayor que (con resumen)
Realiza el mismo trabajo que el modelo anterior y después agrega la herramienta Resumen de estadísticas para sumar el valor total de todos los lotes que se seleccionaron. El Resumen de estadísticas genera la salida en una tabla que la herramienta Obtener 2 valores de campo lee, una herramienta de utilidad que se encuentra en la caja de herramientas SelectionUtilities que se incluyen en este ejemplo. Es una herramienta de secuencia de comandos que genera los valores de dos campos, el Valor total de todos los lotes y la Cantidad de lotes. Estos valores, junto con los lotes impositivos que se seleccionaron, se devuelven al cliente.
La salida del Resumen de estadísticas se escribe en una tabla en la memoria en lugar de en una tabla en el disco. Escribir las tablas y las clases de entidades en la memoria es más rápido comparado con escribirlas en el disco.
Seleccionar lote impositivo por dirección (método de atributo)
Seleccionar las entidades por dirección es una tarea común. Este modelo muestra un método de seleccionar las entidades por dirección (otro método se muestra a continuación).
Elemento del modelo |
Descripción |
---|---|
Localizador TaxLot |
Un localizador de direcciones para la clase de entidad TaxLots. Este localizador utiliza el estilo de direcciones únicas de EE.UU. |
Dirección |
Esta es una variable que se establece por registro. La plantilla es ToolData/templates.gdb/Address. Para obtener algunas direcciones de muestra en el área de estudio, consulte ToolData/sample addresses.txt. |
Toma una tabla que contiene las direcciones y genera la salida en una clase de entidad de puntos de la ubicación de la dirección. También se genera la salida en un campo de estado. Este campo contendrá una M si se encontró la dirección. |
|
Comprobar los resultados de coincidencia |
Una herramienta personalizada de secuencia de comandos que se encuentra en la caja de herramientas SelectionUtilities que se incluye en este ejemplo. Comprueba que la dirección coincidió correctamente. |
Correcto |
Salida de Comprobar los resultados de coincidencia. Verdadero si había una entrada de dirección y la dirección coincidió. |
Obtener 1 valor de campo |
Una herramienta personalizada de secuencia de comandos que se encuentra en la caja de herramientas SelectionUtilities que se incluye en este ejemplo. Recupera el Id. de objeto único del lote impositivo que coincide con la dirección. |
Seleccionar capa por atributo |
Selecciona el lote impositivo con el Id. de objeto generado por Obtener 1 valor de campo. |
Seleccionar vecindad
Este modelo selecciona un polígono de la capa Vecindad.
Este modelo le permite elegir una vecindad de una lista de vecindades. La variable Nombre de vecindad es una variable de cadena de caracteres que tiene un filtro Lista de valores que contiene todos los nombres de vecindades. Para crear o cambiar un filtro, abra el cuadro de diálogo propiedades del modelo y haga clic en la pestaña Parámetros, que se muestra a continuación.
Seleccionar capa por área
Este modelo permite que el usuario seleccione primero una capa, y después especifique un área mínima para la selección.
La entidad principal de este modelo es cómo permite que elija una capa primero. La variable Capa a seleccionar es una variable de cadena de caracteres que tiene un filtro Lista de valores que contiene todos los Lotes impositivos y las Vecindades. Para visualizar el filtro, abra el cuadro de diálogo Propiedades de modelo y haga clic en la pestaña Parámetros, como se ilustra a continuación.
La herramienta Calcular valor toma la cadena de caracteres y la convierte en una variable de capa de entidad, como se ilustra a continuación. Esta técnica de convertir una cadena de caracteres en otro tipo de datos se describe en Tipos de datos de entrada y de salida. La salida de Calcular valor se introduce en Seleccionar capa por atributo.
Por último, las entidades seleccionadas se copian en una clase de entidad mediante la herramienta Copiar entidades. No se requiere el paso final. (Copiar las entidades ayuda a evitar la confusión cuando crea y prueba la capa de herramienta). Las entidades se escriben en la memoria en lugar de en un disco (escribir las entidades en la memoria es más rápido que escribirlas en el disco). En la caja de herramientas SelectingDataRMS, las entidades seleccionadas deben escribirse en el disco para que el servicio de mapas de resultado las dibuje.
Lista de correo
Este modelo muestra cómo seleccionar las entidades cercanas según una entidad seleccionada, así como también generar un texto simple que contiene las direcciones de las entidades cercanas.
Elemento del modelo |
Descripción |
---|---|
Dirección |
Esta es una variable que se establece por registro. La plantilla es ToolData/templates.gdb/Address. Para obtener algunas direcciones de muestra en el área de estudio, consulte ToolData/sample addresses.txt. |
Seleccionar lote impositivo por dirección (método de atributo) |
Este es el modelo que se describió anteriormente. |
Lote seleccionado |
El lote impositivo seleccionado. Esta es la capa del Lote impositivo. |
Distancia de búsqueda |
Distancia de búsqueda para utilizar. |
Capa de entrada |
La capa del Lote impositivo. |
Seleccionar capa por ubicación |
Selecciona todos los lotes impositivos dentro de la distancia que se especificó, utilizando Lote seleccionado como el centro de la búsqueda. |
Lotes impositivos |
Lotes impositivos dentro de la distancia de búsqueda. |
Imprimir etiquetas de correo del lote impositivo |
Una herramienta personalizada de secuencia de comandos que se encuentra en la caja de herramientas SelectionUtilities. |
MailingList.txt |
Un archivo de texto que contiene las direcciones de correo. |
Correcto |
Verdadero si cada registro tiene una dirección de correo. Falso si uno o más registros tienen una dirección de correo vacía o dañada. |
Seleccionar lote impositivo por dirección (método de ubicación)
Esta es la primera de las herramientas que se encuentra en el conjunto de herramientas Seleccionar por ubicación. Hace el mismo trabajo que la herramienta Seleccionar lote impositivo por dirección (método de atributo), pero en lugar de seleccionar el lote impositivo mediante el Id. de la entidad, utiliza la entidad de punto de salida de Geocodificar direcciones como entrada para Seleccionar capa por ubicación.
Este es el método que debe utilizar cuando el punto geocodificado proviene de un localizador diferente. Por ejemplo, es posible que el localizador esté basado en un dataset de calles y que necesite utilizar un punto geocodificado para seleccionar una entidad sin calles, tal como un edificio, lote impositivo o punto de interés.
Seleccionar lotes impositivos por vecindad
Otra tarea de selección común es utilizar una entidad de un dataset para seleccionar una entidad de otro dataset. Este modelo utiliza el modelo Seleccionar vecindad que se describió anteriormente para seleccionar una sola vecindad y después utiliza la herramienta Seleccionar capa por ubicación para seleccionar todos los lotes impositivos que caen dentro de la vecindad.
Seleccionar lotes impositivos por vecindad (optimizado)
La metodología utilizada por el modelo anterior Seleccionar lotes impositivos por vecindad es aceptable para las consultas poco frecuentes. Es decir, un análisis podría utilizar este método para buscar los lotes impositivos para un análisis rápido único. Pero los servicios de geoprocesamiento generalmente son las tareas que se ejecutan repetidamente y con frecuencia. Debido a que seleccionar los lotes impositivos por vecindad es una tarea que se utilizará frecuentemente, usted querrá optimizarla.
Para esta optimización, la herramienta Intersecar se utiliza para asignar el nombre de vecindad a cada lote impositivo. La herramienta Superponer lotes impositivos y vecindades que se encuentra en la caja de herramientas SelectionUtilities muestra cómo utilizar la herramienta Intersecar para crear un nuevo dataset que contiene todos los lotes impositivos con todos los atributos de vecindades. Este modelo sólo necesita ejecutarse una vez para producir el dataset TaxLotsOverNeighborhoods.
Una vez que se crea TaxLotsOverNeighborhoods, todo lo necesario es una consulta de atributos simple para seleccionar todos los lotes impositivos dentro de una vecindad.
Publicar
Publicar Portland.mxd que se encuentra en la sección de publicación de ejemplo de servicio GP: Recortar y enviar como un servicio de mapas. Utilizará este servicio de mapas como un mapa base para los servicio en este ejemplo. (La carpeta correspondiente para este servicio es C:\arcgis\ArcTutor\GP Service Examples\ClipAndShip).
Publicar SelectingData.mxd como un servicio de geoprocesamiento basado en un documento de mapa de origen. Debido a que las entidades se envían de vuelta al cliente, asegúrese de aumentar la cantidad máxima de registros que el servicio puede devolver a 11.000 (ligeramente más que la cantidad de entidades en la capa Lote impositivo).
Más información sobre cómo publicar servicios de geoprocesamiento con un documento de mapa de origen
Publique SelectingDataRMS como un servicio de geoprocesamiento con un servicio de mapas de resultado.
Utilizar
Para utilizar los servicios, abra una nueva sesión de ArcMap y agregue el servicio de mapas de Portland como un mapa base.
Abra la ventana Catálogo y vaya a la conexión de usuario con ArcGIS Server donde puede ver y ejecutar todas las tareas que publicó. Expanda el servicio SelectingDataRMS y ejecute la tarea Lista de correo.
Abra la ventana Resultados y realice los siguientes pasos:
- Expanda el resultado de MailingList.
- Haga clic con el botón derecho del ratón en la tarea Lista de correo y elija Obtener datos. El resultado de la tarea cambia de <Datos en el servidor> a MailingList.txt.
- Haga clic con el botón derecho del ratón en MailingList.txt y haga clic en Copiar ubicación. (Debido a que el resultado es un archivo de texto, Agregar a visualización no tiene efecto).
- Abra el navegador de Internet y pegue la ubicación en la barra de direcciones. Aparece el contenido de MailingList.txt.
- Opcionalmente, puede hacer clic en la herramienta Copiar y arrastrar MailingList.txt desde la ventana Resultados hasta el parámetro de entrada del cuadro de diálogo de la herramienta Copiar. El archivo se copia a una ubicación que elija.