日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

            歡迎訪問 生活随笔!

            生活随笔

            當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

            编程问答

            Arcpy操作

            發布時間:2023/12/10 编程问答 46 豆豆
            生活随笔 收集整理的這篇文章主要介紹了 Arcpy操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

            Arcgis-Arcpy

            持續更新

            安裝

            安裝步驟

            基礎介紹

            地理信息系統(geography information system,GIS)是在計算機硬件支持下,對整個或者部分地球表層空間中的有關地理分布數據進行采集,存儲,管路,運算,分析,顯示和描述的技術系統。地理信息系統處理和管理的對象是多種地理空間實體數據及其關系,包括空間定位數據,圖形數據,遙感圖像數據,屬性數據,主要用于分析和處理一定地理區域內分布的各種現象和過程,解決復雜的規劃,決策的管理問題。(有些官方,看看就行)

            其他:略(嘿嘿嘿,可以去看看官方文檔,本文主要講數據變換,平時的基礎操作只能熟能生巧了)

            • 數據變換:對數據進行放大,縮小等幾何位置,形狀和方位的改變等操作。
            方法描述操作方法
            空間校正對于數據進行一些校正處理編輯器|空間校正|設置校正數據|設置校正方法、空間校正
            橡皮頁變換對兩個圖層或多個圖層進行小型的幾何校正編輯器|空間校正|設置校正數據|設置校正方法|橡皮頁變換
            邊匹配創建兩個相鄰圖層的位移連接編輯器|空間校正|設置校正數據|設置校正方法|邊捕捉
            地理配準用于柵格數據的空間位置匹配編輯器|地理配準
            翻轉將柵格數據通過數據中心點的水平軸線數據管理工具|投影和變換|柵格|翻轉
            鏡像將柵格數據通過數據中心點的垂直軸線數據管理工具|投影和變換|柵格|鏡像
            重設比例尺將柵格數據按照指定的比例分別沿X軸和Y軸放大或縮小數據管理工具|投影和變換|柵格|重設比例
            扭曲將柵格數據通過輸入的控制點進行多項式變換數據管理工具|投影和變換|柵格|扭曲

            自學疑惑

          1. 為什么要進行地理配準
          2. 是為了使所有的圖像的坐標系統一樣,從而在一個坐標系統中更好的顯示數據。

          3. 為什么要建立拓撲關系
          4. 拓撲bai檢查主要是檢查數據的拓du撲關系是否正確且完整,如果通過檢查,說明數據有完整的拓撲關系,錯誤的拓撲關系不存在,比如重復線,相交線的交點是斷點等情況。

          5. 個人地理數據庫和文件地理數據庫的區別
          6. 文件bai地理數據庫是ESRI公司的數據庫,du存儲格式為包含二進制文件的文zhi件夾,存儲能力dao1TB,支持任何平臺個人地理數據庫存儲格式為Microsoft Access,存儲能力為2GB,只支持Windows平臺。

          7. 為什么要建立數據庫
          8. 數據組織是在數據采集之后的按照一定的方式和規則對數據進行歸并,存儲和處理的過程,數據處理的好壞,直接影響到GIS系統的性能。地理數據庫是按照層次型的數據對象來組織地理數據,這些數據對象包括對象類(表格),要素類(要素)和要素數據類。

          9. 數據的符號化和圖表化的方式顯示的區別和目的
          10. 符號化:直接在圖像上顯示;圖表化:單獨建立一個圖表;共同目的:讓數據看起來更清晰明了。

          11. 怎么從excel里面導入數據
          12. 從catalog中的excel里面選擇從XY表創建要素類。

          13. 柵格數據和矢量數據的區別
          14. 柵格數據可以是照片,用像元組成,要波段信息;矢量數據是點線面,打開會有屬性表。

          15. 為什么矢量分析和柵格分析可以分析三維空間信息,但是在實際中不能用于三維空間分析
          16. 矢量數據模型三維分析方法主要是基于數學分析和圖論的思想;柵格數據以矩陣計算為理論基礎進行分析。當前,GIS的研究成果和應用系統主要集中于描述二維空間信息,各項技術已較為成熟,但由于二維地理信息系統將實際的三維實體采用二維表示,具有很大的局限性,大量的多維空間信息無法得到利用,因此必須用三維。

          17. 為什么要建立和驗證拓撲關系
          18. 拓撲關系本身就是點線,點面,線線,線面,面面之間的關系,進行拓撲驗證可以更好的驗證他們之間的關系,從而更好的實施操作

          19. 拓撲錯誤類型以及好的解決方法
          20. 常見錯誤類型:面不能相互重疊,面不能有縫隙,線不能相交,線不能有懸掛,其他錯誤

            推薦解決方法:

            面不能相互重疊:在錯誤上右鍵選擇 merge,將重疊部分合并到其中一個面里;

            面不能有縫隙:在錯誤上右鍵選擇 create feature,將縫隙部分生成一個新的要素,然后利用editor 下的 merge 把生成的面合并到相鄰的一個面里;

            線不能相交:部分重疊可以在錯誤上右鍵選擇 subtract 去除重復部分;

            線不能有懸掛:根據實際情況對線進行修改消除懸掛線;

            其他錯誤:。

            Arcgis和數據庫連接

            Arcpy

            基礎了解

          21. 判斷文件是否存在
          22. >>> result = arcpy.Exists(r'E:\arcgis 光盤\Chp3\Ex1\Blocks.shp') >>> print(result)
          23. 判斷矢量數據要素數量
          24. >>> arcpy.GetCount_management(r'E:\arcgis 光盤\Chp3\Ex1\Blocks.shp') >>> <Result '219'>

            地圖文檔部分:即mxd

            英語中文英語中文
            map地圖author作者
            mapping制圖summary小結
            document文檔description描述
            mapDocument地圖文檔default默認
            properties屬性relative相對
            current當前path路徑
            title標題relativepaths相對路徑
          25. 引用和查看地圖文檔
          26. >>> import arcpy >>> import arcpy.mapping as mp >>> mxd = mp.MapDocument('current') # current表示是當前地圖文檔 >>> mxd = mp.MapDocument(file) # 查看其它地圖文檔
          27. API介紹
          28. ''' dir(object):返回當前范圍內的變量,方法和定義的類型列表 str.startswith(str, beg=0, end=len(string)):檢查字符串是否以指定字符串開頭 hasattr(object, name):判斷對象是否包含對應的屬性 getattr(object, name[,defalut]):返回一個對象屬性值 '''
          29. 修改地圖屬性
          30. mxd.title = ur’’修改標題
            mxd.author = ur’’修改作者
            mxd.credits = ur’’修改單位
            mxd.relativePaths = False修改相對路徑
          31. 保存地圖文檔
          32. 地圖文檔保存APIMapDocument.save()
            地圖文檔另存為MapDocument.saveACopy(filename, {version})
            換個文件名保存副本mxd.saveACopy(ur’’)
            # 修改文檔示例 mxd.author = ur'' # 保存文檔 mxd.saveACopy(ur'')

            數據框部分

            英語中文英語中文
            data數據extent范圍
            frame框架zoomToSelectedFeatures縮放
            dataFrame數據庫selected選中
            active活動的feature要素
            activeDataFrame當前數據框zoomToSelectedFeatures縮放至選中要素
            TOC table of contents內容列表spatialReference空間參考
            refresh刷新layer圖層
            refreshTOC刷新內容列表geodatabase地理數據庫
            list列舉referenceScale參考比例尺
            General常規的rotation旋轉角度
            zoom縮放displayUnits顯示單位
            CGCS2000中國2000坐標系mapUnits地圖單位
          33. 獲取數據框的名稱
          34. >>> adf = mxd.activeDataFrame # 獲得數據框 >>> print(adf.name) # 數據框名稱
          35. 列舉所有數據框
          36. dfs = mp.ListDataFrames(mxd) for df in dfs:print(df.name)
          37. 查看數據框的所有成員
          38. callable(object) -> bool # 檢查一個數據框是否可以調用 for i in dir(adf):if not i.startswith("_") and callable(getattr(adf,i)):print(i,getattr(adf,i))
          39. 動態旋轉地圖
          40. adf.rotation # 數據框旋轉角度 acrpy.RefreshActiveView # 刷新活動視角 time.sleep(secs) # 推遲調用線程的運行,運行secs參數,表示進程掛起的時間
          41. 查看數據框的空間參考
          42. adf = mxd.activeDataFrame sr = adf.spatialReference # 空間參考 sr.name # 名稱 u'CGCS2000_3_Degree_GK_Zone_36' # 高斯投影
          43. 查看數據框的四至空間范圍
          44. ext = adf.extent # 數據框范圍 ext.XMin ext.XMax ext.YMin ext.YMax
          45. 更改數據框顯示范圍以顯示全圖
          46. ''' 1. 主要任務 將選中要素最大化顯示出來 2. 準備工作 用鼠標移動地圖,并用鼠標選擇欽南區 ''' adf.zoomToSelectedFeatures() # 縮放至選中要素 arcpy.RefreshActiveView() # 刷新活動視角
          47. 跟蹤目標運動
          48. import numpy as np ext = adf.extent xs = np.linespace(ext.XMin,ext.XMax,50) ys = np.linespace(ext.YMin,ext.YMax,50) xys = zip(xs,ys) for xy in xys:x=xy[0]y=xy[1]extent = arcpy.Extent(x,y,x,y)adf.panToExtent(extent)arcpy.RefreshActiveView() time.sleep()

            圖層部分

            英語中文英語中文
            Layer圖層transparency透明度
            len,length長度source來源
            visiable可見性extent范圍
            description描述FeatureLayer要素圖層
            definition定義SelectionSet選擇集
            query查詢symbology符號
            scale比例尺label標注
            min,minimum最小field字段
            max,maximum最大contain包含
            FID,FeatureID要素編號definitionQuery定義查詢
          49. 獲取地圖內所有圖層
          50. lys = mp.ListLayers(mxd) # 獲得所有圖層 for each in lys:print(each.name,)
          51. 獲取數據框內所有圖層
          52. lys = mp.ListLayers(mxd, data_frame=adf) # 獲得所有圖層 for each in lys:print(each.name,)
          53. 圖層定位和模糊查詢
          54. lys = mp.ListLayers(mxd, 'mohu*') # 獲得所有圖層 ly = lys[0] print(ly)
          55. 查看圖層所有成員
          56. lys = mp.ListLayers(mxd, data_frame=adf) # 獲得所有圖層 ly = lys[0] for i in dir(ly):if hasattr(ly,i) and not i.startswith("_"):print(i,getattr(ly,i))
          57. 獲取圖層四至
          58. lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] ext = ly.Extent() print(ext.XMin,ext.XMax,ext.YMin,ext.YMax)
          59. 點和圖層之間的關系
          60. # 驗證中心點在圖層之內 lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] ext = ly.Extent() x0 = (ext.XMin + ext.XMax)/2 y0 = (ext.YMin + ext.YMax)/2 p0 = arcpy.Point(x0,y0) ext.contain(p0) # 測試隨機點和圖層的關系
          61. 平移或縮放圖層
          62. adf = mxd.activeDataFrame # 獲得數據框 lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] extent = ly.Extent() adf.panToExtent(extent) # 平移 arcpy.RefreshActiveView() adf.extent = extent # 縮放
          63. 平移或縮放某一選擇范圍
          64. adf = mxd.activeDataFrame # 獲得數據框 lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] adf.extent = ly.getSelectedExtent() # 圖層的選擇范圍 adf.panToExtent(extent) # 平移 arcpy.RefreshActiveView() adf.extent = extent # 縮放 arcpy.RefreshActiveView()
          65. 選擇圖層的數據集
          66. adf = mxd.activeDataFrame # 獲得數據框 lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] adf.extent = ly.getSelectionSet()
          67. 圖層的定義查詢
          68. lys = mp.ListLayers(mxd) # 獲得所有圖層 ly = lys[0] qujie.definitionQuery # 獲取定義查詢qujie.definitionQuery = '查詢條件' # 設置定義查詢 arcpy.RefreshActiveView()qujie.definitionQuery = '' # 清除定義查詢 arcpy.RefreshActiveView()

            空間數據源

            英語中文英語中文
            DataSource數據源env環境
            DataLink數據鏈接replace替換
            Workspace工作空間overwrite覆蓋
          69. 獲取數據源和屬性
          70. lyr.isFeatureLayer # 是否要素圖層print(lyr.dataSource) # 數據源,返回路徑 print(lyr.datasetName) # 數據集名稱
          71. 獲取數據源的工作空間,數據集的關系
          72. # 工作空間 import os print(os.path.split(lyr.dataSource)[0])print(lyr.workaspacePath)# 數據名 print(os.path.split(lyr.dataSource)[1]) # 文件命名 print(lyr.datasetName) # 文件類型 print(os.path.splitext(lyr.dataSource))
          73. 添加數據
          74. arcpy.env.workspace = r'工作路徑' # 工作空間 layer = mp.Layer('區界.shp') # shp生成layer mp.ADDLayer(mxd.activeDataFrame,layer) # 添加圖層
          75. 插入數據
          76. layers = mp.ListLayers(mxd) refLyr = layers[1]print(refLyr.name) # 參考圖層名稱arcpy.env.workspace = r'工作路徑' # 工作空間 layer = mp.Layer('區界.shp') # shp生成layer mp.InsertLayer(mxd.activeDataFrame,refLyr,layer,"位置(bottom)") # 添加圖層
          77. 保存圖層
          78. layer = mp.ListLayers(mxd)[1] # 定位圖層 lyr = r'路徑' # 添加圖層 arcpy.env.overwriteOutput = True # 覆蓋輸出 layer.saveACopy # 保存圖層
          79. 替換數據源
          80. lyr.replaceDtaSource('','','')

            文件制圖

            英語中文英語中文
            export導出print打印
            JPEG,Joint Photographic Experts Group聯合圖像專家組PDF,Portable Document Format便攜式文檔格式
            ExportToPDF導出至pdfExportToJPEG導出至JPG
          81. 數據框導出為pdf文件
          82. dfPDF = r'路徑' # 目標jpg路徑 mp.ExportToPDF(mxd,dfPDF,mxd.activeDataFrame) # 導出圖片
          83. 數據框導出為jpeg文件
          84. dfjpeg = r'路徑' # 目標jpg路徑 mp.ExportToJPEG(mxd,dfjpeg,mxd.activeDataFrame) # 導出圖片
          85. 地圖文檔導出為圖片
          86. dfjpeg = r'路徑' # 目標jpg路徑 mp.ExportToJPEG(mxd,dfjpeg) # 導出圖片
          87. 單文件批量出圖
          88. lyr.definitionQuery = '條件' # 圖層過濾 extent = lyr.getExtent() # 獲取圖層范圍 adf.extent = extent # 設置數據框范圍 arcpy.RefreshActiveView() dfjpeg = r'路徑' # 目標jpg路徑 mp.ExportToJPEG(mxd,dfjpeg,mxd.activeDataFrame) # 導出圖片 lyr.definitionQuery='' # 消除過濾

            后續更新

            總結

            以上是生活随笔為你收集整理的Arcpy操作的全部內容,希望文章能夠幫你解決所遇到的問題。

            如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。