如何用Google Earth Engine快速、大量下载遥感影像数据?

简介: 【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~

  本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围空间范围遥感影像数据(包括LandsatSentinel等)的方法。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第21篇。

  我们之前多次介绍过基于官方网站或者GEE平台,对常见遥感影像数据产品加以下载的方法,大家具体可以参考我的文章列表。但是,我们还一直没有介绍在GEE中,不加任何其他复杂的二次筛选与计算需求,而是直接下载指定时间范围空间范围遥感影像数据的最简单方法;那么在这里,我们就介绍一下这个最简单、原始的下载方法。

  当然,这里需要提一句:GEE下载遥感影像除了需要网络可以出国外,还有一个约束条件,就是Google Drive的大小——如果大家需要下载的遥感影像超过了自己的Google Drive大小(一般普通的账号,这个大小就是15 G),那么就得手动分批次下载,即每一次下载部分数据后,就清空一下Google Drive,然后再继续下载。

  首先,本文用到的代码如下。这个代码下载的是2019年里,在四川省黄龙附近某个区域的所有哨兵2号遥感影像数据;大家可以先看代码,然后结合自己的实际需求,对这个代码加以修改,从而下载自己所需的遥感影像数据。

var batch = require('users/fitoprincipe/geetools:batch');

var lon3 = 104.0111;
var lat3 = 32.8925;
var lon4 = 104.0883;
var lat4 = 33.0061;
var rectangle_small = ee.Geometry.Rectangle([lon3, lat3, lon4, lat4]);
var lon1 = 103.9500;
var lat1 = 32.8154;
var lon2 = 104.1920;
var lat2 = 33.0460;
var rectangle = ee.Geometry.Rectangle([lon1, lat1, lon2, lat2]);

var startDate = '2019-01-01';
var endDate = '2020-01-01';

var collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
  .filterBounds(rectangle_small)
  .filterDate(startDate, endDate)
  .select(["B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A"])
  .map(function(image) {
   
   
    return image.clip(rectangle);
  });

Map.addLayer(rectangle, {
   
   }, 'Bounding Box');
Map.addLayer(collection, {
   
   }, "Images");

var options = {
   
   
  // name: '{system_date}',
  // dateFormat: 'yyyy-MM-dd',
  scale: 10,
  maxPixels: 10000000000000,
  region: rectangle
};
batch.Download.ImageCollection.toDrive(collection, "Sentinel", options)

  代码具体含义如下。

  首先,var batch = require('users/fitoprincipe/geetools:batch');这句代码导入了GEE中一位个人作者所写的批处理工具库,用于进行批量下载操作。关于这一点,大家参考文章Google Earth Engine谷歌地球引擎GEE批量下载ImageCollection遥感影像数据合集的方法即可。

  其次,我们定义了两个矩形几何体rectangle_smallrectangle。这些几何体定义了我这里感兴趣区域的范围,其中 rectangle_small是较小的矩形范围,用于过滤Sentinel-2影像集合,而rectangle是较大的矩形范围,用于裁剪图像。换句话说,我这里的需求是,获取所有落入rectangle_small这个较小的矩形范围的遥感影像,然后对于这些遥感影像,将他们再按照rectangle这个较大的矩形范围加以裁剪;最后下载的就是落入rectangle_small区域的、按照rectangle区域裁剪后的遥感影像。

  随后,我们定义了起始日期和结束日期startDateendDate。这些日期用于在时间范围内过滤Sentinel-2影像集合。

  接下来,我们使用ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')获取Sentinel-2影像集合;如果大家这里需要其他的遥感影像产品,就修改其产品名称即可。接着,使用filterBounds()函数根据rectangle_small过滤图像集合,然后使用filterDate()函数根据日期范围过滤图像集合。

  其次,使用select()函数选择特定的波段。在这里,我是选择了影像中的B2B3B4B5B6B7B8B8A波段;这里大家需要什么波段,就对照着数据产品在GEE官网中的介绍,按照需求选择波段即可。随后,使用map()函数对图像集合中的每个影像应用clip()函数,以裁剪图像为rectangle范围内的区域。

  接下来,可以使用Map.addLayer()rectangle添加到地图中作为边界框的可视化;可以使用Map.addLayer()将图像集合collection添加到地图中进行可视化。这里的可视化只是为了确认我们所选择研究区域是没有问题的,如下图所示;所以这里的代码大家想要就要,不想要就注释掉。

  最后,我们定义了下载选项options,包括输出文件的比例尺、最大像素数和下载区域。并使用batch.Download.ImageCollection.toDrive()函数将图像集合collection下载到Google Drive中,以Sentinel作为文件夹的名称。关于这一点,大家参考文章Google Earth Engine谷歌地球引擎GEE批量下载ImageCollection遥感影像数据合集的方法即可。

  执行上述代码,即可在Tasks中看到生成的任务列表,每一个任务就是每一景遥感影像的下载。

  运行上述任务后,遥感影像将出现在Google Drive中的指定文件夹内,如下图所示。

  然后,大家再将Google Drive中的遥感影像文件下载到本地即可。

  至此,大功告成。

相关文章
|
6月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
219 0
|
6月前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
557 1
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
6月前
|
数据可视化 数据挖掘 数据建模
R语言指数平滑法holt-winters分析谷歌Google Analytics博客用户访问时间序列数据
R语言指数平滑法holt-winters分析谷歌Google Analytics博客用户访问时间序列数据
|
6月前
|
API Go 网络架构
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
321 4
|
6月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
86 0
|
6月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
132 0
|
6月前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
76 0
|
6月前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
256 0
|
6月前
|
传感器 编解码 数据处理
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
122 0
|
6月前
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
123 0

热门文章

最新文章

下一篇
无影云桌面