0
点赞
收藏
分享

微信扫一扫

GEE图表——通过使用CHIRPS数据集计算并可视化2024年水年某区域的累计降水量


简介

GEE图表——通过使用CHIRPS数据集计算并可视化2024年水年某区域的累计降水量

函数

ee.ImageCollection.fromImages(images)

Returns the image collection containing the given images.

Arguments:

images (List):

The images to include in the collection.

Returns: ImageCollection

代码解释

好的,以下是代码的详细解释:

### 代码解析
1. **导入CHIRPS数据集**:
    ```javascript
    var chirpsDaily = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY");
    ```
    这行代码导入了CHIRPS(Climate Hazards Group InfraRed Precipitation with Stations)日降水量数据集。2. **定义水年**:
    ```javascript
    var startDate = ee.Date('2024-06-01');
    var endDate = ee.Date('2024-09-30');
    ```
    这里定义了水年的开始和结束日期,从2024年6月1日到2024年9月30日。3. **计算天数**:
    ```javascript
    var days = endDate.difference(startDate, 'day');
    var daysList = ee.List.sequence(1, days);
    ```
    计算水年内的总天数,并生成一个从1到总天数的列表。4. **计算累计降水量**:
    ```javascript
    var cumulativeImages = daysList.map(function(day) {
      var begin = startDate;
      var current = startDate.advance(day, 'day');
      var filtered = chirpsDaily.filter(ee.Filter.date(begin, current));
      var cumulativeImage = filtered.reduce(ee.Reducer.sum())
        .set('system:time_start', current.millis());
      return cumulativeImage;
    });
    ```
    - 使用`map()`函数遍历每一天。
    - 对于每一天,过滤出从开始日期到当前日期的降水数据。
    - 使用`reduce(ee.Reducer.sum())`计算该时间段内的累计降水量。
    - 设置图像的时间戳。5. **创建图像集合**:
    ```javascript
    var cumulativeCol = ee.ImageCollection.fromImages(cumulativeImages);
    ```
    将累计降水量的图像列表转换为图像集合。6. **定义城市位置**:
    ```javascript
    var point = ee.Geometry.Point(77.5946, 12.9716); // 正确的班加罗尔坐标
    ```
    创建一个点,表示印度班加罗尔的地理位置,使用正确的经纬度。7. **绘制累计降水量图表**:
    ```javascript
    var chart = ui.Chart.image.series({
      imageCollection: cumulativeCol, 
      region: point, 
      reducer: ee.Reducer.mean(), 
      scale: 5566,
    }).setOptions({
      interpolateNulls: true,
      lineWidth: 1,
      pointSize: 3,
      title: 'Cumulative Monsoon Rainfall at Bengaluru (2024)',
      vAxis: {title: 'Cumulative Rainfall (mm)'},
      hAxis: {title: 'Month', format: 'YYYY-MMM'}
    });
    print(chart);
    ```
    - 创建图表,显示在指定区域(班加罗尔)内的累计降水量。
    - 使用`reducer: ee.Reducer.mean()`计算平均值。
    - 设置图表的样式和标题。### 总结


这段代码的目的是计算并可视化2024年水年某区域的累计降水量。通过使用CHIRPS数据集,我们能够获取该地区的降水数据,并生成相应的图表进行分析。

全代码

var chirpsDaily = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY");


var startDate = ee.Date('2024-06-01')
var endDate = ee.Date('2024-09-30')

var days = endDate.difference(startDate, 'day')
var daysList = ee.List.sequence(1, days)



var cumulativeImages = daysList.map(function(day) {
  // Filter the collection from start date till the day of computatiton
  var begin = startDate
  var current = startDate.advance(day, 'day')
  var filtered = chirpsDaily.filter(ee.Filter.date(begin, current))
  // Use sum() to calculate total rainfall in the period
  // Make sure to set the start_time for the image
  var cumulativeImage = filtered.reduce(ee.Reducer.sum())
    .set('system:time_start', current.millis())
  return cumulativeImage
})

// 讲计算的每天数据凡在影像集合汇总
var cumulativeCol = ee.ImageCollection.fromImages(cumulativeImages)

// 创建一个研究去
var point = ee.Geometry.Point(107.5946, 32.9716)

// 图表绘制
var chart = ui.Chart.image.series({
  imageCollection: cumulativeCol, 
  region: point, 
  reducer: ee.Reducer.mean(), 
  scale: 5566,
}).setOptions({
      interpolateNulls: true,
      lineWidth: 1,
      pointSize: 3,
      title: 'Cumulative Monsoon Rainfall at Bengaluru (2020)',
      vAxis: {title: 'Cumulative Rainfall (mm)'},
      hAxis: {title: 'Month', format: 'YYYY-MMM'}

});
print(chart);

结果

GEE图表——通过使用CHIRPS数据集计算并可视化2024年水年某区域的累计降水量_图表

举报

相关推荐

0 条评论