arcpy 脚本编程入门

上传人:小** 文档编号:93271931 上传时间:2019-07-19 格式:PPT 页数:46 大小:1MB
返回 下载 相关 举报
arcpy 脚本编程入门_第1页
第1页 / 共46页
arcpy 脚本编程入门_第2页
第2页 / 共46页
arcpy 脚本编程入门_第3页
第3页 / 共46页
arcpy 脚本编程入门_第4页
第4页 / 共46页
arcpy 脚本编程入门_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《arcpy 脚本编程入门》由会员分享,可在线阅读,更多相关《arcpy 脚本编程入门(46页珍藏版)》请在金锄头文库上搜索。

1、ArcPy 脚本编程,詹智成 2017.8.20 地理科学学部.BNU,ArcPy,ArcPy 封装了arcgis大部分功能进而构建而成的站点包。目的是为以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化创建基础。,ArcPy构成,目录,Arcpy函数 Arcpy类 Arcpy模块 Arcpy地理处理,函数和工具的区别,工具的记录方式与函数不同。每个工具在 ArcGIS Desktop 帮助系统中都有自己的工具参考页面。函数则记录在 ArcPy 文档中。 工具会返回 Result 对象;而函数不会。 工具会生成可通过各种函数(如 GetMessages())进

2、行访问的消息。函数不会生成消息。 工具按产品级别(ArcGIS for Desktop Basic、Standard 或 Advanced)和扩展模块(ArcGIS Network Analyst 扩展模块、ArcGIS Spatial Analyst 扩展模块 等)进行授权。您可以在工具参考页面上查找所需的许可等级。不对函数进行授权 - 它们随 ArcPy 一起安装。,实例, arcpy.Buffer_analysis(“c:/data/Portland.gdb/streets“, “c:/data/Portland.gdb/steets_buffer“, “500 METERS“),工具,

3、函数,ArcPy函数,具有特定功能的函数,可以实现如:处理数据集列表、查询数据集属性、确定数据是否存在、检查数据集名称的有效性等。这些函数是为实现Python工作流而实现的。 在Python中调用函数的方式arcpy.() 函数需要参数有必选参数和可选参数、函数具有返回值,大多一对象返回,Import arcpy Print arcpy.Exists(“c:/Data.streams.shp”),函数分类,光标函数 数据描述函数 环境和设置函数 字段函数 数据库管理函数 通用函数 通用数据函数 参数获取和设置函数,数据列表函数 日志函数 消息和错误处理函数 进度对话框函数 栅格数据函数 空间参

4、考转换函数 许可和安装函数,通用数据函数,arcpy.Exists(“c:/Data/streams.shp”) #判断文件是否存在 desc=arcpy.Describe(“c:/Data/streams.shp”)#数据描述函数 print desc.shapeType #输出类型,比如”Polygon”、”Polyline”,”Point”,可以用于筛选shapefile类型。 print desc.spatialReference # 获取坐标系统 RefreshActiveView()#刷新当前地图文档,数据列表函数,列表函数使用之前需要设置工作空间路径,列表函数会返回数据列表 Li

5、stFeatureClasses(string_match,data_type) #返回当前工作空间的所有要素类的列表 ListRasters(string_match,data_type) #返回当前工作空间的所有栅格数据 ListFields(dataset,wild_card,field_type)#获取字段列表 ListFeatureClasses(“C*”) #通配符限制返回的结果列表.,ArcPy类,类可以创建对象,对象创建完成后可以调用其属性和方法,ArcPy常用类,Env类 spatialReference类 Geometry类 字段类,env类,Env类的属性包含了一系列的地

6、理处理环境。其属性既可以读取也可以写入,常用属性: Import arcpy arcpy.env.workspace=“c:/Data” #设置工作空间 Arcpy.env.overwriteOutput=True #设置地理处理的结果是否覆盖,SpatialReference类,参考系类,属性包含坐标系统参数,为了使用这个类,必须先初始化,Import arcpy Prjfile=“c:/Data/myprojection.prj” Spatialref=arcpy.SpatialReference(prjfile)#读取投影文件初始化参考系类;初始化方式有三种:坐标系名称,坐标系代号和和坐

7、标系文件 Print Spatialref.name # 获取name属性 可以坐标系定义工具的输入参数,几何类,在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。可以使用 Geometry、Multipoint、PointGeometry、Polygon 或 Polyline 类从头开始创建几何对象。,Point类,点并非几何类,但通常用于构造几何,Point=arcpy,Point(25282,43770) ptGeomet

8、ry=arcpy.PointGeometry(point),Point=arcpy.Point() Point.X=25282 Point.Y=43770 ptGeometry=arcpy.PointGeometry(point),点要素类的创建,点对象,几何点对象,点要素,线要素类创建,面要素类的创建,字段类,Field类 属性: aliasName 字段别名 basename 非限定字段名称 defaultValue 字段的默认值 editable 可编辑状态:True length 字段的长度 Name 字段的名称 Precision 字段的精度 Type 字段类型,代码示例,显示指定要

