X
31398 Rate this article:
3.8

ENVI Tools for ArcGIS® and ENVI for ArcGIS® Server

This detailed whitepaper describes all of the components that are involved in installing and running ENVI Tools for ArcGIS and ENVI for ArcGIS Server.

 

Introduction

Interoperability is a term that is becoming more and more popular amongst software users, who are often required to use many different packages to complete a simple workflow. Many times multiple applications are run concurrently and intermediate products are manually transferred from one application to the other until a finished product is produced.

NV5 Geospatial and ESRI® have teamed up to improve the interoperability between image processing and GIS software with ENVI and ArcGIS respectively. Image processing is becoming a more prominent part of GIS workflows and the two technologies are becoming more and more seamlessly integrated. Improved interoperability increases productivity, reduces training and expertise requirements for multiple software packages, and helps to justify the investments and costs in purchasing these products. In addition, software development costs are reduced since custom software tools are developed once and then leveraged from both applications.

This whitepaper discusses the introduction of ENVI tools for ArcGIS; a selection of ENVI workflows and tools that have been integrated into the ArcGIS ArcToolbox environment. This integration enables ENVI-based image and data processing functionality to be available directly from the ArcToolbox and ModelBuilder in ArcGIS. ENVI tools for ArcGIS can also be used to create enterprise or web-based services using ArcGIS Server and ENVI for ArcGIS Server.

ENVI tools for ArcGIS behave as if they were available natively in ArcToolbox and give many powerful options for image processing and analysis to ArcGIS users. An increase in productivity can also be achieved since the ArcGIS user can stay in a familiar environment and the output products generated by the ENVI routines are pushed directly back into ArcMap and/or a geodatabase.

The ENVI based tools can be easily shared with other users in the same manner as Arc Toolbox tools and Model Builder models are currently shared. An ENVI license is required to run them.

This whitepaper will familiarize the reader with geoprocessing concepts and terminology related to ESRI and NV5 Geospatial products, and give an overview of the methodology for integrating ENVI capabilities with ArcGIS through ArcToolbox and Model Builder, and will discuss how to create shared services for the tools with ENVI for ArcGIS Server.

Background Information on Geoprocessing

2.1 Geoprocessing – What is it?

The concept of geoprocessing involves the use of modeling and analysis tools to explore, analyze, and manage geographic data. In ArcGIS, geoprocessing supports the creation and automation of workflows by providing a robust set of tools and a mechanism to combine a series of tools in a sequence of operations by creating models and scripts. ENVI tools for ArcGIS can be used in ArcGIS geoprocessing workflows, just like any other tool available to create models in ArcGIS.

A typical geoprocessing tool performs an operation on an ArcGIS dataset (such as a feature class, raster, or table) and produces a new dataset as the result of the tool. Each geoprocessing tool performs a small yet essential operation on geographic data, such as projecting a dataset from one map projection to another, adding a field to a table, or creating a buffer zone around features. ArcGIS includes hundreds of such geoprocessing tools.

Geoprocessing allows you to chain together sequences of tools, feeding the output of one tool into another. You can use this ability to compose an infinite number of geoprocessing models (tool sequences) that help you automate your work and solve complex problems.

2.2 ArcToolbox®

ArcToolbox is a collection of GIS tools organized into a number of toolboxes and toolsets within each toolbox, therefore providing organized access to all of the tools in ArcGIS and a mechanism for finding and executing the desired tools. The typical tool takes ArcGIS datasets as inputs, such as feature classes, rasters, and tables, applies an operation on the data, and creates a new dataset. Figure 2 shows the ArcToolbox dialog containing the standard set of tools along with the standard ENVI for ArcGIS Toolbox.

Figure 1: ArcToolbox Example, ENVI Tools for ArcGIS

Figure 1: ArcToolbox Example

2.3 ModelBuilder in ArcGIS

ModelBuilder is an application you use to create, edit, and manage models. Models are workflows that string together sequences of geoprocessing tools, feeding the output of one tool into another tool as input. ModelBuilder can also be thought of as a visual programming language for building workflows.

