版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ArcPy 腳本編程詹智成.8.20地理科學(xué)學(xué)部.BNU 1/46ArcPyArcPy 封裝了arcgis大部分功效進(jìn)而構(gòu)建而成站點(diǎn)包。目標(biāo)是為以實(shí)用高效方式經(jīng)過 Python 執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化創(chuàng)建基礎(chǔ)。ArcPy組成2/46目錄Arcpy函數(shù)Arcpy類Arcpy模塊Arcpy地理處理3/46函數(shù)和工具區(qū)分工具統(tǒng)計(jì)方式與函數(shù)不一樣。每個(gè)工具在 ArcGIS Desktop 幫助系統(tǒng)中都有自己工具參考頁面。函數(shù)則統(tǒng)計(jì)在 ArcPy 文檔中。工具會(huì)返回Result對(duì)象;而函數(shù)不會(huì)。工具會(huì)生成可經(jīng)過各種函數(shù)(如GetMessages())進(jìn)行訪問消息。函數(shù)不會(huì)生成消
2、息。工具按產(chǎn)品級(jí)別(ArcGIS for Desktop Basic、Standard或Advanced)和擴(kuò)展模塊(ArcGIS Network Analyst 擴(kuò)展模塊、ArcGIS Spatial Analyst 擴(kuò)展模塊等)進(jìn)行授權(quán)。您能夠在工具參考頁面上查找所需許可等級(jí)。不對(duì)函數(shù)進(jìn)行授權(quán) - 它們隨 ArcPy 一起安裝。4/46實(shí)例 arcpy.Buffer_analysis(c:/data/Portland.gdb/streets, c:/data/Portland.gdb/steets_buffer, 500 METERS)工具函數(shù)5/46ArcPy函數(shù)含有特定功效函數(shù),能夠?qū)?/p>
3、現(xiàn)如:處理數(shù)據(jù)集列表、查詢數(shù)據(jù)集屬性、確定數(shù)據(jù)是否存在、檢驗(yàn)數(shù)據(jù)集名稱有效性等。這些函數(shù)是為實(shí)現(xiàn)Python工作流而實(shí)現(xiàn)。在Python中調(diào)用函數(shù)方式arcpy.()函數(shù)需要參數(shù)有必選參數(shù)和可選參數(shù)、函數(shù)含有返回值,大多一對(duì)象返回Import arcpyPrint arcpy.Exists(“c:/Data.streams.shp”)6/46函數(shù)分類光標(biāo)函數(shù)數(shù)據(jù)描述函數(shù)環(huán)境和設(shè)置函數(shù)字段函數(shù)數(shù)據(jù)庫管理函數(shù)通用函數(shù)通用數(shù)據(jù)函數(shù)參數(shù)獲取和設(shè)置函數(shù)數(shù)據(jù)列表函數(shù)日志函數(shù)消息和錯(cuò)誤處理函數(shù)進(jìn)度對(duì)話框函數(shù)柵格數(shù)據(jù)函數(shù)空間參考轉(zhuǎn)換函數(shù)許可和安裝函數(shù)7/46通用數(shù)據(jù)函數(shù)arcpy.Exists(“c:/Dat
4、a/streams.shp”) #判斷文件是否存在desc=arcpy.Describe(“c:/Data/streams.shp”)#數(shù)據(jù)描述函數(shù)print desc.shapeType #輸出類型,比如”Polygon”、”Polyline”,”Point”,能夠用于篩選shapefile類型。print desc.spatialReference # 獲取坐標(biāo)系統(tǒng)RefreshActiveView()#刷新當(dāng)前地圖文檔8/46數(shù)據(jù)列表函數(shù)列表函數(shù)使用之前需要設(shè)置工作空間路徑,列表函數(shù)會(huì)返回?cái)?shù)據(jù)列表ListFeatureClasses(string_match,data_type) #返回
5、當(dāng)前工作空間全部要素類列表ListRasters(string_match,data_type) #返回當(dāng)前工作空間全部柵格數(shù)據(jù)ListFields(dataset,wild_card,field_type)#獲取字段列表ListFeatureClasses(“C*”) #通配符限制返回結(jié)果列表.9/46ArcPy類類能夠創(chuàng)建對(duì)象,對(duì)象創(chuàng)建完成后能夠調(diào)用其屬性和方法10/46ArcPy慣用類Env類spatialReference類Geometry類字段類11/46env類Env類屬性包含了一系列地理處理環(huán)境。其屬性既能夠讀取也能夠?qū)懭霊T用屬性:Import arcpyarcpy.env.wo
6、rkspace=“c:/Data” #設(shè)置工作空間Arcpy.env.overwriteOutput=True #設(shè)置地理處理結(jié)果是否覆蓋12/46SpatialReference類參考系類,屬性包含坐標(biāo)系統(tǒng)參數(shù),為了使用這個(gè)類,必須先初始化Import arcpyPrjfile=“c:/Data/myprojection.prj”Spatialref=arcpy.SpatialReference(prjfile)#讀取投影文件初始化參考系類;初始化方式有三種:坐標(biāo)系名稱,坐標(biāo)系代號(hào)和和坐標(biāo)系文件Print S # 獲取name屬性能夠坐標(biāo)系定義工具輸入?yún)?shù)13/46幾何類在許多地理處理工作流
7、中,您可能需要使用坐標(biāo)和幾何信息運(yùn)行特定操作,但不一定想經(jīng)歷創(chuàng)建新(暫時(shí))要素類、使用光標(biāo)填充要素類、使用要素類,然后刪除暫時(shí)要素類過程。能夠使用幾何對(duì)象替換輸入和輸出,從而使地理處理變得更簡(jiǎn)單。能夠使用Geometry、Multipoint、PointGeometry、Polygon或Polyline類從頭開始創(chuàng)建幾何對(duì)象。14/46Point類 點(diǎn)并非幾何類,但通慣用于結(jié)構(gòu)幾何Point=arcpy,Point(25282,43770)ptGeometry=arcpy.PointGeometry(point)Point=arcpy.Point()Point.X=25282Point.Y=4
8、3770ptGeometry=arcpy.PointGeometry(point)15/46點(diǎn)要素類創(chuàng)建點(diǎn)對(duì)象幾何點(diǎn)對(duì)象點(diǎn)要素16/46線要素類創(chuàng)建17/46面要素類創(chuàng)建18/46字段類Field類屬性:aliasName 字段別名basename 非限定字段名稱defaultValue 字段默認(rèn)值editable 可編輯狀態(tài):Truelength 字段長(zhǎng)度Name 字段名稱Precision 字段精度Type 字段類型19/46代碼示例顯示指定要素類字段屬性20/46模塊arcpy.da(數(shù)據(jù)訪問模塊)Arcpy.mapping(制圖模塊)Arcpy.sa(ArcGIS Spatial An
9、alyst擴(kuò)展模塊)Arcpy.na(ArcGIS Network Analyst擴(kuò)展模塊)Time 模塊21/46數(shù)據(jù)訪問模塊arcpy.da定義:數(shù)據(jù)訪問(Data Assess)模塊 (arcpy.da) 是一個(gè)用于處理數(shù)據(jù) Python 模塊。經(jīng)過它可控制編輯會(huì)話、編輯操作、改進(jìn)游標(biāo)支持(包含更加快性能)、表和要素類與 NumPy 數(shù)組之間相互轉(zhuǎn)換函數(shù)以及對(duì)版本化、復(fù)本、屬性域和子類型工作流支持。22/46游標(biāo)類Cursor 是一個(gè)數(shù)據(jù)訪問對(duì)象,可用于在表中迭代一組行或者向表中插入新行。游標(biāo)有三種形式:搜索、插入或更新。游標(biāo)通慣用于讀取和更新屬性。Cursor 類別:SearchCur
10、sor 查詢游標(biāo) 用于查詢字段值UpdateCursor 更新游標(biāo) 用于更新字段值InsertCursor 插入游標(biāo) 在表中插入新行23/46Row對(duì)象行對(duì)象表示表中某一行。行對(duì)象會(huì)從InsertCursor、SearchCursor和UpdateCursor中返回。24/46游標(biāo)實(shí)例InsertCursor25/46作業(yè)11.將江蘇省地級(jí)市點(diǎn)兩兩相連,建立polyline(必做)。2.為線條增加權(quán)重:增加一個(gè)字段,字段值為兩點(diǎn)人口數(shù)之和(選做)26/46ArcPy.mapping 模塊Arcpy.mapping 是一個(gè)作為 ArcPy 站點(diǎn)包一部分Python 腳本模塊。隨ArcGIS De
11、sktop一同安裝,并對(duì)全部許可均可用。其設(shè)計(jì)初衷主要是用于操作現(xiàn)有地圖文檔 (.mxd) 和圖層文件 (.lyr) 內(nèi)容。另外,還提供自動(dòng)執(zhí)行導(dǎo)出和打印功效。Arcpy.mapping 可用于自動(dòng)執(zhí)行地圖生產(chǎn);它擴(kuò)展了數(shù)據(jù)驅(qū)動(dòng)頁面功效,同時(shí),因其包含導(dǎo)出至 PDF 文檔、創(chuàng)建和管理 PDF 文檔函數(shù),而為構(gòu)建完整地圖冊(cè)所必需。最終,可將 arcpy.mapping 腳本公布為地理處理服務(wù),并將腳本功效提供給 Web 應(yīng)用程序。27/46ArcPy.mapping 模塊功效創(chuàng)建相關(guān)地圖文檔中所含信息(如數(shù)據(jù)框坐標(biāo)系、圖層數(shù)據(jù)源、數(shù)據(jù)源損壞圖層或布局元素位置)匯報(bào)。更新、修復(fù)或替換地圖文檔或圖層
12、文件中圖層數(shù)據(jù)源。更新圖層符號(hào)系統(tǒng)而無需實(shí)際打開地圖文檔。查找并替換文件夾內(nèi)全部地圖文檔文本字符串。將地圖文檔保留至之前 ArcGIS 版本,方便分發(fā)。更新地圖文檔元數(shù)據(jù)(比如,關(guān)鍵字、摘要和描述)。使用地圖導(dǎo)出命令批量創(chuàng)建地理數(shù)據(jù),比如,由數(shù)據(jù)框中要素列表驅(qū)動(dòng)一系列 GeoTIFF 圖像。自動(dòng)創(chuàng)建和管理要經(jīng)過ArcGIS Server公布地圖服務(wù)。構(gòu)建各種 PDF 地圖冊(cè):含標(biāo)題頁、多個(gè)地圖頁面以及任意數(shù)量含輔助內(nèi)容(如表格式報(bào)表和聯(lián)絡(luò)人列表)附加頁面專題或時(shí)態(tài)地圖冊(cè)。基于數(shù)據(jù)驅(qū)動(dòng)頁面輸出參考地圖冊(cè)。28/46Mxd對(duì)象獲取獲取mxd文檔對(duì)象:arcpy.mapping.MapDocumen
13、t(r“c:ProjectProject.mxd”)獲取當(dāng)前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對(duì)象屬性:spatialR
14、eference 讀寫數(shù)據(jù)框坐標(biāo)系統(tǒng)Description 獲取或設(shè)置數(shù)據(jù)庫描述信息方法:panToExtent()zoomToSelectedFeatures()32/46Layers對(duì)象圖層對(duì)象提供了對(duì) ArcMap圖層屬性對(duì)話框中出現(xiàn)眾多慣用圖層屬性訪問,同時(shí)也提供了用于保留圖層文件各種方法。Legend對(duì)象中Layer函數(shù)、ListLayers函數(shù)和listLegendItemLayers方法都提供了引用Layer對(duì)象方法。33/46修改圖層符號(hào)系統(tǒng)只有極少數(shù)受支持符號(hào)系統(tǒng)類型,其屬性和方法可供使用。使用前先測(cè)試圖層symbologyType屬性。假如返回OTHER值,則不能夠修改圖層
15、符號(hào)系統(tǒng)。假如返回值不是OTHER,則圖層symbology屬性將返回某個(gè)符號(hào)系統(tǒng)類。每個(gè)符號(hào)系統(tǒng)類都包含一組特有方法和屬性:GraduatedColorsSymbology、GraduatedSymbolsSymbology、RasterClassifiedSymbology和UniqueValuesSymbology。34/46Layer類特點(diǎn)并非全部圖層屬性都能夠經(jīng)過Layer對(duì)象訪問,比如顯示屬性、字段別名、選擇內(nèi)容符號(hào)系統(tǒng)等。不過能夠用updateLayer間接修改。修改符號(hào)系統(tǒng)35/46圖層對(duì)象獲取圖層組和其它子圖層被視為普通圖層,ListLayers()函數(shù)返回時(shí)候,按照顯示次序
16、一樣生成索引,比如假如地圖文檔中包含一個(gè)含有三個(gè)子圖層圖層組,則將返回一個(gè)包含四個(gè)圖層名列表(包含圖層名)36/46AddLayer添加圖層必須參考已存在圖層(請(qǐng)注意,圖層也能夠是圖層組)。源圖層能夠來自磁盤上圖層文件、同一地圖文檔和數(shù)據(jù)框、同一地圖文檔不一樣數(shù)據(jù)框乃至完全獨(dú)立地圖文檔。37/46作業(yè)2-實(shí)現(xiàn)自動(dòng)化制圖以每一個(gè)實(shí)習(xí)點(diǎn)為中心,百分比尺為8000,出圖38/46ArcPy 地理處理ArcPy地理處理為調(diào)用地理處理工具進(jìn)行數(shù)據(jù)處理。每個(gè)地理處理工具都含有一組固定參數(shù),這些參數(shù)為工具提供執(zhí)行所需信息。工具通常包含多個(gè)輸入?yún)?shù)以定義一個(gè)或多個(gè)數(shù)據(jù)集,這些數(shù)據(jù)集普通用于生成新輸出數(shù)據(jù)。參數(shù)
17、含有幾個(gè)主要屬性:每個(gè)參數(shù)含有一個(gè)或各種特定數(shù)據(jù)類型,如要素類、整型、字符串或柵格。參數(shù)為輸入值或輸出值。參數(shù)需有值,或?yàn)榭蛇x。各個(gè)工具參數(shù)都含有唯一名稱。39/46ArcPy地理處理工具ArcPy能夠訪問ArcGIS for Desktop 中地理處理工具。在Python 腳本里,能夠經(jīng)過工具箱名稱調(diào)用。這些工具還含有各自標(biāo)簽,它們是顯示在ArcToolbox中名稱。工具名稱與工具標(biāo)簽即使很相同,不過在工具名稱中是不包含空格。比如Data Management 工具箱中工具Add Field 標(biāo)簽是Add Field ,名稱是AddField另外,對(duì)于一些特殊工具,還需要引用工具箱別名來調(diào)用
18、工具。因?yàn)椴灰粯觽€(gè)工具在不一樣工具箱中可能有相同名字。比如。ArcToolBox中有多個(gè)Clip:在Analysis中有一個(gè),Data Management 工具箱中也有一個(gè)。工具箱別名和工具箱名稱標(biāo)簽都不一樣,是工具箱縮寫,如Data Management 別名是management.所以在Python 中,Data Management 工具箱中Clip工具是Clip_management.40/46工具調(diào)用方法(1)函數(shù)形式調(diào)用,全部工具均以函數(shù)形式提供。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.Clip_analysis(“streams.shp”,”study.shp”,”result.shp”)(2)匹配工具箱別名形式調(diào)用工具。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.analysis.Clip(“streams.shp”,”s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度競(jìng)業(yè)禁止員工合同終止及競(jìng)業(yè)限制解除協(xié)議
- 2025年度住宅小區(qū)電梯安裝及移交合同
- 2025年度珠寶抵押貸款合同糾紛解決協(xié)議
- 2025年度食用農(nóng)產(chǎn)品質(zhì)量追溯體系技術(shù)支持合同
- 二零二五年度文化遺產(chǎn)保護(hù)贈(zèng)與合同
- 二零二五年度體育場(chǎng)館物業(yè)服務(wù)保潔承包合同專業(yè)版
- 2025年度二零二五年度高速鐵路聘用動(dòng)車司機(jī)勞動(dòng)合同
- 2025年度私人公司購(gòu)車保險(xiǎn)責(zé)任劃分合同
- 二零二五年度糧油市場(chǎng)信息共享與價(jià)格協(xié)商合同
- 心悸冠心病病人的護(hù)理查房
- 教育管理學(xué)課件-管理、教育管理和教育管理學(xué)之概述
- 2025年廣西事業(yè)單位聯(lián)考招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年中儲(chǔ)糧儲(chǔ)運(yùn)限公司公開招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年考研英語一閱讀理解80篇試題及答案
- 風(fēng)箏產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 心律失常介入治療
- 酒店住宿投標(biāo)書
- 2024年京東商家入駐協(xié)議模板
- 監(jiān)理從業(yè)水平培訓(xùn)課件
- 義務(wù)教育(音樂)課程標(biāo)準(zhǔn)(2022年版)解讀
評(píng)論
0/150
提交評(píng)論