这次使用到的工具:
ui.Chart.image.regions(image, regions, reducer, scale, seriesProperty, xLabels)
和上次的.byregions不同下面黄色部分
Generates a Chart from an image. Extracts and plots the value of each band in one or more regions.
- X-axis = Band labeled by xProperty (default: band name).
- Y-axis = Reducer output.
- Series = Region labeled by seriesProperty (default: 'system:index').
系列 = 由 seriesProperty 标记的区域(默认值:'system:index')属性值不同,主要是标记的点来进行属性添加的。
Returns a chart.
Arguments:
image (Image):
Image to extract band values from.
regions (Feature|FeatureCollection|Geometry|List<Feature>|List<Geometry>, optional):
Regions to reduce. Defaults to the image's footprint.
reducer (Reducer, optional):筛选器产生一个单个波段的值作为Y轴的值
Reducer that generates the value(s) for the y-axis. Must return a single value per band.
scale (Number, optional):
The pixel scale in meters.
seriesProperty (String, optional):
用作图例中每个区域标签的属性。默认为“系统:索引”
Property to be used as the label for each region in the legend. Defaults to 'system:index'.
xLabels (List<Object>, optional):
A list of labels used for bands on the x-axis. Must have the same number of elements as the image bands. If omitted, bands will be labeled with their names. If the labels are numeric (e.g. wavelengths), x-axis will be continuous.
Returns: ui.Chart
看代码:
var landsat8Toa = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA');
//设定一个变量三个颜色,一会分别作为三个点显示的颜色
var COLOR = {
PARK: 'ff0000',
FARM: '0000ff',
URBAN: '00ff00'
};
// 设置三个你想知道的点,并且把label作为其中的legend图例 Three known locations.
var park = ee.Feature(
ee.Geometry.Point(-99.25260, 19.32235), {'label': 'park'});
var farm = ee.Feature(
ee.Geometry.Point(-99.08992, 19.27868), {'label': 'farm'});
var urban = ee.Feature(
ee.Geometry.Point(-99.21135, 19.31860), {'label': 'urban'});
//设置点的集合作为矢量点图层
var mexicoPoints = ee.FeatureCollection([park, farm, urban]);
landsat8Toa = landsat8Toa.filterBounds(mexicoPoints);
//选取第一幅影像
var mexicoImage = ee.Image(landsat8Toa.first());
// 选取波段可以这么选省下一个个写,Select bands B1 to B7.
mexicoImage = mexicoImage.select(['B[1-7]']);
//这个就是根据你的矢量无论是点还是面还是线,一般都是通过region来进行图形的显示
var bandChart = ui.Chart.image.regions({
image: mexicoImage,
regions: mexicoPoints,
scale: 30,
seriesProperty: 'label'
});
//设置你的图像显示,本次选择是线性图
bandChart.setChartType('LineChart');
//设置你的图上的属性,设置横纵轴和标题,线宽和点的大小
bandChart.setOptions({
title: 'Landsat 8 TOA band values at three points near Mexico City',
hAxis: {
title: 'Band'
},
vAxis: {
title: 'Reflectance'
},
lineWidth: 1,
pointSize: 4,
series: {
0: {color: COLOR.PARK},
1: {color: COLOR.FARM},
2: {color: COLOR.URBAN}
}
});
// From: https://landsat.usgs.gov/what-are-best-spectral-bands-use-my-study最佳光谱值通过官网提供的,自己可以查询
var wavelengths = [.44, .48, .56, .65, .86, 1.61, 2.2];
//这个是光谱的值图像显示seriesProperty就是你的图例,label对应的键值
var spectraChart = ui.Chart.image.regions({
image: mexicoImage,
regions: mexicoPoints,
scale: 30,
seriesProperty: 'label',
xLabels: wavelengths
});
spectraChart.setChartType('LineChart');
spectraChart.setOptions({
title: 'Landsat 8 TOA spectra at three points near Mexico City',
hAxis: {
title: 'Wavelength (micrometers)'//()中代表你的单位
},
vAxis: {
title: 'Reflectance'
},
lineWidth: 1,
pointSize: 4,
series: {
0: {color: COLOR.PARK},
1: {color: COLOR.FARM},
2: {color: COLOR.URBAN}
}
});
//最后打印两个图表
print(bandChart);
print(spectraChart);
Map.addLayer(park, {color: COLOR.PARK});
Map.addLayer(farm, {color: COLOR.FARM});
Map.addLayer(urban, {color: COLOR.URBAN});
Map.setCenter(-99.25260, 19.32235, 11);
三个点的信息分别代表市区、城中心和农场