ArcGIS是一個完整而強大的地理信息平臺,我們在這個平臺上,可以進行幾乎所有針對地理信息及服務(wù)的處理、分析、可視化、、共享和協(xié)同等工作。對于其中很多需要反復進行的操作,以及較為復雜的處理和分析,往往離不開編程。對于絕大多數(shù)人而言,編程終歸是一件頭疼的事。而要解決問題又繞不開編程時,聰明的做法就是盡可能采用簡潔、靈活、高效的編程語言和環(huán)境,讓我們可以更加專注于問題和解決問題的邏輯本身,盡量少一些編程所帶來的困擾。顯然,Esri對此一直是十分認真對待的,從上面提到的ArcGIS的腳本編程環(huán)境的演變可見一斑。在各種通用型的腳本編程語言中,Python可以說是后起之秀,其簡潔、優(yōu)雅而健壯的特性,得到了市場上廣泛的支持和認可。
及時部分 Python與ArcGIS:緣起
第1章 初識Python
1.1 可愛的Python
1.2 欲善其事先利其器
1.2.1 IDLE
1.2.2 Pythonwin
1.2.3 Pysripter
1.2.4 Pycharm
1.2.5 WingIDE
1.2.6 Boa Constructor
1.2.7 Pydev
1.3 及時個Python程序
1.4 再來認識Python
1.4.1 變量
1.4.2 字符串
1.4.3 列表
1.4.4 元組
1.4.5 字典
1.4.6 模塊
1.4.7 條件和循環(huán)語句
1.4.8 內(nèi)建函數(shù)
1.4.9 自定義函數(shù)
1.5 本章小結(jié)
第2章 牽手ArcPy
2.1 Geoprocessing:數(shù)據(jù)處理有一手
2.1.1 什么是Geoprocessing
2.1.2 Geoprocessing示例
2.1.3 Geoprocessing組織結(jié)構(gòu)
2.1.4 Geoprocessing分析環(huán)境設(shè)置
2.2 ArcPy:你中有我我中有你
2.2.1 ArcPy的前生今世
2.2.2 安裝和調(diào)用
2.2.3 ArcPy結(jié)構(gòu)剖析
2.2.4 異常捕獲
2.2.5 小試牛刀——關(guān)聯(lián)空間信息與屬性信息
2.3 本章小結(jié)
第二部分 Python與ArcGIS:金風玉露相逢
第3章 訪問數(shù)據(jù)——讀取與批處理
3.1 了解地理數(shù)據(jù)
3.1.1 矢量數(shù)據(jù)
3.1.2 柵格數(shù)據(jù)
3.1.3 常用數(shù)據(jù)格式
3.2 List遍歷函數(shù):找到我要的類型
3.3 Describe函數(shù):告訴我你是誰
案例1 中國各行政區(qū)Shapefile數(shù)據(jù)拼接入庫
案例2 批處理裁切
案例3 KMZ/KML數(shù)據(jù)批量入庫
案例4 柵格鑲嵌
3.4 本章小結(jié)
第4章 操縱數(shù)據(jù)——查詢與更新
4.1 屬性與空間查詢:眾里尋她千百度
4.1.1 屬性查詢
4.1.2 空間查詢
4.2 不可不說的Cursor:縱橫表格
4.3 玩轉(zhuǎn)Geometry:形狀任你繪
……
第三部分 Python與ArcGis:執(zhí)子之手
第四部分 延伸閱讀 Python與R交互
參考文獻
為什么選擇Pythori
ArcGIS 與Python的淵源可以追溯到ArcGIS 9.0版本,Esri意識到基于ArcObjects的編程模式對于用戶的要求是比較高的,更多情況下用戶可能并不具備編程的基礎(chǔ),也沒有在大量接口中漫游的興趣。但是當面對大量數(shù)據(jù)的處理工作時,通常不可避免需要編寫代碼。相比于其他高級程序語言,腳本語言的語法簡單,上手容易,是一般用戶的的選擇。Python是腳本語言中的代表,因此亦獲得了Esri的青睞。通過Python可以輕松地調(diào)用ArcGIS 中封裝好的算法來完成復雜的數(shù)據(jù)處理和分析任務(wù)。ArcGIS 9.0 Desktop默認即安裝Python IDLE,支持Python2.1,隨后的9.2以及9.3版本也在不斷完善ArcGIS scripting的功能,讓用戶感受到Python帶來的便利和驚喜。ArcGIS 10.0版本的問世,和Python的關(guān)系更加緊密。新出現(xiàn)的ArcPy取代ArcGIS scripting,功能進一步升級,并且在ArcGIS Desktop的Python Window和FieldCalculator中均整合了Python,充分體現(xiàn)出Esri對于Python的重視。在ArcGIS Desktop擴展開發(fā)方面,從ArcGIS 10.1版本開始,傳統(tǒng)的VBA開發(fā)方式正式被拋棄,引入Python-addins這種更方便快捷的插件式開發(fā)模式,更加確立了Python的統(tǒng)治地位。正因為Esri選擇了Python,所以我們也選擇了Python,如果您能掌握ArcGIS 中的Python編程,那么游刃有余地使用ArcGIS 來進行工作將是一件輕松并且充滿樂趣的事情。
這本書能做什么
使用Python在ArcGIS 中進行腳本編程,能夠方便地調(diào)用ArcGIS 中的Geoprocessing功能進行地理處理,執(zhí)行空間分析、空間統(tǒng)計等操作,尤其是能夠高效地進行大數(shù)據(jù)批量處理工作,并且能夠靈活地擴展Geoprocessing框架。ArcGIS 中空間統(tǒng)計工具箱(Spatial Statistics Toolbox)中的工具大多都是使用Python編寫的,這樣就使得ArcGIS 不再僅僅是作為一個靜態(tài)的、通用的軟件,而成為了一個動態(tài)的、可擴展的平臺,可進一步將GIS與各行業(yè)的專業(yè)模型相結(jié)合。