借助Geemap分析空间地理数据

译文
大数据 数据分析
这个Python库用于使用Google Earth Engine(谷歌地球引擎)和ipyleaflet创建交互式地图。

译者 | 布加迪

审校 | 重楼

地理空间数据分析是一个专门领域,用来处理、可视化和分析一种特殊类型的数据:地理空间数据。与正常数据相比,地理空间数据是带有附加列:位置信息(比如纬度和经度的表格数据。

有两种主要类型的数据矢量数据和栅格数据。在处理矢量数据时,您仍有一个表格数据集,而栅数据更类似图像,比如卫星图像和航空照片。

文将重点介绍Google Earth Engine提供的栅格数据,这个云计算平台提供了庞大的卫星图像数据目录。这类数据很容易使用一个名为Geemap的Python软件包Jupyter Notebook加以处理

Google Earth Engine简介

在开始使用Python库之前,我们需要了解Google Earth Engine的潜力。这个基于云的平台由谷歌云平台提供支持,托管学术、非营利和商业目的公共和免费地理空间数据集。

这个平台的魅力在它提供了存储在Earth Engine服务器上的多PB的栅格数据和矢量数据目录。可以从这个链接https://developers.google.com/earth-engine/datasets/catalog快速浏览一下。此外,它还提供了方便分析栅格数据集的API

Geemap是一个Python库,便于分析和可视化来自Google Earth Engine的大量地理空间数据。

这个软件包出现之前,我们已经可以通过JavaScriptPython API进行计算请求,但Python API功能有限且缺文档。

为了填补这空白,Geemap应运而生,允许用户通过几行代码访问Google Earth Engine的资源。Geemap建立在eartenengine-apiipyleaflet和folium的基础上

安装库,只需执行以下命令

pip install geemap

建议您在Google Colab中试用这个出色的软件包,以了解其全部潜力。看看这本教授Qiusheng Wu博士撰写的介绍Geemap和Google Earth Engine使用入门的图书

如何访问Earth Engine?

首先,我们需要导入将在本教程中用到的两个Python库

import ee
Import geemap

除了Geemap外,我们还导入了名为ee的Earth Engine Python客户端库。

这个Python库可以用于Earth Engine上进行身份验证,但直接使用Geemap库可以更快

m = geemap.Map()
m

您需要点击这行代码返回的URL,这将生成授权码。首先选择云项目,然后点击“GENERATE TOKEN按钮。

之后,它会要求您选择帐户。建议您使用Google Colab的同一个帐户

然后,点击“Select All”旁边的复选框并按“Continue”按钮。简而言之,这一步允许笔记本客户端访问Earth Engine帐户。

这个操作之后,将生成身份验证码,您可以将其粘贴到笔记本单元格中。

一旦输入验证码,您就可以最终创建并可视化这个交互式地图了:

m = geemap.Map()
m

眼下,就可以ipyleaflet上查看基本地图个Python软件包可以在Jupyter Notebook中可视化交互式地图。

创建交互式地图

前面,我们已经看到了如何使用单单一行代码对交互式地图进行身份验证和可视化。现在,我们可以通过指定质心的纬度和经度、缩放级别和高度来定制默认地图。我选择了罗马的坐标作为欧洲地图上的中心。

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

如果我们想要改变基础地图,有两种方法。第一种方法编写并运行以下代码行

m.add_basemap("ROADMAP")
m 

另一种方法是,您可以通过点击位于右侧的环扳手图标手动更改基础地图

此外,我们看到Geemap提供的基础地图列表

basemaps = geemap.basemaps.keys()
for bm in basemaps:
 print(bm)

输出如下:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

正如您所注意到,有一长串基础地图,其中大部分都是通过OpenStreetMap、ESRI和USGS获得的。

Earth Engine数据类型

展示Geemap的全部潜力之前,有必要了解Earth Engine中的两种主要数据类型。查看Google Earth Engine的文档以了解更多细节。

在处理矢量数据时,我们主要使用三种数据类型

  • 几何形状(Geometry)存储在地图上绘制矢量数据所需的坐标。Earth Engine支持三种主要类型的几何形状线串和多边形。
  • 特征(Feature)实际上是结合几何形状和非地理属性的行。它非常类GeoPandas的GeoSeries
  • 特征组合(FeatureCollection是一包含一组特的表格数据结构。FeatureCollection和GeoDataFrame在概念上几乎一样

在栅数据世界,我们关注的是图像(Image)对象。Google Earth Engine的图像由一个或多个组成,其中每个段都有一个特定的名称估计的最小值和最大值以及描述。

如果我们有一个图像集合或时间序列,ImageCollection作为数据类型更合适。

我们将显示欧洲陆地覆盖地图的卫星图像可视化。该数据集提供了1986年至2018年之间的变化。

首先,我们使用ee.Image加载图像。然后,选择段“landcover。最后,不妨通过使用Map. addLayer将加载的数据集添加到地图作为图层来可视化图像。

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

与之相似,我们可以做同样的事情来加载和可视化显示欧洲土地覆盖地图的卫星图像。该数据集提供了1986年至2018年之间的变化。

为了可视化Earth Engine ImageCollection,除了ee.ImageCollection外,几行代码是相似的。

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}
Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

从这张地图上,我们可以看到甲烷在全球范围内是如何分布的,甲烷是造成温室效应最重要的因素之一。

结语

这是一篇入门指南,可以帮助您使用Python处理Google Earth Engine数据。Geemap是可视化和分析这类数据的最完整的Python库。

如果您想更深入地了解这个软件包,可以查看下面我建议的参考资料。

代码可以在这里找到

https://github.com/eugeniaring/Medium-Articles/blob/main/Geo/geemap_tutorial.ipynb。

实用资源

原文标题:Geospatial Data Analysis with Geemap,作者:Eugenia Anello

责任编辑:华轩 来源: 51CTO
相关推荐

2013-09-13 10:11:22

大数据

2012-07-03 09:59:47

微软Cloud Numer大数据

2022-09-13 14:54:35

人工智能地理空间无人机

2022-03-30 09:30:00

数据库地理空间查询SQL

2023-09-18 07:23:45

2014-08-29 09:50:35

大数据商业地理

2022-09-14 11:27:19

物联网大数据智慧城市

2023-08-09 08:59:14

2024-10-18 17:03:16

Python地理空间数据处理

2013-07-26 17:07:33

Foglight容量

2018-04-19 15:13:53

javascriptwebpackvue.js

2009-11-18 16:44:58

2013-09-11 09:36:02

VMwareLog Insight

2018-07-11 11:33:35

云端

2022-06-23 06:55:05

数值索引数据检索数值查询

2023-05-05 19:16:22

Python数据清洗

2010-03-26 09:58:55

2016-04-08 17:55:23

HPE大数据Haven

2022-08-21 07:44:12

MariaDBOGC数据库
点赞
收藏

51CTO技术栈公众号