• 沒有找到結果。

第二章、 文獻回顧

第四節 A RC GIS 與空間分析

ArcGIS 為美國 ESRI 公司開發的 GIS 軟體,是目前地理資訊系統中,市佔 率與相關學術領域普及率最高的軟體之一。相較於其他地理資訊軟體,該空間 處理分析的模組功能也最具齊全。使用者可透過它來收集處理、組織管理、決 策分析、交流和發佈地理空間資訊。ArcGIS 大致有六大功能,包括:一、使用 者能夠創建、使用或共用地理空間圖資或智慧地圖。二、能夠自己編輯地理資 訊;三、能夠自行建立和管理地理資料庫;四、能透過該系統使用空間分析來 解決問題;五、能夠編寫建置相關分析模組;透過地理和視覺化功能分享交流 空間資訊。本研究欲透過Python 程式語言與物件導向模組化架構,於 ArcGIS 環境下來開發向量面型態分析模組。故本節分成兩部分,首先先回顧ArcGIS 的空間分析功能;其次回顧ArcGIS 的功能拓展。

一、ArcGIS 空間分析功能

ArcGIS 目前的空間分析相關功能,除了空間分析工具之外,還包括分析工 具、3D 分析工具、路網分析工具、地理統計分析工具、空間統計分析工具、追 蹤分析工具、時空特徵挖掘工具等(如圖 7),並提供不同的空間分析功能。

空間分析工具提供了網格與向量資料空間分析與建模的工具,如密度、距 離、水文、內插值、鄰域等計算分析等。分析工具提供基礎的GIS 分析,如計 算重疊區域、環域分析、計算統計數據等。3D 分析工具提供表面模型、3D 向 量資料的各種分析、數據管理與資料轉換等預處理功能。路網分析工具提供可 以執行路網分析與路網數據集的維護,如交通路網最佳路徑分析、最近設施站 點、服務區、起訖點成本矩陣等。地理統計分析工具提供向量點資料或網格資 料等創建連續性表面與地圖,以用來顯示分析和了解空間現象的表面。空間統 計工具提供分析空間現象分布、模組、過程與關係工具,以了解空間顯著特徵 或統計上顯著空間特徵(冷熱點、離群值等)以及建立空間關係模型。追蹤分析 工具與時空特徵挖掘工具,其分析功能除了提供空間分析以外,加上時間的因

素為時空分析。前者提供時間序列回放與分析功能,顯示空間現象的時序變化 與模式;後者提供空間、時間環境中分析資料分布和模式統計工具。

圖 7:目前 ArcGIS 空間分析功能

資料來源:http://www.esri.com (瀏覽日期 2017/05/20) 二、ArcGIS 功能拓展

目前ArcGIS 程式功能開發,有四個面向(如圖 8)。分別為網路應用程式、

行動與原生應用程式、擴展ArcGIS 平台、腳本與自動化。而本研究的分析模 組開發之開發定位屬腳本與自動化,即透過Python 開發自動化的面型態分析程 式。

圖 8:目前 ArcGIS 開發四大面向

資料來源:http://www.esri.com (瀏覽日期 2017/05/20)

在介紹ArcGIS 模組開發之程式語言前,需回顧 ArcGIS 軟體開發與開發環 境。ArcGIS 中的 ArcMap、ArcCatalog、ArcScene 為 ArcObiect(AO)所開發實現 (如圖 9)。ArcObiect 該組件程式庫(component library)包含了所有的 ArcGIS 功 能。

圖 9:ArcObiect 的結構

資料來源:Tang, X., Shen, Y., & Shen, J. (2012)

ArcObiect 的開發模式原有三種方法(白亞茹,2009、Tang et al.,2012):第 一種開發模式,為透過ArcMap 環境內的 VBA(Visual Basic for Applications)來進 行程式的開發。第二種開發模式,即直接透過VB、C++、.NET 等程式語言,

直接開發EXE 獨立應用程式,透過 ArcObiect 通用視覺化控制項來實現。第三 種則是透過COM(Microsoft Component Object Model)開發客製化模組。

從ArcGIS 8.0 首次發行以來,VBA 一直是 ArcGIS 支持的主要腳本語言。

但從ArcGIS10.0 版開始,VBA 的角色被 Python 取代。此外,基於 Microsoft 組 件對像模型(COM)的 VBA 也已被刪除,開始轉向符合 Java-和.NET 程式語 言開發(Wunderlich,2012)。

Python 為常用之科學計算程式語言之一,為荷蘭計算機程式設計師 Rossum 於1991 年所發布。而 Python 程式語言之所以受到許多人的使用,在於 Python 有幾點特徵,包含程式邏輯簡單易學且直觀、為免費且開源的軟體、能支援各 平台的運作、本身為解釋性語言不需再進行編譯、為物件導向的程式語言 (object oriented programming, OOP)。至今(2017 年 4 月)為止 Python 版本已經來 到第3.6 版,而目前 ArcGIS 所採用的 Python 版本,仍以 2.7 版本為主。

此外,Python 擁有有豐富的矩陣、統計、機器學習、資料探勘、視覺化等 模組,如SciPy、NumPy、matplotlib、scikit-learn(Grus 2015) 。Python 可以將 各種不同的物件組合在一起,進而實現新的功能。ESRI 公司將部分 ArcGIS 的 功能,製作成Python 套件 ArcPy,讓研究者可以用 Python 語言,利用其豐富的 套件,自行開發新的ArcGIS 功能(Tateosian,2016、Zandbergen,2013、

Pimpler,2015)。

此外,ArcGIS 創建分析模組另一方式為 ModelBuilder(如圖 10),具有視覺 化的操作介面與直觀易懂編寫方式,開發者可以不具有編寫程式的經驗,也不 用學習程式語法就可以開發簡單的程式工具。但相較於ModelBuilder 來開發模 組,ArcPy 優勢如下(Zandbergen 2013):

(一) 可以進行背景底層的地理處理任務。

(二) 可以實現更高級的編輯邏輯,並可以添加許多的擴充套件以提供 高級的功能。

(三) 可以把不同軟體的功能整合在一起。

(四) 可以脫離 ArcGIS,作為儲存於電腦中的一個獨立腳本來運行。

(五) 可以在預定的時間運行,而不受人工的干預。

圖 10:ArcGIS ModelBuilder 示意圖

資料來源:http://www.esri.com (瀏覽日期 2017/04/18)

相關文件