ArcPy常用类介绍
? ? ? ? ? ArcGIS Pro中的ArcPy類列表如表1所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表1? ArcPy類列表
| 類名稱 | 類別 | 類名稱 | 類別 |
| ArcSDESQLExecute | 常規 | Array | 常規 |
| CrossValidationResult | 地統計分析 | Chart | 圖表 |
| ExecuteWarning | 異常 | env | 常規 |
| ExecuteError | 異常 | Cursor | 游標 |
| GeostatisticalDatasets | 地統計分析 | FieldMap | 字段 |
| FieldMappings | 字段 | FieldInfo | 字段 |
| FeatureSet | FeatureSet/RecordSet | Field | 字段 |
| ArcSDESQLExecute | 常規 | Filter | 參數 |
| Geometry | 幾何 | Extent | 常規 |
| SpatialReference | 常規 | Multipoint | 幾何 |
| NetCDFFileProperties | 常規 | Parameter | 參數 |
| PointGeometry | 幾何 | Point | 幾何 |
| Polygon | 幾何 | Polyline | 幾何 |
| RandomNumberGenerator | 常規 | Raster | 常規 |
| RecordSet | FeatureSet/RecordSet | Result | 常規 |
| SearchNeighborhoodSmooth | 地統計分析 | Row | 游標 |
| SearchNeighborhoodSmoothCircular | 地統計分析 | Schema | 參數 |
| SearchNeighborhoodStandard | 地統計分析 | Index | 常規 |
| SearchNeighborhoodStandardCircular | 地統計分析 | Value | 參數 |
| ValueTable | 常規 | ? | ? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注:詳細信息請查看http://pro.arcgis.com/zh-cn/pro-app/arcpy/classes/alphabetical-list-of-arcpy-classes.htm。
1. ?ArcPy常用類功能介紹
1. 1 圖表
? ? ? ? ? Chart類用于定義ArcGIS Pro圖表。可通過該類創建不同類型的圖表,包括條形圖、折線圖、直方圖和散點圖,同時也可以使用該類來定義圖表標題、軸線以及其他屬性。
? ? ? ? ?Chart類語法說明如表2所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表2? Chart類語法說明
| 參數 | 數據類型 | 說明 |
| name | String | 圖表的名稱。圖表在每個圖層都必須有一個唯一的名稱。這個名稱僅用于識別,而不會顯示出來。 |
? ? ? ? ?Chart類屬性如表3所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表3? Chart類屬性信息
| 屬性 | 數據類型 | 說明 |
| bar (可讀寫) | Object | 設置僅適用于條形圖的附加屬性。 |
| description (可讀寫) | String | 設置圖表描述。該描述文本會顯示于圖表視圖底部。 |
| histogram (可讀寫) | Object | 設置僅適用于直方圖的附加屬性。 |
| legend (可讀寫) | Object | 設置圖表圖例的屬性。 |
| line (可讀寫) | Object | 設置僅適用于折線圖的附加屬性。 |
| title (可讀寫) | String | 設置圖表的標題。 |
| type (可讀寫) | String | 設置所要創建圖表的類型。有效選項包括:bar、line、scatter、histogram。 |
| xAxis (可讀寫) | Object | 設置x軸的屬性。 |
| yAxis (可讀寫) | Object | 設置y軸的屬性。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注:Chart類屬性詳細信息請查看http://pro.arcgis.com/zh-cn/pro-app/arcpy/classes/chart.htm。
? ? ? ? ? ? ? ? ?Chart類方法如下:
1) addToLayer (layer)
? ? ? ? ? ? ? ?addToLayer方法可以實現將圖表添加至圖層中,其參數及返回值說明分別如表4和表5所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表4? addToLayer方法參數說明
| 參數 | 數據類型 | 說明 |
| layer | Layer | 圖表將添加到此目標 Layer 對象中。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表5? addToLayer方法返回值說明
| 數據類型 | 說明 |
| Object | Chart類將保持不變,但此類的屬性將設置到圖層定義,并將創建一個新圖表。 |
? ? ? ? ? ? addToLayer使用示例如示例1所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 示例1:addToLayer方法
| import arcpy aprx = arcpy.mp.ArcGISProject("current") censusLayer = map.listLayers('Census Block Groups')[0] c = arcpy.Chart('MyChart') c.type = 'bar' c.xAxis.field = 'State' c.yAxis.field = 'Population' c.addToLayer(censusLayer) |
2) updateChart()
? ? ? ? ? ?updateChart方法可將所有更改同步到已添加圖層的圖標中,而不是從頭開始創建一個新的圖標。其返回值說明如表6所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表6? updateChart方法返回值說明
| 數據類型 | 說明 |
| Object | 不會以任何形式對Chart類進行修改。只是將類的設置與之前添加到圖層的圖表進行同步。 |
? ? ? ? ? ? ?updateChart方法使用示例如示例2所示。
chart.addToLayer(myLayer) chart.description = "Data from the U.S. Census Bureau" chart.updateChart()1.2 FeatureSet和RecordSet
1) FeatureSet
? ? ? ? ? ?FeatureSet對象是要素類的輕量級表示。它是一種既包含方案又包含數據的特殊數據元素。而且,FeatureSet?對象也表示通過服務器發送和接收要素數據的方式。
? ? ? ? ? ?值得注意的是:如果要將某個要素類加載到新的FeatureSet,并使用可對類似計算字段的輸入或類似UpdateCursor的arcpy函數進行修改的地理處理工具來修改FeatureSet,那么原始要素類也將被修改。
? ? ? ? ? ?FeatureSet對象的語法說明、屬性信息及方法說明分別如表7、表8和表9所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表7? FeatureSet對象說明
| 參數 | 數據類型 | 說明 |
| table | String | 要加載到FeatureSet對象中的要素數據。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表8? FeatureSet對象屬性信息
| 屬性 | 數據類型 | 說明 |
| json (可讀寫) | String | 返回一個字符串形式的幾何Esri JSON制圖表達。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表9? FeatureSet對象方法概述
| 方法 | 說明 |
| load(table_path) | 從表導入。 |
| save(table_path) | 導出到表。 |
? ? ? ? ? ? ? ? ? ? load方法、save方法的參數描述分別如表10、表11所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表10? FeatureSet對象load方法參數說明
| 參數 | 數據類型 | 說明 |
| table_path | String | 要導入的表。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表11? FeatureSet對象save方法參數說明
| 參數 | 數據類型 | 說明 |
| table_path | String | 要創建的輸出表。 |
? ? ? ? ? ? ? ? ? FeatureSet對象使用示例如示例3所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?示例3:FeatureSet對象使用示例。
| import arcpy arcpy.env.overwriteOutput = True arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal", "servertools")?????????????? # 坐標列表 coordinates = [[-117.196717216, 34.046944853], ?????????????? [-117.186226483, 34.046498438], ?????????????? [-117.179530271, 34.038016569], ???????????? ??[-117.187454122, 34.039132605], ?????????????? [-117.177744614, 34.056765964], ?????????????? [-117.156205131, 34.064466609], ?????????????? [-117.145491191, 34.068261129], ?????????????? [-117.170825195, 34.073618099], ?????????????? [-117.186784501, 34.068149525], ?????????????? [-117.158325598, 34.03489167]] feature_class = arcpy.CreateFeatureclass_management("in_memory", "tempfc", "POINT")[0] with arcpy.da.InsertCursor(feature_class, ["SHAPE@XY"]) as cursor: ??? for (x, y) in coordinates: ??????? cursor.insertRow([(x, y)]) feature_set = arcpy.FeatureSet() feature_set.load(feature_class) results = arcpy.BufferPoints_servertools(feature_set) |
2) RecordSet
? ? ? ? ? ? ?RecordSet對象是表的輕量級表示。它是一種既包含方案又包含數據的特殊數據元素。RecordSet對象也表示通過服務器發送和接收表的方式。
? ? ? ? ? ? ?值得注意的是:如果要將某個表加載到新的RecordSet,并使用可對類似計算字段的輸入或類似UpdateCursor的arcpy函數進行修改的地理處理工具來修改RecordSet,那么原始表也將被修改。
? ? ? ? ? ? ?RecordSet對象的語法說明、屬性信息及方法說明分別如表12、表13和表14所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表12? FeatureSet對象說明
| 參數 | 數據類型 | 說明 |
| table | String | 要加載到RecordSet對象中的表。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表13? RecordSet對象屬性信息
| 屬性 | 數據類型 | 說明 |
| json (可讀寫) | String | 返回一個字符串形式的幾何 Esri JSON 制圖表達。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表14? RecordSet對象方法概述
| 方法 | 說明 |
| load(table_path) | 從表導入。 |
| save(table_path) | 導出到表。 |
? ? ? ? ? ? ? ? load方法、save方法的參數描述分別如表15、表16所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表15? Record對象load方法參數說明
| 參數 | 數據類型 | 說明 |
| table_path | String | 要導入的表。 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表16? Record對象save方法參數說明
| 參數 | 數據類型 | 說明 |
| table_path | String | 要創建的輸出表。 |
? ? ? ? ? ?RecordSet對象使用示例如示例4所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 示例4:RecordSet對象使用示例。
| import arcpy arcpy.ImportToolbox("http://myserver/arcgis/services;Geocode") in_recordset = arcpy.GetParameterValue("GeocodeAddress", 0) |
?
【附錄】
?????? 歡迎大家關注我的收費課程《ArcGIS Pro 2.6和ArcGIS Enterprise學習》,共8小時,有理論有實操:https://edu.csdn.net/course/detail/31690
課程主要包含:
? ? ? ? ? ? ? ? ? ? ①GIS中的數據
? ? ? ? ? ? ? ? ? ? ②GIS中的坐標系
? ? ? ? ? ? ? ? ? ? ③企業級地理數據庫(SDE)設置
? ? ? ? ? ? ? ? ? ? ④數據編輯及拓撲檢查
? ? ? ? ? ? ? ? ? ? ⑤簡單制圖
? ? ? ? ? ? ? ? ? ?⑥空間分析
? ? ?2.ArcGIS Enterprise學習
? ? ? ? ? ? ? ? ? ①環境部署
? ? ? ? ? ? ? ? ? ②二三維服務發布(矢量切片、要素服務、地圖切片、地形服務、三維服務等)
? ? ? ? ? ? ? ? ? ③使用及運維(詳細介紹如何確定enterprise部署架構,簡單介紹相應的運維工具)
? ? ? 3.開發體系梳理
?
?
?
總結
以上是生活随笔為你收集整理的ArcPy常用类介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux自动读取麦克风,检测用户向麦克
- 下一篇: php创建表并插入数据,php数据库操作