Google Earth Engine(GEE)实例代码学习三十九——交互形式显示每点数值(Two chart Inspector)

在地图旁边添加两个图表,以交互方式显示每次单击地图时的NDVI和反射率的时间序列。

//加载Landsat8 大气顶层反射率
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
    .filterDate('2016-06-01', '2017-06-01');

// 选择红绿蓝波段,计算NDVI
var rgb = l8.select(['B4', 'B3', 'B2']);
var ndvi = l8.map(function(image) {
  return image.select().addBands(image.normalizedDifference(['B5', 'B4']));
});
//设置一个调色板
var vis = {min: 0, max: 1, palette: [
  'FFFFFF', 'CE7E45', 'FCD163', '66A000', '207401',
  '056201', '004C00', '023B01', '012E01', '011301'
]};
//加载图层
Map.addLayer(ndvi, vis, 'NDVI');
Map.setCenter(-94.84497, 39.01918, 8);
// 创建一个面板来容纳我们的小部件。
var panel = ui.Panel();
panel.style().set('width', '300px');

// 创建带有标签的简介面板。
var intro = ui.Panel([
  ui.Label({
    value: 'Two Chart Inspector',
    style: {fontSize: '20px', fontWeight: 'bold'}
  }),
  ui.Label('Click a point on the map to inspect.')
]);
panel.add(intro);

// 创建显示经纬度的标签
var lon = ui.Label();
var lat = ui.Label();
panel.add(ui.Panel([lon, lat], ui.Panel.Layout.flow('horizontal')));

// 在地图上点击时返回经纬度
Map.onClick(function(coords) {
  lon.setValue('lon: ' + coords.lon.toFixed(2)),
  lat.setValue('lat: ' + coords.lat.toFixed(2));

  // 在地图上点击时显示红色点
  var point = ee.Geometry.Point(coords.lon, coords.lat);
  var dot = ui.Map.Layer(point, {color: 'FF0000'});
  Map.layers().set(1, dot);

  // 创建一个NDVI的图表,选择NDVI数据集,鼠标点击的位置,取平均值,像元尺度500
  var ndviChart = ui.Chart.image.series(ndvi, point, ee.Reducer.mean(), 500);
 //设置NDVI
  ndviChart.setOptions({
    title: 'NDVI Over Time',
    vAxis: {title: 'NDVI'},
    hAxis: {title: 'date', format: 'MM-yy', gridlines: {count: 7}},
  });
  panel.widgets().set(2, ndviChart);

  // 设置RGB图表
  var rgbChart = ui.Chart.image.series(rgb, point)
      .setOptions({
        title: 'RGB Reflectance Over Time',
        vAxis: {title: 'band value'},
        hAxis: {title: 'date', format: 'MM-yy', gridlines: {count: 7}},
      });
   panel.widgets().set(3, rgbChart);
});
Map.style().set('cursor', 'crosshair');
// Add the panel to the ui.root.
ui.root.insert(0, panel);

运行结果
Google Earth Engine(GEE)实例代码学习三十九——交互形式显示每点数值(Two chart Inspector)_第1张图片

你可能感兴趣的:(GEE实例代码学习)