不可不知的ArcGIS Python 开发
易智瑞(中国)信息技术有限公司 李远祥
Python基础
Python简介
Python的优势
变量类型
模块和包
ArcGIS10.1中的Python
Python Window
ArcPy的使用
不可不知的ArcPy开发
ArcPy代码库
ArcPy 调用GP工具
ArcPy Functions
ArcPy 实现类
ArcPy数据管理
ArcPy 制图可视化
Python 实现Add-in
内容概要
Python基础
• 开源的 、解释性的、面向对象的、跨平台的编程语言
• 把其他语言制作的各种模块轻松地联结在一起的胶水语言
• 历史悠久,成熟稳定,具有脚本语言中最丰富和强大的类库
• 简洁清晰的语法,代码强制要求缩进换行
• 开发效率高
Python简介
免费、开源、跨平台
简单、优雅、面向对象
丰富的模块和库
擅长大量文件的批量化处理
……
Python的优势
简单高效
胶水特性 能小能大
Zope - 著名的开源Web应用服务器
Bit Torrent - 著名的BT下载工具
Gadfly - 一个用Python写的面向对象关系型数据库,具有小
巧、快速、可移植性好,且开放源码。
红帽(Red Hat ) - 曾用Python和Tk一起成功开发配置和管理操
作系统的可视界面
Microsoft、IBM等用python作为原型开发,在Goolge,
python是继C++、Java之后使用最多的开发语言
Python的一些优秀应用
基本数据类型:
字符串,整数,浮点数,虚数,布尔型
集合类型:
列表 :aList=[5,7,9,11]
append(x) count(x) extend(L)
Index(x) insert(i,x) pop(x)
remove(x) reverse() sort()
元组:aTuple = (1, 3, 5)
字典:aHash = {‘a’:’aa’, ‘b’:’bb’}
Python的变量类型
不需要
声明
无利益冲突声明中华医学会杂志社职业健康检查不够规范教育部留学服务中心亲友住房声明
变量类型
• Python中的模块是一个以.py 结尾的 Python代码文件
• 可通过import命令导入,如:
#导入ftplib模块
import ftplib
#导入ftplib 模块,名字定义为ftp
import ftplib as ftp
#导入ftplib 模块中的FTP变量
from ftplib import FTP
Python中的模块
• 把几个模块存放到一个
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
结构中,并添加__init__.py文件,形成Python包
• 调用方法:
import WebDesign #调用包,通过目录名称
import WebDesign.design #调用包中的模块
Python中的包
ArcPy也是
一个Python包
• 模块和包放在python的系统目录下,即可调用
• 查看python的系统目录 sys.path
• 查看被调用的模块或包的文件路径 .__file__
• 查看一个 模块/包/类 下的所有变量 dir(arcpy.mapping)
Python中的模块和包
一个简单的Python调用
ArcGIS10.1中的Python
1. ArcPy 包
• 一个Python包
• 包含对地图操作和地图代数的支持
• 支持编辑处理和几何操作
• 新增更多的几何运算
2. Python window
• 可以在ArcGIS中访问python
• 可以灵活调用GP工具
3. Python script tool
• 可以创建自己的GP工具
4. Python Addin
• 可以利用Python创建自己的Add-in
ArcGIS10.1中的Python
• Python是个非常优秀语言,简单易用
• Python已经与ArcGIS高度集成
• 方便实现GIS处理流程
• 不需要学习庞大的AO接口
• Python更灵活更容易重用
• ArcGIS Desktop 扩展已经不再支持VBA
• ……
为什么要使用Python
ArcGIS自带的一个交互式的窗口
– 可以使用Arcpy
– 可以使用任何其他的Python功能
– 代码的智能感知
Python window 用途:
– 测试想法
– 学习实践Python
– 简单执行GP工具
– 建立快速简易的工作流
Python Window介绍
初学者的利器
是一个原生的python 包
– 可访问800+个GP工具
– ArcGIS对包中的 模块,类,方法提供参考文档
– 可以在自己喜好的编辑器中完成ArcGIS任务
– 对 arcgisscripting 的使用者来说很熟悉
是ArcGIS 实现自动化处理的基石,功能有:
– 数据
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
– 数据转换
– 数据管理
– 制图自动化
ArcPy介绍
基础方法(Functions)
基础类
实现模块
制图可视化-mapping
空间分析-spatial
网络分析-Network analysis(10.1)
数据连接-Data Access(10.1)
时间-Time(10.1)
ArcPy组成
不可不知的ArcPy开发
ArcPy代码库
ArcPy 调用GP工具
ArcPy 基础方法和类
ArcPy数据管理
ArcPy 制图可视化
其他扩展模块
Python 实现Add-in
不可不知的ArcPy开发
目录所在:
\Desktop10.1\arcpy
ArcPy代码库
通过Python
语言对AO和GP工具
进行引用封装
实现例子
ArcPy调用GP工具
工具调用原理:
ArcPy调用GP工具
ArcPy实现
与工具箱保持一致,
函数名称与
工具名称一致
ArcPy 基础方法 实现最常规和最常用的功能
遍历数据
增删查改
图形操作
• 遍历要素类、字段、表格、栅格等数据
• 方法返回的结果是一个集合
ListDatasets
ListFeatureClasses
ListFields
ListIndexes
ListRasters
ListTables
ListVersions
ListWorkspaces
ArcPy基础方法-List
ArcPy基础方法-Cursors
查询记录(SearchCursor)
插入记录(InsertCursor)
更新记录(UpdateCursor)
例子:SearchCursor查询
• 创建、编辑几何对象
• 新增了几何对象的关系判断
包含、相交、相等、压盖等
多种几何操作(boundary, buffer, clip, convexHull,
difference, distanceTo, intersect, symmetricDifference, and
union)
• 支持方法 distanceTo、projectAs、
getLength 、getArea等
ArcPy基础方法-Geometry
例子:创建空间数据
读取文本文件,
构建线要素,
并最终写入featureclass
Cursor 游标
Exceptions 错误抛出
FeatureSets/RecordSets 要素和记录
Fields 字段信息
General 通用类,如数组、env 等
Geometry 图形类,如点、线、面
Geostatistical Analyst 统计类,如返回要素总数
Parameter 参数类,参数读取和设置
ArcPy 类
• 全部来自 management.py
• 完全实现 Data Manager Tools
• 覆盖数据创建、数据库连接、数据备份、数据过滤、字
段计算等功能
ArcPy数据管理
例子:调用management数据备份
例子:实现字段计算器功能
• 使用ArcPy.Mapping模块
• 与MapDocument、Layer及其内的数据进行交互
• 更改图层datasource
• 获得mxd相关信息:数据源,无效图层,空间参考
• 更改symbology、label显示、图层透明度等
• 自动化地图集生产
• …
ArcPy 制图可视化
例子:修改显示字段
例子:更改mxd文档数据源
例子:控制图层显示和设置透明度
• 实现了Spatial Analyst 、Geostatistical Analyst 模块功能
• 10.1新增了Time module、Network Analyst、Data Access
功能
其他扩展模块
不断的完善模块
不断增加新的方法
• ArcGIS Desktop 10.1 开始支持使用Python创建Add-in
• 高度封装和集成,不需要了解AO
• 能与Desktop界面和工具交互
• 开发简单、高效
• 向导式生成交互代码
• Add-in分发和部署简便
使用Python实现Add-in
• 向导方式创建ArcPy Add-In 工程
• 支持创建基于ArcMap、ArcCatalog、ArcGlobe、ArcScene插件
• 支持创建扩展模块、菜单、工具条
• 生成各种组件类及方法
下载地址:
http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3
e4c62f30bff3b
开发工具-- addin_assistant
例子:Python创建Add-in
ArcGIS完美的集成优秀的Python语言
使用ArcPy让用户更多精力的关注GIS实现流程
ArcPy简化了开发流程
ArcPy更容易分发和重用
Python降低了开发门槛,更利于应用的黏合
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
ArcGIS 10.1 for Server SOE 应用开发
Next……