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