Arcpy脚本编程入门.ppt

上传人:博****1 文档编号:578261191 上传时间:2024-08-23 格式:PPT 页数:46 大小:1MB
返回 下载 相关 举报
Arcpy脚本编程入门.ppt_第1页
第1页 / 共46页
Arcpy脚本编程入门.ppt_第2页
第2页 / 共46页
Arcpy脚本编程入门.ppt_第3页
第3页 / 共46页
Arcpy脚本编程入门.ppt_第4页
第4页 / 共46页
Arcpy脚本编程入门.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

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

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

2、级别(ArcGISforDesktopBasic、Standard或Advanced)和扩展模块(ArcGISNetworkAnalyst扩展模块、ArcGISSpatialAnalyst扩展模块等)进行授权。您可以在工具参考页面上查找所需的许可等级。不对函数进行授权 -它们随 ArcPy一起安装。实例 arcpy.Buffer_analysis(c:/data/Portland.gdb/streets, c:/data/Portland.gdb/steets_buffer, 500 METERS)工具函数ArcPy函数具有特定功能的函数,可以实现如:处理数据集列表、查询数据集属性、确定数据是

3、否存在、检查数据集名称的有效性等。这些函数是为实现Python工作流而实现的。在Python中调用函数的方式arcpy.()函数需要参数有必选参数和可选参数、函数具有返回值,大多一对象返回ImportarcpyPrintarcpy.Exists(“c:/Data.streams.shp”)函数分类光标函数数据描述函数环境和设置函数字段函数数据库管理函数通用函数通用数据函数参数获取和设置函数数据列表函数日志函数消息和错误处理函数进度对话框函数栅格数据函数空间参考转换函数许可和安装函数通用数据函数arcpy.Exists(“c:/Data/streams.shp”)#判断文件是否存在desc=ar

4、cpy.Describe(“c:/Data/streams.shp”)#数据描述函数printdesc.shapeType#输出类型,比如”Polygon”、”Polyline”,”Point”,可以用于筛选shapefile类型。printdesc.spatialReference#获取坐标系统RefreshActiveView()#刷新当前地图文档数据列表函数列表函数使用之前需要设置工作空间路径,列表函数会返回数据列表ListFeatureClasses(string_match,data_type)#返回当前工作空间的所有要素类的列表ListRasters(string_match,da

5、ta_type)#返回当前工作空间的所有栅格数据ListFields(dataset,wild_card,field_type)#获取字段列表ListFeatureClasses(“C*”)#通配符限制返回的结果列表.ArcPy类类可以创建对象,对象创建完成后可以调用其属性和方法ArcPy常用类Env类spatialReference类Geometry类字段类env类Env类的属性包含了一系列的地理处理环境。其属性既可以读取也可以写入常用属性:Importarcpyarcpy.env.workspace=“c:/Data”#设置工作空间Arcpy.env.overwriteOutput=Tru

6、e#设置地理处理的结果是否覆盖SpatialReference类参考系类,属性包含坐标系统参数,为了使用这个类,必须先初始化ImportarcpyPrjfile=“c:/Data/myprojection.prj”Spatialref=arcpy.SpatialReference(prjfile)#读取投影文件初始化参考系类;初始化方式有三种:坐标系名称,坐标系代号和和坐标系文件PrintSpatialref.name#获取name属性可以坐标系定义工具的输入参数几何类在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用

7、要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。可以使用Geometry、Multipoint、PointGeometry、Polygon或Polyline类从头开始创建几何对象。Point类 点点并非几何类,但通常用于构造几何Point=arcpy,Point(25282,43770)ptGeometry=arcpy.PointGeometry(point)Point=arcpy.Point()Point.X=25282Point.Y=43770ptGeometry=arcpy.PointGeometry(point)点要素类的创建点对象几何点对象

8、点要素线要素类创建面要素类的创建字段类Field类属性:aliasName字段别名basename非限定字段名称defaultValue字段的默认值editable可编辑状态:Truelength字段的长度Name字段的名称Precision字段的精度Type字段类型代码示例显示指定要素类的字段属性模块arcpy.da(数据访问模块)Arcpy.mapping(制图模块)Arcpy.sa(ArcGISSpatialAnalyst扩展模块)Arcpy.na(ArcGISNetworkAnalyst扩展模块)Time模块数据访问模块arcpy.da定义:数据访问(DataAssess)模块 (ar

9、cpy.da)是一个用于处理数据的 Python模块。通过它可控制编辑会话、编辑操作、改进的游标支持(包括更快的性能)、表和要素类与 NumPy数组之间相互转换的函数以及对版本化、复本、属性域和子类型工作流的支持。游标类Cursor是一种数据访问对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式:搜索、插入或更新。游标通常用于读取和更新属性。Cursor类别:SearchCursor查询游标 用于查询字段值UpdateCursor更新游标 用于更新字段值InsertCursor插入游标 在表中插入新行Row对象行对象表示表中的某一行。行对象会从InsertCursor、Search

10、Cursor和UpdateCursor中返回。游标实例InsertCursor作业11.将江苏省地级市点两两相连,建立polyline(必做)。2.为线条增加权重:增加一个字段,字段值为两点的人口数之和(选做)ArcPy.mapping 模块Arcpy.mapping是一个作为 ArcPy站点包一部分的Python脚本模块。随ArcGISDesktop一同安装,并对所有许可均可用。其设计初衷主要是用于操作现有地图文档 (.mxd)和图层文件 (.lyr)的内容。此外,还提供自动执行导出和打印的功能。Arcpy.mapping可用于自动执行地图生产;它扩展了数据驱动页面的功能,同时,因其包含导出

11、至 PDF文档、创建和管理 PDF文档的函数,而为构建完整地图册所必需。最后,可将 arcpy.mapping脚本发布为地理处理服务,并将脚本功能提供给 Web应用程序。ArcPy.mapping 模块功能创建有关地图文档中所含信息(如数据框坐标系、图层数据源、数据源损坏的图层或布局元素位置)的报告。更新、修复或替换地图文档或图层文件中的图层数据源。更新图层符号系统而无需实际打开地图文档。查找并替换文件夹内所有地图文档的文本字符串。将地图文档保存至之前的 ArcGIS版本,以便分发。更新地图文档元数据(例如,关键字、摘要和描述)。使用地图导出命令批量创建地理数据,例如,由数据框中要素列表驱动的

12、一系列 GeoTIFF图像。自动创建和管理要通过ArcGISServer发布的地图服务。构建多种 PDF地图册:含标题页、多个地图页面以及任意数量含辅助内容(如表格式报表和联系人列表)的附加页面的专题或时态地图册。基于数据驱动页面输出的参考地图册。Mxd对象获取获取mxd文档对象:arcpy.mapping.MapDocument(r“c:ProjectProject.mxd”)获取当前mxd文档(仅限在arcMap环境下)arcpy.mapping.mapDocument(“CURRENT”)mxd类属性authorfilePathtitle方法save()saveACopy()DataFr

13、ame获取importarcpymxd=arcpy.mapping.MapDocument(r“c:ProjectProject.mxd”)fordfinarcpy.mapping.ListDataFrames(mxd):printdf.nameDelmxdDataFrame对象属性:spatialReference读写数据框的坐标系统Description获取或设置数据库描述信息方法:panToExtent()zoomToSelectedFeatures()Layers对象图层对象提供了对 ArcMap图层属性对话框中出现的众多常用图层属性的访问,同时也提供了用于保存图层文件的各种方法。Le

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

15、luesSymbology。Layer类特点并非所有的图层属性都可以通过Layer对象访问,例如显示属性、字段别名、选择内容的符号系统等。但是可以用updateLayer间接修改。修改符号系统图层对象的获取图层组和其他子图层被视为普通图层,ListLayers()函数返回时候,按照显示顺序同样生成索引,例如如果地图文档中包含一个含有三个子图层的图层组,则将返回一个包含四个图层名的列表(包括图层名)AddLayer添加的图层必须参考已存在的图层(请注意,图层也可以是图层组)。源图层可以来自磁盘上的图层文件、同一地图文档和数据框、同一地图文档不同数据框乃至完全独立的地图文档。作业2-实现自动化制图

16、以每一个实习点为中心,比例尺为8000,出图ArcPy 地理处理ArcPy地理处理为调用地理处理工具进行数据的处理。每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息。工具通常包含多个输入参数以定义一个或多个数据集,这些数据集一般用于生成新的输出数据。参数具有几个重要属性:每个参数具有一种或多种特定的数据类型,如要素类、整型、字符串或栅格。参数为输入值或输出值。参数需有值,或为可选。各个工具参数都具有唯一的名称。ArcPy地理处理工具ArcPy可以访问ArcGISforDesktop中的地理处理工具。在Python 脚本里,可以通过工具箱的名称调用。这些工具还具有各自的标签

17、,它们是显示在ArcToolbox中的名称。工具的名称与工具的标签虽然很相似,但是在工具的名称中是不包含空格的。例如DataManagement工具箱中工具AddField标签是AddField,名称是AddField此外,对于一些特殊的工具,还需要引用工具箱的别名来调用工具。因为不同个工具在不同的工具箱中可能有相同的名字。例如。ArcToolBox中有多个Clip:在Analysis中有一个,DataManagement工具箱中也有一个。工具箱的别名和工具箱的名称标签都不同,是工具箱的缩写,如DataManagement别名是management.因此在Python中,DataManagem

18、ent工具箱中的Clip工具是Clip_management.工具调用方法(1)函数的形式调用,所有的工具均以函数形式提供。ImportarcpyArcpy.env.workspace(“c:/data”)Arcpy.Clip_analysis(“streams.shp”,”study.shp”,”result.shp”)(2)匹配工具箱别名的形式调用工具。ImportarcpyArcpy.env.workspace(“c:/data”)Arcpy.analysis.Clip(“streams.shp”,”study.shp”,”result.shp”)实例作业3-地理脚本的批处理随着信息网络的发展,Wifi已经成为了人们生活中必不可少的因素,某高校原计划在学校内选6个wifi信号发射的地址,每个基站覆盖范围200m,后来由于经费受限,只能在6个wifi发射地址中选择5个。要求选出的5个wifi发射地址尽可能地覆盖多的范围,请大家用ArcPy批处理帮学校想一下哪5个需要保留。参考资料ArcGIShelp:http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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