01|什么是地理计算
地理计算是一个年轻的术语,可以追溯到1996年,关于该主题的第一次会议早期的倡导者提出,地理计算与(当时) 常用的术语“定量地理学(quantitative geography)”的区别在于,它强调“创造性和实验性”应用以及新工具和方法的开发:“地理计算是关于使用各种不同类型的地理数据以及在‘科学’方法的整体背景下开发相关地理工具。”
地理计算与这些术语密切相关:地理信息科学(GIScience)、测绘学(Geomatics)、地理信息学(Geoinformatics)、空间信息科学(Spatial Information Science)、地理信息工程(Geoinformation Engineering)和地理数据科学(Geographic Data Science,GDS)。
每个术语都强调它们是GIS相关的“科学”(寓意可重复和可证伪) 研究方法,尽管它们的起源和主要应用领域不同。例如,地理信息工程强调“数据科学”技能和大数据,而地理信息学则倾向于关注数据结构。但其实这些术语的含义大同小异,我们使用地理计算这个术语来概括它们:它们都试图将地理数据用于应用科学研究。
不过,与最早使用“地理计算”这个术语的前辈(如 Stan Openshaw)不同,我们并没有尝试开创一个名为“地理计算”的大一统的学术领域。我们对该术语的定义是:以科学的计算方式处理地理数据,重点是代码、可重复性和模块化。
地理计算是一个新的术语,但也受到了传统观念的影响。它可以被视为地理学的一部分,地理学有2000多年的历史;它也可以被当作地理信息系统的扩展,该系统于20世纪60年代出现。
地理学(Geography)在计算机发明之前就在解释和影响人类与自然界的关系方面发挥了重要作用。亚历山大·冯·洪堡(Alexander von Humboldt)在19世纪初期前往南美洲的旅行说明了这一点,他在旅行期间的观察不仅奠定了自然地理学和植物地理学的基础,而且为制定保护自然环境的政策铺平了道路。
02|为什么使用R语言进行地理计算
早期的地理学家使用了各种工具,包括气压计、指南针和六分仪来观察规律,增强对世界的认知。直到1761年海洋航海钟的发明之后,才有可能在海上计算经度,让船只能找到更“直”的航线。
现在很难想象缺乏地理数据的情况。每个智能手机都有全球定位系统(GPS)接收器,从卫星和半自动驾驶的车辆到公民和科学家的设备上的传感器,都在不断地测量世界的每一个角落。数据产生的速度也非常快。例如,自动驾驶汽车每天可以产生100GB的数据。卫星遥感数据已经大到无法用单台计算机分析,促使类似OpenEO等项目的提议产生。
这场“地理数据革命”催生对高性能计算硬件和高效可扩展软件的需求,以处理海量数据并从噪声中提取信号。空间数据库使得可以存储和管理庞大的地理数据集成为可能,未来最重要的工具要能从中读取数据并洞察规律。R语言就是这样一个工具,它具有先进的分析、建模和可视化能力。
R语言是一个跨平台的、开源的,用于统计计算和可视化的编程语言(r-project.org/)。R语言还支持高级地理空间统计、建模和可视化。新的集成开发环境(Integrated Development Environment,IDE),如 RStudio,使得R语言对用户更加友好,它提供了一个专门用于交互式可视化的面板来简化地图制作。
从本质上讲,R语言是一种面向对象的函数式编程语言,并且被专门设计为与其他软件进行交互的交互式接口。包括许多连接到丰富的GIS软件、地理库和函数的“桥梁”。因此,它非常适合快速开发地理数据相关的小工具,而不需要掌握如C、FORTRAN或Java这些编程语言。这就突破了传统GIS软件只能基于图形用户界面使用预设功能的束缚。此外,R语言还便于访问其他语言:例如,包Rcpp和reticulate可以调用C++和Python代码。这意味着R语言可以用作连接到各种地理空间程序的“桥梁”。
R 语言的灵活性和不断发展的地理数据处理能力的另一个例子是交互式地图制作。R语言具有“有限的交互式绘图功能”的说法已经成为过去。这可以通过下面的代码块来证明,它创建了图 1.1。
几年前,使用R语言生成图1.1所示的交互式地图是很困难的。归功于knitr和leaflet软件包的开发,现在已经非常容易。这也说明了R语言的灵活性,它可以用作其他软件的接口。
图 1.1 蓝色标记表示本书作者们的所在地,底图是由 NASA 提供的夜间地球瓦片图像,你可以通过访问 r.geocompx.org 的在线版本与之进行交互,例如缩放和单击弹出窗口
03|如何阅读本书
本书分为三个部分:
1)第一部分:基础,旨在让你了解R语言中的地理数据。
2)第二部分:扩展,涵盖高级的地理数据处理技术。
3)第三部分:应用,解决实际问题。
领取专属 10元无门槛券
私享最新 技术干货