今天小编要分享的是雨水数据的长时间序列分析,年年都下的雨,在时间的维度上会碰撞出什么样的火花,我们拭目以待!
1.数据来源说明
CHIRPS数据全称“气候危害群红外线降水与站点数据”,该数据可利用时间能够追溯到1981年,目前仍然在更新当中,主要用于研究人员分析特定空间在特定时间段内降雨量的变化趋势,从而广泛应用于干旱监测。CHIRPS数据由美国地质调查局(USGS)和地球资源观测与科学(EROS)联合创建,通过Google Earth Engine平台能够直接调用。
时间单位是Pentad,Pentad是一种时间单位,用于表示五天的时间段。它常用于气象学和农业领域,用于统计和分析天气模式、农作物生长等与时间相关的数据。Pentad的概念源自于希腊语中的"penta",意为五。在气象学中,Pentad通常用于观测和记录降水量、温度、风速等天气要素的变化。这种时间单位的使用可以帮助研究人员更好地理解和预测天气变化的规律。在CHIRPS数据中,PENTAD记录表示的是五天的总降雨量,而不是五天降雨量的平均值。
调用代码如下:
var dataset = ee.ImageCollection('UCSB-CHG/CHIRPS/PENTAD')
.filter(ee.Filter.date('2018-05-01', '2018-05-05'));
var precipitation = dataset.select('precipitation');
var precipitationVis = {
min: 0,
max: 112,
palette: ['001137', '0aab1e', 'e7eb05', 'ff4a2d', 'e90000'],
};
Map.setCenter(17.93, 7.71, 2);
Map.addLayer(precipitation, precipitationVis, 'Precipitation');
2.应用目标
本案例基于GEE平台对CHIRPS数据进行分析,以期得到:
(1)1990-2020年江西省降雨量时间序列(五天为单位)。
(2)2020年年内江西省降雨量时间序列(五天为单位)并分析年内降雨量趋势变化。
(3)分析江西省内某点(25°47′N,114°39′E)在(2018-01-01,2021-01-01)的降水月度异常变化。
降雨月度异常为某特定年份月份的降雨量与该月份历年降雨平均值之间的差值,差值结果的正负代表该月份的降雨量与长时间尺度平均降雨量的偏差程度,进而能够判断该月份降雨量是否异常。
3.代码实现过程
(1)加载研究区域
var roi = ee.FeatureCollection("users/hesuixinya511/Province").filterMetadata("NAME","equals","江西");
Map.centerObject(roi,6);
Map.addLayer(roi,{"color":"red"},"Study Area");
(2)调用CHIRPS数据
var CHIRPS = ee.ImageCollection("UCSB-CHG/CHIRPS/PENTAD");
var precip = CHIRPS.filterDate("1990-01-01","2020-01-01");
(3)江西省近30年降雨量统计图表分析
var JXprecip = ui.Chart.image.series(
precip,roi,ee.Reducer.mean(),1000,"system:time_start")
.setOptions({
title:"Thirty-year average precipitation time series in Jiangxi",
vAxis:{title:"mm/pentad"},
});
print(JXprecip);
结果展示:
(4)江西省2020年降雨量年内变化分析
var Date = CHIRPS.filterDate("2020-01-01","2020-12-31");
var precip_2020 = ui.Chart.image.series(
Date,roi,ee.Reducer.mean(),1000,"system:time_start")
.setOptions({
title:"precipitation of Jiangxi in 2020",
vAxis:{title:"mm/pentad"},
trendlines:{0:{title:"precip_trend",type:"linear",showR2:true,color:"red"
,visibleInLegend:true}}
});
print(precip_2020);
结果展示:
var JXprecipyearMean = CHIRPS.mean().clip(roi);
var JXprecip2020Mean = Date.mean().clip(roi);
Map.addLayer(JXprecipyearMean,{"min":0,"max":40,"palette":"FF0000,FF8400,FFFF00,DAFF60,89FFBE,28DBFF,3873FF,0000FF"},"YearMean");
Map.addLayer(JXprecip2020Mean,{"min":0,"max":40,"palette":"FF0000,FF8400,FFFF00,DAFF60,89FFBE,28DBFF,3873FF,0000FF"},"2020Mean");
结果展示:
①年度均值
②2020年内均值
(5)计算特定点位的月度异常
var JXprecipyearMean = CHIRPS.mean().clip(roi);
var JXprecip2020Mean = Date.mean().clip(roi);
Map.addLayer(JXprecipyearMean,{"min":0,"max":40,"palette":"FF0000,FF8400,FFFF00,DAFF60,89FFBE,28DBFF,3873FF,0000FF"},"YearMean");
Map.addLayer(JXprecip2020Mean,{"min":0,"max":40,"palette":"FF0000,FF8400,FFFF00,DAFF60,89FFBE,28DBFF,3873FF,0000FF"},"2020Mean");
结果展示:
①年度均值
图片
②2020年内均值
图片
(5)计算特定点位的月度异常
var point = ee.Geometry.Point(114.650556,25.791944);
var means = ee.ImageCollection(ee.List.sequence(1,12)
.map(function(m){
return CHIRPS.filter(ee.Filter.calendarRange(m,m,"month")).mean().set("month",m);
}));
var start = ee.Date("2018-01-01");
var months = ee.List.sequence(0,36);
var dates = months.map(function(index){
return start.advance(index,"month");
});
print(dates);
var byMonth = ee.ImageCollection.fromImages(
dates.map(function(date){
var beginning = date;
var end = ee.Date(date).advance(1,'month');
var mean = CHIRPS.filterDate(beginning,end).mean().set("date",date);
var month = ee.Date(date).getRelative("month","year").add(1);
return mean.subtract(
means.filter(ee.Filter.eq("month",month)).first()).set("date",date);
})
);
print(byMonth);
var outlier = byMonth.filterBounds(roi);
Map.addLayer(ee.Image(outlier.filterBounds(roi).first()),{"palette":"ff0000,FFA500,FFFFFF,00FFFF,00FF00"},"precipitation outlier");
var chart = ui.Chart.image.series({
imageCollection:byMonth,
region:point,
reducer:ee.Reducer.mean(),
scale:1000,
xProperty:"date"
});
print(chart);
结果展示:
4.总结
本案例分享基于GEE实现特定区域的CHIRPS数据的调用,初步出现了长时间尺度和短时间尺度的空间可视化分析,并对降水月度异常进行了计算,具有一定的实践意义。但关于CHIRPS数据的深度应用还有待加强,后续需要进一步探讨。
GEE学习之路漫长,愿你我共同成长,更多内容请关注小编公众号“梧桐凉月”,谢谢大家!