cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:890回复:0

为什么Python是Web GIS的未来?

楼主#
更多 发布于:2020-04-15 11:51
GIS领域将Python作为一种相对简单的脚本语言,但随着时间的推移,它已经变得无处不在,为许多不同的用户提供了解决方案。数据管理、制图、分析、系统运维,你可以认为:Python的可能性是无穷无尽的。


本文翻译了Eric的在geoawesomeness上的一篇文章将为大家介绍,了解如何利用Python的这一优势,提高你作为专业的地理空间人士的职业能力。


在GIS中编程语言得到了越来越广泛的使用


在过去的半年多里,GIS行业的编程语言得到了广泛的应用。Esri的开发者大会中演示者完美地阐释了这一点,他说Esri已经在一个工作流程中使用了多种编程语言。这是什么意思?这意味着您可以使用一种或多种编程语言来完成工作(如果您喜欢GUI,则可以扩展它)。当然,你并不一定要这么做。最近我收到一封邮件,有人问我使用Python做GIS的可能性,是否真的有必要学习。答案是否定的,Python不是一个GIS的替代品,而是一个扩展。R和JavaScript也一样。然而,许多地理空间分析工作要求你构建应用程序或掌握多种编程语言。那么了解一些简单的脚本或应用程序开发技能当然不会有什么坏处。


Python现在不再有是脚本还是编程语言的分歧了


我在博客(Eric的博客)上的第一篇关于Python的文章叫做“Python编程:初学者指南”。有人问我是否使用预配置的工具应用于GIS数据,就可以称之为一个程序员。平心而论,我不这么认为。使用Arcpy的缓冲区工具并不代表你是一个程序员,但是如果你在一个大的应用中的脚本中使用这个工具,这等于在编写一个程序而不是脚本。而创建应用程序正是编程所做的事情。所以,关于Python语言,脚本和编程的区别可能并不总是很清楚。



有趣的是在过去的半年多的时间,我使用我使用python工具的频率已经超过桌面GIS了,特别是可以在Jupyter NoteBooks上运行的ArcGIS API已经成为了一个新的特别棒的工具,它不仅仅是一系列预先配置的GIS工具而是利用ArcGIS online或者Portal for ArcGIS非常好的阐释了Esri的webGIS的理念。这将带给我们下一个观点:


Python可以非常好的支持系统运维,数据的管理、分析、可视化


我的意思是,现在你可以使用python就像使用windows的文件浏览工具一样,管理它、运行它以及按照你想要的样子展示它。在使用了Jupyter Notebooks 之后这些所有这些工作都可以在一个浏览器界面中完成。我也在问我自己,这是否是还有新的IDE(集成开发环境)用来编写脚本和应用。Jupyter Notebook提供了非常棒的能力,远胜过那些IDE,主要是因为它可以让代码与图形进行交互,比如表格,甚至在使用Esri的Python API时还可以添加二三维的地图。在组织和测试代码时可以在一个小的输入框中输入代码,在同一个界面结果立即在下方可见,这是非常棒的功能。这种功能在IDE中是无法实现的,在IDE中,结果在shell中显示,而且无法删除,除非你重启这个IDE(这里必须说明一下,我不认为Jupyter Notbook会替代Python IDE,因为它没有办法支撑你开发复杂的应用)





GIS已经全面拥抱Python3了


arcpy for ArcMap与arcpy for ArcGIS Pro一个主要的区别是它们使用的Python版本。大多数关于两者之间差异的讨论忽略了一个事实,即Python 3实际上是对语言某些部分的重新设计,这就是为什么它有一个不同的版本号,并且被认为是一个主要的升级。这就解释了为什么对于ArcMap(使用Python 2.7)的站点包有如此特殊的命令和工具,而ArcGIS的新Python API是结构化的,并且更像纯Python,使Python开发人员更容易访问到GIS来使用和学习它。这可能会帮助Esri吸引更多的非gis开发人员使用他们的平台和工具。


GIS拥抱Anaconda
      


让我们面对现实吧,用Python进行版本控制和包管理是一项挑战。有一个这样的应用程序可以让你的生活更轻松——这就是Anaconda所做的。它还提供了你之前提到的Jupyter Notbook应用。虽然起初我对它的有用性感到怀疑,但我现在更喜欢在Anaconda的虚拟环境中使用Python 3。如果你安装了ArcMap自带的Python2.7,你也可以很好的运行它(诀窍是不要把Anaconda添加到你的路径上,因为它不会在同一台机器上混合两个环境)。Esri同样意识到,通过Anaconda提供arcpy,而不是直接使用ArcMap或Pro,将会更加方便。这将在即将发布的软件版本中得到处理。


GIS拥抱Scipy stack
 
Esri现在在安装ArcMap和Pro的时候都将这个“SciPy”堆栈装上,这样你就不必自己安装软件包了。虽然这个堆栈中的的每个包都是面向科学社区的,但是GIS分析人员和制图师也可以通过使用它们来获得更多便利的功能,比如从matplotlib库中包含简单的绘图。如果你把Pandas和Numpy放在一起,你会有一种类似于使用R语言感觉。我再强调一遍,Jupyter Notebooks是一个完美的环境,可以编写所有的代码、评论、结果和图表。在市场宣传上,有趣的是,Esri采用了“The Science of where”的品牌口号来突出其科学的根源。与Continuum Analytics公司(Anaconda背后的公司)的合作,将Scipy堆栈与ArcGIS的结合,以及为R用户搭建其使用的ArcGIS桥梁,最近这些积极的举措通过技术将不同社区聚集在一起。


对于地理空间Python开发人员来说,GeoPython是一个令人兴奋的新事件


GeoPython是一个面向地理空间社区的欧洲Python会议。在这里,来自开源社区的新项目以及专有的供应商都是共享的。如果您没有访问该事件,您可能会对Github的开源项目库感兴趣,该开源项目库显示了在今年5月早些时候发布的所有项目。


开源扩展了专业的GIS,反之亦然


这虽然是对上面两点的重复,但是我更想指出的是:有很多开源工具可以扩展商业GIS。


其中许多都是通过PyPI Python包索引分发的,尽管Github正在缓慢地进行。但是当你搜索“GIS”、“Geo”或“esri”时,你会惊讶于如此多的搜索结果。一个名为ArcREST的开源包提供了一套python工具,有助于使用ArcGIS服务器(AGS)、ArcGIS Online(AGOL)和ArcGIS WebMap JSON。


此外,如果你使用Anaconda作为一个包管理器,你可以通过使用Anaconda的云来搜索包,或者浏览其安装的1000多个默认包。


Python 同样适用于WebGIS


虽然桌面GIS不会很快消失,但WebGIS是未来的趋势。Python是使用Web GIS创建工作流的一个很好的工具,这也是我开始学习它的另一个原因。与依赖桌面应用程序不同,您可以在这样的应用程序之外使用它的大部分功能,例如在Jupyter Notebook中,使用web api来获取所需的功能、数据和工具,创建自己的工作流并与他人共享这些功能。Python可以作为将所有这些联系在一起的语言,并且可能性是无限的。

喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
游客

返回顶部