El marco de geoprocesamiento es un conjunto de ventanas y cuadros de diálogo que se utilizan para administrar y ejecutar herramientas. Este tema se centra en los conceptos e ideas más importantes que abarca este marco, en lugar de en la mecánica de su uso.
La idea principal detrás del geoprocesamiento es permitirle implementar sus ideas rápida y fácilmente en un software nuevo que se pueda ejecutar, administrar, modificar, documentar y compartir con la comunidad de usuarios de ArcGIS. El concepto de software, en este caso, se refiere a algo que da instrucciones a ArcGIS para hacer lo que el usuario desee. Un modelo de geoprocesamiento, por ejemplo, es un software nuevo creado por el usuario que contiene un lenguaje de programación visual fácil de utilizar denominado ModelBuilder.
El tema principal de esta sección es la noción de geoprocesamiento como procedimiento que el usuario sigue para crear un software útil nuevo. Al hacerlo, se espera que amplíe y profundice su conocimientos acerca de cómo y por qué utilizar el geoprocesamiento.
Para crear un software de cualquier tipo, se requieren los dos siguientes elementos esenciales:
- Un lenguaje formal que opere con los datos capturados dentro del sistema.
- Un marco de creación, administración y ejecución del software basado en este lenguaje. Esto incluye editores, buscadores y herramientas de documentación.
El lenguaje del geoprocesamiento es su conjunto de herramientas. El marco de geoprocesamiento es un pequeño conjunto de interfaces de usuario integradas para organizar y administrar herramientas existentes y crear otras. Los componentes básicos del marco se muestran en Un recorrido rápido por el geoprocesamiento y constan de:
- La ventana Buscar, para buscar y ejecutar herramientas, y la ventana Catálogo, para ir a cajas de herramientas a fin de administrar o ejecutar sus herramientas
- El cuadro de diálogo para completar de manera interactiva los parámetros de las herramientas y ejecutarlas
- La ventana de Python para ejecutar una herramienta escribiendo sus parámetros
- La ventana ModelBuilder para encadenar secuencias de herramientas
- Métodos para crear scripts y agregarlos a cajas de herramientas.
Modelos de geoprocesamiento y ModelBuilder
El cuadro de diálogo de la herramienta permite ejecutar una sola herramienta. Puede tomarlo como la ejecución de una instrucción única en un lenguaje de programación. A pesar de que la ejecución de una sola herramienta sea algo práctico, el sistema no resultaría muy útil a menos que pueda encadenar varias herramientas y utilizar las salidas de cada una con las demás, tal como lo hace un lenguaje de programación.
En el marco de geoprocesamiento, la ventana ModelBuilder es la que permite convertir sus ideas rápidamente en un software encadenando elementos del lenguaje de geoprocesamiento (las herramientas) en una secuencia. Es importante tener en cuenta que, ya que dan instrucciones al equipo para realizar algún tipo de acción, los modelos son software. El lenguaje de programación es visual (lo que ve en ModelBuilder), en lugar de basado en texto como un lenguaje de programación tradicional.
Lo más importante que se debe tener en cuenta aquí es que los modelos son herramientas. Se comportan del mismo modo que las demás herramientas del sistema. Puede ejecutarlas en el cuadro de diálogo o en la ventana de Python. Puesto que los modelos son herramientas, puede integrar modelos con otros; varias de las herramientas del sistema que se proporcionan con ArcGIS son modelos.
Puede hacer que sus modelos sean complejos. Puede utilizar cualquier herramienta personalizada o del sistema en el modelo, incluidos otros modelos que haya escrito (dado que los modelos son herramientas). También puede utilizar bucles y condiciones para controlar el funcionamiento lógico de un modelo.
Los modelos pueden ser sencillos y seguir siendo productivos. Puede crear un modelo que contenga una sola herramienta, pero que incorpore algunos de sus parámetros. Por ejemplo, la herramienta Zona de influencia utiliza seis parámetros, pero para el conjunto de tareas actuales sabe que tres de ellos serán siempre iguales. En lugar de rellenar estos parámetros cada vez que ejecute la herramienta Zona de influencia, puede crear rápidamente un modelo y establecer estos tres parámetros, guardarlo como la herramienta MyBuffer y utilizar su cuadro de diálogo en lugar del de Zona de influencia. Es posible que sólo utilice la herramienta MyBuffer pocas veces antes de eliminarla, pero no significa una pérdida de tiempo, ya que la creación fue fácil y rápida, y fue de gran productividad.
Crear scripts
También puede utilizar un lenguaje de script para crear un software útil. Un programa que utiliza un lenguaje de scripts es un script. En la programación de software, los lenguajes se pueden dividir en dos categorías básicas: lenguajes de sistema y lenguajes de script. Los lenguajes de sistema, como C++ y .NET, se utilizan para crear aplicaciones desde cero por medio de primitivas de bajo nivel y recursos de bajo nivel del equipo. Los lenguajes de script, como Python y Perl, se utilizan para unir aplicaciones por medio de funciones integradas avanzadas del equipo y ocultando los entresijos con los que tiene que lidiar un programador de lenguajes de sistema. Comparados con los lenguajes de sistema, los lenguajes de scripts son fáciles de aprender y utilizar: solo se necesita comprender los aspectos básicos de la programación para ser productivo.
En el marco de geoprocesamiento, los scripts son iguales a los modelos en el sentido de que se pueden utilizar para crear herramientas. Los modelos se crean con un lenguaje de programación visual (ModelBuilder), y los scripts se crean con un lenguaje basado en texto y editores de texto.
Al igual que los modelos, los scripts son herramientas. Puede introducir un script en una caja de herramientas personalizada mediante un asistente paso a paso, y se convertirá en otra herramienta que puede utilizar en un modelo o en otro script. Varias herramientas del sistema son scripts. Técnicamente, puede escribir un script sin introducirlo en una caja de herramientas. En tal caso, no es una herramienta, sino un script independiente en el disco.
Es posible que desee utilizar scripts por los siguientes motivos:
- Es posible que necesite lógica de programación avanzada, como una ejecución condicional y un manejo de errores avanzado; estructuras de datos avanzadas, como diccionarios y listas; o más funcionalidad, como funciones de manipulación de cadenas de caracteres, matemática y archivos. Muchos lenguajes de script se extienden con bibliotecas de terceros para características como matemática y estadística avanzadas, automatización web, consultas de bases de datos y utilidades de sistema avanzadas.
- Existen algunas funciones de geoprocesamiento de bajo nivel disponibles solo para scripts. Los cursores, por ejemplo, le permiten recorrer los registros de una tabla, leer o escribir filas e insertar filas nuevas. Existen funciones para acceder a las propiedades de datos de ArcGIS, como la extensión de una clase de entidad o las diversas propiedades de campos individuales en una tabla.
- Los scripts pueden abarcar otro software: la unión de aplicaciones. Por ejemplo, puede tener un modelo que genere un archivo de texto sencillo de direcciones y propietarios de parcelas que se ven afectados por un cambio de ordenanza en la zonificación, y desear ejecutar otro programa que lea dicho archivo de texto y genere cartas oficiales de notificación para los propietarios de las parcelas afectadas. Puede utilizar un script para armar este programa de generación de cartas, introducir este script en una caja de herramientas y utilizarlo directamente en el modelo.
- Los scripts se pueden ejecutar fuera de ArcGIS, es decir que puede ejecutar un script directamente desde la línea de comandos del sistema operativo. (Sigue siendo necesario tener instalado el paquete de sitio de ArcPy en el equipo, ya que debe acceder a las herramientas de geoprocesamiento).
Marco para crear y administrar software
El marco de geoprocesamiento se construyó para permitirle convertir rápidamente sus ideas en un software nuevo que el sistema pueda administrar y que se pueda compartir con los usuarios.
El geoprocesamiento es un lenguaje compuesto por operadores –o herramientas– que trabajan con los datos de ArcGIS (tablas, clases de entidad, rásteres, TIN y demás) y realizan tareas necesarias para manipular y analizar información geográfica en una gran variedad de disciplinas.
Puede crear software rápidamente en forma de modelos y scripts. Estas herramientas nuevas realizan tareas que no forman parte del paquete de ArcGIS estándar. Por ejemplo, no existe menú, botón ni objeto de programación en ArcGIS que lleve a cabo el sencillo modelo Proyectar y recortar que se muestra en ¿Qué es el geoprocesamiento?.
El marco de geoprocesamiento administra las herramientas para que usted no tenga que hacerlo. Es una cuestión sutil, pero importante. Dicha administración incluye:
- Se puede acceder a todas las herramientas, ya sean del sistema o personalizadas (escritas por el usuario), desde sus cajas de herramientas. Imagine una situación diferente, en la que se accediese a modelos, scripts y herramientas del sistema y personalizadas mediante distintas interfaces y métodos: su uso y administración sería complicado. En el geoprocesamiento, todas las cosas se crean y administran de manera igualitaria, ya sean herramientas integradas, herramientas de modelos o herramientas de scripts.
- Todas las herramientas se documentan de la misma manera. Una vez que crea una herramienta, puede documentarla en la ventana Catálogo, para que el sistema pueda catalogarla y buscarla. Compare esto con la posibilidad de dejar la administración y estándares de la documentación para el usuario.
- Las herramientas tienen la misma interfaz de usuario: el cuadro de diálogo. Estos cuadros de diálogo se crean automáticamente de acuerdo a los parámetros de la herramienta. No tiene que realizar ningún tipo de programación de interfaz. Imagine una situación en la que el diseño y programación de la interfaz de usuario sea responsabilidad del autor de la herramienta.
Las herramientas se pueden compartir fácilmente. Una caja de herramientas con todas sus herramientas y conjuntos de herramientas se ubica en un archivo en el disco con extensión .tbx o en una geodatabase. Cualquier persona que tenga acceso al archivo o a la geodatabase puede ejecutar las herramientas.
El punto destacable es que las herramientas se convierten en componentes del marco de geoprocesamiento, donde cuentan con documentación, interfaz de usuario, métodos de acceso y métodos de uso compartido uniformes.
El geoprocesamiento y ArcObjects
ArcObjects es una biblioteca extensa de objetos de programación de bajo nivel que se presenta como parte del kit de desarrollo de software (SDK) de ArcGIS. Los desarrolladores utilizan ArcObjects para crear aplicaciones nuevas o extender la funcionalidad existente de las aplicaciones de ArcGIS (la mayoría de las herramientas del sistema y todo el marco de geoprocesamiento se crearon con ArcObjects). Al igual que el geoprocesamiento, el SDK de ArcObjects se puede utilizar para crear software.
El SDK de ArcObjects y el geoprocesamiento son complementarios, es decir que ninguno impide el uso del otro. ArcObjects se utiliza para extender ArcGIS con un comportamiento nuevo, mientras que el geoprocesamiento está diseñado para automatizar tareas. ArcObjects se utiliza para realizar acciones como agregar nuevas interfaces de usuario, agregar comportamiento propio a las clases de entidad o crear un renderizador cartográfico especial. El geoprocesamiento se utiliza para crear software (modelos y scripts) que automatice tareas dentro de los límites de un marco.
ArcObjects se utiliza con un lenguaje de programación de sistema, en el que el programador debe acceder a las primitivas de bajo nivel para implementar lógicas y algoritmos complejos. Por eso ArcObjects contiene miles de objetos y solicitudes, para permitir al programador el nivel preciso de control requerido. Ya que ArcObjects se utiliza con un lenguaje de programación de sistema, requiere más conocimiento de programación que el geoprocesamiento, con sus modelos y scripts.
Por el contrario, el geoprocesamiento es una capacidad universal que todos los usuarios de SIG pueden utilizar e implementar para automatizar su trabajo, construir métodos y procedimientos repetibles y bien definidos, y diseñar importantes procesos geográficos.