• 沒有找到結果。

地理資訊系統-地理處理分析自動化

N/A
N/A
Protected

Academic year: 2021

Share "地理資訊系統-地理處理分析自動化"

Copied!
44
0
0

加載中.... (立即查看全文)

全文

(1)

地理處理分析自動化

地理處理分析自動化

地理處理分析自動化

地理處理分析自動化

ModelBuilder

ModelBuilder基礎教學與迴圈

基礎教學與迴圈

ModelBuilder

ModelBuilder基礎教學與迴圈

基礎教學與迴圈

(2)

課程大綱

課程大綱

課程大綱

課程大綱

Session1 : 地理處理(Geoprocessing) 控式程式撰寫 具 Session2 : ModelBuilder圖控式程式撰寫工具 Session3 : 迴圈(Iterator)及模型唯用工具 Session3 : 迴圈(Iterator)及模型唯用工具 (Model Only Tool)開發技巧

(3)

SESSION1 :

SESSION1 :

地理處理

(4)

什麼是地理處理

什麼是地理處理 Geoprocessing?

Geoprocessing?

什麼是地理處理

什麼是地理處理 Geoprocessing?

Geoprocessing?

地理處理(Geoprocessing)是針對地理資

地理處理(Geoprocessing)是針對地理資

料有系統地依序執行一連串的運算以獲

取新的資料的過程,協助您建立空間分

取新的資料的過程,協助您建立空間分

析模型和處理自動化,以解決真實世界

空間問題

空間問題。

(5)

地理處理語言

地理處理語言 模組化工具

模組化工具

地理處理語言

地理處理語言 –– 模組化工具

模組化工具

(6)

地理處理架構

地理處理架構

地理處理架構

地理處理架構

Tools Tools ModelBuilder P th Wi d Python Window

import arcpy # prints True print arcpy.Exists("c:/data/Portland.gdb/streets") # prints

Scripts

(7)

地理處理工具視窗介面

地理處理工具視窗介面

Geoprocessing 目錄 搜尋 工具 搜尋 工具 環境設定 結果 Python

(8)

作業流程範例

作業流程範例

作業流程範例

作業流程範例

學校作為緊急庇護所適宜性規劃

學校作為緊急庇護所適宜性規劃

那些學校是在較安全的區域?

• 學校常作為緊急狀況的庇護所 我們需要知 • 學校常作為緊急狀況的庇護所, 我們需要知 道那些學校在災害發生時是較安全的區域 Step 1: 崩塌道路分析環域 St 2 Step 3: 淹水區域套疊分析 Step 4: 崩塌道路分析環域 Step 2: 有害設施環域分析 淹水區域套疊分析 p 找到不在步驟1~3 範圍內的學校

%

d

e

f

g

c

(9)

SESSION2 :

SESSION2 :

MODELBUILDER

MODELBUILDER圖控式程式

圖控式程式

撰寫工具

撰寫工具

(10)

什麼是

什麼是 ModelBuilder?

ModelBuilder?

什麼是

什麼是 ModelBuilder?

ModelBuilder?

視覺化(圖控式)的程式撰寫語言 • 不用寫程式碼 將工作流程封裝成為工具 將 作流程封裝成為 具 • 可重覆使用(Reusable) • 分享容易(Sharable)分享容易(Sharable)

(11)

為何使用

為何使用 ModelBuilder?

ModelBuilder?

為何使用

為何使用 ModelBuilder?

ModelBuilder?

自動化管理地理處理工作流程 可在一個工具中執行複雜的連續程序 可外掛其他需要的工具和參數 可視覺化地呈現分析運作流程

(12)

Toolboxes

Toolboxes類型

類型

Toolboxes

Toolboxes類型

類型

