示例 1
CHIRPS 流域月降雨统计
适用场景
适合需要长期日降雨转月累计、制作流域水文模型输入或对比多年季节变化的研究。
数据源
CHIRPS Daily
关键参数
- · 时间范围:2020-01-01 至 2020-12-31
- · 研究区:GeoJSON 面边界示例,正式研究应替换为可信流域边界
- · 统计方式:月降雨累计 CSV
注意事项
- · CHIRPS 是准全球产品,正式使用前应检查研究区是否在有效覆盖范围内。
- · 月累计结果应结合站点观测或已有研究做合理性检查。
相关工具推荐
GEE JavaScript 示例代码
// Generated by kuaigongju.com for research workflow drafting.
// 数据源名称: CHIRPS Daily
// 单位说明: CHIRPS precipitation 为日降雨量,常用单位 mm/day;按月或年累计时脚本使用 sum 得到 mm。
// 时间范围: 2020-01-01 至 2020-12-31(结束日期按 UTC 包含处理)
// 研究区说明: 用户粘贴的 GeoJSON;请确认边界来源、坐标系和拓扑质量
// 引用和许可证提醒: 请按 UCSB Climate Hazards Center 与 CHIRPS 官方页面要求引用数据和论文。 同时核对 Google Earth Engine 平台条款。
// 免责声明: 不建议未经验证直接用于工程或灾害决策。
// 请在正式成果中记录数据版本、访问日期、参数、空间边界和质量控制过程。
var regionGeoJSON = {"type":"Polygon","coordinates":[[[104,20],[112,20],[112,27],[104,27],[104,20]]]};
var region = ee.Geometry(regionGeoJSON);
var regionLabel = 'geojson_geometry';
var startDate = ee.Date('2020-01-01');
var endDate = ee.Date('2020-12-31').advance(1, 'day'); // inclusive end date in UTC
var collection = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY')
.filterDate(startDate, endDate)
.filterBounds(region);
// CHIRPS is quasi-global, not complete global coverage. Common coverage is about 50S-50N.
// The precipitation band is daily rainfall in mm/day.
var rainfall = collection.select('precipitation');
print('CHIRPS Daily', rainfall);
// Monthly rainfall total: sum rainfall images in each month, then export regional mean total as CSV.
Map.centerObject(region, 7);
Map.addLayer(region, {color: 'red'}, 'analysis region');
var periodCount = endDate.difference(startDate, 'month').ceil();
var periodOffsets = ee.List.sequence(0, periodCount.subtract(1));
var monthlySeries = periodOffsets.map(function(offset) {
var periodStart = startDate.advance(offset, 'month');
var rawPeriodEnd = periodStart.advance(1, 'month');
var periodEnd = ee.Date(ee.Algorithms.If(rawPeriodEnd.millis().gt(endDate.millis()), endDate, rawPeriodEnd));
var rainfallImage = rainfall.filterDate(periodStart, periodEnd).sum().rename('rainfall_mm');
var stats = rainfallImage.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: region,
scale: 5566,
bestEffort: true,
maxPixels: 1e13
});
return ee.Feature(null, {
period_start_utc: periodStart.format('YYYY-MM-dd'),
period_end_utc: periodEnd.advance(-1, 'day').format('YYYY-MM-dd'),
aggregation: 'month_total',
region_label: regionLabel,
rainfall_total_mm: stats.get('rainfall_mm'),
data_source: 'chirps',
note: 'CHIRPS is quasi-global and its daily precipitation band is already in mm/day.'
});
});
Export.table.toDrive({
collection: ee.FeatureCollection(monthlySeries),
description: 'chirps_monthly_total_csv',
fileNamePrefix: 'chirps_monthly_total_csv',
fileFormat: 'CSV'
});