今天,我将向您简要介绍Google Earth Engine,并向您展示如何使用Sentinel-2数据创建欧洲的无云马赛克 in just one 分ute! Yes, literally one 分ute!
Google Earth Engine是“计算平台,允许用户在Google上运行地理空间分析’s infrastructure.” 这意味着你不’您不必自己下载任何数据,并且可以使用Google的计算能力对笔记本电脑,计算机甚至手机上的各种可用卫星图像进行高速数据分析。
1.在报名 earthengine.google.com
不用担心’如果您是研究人员,或者只是想探索Google Earth Engine的可能性和功能,则可以免费获得。但是,如果您要将其用于商业目的,则应首先与Goolge联系。
2.前往 code.earthengine.google.com
Google Earth Engine提供了两个界面。在我们的案例研究中,我们将使用 代码编辑器界面。通过此界面,您可以为我们提供各种已经存在的代码块,这些代码块将帮助您进行分析和处理各种卫星图像。您可以找到Google Earth Engine API的简短介绍 这里。
下图显示了代码编辑器的主要功能:
3.从脚本管理器中选择一个现有脚本
从左侧的脚本管理器中选择 “Filtered Composite”. 该脚本将面范围作为输入:
var polygon = ee.Geometry.Polygon([[ [-109.05, 37.0], [-102.05, 37.0], [-102.05, 41.0], // colorado [-109.05, 41.0], [-111.05, 41.0], [-111.05, 42.0], // utah [-114.05, 42.0], [-114.05, 37.0], [-109.05, 37.0]]]);
然后选择从2000年4月到2000年7月的所有可用Landsat 7场景:
var collection = ee.ImageCollection('LE7_L1T') .filterDate('2000-04-01', '2000-07-01') .filterBounds(polygon);
第三步,计算所有这些图像的中值并将其显示在地图上:
// Select the median pixel. var median = collection.median(); //选择红色,绿色和蓝色带。 var result = median.select('B3', 'B2', 'B1'); Map.addLayer(结果,{获得:'1.4, 1.4, 1.1'}); Map.setCenter(-110, 40, 5);
结果是在科罗拉多和丹佛上的Landsat 7镶嵌图。您可以通过单击 “Run” 按钮。计算仅需几秒钟!惊人!
4.突破极限–欧洲Sentinel-2云免费。这需要多长时间?
让’测试整个欧洲大陆需要花费多长时间。让我们改用Sentinel-2!
猜猜需要多长时间?这是我所做的代码改编:
欧洲多边形:
var geometry = /* color: #d63000 */ee.Geometry.Polygon( [[[-26.60888671875, 66.01801815922043], [-18.1494140625, 32.565333160841035], [15.954649288064843, 35.39010560236367], [44.80224609375, 36.756490329505176], [43.59375, 70.85188122123132], [11.88720703125, 73.23937702441908]]]); var polygon = geometry;
这次我们需要Sentinel-2数据,所以让’s change “LE7_L1T” to “COPERNICUS/S2”并指定从2016年4月到2016年12月的时间范围:
Voila! We are done! How long did it take? About a 分ute!! Wow, stunning! Here the result:
16条留言
您可以在这篇文章中发表评论。
您好,恭喜!
我可以在印度地区使用此代码吗?
谢谢
拉吉
拉杰·库玛·辛格 3年前
谢谢!您可以在任何区域使用它。您只需要调整多边形变量的范围即可。
马丁 3年前
By taking the 分imum value an issue is that you get the cloud shadows.
西蒙 3年前
嗨,西蒙!感谢您的评论!
你是绝对正确的!这篇文章旨在作为概念证明,并显示了惊人的GEE的计算潜力。
对于完全没有云和阴影的马赛克,当然需要更高级的算法。 ðŸ〜‰
但是,我仍然感到震惊“min”表现出色。我期待更多的人工制品!
干杯
马丁
顺便说一句:我非常喜欢您的博客以及您在“series temporelles”
马丁 3年前
亲爱的西蒙,
非常感谢您的演讲。
请问,如何给多边形分配坐标?
最好,
弗雷迪·阿格蒂 3年前
亲爱的弗雷迪,
您指的是哪个演示文稿?
回答你的问题;
您可以直接更改变量多边形中的坐标(如果知道的话):
var geometry = / * color:#d63000 * / ee.Geometry.Polygon([[[--26.60888671875,66.01801815922043],
[-18.1494140625,32.565333160841035],[15.954649288064843,35.39010560236367],[44.80224609375,36.756490329505176],
[43.59375,70.85188122123132],[11.88720703125,73.23937702441908]]]);
或者,如果您想绘制多边形,则可以通过单击变量旁边的小垃圾桶来删除现有的几何变量,然后在地图上简单地绘制一个新的多边形。
如果您需要任何帮助,请告诉我。
马丁 3年前
嗨,马丁,
我们已根据您的指示调整了我的兴趣范围,并且效果很好!
现在,导出组成马赛克的所有S2图像的最佳方法是什么?
我还想导出4个频段(B8,B4,B3和B2),而不是3个。
谢谢
米歇尔 3年前
您要导出最终的镶嵌图还是构成镶嵌图的所有图像?
马丁 3年前
我想一次或在瓷砖PLZ中导出巴基斯坦哨兵-2 RGB马赛克,请帮助我无缝拼接
伊兹瓦 3年前
嘿!
首先,您需要在goolge地球引擎内所需的感兴趣区域(巴基斯坦)周围绘制多边形。
其次,您需要导出可视化文件。我通常按以下方式将文件导出到google驱动器(只需在脚本底部添加代码行,并在需要时对其进行调整):
// Export the image, specifying scale and region.
Export.image.toDrive({
image: imagename, //replace with your image name variable
description: 'pakistan_mosaic',
scale: 10,
maxPixels: 1e9,
region: geometry, //polygon name that you have drawn at step 1
folder:'mosaic_pakistan',
crs: "EPSG:3857"
});
马丁 3年前
想要导出带有云遮罩的阿富汗Sentinal -2 RGB马赛克,您能帮我如何下载吗?不幸的是,我无法使用此指南。
谢谢
阿卜杜勒·巴西尔(Abdul Basir Mahmoodzada) 1年前
谢谢你,这对我有帮助。有没有一种方法可以计算选定区域的NDVI?如果是这样,您可以花一些时间来编写代码吗?
柳比萨·朱罗斯维奇 2年前
干得好!
我可以问一个有关Setinel-2,L-1C产品的大气校正的问题吗?
是否有任何代码’Google地球引擎中的大气校正?
谢谢
何中华 2年前
你好
I’我已经尝试过您的脚本,但是却收到了此消息–>第1层:图层错误:Image.select:图案‘B4’没有任何乐队
你有什么建议吗?
这是我完整的脚本:
var geometry =
/ *颜色:#0b4a8b * /
/ * displayProperties:[
{
“type”: “rectangle”
}
] * /
ee.Geometry.Polygon(
[[[94.005859375,8.059229627200192],
[94.005859375,-12.64033830684679],
[142.697265625,-12.64033830684679],
[142.697265625,8.059229627200192]],null,false);
var kotak =几何
var collection = ee.ImageCollection(‘COPERNICUS/S2_SR’)
.filterDate(‘2016-04-01’, ‘2018-12-31’)
.filterBounds(kotak);
var 分 = collection.min();
//选择红色,绿色和蓝色带。
var result = 分.select(‘B4’, ‘B3’, ‘B2’);
Map.addLayer(结果,{获得:‘0.1, 0.1, 0.1’, scale:20});
Map.setCenter(118,0,4);
巴尤(Bayu Prayudha)- 2年前
嗨,谢谢你上面的脚本。我只是将坐标替换为南美圭亚那。现在,我想为哨兵2,波段b2,b4,b8和b11创建一个云掩码文件。最后,我需要计算NDVI。但是,我很难理解使用Sentinel 2进行云掩码的概念。您能解释一下吗?
苏西
苏西·刘易斯 2年前
嗨,谢谢您的介绍。我想知道如何获得第二个或第三个最小值而不是最小值?
于龙龙 1年前
发表回复