夜间灯光数据线性拟合
本文分享如何利用影像波段实现线性拟合。
linearFit()计算斜率和截距,输入数据第一个为x第二个为y
//创建一个函数:获取每张图像的"年"与1990年差值,作为一个波段添加到数据集中,作为线性拟合的参数
function createTimeBand(img) {
var year = img.date().difference(ee.Date('1990-01-01'), 'year');
return ee.Image(year).float().addBands(img);
}
// 选取夜间灯光数据为其添加波段,利用“年份”和平均夜光指数进行线性拟合
var collection = ee.ImageCollection('NOAA/DMSP-OLS/CALIBRATED_LIGHTS_V4')
.select('avg_vis')
.map(createTimeBand);
var fit = collection.reduce(ee.Reducer.linearFit());
// 显示平均夜光影像波段
Map.addLayer(ee.Image(collection.select('avg_vis').first()),
{min: 0, max: 63},
'stable lights first asset');
//显示计算的斜率截距进行彩色合成
Map.setCenter(30, 45, 4);
Map.addLayer(fit,
{min: 0, max: [0.18, 20, -0.18], bands: ['scale', 'offset', 'scale']},
'stable lights trend');
代码运行结果