需求: 需要知道伊塞克湖流域,耕地的,年降水量/年潜在蒸散发量 的时间序列
时间段: 2001-2016共计16年
分析:
- 土地利用数据,每年不同
- 降水数据
- 降水量小时数据合计为年数据image→多年数据imageCollection
- 多年数据imageCollection 掩膜 得到耕地多年数据imageCollection
- 耕地多年数据imageCollection 裁剪 得到伊塞克湖耕地多年数据imageCollection
- 伊塞克湖耕地多年数据imageCollection 空间统计 得到伊塞克湖耕地多年数据List
var Isyk = ee.FeatureCollection("users/keatinggee/Natural_division/Boundary/Central_Asia_Issyk-kul");
Map.centerObject(Isyk,8)
//选择数据集及其中合适的字段
//降水='total_precipitation_hourly';E0='potential_evaporation_hourly'
var ERA5_Pcp = ee.ImageCollection("ECMWF/ERA5_LAND/HOURLY")
.select('total_precipitation_hourly')
var MCD12 = ee.ImageCollection('MODIS/061/MCD12Q1')
var igbpLandCover = MCD12.select('LC_Type1')
//构建年列表
var years = ee.List.sequence(2001, 2016)
//得到每年统计量 [一年一个image,各栅格的每年的总降水量]
//对每年的数据进行处理,返回一个image,最终组成imageCollection
var PcpYears = ee.ImageCollection(years
.map(function(y) {
//构建统计起始时间
var start = ee.Date.fromYMD(y, 1, 1)
var end = start.advance(12, 'month')
//应用起始时间统计
//确定土地利用数据生成掩膜 [12为耕地]
var Lucc_crop = igbpLandCover.filterDate(start).first().eq(12)
//气象数据
var ERA5_Pcp_year = ERA5_Pcp
.filterDate(start, end)
.reduce(ee.Reducer.sum ())
.multiply(1000)
.set('system:time_start',y).set('year',y)
var ERA5_Pcp_year_Isy = ERA5_Pcp_year.clip(Isyk)
//返回掩膜气象
return ERA5_Pcp_year_Isy.updateMask(Lucc_crop)
}))
//若希望中途输出
//将imageCollection转化为一张image用于输出
var exportImage = PcpYears.toBands()
Export.image.toDrive({
image: exportImage,
description: 'Issyke_Pcp',
scale: 100,
region: Isyk,
maxPixels: 1e13,
crs: 'EPSG:4326', // 输出数据的投影参考系
fileFormat: 'GeoTIFF' // 输出文件的格式
});
//区域统计 [提取区域均值]
var regionMean = PcpYears.map(function(image){
var values = image.reduceRegion({
reducer:ee.Reducer.mean(),
geometry:Isyk,
scale:1000//太小会报错
})
var em_feature = ee.Feature(null, {'Date':image.get('system:time_start'),'Value':values})
return em_feature
})
Export.table.toDrive({
collection: regionMean,
description: 'issyke_Pcp',
fileFormat: 'CSV'
});