您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > ArcGIS中不可不知的Python使用技术
ArcGIS中不可不知的Python使用技术易智瑞(中国)信息技术有限公司沈阳分公司刘君懿Python的历史Python是自由软件的丰硕成果之一创始人GuidovanRossum时间地点:1989年圣诞节期间在阿姆斯特丹创造名字来源:大蟒蛇飞行马戏团的爱好者渊源:从ABC发展而来主要受Modula-3的影响结合了Unixshell和C的习惯TIOBE开发语言琅琊榜Python的优点•简单•易学•免费、开源•高层•可移植性•解释性•面向对象•可扩展性•可嵌入性•丰富的库•海量资源•……跨平台语言:支持Windows/Unix/Linux/MacintoshPython的站点包eyed3jupyterpipflaskmatplotlibpandasnumpyjinja2Web.pypyreadlineArcPyGWPY强制缩进慢Python的缺点Python的版本-跨平台语言,支持Windows/Unix/Linux/Macintosh-下载路径:自己版本之间的比较,满分5颗星2.x3.x说明运行效率3.0比2.x的整体运行效率低30%,3.1慢15%但是3.x在字符串和整形运算上效率较高中文编码3.X默认支持中文编码,而且可以使用中文变量名,不用任何额外声明关键字3.x增加了部分关键字Print3.X把print语句换成了print函数功能3.X增加了部分功能包,但是也删除了一些2.x的功能包,总体来说差不多操作符规则3.X规则更加严格数据类型3.X去除了long类型,现在只有一种整型int面向对象3.x引入抽象基类,容器模块中类型更多成熟度3.X的成熟度还比较低,guido认为3.x可优化的余地还很大第三方包数量3.X的第三方包远远小于2.x,特别是不同平台上面。ArcGISPythonAPI的发展历程ArcGIS9.0/9.1ArcGIS9.2ArcGIS9.3ArcGIS10.4ArcPro1.2arcgisscriptingPython2.4基于dispatchgeoprocessorPython2.1Python2.7第三方包自动化制图数据访问空间分析……ArcPy站点包Python2.6Python3.4arcgisscriptingPython2.5ArcGIS10.0ArcGISPythonAPI(beta)PythonAPI常用IDE比较IDEname自动补全智能感知调试语法检查开源特别注意推荐度IDLE手动有(很差)用库无开源★★PythonWin手动有用库无开源WinOnl★★★SPE无有WPDB存盘时开源★★★★Ulipad有有WPDB自动开源★★★★★Eric有有类VC自动开源★★★★★BOA手动手动类VC无开源中文支持差★★★WingIDE有有类VC手动共享中文要设置★★★★Komodo无有类VC手动共享相当耗资源★★★★VIM+插件有无无无开源★★★emacs+插件有无无无开源★★★eclipse+pydev插件有有类VC自动开源比较耗资源★★★★★VS+VisualPython无有类VC无共享★★PyCharm有有有自动开源★★★★★★Python自带的IDE•集成开发环境(IntegrationDevelopmentEnvironment)PyCharmPython功能包与ArcGIS平台对应关系桌面Web移动设备WebGISServer在线内容与服务PortalArcRest/PortalPyArcpyArcGISPythonAPIPythoninDesktop/ProArcPy•Arcpy——为用户提供了使用Python语言操作所有地理处理工具(包括扩展模块)的入口,并提供了多种有用的函数和类,以用于处理和询问GIS数据。使用Python和ArcPy,可以开发出大量的用于处理地理数据的实用程序。•代码库:•C:\ProgramFiles(x86)\ArcGIS\Desktop10.4\arcpy\arcpyArcPy可访问NetworkAnalystToolbox的所有工具(增删图层、获取属性)结合Arcpy.Describe使用执行空间分析、空间运算操作.mxd和.lyr扩展了数据驱动页面功能,自动导出、打印地图可发布为服务在Web端使用数据的编辑会话表、要素类与Numpy格式互转版本、属性域和子类工作流arcpy.gaarcpy.timeArcGIS中Python的用法1.字段计算器2.制作gp工具ArcGIS中Python的用法4.PythonAdd-in数据管理•管理地理数据库(personal/file/sdeGDB)数据创建数据库连接数据备份数据过滤字段计算•……空间数据属性数据行政区用地性质用地面积…GeoDatabase•数据格式转换•空间数据格式转换•非空间数据格式转换•数据预处理•数据抽稀•字段计算•空间选择•属性选择•。。。•元数据处理•元数据填写•元数据标准转换•。。数据管理•来自management.py•完全实现DataManagerTools创建SDE连接文件创建ArcGISServer连接文件示例:Python字段计算器将存储在字段值中类似379.826的数据处理成K379+826第一步:!桩号!.replace(.,+)第二步:“K“+!桩号!交通行业通常需要将道路的里程数据存储成K389+34的形式。importarcpyfromarcpyimportenvenv.workspace=r'C:\Users\yanrui\Documents\ArcGIS\Default.gdb'fcs=arcpy.ListFeatureClasses()forfcinfcs:arcpy.Delete_management(fc)示例:python窗口批量数据删除批量删除要素类:rasters=arcpy.ListRasters()forrasterinrasters:arcpy.Delete_management(raster)批量删除栅格:批量删除表:tables=arcpy.ListTables()fortableintables:arcpy.Delete_management(table)示例:Python脚本实现数据转换ArcPy制图可视化•使用ArcPy.Mapping模块•与MapDocument、Layer及其内的数据进行交互•更改图层datasource•获得mxd相关信息:数据源,无效图层,空间参考•更改symbology、label显示、图层透明度等•自动化地图集生产•…示例:更改mxd文档数据源ArcPy地理分析功能•Arcpy.sa•用于使用SpatialAnalyst工具的Python模块。•Arcpy.na•用于使用ArcGISNetworkAnalyst扩展模块提供的网络分析功能的Python模块。•Arcpy.time•包含在Python中处理时间增量和时区时会用到的类、方法以及属性。基础方法自动化制图模块地统计分析模块空间分析模块ArcPy桌面Add-In插件•PythonAdd-In开发,开发工具addin_assistant•向导方式创建ArcPyAdd-In工程•支持创建基于ArcMap、ArcCatalog、ArcGlobe、ArcScene插件•支持创建扩展模块、菜单、工具条•生成各种组件类及方法•下载地址:=5f3aefe77f6b4f61ad3e4c62f30bff3b•按钮和工具•组合框•菜单和右键菜单•Toolpalettes•可停靠窗体•Applicationextensions•Editorextensions•EditorConstructionTools示例:桌面add-in插件使用下载PythonAdd-InWizard:=5f3aefe77f6b4f61ad3e4c62f30bff3bPython版本迁移ArcGISPro使用Python3ArcPy迁移重要GP工具arcpy.mp替代arcpy.mapping可继续在ArcGISPro中使用脚本工具和Python工具箱PythoninServerArcGISServer命令行实用程序•1、ArcGISServer命令行实用程序―位于ArcGISforServer安装目录tools/admin目录下―提供一套管理ArcGISServer的脚本命令行工具ArcGISServer命令行实用程序启动和停止服务从集群添加和移除计算机从服务定义(.sd)文件发布服务备份或还原站点配置定义新地图缓存构建和删除地图缓存在松散和紧凑格式之间转换地图缓存使用ArcGISRESTAPI编写Python脚本•使用Python调用ArcGISAdminAPI修改ArcGISServer参数使用ArcGISRESTAPI管理ArcGISServer步骤1运行脚本时需要有管理员权限,必须提供一个具有管理员权限的用户名和密码:步骤3配置参数,构筑请求步骤2在脚本中获取和使用令牌示例:Python脚本实现服务发布PythoninOnline/PortalPython使用地理平台中的资源•Python调用ArcGISPortal/onlineRESTapi来调用资源;•推荐:•ArcREST——python包(RESTAPIforAGS,AGOL,webmapjson)ArcREST下载地址:要素服务查询、增加、删除和修改;上传附件;管理用户;服务发布ArcGISforServer管理Porta\AGS\AGOL站点;管理内容;管理用户ArcGISPortal/OnlineitemuserwebmapArcREST站点包安装•1、安装requirements.txt——pipinstall–rrequirements.txt•2、运行setup.py——pythonsetup.pyinstall示例:上传FileDGB数据到AGO•上传FileDGB数据到AGOPythoninWebArcGISPythonAPI(beta)•ArcGISPythonAPI是一个全新的API,可以执行GIS分析和可视化、空间数据管理、GIS平台管理。原生,强大,简单交互式开发可分享、更新和重新运行的分析记录功能模块•gis模块:提供管理arcgisonline或者portalforarcgis的功能,是使用GIS平台的入口。•tools模块:使用arcgisonline或portal提供的各种分析功能•Lyr模块:使用GIS平台提供的图层服务。•viz模块:提供用来进行数据可视化和分析功能的组件。ArcGISPythonAPI安装下载安装Anaconda(python3,需要注册并登录用户)安装ArcGIS包–condainstall-cconda-forgeipywidgets–condainstall-cesriarcgis=0.1启用map控件–python-marcgis.install启动notebook–jupyternotebook测试安装–fromarcgis.gisimport*–gis=GIS()–gis.map()示例:ArcGISPythonAPI搜索与展现总结重新认识ArcGISPython•1、ArcGISPython能做什么?•2、ArcGISPython的适用场景?•3、哪些人需要使用ArcGISPython?ArcGISPython官方资源•EsriResourceCenter•http://
本文标题:ArcGIS中不可不知的Python使用技术
链接地址:https://www.777doc.com/doc-6380124 .html