GEE开发之降雨(CHIRPS)数据获取和分析

本文介绍了如何使用GoogleEarthEngine(GEE)来获取和分析ClimateHazardsGroupInfraRedPrecipitationwithStationData(CHIRPS)的逐日、逐月和逐年降雨数据。通过提供代码示例,展示了对2020年的CHIRPS数据进行过滤、可视化以及导出为TIFF文件的方法,适用于气候变化和干旱监测的研究。
摘要由CSDN通过智能技术生成

前言:主要获取和分析UCSB-CHG/CHIRPS/DAILY的日数据、月数据和年数据。


1.数据介绍

  • 数据集: CHIRPS Daily: Climate Hazards Group InfraRed Precipitation With Station Data (Version 2.0 Final)
  • 数据说明: Climate Hazards Group InfraRed Precipitation with Station data (CHIRPS) 是一个记录了1981年到当前全球降雨量的数据集。CHIRPS将0.05°分辨率的卫星图像与in-situ站点数据结合,创建网格化的降雨时间序列,用于趋势分析和季节性干旱监测。

2.初识CHIRPS

2.1 代码一

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var dataset = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY')
.filterDate('2020-01-01', '2020-12-31')
.filterBounds(geometry)
.select('precipitation');
print(dataset)

在这里插入图片描述

2.2 代码二

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY')
.filterDate('2020-01-01', '2020-12-31')
.filterBounds(geometry)
.select('precipitation');
var precipitationVis = {
    min: 1.0,
    max: 17.0,
    palette: ['001137', '0aab1e', 'e7eb05', 'ff4a2d', 'e90000'],
};
Map.addLayer(dataset.mean().clip(geometry), precipitationVis, 'pre');

在这里插入图片描述

3.逐日数据分析和获取

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var dataset = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY')
.filterDate('2020-05-01', '2020-05-31')
.filterBounds(geometry)
.select('precipitation');
print(ui.Chart.image.series(dataset, geometry, ee.Reducer.mean(), 1000));
function exportImageCollection(imgCol) {
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
  indexList.evaluate(function(indexs) {
    for (var i=0; i<indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      image = image.clip(geometry);
      //tif数据下载
      Export.image.toDrive({
        image: image,
        description: 'pre_'+indexs[i],
        fileNamePrefix: 'pre_'+indexs[i],
        folder: 'pre',
        region: geometry,
        scale: 1000,
        crs: "EPSG:4326",
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(dataset);

在这里插入图片描述
在这里插入图片描述

4.逐月数据分析和获取

4.1 代码一

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var dataset = ee.ImageCollection('UCSB-CHG/CHIRPS/DAILY').filterBounds(geometry).select('precipitation');
//时间范围
var years = ee.List.sequence(2020, 2020);
var months = ee.List.sequence(1, 12);

//将逐日数据生成月平均数据
var monthlysum =  ee.ImageCollection.fromImages(
  years.map(function (y) {
    return months.map(function(m) {
      return dataset.filter(ee.Filter.calendarRange(y,y, 'year'))
      .filter(ee.Filter.calendarRange(m, m, 'month'))
      .sum().set('year', y).set('month', m).set('system:time_start', ee.Date.fromYMD(y, m, 1));
    });
  }).flatten());

print(monthlysum);
print(ui.Chart.image.series(monthlysum, geometry, ee.Reducer.mean(), 1000));

function exportImageCollection(imgCol) {
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
  indexList.evaluate(function(indexs) {
    for (var i=0; i<indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      image = image.clip(geometry);
      //tif数据下载
      Export.image.toDrive({
        image: image,
        description: 'pre_2020_'+indexs[i],
        fileNamePrefix: 'pre_2020_'+indexs[i],
        folder: 'pre',
        region: geometry,
        scale: 1000,
        crs: "EPSG:4326",
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(monthlysum);

在这里插入图片描述
在这里插入图片描述

4.2 代码二(简洁)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,6);
var dataset =ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY");
for(var i=2018;i<=2020;i++){
  for(var j=1;j<=12;j++){
    var data_collection = null;
    switch(j){
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:
        data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-31').select('precipitation');
        break;
      case 4:
      case 6:
      case 9:
      case 11:
        data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-30').select('precipitation');
        break;
      case 2:
        data_collection = dataset.filterDate(i+'-'+j+'-01',i+'-'+j+'-28').select('precipitation');
        break;
    }
    var YR_collection = data_collection.sum().clip(geometry);
    Export.image.toDrive({
      image: YR_collection,
      description: i+'-'+j,
      fileNamePrefix: i+'-'+j,
      scale: 1000,
      region: geometry,
      maxPixels: 1e13,
      folder: 'pre'
    })
  }
}

在这里插入图片描述

5.逐年数据分析和获取

5.1 代码一

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
// 选择数据集并进行波段比例换算
var collection = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY").filterDate('2000-01-01', '2020-12-31').select("precipitation");

//进行年平均值的计算
var years = ee.List.sequence(2000, 2020);
var collectYear = ee.ImageCollection(years
  .map(function(y) {
    var start = ee.Date.fromYMD(y, 1, 1);
    var end = start.advance(12, 'month');
    return collection.filterDate(start, end).reduce(ee.Reducer.sum()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear);
//年均值的时间序列展示
var Yearly_chart = ui.Chart.image.series({
    imageCollection: collectYear.select('precipitation_sum'),
    region: geometry,
    reducer: ee.Reducer.mean(),
    scale: 500,
    xProperty: 'year',
    }).setOptions({
      interpolateNulls: true,
      lineWidth: 2,
      title: 'pre Yearly Seires',
      vAxis: {title: 'pre'},
      hAxis: {title: 'Date'},
    });
print(Yearly_chart);

function exportImageCollection(imgCol) {
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
  indexList.evaluate(function(indexs) {
    for (var i=0; i<indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      image = image.clip(geometry);
      //tif数据下载
      Export.image.toDrive({
        image: image,
        description: 'pre_'+indexs[i],
        fileNamePrefix: 'pre_'+indexs[i],
        folder: 'pre',
        region: geometry,
        scale: 1000,
        crs: "EPSG:4326",
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(collectYear);

在这里插入图片描述
在这里插入图片描述

5.2 代码二(简洁)

var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,6);
var dataset =ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY");

for(var i=2018;i<=2020;i++){
  var data_collection = dataset.filterDate(i+'-01-01',i+'-12-31').select('precipitation');
  print(data_collection)
  var YR_collection = data_collection.sum().clip(geometry);
  Export.image.toDrive({
    image: YR_collection,
    description: i,
    fileNamePrefix: i,
    scale: 1000,
    region: geometry,
    maxPixels: 1e13,
    folder: 'pre'
  });
}

在这里插入图片描述

  • 11
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

等待着冬天的风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值