GEE(Google Earth Engine)——JavaScript 入门(2)

举报
此星光明 发表于 2022/04/16 02:19:32 2022/04/16
【摘要】 '你好,世界!' JavaScript 将信息打印到控制台是获取有关对象的信息、显示计算的数字结果、显示对象元数据或帮助调试的基本任务。标志性的“Hello World!” 代码编辑器中的示例是: 代码编辑器 (JavaScript) print('Hello world!'); 将此行复制到代码编...

'你好,世界!' JavaScript

将信息打印到控制台是获取有关对象的信息、显示计算的数字结果、显示对象元数据或帮助调试的基本任务。标志性的“Hello World!” 代码编辑器中的示例是:

print('Hello world!');
 

将此行复制到代码编辑器的代码编辑器中,然后单击运行。请注意,输出显示在代码编辑器右侧的控制台选项卡中。对于更遥感相关的示例,以下打印 Landsat 8 图像的元数据:

print(ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318'));
 

仔细检查控制台中的输出以查看可用于 Landsat 图像的元数据。

向地图添加数据

除了将信息打印到控制台之外,向控制台添加数据Map 也是可视化地理数据的方式。使用Map.addLayer()这样做。在以下示例中,使用 将 anImage实例化(稍后介绍如何找到这些图像)ee.Image(),将其添加到地图中, Map.addLayer()并且地图位于图像的中心:


  
  1. // Load an image.
  2. var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
  3. // Center the map on the image.
  4. Map.centerObject(image, 9);
  5. // Display the image.
  6. Map.addLayer(image);

的第二个参数Map.centerObject()是缩放级别,数字越大表示比例越大(放大得越多)。这些Map 函数的参数在可从文档选项卡访问的 API 参考中进行了深入描述 。如果图像的外观不令人满意,请使用附加参数配置显示参数Map.addLayer()。例如:


  
  1. // Load the image from the archive.
  2. var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
  3. // Define visualization parameters in an object literal.
  4. var vizParams = {bands: ['B5', 'B4', 'B3'], min: 5000, max: 15000, gamma: 1.3};
  5. // Center the map on the image and display.
  6. Map.centerObject(image, 9);
  7. Map.addLayer(image, vizParams, 'Landsat 8 false color');

观察可视化参数由对象文字定义,其中包括要显示的波段列表、最小和最大数字以及伽玛值。(了解更多关于陆地卫星乐队 在这里。了解更多关于图像可视化在这里)。

用于Map.addLayer()向地图添加要素和要素集合。例如,


  
  1. var counties = ee.FeatureCollection('TIGER/2016/Counties');
  2. Map.addLayer(counties, {}, 'counties');

查找图像、图像集合和特征集合

通过搜索地球引擎数据目录可以发现图像、图像集合和特征集合。例如,在搜索字段中输入“Landsat 8”会生成栅格数据集列表。(地球引擎数据集的完整列表位于 地球引擎数据目录)。单击数据集名称可获取简要说明、有关时间可用性、数据提供者和集合 ID 的信息。单击“导入” 按钮可在脚本顶部自动创建一个“导入”部分,其中包含此集合的变量。

或者,复制集合 ID 并将其粘贴到您的代码中。例如,选择“Landsat 8”搜索的第一个结果并复制ID,如下所示:

var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1');
 

由于这是跨越地球陆地表面的许多图像的集合,因此在集合中查找单个图像需要过滤以缩小搜索范围。或者,可以使用合成和镶嵌技术将图像集合缩减为单个图像。更多关于过滤和合成(见 减少)在下一节。

特征集合也可通过数据目录获得。它们的表示比图像集合小,但您会发现国际、人口普查、流域和保护区的边界,仅举几例。在此处了解有关导入您自己的矢量数据集的更多信息。

过滤和排序

通常需要按空间和/或时间过滤集合以限制结果的数量。例如,考虑对 Landsat 8 场景集合进行排序的任务,以便为旧金山找到一个无云场景。首先,有必要定义感兴趣的区域。一个点通常对此很有用。激活代码编辑器右侧的 Inspector选项卡并单击您感兴趣区域的中心附近,从Inspector 选项卡复制坐标,然后Point使用以下方法构建一个:

var point = ee.Geometry.Point(-122.262, 37.8719);
 

构造开始和结束日期:


  
  1. var start = ee.Date('2014-06-01');
  2. var finish = ee.Date('2014-10-01');

使用点和日期过滤 Landsat 8 集合,然后使用元数据属性(在检查 Landsat 8 场景元数据期间发现)进行排序:


  
  1. var filteredCollection = ee.ImageCollection('LANDSAT/LC08/C01/T1')
  2. .filterBounds(point)
  3. .filterDate(start, finish)
  4. .sort('CLOUD_COVER', true);

可以安全地打印和检查此集合。(如果集合中有太多图像,打印它会很慢、超时或返回错误)。观察集合中的图像List存储在ImageCollection. 集合中任何图像的 ID 都可以复制到Image上面的构造函数中。或者,获取第一张图像(最低云量):

var first = filteredCollection.first();
 

使用filter() withee.Filter作为参数访问完整的 Earth Engine 过滤功能。(上面使用的filterBounds()和 filterDate()方法是快捷方式)。例如,下面创建了一个Filter,使用它来过滤 aFeatureCollection并显示结果:


  
  1. // Load a feature collection.
  2. var featureCollection = ee.FeatureCollection('TIGER/2016/States');
  3. // Filter the collection.
  4. var filteredFC = featureCollection.filter(ee.Filter.eq('NAME', 'California'));
  5. // Display the collection.
  6. Map.addLayer(filteredFC, {}, 'California');

文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31988139/article/details/118899126

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。