这篇文章将主要讲述在进行脚本编程时用到的一部分ArcGIS模块和工具
目录
1. arcpy和arcgisscripting站点包
这两个都是ArcGIS中使用到的模块。
○ 9.3以前,使用的是arcgisscripting模块;9.3以后使用arcpy站点包。
○ 使用arcgisscripting模块进行地理处理时,必须先创建一个地理处理对象
,然后使用这个地理处理对象来进行地理处理:
import arcgisscripting
## 创建9.3版本的地理处理对象
gp = arcgisscripting.create(9.3)
## 创建9.3版本之前的地理处理对象
gp = arcgisscripting.create()
○ 对于后来的arcpy站点包,则不需要先创建地理处理对象,可以直接使用其中的类和方法。
○ arcpy中包含多个模块,其中arcpy.mapping(自动化制图模块)和arcpy.sa(地图代数模块)是两个专业的模块。
arcpy.<class>.<property>
2. ArcGIS中地理处理工具
2.1使用地理处理工具语法:
—语法1:
arcpy.<工具名称_所在工具箱别名>(参数)
## 例如:
arcpy.Clip_analysis(参数1, 参数2, 参数3)
—语法2:
arcpy.<工具箱别名>.<工具名>(参数)
## 例如:
arcpy.analysis.Clip(参数1, 参数2, 参数3)
2.2 地理处理工具参数顺序
- 输入数据集:一般为
in_XXX
; - 输出数据集:一般为
out_XXX
; - 必选参数;
- 可选参数:若想要跳过可选参数:
- 参数设置为
""
或者#
; - 使用
关键字参数
指定其他需要输入的参数从而跳过可选参数。
- 参数设置为
3. ArcGIS中地理处理工具箱
- arcpy中可以使用arcgis提供的所有系统工具,那么如何使用我们自定义的工具呢?首先需要导入我们自定义工具所在的工具箱,然后再使用我们的自定义工具。
- 我们通过以下语法格式来导入自定义工具箱:
import arcpy
arcpy.ImportToolbox(自定义工具箱路径, [自定义工具箱别名])
- 当我们导入自定义工具箱后,使用以下语法来使用我们的自定义工具:
arcpy.<自定义工具名>_<自定义工具所在工具箱别名>(参数)
- 举个例子:
import arcpy
arcpy.ImportToolbox(r"C:\Data\sampletools.tbx", mytools)
## 假设此工具箱中有一个名称为Tools1的工具
arcpy.Tools1_mytools(参数)
## 或者:
arcpy.mytools.Tools1(参数)
4. arcpy中的函数与类
4.1 arcpy中函数调用方法
arcpy.<函数名>(参数)
- 举个栗子:
arcpy.Exists(数据集路径) #检查数据集是否存在
4.2 arcpy中类的使用方法
- 先实例化:
实例化对象 = arcpy.<类名>(参数)
- 然后使用:
实例化对象.属性/方法
- 举个栗子
sp = arcpy.SpatialReference(r"C:\projectFile.prj")
sp.name
5. arcpy中的工具消息
5.1 工具消息分类
- 信息消息:用0表示严重性
- 警告消息:用1表示严重性,带有6为ID码
- 错误消息:用2表示严重性,带有6为ID码
5.2 获取消息语法
语法1:
## 获取索引值出的消息信息,缺省则获取所有信息
arcpy.GetMessage([索引值])
## 获取执行工具是产生的消息数目
arcpy.GetMessageCount()
## 获取最严重消息的代码
arcpy.GetMaxSeverity()
语法2:
## 我们可以通过使用工具后创建的结果对象来获取消息
result = arcpy.某工具(参数)
result.getMessage()
result.messageCount()
需要注意的是,我们使用
arcpy.GetMessage()
时是在调用一个函数
,而使用result.getMessage()
我们只是在查询result这个对象的一个属性
。
6. arcpy中的许可
arcpy中正确使用模块许可的顺序:
## 检查许可是否存在
arcpy.CheckExtension(模块名)
## 获取许可
arcpy.CheckOutExtension(模块名)
## 使用完后将许可返回许可管理器
arcpy.CheckInExtension(模块名)
7. arcpy中的列表函数
arcpy中的列表函数包括:
○ ListFields(数据集,[通配符], [字段类型]) #返回的是字段对象列表,每一个字段对象属性包括字段名、别名、类型和长度。
○ ListIndexs
○ ListDatasets
○ ListFeatureClasses
○ ListFiles
○ ListRasters([通配符], [栅格数据类型])
#其中栅格数据类型(不区分大小写),可以为”tif”、”jpg”等,若为GRID格式则直接使用GRID作为参数。
○ ListTables
○ ListWorkspaces
○ ListVersions
它们都由一个通配符参数(
*
)可以用来过滤列出的结果;使用*
或者""
则表示列出全部。
它们都是返回当前工作空间
中的筛选结果。
–原创文章,转载必须注明出处–