《面向ArcGIS的Python指令碼程式設計》 導讀

2021-09-23 14:42:12 字數 2010 閱讀 8010

**前言

**在過去的十多年裡,我在多所大學學習並講授了一系列gis課程。正是這樣一段經歷,促使我撰寫了這本書。在所有的課程中,有一課是「小**,大用處」。

在dos系統時代,熟悉dos的人能使用命令列處理一些基本的任務。arcgis早期的桌面端軟體(arcinfo)除了使用arc巨集語言(aml)之外,在很大程度上也是通過命令列介面執行的。不過最近,大多數軟體已經基本不需要使用命令列介面或編寫**,而是開始使用圖形使用者介面(gui)。這就導致了大部分學生在上第一節gis課程的時候遇不到任何形式的**。雖然基於選單介面的arcgis for desktop能夠支援許多複雜的操作和空間分析,但是有些時候,使用者還需要更多的功能來解決遇到的難題。這時,就需要使用python指令碼語言。

簡言之,python指令碼可以自動地執行那些需要在arcgis中通過選單介面實現的繁瑣的操作。例如,將1000個shapefile檔案轉成地理資料庫中的要素類。雖然可以執行1000次相應的工具,但是在arcgis中肯定還有其他更高效和更簡捷的方法。這時,python就可以發揮作用:只需要使用python編寫一小段**就能解決這個問題。在本書學習到大概一半的時候,您就能編寫乙個那樣的指令碼。

這本書可以讓沒有任何程式設計經驗的人掌握編寫python指令碼的方法。本書將從最基礎的知識開始介紹,例如指令碼的概念以及如何編寫並執行一小段**。隨後,這本書還將介紹如何通過python指令碼來處理arcgis中涉及的空間資料。在使用本書前,您需要熟悉arcgis for desktop軟體,包括在arccatalog中管理資料以及在arcmap中執行一些基本的操作,如處理資料、製圖輸出、執行地理處理工具等,也需要熟悉gis的基本概念,包括座標系統、資料格式、表操作以及一些基本的空間分析方法。如果您曾經編寫過**,那麼將會有助於對本書的學習。

為什麼要學習python語言呢?有以下幾點原因。第一,python是免費和開源的,它可以被自由地發布和分享;第二,它功能強大而且簡單易學;第三,esri公司更傾向於使用python作為arcgis的指令碼語言,從arcgis 10的新功能中可以明顯地感受到這一點。

雖然python被封裝在arcgis的安裝程式中,但是它並不是由esri開發的,而是由乙個龐大而活躍的python使用者社群負責維護和發展。在學習了python的基礎知識後,您將會發現python在其他領域也有著廣泛的應用。現在很多計算機入門課程都使用python作為入門語言介紹程式設計的基礎知識。本書也將介紹一些這樣的知識,但它們並不是重點,本書重點是介紹如何使用python處理arcgis中的空間資料。

現在市面上有很多gis的教科書和arcgis的指導書。雖然它們中的大部分都詳細地介紹了空間分析的方法和步驟,但是,書中關於python指令碼的部分並不完整。與此同時,市面上也有很多python語言的參考書,但是它們中的大部分都沒有介紹如何使用python操作某乙個具體的應用程式。眾所周知,python可以作為一種「粘合劑」,它可以將互不相容的程式聯絡在一起,但是大部分書都沒有詳細地介紹python如何在這些應用程式上發揮它強大的功能。

目前還沒有一本專門為arcgis編寫的python參考書,所以您只能通過一些常見的python語言參考書來學習python的語法。但是,一些arcgis中的物件,例如要素、多邊形以及地理處理工具等,與python書籍中介紹的較為通用的物件相比,存在很大的區別。對於乙個熟練操作arcgis的使用者來說,即使他手上有一本python參考書,在使用python編寫arcgis指令碼的時候也會感覺十分吃力。而對於乙個經驗豐富的程式設計師來說,如果他曾經用vba或c++進行arcgis程式設計,那麼一本通用的python參考書或許就已經足夠了,但是,如果他沒有這樣的經歷,那麼一本專門為arcgis編寫的python參考書將會更有用處。

[第1章 python簡介

1.1 引言](

1.2 python的特點

1.3 指令碼語言和程式語言

1.4 arcgis的指令碼語言

1.5 python的歷史和版本

1.6 關於本書

1.7 python指令碼例項

1.8 python指令碼編輯器

1.9 本章要點

初探arcgis的python指令碼的使用 (二)

最近要給分局部署軟體,需要一系列資料,首當其衝的是要做單獨的區的乙個影像切片,有趣的是,單位只有全市的影像切片,居然沒有分割槽的,而且原始的tif影像資料也是全市雜糅在一起的,我只能自己來處理資料。拿到幾百個g的原始tif資料後,發現幾個特點和問題 一 資料的橫座標不帶41 二 資料是以圖幅網格的副...

學習arcgis的指令碼Python入門技巧

學習arcgis的指令碼python的快捷方式是構建自己的modelbuilder,然後匯出為python指令碼,通過檢視其指令碼就知道如何呼叫arcgis的工具箱了。然而arcgis10.0後的柵格計算器不再使用9.3的用法,如下在10.0中會報錯。process raster calculato...

ArcGIS 基於Python的指令碼程式設計 3

這篇文章講述基於python的處理空間資料的一些方法,後續會再補充。2.處理表和欄位名 3.處理文字檔案 arcpy中游標在arcpy.da模中,共有3種游標。使用語法 cursor arcpy.da.searchcursor 輸入表,欄位名稱列表 查詢條件,空間參考 一些地理處理 x 記得要刪除游...