ENVI tools for ArcGIS can be used with ModelBuilder to create models, just like any of the other tools available in ArcGIS.

The ModelBuilder allows the user to graphically create and execute geoprocessing models which are created by dragging and dropping tools from ArcToolbox into the ModelBuilder interface and connecting the tools together to form a sequence of operations. Figure 2 shows an example of a model that consists of several different tools available in ArcToolbox.

Figure 2: Sample model in ModelBuilder, ENVI Tools for ArcGIS

Figure 2: Sample model in ModelBuilder

While ModelBuilder is very useful for constructing and executing simple workflows, it also provides advanced methods for extending ArcGIS functionality by allowing you to create and share your models. ModelBuilder can even be used to integrate ArcGIS with other applications.

The benefits of ModelBuilder can be summarized as follows:

  • ModelBuilder is an easy-to-use application for creating and running workflows containing a sequence of tools.
  • You can create your own tools with ModelBuilder. Tools you create with ModelBuilder can be used in Python scripting and other models. This includes any standard or custom ENVI tools for ArcGIS.
  • ModelBuilder, along with scripting, is a way for you to integrate ArcGIS with other applications. There are three main types of model elements: tools, variables, and connectors.
  • Tools: Geoprocessing tools are the basic building blocks of workflows in a model. Tools perform various operations on geographic or tabular data. When tools are added to a model, they become model elements.
  • Variables: Variables are elements in a model that hold a value or a reference to data stored on disk. There are two types of variables:
    • Data: Data variables are model elements that contain descriptive information about data stored on disk. Properties of data that are described in a data variable include field information, spatial reference, and path.
    • Values: Value variables are values such as strings, numbers, Booleans (true/false values), spatial references, linear units, or extents. Value variables contain anything but references to data stored on disk.
    Connectors: Connectors connect data and values to tools. The connector arrows show the direction of processing. There are four types of connectors:
    • Data: Data connectors connect data and value variables to tools.
    • Environment: Environment connectors connect a variable containing an environment setting (data or value) to a tool. When the tool is executed, it will use the environment setting.
    • Precondition: Precondition connectors connect a variable to a tool. The tool will execute only after the contents of the precondition variable are created.
    • Feedback: Feedback connectors connect the output of a tool back into the same tool as input.

A model process consists of a tool and all variables connected to it. Connector lines indicate the sequence of processing. Many processes can be chained together to create a larger process. You can use any of the ENVI tools in this process in the same way you would other ArcGIS tools.

You can also use a scripting language and geoprocessing tools to create new, useful software. A program that uses a scripting language is a script. Scripting languages are easy to learn and use—a basic understanding of programming logic is all that's needed to be productive. Python is the scripting language used by ArcGIS.

In the geoprocessing framework, scripts are analogous to models in that they can be used to create new tools. Models are created with a visual programming language (ModelBuilder), and scripts are created with a text-based language and text editors.

Just like models, scripts are tools. You can introduce a script to a custom toolbox using a step-by-step wizard, and it becomes just another tool that you can use in a model or in another script. Several of the system tools are scripts.

2.4 Writing Python Scripts

Python is an open-source, general-purpose programming language that is used as a scripting language in ArcGIS geoprocessing, as well as for integrating custom, userdefined ENVI tools in ArcGIS.

Geoprocessing functionality is accessible through Python using ArcGIS software's ArcPy site-package. ArcPy provides access to geoprocessing tools as well as additional functions, classes, and modules that allow you to create simple or complex workflows quickly and easily. ArcGIS applications and scripts written using ArcPy can access and work with the numerous Python modules developed by GIS professionals and programmers from many different disciplines.

To run an ENVI/IDL-based tool, you would use the envipy module, which is a Python module developed by NV5 Geospatial for integration with ArcGIS.

ENVI Tools for ArcGIS

The ENVI tools for ArcGIS include scripts and pre-built models that enable you to execute ENVI processing directly from the ArcToolbox window within ArcGIS Desktop versions 9.3 and 10.0. In addition, if you have ENVI + IDL desktop software installed on your machine, you can author custom user-defined tools that have access to ENVI processing via the IDL scripting library. These new tools can be shared and deployed into either the ArcGIS Desktop environment or as geoprocessing services published to ArcGIS Server by using the separate ENVI for ArcGIS® Server software.

