
GEE 图表:分析摩苏尔水库流域的土壤湿度和降水数据,计算并可视化时序图表
NASA_USDA/HSL/SMAP10KM_soil_moisture数据是由NASA和美国农业部合作开发的数据集,用于显示和分析土壤湿度信息。这个数据集的目标是提供全球范围内10公里分辨率的土壤湿度观测数据。
该数据集是通过使用名为Soil Moisture Active Passive (SMAP)的卫星来收集观测数据。SMAP卫星使用雷达和微波辐射技术来测量地表土壤的水分含量。这些观测数据随后由NASA和美国农业部的Hydrology and Remote Sensing Laboratory (HSL)进行处理和分析,生成了该数据集。
NASA_USDA/HSL/SMAP10KM_soil_moisture数据包含了全球各地区的土壤湿度观测结果,并提供了每个像素的土壤湿度值。数据以每天更新,并提供了历史数据,可以用于分析土壤湿度的季节性和年际变化。
这个数据集对于许多应用领域都非常有用,包括农业、气象预报、土地管理和自然资源管理。例如,农业研究人员可以使用这些数据来监测和预测农作物的水分状况,帮助决策制定者更好地管理灌溉。气象预报员可以将土壤湿度数据与气象数据结合使用,改善天气预报的准确性。
总之,NASA_USDA/HSL/SMAP10KM_soil_moisture数据提供了全球范围内土壤湿度观测数据,具有广泛的应用潜力。使用者可以通过访问NASA和美国农业部的网站获取更多关于该数据集的详细信息和下载数据。
NASA/GPM_L3/IMERG_MONTHLY_V06数据是由NASA的降水测量卫星(Global Precipitation Measurement,GPM)和国际多个合作伙伴共同开发的数据集,用于显示和分析全球范围内的月降水量信息。该数据集是通过使用GPM卫星的雷达和微波辐射技术来收集全球降水观测数据。
NASA/GPM_L3/IMERG_MONTHLY_V06数据提供了每个月的全球降水量数据,并以月为单位进行更新。该数据集使用了一种名为IMERG(Integrated Multi-satellitE Retrievals for GPM)的算法来整合来自多个卫星的数据,以提供更准确的降水估计。
IMERG算法使用了多个卫星的数据,包括GPM卫星、TRMM(Tropical Rainfall Measuring Mission)卫星以及其他降水观测卫星的数据。通过整合这些数据,IMERG算法能够提供高分辨率(约0.1度或10公里)的全球降水量估计。
NASA/GPM_L3/IMERG_MONTHLY_V06数据对于许多应用领域都非常有用,包括气象预测、水资源管理、洪水监测等。研究人员和决策制定者可以使用这些数据来分析降水的空间和时间分布模式,以及其对环境和人类活动的影响。
总之,NASA/GPM_L3/IMERG_MONTHLY_V06数据提供了全球范围内的月降水量估计数据,采用高分辨率观测和整合算法。使用者可以通过访问NASA的网站获取更多关于该数据集的详细信息,并下载数据进行分析和研究。
这段代码主要是用来分析摩苏尔水库流域的土壤湿度和降水量的异常情况,具体步骤如下:
var basin_boundary = ee.FeatureCollection('projects/ee-nasagsfcsoils/assets/mosul_dissolve');var nasa_usda_smap = ee.ImageCollection('NASA_USDA/HSL/SMAP10KM_soil_moisture');
var gpm_imerg = ee.ImageCollection('NASA/GPM_L3/IMERG_MONTHLY_V06');var startYear = 2001;
var endYear = 2022;var ssSusMa = nasa_usda_smap.filterDate(startDate, endDate).sort('system:time_start', true).select(['ssma', 'susma']);var rawMonthlyPrecipitation = gpm_imerg.select('precipitation').filterDate(startDate, endDate).map(gpmScale);var chart = ui.Chart.image.series({ ... });ui.Chart.image.series() 函数提取土壤湿度和降水的时间序列数据,并绘制图表。var smVis = { ... };
var preVis = { ... };这段代码的主要目的是通过分析摩苏尔水库流域的土壤湿度和降水数据,计算并可视化它们的异常情况,帮助研究者理解水资源的变化及其影响。
// 1. 倒入流域边界
/*
摩苏尔大坝是位于底格里斯河上的一个大型水库,它发源于土耳其东部,流经伊拉克。
大坝水库由底格里斯河补给,排放60至5000 m3/s的水。自1985年建造以来,
流出量在100到1000 m3/s之间。摩苏尔大坝水库是伊拉克和土耳其之间的一个河流流域
排水面积52,000平方公里,其中8%在伊拉克,92%在伊拉克境外。
*/
var basin_boundary = ee.FeatureCollection(
'projects/ee-nasagsfcsoils/assets/mosul_dissolve');
// Add basin boundary in the map.
Map.addLayer(basin_boundary, {}, 'Area of interest');
Map.centerObject(basin_boundary, 7);
// 2. 倒入土壤和降水数据
/*
美国宇航局-美国农业部增强的SMAP数据集将SMAP的2级土壤湿度观测数据集成到其中
利用一维集成卡尔曼滤波器改进Palmer模型,提高基于模型的土壤湿度
估计,特别是在缺乏优质降水仪器的地区。在这个演示中,
我们使用了2015年4月至2022年8月提供的地表和地下土壤湿度。
全球降水任务(GPM)是一项每三小时观测一次雨雪情况的卫星任务。
GPM综合多卫星检索(IMERG)是提供降雨估计的算法
使用来自所有GPM仪器的数据。在这个演示中,我们使用了每月一次的GPM IMERG的最终产品,
从2001年6月到2021年9月开始发售。
*/
// 土壤湿度数据
var nasa_usda_smap = ee.ImageCollection('NASA_USDA/HSL/SMAP10KM_soil_moisture');
// 降水数据
var gpm_imerg = ee.ImageCollection('NASA/GPM_L3/IMERG_MONTHLY_V06');
// 3. 定义时间和范围
// Define study period.
var startYear = 2001;
var endYear = 2022;
var startMonth = 1;
var endMonth = 12;
var startDate = ee.Date.fromYMD(startYear, startMonth, 1);
var endDate = ee.Date.fromYMD(endYear, endMonth, 31);
var years = ee.List.sequence(startYear, endYear);
var months = ee.List.sequence(1, 12);
// 一天的降水量
var gpmScale = function(image) {
return image.multiply(24)
.copyProperties(image, ['system:time_start']);
};
// 计算指定月份
var computeAnomalyPrecipitation = function(image) {
// Get the month of the image.
var year = image.date().get('year');
var month = image.date().get('month');
// Get the corresponding reference image for the month.
var referenceImage = meanMonthlyPrecipitation.filter(
ee.Filter.eq('month', month)).first();
// Check if the images have bands
var hasBands = image.bandNames().size().gt(0);
// Compute the anomaly by subtracting reference image from input image.
var anomalyImage = ee.Algorithms.If(
hasBands,
image.subtract(referenceImage),
image);
return ee.Image(anomalyImage).set(
'system:time_start', ee.Date.fromYMD(year, month, 1).millis());
};
// 4. 土壤湿度产品
/*
我们直接使用来自美国宇航局-美国农业部增强型SMAP土壤湿度的异常产品
*/
//异常表面和地下土壤湿度(mm)。
var ssSusMa = nasa_usda_smap
.filterDate(startDate, endDate)
.sort('system:time_start', true) // sort a collection in ascending order
.select(['ssma', 'susma']); // surface and subsurface soil moisture bands
// 计算地表和地下土壤的月度异常湿度。
var monthlySsSusMa = ee.ImageCollection.fromImages(
years.map(function(y) {
return months.map(function(m) {
var filtered = ssSusMa.filter(ee.Filter.calendarRange(y, y, 'year'))
.filter(ee.Filter.calendarRange(m, m, 'month'))
.mean();
return filtered.set(
'system:time_start', ee.Date.fromYMD(y, m, 1).millis());
});
}).flatten()
);
// 5. 降水数据处理
/*
GPM IMERG没有异常产物。计算异常月降水时间序列
从每月的降水时间序列中,从原始时间序列中减去所有年份的每个月的平均值
每月的价值。
*/
// 降水(mm/day).
var rawMonthlyPrecipitation =
gpm_imerg
.select('precipitation')
.filterDate(startDate, endDate)
.sort('system:time_start', true)
.map(gpmScale); // convert rainfall unit from mm/hr to mm/d
// 确保月降水量与土壤水分持续时间相同。
var monthlyPrecipitation = ee.ImageCollection.fromImages(
years.map(function(y) {
return months.map(function(m) {
var filtered = rawMonthlyPrecipitation
.filter(ee.Filter.calendarRange(y, y, 'year'))
.filter(ee.Filter.calendarRange(m, m, 'month'))
.mean();
return filtered.set({
'month': m,
'system:time_start': ee.Date.fromYMD(y, m, 1).millis()
});
});
}).flatten()
);
// 计算气候学上的月降水量。
var meanMonthlyPrecipitation = ee.ImageCollection.fromImages(
ee.List.sequence(1, 12).map(function(m) {
var filtered = monthlyPrecipitation.filter(ee.Filter.eq('month', m)).mean();
return filtered.set('month', m);
})
);
// 绘制每月降水量收集的函数,计算每个月的异常降水量。
var monthlyPrecipitationAnomalies = monthlyPrecipitation.map(
computeAnomalyPrecipitation);
// 6.绘制土壤水分和降水的异常时间序列
/*
使用ui的Chart.image.series()函数提取的时间序列
土壤水分或沉淀图像中的土壤水分或沉淀像素值
并显示图表。
创建一个显示地表和地下土壤湿度的三个异常时间序列的地块
和降水,土壤水分值在主y轴和降水值
在二次y轴上。
这个异常时间序列分析显示了这两个数据集之间的重叠周期,
这个时间可能从2015年4月到2021年9月。
*/
// C合并影像
var smpreDatasets = monthlySsSusMa.combine(monthlyPrecipitationAnomalies);
print('soil moisture and precipitation', smpreDatasets);
var chart =
ui.Chart.image.series({
imageCollection: smpreDatasets,
region: basin_boundary,
scale: 10000,
xProperty: 'system:time_start'
})
.setSeriesNames(['surface SM', 'subsurface SM', 'precipitation'])
.setOptions({
title: 'Anomalies time series: surface soil moisture, sub-surface soil ' +
'moisture, and precipitation',
series: {
0: {
targetAxisIndex: 0, type: 'line', lineWidth: 3,
pointSize: 1, color: '#ffc61a'
},
1: {
targetAxisIndex: 0, type: 'line', lineWidth: 3, pointSize: 1,
lineDashStyle: [2, 2], color: '#330000'
},
2: {
targetAxisIndex: 1, type: 'line', lineWidth: 3, pointSize: 1,
lineDashStyle: [4, 4], color: '#1a1aff'
},
},
hAxis: {
title: 'Date',
titleTextStyle: {italic: false, bold: true}
},
vAxes: {
0: {
title: 'soil moisture (mm)',
baseline: 0, titleTextStyle: {bold: true, color: '#ffc61a'},
viewWindow: {min: -4, max: 4}
},
1: {
title: 'precipitation (mm)',
baseline: 0, titleTextStyle: {bold: true, color: '#1a1aff'},
viewWindow: {min: -2.5, max: 2.5}
}
},
curveType: 'function'
});
print(chart);
// 7.土壤水分和降水异常的空间分布
/*
根据时间序列异常图,我们检测到最负的异常
在2021年5月的土壤湿度和降水中。下面的脚本进行调查
这些变量在当月被研究的盆地中的空间变化。
棕色较多的像素具有更多的负值
*/
// 设定颜色
var palette = ['8c510a', 'bf812d', 'dfc27d', 'f6e8c3', 'ffffff',
'ffffff', 'c7eae5','80cdc1','35978f','01665e'];
var smVis = {
min: -4,
max: 4,
opacity: 0.9,
palette: palette,
};
// Setup colors for precipitation anomalies.
var preVis = {
min: -3,
max: 3,
opacity: 0.9,
palette: palette,
};
// 筛选指定的时间和范围
var thisSsSusMa = monthlySsSusMa.filterDate(
'2021-05-01', '2021-05-31').first().clip(basin_boundary);
var thisPre = monthlyPrecipitationAnomalies.filterDate(
'2021-05-01', '2021-05-31').first().clip(basin_boundary);
// 加载结果
Map.addLayer(thisSsSusMa.select('ssma'), smVis, 'Surface Soil Moisture');
Map.addLayer(thisSsSusMa.select('susma'), smVis, 'Subsurface Soil Moisture');
Map.addLayer(thisPre, preVis, 'Precipitation');