Vous êtes sur la page 1sur 15

ENVI Tools for ArcGIS® and ENVI for

ArcGIS® Server
Friday, February 01, 2013

This detailed whitepaper that describes all of the


components that are involved in installing and running ENVI
Tools for ArcGIS and ENVI for ArcGIS Server.

1 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.
Exelis 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 ITT VIS 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.
2 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
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


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.
<LIConnectors: 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 Exelis Visual Information Solutions for integration with ArcGIS.
3 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


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
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), which is one of the core products available from ITT VIS,
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 locationon 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 (http://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 submitt ing and executing operating system
commands. This is a key feature of our meth odology 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 Exelis Visual Information Solutions. 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.
4 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.
5 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.
6 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.

Vous aimerez peut-être aussi