环境配置
政府事业单位内ArcGIS大多数为10.2,python编译器版本2.7,一般电脑中ArcGIS安装完成即默认拥有了python2.7和Arcpy,PyCharm项目中的python编译器设置如图,ArcGIS10.2不建议使用虚拟环境。大多数常用的包基本都有,无需自己安装。
项目创建过程
- 点击“新建项目”
- 项目配置如下:
- 点击“文件”-“设置”,配置该项目的python解释器,中途如果有错误直接忽略,ArcGIS10.2安装的python缺少打包工具,如果安装ArcGIS10.7,则不会出现问题,也可以使用虚拟环境:
目前项目的python环境已经配置完成,写下第一个python脚本,命名 01.py:
运行结果展示:
离线文档路径
Arcpy离线文档位置:首先打开ArcGIS Desktop帮助文档
Arcpy文档:
数据访问
访问要素数据表
访问要素数据表使用SearchCursor函数,使用示例如下:
data_name = r"""D:\GIS\规划\zzz.gdb\拟落实项目"""
field_name = """YDYHFLMC"""
def search_values(dataName, fieldName):
"""search field data"""
cursor = arcpy.SearchCursor(dataName)
for row in cursor:
print row.getValue(fieldName)
使用有条件的筛选,添加where关键字:
def where_values(dataName,fieldName):
"""data filter """
# 选择用地名称为“农村宅基地”的字段
express="""{}='农村宅基地'""".format(arcpy.AddFieldDelimiters(dataName,fieldName))
cursor=arcpy.SearchCursor(dataName,where_clause=express)
for row in cursor:
print row.getValue(fieldName)
访问GDB数据库要素以及字段
访问gdb数据库中的要素名称
data_name=r"""D:\GIS\规划\zzz.gdb"""
feature_name="""拟落实项目"""
def list_gdb_features(dataName):
"""list features in gdb"""
arcpy.env.workspace=dataName
features=arcpy.ListFeatureClasses()
for item in features:
print item
运行效果
访问某个要素属性表里的所有字段名称
def list_feature_fields(dataName,featureName):
"""list the field names in a feature"""
feature_path=os.path.join(dataName,featureName)
fields=arcpy.ListFields(feature_path)
for item in fields:
# 打印字段名和字段类型
print item.name,item.type
运行效果