第五篇GEE中使用降水数据集求年平均降水(3)

本文介绍了如何使用NASA的TRMM/3B42数据集计算特定地区(如湖南省)1998年至2019年的年平均降水,通过定义ROI并筛选数据,展示如何生成年降水时间序列图表。用户可以交互式地查看和下载数据结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、主要信息

(一)数据提供者和数据集

(二)可用时间

(三)空间分辨率

(四)所含主要波段

二、数据集的使用

(一)具体代码

(二)结果


一、主要信息

(一)数据提供者和数据集

NASA GES DISC at NASA Goddard Space Flight Center、" TRMM/3B42"

(二)可用时间

1998010100:00:00–2019123121:00:00

(三)空间分辨率

27830

(四)所含主要波段

如下表

名字

单位

最小值

最大值

描述

precipitation

mm/hr

0

100

合并的微波/红外降水估计

relativeError


mm/hr

0

100

合并微波/红外降水随机误差估计

HQprecipitation

mm/hr

0

100

预测距调整的微波降水估计

IRprecipitation

mm/hr

0

100

预测距调整的红外降水估计

satObservationTime

min

-90

90

卫星观测时间减去颗粒时间。 在卫星观测重叠的情况下,两个或多个 观察时间是等权重平均的。

二、数据集的使用

(一)具体代码

使用此数据集计算一个区域(roi)的年平均降水(注意:1、这里需要自己定义一个感兴趣区域roi。2、使用此数据集不可超出它的可用时间范围。)

//3. TRMM/3B42
//定义dataset存储数据集,并筛选时间范围为1998年到2019年的数据。再筛选空间roi、选择降水的波段。
var dataset = ee.ImageCollection('TRMM/3B42')
                .filterDate('1998-01-01','2019-12-31')
                .filterBounds(roi)
                .select('precipitation');
//添加图层roi,并以它为中心将缩放等级设为7
Map.addLayer(roi);
Map.centerObject(roi,7);
//定义时间范围
var startyear = 1998;
var endyear = 2019;
//定义起始年份和结束年份,创建年份列表,按时间戳降序排列
var startdate = ee.Date.fromYMD(startyear,1,1);
var enddate = ee.Date.fromYMD(endyear,12,31);
var list = ee.List.sequence(startyear,endyear);
var P = dataset.filterDate(startdate,enddate)
                .sort('system:time_start',false);
//求每年的降水总量
var yearlyP = ee.ImageCollection.fromImages(
  list.map(function(y){
    var w = P.filter(ee.Filter.calendarRange(y,y,'year')).sum();
    return w. set('year',y)
            .set('date',ee.Date.fromYMD(y,1,1))
            .set('system:time_start',ee.Date.fromYMD(y,1,1));
  })
  );
 //为打印的图表定义标题(名称标题、横轴标题、纵轴标题)
var title = {
  title:'Yearly precipitation',
  hAxis:{title:'Time'},
  vAxis:{title:'Precipitation(mm)'},
};
//创建图表并打印出来
var chart = ui.Chart.image.seriesByRegion({
  imageCollection:yearlyP,
  regions:roi,
  reducer:ee.Reducer.mean(),
  scale:2500,
  xProperty:'system:time_start',
  seriesProperty:'SITE'
}).setOptions(title)
  .setChartType('LineChart');
print(chart);

(二)结果

这里roi以湖南省(如图1)为例,运行结果如图2所示。将鼠标移到折点上就可以显示年平均降水量。

鼠标左键点击折线图图右上角的箭头图标,可以保存为三种格式,分别是csv表格格式、svg和png图片格式,如图3所示。

(图1)

(图2)

(图3)

### 将 GEE 降水数据导入 GIS 系统的方法 为了将 Google Earth Engine (GEE)降水数据成功导入到地理信息系统(GIS),通常有两种主要方法:通过导出功能下载数据至本地文件系统再加载到GIS软件中;或是利用API接口直接在支持Python或其他编程语言的环境中调用并处理这些数据。 #### 方法一:导出数据并通过文件形式载入GIS 当选择此路径时,可以通过 `Export.image.toDrive` 或者其他类似的命令来指定要保存的数据集及其参数设置[^1]。具体实现如下: ```javascript // 定义感兴趣的区域和时间范围内的降水量集合 var precipitationCollection = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY') .filterDate('2023-01-01', '2023-12-31'); // 计算平均每日降水量 var meanPrecipitation = precipitationCollection.mean(); // 设置导出任务并将结果发送到Google Drive账户下的特定文件夹内 Export.image.toDrive({ image: meanPrecipitation, description: 'mean_precipitation_2023', scale: 500, // 分辨率单位为米 region: areaOfInterest.geometry(), // 用户自定义的研究区边界 }); ``` 完成上述过程之后,在个人电脑上安装有ArcGIS Pro、QGIS等桌面版GIS工具的情况下,可以从Google云端硬盘下载对应的GeoTIFF格式文件,并将其添加到地图文档里进一步分析或制图。 #### 方法二:使用 API 接口实时获取数据 对于那些希望保持最新状态而不必频繁更新静态副本的应用场景来说,采用编程方式连接GEE服务器可能是更好的解决方案之一。以 Python为例,可以先安装必要的库如geemap,接着编写脚本来访问所需资源并绘制图表或者创建交互式的Web应用程序[^4]。 ```python import geemap.eefolium as gee # 初始化Map对象 m = gee.Map() # 加载全球日降雨量数据集 precipitation_data = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY") # 应用时间和空间过滤器选取目标时间段和地区内的记录 filtered_collection = ( precipitation_data.filterDate("2023-01-01", "2023-12-31") .filterBounds(area_of_interest) ) # 取得均值图像表示全年累计降水平均分布情况 average_rainfall_image = filtered_collection.sum().divide(365).clip(area_of_interest) # 添加图层到当前视窗展示出来 m.addLayer(average_rainfall_image, {'min': 0, 'max': 10}, name="Annual Average Rainfall") # 显示最终成果给用户查看 m.centerObject(area_of_interest) m ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gee Explorer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值