文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

借助Geemap分析空间地理数据

2024-11-29 22:19

关注

审校 | 重楼

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

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

文将重点介绍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的文档以了解更多细节。

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

在栅数据世界,我们关注的是图像(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内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