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

Post on 09-Jul-2018

213 views 0 download

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

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

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

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

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

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

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

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.

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

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.

Demo 1 Branching using the Calculate Value tool

Demo 2 Branching using a Script tool

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

Iteration

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

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

Accessing the iterators in ModelBuilder

Demo 1 Iterating Feature Classes

Demo 2 Iterating For

Demo 3 Iterating Feature Selection

Demo 4 Iterating Multivalue

Demo 5 Model within a Model

Main Model

Sub-Model

Demo 6 Model within a Model within a Model

3 Level Nested Models Model 1

Model 3

Model 2

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%

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

Python Equivalent of Iterators in ModelBuilder

Questions?

Please fill out the evaluation form online at:

http://www.esri.com/ucsessionsurveys

Session ID - 1914

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

Thank You!!!!