I would like to get 5 to 95 percent Day_1km_LST from MOD11A1, but it show this error:
ComputedObject (Error) Error in map(ID=2015_01_05): Image.constant: Parameter 'value' is required
The Google Earth Engine Code: https://code.earthengine.google.com/98134eed5eb512d7db6561619a7053c6accept_repo=users%2Fsofiaermida%2Flandsat_smw_lst
// region
var boundary1=ee.FeatureCollection("users/liukunsheng6/GBA");
var roi = boundary1.geometry();
Map.addLayer(roi,{'color':'grey'}, 'studyArea');
Map.centerObject(roi);
var year = 2015;
var LSTVisPara = {
min: 290.0,
max: 310.0,
palette: [
'040274', '040281', '0502a3', '0502b8', '0502ce', '0502e6',
'0602ff', '235cb1', '307ef3', '269db1', '30c8e2', '32d3ef',
'3be285', '3ff38f', '86e26f', '3ae237', 'b5e22e', 'd6e21f',
'fff705', 'ffd611', 'ffb613', 'ff8b13', 'ff6e08', 'ff500d',
'ff0000', 'de0101', 'c21301', 'a71001', '911003'
],
};
// remove cloud for MoDIS_lst
var bitwiseExtract = function(input, fromBit, toBit) {
var maskSize = ee.Number(1).add(toBit).subtract(fromBit);
var mask = ee.Number(1).leftShift(maskSize).subtract(1);
return input.rightShift(fromBit).bitwiseAnd(mask);
};
function maskMod_lst(image){
var lstDay = image.select('LST_Day_1km');
var qcDay = image.select('QC_Day');
// Let's extract all pixels from the input image where
// Bits 0-1 <= 1 (LST produced of both good and other quality)
// Bits 2-3 = 0 (Good data quality)
// Bits 4-5 Ignore, any value is ok
// Bits 6-7 = 0 (Average LST error ≤ 1K)
var qaMask = bitwiseExtract(qcDay, 0, 1).lte(1);
var dataQualityMask = bitwiseExtract(qcDay, 2, 3).eq(0);
var lstErrorMask = bitwiseExtract(qcDay, 6, 7).eq(0);
var mask = qaMask.and(dataQualityMask).and(lstErrorMask);
return lstDay.updateMask(mask).toFloat().multiply(0.02).subtract(273.15)
.copyProperties(image)
.copyProperties(image,["system:time_start"]);
}
//get the 1kmd ailyLST product MOD11A1
var MOD_LST = ee.ImageCollection('MODIS/061/MOD11A1')
.filterDate(ee.Date.fromYMD(year,1,1),ee.Date.fromYMD(year+1,1,1))
.map(maskMod_lst)
.select('LST_Day_1km');
// MO11A1_year composite
var MOD_LST_source = MOD_LST.select('LST_Day_1km').median().clip(roi);
Map.addLayer(MOD_LST_source, LSTVisPara,'LST_Day_1km',false);
// define the percent function
function removeOutliers(image) {
var accPctRange = image.reduceRegion({
reducer: ee.Reducer.percentile([5, 95]),
geometry: roi,
scale: 30,
bestEffort: true
});
var minVal = ee.Number(accPctRange.get('LST_Day_1km_p5'));
var maxVal = ee.Number(accPctRange.get('LST_Day_1km_p95'));
var processedImage = image.updateMask(image.gte(minVal).and(image.lte(maxVal)));
return processedImage;
}
// cal the median
var lst = MOD_LST.map(removeOutliers)
.reduce(ee.Reducer.median())
.clip(roi)
.rename('LST_Day_1km');
// cal the min and max
var minValImage = lst.reduceRegion(ee.Reducer.min(), roi, 1000).get('LST_Day_1km');
var maxValImage = lst.reduceRegion(ee.Reducer.max(), roi, 1000).get('LST_Day_1km');
print('Min Value:', minValImage);
print('Max Value:', maxValImage);