Geoprocessing--The Road Ahead
ArcGIS 9 will provide a unified framework for geoprocessing that includes new tools and new methods for working with all tools. Geoprocessing is an integral part of a GIS and is based on a framework of data transformation. A typical geoprocessing operation takes an input data set, performs an operation on that input data set, and returns the result of the operation as an output data set.
The term geoprocessing has come to mean many things to many people. Although some people would say that geoprocessing strictly consists of spatial analysis functions, Esri defines geoprocessing as the creation or modification of data, which is typically spatial in nature, by a function that has one or more parameters. In this manner, geoprocessing functions include analysis functions (overlay, buffer, slope), data management functions (add field, copy, rename), and data conversion functions.
Unified Framework With New Tools
The new ArcGIS geoprocessing environment will have hundreds of geoprocessing tools for processing all types of data. Tools are organized in toolboxes, which exist in folders and geodatabases. The ArcToolbox window organizes toolboxes into a list of favorites for easy access from within the ArcMap and ArcCatalog applications. ArcGIS extensions add more geoprocessing tools that work like any other tool so all geoprocessing functions in ArcGIS behave and look the same, with only their parameters and execution being unique. Below are samples of tools that will be available in ArcGIS:
Approximately 400 tools will be released with ArcGIS 9 including tools for extensions such as ArcGIS Spatial Analyst. More than 100 new tools will be provided that work with any type of feature class such as a geodatabase feature class, shapefile, or coverage feature class. The number of functions will vary depending on the software used. More geoprocessing tools will be available in ArcEditor and ArcInfo than in ArcView.
Experience shows that no single user experience satisfies all user requirements and preferences for geoprocessing. The best method depends on the particular task and personal preference. Within ArcGIS, users will have a choice of four different methods for performing geoprocessing--ModelBuilder, dialogs, command line, or scripts. To perform complex geoprocessing tasks involving multiple functions, create a new model tool and link processes together in a visual diagram using ModelBuilder. For single geoprocessing tasks, use tool dialogs found in toolboxes or use the command line. To perform the same function many times on different data sets, use or create a tool derived from a script. A brief discussion of the different geoprocessing methods follows.
ModelBuilder is a window for visually constructing geoprocessing tasks and spatial models. A model contains information about spatial data, how to process the data, and the sequence of processing. The diagram below is a conceptual overview of a model built from three processes. Each process has one or more input data sets, a function, and output data. Connecting the output from one process to the input of another process chains the processes together.
Geoprocessing functions can be tied together in a model that keeps track of the data sets, processes, parameters, and assumptions. Models can be saved, modified, and rerun. The model can be displayed as a process flow called a model diagram or as a tool in a toolbox. A tool exposes model parameters selected by the model author and is the common way of executing a model.
Model tools have the following benefits:
ModelBuilder is integrated into ArcGIS Desktop and is not a stand-alone application. The model diagram and the results from ModelBuilder can be placed into a layout in the ArcMap environment.
Toolboxes contain dialogs that guide users through the process of running a geoprocessing task. Dialogs provide a form to specify the data and parameters for a geoprocessing operation. Dialogs are practical when users want to execute a single operation using an easy-to-use interface or do not want to type the syntax in a command line. All of the tool dialogs have a help panel that can be opened to display help topics.
Regardless of the ArcGIS Desktop software installed (ArcInfo, ArcEditor, or ArcView), users can access a command line similar to the ArcInfo Workstation command line. Typing the function name, the input data set(s), and the required parameters produces the same result that would be achieved in a dialog. Command line can be quicker to use than a dialog if the command and its associated parameters are known.
The command line window prompts users with the usage of the specified command, so the user would always know what parameter is being defined. It is also aware of which available inputs are valid for a parameter and presents those values in a drop-down list from which the desired value can be selected. These lists include layers in the map you are using, keywords for the current parameter, or user-defined variables.
Geoprocessing tasks can be time intensive since they are often performed on a number of different data sets or large data sets with numerous records. Scripting is an efficient method for automating geoprocessing tasks. Scripting allows the execution of simple processes (single function) or complex processes (piggybacked, multifunction tasks with validation). In addition, scripts are recyclable, meaning they can be data nonspecific and used over again.
The geoprocessor is a common object model (COM) object that manages all of the geoprocessing functions available within ArcGIS. This object provides a single access point and environment for the execution of these functions. The IGpDispatch interface implements automation and makes it possible for interpretative and macro languages to access COM components. This interface allows modern scripting languages to execute ArcGIS geoprocessing functions.
Which scripting language to choose is an open question. Any scripting language that is COM compliant, interacts well in a Web-based environment, and allows users to complete their tasks is a viable option. While there are a number of good scripting languages on the market, for simplicity this article will mention three of the more popular languages that meet the necessary criteria: VBScript, JScript, and Python. VBScript and JScript are familiar to many people and are relatively simple languages similar to Visual Basic and C that are designed to operate in a Windows environment. Python is a moderately easy-to-learn language similar to C. Python and has the ease of use of a scripting language along with the programming capabilities of a complete developer language. Moreover, Python is platform independent and can operate on a variety of operating systems including UNIX, Linux, Macintosh, and Windows. For more information, visit www.python.org. ArcGIS scripting is similar to using ARC Macro Language (AML) or Avenue, although the user is not constrained by a proprietary language.
For more information on ArcGIS, visit www.esri.com/arcgis, call Esri at 1-800-447-9778, call your Esri regional office, or contact your local reseller. Outside the United States, please contact your local Esri distributor.