发表于2024-11-23
ArcGIS下的Python編程 包瑞清 pdf epub mobi txt 電子書 下載 2024
基於ArcGIS的Python編程,輔助規劃設計無限拓展的途徑!
作者姓名: 包瑞清
基於ArcGIS的地理信息係統可以輔助規劃師從地理信息角度解決相關的規劃設計問題,例如從信息化角度智能化管理城市信息數據,進行
相關的空間分析、網絡分析、地統計以及輔助製圖。然而規劃師的欲望是無止境的,尋求更自由的計算機輔助規劃設計的技術,以及獲得更強
解決問題的能力,就需要具備編程設計的知識。基於ArcGIS的Python腳本語言正是可以輔助規劃師得以自由解決問題的一個途徑。
具有編程能力的規劃設計師將具有更強解決問題的能力以及拓展無限的創造力,自身的專業知識為如何編寫程序解決問題提供瞭最為直接
的基礎,這是專業開發人員力所不能及。針對Python 編寫程序處理地理信息係統不僅提高瞭處理地理信息數據的效率,更是可以針對需要解決
的問題構建處理問題的程序,從程序編寫的角度思考解決問題的方法。
《ArcGIS下的Python編程》為規劃師提供瞭學習基於ArcGIS的腳本語言Python教材,將對Python語言的講述與ArcGIS的模塊ArcPy相結閤,
並通過實際案例探討“自然村落選址因子權重評定的遺傳算法”、“基於景觀感知敏感度的生態旅遊地觀光綫路自動選址”和“解讀蟻群算法
與TSP 問題”,理解編程規劃設計的方法。
《ArcGIS下的Python編程》對於ArcGIS 下Python 腳本使用方法的闡述是從Python 語言本身和基於ArcGIS的Python 兩個方麵同時著手,因
此在閱讀本書時不需要預先具備Python 基礎知識。本書包括七個部分,Python 與ArcGIS,ArcGIS 下的地理數據與Python 數據結構,Python 的
基本語句與使用Python 訪問地理數據,創建函數與使用Python 處理柵格數據,創建類與網絡分析,異常與錯誤,以及程序的魅力。主要闡述的
邏輯綫存在並行的兩條綫,一個是針對Python 的,從對於Python 介紹、數據結構、基本語句到創建函數、創建類和異常;另一個是針對ArcGIS
下的Python ,從ArcPy 站點包、訪問以及管理地理信息數據的方法、處理要素類、處理柵格數據到網絡分析和與地理處理模型的結閤方法。兩條
綫同時推進闡述,互相支持印證,並結閤實際解決問題的應用方法,例如如何轉化KML 文件和.dwg 格式文件並增加字段數據,以及適宜性分析
柵格計算重分類的方法和尋找最近設施點的網絡分析,遺傳算法應用等。
最後一部分則通過具體的案例來闡述應用ArcGIS下Python編程規劃的方法,初步包括三個課題的探討:
“課題探討_A_ 自然村落選址因子權重評定的遺傳算法”,村落選址受製於山水,如何在復雜的地形中謀得棲身之所,避免自然災害的侵擾
並具有舒適宜人的小氣候是人類不斷探索的課題。根據假定既有村落選址的特點反推權重設置具有一定的閤理性,並根據反推的權重應用於影
響因子計算新的地塊獲取選址。在這個過程中,使用優化算法中的遺傳算法求解;
“課題探討_B_ 基於景觀感知敏感度的生態旅遊地觀光綫路自動選址”,根據《基於景觀感知敏感度的生態旅遊地觀光綫路自動選址》的
研究,將計算模型程序化,不僅提升模型計算的效率,更有利於不斷修正研究過程中齣現的問題以及加入更多不同類型影響因子後,進行綜閤
性評價分析,並為類似的研究提供基礎性程序片斷;
“課題探討_C_ 解讀蟻群算法與TSP 問題”,蟻群算法(Ant Colony Optimization, ACO),又稱螞蟻算法,是一種用來在圖中尋找優化路
徑的機率型算法。本案例將蟻群算法在ArcGIS的Python腳本中實現。
作者簡介:
包瑞清
西安建築科技大學建築學院講師
城市規劃與設計專業博士,任教於西安建築科技大學建築學院,主攻計算機輔助設計應用研究,從作為設計者的角度尋找和融閤編程與建
築、風景園林、城鄉規劃等設計規劃學科之間的關聯,建立麵嚮設計師的編程設計知識係統,力圖使編程設計成為設計領域的基礎環節,探索
未來設計的方法。
2012 年,作為caDesign 設計創始人之一,以“編程讓設計更具創造力!”的信念為指引,分享研究成果,發展麵嚮設計師的編程設計知
識係統網絡服務體係。
GIS 輔助規劃設計無限拓展的途徑
GIS(Geographic Information System) 地理信息係統在城市規劃、生態規劃、風景園林規劃行業中具有舉足輕重的價值。但是GIS 應用領
域的廣泛性與無限拓展的知識領域使得規劃設計者在開始地理信息領域探索時總是無所適從,往往被淹沒在浩瀚的知識領域中。實際上對於不
同的專業領域,在使用GIS 協助規劃設計時,會根據自身的需求選擇適閤的知識方嚮和內容,從而找對方嚮點便於順利切入。GIS 技術不應該
僅僅成為專業GIS 開發者的工具,更應該是規劃設計者需要掌握的基礎知識。在實際規劃設計過程中,將傳統的規劃設計方法嚮地理信息係統
方嚮轉化,從地理信息的角度管理、分析、研究、規劃設計項目,在一定程度上地理信息係統成為規劃整個流程的基礎框架,所有的規劃內容
從地理信息數據的錄入與管理、對於地理信息數據的分析研究開始,從基於數據的本質內容規劃。
從地理信息係統角度切入規劃設計的方法主流是使用ArcGIS,由ESRI 齣品的一個地理信息係統係列軟件的總稱。ArcGIS 提供瞭豐富的地
理信息數據管理和分析的工具,同時在不斷地拓展,並可以在地理處理中構建地理處理信息模型,流程化處理地理信息數據,然而當需要批處
理地理信息數據,或者現有的ArcGIS 中的地理處理工具不能夠滿足分析研究的需求時,最直接的方式是使用程序語言自行編寫工具達到分析研
究的目的。ArcGIS 已經開始支持並不斷拓展Python 支持的力度,從Python 語言自身發展的曆程和針對建築、規劃設計行業三維軟件平颱越來
越多的支持,Python 必然成為針對規劃設計者的程序語言。ArcGIS 逐步地發展瞭ArcPy 站點包,提供使用Python 語言操作所有地理處理工具
(包括擴展模塊)的入口,並提供多種有用的函數和類,以用於處理和詢問GIS 數據。使用 Python 和ArcPy,可以開發齣大量用於處理地理數
據的實用程序。
程序語言在輔助規劃設計領域的優勢逐漸凸顯,對於規劃設計方法更高級技術的追求必然對規劃設計者提齣新的具有挑戰性的要求。編程
語言的逐步發展和成熟為相關專業學科的發展奠定瞭堅實的基礎,然而由於編程語言發展階段的曆史原因,大部分規劃設計專業的院校並沒有
開設編程語言課程和針對規劃設計領域的編程語言課程,因此大部分規劃設計者並不具有通過編程處理問題的能力。具備編程能力並不隻是針
對專業開發人員的基本要求,規劃設計者應該成為具有編程能力的規劃設計者,從而更加自由並從全新的視角審視與解決問題,而不必求助於
專業開發人員。具有編程能力的規劃設計者將具有更強解決問題的能力以及拓展無限的創造力,自身的專業知識為如何編寫程序解決問題提供
瞭最為直接的基礎,這是專業開發人員力所不能及。針對Python 編寫程序處理地理信息係統不僅提高瞭處理地理信息數據的效率,更是可以針
對需要解決的問題構建處理問題的程序,從程序編寫的角度思考解決問題的方法。
本書對於ArcGIS 下Python 腳本使用方法的闡述是從Python 語言本身和基於ArcGIS的Python 兩個方麵同時著手,因此在閱讀本書時不需
要預先具備Python 基礎知識。本書包括七個部分,Python 與ArcGIS,ArcGIS 下的地理數據與Python 數據結構,Python 的基本語句與使用
Python 訪問地理數據,創建函數與使用Python 處理柵格數據,創建類與網絡分析,異常與錯誤,以及程序的魅力。主要闡述的邏輯綫存在並
行的兩條綫,一個是針對Python 的,從對於Python 介紹、數據結構、基本語句到創建函數、創建類和異常;另一個是針對ArcGIS 下的Python ,
從ArcPy 站點包、訪問以及管理地理信息數據的方法、處理要素類、處理柵格數據到網絡分析和與地理處理模型的結閤方法。兩條綫同時推進
闡述,互相支持印證,並結閤實際解決問題的應用方法,例如如何轉化KML 文件和.dwg 格式文件並增加字段數據,以及適宜性分析柵格計算
重分類的方法和尋找最近設施點的網絡分析,遺傳算法應用等。
結閤規劃設計專業闡述ArcGIS 下Python 編寫處理地理信息數據方法的專著也許本書是國內第一本,難免存在不妥之處,敬請批評指正,從
而逐步修正和完善。
9 Python 與ArcGIS
10 1 Python
12 2 將地理信息係統作為過程的空間分析
12 2.1 區位與網絡結構
14 2.2 調研者路綫
16 2.3 場地現狀信息錄入與基本分析
18 2.4 基礎的數據地理信息化輔助規劃設計分析
21 2.5 專題地圖疊閤的方法
21 2.6 作為過程的空間分析
23 3 Python 與ArcGIS
25 3.1 .kml 文件格式
41 3.2 通過Python 使用工具箱裏的工具
44 3.3 通過Python 使用環境設置
46 3.4 通過Python 使用函數
47 3.5 通過Python 使用類
51 3.5 獲取和設置參數
57 ArcGIS 下的地理數據與Python 數據結構
58 1 ArcGIS 下的地理數據
62 1.1 文件地理數據庫和個人地理數據庫
62 1.2 ArcSDE 地理數據庫
67 1.3 創建地理數據列錶
74 2 Python 數據結構-List 列錶、Tuple 元組與Dictionary 字典
75 2.1 列錶(List)
85 2.2 元組(Tuple)
85 2.3 字典(Dictionary)
94 3 Python 數據結構-String 字符串
94 3.1 字符串格式化
96 3.2 re(regular expression) 正則錶達式
109 Python 的基本語句與使用Python 訪問地理數據
110 1 描述數據
112 2 Python 的基本語句
112 2.1 print() 與import
113 2.2 賦值的方法
114 2.3 循環語句
117 2.4 條件語句
119 3 Table 屬性錶與Cursor 遊標
123 3.1 讀取幾何、寫入幾何與幾何標記(geometry tokens)
126 3.2 遊標和鎖定
127 3.3 在Python 腳本中使用SQL 結構化查詢語
129 3.4 數據存在判斷與在Python 腳本中驗證錶和字段名稱
135 創建函數與使用Python 處理柵格數據
136 1 創建函數
145 2 形式參數的傳遞
147 3 Raster 柵格數據
148 3.1 柵格數據(Mesh 麵Quad 類型)
148 3.2 專題數據
148 3.3 影像數據
152 3.4 柵格函數
153 3.5 TIN 錶麵模型(Mesh 麵Triangle 類型)
155 4 使用Python 處理柵格數據
155 4.1 柵格計算(地圖代數運算)
159 4.2 重分類
171 4.3 條件分析工具集
175 創建類與網絡分析
177 1 創建類
179 2 網絡分析
180 2.1 從GoogleEarth 中調入路徑以及服務設施和源點
185 2.2 建立文件地理數據庫、要素數據集並導入用於網絡分析的基礎數據
187 2.3 最近設施點分析
193 異常與錯誤
194 1 異常
196 1.1 Python 內置異常
197 2 錯誤
201 程序的魅力
201 1 課題探討_A_ 自然村落選址因子權重評定的遺傳算法
204 1.1 準備數據
204 1.2 確定研究區域
205 1.3 確定影響因子
209 1.4 假設權重,疊閤相加各個影響因子的成本柵格
211 1.5 遺傳算法
218 1.6 將計算結果應用於類似場地
219 2 課題探討_B_ 基於景觀感知敏感度的生態旅遊地觀光綫路自動選址
220 2.1 技術綫路與基礎數據
223 2.2 視域感知因子_ 可視區域計算
231 2.3 視域感知因子_ 最佳觀賞距離計算
242 2.4 視域感知因子_ 最佳觀賞方位
249 2.5 視域感知因子_ 柵格疊加求和
249 2.6 生態感知因子_ 景觀類型
251 2.7 生態感知因子_ 資源價值
252 2.8 生態感知因子_ 柵格疊加求和
252 2.9 景觀感知敏感度
254 2.10 地形因子
256 2.11 觀光綫路適宜性成本柵格計算
257 2.12 觀光綫路自動獲取
260 3 課題探討_C_ 解讀蟻群算法與TSP 問題
260 3.1 蟻群算法與TSP 問題概述
263 3.2 蟻群算法程序解讀
271 3.3 蟻群算法在ArcGIS 下的應用
274 4 分享程序
ArcGIS下的Python編程 包瑞清 pdf epub mobi txt 電子書 下載