云计算平台在遥感数据分析中的应用日益广泛,它提供了大量的开源卫星图像,使用户无需下载原始数据即可进行处理。这对于处理占用大量存储空间的数据尤为实用。本文将探讨如何利用地球引擎平台发布一个带有多个链接面板的网络应用,这种应用可以公开分享大量信息,只需一个超链接即可实现。
本文将展示一个包含6个面板的交互式网络应用的创建过程和结果。所有面板都包含链接图像,每个面板可以显示多个图层。但在分享结果之前,先来看看如何在6个面板中展示的栅格图像。
多光谱卫星图像,如Landsat 8 OLI和Sentinel-2,因其在获取土地利用和土地覆盖信息方面的广泛应用而闻名。以Landsat 8 OLI为例,该图像每16天捕获一次地球图像,自2013年以来已存档多年。本文将演示如何展示Landsat 8 OLI图像,虽然可以展示全球的结果,但本文将限定区域仅为东爪哇。
// 创建多个面板
// 地图1: Landsat 8 OLI真彩色
var map1 = ui.Map();
map1.add(ui.Label('Landsat 8 OLI 真彩色',{position: 'bottom-center'}));
// 设置日期为2020年7月至9月
var tahun = [2020];
var bulan = [7,7,8,8,9,9];
var tgl1 = [1,16,1,16,1,16];
var tgl2 = [15,31,15,31,15,30];
var week = ['第一周', '第二周','第一周', '第二周','第一周', '第二周'];
var display = [false,false,false,false,false,true];
var i;
var j;
// 加载Landsat 8图像
for (i = 0; i
以上代码展示了如何从2020年7月至9月显示Landsat 8 OLI和Sentinel-2图像。将Landsat 8 OLI以复合432作为真彩色,复合654作为假彩色显示。复合654有助于区分植被和开阔地。对于Sentinel-2,将复合432作为真彩色,复合843作为假彩色显示。复合843有助于观察地表起伏。
卫星图像不仅可以提供土地覆盖信息,还可以提供高程信息。航天飞机雷达地形测绘任务(SRTM)可以提供高程信息。下面的代码展示了东爪哇的SRTM数据。从白色到绿色的渐变代表了0到3300米的高程级别。它清晰地展示了从平坦到多山的区域。
// 地图4: SRTM
var map4 = ui.Map();
map4.add(ui.Label('NOAA',{position: 'bottom-center'}));
// 加载SRTM
var srtm = ee.Image('CGIAR/SRTM90_V4');
// 裁剪图像
var srtm = srtm.clip(geometry);
// 制作视觉参数
var vizParam = {min:0, max:3300, palette:['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718',
'74A901', '66A000', '529400', '3E8601', '207401', '056201',
'004C00', '023B01', '012E01', '011D01', '011301']};
// 显示图像
map4.addLayer(srtm, vizParam, 'SRTM');
以上代码展示了如何在东爪哇地区展示SRTM高程数据,其中白色到绿色的渐变代表了从0到3300米的高程变化。
地球引擎还提供了全球人口的栅格图像,该图像清晰地展示了城市中的人口密集区域。每个像素包含了100米x100米网格单元中估计的人口数量。
// 地图5
var map5 = ui.Map();
map5.add(ui.Label('NOAA/夜间灯光/平均辐射 (纳瓦/平方厘米/球面度)',{position: 'bottom-center'}));
var nightdata = ee.ImageCollection('NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG')
.filter(ee.Filter.date('2020-07-01', '2020-09-30'));
var night = nightdata.select('avg_rad'); //纳瓦/平方厘米/球面度
var vizParam5 = {min: 0.0, max: 70.0, palette:['black','white']};
map5.addLayer(night, vizParam5, 'NOAA');
map5.setControlVisibility(false);
以上代码展示了如何展示NOAA提供的夜间灯光数据,这些数据以纳瓦/平方厘米/球面度为单位,显示了全球的夜间灯光情况。
实际上,还可以从卫星图像中获取许多与气候和天气、温度、土地或地形等相关的空间信息。但本文仅展示卫星图像的另一种用途。以下代码展示了美国国家海洋和大气管理局(NOAA)的图像,显示了夜间灯光。稍后可以看到,拥挤的城市夜间灯光更亮。
var map6 = ui.Map();
map6.add(ui.Label('人口',{position: 'bottom-center'}));
var population = ee.ImageCollection("WorldPop/GP/100m/pop");
var vizParam6 = {min:0, max:10, palette:['blue','green','red']};
map6.addLayer(population, vizParam6, '人口');
map6.setControlVisibility(true);
以上代码展示了如何在全球范围内展示人口数据,其中蓝色、绿色和红色分别代表了不同的人口密度。
现在已经处理了许多图像,可以选择从“图层”中显示哪个图像。但是,如果想要同时比较多于一个图像,比如说,想要在屏幕上同时显示Landsat 8 OLI、Sentinel-2、SRTM、世界人口和NOAA,需要多个面板。以下是实现此任务的代码。