ArcGIS—基于Python的脚本编程(2)

这篇文章将主要讲述在进行脚本编程时用到的一部分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

它们都由一个通配符参数(*)可以用来过滤列出的结果;使用*或者 "" 则表示列出全部
它们都是返回当前工作空间中的筛选结果。


–原创文章,转载必须注明出处–

猜你喜欢

转载自blog.csdn.net/Dirtliu/article/details/82178571