GEE modis 蒸散发代码
时间: 2023-09-21 14:04:56 浏览: 145
以下是使用 Google Earth Engine (GEE) 计算 MODIS 蒸散发的示例代码:
```javascript
var startDate = '2019-01-01';
var endDate = '2019-12-31';
var region = ee.Geometry.Polygon([[73.5, 18.5], [135, 18.5], [135, 54], [73.5, 54], [73.5, 18.5]]);
// 加载 MODIS 数据集
var modis = ee.ImageCollection('MODIS/006/MOD16A2')
.filterDate(startDate, endDate)
.filterBounds(region);
// 定义计算蒸散发的函数
var et = function(image) {
var lw = image.select('LW_incoming_1000m');
var sw = image.select('SW_incoming_1000m');
var et = image.select('ET');
var t = image.select('LST_Day_1km').multiply(0.02).subtract(273.15);
var esat = t.expression('0.6108 * exp(17.27 * b / (b + 237.3))', {'b': t});
var delta = t.expression('4098 * esat / pow(b + 237.3, 2)', {'b': t});
var ra = sw.expression('(solar_constant * 24 * 3600 / pi) * (d * sin(phi) * sin(delta) + cos(phi) * cos(delta) * sin(d))', {
'solar_constant': 1367,
'pi': 3.14159,
'phi': image.select('cos_phi'),
'delta': delta,
'd': lw.expression('acos(-1 * tan(phi) * tan(delta))', {'phi': image.select('cos_phi'), 'delta': delta})
});
var g = lw.subtract(ra).multiply(0.408);
var et_image = g.divide(g.add(delta.multiply(900 / t.add(273.15).add(17.27).pow(2)))).multiply(24 * 3600 / 1000);
return image.addBands(et_image.rename('ET'));
};
// 计算蒸散发
var etCollection = modis.map(et);
// 取出蒸散发数据
var etData = etCollection.select('ET');
// 显示蒸散发数据
Map.addLayer(etData, {min: 0, max: 10, palette: ['blue', 'green', 'yellow', 'red']}, 'ET');
```
注:此代码计算的是 MODIS 蒸散发数据集(MOD16A2)中的每日蒸散发数据,并在地图上显示。在代码中,我们首先加载了 MODIS 数据集,然后定义了一个计算蒸散发的函数 et,最后对 MODIS 数据集应用该函数并取出蒸散发数据。
阅读全文