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

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

在过去,GIS行业中采用多种编程语言。Esri 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笔记本(它允许您通过浏览器执行所有这些操作)之后,我问自己这些是否是用于编写脚本和应用程序的新IDE。Jupyter笔记本提供了超越IDE的强大功能,主要是因为它们将代码与图形以及ESRI的python api、二维和三维地图(如图)集成在一起。它们非常适合组织和测试小代码块,并且可以立即返回结果,与编写代码的页面完全相同。对于只返回代码结果的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)的站点包具有如此独特的命令和工具,而用于arcgis的新python api的结构和读取方式更像纯python,从而使刚接触到gis的python开发人员更容易使用和学习它。这可能有助于ESRI吸引更多非GIS开发人员使用其平台和工具。

5、GIS已经接受了Anaconda

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

6、GIS已经包含了SciPy库

ESRI现在在每次安装arcmap和pro时都提供scipy库,这样您就不必自己安装软件包了。尽管这一库的各个包都面向科研的,但地理信息系统分析师和制图师可以利用它们,例如通过包括Matplotlib库中的简单绘图。如果你同时使用panda和numpy,你会得到一个与R语言相似的东西。同样,Jupyter笔记本是编写所有代码、注释、结果和图表的理想环境。

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

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

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

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

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

9、Python支持Web GIS

虽然桌面地理信息系统不会很快消失,但网络地理信息系统是未来的潮流。python是使用WebGIS创建工作流的一个很好的工具,这也是开始学习它的另一个原因。您不必依赖桌面应用程序,而是可以在此类应用程序之外复制其大部分功能,例如,通过使用Jupyter笔记本,使用Web API获取所需的功能、数据和工具,创建自己的工作流并与其他人共享这些功能、数据和工具。python可以用作将所有这些功能联系在一起的语言,而且可能性是无穷的。

更多内容关注微信公众号:GIS派
为什么Python是Web GIS的未来?

分类:

技术点:

相关文章: