Arcpy腳本編程入門_第1頁
Arcpy腳本編程入門_第2頁
Arcpy腳本編程入門_第3頁
Arcpy腳本編程入門_第4頁
Arcpy腳本編程入門_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ArcPy 腳本編程詹智成.8.20地理科學學部.BNU 1/46ArcPyArcPy 封裝了arcgis大部分功效進而構建而成站點包。目標是為以實用高效方式經過 Python 執(zhí)行地理數(shù)據分析、數(shù)據轉換、數(shù)據管理和地圖自動化創(chuàng)建基礎。ArcPy組成2/46目錄Arcpy函數(shù)Arcpy類Arcpy模塊Arcpy地理處理3/46函數(shù)和工具區(qū)分工具統(tǒng)計方式與函數(shù)不一樣。每個工具在 ArcGIS Desktop 幫助系統(tǒng)中都有自己工具參考頁面。函數(shù)則統(tǒng)計在 ArcPy 文檔中。工具會返回Result對象;而函數(shù)不會。工具會生成可經過各種函數(shù)(如GetMessages())進行訪問消息。函數(shù)不會生成消

2、息。工具按產品級別(ArcGIS for Desktop Basic、Standard或Advanced)和擴展模塊(ArcGIS Network Analyst 擴展模塊、ArcGIS Spatial Analyst 擴展模塊等)進行授權。您能夠在工具參考頁面上查找所需許可等級。不對函數(shù)進行授權 - 它們隨 ArcPy 一起安裝。4/46實例 arcpy.Buffer_analysis(c:/data/Portland.gdb/streets, c:/data/Portland.gdb/steets_buffer, 500 METERS)工具函數(shù)5/46ArcPy函數(shù)含有特定功效函數(shù),能夠實

3、現(xiàn)如:處理數(shù)據集列表、查詢數(shù)據集屬性、確定數(shù)據是否存在、檢驗數(shù)據集名稱有效性等。這些函數(shù)是為實現(xiàn)Python工作流而實現(xiàn)。在Python中調用函數(shù)方式arcpy.()函數(shù)需要參數(shù)有必選參數(shù)和可選參數(shù)、函數(shù)含有返回值,大多一對象返回Import arcpyPrint arcpy.Exists(“c:/Data.streams.shp”)6/46函數(shù)分類光標函數(shù)數(shù)據描述函數(shù)環(huán)境和設置函數(shù)字段函數(shù)數(shù)據庫管理函數(shù)通用函數(shù)通用數(shù)據函數(shù)參數(shù)獲取和設置函數(shù)數(shù)據列表函數(shù)日志函數(shù)消息和錯誤處理函數(shù)進度對話框函數(shù)柵格數(shù)據函數(shù)空間參考轉換函數(shù)許可和安裝函數(shù)7/46通用數(shù)據函數(shù)arcpy.Exists(“c:/Dat

4、a/streams.shp”) #判斷文件是否存在desc=arcpy.Describe(“c:/Data/streams.shp”)#數(shù)據描述函數(shù)print desc.shapeType #輸出類型,比如”Polygon”、”Polyline”,”Point”,能夠用于篩選shapefile類型。print desc.spatialReference # 獲取坐標系統(tǒng)RefreshActiveView()#刷新當前地圖文檔8/46數(shù)據列表函數(shù)列表函數(shù)使用之前需要設置工作空間路徑,列表函數(shù)會返回數(shù)據列表ListFeatureClasses(string_match,data_type) #返回

5、當前工作空間全部要素類列表ListRasters(string_match,data_type) #返回當前工作空間全部柵格數(shù)據ListFields(dataset,wild_card,field_type)#獲取字段列表ListFeatureClasses(“C*”) #通配符限制返回結果列表.9/46ArcPy類類能夠創(chuàng)建對象,對象創(chuàng)建完成后能夠調用其屬性和方法10/46ArcPy慣用類Env類spatialReference類Geometry類字段類11/46env類Env類屬性包含了一系列地理處理環(huán)境。其屬性既能夠讀取也能夠寫入慣用屬性:Import arcpyarcpy.env.wo

6、rkspace=“c:/Data” #設置工作空間Arcpy.env.overwriteOutput=True #設置地理處理結果是否覆蓋12/46SpatialReference類參考系類,屬性包含坐標系統(tǒng)參數(shù),為了使用這個類,必須先初始化Import arcpyPrjfile=“c:/Data/myprojection.prj”Spatialref=arcpy.SpatialReference(prjfile)#讀取投影文件初始化參考系類;初始化方式有三種:坐標系名稱,坐標系代號和和坐標系文件Print S # 獲取name屬性能夠坐標系定義工具輸入參數(shù)13/46幾何類在許多地理處理工作流

7、中,您可能需要使用坐標和幾何信息運行特定操作,但不一定想經歷創(chuàng)建新(暫時)要素類、使用光標填充要素類、使用要素類,然后刪除暫時要素類過程。能夠使用幾何對象替換輸入和輸出,從而使地理處理變得更簡單。能夠使用Geometry、Multipoint、PointGeometry、Polygon或Polyline類從頭開始創(chuàng)建幾何對象。14/46Point類 點并非幾何類,但通慣用于結構幾何Point=arcpy,Point(25282,43770)ptGeometry=arcpy.PointGeometry(point)Point=arcpy.Point()Point.X=25282Point.Y=4

8、3770ptGeometry=arcpy.PointGeometry(point)15/46點要素類創(chuàng)建點對象幾何點對象點要素16/46線要素類創(chuàng)建17/46面要素類創(chuàng)建18/46字段類Field類屬性:aliasName 字段別名basename 非限定字段名稱defaultValue 字段默認值editable 可編輯狀態(tài):Truelength 字段長度Name 字段名稱Precision 字段精度Type 字段類型19/46代碼示例顯示指定要素類字段屬性20/46模塊arcpy.da(數(shù)據訪問模塊)Arcpy.mapping(制圖模塊)Arcpy.sa(ArcGIS Spatial An

9、alyst擴展模塊)Arcpy.na(ArcGIS Network Analyst擴展模塊)Time 模塊21/46數(shù)據訪問模塊arcpy.da定義:數(shù)據訪問(Data Assess)模塊 (arcpy.da) 是一個用于處理數(shù)據 Python 模塊。經過它可控制編輯會話、編輯操作、改進游標支持(包含更加快性能)、表和要素類與 NumPy 數(shù)組之間相互轉換函數(shù)以及對版本化、復本、屬性域和子類型工作流支持。22/46游標類Cursor 是一個數(shù)據訪問對象,可用于在表中迭代一組行或者向表中插入新行。游標有三種形式:搜索、插入或更新。游標通慣用于讀取和更新屬性。Cursor 類別:SearchCur

10、sor 查詢游標 用于查詢字段值UpdateCursor 更新游標 用于更新字段值InsertCursor 插入游標 在表中插入新行23/46Row對象行對象表示表中某一行。行對象會從InsertCursor、SearchCursor和UpdateCursor中返回。24/46游標實例InsertCursor25/46作業(yè)11.將江蘇省地級市點兩兩相連,建立polyline(必做)。2.為線條增加權重:增加一個字段,字段值為兩點人口數(shù)之和(選做)26/46ArcPy.mapping 模塊Arcpy.mapping 是一個作為 ArcPy 站點包一部分Python 腳本模塊。隨ArcGIS De

11、sktop一同安裝,并對全部許可均可用。其設計初衷主要是用于操作現(xiàn)有地圖文檔 (.mxd) 和圖層文件 (.lyr) 內容。另外,還提供自動執(zhí)行導出和打印功效。Arcpy.mapping 可用于自動執(zhí)行地圖生產;它擴展了數(shù)據驅動頁面功效,同時,因其包含導出至 PDF 文檔、創(chuàng)建和管理 PDF 文檔函數(shù),而為構建完整地圖冊所必需。最終,可將 arcpy.mapping 腳本公布為地理處理服務,并將腳本功效提供給 Web 應用程序。27/46ArcPy.mapping 模塊功效創(chuàng)建相關地圖文檔中所含信息(如數(shù)據框坐標系、圖層數(shù)據源、數(shù)據源損壞圖層或布局元素位置)匯報。更新、修復或替換地圖文檔或圖層

12、文件中圖層數(shù)據源。更新圖層符號系統(tǒng)而無需實際打開地圖文檔。查找并替換文件夾內全部地圖文檔文本字符串。將地圖文檔保留至之前 ArcGIS 版本,方便分發(fā)。更新地圖文檔元數(shù)據(比如,關鍵字、摘要和描述)。使用地圖導出命令批量創(chuàng)建地理數(shù)據,比如,由數(shù)據框中要素列表驅動一系列 GeoTIFF 圖像。自動創(chuàng)建和管理要經過ArcGIS Server公布地圖服務。構建各種 PDF 地圖冊:含標題頁、多個地圖頁面以及任意數(shù)量含輔助內容(如表格式報表和聯(lián)絡人列表)附加頁面專題或時態(tài)地圖冊?;跀?shù)據驅動頁面輸出參考地圖冊。28/46Mxd對象獲取獲取mxd文檔對象:arcpy.mapping.MapDocumen