9、素类的字段属性,模块,arcpy.da(数据访问模块) Arcpy.mapping(制图模块) Arcpy.sa(ArcGIS Spatial Analyst扩展模块) Arcpy.na(ArcGIS Network Analyst扩展模块) Time 模块,数据访问模块arcpy.da,定义:数据访问(Data Assess)模块 (arcpy.da) 是一个用于处理数据的 Python 模块。通过它可控制编辑会话、编辑操作、改进的游标支持(包括更快的性能)、表和要素类与 NumPy 数组之间相互转换的函数以及对版本化、复本、属性域和子类型工作流的支持。,游标类,Cursor 是一种数据访问

10、对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式:搜索、插入或更新。游标通常用于读取和更新属性。 Cursor 类别: SearchCursor 查询游标 用于查询字段值 UpdateCursor 更新游标 用于更新字段值 InsertCursor 插入游标 在表中插入新行,Row对象,行对象表示表中的某一行。行对象会从 InsertCursor、SearchCursor 和 UpdateCursor 中返回。,游标实例,InsertCursor,作业1,1.将江苏省地级市点两两相连,建立polyline(必做)。 2.为线条增加权重:增加一个字段,字段值为两点的人口数之和(选做

11、),ArcPy.mapping 模块,Arcpy.mapping 是一个作为 ArcPy 站点包一部分的Python 脚本模块。随 ArcGIS Desktop 一同安装,并对所有许可均可用。其设计初衷主要是用于操作现有地图文档 (.mxd) 和图层文件 (.lyr) 的内容。此外,还提供自动执行导出和打印的功能。Arcpy.mapping 可用于自动执行地图生产;它扩展了数据驱动页面的功能,同时,因其包含导出至 PDF 文档、创建和管理 PDF 文档的函数,而为构建完整地图册所必需。最后,可将 arcpy.mapping 脚本发布为地理处理服务,并将脚本功能提供给 Web 应用程序。,Arc

12、Py.mapping 模块功能,创建有关地图文档中所含信息(如数据框坐标系、图层数据源、数据源损坏的图层或布局元素位置)的报告。 更新、修复或替换地图文档或图层文件中的图层数据源。 更新图层符号系统而无需实际打开地图文档。 查找并替换文件夹内所有地图文档的文本字符串。 将地图文档保存至之前的 ArcGIS 版本,以便分发。 更新地图文档元数据(例如,关键字、摘要和描述)。 使用地图导出命令批量创建地理数据,例如,由数据框中要素列表驱动的一系列 GeoTIFF 图像。 自动创建和管理要通过 ArcGIS Server 发布的地图服务。 构建多种 PDF 地图册: 含标题页、多个地图页面以及任意数

13、量含辅助内容(如表格式报表和联系人列表)的附加页面的专题或时态地图册。 基于数据驱动页面输出的参考地图册。,Mxd对象获取,获取mxd文档对象:arcpy.mapping.MapDocument(r“c:ProjectProject.mxd”) 获取当前mxd文档(仅限在arcMap环境下) arcpy.mapping.mapDocument(“CURRENT”),mxd类,属性 author filePath title 方法 save() saveACopy(),DataFrame获取,import arcpy mxd=arcpy.mapping.MapDocument(r“c:Proje

14、ctProject.mxd”) for df in arcpy.mapping.ListDataFrames(mxd): print df.name Del mxd,DataFrame对象,属性: spatialReference 读写数据框的坐标系统 Description 获取或设置数据库描述信息 方法: panToExtent() zoomToSelectedFeatures(),Layers对象,图层对象提供了对 ArcMap 图层属性对话框中出现的众多常用图层属性的访问,同时也提供了用于保存图层文件的各种方法。Legend 对象中的 Layer 函数、ListLayers 函数和 l

15、istLegendItemLayers 方法都提供了引用 Layer 对象的方法。,修改图层的符号系统,只有极少数的受支持的符号系统类型,其属性和方法可供使用。使用前先测试图层的symbologyType属性。如果返回OTHER值,则不可以修改图层的符号系统。如果返回值不是OTHER,则图层的symbology属性将返回某个符号系统类。 每个符号系统类都包含一组特有的方法和属性:GraduatedColorsSymbology、GraduatedSymbolsSymbology、RasterClassifiedSymbology 和 UniqueValuesSymbology。,Layer类特

16、点,并非所有的图层属性都可以通过Layer对象访问,例如显示属性、字段别名、选择内容的符号系统等。但是可以用updateLayer间接修改。 修改符号系统,图层对象的获取,图层组和其他子图层被视为普通图层,ListLayers()函数返回时候,按照显示顺序同样生成索引,例如如果地图文档中包含一个含有三个子图层的图层组,则将返回一个包含四个图层名的列表(包括图层名),AddLayer,添加的图层必须参考已存在的图层(请注意,图层也可以是图层组)。源图层可以来自磁盘上的图层文件、同一地图文档和数据框、同一地图文档不同数据框乃至完全独立的地图文档。,作业2-实现自动化制图,以每一个实习点为中心,比例尺为8000,出图,ArcPy 地理处理,ArcPy地理处理为调用地理处理工具进行数据的处理。 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息。工具通常包含多个输入参数以定义一个或多个数据集,这些数据集一般用于生成新的输出数据。参数具有几个重要属性: 每个参数具有一种或多种特定的数据类型,如要素类、整型、字符串或栅格。 参数为输入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号