地理處理分析自動化
地理處理分析自動化
地理處理分析自動化
地理處理分析自動化
ModelBuilder
ModelBuilder基礎教學與迴圈
基礎教學與迴圈
ModelBuilder
ModelBuilder基礎教學與迴圈
基礎教學與迴圈
課程大綱
課程大綱
課程大綱
課程大綱
Session1 : 地理處理(Geoprocessing) 控式程式撰寫 具 Session2 : ModelBuilder圖控式程式撰寫工具 Session3 : 迴圈(Iterator)及模型唯用工具 Session3 : 迴圈(Iterator)及模型唯用工具 (Model Only Tool)開發技巧SESSION1 :
SESSION1 :
地理處理
什麼是地理處理
什麼是地理處理 Geoprocessing?
Geoprocessing?
什麼是地理處理
什麼是地理處理 Geoprocessing?
Geoprocessing?
地理處理(Geoprocessing)是針對地理資
地理處理(Geoprocessing)是針對地理資
料有系統地依序執行一連串的運算以獲
取新的資料的過程,協助您建立空間分
取新的資料的過程,協助您建立空間分
析模型和處理自動化,以解決真實世界
空間問題
空間問題。
地理處理語言
地理處理語言 模組化工具
模組化工具
地理處理語言
地理處理語言 –– 模組化工具
模組化工具
地理處理架構
地理處理架構
地理處理架構
地理處理架構
Tools Tools ModelBuilder P th Wi d Python Windowimport arcpy # prints True print arcpy.Exists("c:/data/Portland.gdb/streets") # prints
Scripts
地理處理工具視窗介面
地理處理工具視窗介面
Geoprocessing 目錄 搜尋 工具 搜尋 工具 環境設定 結果 Python作業流程範例
作業流程範例
作業流程範例
作業流程範例
學校作為緊急庇護所適宜性規劃
學校作為緊急庇護所適宜性規劃
那些學校是在較安全的區域?
• 學校常作為緊急狀況的庇護所 我們需要知 • 學校常作為緊急狀況的庇護所, 我們需要知 道那些學校在災害發生時是較安全的區域 Step 1: 崩塌道路分析環域 St 2 Step 3: 淹水區域套疊分析 Step 4: 崩塌道路分析環域 Step 2: 有害設施環域分析 淹水區域套疊分析 p 找到不在步驟1~3 範圍內的學校%
d
e
f
g
c
SESSION2 :
SESSION2 :
MODELBUILDER
MODELBUILDER圖控式程式
圖控式程式
撰寫工具
撰寫工具
什麼是
什麼是 ModelBuilder?
ModelBuilder?
什麼是
什麼是 ModelBuilder?
ModelBuilder?
視覺化(圖控式)的程式撰寫語言 • 不用寫程式碼 將工作流程封裝成為工具 將 作流程封裝成為 具 • 可重覆使用(Reusable) • 分享容易(Sharable)分享容易(Sharable)為何使用
為何使用 ModelBuilder?
ModelBuilder?
為何使用
為何使用 ModelBuilder?
ModelBuilder?
自動化管理地理處理工作流程 可在一個工具中執行複雜的連續程序 可外掛其他需要的工具和參數 可視覺化地呈現分析運作流程Toolboxes
Toolboxes類型
類型
Toolboxes
Toolboxes類型
類型
System toolboxes • 由ArcGIS安裝 • 唯讀(Read-only) Custom toolboxes • 由使用者自行建立 • 儲存在資料夾 (.tbx ( 檔 案)或geodatabase System toolboxes 是唯讀的, 包含許多好用工具 包含許多好用工具建立一個新的
建立一個新的model
model
建立 個新的
建立 個新的model
model
方法1 方法2. 方法1. 於ArcMap標準工具列上 直接開啟新的 ModelBuilder 此時為 方法2. 在自訂的toolbox > 按右鍵 > New Model ModelBuilder, 此時為 unsaved model Models被建立或儲存在被建立或儲存在 自訂工具或“My toolboxes”Model elements(
Model elements(組成元素
組成元素))
Model elements(
Model elements(組成元素
組成元素))
具備三類基本元素: 具備三類基本元素: • 工具(Tools) • 變數(Variables) • 變數(Variables) • 連接子(Connectors)加入工具或資料至
加入工具或資料至model
model
加入工具或資料至
加入工具或資料至model
model
Data Variable Data Variable Tools Tools 專案 衍生 Tools Tools 專案 資料 衍生 資料 System 工具 Script 工具 Model 工具Tools
• 從Catalog拖曳Data
• 從TOC拖曳圖層 從Catalog拖曳 • 從Search拖曳 • 從Toolbox拖曳 • 從Catalog拖曳圖資 • 從Search結果拖曳圖資 • 從Toolbox拖曳 • 在ModelBuilder按加入 • 在ModelBuilder使用插入選單 • Fill in dialog • 在ModelBuilder按加入 • 在ModelBuilder使用插入選單 • 在ModelBuilder使用插入 選單 15二種連接元素的方式
二種連接元素的方式
二種連接元素的方式
二種連接元素的方式
2 1 模式中的變數 地圖中的圖層 Connect Tool 為了要串接處理程序 使用Connect tool連結一程序的輸出作為另一個程序 Customers 為了要串接處理程序, 使用Connect tool連結 程序的輸出作為另 個程序 的輸入 Customers Identity Identity Thiessen Polygons Frequency Frequency Table衍生資料
衍生資料(Derived data)
(Derived data)為地理處理輸出
為地理處理輸出
衍生資料
衍生資料(Derived data)
(Derived data)為地理處理輸出
為地理處理輸出
既有資料 衍生資料
既有資料 衍生資料
Schools Buffer Schools_buffer
MyTable MyTable MyTable (2) Add Field In/Out 衍生資料 輸入資料將被更新 輸入資料將被更新
Model
Model處理狀態
處理狀態
Model
驗證
驗證(Validating)
(Validating)
驗證
驗證(Validating)
(Validating)
驗證所有元素和參數值和路徑是否正確
驗證所有元素和參數值和路徑是否正確
參數
參數(Parameters)
(Parameters)
參數
參數(Parameters)
(Parameters)
M T bl C tOutput Folder Create MyTable
Table 設定為參數後會有 “P” 符號 P 設定為參數後會有 “P” 符號 Output Table P Input Point Feature Output Create Thiessen Polygons 元素名稱於工具對話視窗中具 話 會變成標題說明
由工具變數
由工具變數(variables)
(variables)建立模式參數
建立模式參數
由工具變數
由工具變數(variables)
(variables)建立模式參數
建立模式參數
ModelBuilder可以將所有工具輸入參數轉為變 數• 於工具上按右鍵: Make Variable > From Parameter
中間資料
中間資料(Intermediate data)
(Intermediate data)
中間資料
中間資料(Intermediate data)
(Intermediate data)
中間資料為模式執行過程中產出的過程檔案, 中間資料為模式執行過程中產出的過程檔案, 為輸出之預設值,需手動進行刪除.
• menu > Delete Intermediate datamenu > Delete Intermediate data
*Th p i
*There are exceptions,
中間資料
中間資料( intermediate data)
( intermediate data)管理
管理
注意事項
注意事項
不建議:
• 寫入 ArcSDE geodatabase • 遠端資料或網路磁碟(影響效能)( ) • 塞滿結果資料庫 建議:
建議:
• 使用Scratch workspace作為暫存環境Model
Model可作為工具加入其他
可作為工具加入其他models
models
Model
Model可作為工具加入其他
可作為工具加入其他models
models
Model可被加入其他Model可被加入其他
• 分解複雜的Model, 成為更易管理的子程序 • 可使各應用領域專家於標準化Model平台上 • 可使各應用領域專家於標準化Model平台上
執行
執行model
model的注意事項
的注意事項
執行
執行model
model的注意事項
的注意事項
在ModelBuilder環境下執行:
在ModelBuilder環境下執行:
• Intermediate data不會自動被刪除 有設定Add di pl 的輸出結果會被加入至 • 有設定Add to display 的輸出結果會被加入至 地圖 無背景執行地理處理 定於前景執行 • 無背景執行地理處理 – 一定於前景執行在Model tool環境下執行:
• Intermediate data 在執行完成後會被刪除 • 只有parameters會被加入顯示 • 背景或前景執行選項才有作用 (Model menu將
將elements
elements用圖片表示
用圖片表示
可使用圖片顯示工具和變數
SESSION3 :
SESSION3 :
SESSION3 :
SESSION3 :
迴圈
迴圈(ITERATOR)
(ITERATOR)及模型工具
及模型工具
迴圈
迴圈(ITERATOR)
(ITERATOR)及模型工具
及模型工具
(MODEL ONLY TOOL)
Model Iteration(
Model Iteration(迴圈
迴圈))
Model Iteration(
Model Iteration(迴圈
迴圈))
重覆相同的操作 範例: 範例: 在同一個工作目錄中所有feature classes都新 增一個欄位並計算面積 增 個欄位並計算面積Model Iterators(
Model Iterators(迴圈運算子
迴圈運算子))
Model Iterators(
迴圈運算子類型
迴圈運算子類型
迴圈運算子類型
迴圈運算子類型
迴圈運算子 說明 固定次數 For 固定次數 While 直到滿足設定的條件 F t S l ti 圖徵類別中每 個圖徵執行 次 Feature Selection 圖徵類別中每一個圖徵執行一次 Row Selection 表格中每一列資料執行一次 Field Value 表格中一欄位每一個值 Multi-value 輸入迴圈值 Dataset 在workspace中每一個dataset Feature Class 在workspace中每一個featureFiles 在資料夾中每一個檔案
Rasters 在workspace中每一個raster
T bl 在 k 中每 個 bl
Model Iteration
Model Iteration設計技巧
設計技巧
Model Iteration
Model Iteration設計技巧
設計技巧
每一次的迴圈會執行整個模式
每 次的迴圈會執行整個模式
• 只包含Model每次你需要執行的部分 使用 d l 和 b d l 來區分只執行 次 • 使用models和sub-models來區分只執行一次 和每個迴圈重覆執行的部分一個model只能有一個 iterator
• 可使用sub-models結合多個iterators使用Collect Values傳遞一列數值呼叫
model
model.
Model Iteration
Model Iteration設計技巧
設計技巧
Model Iteration
Model Iteration設計技巧
設計技巧
可於儲存路徑和計算公式中, 使用名稱和數值變 數作為in-line變數 Dataset iterators 可設定向下層追踪(遞 迴 recursive) 迴,recursive) • 請小心使用Feature, Row, and Value iterators 可以逐列執行或 依屬性群組執行
使用Iterate Multi-value 來執行由資料集或類型選 取的一列數值的迴圈
取的一列數值的迴圈
In
In line
line 變數運用
變數運用
In
In--line
line 變數運用
變數運用
常用於使參數值更能彈性設定 常用於使參數值更能彈性設定In
In line
line 變數運用
變數運用
In
In--line
line 變數運用
變數運用
任何字串或路徑參數皆可包含in line變數 任何字串或路徑參數皆可包含in-line變數 使用字串 % k d % 來加入i li 變數 使用字串 %<keyword>% 來加入in-line變數 關鍵字 關鍵字: • 變數名稱 • 環境設定命名 • 系統預設關鍵字 如 %n% 是目前迴圈次數In
In line
line 變數運用範例
變數運用範例
In
In--line
line 變數運用範例
變數運用範例
Select表示式 Select表示式 • [airport_id] = ‘%airport_id%’ Calculate Field示式 • !shape.Area! * %conversion_factor% Dataset路徑 % h k %\ h • %scratchworkspace%\out.shp • Directory\out%n%Model Only Tools
Model Only Tools
Model Only Tools
Model Only Tools
ModelBuilder中實用的功能
Model Only Tools: Calculate Value
Model Only Tools: Calculate Value
Model Only Tools: Calculate Value
Model Only Tools: Calculate Value
可加入任何 Python表示式
可支援程式碼區塊 撰寫複雜運算邏輯
可支援程式碼區塊(code block)撰寫複雜運算邏輯 可以設定任何輸出資料類型
Model Only Tools
Model Only Tools
Model Only Tools
Model Only Tools
Get Field Value Get Field Value
Model Only Tools
Model Only Tools
Model Only Tools
Model Only Tools
Collect Values Collect Values • 用於蒐集數值於一個迴圈的model • 用於結合二個multi-values成為一個 • 用於轉換一數列成為multi-value Merge Branch • 用於結合多個分開的處理程序, 合併成同一個 程序 程序 Parse path • 用於完整路徑名稱中路徑和檔案名稱的解析用於完整路徑名稱中路徑和檔案名稱的解析 Stopp • 用於停止一迴圈模型 • 和While 功能相似 39
管理
管理model
model工具參數
工具參數
管理
管理model
model工具參數
工具參數
變數名稱 = Parameter Label/Name 變數資料類型變數資料類型 = Parameter Data Type
你可以變更參數由 “Optional” 為 “Required” 你可以指定filter
參數篩選
參數篩選(Filter)
(Filter)
參數篩選
參數篩選(Filter)
(Filter)
依資料型別有不同的篩選項目可設定: • String: 可指定一個資料串列 • Feature class: 可指定幾何類型為: 點, 線, 面…參數圖例可參考
參數圖例可參考Layer File
Layer File
參數圖例可參考
參數圖例可參考Layer File
Layer File
於輸出變數的symbology屬性中, 指定參考的 於輸出變數的symbology屬性中, 指定參考的 LayerFile