ArcGIS中不可不知的Python使用技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相当耗资源 ★★★★ ★★★ ★★★ 比较耗资源 ★★★★★ ★★ ★★★★★★
Python自带的IDE
• 集成开发环境(Integration Development Environment)
PyCharm
Python功能包与ArcGIS平台对应关系
ArcGIS Python API
桌面 Web 移动设备
Python API
常用IDE比较
IDE name IDLE PythonWin SPE Ulipad Eric BOA 自动补全 智能感知 手动 手动 无 有 有 手动 有(很差) 有 有 有 有 手动 调试 用库 用库 WPDB WPDB 类VC 类VC 语法检查 无 无 存盘时 自动 自动 无 开源 开源 开源 开源 开源 开源 开源 Win Onl 特别注意 ★★ ★★★ ★★★★ ★★★★★ ★★★★★ 中文支持差 ★★★ 推荐度
中处理时间增量和时区时会用到的类、方法以及属性。
ຫໍສະໝຸດ Baidu
ArcPy
基础方法
自动化制图模块
空间分析模块
地统计分析模块
桌面Add-In插件
• Python Add-In开发,开发工具addin_assistant
• • • •
向导方式创建ArcPy Add-In 工程 支持创建基于ArcMap、ArcCatalog、ArcGlobe、ArcScene插件 支持创建扩展模块、菜单、工具条 生成各种组件类及方法
示例:桌面add-in插件使用
下载Python Add-In Wizard: http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30b ff3b
Python版本迁移
ArcGIS Pro 使用 Python 3 ArcPy 迁移
https://developers.arcgis.com/python/
ArcGIS Python API功能模块
空间数据
•
……
• • • • • • • • • •
数据格式转换 空间数据格式转换 非空间数据格式转 换 数据预处理 数据抽稀 字段计算 空间选择 GeoDatabase 属性选择 。。。 元数据处理 元数据填写 元数据标准转换 。。
属性数据
行政区 用地性质 用地面积 …
数据管理
• 来自 management.py • 完全实现 Data Manager Tools
创建SDE连接文件
创建ArcGIS Server连接文件
示例:Python字段计算器
将存储在字段值中类似379.826的数据处理成K379+826
交通行业通常需要将道路 的里程数据存储成 K389+34的形式。
第一步:!桩号! .replace(".","+") 第二步:“K“+ !桩号!
示例:python窗口批量数据删除
批量删除栅格:
rasters=arcpy.ListRasters()
for raster in rasters: arcpy.Delete_management(raster)
批量删除表: tables = arcpy.ListTables()
for table in tables: arcpy.Delete_management(table)
重要GP工具 arcpy.mp 替代 arcpy.mapping
可继续在ArcGIS Pro 中使用脚本工具和 Python 工具箱
Python in Server
ArcGIS Server 命令行实用程序
• 1、ArcGIS Server 命令行实用程序 ― 位于ArcGIS for Server安装目录tools/admin目录下 ― 提供一套管理ArcGIS Server的脚本命令行工具
批量删除要素类: import arcpy from arcpy import env env.workspace=r'C:\Users\yanrui\Documents\ArcGIS\Default.gdb' fcs = arcpy.ListFeatureClasses() for fc in fcs: arcpy.Delete_management(fc)
ArcGIS Server 命令行实用程序
启动和停止服务
从集群添加和移除计算机 从服务定义 (.sd) 文件发布服务 备份或还原站点配置 定义新地图缓存 构建和删除地图缓存
在松散和紧凑格式之间转换地图缓存
使用 ArcGIS REST API 编写Python脚本
• 使用Python调用ArcGIS Admin API修改ArcGIS Server参数
TIOBE开发语言琅琊榜
Python的优点
• • • • • •
简单 易学 免费、开源 高层 可移植性 解释性
• • • • • •
面向对象 可扩展性 可嵌入性 丰富的库 海量资源 ……
跨平台语言:支持Windows/Unix/Linux/Macintosh
Python的站点包
ArcPy
eyed3
示例:上传FileDGB数据到AGO
• 上传FileDGB数据到AGO
Python in Web
ArcGIS Python API(beta)
• ArcGIS Python API 是一个全新的API,可以执行GIS分析和 可视化、空间数据管理、GIS平台管理。
原生,强大,简单 交互式开发 可分享、更新和重新运行的分析记录
使用 ArcGIS REST API管理ArcGIS Server
步骤1运行脚本时需要有管理员权限,必须提供一个具有管理员权限的用户名和密码:
步骤2在脚本中获取和使用令牌
步骤3配置参数,构筑请求
示例:Python脚本实现服务发布
Python in Online/Portal
Python使用地理平台中的资源
示例:更改mxd文档数据源
ArcPy地理分析功能
• Arcpy.sa • 用于使用Spatial Analyst 工具的Python模块。 • Arcpy.na • 用于使用 ArcGIS Network Analyst 扩展模块提供的网络分析功能的 Python 模块。
• Arcpy.time • 包含在 Python
Arcpy
Web GIS
Portal
ArcRest/PortalPy
Server
在线内容与服务
Python in Desktop/Pro
ArcPy
• Arcpy——为用户提供了使用 Python 语言操作所有地理处 理工具(包括扩展模块)的入口,并提供了多种有用的函 数和类,以用于处理和询问 GIS 数据。使用 Python 和 ArcPy ,可以开发出大量的用于处理地理数据的实用程序 。 • 代码库: • C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy
jupyter matplotlib
pyreadli ne pip
jinja2
flask
Web.py numpy GWPY pandas
Python的缺点
强制缩进
慢
Python的版本
-跨平台语言,支持Windows/Unix/Linux/Macintosh -下载路径:http://www.python.org -安装
Python 2.x和3.x的区别
Python自己版本之间的比较,满分5颗星
2.x
运行效率
3.x
说明
3.0比2.x的整体运行效率低30%,3.1慢15%但是 3.x在字符串和整形运算上效率较高 3.X默认支持中文编码,而且可以使用中文变量名, 不用任何额外声明 3.x增加了部分关键字 3.X把print语句换成了print函数 3.X增加了部分功能包,但是也删除了一些2.x的 功能包,总体来说差不多 3.X 规则更加严格 3.X去除了long类型,现在只有一种整型int 3.x引入抽象基类,容器模块中类型更多 3.X的成熟度还比较低,guido认为3.x可优化的余 地还很大 3.X的第三方包远远小于2.x,特别是不同平台上 面。
示例:Python脚本实现数据转换
ArcPy制图可视化
• • • • • • • 使用ArcPy.Mapping模块 与MapDocument、Layer及其内的数据进行交互 更改图层datasource 获得mxd相关信息:数据源,无效图层,空间参考 更改symbology、label显示、图层透明度等 自动化地图集生产 …
• Python调用ArcGIS Portal/online REST api来调用资源; • 推荐: • ArcREST——python包(REST API for AGS,AGOL,webmap json)
ArcGIS for Server
要素服务查询、增加、删除和修改; 上传附件; 管理用户; 服务发布
webmap
item
ArcGIS Portal/Online
管理Porta\AGS\AGOL站点; 管理内容; 管理用户
ArcREST下载地址:https://github.com/Esri/ArcREST
user
ArcREST站点包安装
• 1、安装requirements.txt——pip install –r requirements.txt • 2、运行setup.py ——python setup.py install
ArcGIS中不可不知的Python使用技术
易智瑞(中国)信息技术有限公司沈阳分公司 刘君懿
Python的历史
Python是自由软件的丰硕成果之一
创始人 Guido van Rossum 时间地点 :1989年圣诞节期间在阿姆斯特丹创造 名字来源 :大蟒蛇飞行马戏团的爱好者 渊源:从ABC发展而来 主要受Modula-3的影响 结合了Unix shell和C的习惯
arcpy.ga
arcpy.time
ArcGIS中Python的用法
1.字段计算器 2.制作gp工具
ArcGIS中Python的用法
4.Python Add-in
数据管理
• 管理地理数据库(personal/file/sde GDB)
数据创建 数据库连接 数据备份 • • 数据过滤 • 字段计算
ArcPy
数据的编辑会话 表、要素类与 Numpy格式互 转 版本、属性域和 子类工作流
操作.mxd和.lyr 扩展了数据驱动 页面功能,自动 导出、打印地图 可发布为服务在 Web端使用 执行空间分析 、空间运算
可访问Network Analyst Toolbox的所有 工具(增删图层 、获取属性) 结合 Arcpy.Describe 使用
ArcPy站点 包 Python 2.6
Python 2.7 第三方包
自动化制图 数据访问 空间分析 ……
Python 3.4
ArcGIS Python API(beta)
ArcGIS 9.0/9.1
ArcGIS 9.2
ArcGIS 9.3
ArcGIS 10.0
ArcGIS 10.4
ArcPro 1.2
• 下载地址:http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
• • • • • • • • 按钮和工具 组合框 菜单和右键菜单 Tool palettes 可停靠窗体 Application extensions Editor extensions Editor Construction Tools
中文编码 关键字 Print 功能
操作符规则 数据类型 面向对象 成熟度 第三方包数 量
ArcGIS Python API的发展历程
基于 dispatch geoprocesso r Python 2.1
arcgisscripti ng Python 2.4
arcgisscripti ng Python 2.5
WingIDE
Komodo VIM+插件 emacs+插件 eclipse+pydev插件 VS +VisualPython PyCharm
有
无 有 有 有 无 有
有
有 无 无 有 有 有
类VC
类VC 无 无 类VC 类VC 有
手动
手动 无 无 自动 无 自动
共享
共享 开源 开源 开源 共享 开源
中文要设置 ★★★★
Python自带的IDE
• 集成开发环境(Integration Development Environment)
PyCharm
Python功能包与ArcGIS平台对应关系
ArcGIS Python API
桌面 Web 移动设备
Python API
常用IDE比较
IDE name IDLE PythonWin SPE Ulipad Eric BOA 自动补全 智能感知 手动 手动 无 有 有 手动 有(很差) 有 有 有 有 手动 调试 用库 用库 WPDB WPDB 类VC 类VC 语法检查 无 无 存盘时 自动 自动 无 开源 开源 开源 开源 开源 开源 开源 Win Onl 特别注意 ★★ ★★★ ★★★★ ★★★★★ ★★★★★ 中文支持差 ★★★ 推荐度
中处理时间增量和时区时会用到的类、方法以及属性。
ຫໍສະໝຸດ Baidu
ArcPy
基础方法
自动化制图模块
空间分析模块
地统计分析模块
桌面Add-In插件
• Python Add-In开发,开发工具addin_assistant
• • • •
向导方式创建ArcPy Add-In 工程 支持创建基于ArcMap、ArcCatalog、ArcGlobe、ArcScene插件 支持创建扩展模块、菜单、工具条 生成各种组件类及方法
示例:桌面add-in插件使用
下载Python Add-In Wizard: http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30b ff3b
Python版本迁移
ArcGIS Pro 使用 Python 3 ArcPy 迁移
https://developers.arcgis.com/python/
ArcGIS Python API功能模块
空间数据
•
……
• • • • • • • • • •
数据格式转换 空间数据格式转换 非空间数据格式转 换 数据预处理 数据抽稀 字段计算 空间选择 GeoDatabase 属性选择 。。。 元数据处理 元数据填写 元数据标准转换 。。
属性数据
行政区 用地性质 用地面积 …
数据管理
• 来自 management.py • 完全实现 Data Manager Tools
创建SDE连接文件
创建ArcGIS Server连接文件
示例:Python字段计算器
将存储在字段值中类似379.826的数据处理成K379+826
交通行业通常需要将道路 的里程数据存储成 K389+34的形式。
第一步:!桩号! .replace(".","+") 第二步:“K“+ !桩号!
示例:python窗口批量数据删除
批量删除栅格:
rasters=arcpy.ListRasters()
for raster in rasters: arcpy.Delete_management(raster)
批量删除表: tables = arcpy.ListTables()
for table in tables: arcpy.Delete_management(table)
重要GP工具 arcpy.mp 替代 arcpy.mapping
可继续在ArcGIS Pro 中使用脚本工具和 Python 工具箱
Python in Server
ArcGIS Server 命令行实用程序
• 1、ArcGIS Server 命令行实用程序 ― 位于ArcGIS for Server安装目录tools/admin目录下 ― 提供一套管理ArcGIS Server的脚本命令行工具
批量删除要素类: import arcpy from arcpy import env env.workspace=r'C:\Users\yanrui\Documents\ArcGIS\Default.gdb' fcs = arcpy.ListFeatureClasses() for fc in fcs: arcpy.Delete_management(fc)
ArcGIS Server 命令行实用程序
启动和停止服务
从集群添加和移除计算机 从服务定义 (.sd) 文件发布服务 备份或还原站点配置 定义新地图缓存 构建和删除地图缓存
在松散和紧凑格式之间转换地图缓存
使用 ArcGIS REST API 编写Python脚本
• 使用Python调用ArcGIS Admin API修改ArcGIS Server参数
TIOBE开发语言琅琊榜
Python的优点
• • • • • •
简单 易学 免费、开源 高层 可移植性 解释性
• • • • • •
面向对象 可扩展性 可嵌入性 丰富的库 海量资源 ……
跨平台语言:支持Windows/Unix/Linux/Macintosh
Python的站点包
ArcPy
eyed3
示例:上传FileDGB数据到AGO
• 上传FileDGB数据到AGO
Python in Web
ArcGIS Python API(beta)
• ArcGIS Python API 是一个全新的API,可以执行GIS分析和 可视化、空间数据管理、GIS平台管理。
原生,强大,简单 交互式开发 可分享、更新和重新运行的分析记录
使用 ArcGIS REST API管理ArcGIS Server
步骤1运行脚本时需要有管理员权限,必须提供一个具有管理员权限的用户名和密码:
步骤2在脚本中获取和使用令牌
步骤3配置参数,构筑请求
示例:Python脚本实现服务发布
Python in Online/Portal
Python使用地理平台中的资源
示例:更改mxd文档数据源
ArcPy地理分析功能
• Arcpy.sa • 用于使用Spatial Analyst 工具的Python模块。 • Arcpy.na • 用于使用 ArcGIS Network Analyst 扩展模块提供的网络分析功能的 Python 模块。
• Arcpy.time • 包含在 Python
Arcpy
Web GIS
Portal
ArcRest/PortalPy
Server
在线内容与服务
Python in Desktop/Pro
ArcPy
• Arcpy——为用户提供了使用 Python 语言操作所有地理处 理工具(包括扩展模块)的入口,并提供了多种有用的函 数和类,以用于处理和询问 GIS 数据。使用 Python 和 ArcPy ,可以开发出大量的用于处理地理数据的实用程序 。 • 代码库: • C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy
jupyter matplotlib
pyreadli ne pip
jinja2
flask
Web.py numpy GWPY pandas
Python的缺点
强制缩进
慢
Python的版本
-跨平台语言,支持Windows/Unix/Linux/Macintosh -下载路径:http://www.python.org -安装
Python 2.x和3.x的区别
Python自己版本之间的比较,满分5颗星
2.x
运行效率
3.x
说明
3.0比2.x的整体运行效率低30%,3.1慢15%但是 3.x在字符串和整形运算上效率较高 3.X默认支持中文编码,而且可以使用中文变量名, 不用任何额外声明 3.x增加了部分关键字 3.X把print语句换成了print函数 3.X增加了部分功能包,但是也删除了一些2.x的 功能包,总体来说差不多 3.X 规则更加严格 3.X去除了long类型,现在只有一种整型int 3.x引入抽象基类,容器模块中类型更多 3.X的成熟度还比较低,guido认为3.x可优化的余 地还很大 3.X的第三方包远远小于2.x,特别是不同平台上 面。
示例:Python脚本实现数据转换
ArcPy制图可视化
• • • • • • • 使用ArcPy.Mapping模块 与MapDocument、Layer及其内的数据进行交互 更改图层datasource 获得mxd相关信息:数据源,无效图层,空间参考 更改symbology、label显示、图层透明度等 自动化地图集生产 …
• Python调用ArcGIS Portal/online REST api来调用资源; • 推荐: • ArcREST——python包(REST API for AGS,AGOL,webmap json)
ArcGIS for Server
要素服务查询、增加、删除和修改; 上传附件; 管理用户; 服务发布
webmap
item
ArcGIS Portal/Online
管理Porta\AGS\AGOL站点; 管理内容; 管理用户
ArcREST下载地址:https://github.com/Esri/ArcREST
user
ArcREST站点包安装
• 1、安装requirements.txt——pip install –r requirements.txt • 2、运行setup.py ——python setup.py install
ArcGIS中不可不知的Python使用技术
易智瑞(中国)信息技术有限公司沈阳分公司 刘君懿
Python的历史
Python是自由软件的丰硕成果之一
创始人 Guido van Rossum 时间地点 :1989年圣诞节期间在阿姆斯特丹创造 名字来源 :大蟒蛇飞行马戏团的爱好者 渊源:从ABC发展而来 主要受Modula-3的影响 结合了Unix shell和C的习惯
arcpy.ga
arcpy.time
ArcGIS中Python的用法
1.字段计算器 2.制作gp工具
ArcGIS中Python的用法
4.Python Add-in
数据管理
• 管理地理数据库(personal/file/sde GDB)
数据创建 数据库连接 数据备份 • • 数据过滤 • 字段计算
ArcPy
数据的编辑会话 表、要素类与 Numpy格式互 转 版本、属性域和 子类工作流
操作.mxd和.lyr 扩展了数据驱动 页面功能,自动 导出、打印地图 可发布为服务在 Web端使用 执行空间分析 、空间运算
可访问Network Analyst Toolbox的所有 工具(增删图层 、获取属性) 结合 Arcpy.Describe 使用
ArcPy站点 包 Python 2.6
Python 2.7 第三方包
自动化制图 数据访问 空间分析 ……
Python 3.4
ArcGIS Python API(beta)
ArcGIS 9.0/9.1
ArcGIS 9.2
ArcGIS 9.3
ArcGIS 10.0
ArcGIS 10.4
ArcPro 1.2
• 下载地址:http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
• • • • • • • • 按钮和工具 组合框 菜单和右键菜单 Tool palettes 可停靠窗体 Application extensions Editor extensions Editor Construction Tools
中文编码 关键字 Print 功能
操作符规则 数据类型 面向对象 成熟度 第三方包数 量
ArcGIS Python API的发展历程
基于 dispatch geoprocesso r Python 2.1
arcgisscripti ng Python 2.4
arcgisscripti ng Python 2.5
WingIDE
Komodo VIM+插件 emacs+插件 eclipse+pydev插件 VS +VisualPython PyCharm
有
无 有 有 有 无 有
有
有 无 无 有 有 有
类VC
类VC 无 无 类VC 类VC 有
手动
手动 无 无 自动 无 自动
共享
共享 开源 开源 开源 共享 开源
中文要设置 ★★★★