本文主要对GEE中的ee.Image格局数据图层根本处理操作加以介绍。

  本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十篇,更多GEE文章请参阅专栏:GEE学习与使用

  首要,导入# 谷歌地球引擎GEE的JavaScript代码基础知识与用法中提及的遥感印象。

var landsat_5=ee.Image("LANDSAT/LT05/C01/T1_TOA/LT05_123032_20100605");

  这里需求留意:在# 谷歌地球引擎GEE的JavaScript代码基础知识与用法中也提到了,经过上述代码导入的这一景遥感印象是成像时刻为2010年06月05日、PathRow号分别为123032(掩盖北京市)的Landsat 5 Collection 1 Tier 1的大气表观反射率TOA Reflectance产品;其成像时刻是一个确认的值,因而是一景图画,此即ee.Image格局的数据。而若是导入许多景图画——例如将上述代码括号中的内容改为"LANDSAT/LT05/C01/T1_TOA",那么所导入的遥感印象就成了不约束成像时刻的、全球的Landsat 5 Collection 1 Tier 1大气表观反射率TOA Reflectance产品,即从Landsat 5卫星从升空成像一直到退役这个时刻范围内的印象悉数包括在内;因而在全球恣意一个空间范围内,所导入的遥感印象都是许多时相所对应的许多景图画,相当于是好几景图画堆叠、叠合在一起,此即ee.ImageCollection格局的数据。关于ee.ImageCollection格局数据的根本处理操作,咱们将会在后期的博客中进行介绍。

  在# 谷歌地球引擎GEE:遥感印象可视化修正的代码办法中,咱们介绍了在Map.addLayer()函数中对图层可视化参数进行配置的办法。

Map.setCenter(116.36863, 39.961029,10);
Map.addLayer(landsat_5,{bands:["B4","B3","B2"]},"LANDSAT5");

谷歌地球引擎GEE:一景遥感印象ee.Image数据的根本处理办法

  而上述代码有一个问题——咱们有必要依照必定次序填写Map.addLayer()函数的参数,不能跳过。例如,如果在Map.addLayer()函数中,咱们不想配置{bands:["B4","B3","B2"]}这个可视化参数,但还需求配置"LANDSAT5"这个地图中所显现图层称号的参数,那么就需求将可视化参数部分用{}留空。即以上代码就需求改为:

Map.addLayer(landsat_5,{},"LANDSAT5");

谷歌地球引擎GEE:一景遥感印象ee.Image数据的根本处理办法

  针对这种状况,咱们能够引入参数称号,将Map.addLayer()函数的参数修正为字典的办法,这样就能够消除函数参数次序的问题。不过这里要留意:不要忘掉字典前后需求有大括号{}包围哦。

Map.addLayer({visParams:{bands:["B4","B3","B2"]},eeObject:landsat_5,name:"LANDSAT5_New"});

  其间,visParamseeObjectname便是Map.addLayer()函数的参数称号。函数的参数称号能够在修正栏编写代码时,按下GEE快捷键Ctrl Space完成获取(有点类似于代码提示的功用);而在Windows体系中,因为这一对快捷键一起是Windows输入法中切换中英文输入的快捷键,因而因为快捷键抵触导致GEE中无快捷键Ctrl Space完成获取参数称号。针对这一问题,我个人比较习惯直接查找对应的函数,在GEE官方文档中查看相关函数的详细解说,如下图所示。

谷歌地球引擎GEE:一景遥感印象ee.Image数据的根本处理办法

  履行代码,能够看到这种根据字典办法的参数输入办法与# 谷歌地球引擎GEE:遥感印象可视化修正的代码办法中选用的参数输入办法效果是共同的。

谷歌地球引擎GEE:一景遥感印象ee.Image数据的根本处理办法

  此外,# 谷歌地球引擎GEE:遥感印象可视化修正的代码办法中还介绍了将悉数可视化参数首要存储于一个独立的参数中,随后在Map.addLayer()函数中调用这一独立参数的办法;这一点本文就不再赘述。

  在# 谷歌地球引擎GEE的JavaScript代码基础知识与用法中,咱们经过Map.setCenter()函数,将交互式地图的显现位置主动定位到北京师范大学邻近的位置;与此一起,Landsat 5遥感印象的掩盖范围十分广泛,而上述主动定位的范围则比较小,因而能够经过ROI对遥感印象显现区域加以约束。

Map.setCenter(116.36863, 39.961029,13);
//Map.addLayer(landsat_5,{bands:["B4","B3","B2"]},"LANDSAT5");
var roi=ee.Geometry.Point([116.36863, 39.961029]).buffer(2000);
Map.addLayer(roi);
Map.addLayer({visParams:{bands:["B4","B3","B2"]},eeObject:landsat_5.clip(roi),name:"LANDSAT5_New"});

  其间,首要根据ee.Geometry.Point()函数,经过一个给定的经、纬度,确认一个点类型的矢量要素,随后经过.buffer()函数构建缓冲区,作为ROI;并将ROI与经过.clip()函数裁剪后的遥感印象分别在地图中显现。其间,.buffer()函数的详细介绍请参阅# 谷歌地球引擎GEE:制作遥感印象的直方图、时刻走势曲线图.clip()函数的详细介绍请参阅# 谷歌地球引擎GEE:根据矢量裁剪栅格图画

谷歌地球引擎GEE:一景遥感印象ee.Image数据的根本处理办法