Arcpy基础

658 阅读1分钟

环境配置

政府事业单位内ArcGIS大多数为10.2,python编译器版本2.7,一般电脑中ArcGIS安装完成即默认拥有了python2.7和Arcpy,PyCharm项目中的python编译器设置如图,ArcGIS10.2不建议使用虚拟环境。大多数常用的包基本都有,无需自己安装。

项目创建过程

  1. 点击“新建项目”

  1. 项目配置如下:

  1. 点击“文件”-“设置”,配置该项目的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

运行效果