点击图片上方蓝色字体“慧天地”即可订阅

英文原文来源:www.gislounge.com

英文原文链接:https://www.gislounge.com/python-and-geospatial-analysis/

中文编译整理:慧天地国际站一鸣

转载需经【慧天地】许可。

毫无疑问,Python已经成为地理空间分析员和研究人员在GIS和更广泛的空间分析工作中主要使用的计算机语言。对于那些有兴趣了解更多信息的人来说,可能会思考一些问题,比如,为什么会出现这种情况?以及最近的趋势是什么?两个播客有助于解决这个问题,其中一个是关于地理空间和Python的使用(播客收听地址为:https://mapscaping.com/blogs/the-mapscaping-podcast/geospatial-python),一个关于Jupyter Notebooks(播客收听地址为:https://mapscaping.com/blogs/the-mapscaping-podcast/introduction-to-jupyter-notebooks)。更广泛的趋势和其他作品也有助于说明这一点。

Anita Graser在她的播客中重点介绍了GIS、地理空间分析和python在过去十多年中共同经历的巨大发展。最初,计算机语言和地理空间平台的结合起始于一些主要的GIS平台,例如ArcGIS和QGIS,它们将Python用作主要的脚本编制、工具制作和分析语言[1]。PostGIS的出现及其对地理空间对象相关数据处理的关注,让其被同时部署在许多GIS环境中,如QGIS、ArcGIS和OpenStreetMap,且都有所帮助。使用较少的平台如GRASS也是如此。对于用户来说,采用Python的主要原因可能是Python易于学习,擅长数据操作,并且有许多有用的库,这些库适合或可以很容易地应用于地理空间分析。Graser强调了Pandas和她自己在GeoPandas上的工作[2]。

Pandas在数据操作、分析和数据处理方面比其他一些语言简单得多,而GeoPandas则特别专注于地理空间格式,它通过利用Pandas的优势功能来处理常见空间对象,并增加交互式绘图和性能方面的功能。事实上,Python中有许多功能强大的工具可以帮助用户利用现有的代码构建更多的功能。像QGIS这样的平台允许用户输入自己用Python构建的扩展功能,进一步鼓励GIS专家开发和使用Python。这种增长表明,随着GIS用户和地理空间分析人员不断提高他们的技能,Python可能是最值得关注的语言。与其他高级语言相比,Python更易于使用,编程风格灵活,可以在不同的范例中应用,其中包括命令式、函数式、过程式和面向对象的方法[3]。流行的平台还通过添加模型构建器(model builder)来帮助人们编写函数,模型构建器可以帮助用户进行基本编程和组织,将用户创建的数据和功能链接起来。

图1:在QGIS中使用GeoPandas进行轨迹数据处理。

(图片来源:Anita Graser)

当然,Python用户也发现了一些问题和障碍。这其中包括常见的兼容性问题,即安装的库可能无法很好地进行协同工作,或者使用不同版本时可能会导致代码中出现异常。详细的说明文件和安装文件可以帮助人们解决这个问题,但不是所有库都存在这个问题。有一些工具可以简化库的安装,比如Conda。Conda的图形界面是Anaconda。用户还可以访问Python开发环境,如PyCharm和Spyder等。Python还可以通过创建直接或可比较地调用其他语言的库来吸收其他语言的优势。在性能方面,C语言一直是最好用的语言之一,Cython为Python提供了类似C/ C++的性能增强,Cython通常用于帮助解决数据分析的速度和扩展等问题。虽然Scala和Java等其他语言也值得学习(例如在地理空间数据的大规模数据操作方面),然而得益于并行计算库和更多的工具利用图形处理器(GPU)架构这些优势,人们能够看到Python被越来越多地应用到大数据问题上。

关于基于代码的研究,其中的一种批评声音是认为其难以复制结果和记录。Jupyter工具系列(包括Jupyter Notebooks)是一组可以应用于Python但也可以应用于许多其他计算机语言的工具,Jupyter Notebooks则是Julia Wagemann在她的播客集中重点介绍的一个工具。Jupyter工具有助于执行、记录和显示代码的工作方式。Jupyter Notebooks可能是这一系列工具中最著名的。此工具允许编写单元或代码块,直接将数据和代码集成到小片段中,并在Notebooks中显示输出。这允许用户查看给定的代码是如何工作的,充当文档的一种类型或辅助性文档,并有助于帮助人们了解给定代码正在做什么。另一个好处是Notebooks可以让用户在不同的计算机语言之间切换。例如,许多地理空间项目将Python应用于地理空间功能,但随后又将另一种流行的分析语言R用于可视化显示或统计分析。拥有一个Jupyter Notebooks可以显示每种语言的代码的不同部分,同时也允许显示链接,以便在两种语言之间开发可以复制的工作流。根据每个Notebooks使用的不同内核,这是可能实现的。从地理空间相关工作的角度出发,Jupyter Notebooks使其更易于显示视觉输出并在团队之间进行复制,同时通过集成的数据链接令数据的访问变得更加容易。以前,用户必须下载很大的数据文件,这使复制变得困难且麻烦。对于科学家来说,这是非常重要的,因为这意味着相关的研究工作可以更容易地从现有的工作中进行验证和构建。人们可以把Jupyter Notebooks看作是在一个环境中提供文档、调试和执行的工具,这对于用户学习编写代码也非常有用。例如,当人们看到Python在地理空间分析方面的崛起时,那些可能不擅长编码但想学习Python的人可以使用Jupyter Notebooks以简单易用的方式学习部分代码。JupyterHub可以帮助多个使用Jupyter Notebooks的用户进行协作。它有助于安装所需的库,并允许协作者查看对方正在开发什么,允许用户编辑和输入。Jupyter家族中的另一个工具是JupyterLab,它允许基于Web的界面进行协作,还支持不同的数据格式。在共享和访问Jupyter Notebooks时,可以链接到其他用于开发的Jupyter工具。Voilà工具是Jupyter工具系列的一部分,可以用来帮助JupyterLab开发web应用程序[4]。总的来说,现在学习用于空间分析的Python语言变得更加容易,这意味着Python将在未来一段时间内继续作为地理空间应用程序的主导语言。

图2:分割地图功能是ipyleaflet软件包的一部分,该软件包是基于一个Jupyter的交互式地图可视化系统。

(图片来源:JupyterBlog)

Python已经成为地理空间分析的主导语言,因为它正在被主要的GIS平台所采用。但是越来越多的用户也看到了它在数据分析方面的潜力,而且它相对容易理解的语法能够有助于增加用户数量。现在有许多库,人们可以通过组合不同的库来帮助用户创建复杂的应用程序,有时只需少量的编码。QGIS等流行工具支持更广泛的社区贡献用Python编写的插件,从而促进了人们对于Python的使用。像Jupyter Notebooks这样的工具也使得学习Python、完成给定项目和复制结果变得更加容易。许多工具从一开始就被开发为开源的,并且易于访问,这进一步鼓励了用户。对于地理空间分析人员来说,Python已经成为开发应用程序和强大分析中不可或缺的工具。

参考文献:

[1]For more on the adoption of Python in GIS and benefits,see:https://www.gislounge.com/use-python-gis/.

[2]For more on Pandas and GeoPandas, see:https://pandas.pydata.org/ andhttps://geopandas.org/respectively.

[3]For more on Python and geospatial analysis and GISintegration, see:  Toms, S., Rees, E. V.,& Crickard, P. (2018). Mastering Geospatial Analysis with Python. PacktPublishing Ltd.

[4]For more on the Jupyter family of tools, includingJupyter Notebooks, see:  Vanderplas, J.T. (2016). Python data science handbook: essential tools for working with data(First edition.). Sebastopol, CA: O’Reilly Media, Inc..

(点击图片即可查看详细信息)

内容转载、商务活动、投稿等合作请联系

微信号:huitiandi321

邮箱:geomaticshtd@163.com

欢迎关注慧天地同名新浪微博:

ID:慧天地_geomaticser

往期精彩推荐

国际资讯|Hexagon将在美国和欧洲更新300万平方公里的数据

国际资讯|Earth Archive项目与地球3D地图

国际资讯|3D at Depth推出了遥感和远程数据控制解决方案

《慧天地》敬告

《慧天地》公众号聚焦国内外时空信息科技前沿、行业发展动态、跨界融合趋势,探索企业核心竞争力,传播测绘地理信息文化,为测绘、地信、遥感等相关专业的同学提供日常学习、考研就业一站式服务,旨在打造政产学研用精准对接的平台。《慧天地》高度重视版权,对于原创、委托发布的稿件,会烦请作者、委托方亲自审核通过后才正式推发;对于来自网站、期刊、书籍、微博、微信公众号等媒介的稿件,会在作者栏或者文章开头显著标明出处,以表达对作者和推文引用平台版权的充分尊重和感谢;对于来源于网络作者不明的优质作品,转载时如出现侵权,请后台留言,我们会及时删除。感谢大家一直以来对《慧天地》的关注和支持!——《慧天地》运营团队

编辑:李斯奇 审核:安有硕 杜一鸣  祝基尧指导:万剑华教授

一直在构建工作空间_国际资讯Python与地理空间分析相关推荐

  1. Python地理空间分析指南(第2版)学习笔记01

    目录 前言 一.任务 二.实现与解析 1.引入库 2.构造数据模型 3.渲染地图元素 4.执行查询操作以及完成绘图 三.总结 前言 本书假定读者了解Pyhon.信息技术的基本知识,并且至少对地理空间分 ...

  2. python空间分析_读书笔记——《python地理空间分析指南》

    本文为<Python地理空间分析指南(第2版)>的读书摘录,顺便挖个坑,进一步对python的几个包做学习整理. 本笔记的用途:了解python地理空间处理的技术框架和实现途径. 第三章 ...

  3. 基于 Python 的地理空间绘图指南

      大部分情况下,地理绘图可使用 Arcgis 等工具实现.但正版的 Arcgis 并非所有人可以承受.本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码 ...

  4. 【教程】基于 Python 的地理空间绘图指南

    大部分情况下,地理绘图可使用 ArcGIS 等工具实现.但正版的 ArcGIS 并非所有人可以承受.本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码实现 ...

  5. 《Python地理空间分析指南(第2版)》——1.9 地理信息系统基本概念

    本节书摘来自异步社区<Python地理空间分析指南(第2版)>一书中的第1章,第1.9节,作者: [美]Joel Lawhead(莱哈德) 更多章节内容可以访问云栖社区"异步社区 ...

  6. 【笔记】《Python地理空间分析指南(第2版)》

    转载地址:https://blog.csdn.net/jianbinzheng/article/details/80215228 概述部分 地理空间数据 地理空间技术概览 Python地理空间分析工具 ...

  7. python地理空间分析指南pdf邓世超_Python地理空间分析指南(第2版)源代码.zip

    [实例简介] Python地理空间分析指南(第2版)的随书源代码,需要的朋友可以下载一下~~ [实例截图] [核心代码] Python地理空间分析指南(第2版)源代码 └── Python地理空间分析 ...

  8. Python 地理空间分析

    前文 我们将快速浏览 Python 的(空间)数据科学生态系统,并了解如何使用一些基本的开源 Python 包,例如: pandas / geopandas shapely pysal pyproj ...

  9. 《Python地理空间分析指南 第2版》学习笔记-5.1 距离测量

    第5章 Python与地理信息系统 本章主要学习Python处理矢量数据,包含以下内容: 距离测量 坐标转换 矢量数据重投影 Shapefile 文件编辑 海量数据过滤 专题地图创建 非GIS数据类型 ...

最新文章

  1. sklearn使用投票回归VotingRegressor算法构建多模型融合的投票回归模型、并自定义子回归器的权重(weights)、评估多模型融合的回归模型、评估R2、mse、rmse、mape
  2. C++矩阵处理工具——Eigen
  3. mysql主从库配置方法
  4. 【Maps】【E都市】
  5. 揭秘熊猫TV HEVC直播
  6. Jest DoneCallback 数据类型的理解
  7. via logo html,HTML5 Audio Description (via screenreader)
  8. C语言 | typedef
  9. VBA SQL查询-记录集转数组
  10. 代码块是什么?该如何使用?
  11. JAVASE1~5补充
  12. 局域网服务器共享文件夹设置,局域网服务器共享文件访问权限管理方法
  13. [渝粤教育] 重庆大学 房屋建筑学 参考 资料
  14. 如何让百度谷歌快速shopex网店系统内容
  15. OpenCL优化案例研究 (4)
  16. 网页页面缩小放大的快捷键
  17. 定期删除IIS日志文件
  18. 魔术命令python_魔术命令_利用Python进行数据分析_红黑联盟读书频道
  19. 四川大学软件学院 2022 年春季 IT 企业实训项目开发概述
  20. 【宏】【DEBUG宏】

热门文章

  1. TensorRT(6)-INT8 inference
  2. 语义分割 | segnet 制作自己的数据,如何训练,如何测试,如何评价
  3. Faster-RCNN训练时遇到的问题
  4. 7z(p7zip)压缩软件在Linux下的安装和使用
  5. Ruby Shanghai 2014年终聚会总结
  6. Android 颜色渲染(二) 颜色区域划分原理与实现思路
  7. 函数式编程学习之路(一)
  8. 修改Linux字体出现乱码
  9. Java 方法、 流(Stream)、文件(File)和IO 总结
  10. 全局变量名为 param1 var param1Value = webBrowser1.Document.InvokeScript(eval,new String[]{ param1}).To...