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

简介: GEE(Google Earth Engine)——JavaScript 入门(2)

'你好,世界!' JavaScript


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


代码编辑器 (JavaScript)

print('Hello world!');


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


代码编辑器 (JavaScript)

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


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


向地图添加数据

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


代码编辑器 (JavaScript)

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


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


代码编辑器 (JavaScript)

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


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


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


代码编辑器 (JavaScript)

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


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

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


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


代码编辑器 (JavaScript)

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


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


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


过滤和排序

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


代码编辑器 (JavaScript)

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


构造开始和结束日期:

代码编辑器 (JavaScript)

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

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


代码编辑器 (JavaScript)

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


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


代码编辑器 (JavaScript)

var first = filteredCollection.first();


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


代码编辑器 (JavaScript)

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



相关文章
|
1月前
|
JavaScript API 图形学
一个案例带你从零入门Three.js,深度好文!
【8月更文挑战第1天】本教程无需任何Threejs知识!本教程以入门为主,带你快速了解Three.js开发
58 2
一个案例带你从零入门Three.js,深度好文!
|
4月前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
36 0
|
1月前
|
JavaScript 前端开发 NoSQL
使用Node.js进行后端开发入门
【8月更文挑战第10天】恭喜你完成了Node.js后端开发的入门之旅!这只是个开始,Node.js的世界远比这广阔。随着你对Node.js的深入学习和实践,你将能够构建更复杂、更强大的后端应用。不断探索、学习和实践,你将在Node.js的道路上越走越远。
|
1月前
|
Web App开发 JavaScript 前端开发
Node.js 入门
【8月更文挑战第4天】Node.js 入门
44 1
|
2月前
|
SQL 前端开发 JavaScript
前端三剑客之JavaScript基础入门
前端三剑客之JavaScript基础入门
|
3月前
|
XML JSON 前端开发
JavaScript入门宝典:核心知识全攻略(下)
JavaScript入门宝典:核心知识全攻略(下)
|
3月前
|
JavaScript 前端开发 UED
JavaScript入门宝典:核心知识全攻略(上)
JavaScript入门宝典:核心知识全攻略(上)
|
3月前
|
JavaScript
three.js入门第一个案例
three.js入门第一个案例
|
4月前
|
JavaScript
学习Node.js入门范例
然后,cmd中运行命令node E:/Test/server.js
33 2
|
3月前
|
缓存 前端开发 JavaScript
【JavaScript】JavaScript 中的闭包:从入门到精通
【JavaScript】JavaScript 中的闭包:从入门到精通
75 0