3.1 System Requirements

3.1.1 ENVI tools for ArcGIS

A network interface card (NIC or Ethernet) is required for software-based node-locked and floating licenses. The following table describes the supported platforms and operating systems:

Figure 3: Supported Operating Systems, ENVI Tools for ArcGIS

Figure 3: Supported Operating Systems

3.1.2 ENVI for ArcGIS® Server

ENVI for ArcGIS Server requires ArcGIS Server from Esri. ENVI for ArcGIS Server retains the same limitations on platforms or operating system requirements for ArcGIS Server. For more information on ArcGIS Server, please see the documentation available at http://esri.com.

Figure 4: Supported Operating Systems, ENVI Tools for ArcGIS

Figure 4: Supported Operating Systems

3.2 Standard ENVI tools for ArcGIS

There are a number of ENVI tools that come standard in the ENVI Toolbox for ArcGIS with an ENVI license purchase. These include:

3.2.1 ENVI tools for ArcGIS

  • Extract Features with Ruleset uses an object-based approach to classify imagery, where an object is a region of interest with spatial, spectral (brightness and color), and/or texture characteristics that define the region. Use this tool to quickly and accurately locate, extract, and identify features of interest in imagery.
  • Auto-Threshold Difference Raster provides four methods of auto-thresholding for image difference, including Otsu's, Tsai's, Kapur's, and Kittler's methods. The default is Otsu’s, which is a histogram shape-based method for calculating the value of the thresholding level.
  • Calculate Image Difference compares differences between two images of the same geographic extent. The difference can be computed on a specified input band, on a feature index, or using the spectral angle.
  • Calculate Thematic Change takes two classification images of the same scene from different times and identifies differences between them. The resulting classification image shows class transitions, for example, from class 1 to class 2.
  • Classification Raster to Vector exports the classification raster result to a new output shape file.
  • Classify with Training clusters pixels into classes based on user-defined training data, supplied as polygons or points from existing files. Classification methods include Maximum likelihood, Minimum distance, Mahalanobis distance, and Spectral Angle Mapper (SAM).
  • Classify without Training uses the ISODATA technique to cluster pixels in a dataset without any user-defined training classes. It calculates class means evenly distributed in the data space, and then iteratively clusters the remaining pixels using minimum distance techniques.v
  • Cleanup Classification Raster refines the classification result using smoothing and aggregation. Smoothing removes salt and pepper noise, and aggregation removes small regions.
  • Detect Anomalies extracts targets that are spectrally distinct from the image background by identifying the spectral or color differences between a region and its neighboring pixels or the entire dataset. This tool is effective when the anomalous targets are sufficiently small, relative to the background.
  • Intersect Rasters takes two rasters as input and produces two rasters that cover only the overlapping area of two inputs.
  • Threshold by Percentage segments the image into anomalous and nonanomalous regions.

3.2.2 Image Workflows

The Image Workflows include:

  • Anomaly detection
  • Image difference and thematic change detections
  • Classifications

The workflow process also includes cleanup methods that include thresholding, smoothing, and aggregation. There are four methods of auto-thresholding (Otsu's, Tsai's, Kapur's, and Kittler's). Smoothing refines the classification result (removes salt and pepper noise) and aggregation removes small regions.

3.2.3 Example ENVI Tools

ENVI provides the capability for ArcGIS users to easily build custom image analysis tools and models in the workflow they’re accustomed to and easily add them to the toolbox. These include:

  • Convert Raster Format takes raster data formats supported by ArcGIS® and ENVI and converts the data to an ENVI or TIFF/GeoTIFF format so it can be used by other ENVI tools. The ENVI tools support only input raster formats that are supported by both ArcGIS and ENVI
  • Filter with Convolution replaces the value of each pixel in a raster with a sum of the surrounding pixels, for use in edge enhancement or image sharpening applications.
  • LiDAR to Raster reads a LAS formatted LiDAR file and converts it to an ENVI format elevation or intensity raster. You can specify a last return, full return, or full return model, as well.

