Arcpy脚本编程入门_第1页
Arcpy脚本编程入门_第2页
Arcpy脚本编程入门_第3页
Arcpy脚本编程入门_第4页
Arcpy脚本编程入门_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、息。工具按产品级别(ArcGIS for Desktop Basic、Standard或Advanced)和扩展模块(ArcGIS Network Analyst 扩展模块、ArcGIS Spatial Analyst 扩展模块等)进行授权。您能够在工具参考页面上查找所需许可等级。不对函数进行授权 - 它们随 ArcPy 一起安装。4/46实例 arcpy.Buffer_analysis(c:/data/Portland.gdb/streets, c:/data/Portland.gdb/steets_buffer, 500 METERS)工具函数5/46ArcPy函数含有特定功效函数,能够实

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

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

5、当前工作空间全部要素类列表ListRasters(string_match,data_type) #返回当前工作空间全部栅格数据ListFields(dataset,wild_card,field_type)#获取字段列表ListFeatureClasses(“C*”) #通配符限制返回结果列表.9/46ArcPy类类能够创建对象,对象创建完成后能够调用其属性和方法10/46ArcPy惯用类Env类spatialReference类Geometry类字段类11/46env类Env类属性包含了一系列地理处理环境。其属性既能够读取也能够写入惯用属性:Import arcpyarcpy.env.wo

6、rkspace=“c:/Data” #设置工作空间Arcpy.env.overwriteOutput=True #设置地理处理结果是否覆盖12/46SpatialReference类参考系类,属性包含坐标系统参数,为了使用这个类,必须先初始化Import arcpyPrjfile=“c:/Data/myprojection.prj”Spatialref=arcpy.SpatialReference(prjfile)#读取投影文件初始化参考系类;初始化方式有三种:坐标系名称,坐标系代号和和坐标系文件Print S # 获取name属性能够坐标系定义工具输入参数13/46几何类在许多地理处理工作流

7、中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(暂时)要素类、使用光标填充要素类、使用要素类,然后删除暂时要素类过程。能够使用几何对象替换输入和输出,从而使地理处理变得更简单。能够使用Geometry、Multipoint、PointGeometry、Polygon或Polyline类从头开始创建几何对象。14/46Point类 点并非几何类,但通惯用于结构几何Point=arcpy,Point(25282,43770)ptGeometry=arcpy.PointGeometry(point)Point=arcpy.Point()Point.X=25282Point.Y=4

8、3770ptGeometry=arcpy.PointGeometry(point)15/46点要素类创建点对象几何点对象点要素16/46线要素类创建17/46面要素类创建18/46字段类Field类属性:aliasName 字段别名basename 非限定字段名称defaultValue 字段默认值editable 可编辑状态:Truelength 字段长度Name 字段名称Precision 字段精度Type 字段类型19/46代码示例显示指定要素类字段属性20/46模块arcpy.da(数据访问模块)Arcpy.mapping(制图模块)Arcpy.sa(ArcGIS Spatial An

9、alyst扩展模块)Arcpy.na(ArcGIS Network Analyst扩展模块)Time 模块21/46数据访问模块arcpy.da定义:数据访问(Data Assess)模块 (arcpy.da) 是一个用于处理数据 Python 模块。经过它可控制编辑会话、编辑操作、改进游标支持(包含更加快性能)、表和要素类与 NumPy 数组之间相互转换函数以及对版本化、复本、属性域和子类型工作流支持。22/46游标类Cursor 是一个数据访问对象,可用于在表中迭代一组行或者向表中插入新行。游标有三种形式:搜索、插入或更新。游标通惯用于读取和更新属性。Cursor 类别:SearchCur

10、sor 查询游标 用于查询字段值UpdateCursor 更新游标 用于更新字段值InsertCursor 插入游标 在表中插入新行23/46Row对象行对象表示表中某一行。行对象会从InsertCursor、SearchCursor和UpdateCursor中返回。24/46游标实例InsertCursor25/46作业11.将江苏省地级市点两两相连,建立polyline(必做)。2.为线条增加权重:增加一个字段,字段值为两点人口数之和(选做)26/46ArcPy.mapping 模块Arcpy.mapping 是一个作为 ArcPy 站点包一部分Python 脚本模块。随ArcGIS De

11、sktop一同安装,并对全部许可均可用。其设计初衷主要是用于操作现有地图文档 (.mxd) 和图层文件 (.lyr) 内容。另外,还提供自动执行导出和打印功效。Arcpy.mapping 可用于自动执行地图生产;它扩展了数据驱动页面功效,同时,因其包含导出至 PDF 文档、创建和管理 PDF 文档函数,而为构建完整地图册所必需。最终,可将 arcpy.mapping 脚本公布为地理处理服务,并将脚本功效提供给 Web 应用程序。27/46ArcPy.mapping 模块功效创建相关地图文档中所含信息(如数据框坐标系、图层数据源、数据源损坏图层或布局元素位置)汇报。更新、修复或替换地图文档或图层

