前言
前言其实我也不知道说什么,以往说的都是;垃圾话,现在垃圾话也说不出了,但是这是必不可少的内容!
一、调用系统工具箱
我在这里以裁剪工具为例,其他的工具类似。
那么我们怎么知道我想使用的工具在arcpy中的函数名称是什么呢?其实很简单,在arcgis中右键我们想要的工具,点击帮助即可:
我们往下滑,就能看到函数名称和具体的用法了,还有示例可以仿照着来写:
我写的示例代码如下:
import arcpy
# 设置工作空间
arcpy.env.workspace = r'E:\arcpy_study\我得学城\图层裁剪数据'
# 被裁剪的要素
source_feature = 'JFB.shp'
# 用来裁剪的要素
enter_feature = '裁剪面.shp'
# 输出要素
output_feature = '输出测试.shp'
# 裁剪要素(被裁剪的要素, 用来裁剪的要素, 裁剪完成输出的要素)
arcpy.Clip_analysis(source_feature, enter_feature, output_feature)
print '要素裁剪完成'
不仅是系统工具,我们自定义的工具也可以通过arcpy调用,如图这是我自定义的工具的帮助:
二、检测文件是否存在
通过 arcpy.Exists(要素文件名)
函数来判断当前工作空间中是否存在某个文件,使用这个函数之前我们要先设置工作空间,代码示例如下:
import arcpy
import os
# 检测当前工作空间是否存在该文件
def exits():
if arcpy.Exists('JFB.shp'):
print 'JFB.shp', 'YES'
if arcpy.Exists('裁剪面.shp'):
print '裁剪面.shp', 'YES'
if arcpy.Exists('输出测试.shp'):
print '输出测试.shp', 'YES'
if __name__ == '__main__':
# 设置工作空间
arcpy.env.workspace = r'E:\arcpy_study\我得学城\图层裁剪数据'
exits()
三、获取要素文件的属性(名称类型)
通过 arcpy.Describe(要素文件)
函数来或者要素文件的属性,包括要素名称、要素类型等等。函数所拥有的方法如下:
示例代码如下:
# 要素文件的描述信息
def describe():
desc = arcpy.Describe('JFB.shp')
# 名称
print desc.name
# 要素类型
print desc.featureType
# shape类型
print desc.shapeType
if __name__ == '__main__':
# 设置工作空间
arcpy.env.workspace = r'E:\arcpy_study\我得学城\图层裁剪数据'
describe()
四、列出数据函数的使用
列出数据函数一共有九个,如下图:
具体的用法其实查看官方文档就能了解,我这里不做一一说明了,示例代码如下:
# 列出数据
def list():
# 列出工作空间中的所有数据集
print arcpy.ListDatasets()
# 列出所有要素类
print arcpy.ListFeatureClasses()
# 列出所有字段
featureName = 'JFB.shp'
fields = arcpy.ListFields(featureName)
for field in fields:
print field.name,
# 列出所有文件
print arcpy.ListFiles()
# 其他列出数据函数请自行查看帮助文档
if __name__ == '__main__':
# 设置工作空间
arcpy.env.workspace = r'E:\arcpy_study\我得学城\图层裁剪数据'
list()