文章目录
- Introduction
- What is the Google Earth Engine?
- Pre-processing and download data
- Conclusion
- Reference
Introduction
使用 Google Earth Engine Python API 和 FireHR 实用程序函数,您可以轻松下载地球上任何选定区域的时间序列或无云合成。在 Google Colab 上试用!
Sentinel-2 俯瞰里斯本和特茹河。作者使用从 Google Earth Engine 下载的 Sentinel-2 数据制作的图像。
在这篇博文中,您将了解Google 地球引擎,以及如何轻松下载地球上任何地方的Sentinel-2 10 米空间分辨率卫星图像。
What is the Google Earth Engine?
“Google Earth Engine 将数 PB 的卫星图像和地理空间数据集目录与行星尺度分析功能相结合,使科学家、研究人员和开发人员能够检测变化、绘制趋势图并量化地球表面的差异。”
换句话说,它是一种免费提供的服务,它结合了大量的全局数据集,如果没有超级计算机,这些数据集通常是无法处理的。
Sentinel-2数据就是一个很好的例子,因为它由空间分辨率高达 10 米的多光谱卫星图像和 5 天的轨道重访周期组成,同时考虑了 Sentinel-2A 和 Sentinel-2B 卫星。
举个例子,如果你正在学习100×100公里,数据空间分辨率的区域为10米,你的图像尺寸为10000×10,000像素。如果图像以 16 位精度存储而未压缩,则每个通道为 1,600,000,000 位或 200 MB。如果需要三个通道,它已经是 600 MB 的数据。现在假设您想在 1 年内每 5 天下载一个这样的图像(以获得土地变化的时间序列),并且您获得近 45 GB 的数据。请记住,这只是一个 100 x 100 公里的区域。Google Earth Engine在全球范围内提供这些数据和快速处理能力。
有多种使用 Google Earth Engine 的方法。首先,有网络编辑器,您可以在其中创建在 google 服务器中运行的脚本,并将结果发送回浏览器,在那里它显示在动态地图中(参见下图作为示例)。
Google Earth Engine 网络编辑器的截屏。https://code.earthengine.google.com/
Web 编辑器的一个可能限制是它要求用户使用 JavaScript。但是仍然有很多例子可以开始。
对于 Python 用户来说幸运的是,有一个Python API允许 Earth Engine 和 Python 之间进行交互。在下一节中,我将展示如何轻松地使用 Google Earth Engine 作为预处理和下载 geotiff 格式数据的工具。
Pre-processing and download data
在本节中,我将展示您如何使用FireHR实用程序函数(在后台使用 Google Earth Engine Python API)轻松下载您选择的任何地区和时间的数据。
FireHR 是我最近开发的一个 Python 库,用于使用 Sentinel-2 数据绘制燃烧区域(您可以在这篇科学论文中找到更多详细信息)。data但是,FireHR 包中的模块可以更广泛地用于下载数据,这就是本文的重点!例如,由于某些大小限制,必须在小块中从 Earth Engine 下载。这些图块需要重新组合成全尺寸区域。FireHR 代码在幕后完成所有的耕作和合并。
让我们看一个例子!
作为示例,上面的代码显示了如何下载 Sentinel-2 数据(第 11 行)带红色、绿色和蓝色(第 12 行)的区域,该区域由第 5-8 行定义的边界框坐标分隔。本示例中选择的区域对应于德国柏林附近正在建设中的特斯拉超级工厂之一的位置。选定的时间间隔从 3 月 1 日开始,到 4 月 25 日结束,这样综合报告将提供截至撰写本故事之日的施工进度的最新概览。第download_data23 行中的函数将搜索区间内的所有可用图像,并计算具有最低云量覆盖率的三幅图像的中值,如参数所定义use_least_cloudy其值设置为 3。请注意,过滤和合成是在 Google Earth Engine 服务器中完成的,因此这是一个非常快速的过程。仅下载最终合成并保存为 GeoTIFF 文件。这节省了大量的处理时间和所需的存储空间!
下图显示了之前代码中示例的结果。您可以按照此 URL在 Google Colab 笔记本上运行它。Colab notebook 上的代码还有一个download_data_ts功能,可以用来下载选定日期内的所有图像,而不是创建合成图。
注意:有关 Google Earth Engine 上可用的 Sentinel-2 数据集的更多信息,请务必查看目录页面。您可以在那里找到有关光谱带和元数据的所有信息。
Conclusion
FireHRPython 包中提供的代码可用作从 Google Earth Engine 下载 Sentinel-2 数据的通用工具。从其他产品(如 Landsat)下载数据也应该是可能的,但尚未经过测试。如果您需要针对您的应用程序进行调整,您当然可以查看GitHub 上的FireHR 源代码。
Reference
https://towardsdatascience.com/how-to-download-high-resolution-satellite-data-for-anywhere-on-earth-5e6dddee2803