阅读文献过程中了解到RZSM与ETa/ETref之间存在较强的线性关系,需要在对应三个月的比值中寻找最稳健的关系(如5月RZSM可能与3-5月、4-6月、5-7月的ETa/ETref比值存在较强的线性关系),因此在GEE上实现比值计算和RZSM打印。由于在GEE上直接将数据建立关系还不是很会,所以最后是从csv导出在excel进行的线性拟合(Excel yyds!)
选择RZSM不同水平的像元位置
文献中将不同RZSM水平的像元进行了区分,在这里首先将RZSM图像展示出来,然后选择不同水平的像元,合成为新的featurecollection。
var Vis = {
min: 0.0,
max: 300.0,
palette: [
'ffffff', 'fcd163', '99b718', '66a000', '3e8601', '207401', '056201',
'004c00', '011301'
],
};
Map.addLayer(RZSM_col.select('RZSM').mean().clip(table),Vis,'RZSM')
var points = new ee.FeatureCollection([low,medium,high])
选择数据集并导出RZSM
var startdate = ee.Date('2000-01-01');
var enddate = ee.Date('2023-01-01');
var date = ee.DateRange('2000-01-01','2023-01-01')
//calculate mean SM in root zone
var SM = function(image) {
var sm = image.expression(
'float(0.4*70*layer1+210*0.35*layer2+720*0.25*layer3)',
{
'layer1':image.select('volumetric_soil_water_layer_1'),
'layer2': image.select('volumetric_soil_water_layer_2'),
'layer3': image.select('volumetric_soil_water_layer_3')
}).rename('RZSM');
return image.addBands(sm);
};
var RZSM_col = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY_AGGR")
.select(['volumetric_soil_water_layer_1','volumetric_soil_water_layer_2','volumetric_soil_water_layer_3'])
.filterDate(date).filterBounds(table).map(SM);
print(ui.Chart.image.series({
imageCollection:RZSM_col,
region:medium.geometry(),
scale:11132}))
var ET = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY_AGGR").select(['potential_evaporation_sum','total_evaporation_sum'])
.filterDate(date).filterBounds(table);
将ETa、ETref进行每三月合成并计算比值
var startdate = ee.Date('1999-11-01')
var RATIO = ee.List([])
//这里的279是从1999.11至2022.12之间月份总数-1
for (var i=1;i<279;){
var middate = startdate.advance(3, 'month')
var ET1 = ET.filterDate(startdate,middate).mean().clip(table)
var ETa_0 = ET1.select('total_evaporation_sum').divide(ET1.select('potential_evaporation_sum'))
var ratio = ETa_0.reduceRegion({reducer: ee.Reducer.mean(),geometry:medium.geometry(),scale : 11132});
var RATIO = RATIO.add(ratio)
i=i+1
var startdate = startdate.advance(1, 'month')
}
var ListR = RATIO.map(function(item) {
var DictR = ee.Dictionary(item)
var areaR = ee.Number(DictR.values())
return areaR
})
print('RATIO',ListR.flatten())
print(ui.Chart.array.values(ListR,1))
这里需注意,最后一个chart将list变成了1维数组,(主要是我没有把时间设置为横坐标)所以chart上只有y轴上的散点。但我的目的只是通过chart导出csv,所以也还能用(but然而however可能这方法有点笨= =)。
Excel拟合关系
最后在excel上将对应月份的RZSM与ETa/ETref比值建立线性关系,从中找到最稳健的关系,以此来估算RZSM。