System toolboxes • 由ArcGIS安裝 • 唯讀(Read-only) Custom toolboxes • 由使用者自行建立 • 儲存在資料夾 (.tbx ( 檔 案)或geodatabase System toolboxes 是唯讀的, 包含許多好用工具 包含許多好用工具

(13)

建立一個新的

建立一個新的model

model

建立 個新的

建立 個新的model

model

方法1 方法2. 方法1. 於ArcMap標準工具列上 直接開啟新的 ModelBuilder 此時為 方法2. 在自訂的toolbox > 按右鍵 > New Model ModelBuilder, 此時為 unsaved model Models被建立或儲存在被建立或儲存在 自訂工具或“My toolboxes”

(14)

Model elements(

Model elements(組成元素

組成元素))

Model elements(

Model elements(組成元素

組成元素))

具備三類基本元素: 具備三類基本元素: • 工具(Tools) • 變數(Variables) • 變數(Variables) • 連接子(Connectors)

(15)

加入工具或資料至

加入工具或資料至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

(16)

二種連接元素的方式

二種連接元素的方式

二種連接元素的方式

二種連接元素的方式

2 1 模式中的變數 地圖中的圖層 Connect Tool 為了要串接處理程序 使用Connect tool連結一程序的輸出作為另一個程序 Customers 為了要串接處理程序, 使用Connect tool連結 程序的輸出作為另 個程序 的輸入 Customers Identity Identity Thiessen Polygons Frequency Frequency Table

(17)

衍生資料

衍生資料(Derived data)

(Derived data)為地理處理輸出

為地理處理輸出

衍生資料

衍生資料(Derived data)

(Derived data)為地理處理輸出

為地理處理輸出

既有資料 衍生資料

既有資料 衍生資料

Schools Buffer Schools_buffer

MyTable MyTable MyTable (2) Add Field In/Out 衍生資料 輸入資料將被更新 輸入資料將被更新

(18)

Model

Model處理狀態

處理狀態

Model

(19)

驗證

驗證(Validating)

(Validating)

驗證

驗證(Validating)

(Validating)

驗證所有元素和參數值和路徑是否正確

驗證所有元素和參數值和路徑是否正確

(20)

參數

參數(Parameters)

(Parameters)

參數

參數(Parameters)

(Parameters)

M T bl C t

Output Folder Create MyTable

Table 設定為參數後會有 “P” 符號 P 設定為參數後會有 “P” 符號 Output Table P Input Point Feature Output Create Thiessen Polygons 元素名稱於工具對話視窗中具 話 會變成標題說明

(21)

由工具變數

由工具變數(variables)

(variables)建立模式參數

建立模式參數

由工具變數

由工具變數(variables)

(variables)建立模式參數

建立模式參數

ModelBuilder可以將所有工具輸入參數轉為變 數

• 於工具上按右鍵: Make Variable > From Parameter

(22)

中間資料

中間資料(Intermediate data)

(Intermediate data)

中間資料

中間資料(Intermediate data)

(Intermediate data)

中間資料為模式執行過程中產出的過程檔案, 中間資料為模式執行過程中產出的過程檔案, 為輸出之預設值,需手動進行刪除.

• menu > Delete Intermediate datamenu > Delete Intermediate data

*Th p i

*There are exceptions,

(23)

中間資料

中間資料( intermediate data)

( intermediate data)管理

管理

注意事項

注意事項

不建議

:

• 寫入 ArcSDE geodatabase • 遠端資料或網路磁碟(影響效能)( ) • 塞滿結果資料庫 建議

:

建議

:

• 使用Scratch workspace作為暫存環境

(24)

Model

Model可作為工具加入其他

可作為工具加入其他models

models

Model

Model可作為工具加入其他

可作為工具加入其他models

models

Model可被加入其他Model可被加入其他

• 分解複雜的Model, 成為更易管理的子程序 • 可使各應用領域專家於標準化Model平台上 • 可使各應用領域專家於標準化Model平台上

(25)

執行

執行model

model的注意事項

的注意事項

執行

執行model

model的注意事項

的注意事項

在ModelBuilder環境下執行:

在ModelBuilder環境下執行:

• Intermediate data不會自動被刪除 有設定Add di pl 的輸出結果會被加入至 • 有設定Add to display 的輸出結果會被加入至 地圖 無背景執行地理處理 定於前景執行 • 無背景執行地理處理 – 一定於前景執行

在Model tool環境下執行:

• Intermediate data 在執行完成後會被刪除 • 只有parameters會被加入顯示背景或前景執行選項才有作用 (Model menu

(26)

將elements

elements用圖片表示

用圖片表示

可使用圖片顯示工具和變數

(27)

SESSION3 :

SESSION3 :

SESSION3 :

SESSION3 :

迴圈

迴圈(ITERATOR)

(ITERATOR)及模型工具

及模型工具

迴圈

迴圈(ITERATOR)

(ITERATOR)及模型工具

及模型工具

(MODEL ONLY TOOL)

(28)

Model Iteration(

Model Iteration(迴圈

迴圈))

Model Iteration(

Model Iteration(迴圈

迴圈))

重覆相同的操作 範例: 範例: 在同一個工作目錄中所有feature classes都新 增一個欄位並計算面積 增 個欄位並計算面積

(29)

Model Iterators(

Model Iterators(迴圈運算子

迴圈運算子))

Model Iterators(

(30)

迴圈運算子類型

迴圈運算子類型

迴圈運算子類型

迴圈運算子類型

迴圈運算子 說明 固定次數 For 固定次數 While 直到滿足設定的條件 F t S l ti 圖徵類別中每 個圖徵執行 次 Feature Selection 圖徵類別中每一個圖徵執行一次 Row Selection 表格中每一列資料執行一次 Field Value 表格中一欄位每一個值 Multi-value 輸入迴圈值 Dataset 在workspace中每一個dataset Feature Class 在workspace中每一個feature

Files 在資料夾中每一個檔案

Rasters 在workspace中每一個raster

T bl 在 k 中每 個 bl

(31)

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.

(32)

Model Iteration

Model Iteration設計技巧

設計技巧

Model Iteration

Model Iteration設計技巧

設計技巧

可於儲存路徑和計算公式中, 使用名稱和數值變 數作為in-line變數 Dataset iterators 可設定向下層追踪(遞 迴 recursive) 迴,recursive) • 請小心使用

Feature, Row, and Value iterators 可以逐列執行或 依屬性群組執行

使用Iterate Multi-value 來執行由資料集或類型選 取的一列數值的迴圈

取的一列數值的迴圈

(33)

In

In line

line 變數運用

變數運用

In

In--line

line 變數運用

變數運用

常用於使參數值更能彈性設定 常用於使參數值更能彈性設定

(34)

In

In line

line 變數運用

變數運用

In

In--line

line 變數運用

變數運用

任何字串或路徑參數皆可包含in line變數 任何字串或路徑參數皆可包含in-line變數 使用字串 % k d % 來加入i li 變數 使用字串 %<keyword>% 來加入in-line變數 關鍵字 關鍵字: • 變數名稱 • 環境設定命名 • 系統預設關鍵字  如 %n% 是目前迴圈次數

(35)

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%

(36)

Model Only Tools

Model Only Tools

Model Only Tools

Model Only Tools

 ModelBuilder中實用的功能

(37)

Model Only Tools: Calculate Value

Model Only Tools: Calculate Value

Model Only Tools: Calculate Value

Model Only Tools: Calculate Value

可加入任何 Python表示式

可支援程式碼區塊 撰寫複雜運算邏輯

可支援程式碼區塊(code block)撰寫複雜運算邏輯 可以設定任何輸出資料類型

(38)

Model Only Tools

Model Only Tools

Model Only Tools

Model Only Tools

Get Field Value Get Field Value

(39)

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

(40)

管理

管理model

model工具參數

工具參數

管理

管理model

model工具參數

工具參數

變數名稱 = Parameter Label/Name 變數資料類型

變數資料類型 = Parameter Data Type

你可以變更參數由 “Optional” 為 “Required” 你可以指定filter

(41)

參數篩選

參數篩選(Filter)

(Filter)

參數篩選

參數篩選(Filter)

(Filter)

依資料型別有不同的篩選項目可設定: • String: 可指定一個資料串列 • Feature class: 可指定幾何類型為: 點, 線, 面…

(42)

參數圖例可參考

參數圖例可參考Layer File

Layer File

參數圖例可參考

參數圖例可參考Layer File

Layer File

於輸出變數的symbology屬性中, 指定參考的 於輸出變數的symbology屬性中, 指定參考的 LayerFile

(43)

使

使model

model輸入變為與使用者互動

輸入變為與使用者互動

使

使model

model輸入變為與使用者互動

輸入變為與使用者互動

使用 Feature set 資料類型建立可供使用者自行 繪圖作為輸入的互動式M d l 繪圖作為輸入的互動式Model • Feature class定義圖徵類別及其屬性 • Layer file定義圖例樣式

(44)

Precondition

Precondition可以用來控制程序執行順

可以用來控制程序執行順

參考文獻

相關文件

參、技術士技能檢定建築物室內設計乙級術 科試題.

科技教育 設計 模型 製作.

計畫撰寫技巧,並進行部分執行單位成果分享,以提升提案

微算機原理與應用 第6

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

 Number of spectral averages:頻譜 平均的數量,設定為1。. 教育部資通訊科技人才培育先導型計畫

張庭瑄 華夏技術學院 數位媒體設計系 廖怡安 華夏技術學院 化妝品應用系 胡智發 華夏技術學院 資訊工程系 李志明 華夏技術學院 電子工程系 李柏叡 德霖技術學院

美三甲 陳佳緯 東南科技大學 數位媒體設計系 貿三甲 李俊廷 東南科技大學 休閒事業管理系 廣三甲 林子容 東南科技大學 數位媒體設計系 廣三甲 黃宣慈 東南科技大學