Notes from ESRI 2010 Education User Conference
See Notes from ESRI 2010 International User Conference for additional material covered during the ESRI
2010 Education and International User Conferences.
5 key messages:
1) GIS = critical thinking platform for analytical and reasoning skills.
Geovisualization (maps) versus. GIS (data, analysis, model)
Model Builder is a constructivist learning tool.
D. Johanssen Modeling with Technology – Mindtools for Conceptual Change, 3 Edition.
2) GIS beyond the classroom – the education enterprise.
Administrative use of ArcGIS is included in the site license.
Use ArcGIS at on campus for safety and preparedness, facilities management, IT integration.
GIS improves planning, decision making, efficiency, resource management, return on investment,
Abu Dahbi – use GIS for master plan, school buildings, future locations of schools, monitor student
performance, distribute load of teachers, student transportation optimization, safe biking routes, GIS
taught in secondary schools. GIS part of Spatial Data Infrastructure. GIS portal has school finder for
parents to compare schools. Mobile GIS – blackberry app for executives and public.
3) Enterprise GIS in education – Desktop, Server, Enterprise, Web clients, Mobile cloud.
ArcGIS server > Mobile (wifi) > ArcPad. Use published layers, edit operational data (not basemap data),
deploy project on tablet PC (mobile data access), collect data in field (use editing template).
Geo-collaboration – work with system administration.
ESRI & Health – (www.esri.com/geomedicine)
78% of public health departments have ArcGIS server.
60% of countries have ArcGIS server in health department.
For free copy of book Cartographies of Disease to give to medical professional contact
4) Imagery Analysis in ArcGIS10
See section on Image Analysis.
Dr. Mark Chandler – Earthwatch Institute.
Citizen science and GIS for sustainable environment.
Teams of scientists and self paid volunteers.
Field experience – experimental learning with scientific research.
Themes – climate change, oceans, ecosystems, cultural heritage.
Multifunctional ecosystems - different landscape scales – global, watershed, filed level – different
processing and players.
Ex. 1 - Sustainable coffee production in Costa Rica. Declining yields, increased production costs, lower
farm incomes, soil erosion. Tools – maps and log books, models, people. Remediation – switch to
organic fertilizer, increase lime, protect soil, manage tree cover (insects for pollination, leaf spot disease).
Ex. 2 – Biodiversity conservation in agricultural landscape for jaguars in Brazil. Forests fragmented by
farmland. Remediation – convert some farmland to forested corridors for animals to access park reserve.
String together large corridors (multiple water sheds) along rivers in Amazon. Engage politicians, media,
5) Data Sharing
ArcGIS Explorer Online (http://www.arcgis.com).
Search for layers to add. In browser make map and save to ArcGIS Online account.
Can store 2GB of data for free to ArcGIS Online (for web map mashups). Share data for different web
apps. Layer package – packs data and symbology and some metadata together.
Consume ArcGIS Online data via different client applications. Can create groups and share data only
with a specific group.
SIG Community College:
Windows Admin. App works with ArcGIS Server to run ArcGIS on iPad.
Ken Yarrow of South Western College, CA uses desktop ArcGIS on a server installed with Windows 2008
Server OS and Windows TS (client) ($20 per license). Similar to remote desktop access. Can access
ArcGIS on his iPad.
Gainesville State University uses VMware to access 100 computers on campus with ArcGIS installed.
Promote wider use of GIS on college campus:
Infuse GIS with other course disciplines (social science, etc.).
Create module in GIS for other faculty departments.
Integrate GIS into mission of college (e.g., map where foundation money is coming from).
Ask other departments for challenging project (e.g. geocode student and census data to find out
more about students).
Rename “Introduction to GIS” class to “Digital Earth” – improves enrollment.
Make Introduction to GIS course an elective for general education studies.
Offer Python scripting class instead of VBA and ArcObjects.
Track students after graduation and find out work titles.
Look at occupations to see where GIS should be emphasized. Local input and survey. Regions pool
resources. Look at clearinghouse jobs.
Partner with middle school and high school. Career decisions often made in 7 and 8 grade. Career
Days held in school.
GIS mentoring – high school students mentor junior high students.
Loaner program for GPS and laptops (e.g., GIS Girl Scouts), geocaching badge in Boy Scouts.
UCGIS – GeoTech center website. Share success and best practices within community.
ESRI has closed captioned videos.
ESRI is working with 4H, Boy & Girl Scouts, after school programs.
Notes on speaking with ESRI Help about ArcGIS 10 Server:
Server license – 3 levels depends on how data are used (view or edit shapefiles of GDB).
ArcGIS Server Help – Planning and Deployment document and level of licensing:
Resources.arcgis.com > server > help > admin server > tuning and configure > planning
Workgroup licenses for classes – GDB connect is limited.
Desktop installed on student workstation and 1 instance of server. OK, if data not being modified on
ArcGIS server with client (ArcMap). User for large DB or for students creating DB and each student has
their own layer to work on. Consolidate work in GDB served by ArcGIS Server.
If students do not share data – each classroom has workstation with ArcGIS desktop, and ArcGIS server
accesses GDB remotely on server:
1) server for collaboration – update/modify GDB.
2) or make data/map available on the web. Can also use web editing (create feature on web and
post to GDB). Feature service extension for Map Service Community Mapping. Version editing
would allow QC/QA.
Flex is easiest Web API, else use other Web ADF (e.g., Silverlight).
Notes from ESRI 2010 International User Conference
Richard Saul Wurman was the keynote speaker (architect and graphic designer) – he created the TED
(Technology, Entertainment and Design) conferences that feature “riveting talks by remarkable people” –
his speech on 192021 (comparing cities) was not memorable.
See http://www.esri.com/events/index.html for conference highlights.
For ArcGIS10 seminar (Sept. – Nov. 2010), see http://www.esri.com/events/seminars/arcgis10/index.html
DVD will be sent out in 4 weeks – will contain only slides (no audio or demos).
Much of the notes are taken directly from the slides.
ArcGIS 10 new release.
ArcCatalog now part of ArcMap (can collapse to a side tab).
Table of Contents dockable and can hide (side tab).
Searchable window to find tools, maps, data.
Can search for symbols by name/type.
Search for tools and autocomplete function.
In ArcMap - new Basemap layer for fast display/pan/zoom (static data). Basemap layer is NOT editable.
Icons smaller (can make larger Customize > Large Icons).
Python is now main scripting language (vs. VBscript).
ArcPy (Python script window) extended for raster analysis and mapping.
130 new geoprocessing tools.
Fuzzy logic tools.
Easy to add tools to menu and drag and drop.
Field Calculator works with Python (and VBscript).
Geoprocessing tools allow you to continue working while the GP tool is running in background.
Can convert a script to a tool & use tool in a model. Can take any GP tool & use in ArcGIS GP service.
Snapping environment simplified.
Templates for populating attributes.
Feature template (for consistent features).
Can create mapbook/atlas tool (replaces DS Mapbooks) uses Data Driven Pages toolbar. Make atlas
based on grid (index map) or based on work project areas (e.g., street repair points).
Time slider for features in time series.
Map package (.mpk) contains the .MXD, data, & symbology for sharing.
Expects a .mxd description and tags.
Can package only the data in the map extent (not entire dataset).
GP package map tool extracts the .mpk file to a specified location.
Validate Joins button displays error messages from problem joins.
3-D editing easier and layer-based editing.
Download setups = faster installs.
License borrowing (check out).
Send input/ideas to ESRI at ideas.arcgis.com.
ArcGIS.com (global) library of imagery and elevation data, streetmaps, building footprints.
ArcGIS Explorer Online version (see www.arcgis.com).
Store 2 GB of data for free to ArcGIS online (for web map mashup). Can restrict who sees the data
ArcGIS online for iPad and iPhone app. Windows Admin. App. works with ArcGIS Server to run ArcGIS
on the iPad.
Open REST API.
ESRI virtual classroom training (live instructor).
Certification Program is forthcoming.
Free ArcHydro tools.
Network analyst - location allocation.
ArcLogistics online service for routing and time schedule.
Twitter and Ushahidi (crowd sourcing) – live GPS from people.
ArcGIS Mobile maintains log of position of people.
Tips for working with large vector datasets (large # features or vertices):
Add to Basemap layer for fast display (cannot edit).
Dice tool and Tiling added to more tools.
See example of Vertex Count python script in Help - paste into Field calculator
Use SQL in attribute queries (see SQL reference help):
IN [ x, y, z] instead of x AND y AND z
SELECT DISTINCT, SELECT MAX Subqueries
e.g. "GDP2006" > (SELECT MAX("GDP2005" FROM Countries)
e.g. "Cntry" in [SELECT DISTINCT Country FROM ____ table]
Use Find Identical tool to find & delete duplicate records. Results output table shows duplicate records
Handles Landsat, LIDAR elevation, MODIS, high res and hyperspectral imagery, etc.
Geoprocessing tasks: clip, mosaic, enhancement, NDVI, composite bands, change analysis,
classification (do not need ERDAS or ENVI in the classroom to teach classification).
Image analysis window for on the fly processing creates temporary layers - not written to disk.
New data type - Mosaic Datasets in Geodatabase (dynamic mosaics - use pointers to raster files)
Raster calculator (Map algebra) is a geoprocessing tool for editing with python.
Map algebra used to concatenate many operators in an expression.
Raster object points to dataset (an output raster) which is temporary with save method to save raster
Python has NumPy (generic python) array.
Swipe, flicker, blend resolutions capabilities.
Dynamic collection of ground truth and classification of image.
Can display time series using time slider if imagery has time stamp. Add real time data feeds.
ArcGIS10 Raster and Imagery:
Base data (imagery) by ESRI –
Sub-meter for cities.
Updates for 50% of US (1 meter).
Worldwide 15m imagery.
Global Landsat – Natural Vue (from MDA Federal)
GLS – 1980, 1990, 2000, 2005 data as image service.
World Elevation – multi-sources: elevation ortho and DEM, derived imagery services: tasks –
More formats: BigTIF, Mapcache, …
Compressed pyramid (.ovr file replaces .rrd file). .OVR files are .TIF files with overview.
New structure, define in GDB. Use ArcEditor/ArcInfo (to author), ArcView (to view).
Dynamic mosaic and process on the fly.
Default viewing rules.
Better than raster catalogs.
Understands raster types.
Create Mosaic Dataset – add layers (raster data sets), pointers reference images. Makes foot prints, can
make overview image.
On the fly processing – new color correction.
Mosaic multiple images on demand.
New SQL query and NoData support.
Multi-resolution data – no need to resample.
Static web services: map cache, compact, cache, JPGPNG.
Dynamic image services – REST and SOAP.
ArcGIS Server – Image Services: Serves raster dataset and raster layer, can include functions. One-to-
many (1 raster, many forms).
Client app – define client enhancements.
Image Service – Image Extension serves mosaic dataset, catalog table, metadata, queries.
Can download original image and clip it.
No separate install (windows, linux, solaris).
Accelerated Display – seamless zoom and pan.
Image analysis window – single button access to enhance, interpret, process imagery.
Can determine which images overlay each other and display on top.
Catalog access – footprint and metadata.
Image classification toolbar – supervised & unsupervised classification – dynamic on the fly classification.
ArcGIS 10 now uses GDAL (open source) library to read rasters. GDAL is for files, if rasters are in SDE,
use SDE routines.
Imagery resource Center (ESRI):
Access to documentation.
Gallery of samples and videos.
Blog, forums, ideas portal.
Working with Spatial Statistics:
Use Geostatistical (Analyst) for continuous data.
Use Spatial Statistical (Analyst) for pattern analysis (point, line, polygon).
Spatial statistics toolbox – core ArcGIS source code in python.
Mean center – compute mean X & mean Y to get mean XY coordinate.
Standard Deviation Ellipse tool.
Directional Distribution tool – calculates mean center and 1-2-3 Std. Dev.
Global Spatial Pattern Analysis tools – analyzing patterns tool, spatial autocorrelation tool (measure
intensity of cluster).
Local Spatial Autocorrelation tools – shows hot & cold spots and outliers (Mapping Clusters, Cluster and
Outlier Analysis, Hot Spot Analysis)
Model Spatial Relationships tools – create spatial weights matrix, ordering least squares, geographical
Extending ArcGIS with R – technical briefing (using python).
Linear regression – Ordinary Least Squares (OLS) – global model and
OLS model: Y = B0 + B1x1 + B2x2 + … + E
Dependent variable (Y) – what you are trying to model or predict.
Explanatory variable (X) – variables that cause of explain the dependent variable.
Coefficients (B) – Values computed that reflect the relationship (+ or -) between X and Y
Residuals (E) – portion of dependent variable not explained by the model (difference between
actual and predicted value = over/under predicted), random error.
Default output is a residual map.
Scatterplot matrix for comparing X vars to Y var and +/ – relationships (look for diagonal graphs), to
determine which X variables to use in model.
Perform 6 checks on data:
1) Coefficients should have expected sign (+ or -).
2) Look for statistically significant explanatory variables , want high R value. (Probability and Robust
Probability are significant if * next to the value). If Kohner statistic has *, can trust only the Robust
3) Multicoliinearity – set of explanatory variables have low variance inflation factor (VIF < 7.5 is good). If
VIF > 7.5, then there is a problem with redundancy, so remove variable unless it must be in the model.
4) Compare models by looking at AIC value. Akaike Info. Criteria (AIC) are used to decide which model
is best, want model with lower AIC value.
5) Model Bias – When Jarque-Bera test is significant (has * value) = biased. Results indicate key variable
is missing of outliers. Significant P value = residuals deviate from normal deviation.
6) Spatial Autocorrelation – Run for residuals (want low z score = random pattern for residuals). If
residuals cluster – missing a key X explanatory variable.
After OLS model, run Geographically Weighted Regression (GWR) – GWR is a local model that
explores local geographic variation. Regional variation may be valid (make sense).
Use same OLS variables in GWR model.
GWR equation for each feature and creates subset for close features.
Needs more data than OLS (at least 100 features).
GWR creates coefficient surface for each X variable. Shows where X is important in certain areas. Can
produce predicted values.
Exploratory regression tool examines all 6 criteria. Available for download from resource center.
Specify maximum number of X variables.
Start with R = 0.5, max coefficient P value = 0.05, max VIF value = 7.5, Min Jarque Berra value = 0.1,
Min Spatial Autocorrelation value = 0.1.
Report generated – global summary:
Which X variables not important and which are redundant.
Summary of residual normality shown.
Summary of best spatial autocorrelation – in future.
ArcGIS 10 Web Mapping:
Base layer, operational layer, tasks & tools (focused apps), web application interface (Web API).
Web APIs – client side programming, simple architecture.
Functionality: Mapping – mashup map services from different ArcGIS servers, Query – attribute and
spatial, Geocoding, Editing, Advanced GIS - network geometry, routing and geoprocessing.
Flex is out of the box app using ArcGIS viewer, uses Flash.
JS is more difficult, must handle different browsers.
Silverlight is more customizable than Flex.
JS, Flex, Silverlight use REST – URL based – REpresentational State Transfer.
Stateless – does not keep information.
Cache – does not calculate = faster display (usually for base map). Must clean cache to remove old data.
REST and client side APIs: client API interacts with services using Rest endpoints.
Adding Map services: Cached map service – tiles are pre-generated for different map scales.
Dynamic map service – for frequent changes.
Image service – image format, compression, pixel size, more functionality.
Mashup: Graphics layer (client side) - custom data source, e.g., CDL (graphics layer) over Google earth,
Introduction to ArcGIS10 Server:
Enables web mapping:
1) Author (create map in ArcGIS Desktop (ArcMap, ArcCatalog, ArcGlobe).
2) Publish (map) service to ArcGIS Server, ArcGIS.com and Internet.
3) Use (map) service in Web GIS (browser), ArcGIS Explorer, Desktop GIS, Mobile GIS.
Data/GIS resources – GIS Server (manages requests and hosts services)– Web Server (hosts web
GIS Resource GIS Service
Map Document Map service
Address Locator Geocode service
GeoDatabase Geodata service
Tool box/layer Geoprocessing service
N/A Geometry service
Globe Globe service
Raster data Image service
Folders GDB Search service
To make info available on web:
Publish GIS service.
Use ArcMap or ArcCatalog OR
Use ArcGIS Server Manager
Add GIS server.
Specify URL for server.
Publish to root or other folder.
Select capabilities (mapping, KML, etc).
Usually server is on different machine (not on personal PC)
Need ArcMap on the server.
.MSD (file) – map service for fast display.
ArcGIS Server Manager – web based administrative tool for creating web apps. – no programming or
customization required (or else use Web APIs Flex, JS, Silverlight).
Applications tab – create web app. – users do not need ArcGIS – only need a web browser.
Can restrict who has access to web app.
What’s new in ArcGIS Server10:
Not too many changes – similar to ArcGIS Server 9.3.1.
Enhanced web mapping apps.
Ready to use: ArcGIS.com Viewer and ArcGIS Explorer Online.
Can create mashups with ArcGIS.com:
Author map using ArcMap
Publish using MapService publish toolbar
Map service is put in a folder (service directory) which has a link to arcGIs.com.
Can specify base map behind the business data.
Save the map within arcGIS.com profile. Can share map.
Can open map in ArcGIS.com and ArcExplorer Online.
Do not need administrative passwords.
Can host web app on you r network.
ArcGIS Viewer for Flex is more secure than ArcGIS.com.
See resources.arcgis.com > out of the box apps > Flex for ArcView
Modify XML to configure.
esri.com.sharepoints – can embed in sharepoints.
Enhanced map services – Bing maps are free for web apps.
Added support for displaying Maplex (annotation) and cartographic representations.
Can query layers – directly access SQL Server/Oracle without ArcSDE.
Map Animation: Layer Properties > Time tab. Just need feature with date field. Can have slider bar with
2 ends and a constant time period to view (1900 |-------[ ]-------| 2000).
Compact map cache format – larger chucks of tiles moved, fast cache creation and deletion.
Cache tile format MIXED = uses JPG and PNG (at edges).
GP tools to import and export caches, GDB attachments and relationships.
130 new tools – network allocation, PDF Maps on Demand.
Create data extraction services:
Create GP model and publish tool.
Drop model into TOC.
Save and publish .mxd (not .msd format which does not have tools) to ArcGIS server.
Clean cache and load app.
This model is in the ArcGIS resource center.
Define map sheet styles (size, legend, etc.)
Advanced editing on the web:
Split and merge polygons
ArcMap with feature service stored locally, edit data on web, send back to feature service GDB.
ArcGIS Server runs on Amazon EC2.
Applications using ArcGIS Server:
1) California Fish & Game Dept. - Biogeographic information and observation system
Very customized code: Original code AXL config file converted to.mxd and .msd files to publish map
services. ArcIMS and ASP with ArcXML. Converted to ASP.NET with ArcGIS Server web APIs.
Handle > 1000 data sets in 1 application, grouped data my feature type (raster, points, lines
polygons to aide display order) and break listing into numeric groupings (1-299, 300-599) so
fewer layers for a .mxd/.msd.
Data catalog to search and add data. Need system to reference unique ID for each dataset to
corresponding layer across database, catalog, Table of Contents (TOC) and map for any number
of map services.
TOC has no fixed layers. Load data on the fly. Display dynamic legend per layer. In TOC show
layers, legend, attributes, etc.
Feature queries and location search tools. Metadata button and attributes hot linked to specific
Public and secure modes. Secondary data base used for security level.
Include services from other websites.
2) ArcGIS Server Web Editing service for City of Pomona, CA.
Problem – Running SQL Server Express with Workgroup GBD for 15 users with ArcView license –
multiple users cannot edit the GDB at same time.
Solution – ArcGIS Server Web Editing service. Series of web apps with different write permissions by
department. Web site integrated with Windows authentication.
Create user groups and assign editing rights. Permissions assigned with ArcGIS server Manager.
Editing capabilities allowed through Editor task control.
ArcGIS Server on local map server.
ArcSDE Enterprise for editable layers.
Versioned GBD for editing, non-versioned GDB for viewing workgroup GDB.
QA & QC edits reconciled and posted to default version.
3) Geo-referenced Construction Information management, Geo DB design and Implement, GCIMS (by
Ahmad Salah – Stanley Consulting).
Collect data and attributes in field (test infrastructure = data, and photos), GPS coordinates and time,
Forms are automatically updated, generated, and hyperlinked.
Email KML with hyperlink to clients to open in ArcGIS Explorer.
Base maps = street maps or aerial photos.
Need to integrate with clients‟ DB.
Tasks: data collect, desktop app to manage data, integrate, report to clients.
HW: GPS handheld receiver (Trimble Nomad), 1-3 m accuracy, built in camera, MiFi connect for real-
SW: ArcPad10 and streetmap, custom forms, KL clients, web portal.
GDB: various CM layers, attributes with domains.
ArcGIS in the Cloud on Amazon EC2:
Renting/hosting server on premise or in cloud to run apps and host data.
On premise – you own and administer the server.
Amazon EC2 – serve maps in the cloud.
Can have development in cloud but deploy on premise.
Service Level Agreement (SLA) 1 -3 levels
SLA1 – server up 99.9% (down 5 min/year), on premise
SLA2 – server up 95% (down 18 days/year), on premise/cloud
SLA3 – server up 90% (down 36 days/year), cloud/on premise
Unsupported – As Needed – Cloud
Consider if cloud is secure enough.
Useful for GDB data management, GP planning & analyze, field mobility, operation awareness web API.
Elasticity – adjust for demands - peaks and troughs
Elasticity for data management and dynamic processing.
“Cache cooking” – create cache and move it. Encrypt data when moving it (via TCPIP).
Keep the database with the server.
Synchronize between on premise and cloud GDB. Hybrid deployment with redundancy.
Real utilization of owned vs. rented server.
Amazon web site has calculator.
3 Sizes – standard, High CPU, High Memory
Elastic block storage
Data transfer in/out per instance
AMI – Amazon Machine Image – virtual image works in Amazon Cloud.
Elastic load balancer, Amazon cloud watch.
Elastic IP address (stable IP)
High availability (double instances, monitoring).
Autoscaling Service – monitor CPU and turns instances on/off.
Different prices per Zone (east coast, west coast, Ireland, Singapore) – different data centers.
To save on costs:
Start what you need, else stop it (instance)
Use Elastic IP,
Avoid troubleshooting if problem is not persistent.
Extending ArcExplorer with API (application programming interface) and SDK (software
Customization – App configuration (appearance) and Add-ins SDK.
App. Config. Manager (see start menu):
Include basemap, modify functionality for custom user experience.
Custom splash screen and logo.
Modify context menus, tabs, buttons.
Add add-ins to tab.
Custom resources (basemaps and services)
SDK requires separate install from http://resources.esri.com/arcgisexplorer, .NET 3.5 SP1 minimum,
.NET C# and VB.NET, Visual Studio 2008 and 2010.
Explorer API to develop Add-ins: button, dock window, extension, combobox, gallery, checkbox.
Add-in is a class that inherits from base class. You override methods and properties.
Use Visual Studio to create add-in class and write code using Explorer API, and build the Application.
Sample code is available.
See ArcGIS.com Hollyrood Public Explorer applications – example code and Points of Interest layer
Python Essentials in ArcGIS 10:
For executing long workflows and automating geoprocessing.
Develop long python script in and IDE (PythonWin, IDLE).
Can execute short python in ArcGIS python window – use for testing code. ArcPython on toolbar.
# begins a comment line
Variable, function, tool (Case Sensitive)
Variable = “string” or number or list.
Indented lines are executed:
if var == “a”:
1) while x < 5:
2) for num in range(1,5):
for num in X
Use / for path “c:/data/x.shp”
Functions and modules (must import before using)
e.g., math.sqrt(4) (math is a module, sqrt is a function)
ArcPy is access point for GP tools – a package of functions, classes and modules (import arcpy).
Separate mapping and spatial analyst modules (arcpy.mapping, arcpy.sa)
To get python code:
Results window „copy as python script‟,
Export model to script
arcpy.env.overwriteoutput = True
GetMessages () – returns all messages
GetMessages(0) – returns information
GetMessages (1) – returns warning
GetMessages(2) – returns error
12 list functions (ListFields, etc.)
Batch processing – use list functions to process feature classes in a list.
fcList = arcpy.ListFeatureclasses(“*”,”polygon”)
for fc in fcList: …
home is assigned the current path (working directory) for the python script.
Use Describe function to get data properties
Use GetParamterAsText to read arguments from GUI tool. (zero based index)
Core Python Programming
Geoprocessing Scripts Development:
Script can be a macro tied to specific data set.
Script can make a tool which uses parameterized data (P - parameters) i.e., not hardcoded parameters.
Create macros with model builder and python window.
Create tools with model builder, python script and ArcObjects.
System tools delivered by ESRI. Custom tools – you build.
Geoprocessing – see creating tools document.
Can call a model within a model.
To call a model from python:
Import into toolbox, then have python script call the model (arcpy.<model name>)
IDE for programming in python: WING, IDLE, PythonWin.
Export model to python script (iterators will not export properly), then modify code to include iteration,
error checking, etc.
Layer or view – can work on all or selected records.
GetParameter (long layers, Boolean, etc.).
GetParameterText (argument strings)
Keywords should be in Upper Case, no spaces
Booleans – True or False keywords.
Data Types – has UI control and validation logic button.
2 types – data types and scalars (numbers, strings, simple structures).
Data element has data properties.
All data types have a string representation.
Data types can be multiple values.
Feature set – can interactively add features to use in model/tool.
Derived output: calculate field, add field, create feature class (provide workspace, name, schema).
Tool does one operation – must have output!
If modify data – add and output parameter set to derived output and validate script.
Can dynamically update choices, fields, etc.
Tool validation class – initialize parameters, update parameters, describe output. See validation tab –
and enter code. Advanced validation – use tool validation.
User model builder to sequence tools into workflow.
Input features (not feature class or layer).
Parameter order is important – cannot change.
Can embed script in toolbox.
Raster Analysis with Python:
Raster analysis and modeling: Spatial Analyst and Map Algebra.
Map Algebra – create complex expressions by concatenating many operations in an expression.
In python set spatial analysis and environment:
from arcpy import env *
from arcpy.sa import *
<output raster> = <parameters, tools >
outRAS = slope(“inDEM”)
Input elements: raster, features, numbers, constants, objects, variables.
File names are in quotes. If file is in workspace, do not need path included with file name.
Cast the raster:
outRas = Raster(“inraster1”) + Raster(“inraster2”)
outRas = Raster(“inras”) + 8
All tools that output rasters work in Map Algebra.
Tool names are Case Sensitive.
Tool parameters – some require, other optional.
Keywords are in quotes and CAPs:
outRas = Slope(“inras”,”PERCENT”)
Output is a Raster Object.
In python, output is temporary, must save to make it permanent.
Access Map Algebra:
Raster Calculator (standalone or in Model Builder)
Python Window – single expression
Scripting – complex models. Use IDE to create script (IDS has line completion and colors).
import from arcpy.sa (or import * will import everything from SA)
myras = Raster(“LUC”)
Complex Expression – best to set input to a variable name and use variable in the expression.
Raster Object – is a variable pointing to a Dataset (an output raster).
RO has a series of properties to describe raster, describe values).
RO is temporary. Save method will save it.
Local operators can be optimized = work on a per cell basis.
Can loop for X in layerlist.
Classes – Objects used as parameters in tools.
Have varying number of arguments depends on the parameter type (e.g. neighborhood).
Number of entries for parameters can vary depending on the situation (e.g. remap table).
Query the individual arguments.
General – fuzzy, time, horizontal, vertical, kriging, radius
Compound of lists – Topo classes
List within lists – reclass, weighted reclass table, topo (subset)
E.g. neigh = NbrCircle(4,”MAP”)
radius = neigh.radius
neigh.radius = 6
Vector integration – need feature data (e.g. IDW, Kriging)
Can use GP tools on feature data in expression (buffer, select)
E.g. sp, sn, fl = 5, 20, 10
listdist=[sp, sm, fl]
For X in listdist
<do something using X>
Can convert script to tool and use tool in model.
Can take any GP tool and use in GP service.
NumPy is a generic python array storage mechanism.
Create custom function in NumPy.
Can create custom tool.
Free NumPy tools for clustering, filter, linear algebra, optimize, Morph, Fourier transformation.
RasterToNumPyArray and NumPyArrayToRaster tools – require lower left corner and cell size (attributes
Have to import NumPy.
Python Scripting for Map Automation in ArcGIS10:
arcpy.sa (spatial analysis), arcpy.ga (geostatistical analysis)
Arcpy.mapping – GP mapping module. Arcpy site package.
Use ArcObjects for fine grained manipulation of maps.
Use arcpy.mapping for coarse grain basic tasks and management.
Arcpy.mappnig has classes and functions for .mxd, printing, mapbook, server publishing (services).
Manage .mxd, layers (.lyr file), and data.
Can find layer and change data source, update layer symbology.)
Can automate exporting and printing .mxd, .pdf, and map book.
Can bind separate .pdf files together into a single document.
Publish arcpy.mapping scripts to ArcGIS server.
See sample scripts on resource center.
Run arcpy in IDLE python window, at command line inside ArcMap (python window), and as a GP
Product Library > GeoProcessing > ArcPy site > Help.
Arcpy has help. The locate button expands the help tree to see where you are on help.
***Print out the alphabetical help – all syntax for all functions.
Lots of samples – copy and paste code.
Arcpy.mapping.MapDocument(“CURRENT”) or give the path on disk.
Need to refresh often: arcpy.RefreshActiveView(), arcpy.RefreshTOC()
No “New Map”, so keep an empty .MXD available.
Cannot create new objects (text, arrow, etc.), so build a template first with these objects – they can
all be outside the page (anything outside the page will not print).
Python window – command line.
Can save python code in window to a python script (and load scripts).
Intellisense appears in the help window.
mxd = arcpy.mapping.MapDocument
mxd.SaveACopy(“name.mxd”,”9.3”) to save to a older version.
Lists start with  index.
df = arcpy.mapping.ListDataFrames(MXD)
All properties updated via .lyr files.
Can change visibility, open .lyr file, definition query.
DataFrame properties and methods: DataFrameTime, ListTableViews
Can use wildcards “great*”.
Wild cards are not case sensitive.
Name the layout elements when you create the layout template .mxd, so that they are easy to access by
name in the python code.
Also set the anchor for the elements (center anchor point works well for text).
Can save logo as part of document.
If use \ in text string, include r:
Print & export PDF and DPP classes.
10 export formats.
Map server Publisher (MSD).
MapBook generation (Data Driven Pages).
Data Driven page document – sample code – will generate (Report Lab used) multiple gage document
with title page, maps and index. Needs DPP and Arcpy mapping – one that sets different extents for a
page and one that updates the title and adds extra pages to PDF.
Update Data source:
Arcpy works with all file and GDB types. Updates joins and relates, layers in .mxd, tables, workspaces.
Can replace .mdb with .gdb if data converted from personal to file DB.
Must change from [___] to “___” field names.
e.g., mxd.RepalceWorkspaces …
Can open .mxd with OS module.
ArcObjects has add-ins rather than .dll.
Call GP from ArcObjects.
Call ArcObjects from python code.
ESRI Production Mapping:
Formerly PLTS – production line toolset.
Data Driven Pages – new map book production in ArcGIS 10. Use DPP for simple mapbook.
Use Production Mapping for advanced cartographic production, high volume production, custom
mapping, and map production workflows ( see Mapping and Charting solutions).
Product Library – centralized production rules, maps and documents. Manage production life cycle.
Integrate with ArcMap and Workflow Map.
Product Library is a GDB. If personal GBD – same access. If SDE – administrative and user permissions
(multiuser permission control.)
Enterprise management of files.
Configuration management – map sheet and batch production, data pages.
Check .mxd out of product library.
Standard cartography – template instructions, data frame, layout rules, and python scripts.
Grids and graticules layers – use GP tool and store grids in featureclass.
Individual extents/pages store as layers.
Grid includes tics, annotation, grid lines – these features can be edited.
Product Library defines extent and coordinate system.
GP tools for hypsometric tint, contours and rasters.
Manage cartographic representations across layers.
Link feature attributes to representation rules.
Visual specifications stored in GBD.
Symbology controlled by SQL expressions and VB scripts.
Layer snapshot tool – identify changes in symbology between map versions (does not require ArcSDE).
Can review changes between versions.
Layout –data frame rules.
Graphic table – linked or independent of feature layer.
DB elements store in GBD and share elements and metadata.
Printing – batch print.
Color separation – raster (tiffs) and vector.
Legend created with graphic table:
Visible extent filter - Legend can show information that is only displayed within map extent.
Unique filter for symbols – show 1 symbol in legend for multiple symbols on map have same
Draft mode and locked mode (no editing map layout).
Apply layout rules will position map elements on layout.
Map document (and .pdf and .tif) checked into Product Library when finished – set as another version.
Cartography SIG Meeting:
IMTA – International Map Trade Association (www.maptrade.org) – promotes map products within &
outside the U.S. September meeting in Washington D.C.
What‟s new in ESRI Cartography:
Symbols search tool to find symbols.
Data Driven pages (replaces DS Mapbook) has index layer, dynamic text, single layout, multiple pages.
Can exclude layers and clip to shape.
Arcpy.mapping – python scripting to manage maps, layers & datasets. E.g., update symbol for many
maps, change data sources for all mps (SDE layer).
Support for multipage PDF files – title, content, map, index pages.
Expose arcpy.mapping as GP service.
Single sided boundaries (e.g., Washington/Oregon border – only place Oregon name).
Place label over holes in polygons.
Repeat polygon labels in single large polygons.
Maplex labels draw in optimized map services (read only mode, but do not lose text).
Cartographic representations draw in optimized mp service.
Layers drawn with representations.
Layer based editing and representation.
Dashed lines - synchronized markers.
GP tool – tiled labels to annotation tool – batch.
New Generalization tools –
Process multiple layers
Maintain pattern, density, resolve conflicts between features,
Geometry or representation overrides.
Concentrated on roads and buildings – thin road network, merge divided roads, etc.
Generalization tools are at ArcInfo level.
Some representation tools are at editor level.
Share maps as packages (.mpk) – .mxd, layers, data, maps, tools, models, customization.
Export to PDF improvements:
Exports to older Adobe Illustrator version 6 (7?).
Avenza map Publisher – good for exporting ArcGIS to AI format.
Create queues of multiple files as print job (scripting).
Better export for large format page sizes.
Data models for cartography (see templates).
Map template gallery online.
Match transparency on map in legend symbols.
ArcGIS services all built using Web Mercator projection (conforms to Google‟s projection).
ESRI wants a list of annotation and editing requirements.
Imagery SIG meeting:
Imagery Resource Center (ESRI):
Access to documentation
Gallery of samples and videos.
Blog, forums, ideas portal.
Talks on Modeling:
1) Population High Resolution Model for City.
LandScan data set – day and night snapshot of population location.
Developed 24-hour cycle model with 2 hour intervals:
Resident population, employee population, customer population, student population – Where are these
populations at what time?
Used county assessor tax use codes and census block data for resident population, InfoUSA data base
for employee data, ITE trip generation manual for customer population, FTE enrollment and student plans
for student population.
Weekday and weekend, summer and non-summer modeled.
Profiles for customers and workers, etc. for different types of population (ex. Government, schools,
Entered data into XLS.
Modeled with python.
2) Measure fragmentation of Chinas landscape using effective mesh size.
Three levels of fragmentation geometries.
Areas with least fragmentation are best for conservation.
3) FORest Monitoring for Action (FORMA).
www.cgdev.org/forest (Center for Global Development)
Deforestation probability in proximity to cleared forest.
Used MODIS NDVI – stacked tiles for time series analysis.
Collect long term trend and short term trend.
Used Amazon Web Service (EC2) – 20 instances.
Boto – open source python library to work with AWS.
GDAL (Geospatial Data Abstraction Library) – load rasters as Numpy array.
Notes on speaking to ITT/ENVI:
ENVI IDL code can be called from ESRI‟s Model Builder as a process.
No plans to include a graphic model interface for ENVI/IDL.
ENVI tools built with IDL.
IDL library of code and software shaved by developers.
ENVI has clump function.
Table manipulation – User ArcGIS.
Asked if NLCD and See5 will be part of ENVUI sometime.
Notes on speaking to HP:
Replacement for SARS‟ HP DesignJet 5500ps is the 42” Z6100ps plotter – 8 color pigment inks (CMYcm
and 3 blacks). (HP5500ps uses 6 color dye inks.)
Has better color gamut and different color management system, but can emulate HP5500ps colors.
HP Instant Printing Utility or new plotters (does not work with print servers) – must be installed on PC.
Notes on Speaking to ESRI Help Desk:
To access raster attribute table: IRasterDataseetEdit2 interface. BuildAttributeTable method
GP tool > raster > BuildRasterAttribute (python)
To read attributes for .img files – can only have raster integer value (not 32 bit floating values – convert to
integer) and remove RGB, classname, etc fields.
Region group command.
Zonal stats – Stats counts summed.
Conditional function: If ____ > #, else #.
Export column from attribute table:
Attribute table > right click on column > Summarize > Save As > select output type (e.g., .dbf or text file).
Fragstats in batch.
Notes on Map Gallery:
2010 Map Gallery winning entries: http://www.esri.com/events/user-conference/results/map-gallery.html
CDL map – 2 people from ADM stopped by to see the maps.
Person from Iowa said that corn is more lucrative than soybeans, so farmers are planting it continuously
(no rotation). Also noted that the topsoil in Iowa has dramatically decreased.
2007 CDL with time lapse of growing soybean plant was shown in plenary video.
Request copy of map – Controlling Data Simplification poster
Shows simplification formula and examples for lines at different map scales.
Ryan Kelly c/o Bureau of Land Management
Oregon/Washington State Office
333 SW 1 Ave,
Portland, OR 97204