3.3 Creating Custom ENVI tools for Integration with ArcToolBox

3.3.1 ENVI routines suitable for integration with ArcToolBox

An ENVI routine suitable for integration with ArcToolbox can either be an existing ENVI routine, as in section 3.2 above, or a custom routi ne developed by the user. One of the major strengths of ENVI is the ease in which users can extend the existing capability of the software by developing custom routines and functionality. This is typically done utilizing the Interactive Data Language (IDL), and is the basis of much of ENVI batch processing capabilities. IDL is an interpreted language designed to facilitate processing, analysis, and visualization of a wide array of 2D imagery and 3D datasets.

Routines suitable for integration with ArcToolBox are those that can be run in ENVI batch mode, which means that during execution no user interaction is required. The required inputs to the routine are passed via parameter or keyword variables. There are over 200 ENVI routines available for this type of ArcGIS integration.

The ability to run ENVI routines in batch mode means that external batch scripts, such as those run from the operating system command line, or called from another application, can be created that start ENVI without the user interface, in other words a headless ENVI, then call the routine with its required inputs. Once the ENVI routine is finished ENVI exits on its own.

ENVI’s extensibility via IDL allows you to add functionality and customize routines. The external batch scripts are really starting IDL and running an IDL routine. Our methodology for integrating ENVI routines with ArcToolbox leverages this ability to call IDL and ENVI from the command line and other applications.

3.3.2 Steps for Creating Custom ENVI Tool for ArcGIS

To create a custom tool an ENVI + IDL Desktop licen se is required. You canauthor custom tools that have access to ENVI and IDL functions. The steps include:

  1. Prepare the Directory Structure
  2. Write the Python Script
  3. Write the IDL .pro code
  4. Compile the IDL .pro code into a .sav file.
  5. Create the user interface
  6. Run the new tool

> 3.3.2.1 Prepare the Directory Structure

To author custom user-defined tools you will need to create IDL and Python code files and store these files in a specific location on the computer. The location of the Python and IDL code files will be hard-coded into the script tool. The location cannot be moved or it will break the tool.

> 3.3.2.2 Write the Python Script

Write a Python script file to retrieve the parameters from the User Interface and run the IDL save file that you will create in the next step. When this Python script is executed, it invokes your custom ENVI/IDL-based entry point procedure stored in a .sav file.

