长期的网格降水产品对水文学、农业和气候科学的各种应用至关重要。由于地面网络密度不均匀,难以合并多个卫星传感器,可用的降水产品存在时空不一致的问题。卫星土壤湿度观测值通过最近的自下而上方法通过SM2RAIN(土壤水分到雨)算法估计降雨,
SM2RAIN-ASCAT是一种通过SM2RAIN算法从ASCAT获得卫星土壤湿度数据的新型全球规模降雨产品(Brocca et al., 2014; 2019)。SM2RAIN-ASCAT降雨数据集(以mm/d为单位)全球0.1度采样(3600x1801)通过常规网格提供。乘积表示指定日期00:00和23:59之间的累计降雨。
降雨数据集共提供14个。netCDF文件(2007-2020年,每年/个)。附着在数据集中的质量标记已被用来掩盖低质量数据和复杂地形、冻土和热带森林。
作为欧洲气象卫星开发组织(EUMETSAT)2006年、2012年年和2018年发射的三项气象业务中,极地系统计划的一部分(MetOp)先进的卫星SCATterometer(ASCAT)。通过MetOp散射计传感器的连续性可以保证到2040年代中期。所以,通过将SM2RAIN算法应用于ASCAT土壤湿度观测,
本文介绍了数据预处理,SM2RAIN算法公式化和数据后处理的最新改进可用于获取2007年至2020年的12.5公里空间采样SM2RAIN-ASCAT日降雨量数据记录准全球(仅在陆地上)。与欧洲、美国、印度和澳大利亚的优质地面网络进行比较SM2RAIN–ASCAT区域内评估了数据记录的质量。
SM2RAIN–ASCAT皮尔逊的相关系数和均方根误差图作为数据记录的基准ERA5重新分析数据集进行比较(2007-2018年)
此外,使用三重配置(TC)技术在全球范围内进行了评估,使我们能够将这些数据与之进行比较的早期版本,以及
结果表明,SM2RAIN–ASCAT降雨数据记录在区域和全球表现良好,特别是,SM2RAIN–ASCAT在世界上数据稀少的地区,如非洲和南美洲,数据记录的性能优于IMERG和GPCC。期待在这些地区SM2RAIN–ASCAT用于水文和农业应用会获得更大的收益。这些可能在未来通过更先进的偏差校正技术进行校正。
在验证期间,使用了几个指标来评估产品的性能。作为连续得分,我们计算了皮尔逊的相关系数、均方根误差、估计降雨与参考降雨之间的平均误差估计降雨量和参考降雨量的时间变化率。考虑累积降雨1 连续得分逐个像素计算。
另外,已经计算出三个分类分数,即。POD是正确识别的降雨事件的比例(最优值POD=1),FAR预测是非事件的比例(最优值FAR?=0),而TS其他两个得分的组合(最优值TS=1)。对参考数据集中的降雨插值或重新网格化可能造成的虚假事件进行分类评估。
根据皮尔逊的相关系数R,1009个测试点表示两种不同构型的性能。
1009个测试点中不同验证方法的性能表示
1.皮尔逊相关系数R/2.均方根误差RMSE/3.变异率STDRATIO/
4.估计降雨量与参考降雨量之间的平均误差BIAS/5.误报率FAR/
6.检测概率POD/7.威胁评分TS
下图显示了从地面观察和BC-MON四个地区的平均降雨时间序列。R值大于0.83,BIAS极低值与观测值的平均降雨量一致。此外,区域降雨事件正确再现在时间和强度上。
SM2RAIN–ASCAT皮尔逊的相关系数R和均方根误差RMSE以图与为基准ERA对数据集(2007-2018年)进行了比较。该分析以1 d和12.5 km时空分辨率。下图显示,SM2RAIN–ASCAT数据记录在美国西部、巴西、南美南部和西部、非洲南部、萨赫勒地区、欧亚大陆中部南部和澳大利亚(绿色)。
SM2RAIN–ASCAT区域评估降雨数据记录,并与GPCC,ERA5和GPM-ER比较降雨产品。使用意大利、美国、印度和澳大利亚的优质地面数据集作为参考。根据皮尔逊的相关系数R/均方根误差RMSE/变异率STDRATIO/估计降雨量与参考降雨量之间的平均误差BIAS/误报率FAR/检测概率POD/威胁评分TS进行评价。
全局三重配置TC结果:(a图是SM2RAIN–ASCAT的RTC映射)、(b图是GPM-ER的RTC映射)、c图是a和b差异:即SM2RAIN–ASCAT(GPM-ER)该区域的蓝色像素也表现得更好。红色表示差异和d框曲线图RTC为SM2RAIN-ASCAT,GPM-ER,和GPCC的映射。在南美和非洲(不包括沙漠和热带森林),SM2RAIN–ASCAT性能明显优于GPM-ER,其他两种卫星产品性能相似。
性能最好的产品是基于上述三重配置数据的结果。SM2RAIN–ASCAT在非洲、南美、中西美和中亚三种产品中表现最好。GPCC在北半球和澳大利亚的其他地区表现最好。GPM-ER是热带和赤道地区的最佳产品。
The SM2RAIN–ASCAT data record is freely available at https://doi.org/10.5281/zenodo.3405563 (recently extended to the end of July 2020) (Brocca et al., 2019).
Brocca,L.,Filippucci,P.,Hahn,S.,Ciabatta,L.,Massari,C.,Camici,S.,Schüller,L.,Bojkov,B.,Wagner,W.(2019).SM2RAIN-ASCAT(2007-2018):globaldailysatelliterainfallfromASCATsoilmoisture.EarthSystemScienceData,11,1583–1601,doi:10.5194/essd-11-1583-2019.https://doi.org/10.5194/essd-11-1583-2019.
Brocca, L., Ciabatta, L., Massari, C., Moramarco, T., Hahn, S., Hasenauer, S., Kidd, R., Dorigo, W., Wagner, W., Levizzani, V. (2014). Soil as a natural rain gauge: estimating global rainfall from satellite soil moisture data. Journal of Geophysical Research, 119(9), 5128-5141, doi:10.1002/2014JD021489.
Brocca,L.,Filippucci,P.,Hahn,S.,Ciabatta,L.,Massari,C.,Camici,S., Schüller, L., Bojkov, B., and Wagner, W. (2019). SM2RAIN-ASCAT (2007–2018): global daily satellite rainfall from ASCAT soil moisture, Earth Syst. Sci. Data Discuss., https://doi.org/10.5194/essd-2019-48, in review.
Wagner, W., Hahn, S., Kidd, R., Melzer, T., Bartalis, Z., Hasenauer, S., Figa, J., de Rosnay, P., Jann, A., Schneider, S., Komma, J., Kubu, G., Brugger, K., Aubrecht, C., Zuger, J., Gangkofner, U., Kienberger, S., Brocca, L., Wang, Y., Bloeschl, G., Eitzinger, J., Steinnocher, K., Zeil, P., Rubel, F. (2013). The ASCAT Soil Moisture Product: A Review of its Specifications, Validation Results, and Emerging Applications. Meteorologische Zeitschrift, 22(1), 5-33, doi:10.1127/0941-2948/2013/0399.
#extract_SM2RAIN_data.py
#Python script for extracting 1 point (longitude and latitude coordinates stored in the text of the code) from SM2RAIN-ASCAT rainfall dataset
import netCDF4
import numpy as np
from scipy import spatial
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
nc_f='path/to/the/data/SM2RAIN_ASCAT_0125_2007.nc'
nc_fid = netCDF4.Dataset(nc_f, 'r')
# Coordinates of the station you want to extract
stat=[11.88,44.31]
lat_ = nc_fid.variables['Latitude'][:]
lon_ = nc_fid.variables['Longitude'][:]
tree=spatial.KDTree(zip(lon_.ravel(),lat_.ravel()))
[d,ID]=tree.query(stat)
# Extraction of SM2RAIN-ASCAT rainfall from 2007 to 2018
datahub=[]
for ii in np.arange(2007,2019):
nc_f='path/to/the/data/SM2RAIN_ASCAT_0125_'+str(ii)+'.nc'
nc_fid = netCDF4.Dataset(nc_f, 'r')
Rain=nc_fid.variables['Rainfall'][ID]
# np.concatenate does not preserve masking of MaskedArray inputs, here np.ma.concatenate is used
datahub=np.ma.concatenate((datahub,Rain), axis=0)
DD = np.arange(datetime(2007,1,1), datetime(2019,1,1), timedelta(days=1)).astype(datetime)
plt.plot(DD,datahub)
plt.ylabel('rainfall [mm/day]')
plt.title('SM2RAIN-ASCAT lon;lat='+str(stat[0])+';'+str(stat[1]))
plt.show()
%extract_stat_SM2RAINASCAT.m
%Matlab script for extracting 1 point (longitude and latitude coordinates stored in the text of the code) from SM2RAIN-ASCAT rainfall dataset
%% Extraction of SM2RAIN-ASCAT rainfall at one station
lonlat_stat=[11.88,44.31]; % Coordinates of the station you want to extract
%Extraction of the pixel closest to the selected coordinates
namefile='SM2RAIN_ASCAT_0125_2018.nc';
lon_=ncread(['SM2RAIN_ASCAT_0125_2018.nc'],'Longitude');
lat_=ncread(['SM2RAIN_ASCAT_0125_2018.nc'],'Latitude');
ID=knnsearch([lon_,lat_],lonlat_stat);
% Extraction of SM2RAIN-ASCAT rainfall from 2007 to 2018
D=(datenum('1-jan-2007'):datenum('31-dec-2018'))';
Psim_SM2RASC=[];
for ii=2007:2018 % loop over the years 2007 to 2018
ii
Psim_SM2RASC=[Psim_SM2RASC;...
ncread(['SM2RAIN_ASCAT_0125_',num2str(ii),'.nc'],'Rainfall',[1 ID],[yeardays(ii) 1])];
end
% Plotting the figure
plot(D,Psim_SM2RASC)
grid on, box on
datetick
ylabel('rainfall [mm/day]')
title(['SM2RAIN-ASCAT lon;lat=',num2str(lonlat_stat(1),'%3.2f'),';',num2str(lonlat_stat(2),'%3.2f')])
%extract_Npoints_SM2RAINASCAT.m
%Matlab script for extracting N points (longitude and latitude coordinates stored in the text file "lonlat_ext.txt") from SM2RAIN-ASCAT rainfall dataset
clc,clear,close all
lonlat_ext=load('lonlat_ext.txt');
lon_=ncread(['SM2RAIN_ASCAT_0125_2018.nc'],'Longitude');
lat_=ncread(['SM2RAIN_ASCAT_0125_2018.nc'],'Latitude');
ID=knnsearch([lon_,lat_],lonlat_ext);
D=(datenum('1-jan-2007'):datenum('31-dec-2018'))';
Psim_SM2RASC=[];
for ii=2007:2018
ii
PP=ncread(['SM2RAIN_ASCAT_0125_',num2str(ii),'.nc'],'Rainfall');
Psim_SM2RASC=[Psim_SM2RASC,PP(:,ID)'];
end
% Plotting the figure
plot(D,Psim_SM2RASC)
grid on, box on
datetick
ylabel('rainfall [mm/day]')
title(['SM2RAIN-ASCAT ',num2str(size(lonlat_ext,1)),' points'])