Python与开源GIS,基于Python的GIS开发方法

  Python与开源GIS,基于Python的GIS开发方法

  GIS将Python作为世界上相对简单的脚本语言引入,但随着时间的推移,它变得无处不在,为许多不同的用户提供解决方案。数据管理、映射、分析、系统管理,你可以这样命名:Python的可能性是无穷的。请继续阅读,了解如何将它用于您的优势,并提高您作为地理空间专业人员的职业生涯。

  1、GIS中存在多种编程语言

  在过去,GIS行业使用了许多编程语言。devsummit上有人很准确地总结了这一点,说Esri在一个工作流中使用了多种编程语言。这是什么意思?这意味着您可以使用一种或多种编程语言来完成您的工作(或者扩展GUI,如果您喜欢的话)。当然,你也可以不这么做。最近收到一封邮件,问我在GIS中使用Python的可能性,是否真的有必要学习。答案是否定的:Python不是GIS的替代品,而是一种扩展。和r JavaScript。但是,许多地理空间任务要求您构建应用程序和/或掌握多种编程语言。当然,了解一些简单的脚本或者具备应用开发技能也很重要。

  2、Python现在超越了脚本/编程二分法

  我曾经写过一篇关于Python的文章叫《Python编程:初学者指南》。有人问我,使用预先配置好的应用于GIS数据的开发工具,你是程序员吗?老实说,我不这么认为。在arcpy中使用缓冲工具并不能让你成为一名程序员,但是如果你在一个更大的应用程序中使用这个工具,那么就相当于写了一个应用程序而不是一个脚本。创建应用程序是编程的全部内容。然而,对于作为一种语言的Python来说,脚本和编程之间的区别可能并不总是非常清楚。

  但有趣的是,这半年来,我开始使用超级桌面GIS的python工具。特别是,ESRI的python api和jupyter book的结合已经成为一个很好的新工具。它不仅仅是一系列预配置的GIS工具,它还引入了ESRI的Web GIS概念,包括ARCGIS Online或Portal for ArcGIS。这使我想到了下一点:

  3、Python非常适合系统操作,数据管理,分析和可视化

  我的意思是,你可以使用Python,就像使用Window的文件浏览器来管理数据、加载数据、处理数据和可视化数据一样。在使用了Jupyter notebook(可以让你通过浏览器执行所有这些操作)之后,我问自己,这些是不是写脚本和应用的新ide?Jupyter笔记本提供了ide之外的强大功能,主要是因为它们将代码与图形和ESRI的python api、2D和3D地图(如图)集成在一起。它们非常适合组织和测试小代码块,并且可以立即返回结果,结果和写代码的页面一模一样。这对于只返回代码结果的IDE是不可能的,除非IDE重新启动,否则无法删除。(然而,我不认为jupyter笔记本会取代python-ide,因为它们不允许你创建复杂的应用程序。)

  4、GIS已经采用了Python 3

  Arcpy for Arcmap和Arcpy for Arcgis Pro的主要区别在于后台使用的python版本。大多数关于这两种语言之间差异的讨论都忽略了一个事实,即python 3实际上是对该语言某些部分的重新设计,这就是为什么它有不同的版本号,并被认为是一次重大升级。这也解释了为什么作为arcpy for arcmap(使用python 2.7)的站点包具有如此独特的命令和工具,而新的python api for arcgis的结构和读取模式更像纯python,从而更容易让不熟悉gis的python开发人员使用和学习它。这可能有助于ESRI吸引更多非GIS开发者使用其平台和工具。

  5、GIS已经接受了Anaconda

  但是现实是,使用Python进行版本控制和包管理是一项具有挑战性的任务。有了这样的应用,你的生活更轻松。——这是蟒蛇干的。还包括上面提到的Jupyter笔记本应用程序。一开始我怀疑它的实用性,但是现在我每次用python 3的时候都更喜欢用Anaconda而不是virtualenv。如果安装了arcmap附带的python 2.7,也可以很好地工作(不要将anaconda添加到python path中,因为不要在同一台机器上混合两种环境)。ESRI还意识到,通过Anaconda提供arcpy比直接使用arcmap或pro更方便。这将在即将发布的软件版本中得到解决。

  6、GIS已经包含了SciPy库

  现在,每次安装arcmap和pro时,ESRI都会提供scipy库,这样您就不必自己安装软件包了。虽然这个库的每个包都是用于科学研究的,但是GIS分析人员和制图人员可以使用它们,例如,通过在Matplotlib库中包含简单的绘图。如果同时使用panda和numpy,会得到类似R语言的东西。同样,Jupyter notebook是一个理想的环境,可以用来编写所有代码、注释、结果和图表。

  从营销的角度来看,有趣的是ESRI采用了“哪里的科学”的口号来强调其科学根源。与Continuum Analytics(Anaconda背后的公司)的合作、与Arcgis的Scipy Stack的发布以及为R用户创建的Arcgis Bridge是通过技术将不同社区聚集在一起的最新举措。

  7、GeoPython是地理空间Python开发人员的新活动

  GEO是一个面向地理空间社区的欧洲GeoPython会议。在这里,来自开源社区和专有供应商的新项目被共享。如果你没有参加活动,你可能会对Github库(https://github.com/geopython)感兴趣,它显示了今年5月初最新版本中显示的所有项目。

  8、开源扩展专有GIS,反之亦然

  这主要是对前两点的重复,但还有更多:有许多开源工具可以扩展商业GIS。很多都是通过pypi python包索引分发的,虽然github比较慢。当搜索“gis”、“geo”或“esri”时,你会惊讶于搜索结果的数量。一个名为arcsrest的开源软件包提供了一组python工具来帮助使用ArcGIS Server (AGS)、arcgis online(agol)和arcgis webmap json的ArcGIS REST API。此外,如果您使用anaconda作为包管理器,那么您可以使用anaconda Cloud来搜索包,或者浏览安装附带的1000多个默认包。

  9、Python支持Web GIS

  虽然桌面GIS不会很快消失,但网络GIS是未来的趋势。Python是使用WebGIS创建工作流的好工具,这也是开始学习它的另一个原因。你不必依赖桌面应用,但是你可以在这类应用之外复制它们的大部分功能,比如使用Jupyter notebook,使用Web API获取所需的功能、数据和工具,创建自己的工作流,并将这些功能、数据和工具分享给他人。Python可以作为一种语言,把所有这些功能联系在一起,可能性是无穷无尽的。

  更多关注微信微信官方账号:GIS派

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: