




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Python 語言的基本情況python 和 Arcpy 編程python語言的基本情況 Python和arcpy編程簡介Python簡介ArcPy簡介開發(fā)示例Python簡介Python是一種面向?qū)ο蟮哪_本語言,由荷蘭GuidovanRossum于20世紀80年代后期構(gòu)思并于 2000 年推出。Python編程語言繼承了傳統(tǒng)編譯語言的功能和通用性,同時也從腳本和解釋語言的易用性中吸取了教訓。目前,Python已經(jīng)廣泛應(yīng)用于科學計算、網(wǎng)站開發(fā)、系統(tǒng)管理等領(lǐng)域。它被TIOBE 編程語言排行榜評為年度編程語言。有幾個版本的Python集成到了 ArcGIS中。Python版本是。特性 Python
2、 有以下特性:開源。Python完全開源的用戶可以詢問Python網(wǎng)站。Python 文檔中的模塊列表主要是內(nèi)部的:系統(tǒng)模塊系統(tǒng)在這里是指 Python 系統(tǒng),而不是操作系統(tǒng)。os 模塊和ospath 模塊定義了一組與目錄操作相關(guān)的功能。ospath模塊是os模塊的一個屬性,在os模塊加載時會自動加載。字符串模塊:字符串模塊用于操作字符串。字符串模塊中的許多函數(shù)被設(shè)計為字符串對象。數(shù)學模塊:包含大量數(shù)學函數(shù)。隨機模塊:用于生成不同分布的隨機數(shù),包括生成一定數(shù)值范圍內(nèi)的隨機數(shù)、隨機選擇序列中的元素、隨機抽樣序列、隨機排列序列中的元素等。Urllib 模塊:用于打開和復制url 表示的網(wǎng)絡(luò)對象。R
3、e模塊:re(正則表達式)是由字符和特殊符號組成的字符串。re 模塊基于正則表達式為字符串操作提供多個字符串匹配函數(shù),例如find 、分離和替換。函數(shù)解釋url打開(URL,數(shù)據(jù))打開由URL表示的網(wǎng)絡(luò)對象 也可以打開本地文件。網(wǎng)址檢索(網(wǎng)址、文件名、報告掛鉤)將網(wǎng)址表示的網(wǎng)絡(luò)對象復制到本地文件。importurlliburlretrieve()URL 模 塊 的 主 要 功 能 是 importurllibwebfile = URL liburopen(web file = URL liburopen(URL)S =web file read()ls = refin Dall(http: ,
4、 S) Forlins: printlwebfileclose()僅顯 示主頁地址(即不包括開頭http:和結(jié)尾之間帶有、和符號的字符串)。 該符號表示除方括號中列出的字符集之外的其他字符集。僅顯示主頁地址的外部模塊是指python 軟件中不包含的模塊。要調(diào)用外部模塊,首先需要將外部模塊復制到查找路徑。外部模塊通常集成到包中。包通常放在libsitepackages文件夾下。通用 python 軟件包 :用于陣列操作的NumPy。SciPy數(shù)值計算庫。符號運算。Matplotlib 制圖 TVTK 3D 可視化 Vpython 3D 動畫 OpenCV 圖 像 處 理 和 計 算 機 視 覺
5、IMPORTMATPLOTLIB PYPLOTASPTX=, , , , , , , , PLTPOT (X, Y)pltshow() 使用 matplotlib python 制圖的示例介紹 ArcPy 簡介開發(fā)示例Pythonaddins 什么是 ArcPyArcPy ESRI公司在ArcGIS中推出的Python包。安裝后,ArcGISDesktop在安裝目錄下有一個arcpy文件夾。ArcPy 包含 Python 函數(shù)、類和模塊。ArcGIS 的函數(shù)、類、模塊(每個模塊包含多個函數(shù)和類)。實際上, ArcPy 封裝了與ArcObjects 相關(guān)的類,因此用戶可以使用 Python 語言
6、調(diào)用與ArcObjects 相關(guān)的類。ArcPy 提供的功能:可以訪問所有地面處理工具、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)管理、數(shù)據(jù)分析和自動制圖。Python和ArcPy可用于開發(fā)大量用于處理地理數(shù)據(jù)的實用程序。在 ArcGIS 的幫助文檔(地理處理)中詳細描述了ArcPy, 包括ArcPy 的函數(shù)、類和數(shù)據(jù)訪問模塊、映射模塊、空間分析模塊、地質(zhì)統(tǒng)計分析模塊和時間模塊。同一個目錄中的Python 介紹了如何使用Python 和 ArcPy 來執(zhí)行各種處理。ArcPy 幫助文檔ArcPy 函數(shù) ArcPy 按類型提供許多函數(shù),包括 :環(huán)境設(shè)置、獲取和設(shè)置工具參數(shù)、信息和錯誤處理、工具和工具箱等。這些功能可以在Ar
7、cGIS 中使用, 有助于了解其具體用途(地理處理和制圖)。ArcPy 函數(shù)列表函數(shù)數(shù)據(jù)列表函數(shù)數(shù)據(jù)列表函數(shù)的詳細信息用于返回當前工作區(qū)的數(shù)據(jù)列表和數(shù)據(jù)集中的字段、索引列表。其中數(shù)據(jù)列表可以指定數(shù)據(jù)類型,字段列表可以通過使用通配符來限制列表數(shù)據(jù)來指定字段類型。工作區(qū)可以是文件夾或數(shù)據(jù)庫。函數(shù)解釋器列表文件(通配符)返回當前工作區(qū)中的文件列列表數(shù)據(jù)集(通配符、要素類型)返回當前工作區(qū)中的數(shù)據(jù)集列表要素類(通配符,要素類型)返回當前工作區(qū)中的要素類列表柵格(通配符,rastertype兩回當前工作空間中的柵格數(shù)ListTables(通配符,Tabletype泅回當前工作區(qū)中的表數(shù)據(jù)列ListWor
8、kspacees(S配符,工彳空間類型)返回當前工作空間中的工作空間列表。Listfields(數(shù)據(jù)集,通配符, fieldtype)返回數(shù)據(jù)集中的字 段列表。列表索引(數(shù)據(jù)集,通配符 )返回數(shù)據(jù)集中的索引列表。列表版本(sdeworkspace返回版本列表。數(shù) 據(jù) 列 表 功 能 ArcGIS 支 持 的 字 段 類 型表。列表。列表。據(jù)列表。表。有 :importerCyFromMarcheimportenWorkSpace = C:DataUsafcsArcpylistFeatureClass()Forcinfcs:print fc 顯示指定文件夾中的所有要素 類 importerCyf
9、ds = ArcpylistFields(C:Datausstateshp ,String)Fordinfds:print fdname 顯示狀態(tài)的所有字符串字段名稱ArcPy類ArcPy當前已定義了幾個類,包括:envSpatialReferenceCurso前行 幾何對象類(包括點幾何、多點、折線= 0)有三種類型:search! insert和update分別用于查詢表數(shù)據(jù)、 insert 和 update行對象表示表數(shù)據(jù)中的記錄可以通過游標對象的迭代獲得。游標對象方法游標類型方法解釋搜索下一行()返回當前位置的下一行對象重置()返回第一個位置的行對象插入新行()生成空行對象插入行(行
10、)插入新行對象下一個()重置()到游標更新刪除行(行 )刪除行對象更新行(行 )使用行更新當前對象下一個()重置()方法解釋獲取值(字段名)或字段名以獲取字段值設(shè)置值(字段名,對象 )將字段值設(shè)置為(fieldname)字段值設(shè)置為(fieldname)將字段值設(shè)置為行對象方 法 importercpyfromcpyimportennvworkspace = c:data uscure = arcpysearch cursor(state HP)Forrowing:printrowstatenam,e rowpop 打印 每個狀態(tài)的名稱,而人口幾何對象則支持點、多點、線和折線等幾何 類型。 點
11、幾何類型的記錄只有一個點,而多點幾何類型的記錄可以由多個點組成。折線和多邊形幾何類型中的記錄可以由多個部分組成,每個部分都由點組成。ArcPy 中的幾何對象類包括點幾何、多點、折線、多邊形和幾何,其中幾何是其他類的父類。與幾何對象相關(guān)的類:點類和數(shù)組類。點不是幾何對象類,但所有幾何對象都是基于點對象構(gòu)建的。所有幾何對象的坐標值也通過點對象讀取。生成點對象的語法:點 (X 、 Y 、 M 、 Z 、 ID) 默認情況下,X、Y, ID為M, Z為無。數(shù)組是一個數(shù)組對象,它可以包含任意數(shù)量的點對象和其他對象(如數(shù)組對象、空間引用對象等)。)。add、append remove等方法用于構(gòu)造由多個點
12、組成的幾何對象。語法解釋點幾何(輸入,空間參考、hasz、hasm)生成點幾何對象。Inputs 是生成對象的坐標數(shù)據(jù)類型,PointsspatialReference是空間參考對象hasZ, hasM是布爾對象,指示是否支持 z和m值。多點(輸入、空間參考、hasz、hasm)生成多點幾何對象。輸入數(shù)據(jù)類型為點或數(shù)組。其他參數(shù)與點幾何相同。折線(輸入、空間參考、hasz、hasm)生成線幾何對象。參數(shù)同上。多邊形(輸入,空間參考、hasz、hasm)生成多邊形幾何對象。參數(shù)同上。幾何(幾何、輸入、空間參考、hasz、hasm)幾何是幾何類型(點、多邊形、折線或多點)其他參數(shù)同上。創(chuàng)建點、 多
13、點、 線和面幾何對象函數(shù)使用復制要素工具將幾 何對象或幾何對象列表寫入要素類。copyFeaturesManagement(in captures,outfeatureclass,configkeyword , spatialgrid , spatialgrid) 生成點要素類()land useid= land use = x = y = input file = open(c:data samplest XT , r)for input file:L = split , 、 LANDuseIDappend(L)land useappend(L)xappend(L)yap pend(L)Re
14、cordNum=len(landuse)inputfileclose()importRcpyCreateFeaturesPytho編程基礎(chǔ)知識概述 ArcPy 開發(fā)示例簡介Pythona ddins Python 和 ArcPy 編程的主要目的:批處理構(gòu)建工作流新工具批處理大多數(shù)工具的ArcGIS 數(shù)據(jù)處理是輸入一個數(shù)據(jù),然后輸出一個數(shù)據(jù)。不能對多個數(shù)據(jù)進行相同或不同的處理(不同的參數(shù))。批處理是對多個數(shù)據(jù)進行相同的處理,對同一數(shù)據(jù)進行不同的處理(不同的參數(shù))。示例1:對一個文件夾中的數(shù)據(jù)(要素類)執(zhí)行批量切割(裁剪 )。輸出數(shù)據(jù)存儲在另一個文件夾中。每個數(shù)據(jù)的名稱是剪輯加上 原始數(shù)據(jù)的文件名
15、。函 數(shù) 參 數(shù) ClipAnalYSiS(in features, clippeatures , outfeatureclasg clustertolerance)輸入要素類 clipfeatures: cut 要素類 outfeatureclass: output 要素類 cluster tolerance:toleranceclippefunctionclip 函數(shù)圖 importerfrommarkimportenworkspace = c:Data input clip Feature = c:Dataclipfea tureshPFCs = ArcPylistFeatureClas
16、ses()for cinfcs:OEatureRecesss = c:DataoutputClipFactorPyClipAnalYSiS(fc , ClipFeature, OEature Recesss)匕處理切割操作示例2每次輸入數(shù)據(jù)拆 分后生成的多個數(shù)據(jù)存儲在新文件夾中;文件夾名是輸入數(shù)據(jù)的文件名 (不包括擴展名)。功能參數(shù)分割分析(Infeatures, split features, split field ,splitfield , split field , split field, split field , split field , outworkspace, split
17、features, output workspace, output workspace, output workspace, output, output workspace, split, outworkspace)俞入要素類分害U要素: 分 割 要 素 類 分 割 字 段 : 分 割 字 段outworkspace,output, outputworkspace, output, split, output, Split, output, Split, output, Split, osm dir(path)ArcPysplitanalysis設(shè)置不同的公差參數(shù),得到不同簡化程度的海岸線
18、。計算每個輸出海岸線的頂點數(shù)量和線長度,并與原始數(shù)據(jù)的頂點數(shù)量和線長度進行比較。設(shè)置精度閾值,以確定滿足精度要求的結(jié)果、最高數(shù)據(jù)壓縮率。簡化線操作的原理圖函數(shù)參數(shù)為simplifyLine( 在要素、輸出要素類、算法、容差、errorprovingoption 、 collapse edpointtopic、errorcheckingoption)在要素:輸入要素類輸出要素類:輸出要素類算 法 :簡化算法點移除和彎曲簡化。公差 :公差錯誤解決選項:拓撲錯誤的處理折疊點選項:零長度線是否保存為點數(shù)據(jù)。錯 誤 檢 查 :檢 查 拓 撲 錯 誤 簡 化 線 工 具 函 數(shù)IMPORTARCPYfro
19、MARCPYIMPORTARCYIMPORTARPYMACHATI CATIASENVEWORKSPACE = C:DataOrrinRange, :tolerance = r * output = C:datatmpstr(tolerance)ShpCAsImplifyline(海岸線 HP,輸出, 點 移 除 , 容 差 )cur = arcpySearchCursor( 輸 出 , )ForRowBound:GeometricToPointCountGeometryGengthDelcur, RowSet a容差(km、km、km 和 km)輸出importrcpyfromarcpyim
20、portenimportercpycartographyaskaenvworkspace =C:data cur = arcpySearchCursor誨岸線 hp), forrowing:Geometry = rowShapeCostLinePointS=GeometryEngthPrintCostCoraptSprintCostCostCostLength 計算原始海 岸線的數(shù)量和長度Accu racy = I = while 精確 :I = itolerance = I * output=ArcpyCreateUniqueName(C:datatmptoleranceshp)CasImp
21、lifiLine御岸 線 hp, output, POINTREMOVE ,為了建立工作流工作流,工作流由多個處理工具組成。一個工具的輸出可以作為另一個工具的輸入,從而可以通過一個工作流來實現(xiàn)最初需要使用多個工具來實現(xiàn)的工作。 工作流程將生成一些臨時(中間)文件。通常,這些臨時文件需要在程序結(jié)束時刪除。例 1: 道路兩側(cè)的植被分析。道路由緩沖工具緩沖和分析。通過剪輯工具用道路緩沖區(qū)范圍剪切植被地圖。使用匯總統(tǒng)計工具對砍伐的植被進行統(tǒng)計(按植被類型計算面積 )。函數(shù)參數(shù)statisticanalysis (intable, outtable, statisticfields,casefield)
22、 intable: 輸入表可以是要素類。Outtable:輸出表。統(tǒng)計字段:統(tǒng)計字段的參數(shù)類型為復合列表。子列表有兩個元素??捎玫慕y(tǒng)計類型包括總和、平均值、最大值、最小值等。案例字段:分組字段。statisticsananalysis tool function importercopyfrommarcpyimportenworkspace = c:data input load = majordsshbuf = VEGE = VEGETYPESPOSPTFIELD = shapearea, sum, shape area 。 MaxCaseField = HollandOutput = C:
23、DataTMpstatscratchName = ArcPyCreateCratchName(xxxx , Shapefile, C:data)ArcPyBufferAnalanalysis(InputTroad, scratchName, buf)CratchName = ArcPyCreateCratchName(xxxx , Shapefile , C:data)arcpyClipanalysis(vege ,CratchName ,CratchName)ArcPyStatisticsAnalanalysis(CratchName, 輸出,statField,案例字 段 )ArcPyDe
24、leteManagEment(CratchName)ArcPyDeleteManagEment(Cr atchName病者上的植被分析狀態(tài)類型字符串中的過濾器參數(shù)屬性選擇值列表并設(shè)置列表值,如總和、平均值、最大值、最小值等。從案例字段中獲取參數(shù)屬性選擇輸入設(shè)備輸出表格工具對話框參數(shù)設(shè)置示例2:分析米內(nèi)沒有公園分布的區(qū)域(考慮不能直接通過河流的障礙物等。)。空間分析工具箱提供了基于柵格的距離計算工具輸出數(shù)據(jù)的柵格值表示以及到最近目標的距離,其中歐幾里德距離計算柵格和目標成本之間的歐幾里德距離距離計算柵格和目標之間的成本距離(即考慮通過不同柵格時的成本)。使用成本距離工具時,有必要使用成本柵格(費
25、用柵格數(shù)據(jù) )。該數(shù)據(jù)的柵格值表示通過該柵格的費用空值表示不能通過(即障礙物 )。函數(shù)參數(shù)成本距離(INSOURCEDATA, INCOSTRATER, 最大距離 , OUTBACKLINKSTRADER )INSOURCEDATA: 輸入數(shù)據(jù)INCOSTRATER:成本網(wǎng)格指示網(wǎng)格是否可以通過,或者網(wǎng)格的成本空 值指示它不能通過。成本距離工具功能步驟(首先,生成成本網(wǎng)格,并將河流覆蓋區(qū)域的其他區(qū)域的網(wǎng)格值設(shè)置為空值):河流多邊形到網(wǎng)格(多邊形到網(wǎng)格)河流覆蓋網(wǎng)格為非空值,其他網(wǎng)格為空值。使用 “是 ”工具將空值轉(zhuǎn)換為非空值。使用設(shè)置工具將(河流覆蓋區(qū)域)設(shè)置為空值。每個網(wǎng)格和公園之間的距離是
26、使用成本距離 (INCOSTER)工具計算的。INCOSTER 是具有空值(河流覆蓋率)的網(wǎng)格數(shù)據(jù)。使用 “控制 ”工具將網(wǎng)格的距離設(shè)置為大于到。函數(shù)描述黃精轉(zhuǎn)換(in features, valuefield, outlastedatase,tcellassignment, priorityfield , cell size )in features: 輸入要素類value field:value field outlastedatase輸出柵格數(shù)據(jù)集 is (inlast) inlast: 輸入柵格。此函數(shù)返回一個柵格、輸入柵格、空值(無數(shù)據(jù))柵格和其他非空柵格,設(shè)置(不兼容、無條件輸入柵
27、格數(shù)據(jù)、無條件輸入柵格數(shù)無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)據(jù)、無條件輸入柵格數(shù)無條件輸入柵格數(shù)據(jù)。conn(in conditional Raster ,intruerasterorconstant, infalserasterorconstant , WHERE 子句 ) Inconditionalraster: 輸入柵格 :
28、柵格或常量(用于為符合表達式的柵格賦值)in ruerasterorconstant:柵格或常量(用于為不符合表達式的柵格賦值)WHERE 子句 :空間分析工具函數(shù)importarcp 與 SQL 表達式相關(guān)的函數(shù)從arcpysaimport *arcpyCheckOutExtension(S 間)env workspace = C:data desc = arcpy 數(shù) 值)結(jié)果保存(c:DataTMpresent)ArcpyDeleteManagEment(Sname對稻 田范圍內(nèi)無公園分布區(qū)域的結(jié)果分析(考慮河流等不能直接通過的障礙物)示例3:在土地利用分類圖上隨機生成幾個采樣點,并將分類圖上相應(yīng)柵格的值與點數(shù)據(jù)相加以進行精度分析。使用創(chuàng)建隨機組合管理工具生成隨機點。通過使用外向點或外向點工具,將相應(yīng)柵格的值添加到點數(shù)據(jù)中。 前者將相應(yīng)柵格的值添加到新生成的點要素類,而后者將相應(yīng)柵格的值添加到輸入點要素類。函數(shù)描述create rand components management(outpath、outname 、 restrainingfeatureclass 、 restrainingex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- TY/T 3802.1-2024健身瑜伽運動裝備使用要求和檢驗方法第1部分:瑜伽墊
- 安徽大學課題申報書
- 質(zhì)量管理qc課題申報書
- 廳級課題申報書范本
- 量感培養(yǎng)課題立項申報書
- 云教學 課題申報書
- 司法課題申報書
- 濟南課題申報書
- 辦學特色課題申報書
- 壓力管道維護維修合同范本
- 小升初生涯規(guī)劃
- 第二章陸地和海洋【真題訓練】(人教版)(原卷版)
- 小吃街概念性規(guī)劃
- 創(chuàng)新小白實操手冊 第2版 課件全套 吳雋 模塊1-8 人人皆可創(chuàng)新-商業(yè)呈現(xiàn)與商業(yè)計劃
- 2024年世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實務(wù)組”賽項參考試題庫(含答案)
- 電商提成合同模板
- 正念八周課件
- 服務(wù)響應(yīng)時間和服務(wù)保障方案
- 蟾蜍毒抗病毒作用機制
- 光伏發(fā)電監(jiān)理合同協(xié)議
- 新能源汽車概論課件 3.1認知純電動汽車
評論
0/150
提交評論