'你好,世界!' JavaScript
将信息打印到控制台是获取有关对象的信息、显示计算的数字结果、显示对象元数据或帮助调试的基本任务。标志性的“Hello World!” 代码编辑器中的示例是:
代码编辑器 (JavaScript)
代码语言:javascript复制print('Hello world!');
将此行复制到代码编辑器的代码编辑器中,然后单击运行。请注意,输出显示在代码编辑器右侧的控制台选项卡中。对于更遥感相关的示例,以下打印 Landsat 8 图像的元数据:
代码编辑器 (JavaScript)
代码语言:javascript复制print(ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318'));
仔细检查控制台中的输出以查看可用于 Landsat 图像的元数据。
向地图添加数据
除了将信息打印到控制台之外,向控制台添加数据Map
也是可视化地理数据的方式。使用Map.addLayer()
这样做。在以下示例中,使用 将 anImage
实例化(稍后介绍如何找到这些图像)ee.Image()
,将其添加到地图中, Map.addLayer()
并且地图位于图像的中心:
代码编辑器 (JavaScript)
代码语言: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)
代码语言: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)
代码语言:javascript复制var counties = ee.FeatureCollection('TIGER/2016/Counties');
Map.addLayer(counties, {}, 'counties');
查找图像、图像集合和特征集合
通过搜索地球引擎数据目录可以发现图像、图像集合和特征集合。例如,在搜索字段中输入“Landsat 8”会生成栅格数据集列表。(地球引擎数据集的完整列表位于 地球引擎数据目录)。单击数据集名称可获取简要说明、有关时间可用性、数据提供者和集合 ID 的信息。单击“导入” 按钮可在脚本顶部自动创建一个“导入”部分,其中包含此集合的变量。
或者,复制集合 ID 并将其粘贴到您的代码中。例如,选择“Landsat 8”搜索的第一个结果并复制ID,如下所示:
代码编辑器 (JavaScript)
代码语言:javascript复制var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1');
由于这是跨越地球陆地表面的许多图像的集合,因此在集合中查找单个图像需要过滤以缩小搜索范围。或者,可以使用合成和镶嵌技术将图像集合缩减为单个图像。更多关于过滤和合成(见 减少)在下一节。
特征集合也可通过数据目录获得。它们的表示比图像集合小,但您会发现国际、人口普查、流域和保护区的边界,仅举几例。在此处了解有关导入您自己的矢量数据集的更多信息。
过滤和排序
通常需要按空间和/或时间过滤集合以限制结果的数量。例如,考虑对 Landsat 8 场景集合进行排序的任务,以便为旧金山找到一个无云场景。首先,有必要定义感兴趣的区域。一个点通常对此很有用。激活代码编辑器右侧的 Inspector选项卡并单击您感兴趣区域的中心附近,从Inspector 选项卡复制坐标,然后Point
使用以下方法构建一个:
代码编辑器 (JavaScript)
代码语言:javascript复制var point = ee.Geometry.Point(-122.262, 37.8719);
构造开始和结束日期:
代码编辑器 (JavaScript)
代码语言:javascript复制var start = ee.Date('2014-06-01');
var finish = ee.Date('2014-10-01');
使用点和日期过滤 Landsat 8 集合,然后使用元数据属性(在检查 Landsat 8 场景元数据期间发现)进行排序:
代码编辑器 (JavaScript)
代码语言:javascript复制var filteredCollection = ee.ImageCollection('LANDSAT/LC08/C01/T1')
.filterBounds(point)
.filterDate(start, finish)
.sort('CLOUD_COVER', true);
可以安全地打印和检查此集合。(如果集合中有太多图像,打印它会很慢、超时或返回错误)。观察集合中的图像List
存储在ImageCollection
. 集合中任何图像的 ID 都可以复制到Image
上面的构造函数中。或者,获取第一张图像(最低云量):
代码编辑器 (JavaScript)
代码语言:javascript复制var first = filteredCollection.first();
使用filter()
withee.Filter
作为参数访问完整的 Earth Engine 过滤功能。(上面使用的filterBounds()
和 filterDate()
方法是快捷方式)。例如,下面创建了一个Filter
,使用它来过滤 aFeatureCollection
并显示结果:
代码编辑器 (JavaScript)
代码语言: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');