12、文件中图层数据源。更新图层符号系统而无需实际打开地图文档。查找并替换文件夹内全部地图文档文本字符串。将地图文档保留至之前 ArcGIS 版本,方便分发。更新地图文档元数据(比如,关键字、摘要和描述)。使用地图导出命令批量创建地理数据,比如,由数据框中要素列表驱动一系列 GeoTIFF 图像。自动创建和管理要经过ArcGIS Server公布地图服务。构建各种 PDF 地图册:含标题页、多个地图页面以及任意数量含辅助内容(如表格式报表和联络人列表)附加页面专题或时态地图册。基于数据驱动页面输出参考地图册。28/46Mxd对象获取获取mxd文档对象:arcpy.mapping.MapDocumen

13、t(r“c:ProjectProject.mxd”)获取当前mxd文档(仅限在arcMap环境下)arcpy.mapping.mapDocument(“CURRENT”)29/46mxd类属性authorfilePathtitle方法save()saveACopy()30/46DataFrame获取import arcpymxd=arcpy.mapping.MapDocument(r“c:ProjectProject.mxd”)for df in arcpy.mapping.ListDataFrames(mxd):print Del mxd31/46DataFrame对象属性:spatialR

14、eference 读写数据框坐标系统Description 获取或设置数据库描述信息方法:panToExtent()zoomToSelectedFeatures()32/46Layers对象图层对象提供了对 ArcMap图层属性对话框中出现众多惯用图层属性访问,同时也提供了用于保留图层文件各种方法。Legend对象中Layer函数、ListLayers函数和listLegendItemLayers方法都提供了引用Layer对象方法。33/46修改图层符号系统只有极少数受支持符号系统类型,其属性和方法可供使用。使用前先测试图层symbologyType属性。假如返回OTHER值,则不能够修改图层

15、符号系统。假如返回值不是OTHER,则图层symbology属性将返回某个符号系统类。每个符号系统类都包含一组特有方法和属性:GraduatedColorsSymbology、GraduatedSymbolsSymbology、RasterClassifiedSymbology和UniqueValuesSymbology。34/46Layer类特点并非全部图层属性都能够经过Layer对象访问,比如显示属性、字段别名、选择内容符号系统等。不过能够用updateLayer间接修改。修改符号系统35/46图层对象获取图层组和其它子图层被视为普通图层,ListLayers()函数返回时候,按照显示次序

16、一样生成索引,比如假如地图文档中包含一个含有三个子图层图层组,则将返回一个包含四个图层名列表(包含图层名)36/46AddLayer添加图层必须参考已存在图层(请注意,图层也能够是图层组)。源图层能够来自磁盘上图层文件、同一地图文档和数据框、同一地图文档不一样数据框乃至完全独立地图文档。37/46作业2-实现自动化制图以每一个实习点为中心,百分比尺为8000,出图38/46ArcPy 地理处理ArcPy地理处理为调用地理处理工具进行数据处理。每个地理处理工具都含有一组固定参数,这些参数为工具提供执行所需信息。工具通常包含多个输入参数以定义一个或多个数据集,这些数据集普通用于生成新输出数据。参数

17、含有几个主要属性:每个参数含有一个或各种特定数据类型,如要素类、整型、字符串或栅格。参数为输入值或输出值。参数需有值,或为可选。各个工具参数都含有唯一名称。39/46ArcPy地理处理工具ArcPy能够访问ArcGIS for Desktop 中地理处理工具。在Python 脚本里,能够经过工具箱名称调用。这些工具还含有各自标签,它们是显示在ArcToolbox中名称。工具名称与工具标签即使很相同,不过在工具名称中是不包含空格。比如Data Management 工具箱中工具Add Field 标签是Add Field ,名称是AddField另外,对于一些特殊工具,还需要引用工具箱别名来调用

18、工具。因为不一样个工具在不一样工具箱中可能有相同名字。比如。ArcToolBox中有多个Clip:在Analysis中有一个,Data Management 工具箱中也有一个。工具箱别名和工具箱名称标签都不一样,是工具箱缩写,如Data Management 别名是management.所以在Python 中,Data Management 工具箱中Clip工具是Clip_management.40/46工具调用方法(1)函数形式调用,全部工具均以函数形式提供。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.Clip_analysis(“streams.shp”,”study.shp”,”result.shp”)(2)匹配工具箱别名形式调用工具。Import arcpyArcpy.env.workspace(“c:/data”)Arcpy.analysis.Clip(“streams.shp”,”s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论