13、t(r“c:ProjectProject.mxd”)獲取當前mxd文檔(僅限在arcMap環(huán)境下)arcpy.mapping.mapDocument(“CURRENT”)29/46mxd類屬性authorfilePathtitle方法save()saveACopy()30/46DataFrame獲取import arcpymxd=arcpy.mapping.MapDocument(r“c:ProjectProject.mxd”)for df in arcpy.mapping.ListDataFrames(mxd):print Del mxd31/46DataFrame對象屬性:spatialR

14、eference 讀寫數(shù)據框坐標系統(tǒng)Description 獲取或設置數(shù)據庫描述信息方法:panToExtent()zoomToSelectedFeatures()32/46Layers對象圖層對象提供了對 ArcMap圖層屬性對話框中出現(xiàn)眾多慣用圖層屬性訪問,同時也提供了用于保留圖層文件各種方法。Legend對象中Layer函數(shù)、ListLayers函數(shù)和listLegendItemLayers方法都提供了引用Layer對象方法。33/46修改圖層符號系統(tǒng)只有極少數(shù)受支持符號系統(tǒng)類型,其屬性和方法可供使用。使用前先測試圖層symbologyType屬性。假如返回OTHER值,則不能夠修改圖層

15、符號系統(tǒng)。假如返回值不是OTHER,則圖層symbology屬性將返回某個符號系統(tǒng)類。每個符號系統(tǒng)類都包含一組特有方法和屬性:GraduatedColorsSymbology、GraduatedSymbolsSymbology、RasterClassifiedSymbology和UniqueValuesSymbology。34/46Layer類特點并非全部圖層屬性都能夠經過Layer對象訪問,比如顯示屬性、字段別名、選擇內容符號系統(tǒng)等。不過能夠用updateLayer間接修改。修改符號系統(tǒng)35/46圖層對象獲取圖層組和其它子圖層被視為普通圖層,ListLayers()函數(shù)返回時候,按照顯示次序

16、一樣生成索引,比如假如地圖文檔中包含一個含有三個子圖層圖層組,則將返回一個包含四個圖層名列表(包含圖層名)36/46AddLayer添加圖層必須參考已存在圖層(請注意,圖層也能夠是圖層組)。源圖層能夠來自磁盤上圖層文件、同一地圖文檔和數(shù)據框、同一地圖文檔不一樣數(shù)據框乃至完全獨立地圖文檔。37/46作業(yè)2-實現(xiàn)自動化制圖以每一個實習點為中心,百分比尺為8000,出圖38/46ArcPy 地理處理ArcPy地理處理為調用地理處理工具進行數(shù)據處理。每個地理處理工具都含有一組固定參數(shù),這些參數(shù)為工具提供執(zhí)行所需信息。工具通常包含多個輸入參數(shù)以定義一個或多個數(shù)據集,這些數(shù)據集普通用于生成新輸出數(shù)據。參數(shù)

17、含有幾個主要屬性:每個參數(shù)含有一個或各種特定數(shù)據類型,如要素類、整型、字符串或柵格。參數(shù)為輸入值或輸出值。參數(shù)需有值,或為可選。各個工具參數(shù)都含有唯一名稱。39/46ArcPy地理處理工具ArcPy能夠訪問ArcGIS for Desktop 中地理處理工具。在Python 腳本里,能夠經過工具箱名稱調用。這些工具還含有各自標簽,它們是顯示在ArcToolbox中名稱。工具名稱與工具標簽即使很相同,不過在工具名稱中是不包含空格。比如Data Management 工具箱中工具Add Field 標簽是Add Field ,名稱是AddField另外,對于一些特殊工具,還需要引用工具箱別名來調用

18、工具。因為不一樣個工具在不一樣工具箱中可能有相同名字。比如。ArcToolBox中有多個Clip:在Analysis中有一個,Data Management 工具箱中也有一個。工具箱別名和工具箱名稱標簽都不一樣,是工具箱縮寫,如Data Management 別名是management.所以在Python 中,Data Management 工具箱中Clip工具是Clip_management.40/46工具調用方法(1)函數(shù)形式調用,全部工具均以函數(shù)形式提供。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.Clip_analysis(“streams.shp”,”study.shp”,”result.shp”)(2)匹配工具箱別名形式調用工具。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.analysis.Clip(“streams.shp”,”s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論