The Python programming language is utilized to create ArcToolbox scripts in the ArcGIS geoprocessing framework. Python is also an interpreted language and available in the open source (https://www.python.org).

Programmatic access to the geoprocessing framework using Python is available from the ArcObjects component called the geoprocessor object. The geoprocessor object exposes the available geoprocessing functions to Python. The various geoprocessing functions enable the Python script to interact with the user, data, and the ArcGIS user interface.

Providing a detailed description of how to develop a Python script is beyond the scope of this whitepaper. For additional details refer to the ArcGIS Desktop Help system, the ENVI Help system or the detailed tutorial version of this whitepaper. The Python script will have several basic components:

  • Import ArcPy module
  • Get parameters from the GUI that is created to inte rface with the tool
  • Invoke tools as methods of ArcPy

The Python language provides a function for submitting and executing operating system commands. This is a key feature of our methodology because it provides the mechanism by which the Python script calls the ENVI routine.

To run an ENVI/IDL-based tool, from Python code you need to import envipy module, which is a Python module developed by NV5 Geospatial. The Python code must perform the followi ng steps:

  1. Import the envipy module.
  2. Get the parameters from the geoprocessor object.
  3. Call the RunTool function in the envipy module.

You can find examples of the Python code in ENVI Help, or in the tutorial version of this document.

> 3.3.2.3 Write the IDL .pro Code

IDL code (.pro) is used to interface between the python script and ENVI DOIT routine. The code needs to be compiled into an IDL save file (.sav). The sample code and instructions can be found in ENVI Help, or in the tutorial version of this document.

> 3.3.2.4 Compile the IDL .pro Code into a .sav File

In this step you will use the IDL workbench to compile IDL .pro file into a runtime binary .sav file. For detailed information on the routines involved incompiling IDL code, see IDL Help, or the detailed tutorial version of this whitepaper.

> 3.3.2.5 Create the User Interface

Next, create the user interface by first creating a new toolbox in the ArcGIS Desktop environment and add a new script tool. See the detailed version of this whitepaper for a step by step example. The steps in creating a User Interface include:

  • Create a Toolbox
  • Create a Script Tool

> 3.3.2.6 Run the New Tool

A final step is to test the new script tool you created. Again you can find a detailed example for this in the detailed tutorial version of this document.

If you want to share your custom tool, the files required for tool distribution are:

  • C:\MyTool\MyScriptTool.py
  • C:\MyTool\MyScriptTool.sav
  • MyToolbox.tbx,

For more information on sharing tools, see the ArcGIS Desktop Help.

Once the Python script has been created, it can be added to ArcToolbox and thus making it available to the user just like any other tool. The basic steps for adding a script to ArcToolbox include:

  • Naming the script
  • Identifying the Python script that will be run
  • Setting the script parameters that correspond to the parameters in the Python script.

For more detailed information about this, see ENVI Help or the detailed tutorial version of this whitepaper.

 

Geoprocessing with ArcGIS® Server

4.1 Introduction

ArcGIS Server is a comprehensive Web-based GIS that provides a range of out-of-thebox applications and services for mapping, analysis, data collection, editing, and management of spatial information.

ArcGIS Server software gives you the ability to create, manage, and distribute GIS services over the Web to support desktop, mobile and Web mapping applications. In addition, ArcGIS Server provides you with a scalable GIS server platform that can be deployed on a single machine to support small workgroups, or it can distributed across multiple servers for supporting enterprise applications. You can also deploy ArcGIS Server on Cloud infrastructure.

ENVI for ArcGIS® Server allows you to publish standard and custom ENVI tools for ArcGIS to the ArcGIS Server. You can use the ArcGIS Server to build models using ENVI tools and publish them for others to use.

4.1.1 Geoprocessing Service Overview

A geoprocessing service contains geoprocessing tasks accessible by clients. Tasks are created by publishing geoprocessing toolboxes or map documents containing tool layers. When you execute a task in a geoprocessing service, it executes on the server computer, using resources of the server computer.

Geoprocessing services and their tasks are accessed through the public Internet and private intranets and can be used in ArcGIS Desktop, ArcGIS Explorer, and Web applications such as a Web site built using ArcGIS Server Manager installed with ArcGIS Server. You can also use a custom web application built on the FLEX or Silverlight API. In ArcGIS Desktop, you connect to a server and view its geoprocessing services in the Catalog window. Geoprocessing services appear as toolboxes, and tasks become tools within the toolbox.

ArcGIS Server is a separate product, but clients don't need to have ArcGIS Server installed to use published services. Once ArcGIS Server is installed on the server, toolboxes can be published as geoprocessing services, making them available to anyone with an Internet connection.

Key Concepts for creating a geoprocessing Service:

 

  • A geoprocessing service contains geoprocessing tasks accessible by Web-enabled clients. Tasks are created by publishing geoprocessing model and script tools.
  • There are two ways to create a geoprocessing service in ArcGIS Desktop:
    • Publish a geoprocessing toolbox. Each tool in the toolbox becomes a task in the geoprocessing service.
    • Publish an ArcMap document containing geoprocessing tool layers. Each tool layer becomes a task in the geoprocessing service.
  • Model and script tools that execute in ArcGIS Desktop will need to be modified to execute on ArcGIS Server due to differences in the technology.
  • Only certain input and output parameter data types are allowed. For example, tools that have feature class input will have to be modified to have feature set input instead. It is easy and straightforward to change a model or script to take feature set input rather than feature class input. Raster dataset inputs cannot be used as inputs but there are ways to work around this as described in Section 4.3.2.1 in this document.
  • Due to the fact that your tools can be executed on multiple server computers, there are specific rules about where intermediate and output data can be written. You will have to modify your models and scripts to follow these rules for writing intermediate and output data.
  • You need to think about how the outputs of your tools will be displayed in the client application. When using tools in ArcGIS Desktop, you may not give output display much thought—you use ArcMap layers to create a good cartographic display of tool outputs. ArcGIS Server clients may not have the capabilities of ArcMap, so you need to think carefully about how your outputs should be displayed and specify good symbology.
  • Geoprocessing services need to be fast and efficient. Clients want and expect fast service. Since ArcGIS Server can service multiple clients at once, inefficient services can overload your server. The more efficient your services, the more clients can be serviced with the same computing resources. You may need to tune your models and scripts for faster execution.

4.2 ArcGIS Server Components and Terminology

An ArcGIS Server or ENVI for ArcGIS Server system is comprised of many parts, such as the server object manager (SOM) and server object container (SOC), the Web and Mobile ADFs, a Web server, and an administration interface, such as Manager. In order for the system to work, each component must be able to communicate with the other components in the correct way.

ArcGIS Server Workgroup licensing allows for the deployment of ArcGIS Server components on just one machine. To deploy ArcGIS Server components on multiple machines, the Enterprise level licensing is necessary.

The server object manager (SOM) is a component of ArcGIS Server that manages the services distributed across one or more SOC machines. The SOM runs as a background process (in Windows, a service called ArcSOM.exe) and handles the load distribution of incoming requests. It also keeps track of which services are running on which SOCs. Using this information, the SOM delivers a request to the appropriate service.

Server object container (SOC) machines host services and the processes that do things with those services In this way, the SOC is the work center of the GIS server. SOC processes are started and stopped by the SOM.

How a Web Server Fits In

The Web server hosts the Web services and applications that you create with the ADF. It receives requests from clients and relays appropriate tasks to the GIS server.

Each Web server in your configuration must have the ADF Runtime installed, and must have access to the Web application or Web service that you want to run. The SOM and SOC components of the GIS server can also reside on the same machine as the Web server.

An ArcGIS Server system can include more than one Web server. Reasons for using multiple Web servers include increased computing power for handling traffic to the site, and the ability to keep the site online in case one of the Web servers goes down.

Input and Output Data Locations

4.3 ENVI for ArcGIS Server®

ENVI for ArcGIS Server® allows you to work in the familiar environment of ArcGIS. You can use the ArcGIS Server to build models using ENVI tools and publish them for others to use. ENVI for ArcGIS Server follows the same protocol for geoprocessing as described in Sections 4.1 and 4.2 above.

ENVI for ArcGIS Server is a stand-alone software product that is installed and licensed separate from the ENVI or ENVI EX desktop software. In order to use ENVI processing capabilities in the ArcGIS Server environment, you must purchase an ENVI for ArcGIS Server license.

Most ENVI tools for ArcGIS take rasters as input and produce rasters as output. As with other ArcGIS tools, you can publish ENVI tools to the web, you can use clients such as ArcExplorer as well as other types of distributed processing methods that are supported by ArcGIS Server, to get the data to those who need it.

Once the ENVI tools are published to the server, you can use the tools on your own desktop, provided you have an ArcGIS and an ENVI license.

4.3.1 Licensing for ENVI for ArcGIS Server

There are 2 main types of licensing, each having 2 subgroups, for ENVI for ArcGIS Server:

 

  • Workgroup
    • Standard Edition
    • Advanced Edition
  • Enterprise
    • Standard Edition
    • Advanced Edition

    Workgroup Licenses allow up to 10 simultaneous users to access ENVI tools via the ArcGIS Server® on a single machine.

    Enterprise Licenses allow unlimited simultaneous users to access ENVI tools via the ArcGIS Server® on a single machine.

    Within either a Workgroup or an Enterprise license, the Standard Edition allows the execution of a predefined set of ENVI-based tools and workflows on an ArcGIS Server. These tools and workflows include ENVI classification, feature extraction and change detection.

    Within either A Workgroup or an Enterprise license, the Advanced Edition allows execution of a predefined set of ENVI based tools and workflows available in the Standard Edition along with the ability to execute any other ENVI tool made available via the IDL scripting language on the ArcGIS Server. Advanced level license also allow use of ENVI NITF and TFRD capabilities.

    4.3.2 Data Location and Access

    > 4.3.2.1 Considerations for Input of Raster Data

     

    • Use the Select Data tool to allow service users to pick a raster dataset from a list of available data in a SDE, a file GDB, or a data folder on the Server.
    • Define the input raster by pointing an ENVI tool to specific raster data located on the Server. Use this method when you want the service to always run on the same data.
    • Define the input raster by pointing an ENVI tool to data on a shared network (provided the ArcGIS SOC account has the necessary access permissions). For more details, see the following topic in ArcGIS documentation: Data Access Considerations for Geoprocessing Tasks.
    • Note: If the GP service is given a raster data residing on the ArcGIS client during service execution, a copy of the data is made on server scratch workspace in GeoTIFF format. The service then uses the GeoTIFF file for processing.

    > 4.3.2.2 Considerations fo Output of Raster Data

    The recommended practice for defining your raster output is not to mark the raster output as a model parameter. When the raster output is marked as a parameter, execution of the GP service produces a copy of the result on the ArcGIS Desktop client in GeoTiff format. The ENVI format raster data resides on the server's scratch directory for that particular tool.

     

    General Considerations for publishing ENVI Tools for ArcGIS as a service on the ArcGIS Server

    Some of the important factors to consider when publishing an ENVI Tool as a service on an ENVI for ArcGIS server are:

     

    • Where does the data reside (data including toolbox and input files)? For Example: in the Server, in a Database, or in a network location identified by a UNC path where the ArcGIS SOC account has access.
    • Supported Input and Output Data types. For example : The feature class is not a supported Input data type, so for the supervised classification model the user needs to change the training data to come from a feature set.
    • How to present the result to the client? For example: Draw the result in client, or store the result on the server and make the user download the processed result.
    • How to provide input raster data to ENVI tools? For example: Make sure the raster data is in a location where ArcGIS SOC account has appropriate access. The models using ENVI gp tools can use the "Select Data" tool and let the users of the service pick a raster data form a list of available data.

     

  • NOTE: All Intermediate results are written to Scratch Directory on the server. It is very important to use the scratch workspace to store any intermediate data as this is a unique directory created each time the service is run. Using the scratch directory will avoid any collision between concurrently running jobs. The scratchworkspace for a particular job can be obtained by using the %scratchworkspace% environment variable.

     

    Summary

    This whitepaper describes an approach that integrates ENVI capability into the ArcGIS environment via ArcToolbox and ModelBuilder. There are several advantages for utilizing this approach.

     

    • This approach demonstrates true integration between ENVI and ArcGIS and provides access to ENVI’s powerful image and data processing capabilities to a class of ArcGIS users that may not have ever considered using ENVI in the past.
    • Facilitates adding functionality available in ENVI that either is not available in ArcGIS or is not as efficient as the ENVI implementation.
    • Once added to ArcToolbox, the scripts that call ENVI routines can be used just like any other tool in ArcToolbox, as well as, inclusion into custom models in ModelBuilder.
    • The ENVI capability is accessed from within the ArcGIS environment and the output products are pushed directly into ArcMap and/or a geodatabase. This feature increases productivity since the user can access this capability from one software package environment.
    • Users experience a greater return on their investment in both ENVI and ArcGIS since more sophisticated tools can be developed that leverage the strengths of each software package. In addition, the same functionality developed in ENVI can also be accessed from ArcGIS with minimal effort and can be easily shared with other users.
    • The methodology is flexible and robust enough to rapidly integrate any existing or custom ENVI routines, especially those that can be run in ENVI batch mode.

    To obtain further information regarding this methodology contact your local GeospatialInfo@NV5.com.

     

    For more information

    If further information is required regarding this topic, contact us at 303-786-9900 or GeospatialInfo@NV5.com. For additional information on ArcGIS, ArcToolbox, and Model Builder, contact an ESRI representative at https://www.esri.com.