目录

简介

数据

代码

代码解释

结果


简介

GEE 训练教程——基于NASA/GPM_L3/IMERG_V07降水数据的时序图表分析

数据

NASA/GPM_L3/IMERG_V07数据集是来自NASA的GPM(Global Precipitation Measurement)卫星的IMERG(Integrated Multi-satellite Retrievals for GPM)产品的一个版本。GPM卫星是一个国际合作的卫星系统,旨在全球范围内测量降水并提供高质量的降水产品。

IMERG产品是基于多个卫星(包括GPM卫星)的观测数据进行整合和处理而来的。它使用了多种卫星传感器的观测数据,如微波、红外和雷达,以及地面测量站点数据,利用复杂的算法和模型进行降水估算。

IMERG V07数据集提供了0.1度分辨率的降水估计数据,其中包括每月、每日和半小时的降水数据。数据集中的主要变量是“precipitation”(降水量),以毫米/小时为单位。

通过使用IMERG数据集,可以进行各种与降水相关的研究和分析,如监测全球降水模式、洪水预测、气候变化研究等。由于其全球覆盖范围和高质量的数据,该数据集在水文学、气象学和环境科学等领域具有广泛的应用。

代码

var geometry = /* color: #d63000 */ee.Geometry.Point([-3.5742187499999867, 39.90973623453719]);

var roi = ee.FeatureCollection("FAO/GAUL_SIMPLIFIED_500m/2015/level0")
.filterBounds(geometry)

Map.centerObject(roi)
Map.addLayer(roi)

var time_start = ee.Date('2024')
var time_end = ee.Date('2025')

var pr = ee.ImageCollection("NASA/GPM_L3/IMERG_V07")
.select('precipitation')
.filterDate(time_start, time_end)

var time_dif = time_end.difference(time_start, 'days')

var list = ee.List.sequence(0, time_dif.subtract(1), 1).map(function(number){
  return time_start.advance(number, 'days')
  })
  
var pr_daily = ee.ImageCollection(list.map(function(date){
  var start_date = ee.Date(date)
  var end_date = start_date.advance(1, 'days')
  var daily = pr.filterDate(start_date, end_date).sum()
  return daily
  .set('system:time_start', start_date.millis())
  .set('system:time_end', end_date.millis())
  .set('system:index', start_date.format('YYYY-MM-dd'))
  }))
  
Map.addLayer(pr_daily.filter(ee.Filter.calendarRange(10, 10, 'month')).toBands().clip(roi), [], 'pr_daily', false)


print(
  ui.Chart.image.series(pr_daily, geometry, ee.Reducer.first(), 10000, 'system:time_start')
  
  )

Export.image.toDrive({
  image: pr_daily.filter(ee.Filter.calendarRange(10, 10, 'month')).toBands().clip(roi).float(), 
  description: 'heavy_pr', 
  scale: 10000, 
  region: roi, 
  crs: 'EPSG:4326', 
  folder: 'test'
  })

代码解释

该代码使用Google Earth Engine的JavaScript API来获取并处理降雨数据。下面是对代码的解释:

  1. geometry变量定义了一个点几何体,表示感兴趣区域的中心点。
  2. roi变量使用filterBounds()方法从FAO的Global Administrative Unit Layers数据集中筛选出与感兴趣区域边界相交的特征集合。
  3. Map.centerObject()方法将地图视图居中于roi。
  4. Map.addLayer()方法将roi添加到地图中。
  5. time_starttime_end变量定义了要筛选的时间范围。
  6. pr变量从NASA的GPM降雨数据集中选择了降雨数据,并使用filterDate()方法筛选出指定时间范围内的图像集合。
  7. time_dif变量计算了时间范围的天数差。
  8. list变量使用ee.List.sequence()方法生成一个从0到time_dif减去1的数字序列,表示每一天的索引。
  9. pr_daily变量是一个图像集合,其中的每个图像代表每天的降雨总量。它使用map()方法遍历list中的每个索引,筛选出对应的时间范围内的降雨数据,并使用sum()方法计算每天的降雨总量。
  10. Map.addLayer()方法通过筛选出10月份的降雨数据,并以图像波段方式显示在地图上。
  11. ui.Chart.image.series()方法通过对指定几何体和时间范围内的图像集合进行重采样(使用Reducer.first()方法)生成时间序列图表。
  12. Export.image.toDrive()方法将降雨数据导出为GeoTIFF图像文件,并保存到Google Drive指定的文件夹中。

结果

GEE 训练教程——基于NASA/GPM_L3/IMERG_V07降水数据的时序图表分析_图表