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. 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.开发体系梳理