San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in...

29
Technical Workshops | Esri International User Conference San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 3:15 pm - 4:30 pm

Transcript of San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in...

Page 1: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Technical Workshops |

Esri International User Conference San Diego, California

Branching and Iteration in ModelBuilder Shitij Mehta

July 24, 2012

3:15 pm - 4:30 pm

Page 2: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Questions for you

• How many User Conferences have you been to? • Geoprocessing experience?

- Little (rarely used) - Some (know the basics) - Advanced (build your own tools) - Guru (anointed or legendary?)

• Platform? - 9.3 - 10.0

Page 3: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Outline - I apologize - there is a lot to cover

• Branching – 30 minutes - Calculate Value

- Demo 1 - Tool – Feature Type - Demo 2 – Shape Type - Demo 3 – Merge Branch

- Demo 4 - Script tool example

• Iteration – 30 minutes - Demo 1- Iterate Feature Classes - Demo 2 – Iterate For - Demo 3 – Iterate Feature Selection - Demo 4 – Iterate Multivalue - Demo 5 – 2 Level Nested Model - Demo 6- 3 Level Nested Model

- Python Equivalent of Iterators in ModelBuilder

Page 4: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

All presentations will be available online!!!!!!!

Page 5: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

What is Branching?

IF some condition is true, THEN perform an action; ELSE the condition is false, perform a different action.

File in Workspace

If file X exists Add a field

Else if file X does not exists Copy and then add a field

Feature Class

If has X projection Do nothing

Else - Project

Examples

Page 6: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

How to branch?

• The condition - If-then-else

1 Calculate Value tool

2 Script tool

• Where to find the tool • Python Code • Data types • Preconditions in a model • Inline Variable Substitution • Merge Branch tool

• Creating a script tool • Python code • Setting script tool properties • Preconditions in a model • Merge Branch tool

OR

Page 7: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Inline Variable Substitution

The value of any variable can be used in the tool parameters by enclosing the name of the substituting variable between the percent signs (%). Substituting variables in this manner is called inline variable substitution.

Page 8: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Inline variable substitution

• In SQL expressions - Name = ‘%Value%’

- “%Value%”.replace( “ ”, “”)

• In Output name – C:\Scratch\Scratch.gdb\%Value%

• If string put “quotes” around your inline variable substitution

Page 9: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Precondition

Preconditions can be used to explicitly control the order of operations in a model. Any variable can be made a precondition to tool execution, and any tool can have more than one precondition.

Page 10: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 1 Branching using the Calculate Value tool

Page 11: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 2 Branching using a Script tool

Page 12: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Where to get help? Click Doc, Blogs

1. Understanding which if troubles you

2. If you are stuck at "if" – Part 1 – Branching using the Calculate Value tool

3. If you are stuck at "if" – Part 2 – Example of using Script tool to create

branches using if-else logic

4. If you are stuck at "if" – Part 3 – Does Extension Exists model example

5. If you are stuck at "if" – Part 4 – Does Selection Exists model example

6. If you are stuck at "if" – Part 5- Does Projection Exist model example

Page 13: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Iteration

Page 14: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Iteration = looping = repeat a process over and over Iteration in ModelBuilder = Run entire model or a single tool or a set of tools repeatedly Tools to iterate in ModelBuilder = Iterators Example - Iterate over a list of feature classes and project each feature class.

What is iteration?

Iterator

Page 15: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Iterates over a starting and ending value by a given value.

Iterates "while" a condition is true or false.

Iterates over features in a feature class.

Iterates over rows in a table.

Iterates over each value in a field.

Iterates over a list of values.

Iterates over datasets in a Workspace or Feature Dataset.

Iterates over feature classes in a Workspace or Feature Dataset.

Iterates over files in a folder.

Iterates over rasters in a Workspace or a Raster Catalog.

Iterates over tables in a workspace.

Iterates over workspaces in a folder.

For Value While Continue Iterate

Feature Selection

Value

Selected Features

Iterate Row

Selection Value

Selected Rows

Iterate Field

Values Value Iterate

Multivalue Value

Iterate Datasets

Name

Dataset Iterate Feature Classes

Name

Feature Class Iterate

Files Name

File

Iterate Rasters

Name

Raster Iterate Tables

Name

Table

Name

Workspace Iterate Workspaces

Page 16: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Accessing the iterators in ModelBuilder

Page 17: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 1 Iterating Feature Classes

Page 18: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 2 Iterating For

Page 19: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 3 Iterating Feature Selection

Page 20: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 4 Iterating Multivalue

Page 21: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 5 Model within a Model

Main Model

Sub-Model

Page 22: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Demo 6 Model within a Model within a Model

3 Level Nested Models Model 1

Model 3

Model 2

Page 23: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Rules for a nested model/model within a model

• Only one iterator can be used per model.

• Add only the tools you want to run as many times as an iterator in the same model.

• The script will not include the iteration logic if a model with an iterator is exported to a Python script.

• The output of any tool connected to the iterator can have (if required) a unique name for each iteration to avoid being overwritten by

• Using the system variable %n%

C:\Sctatch\scratch.gdb\output_%n%

• Using the Name or Value output of the iterator C:\Sctatch\scratch.gdb\output_%Name% C:\Sctatch\scratch.gdb\output_%Value%

• Using any other variable in the model as an inline variable C:\Scratch\scratch.gdb\output_%XYZ%

Page 24: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Rules for a nested model/model within a model

• Give default values to your sub model for setting and testing it

• Make model parameters in your sub-model that you want as variable in main model

Page 25: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Python Equivalent of Iterators in ModelBuilder

Page 27: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Questions?

Please fill out the evaluation form online at:

http://www.esri.com/ucsessionsurveys

Session ID - 1914

Page 28: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

24th July - Tuesday 1:30PM 2:45PM Technical Workshop Analysis and Geoprocessing ModelBuilder - Getting Started Ball06 B

3:15PM 4:30PM Technical Workshop Analysis and Geoprocessing Iteration and Branching in ModelBuilder

Ball06 B

25th July - Wednesday 8:30AM 9:45AM Technical Workshop Analysis and Geoprocessing Geoprocessing with ArcGIS for Server 04

8:30AM 9:45AM Technical Workshop Analysis and Geoprocessing Network Analyst—Automating Workflows with Geoprocessing

10

10:15AM 11:30AM Technical Workshop Analysis and Geoprocessing Building Tools with ModelBuilder Ball06 D

1:30PM 2:45PM Technical Workshop Analysis and Geoprocessing Building Tools with Python 28 E

1:30PM 2:45PM Technical Workshop Analysis and Geoprocessing ModelBuilder - Getting Started Ball06 B

2:00PM 3:00PM Demo Theater Presentation

Analysis and Geoprocessing ModelBuilder Tips and Tricks

Demo Theater - Analysis and Geoprocessing Exhibit Hall B

26th July - Thursday 8:30AM 9:45AM Technical Workshop Analysis and Geoprocessing Geoprocessing with ArcGIS for Server 09

10:15AM 11:30AM Technical Workshop Analysis and Geoprocessing Building Tools with Python 09

1:30PM 2:45PM Moderated Paper Session

Analysis and Geoprocessing Building Applications Using ModelBuilder and Python Scripting

27 A

3:15PM 4:30PM Technical Workshop Analysis and Geoprocessing Building Tools with ModelBuilder Ball06 D

Page 29: San Diego, California - Amazon S3€¦ · San Diego, California Branching and Iteration in ModelBuilder Shitij Mehta July 24, 2012 . 3:15 pm - 4:30 pm . ... Tools to iterate in ModelBuilder

Thank You!!!!