第一章:时间序列数据合成
利用每个月可获取植被指数数据取均值,合成月度平均植被指数,然后将12个月中的数据合成一个12波段的时间数据合成数据。
代码基础内容:
1、去云函数与植被指数函数
2、构建基础数据波段
3、构建for循环来合成时间序列数据
代码如下:
//define your study area here!
var studyarea = ee.FeatureCollection("projects/test2export/assets/31");
Map.centerObject(studyarea,4); //数字为缩放尺度
Map.addLayer(studyarea); //展示数据
// caclute NDVI
function NDVI(image) {
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
return image.addBands(ndvi);
}
/**
* Function to mask clouds using the Sentinel-2 QA band
* @param {ee.Image} image Sentinel-2 image
* @return {ee.Image} cloud masked Sentinel-2 image
*/
function maskS2clouds(image) {
var qa = image.select('QA60');
// Bits 10 and 11 are clouds and cirrus, respectively.
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
// 1 month mean NDVI
var month = '1';
var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2023-0'+month+'-01', '2023-'+month+'-28') //影像时间
// Pre-filter to get less cloudy granules.
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',5)) //云量
.map(maskS2clouds) //去云
.map(function(image) {
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI1');
return image.addBands(ndvi);
}) //添加指数) //重命名
.select(['NDVI1']); //影像集
// print(dataset.first().getInfo())
var base_data = dataset.median().clip(studyarea); //中值影像,裁剪出研究区影像
print(base_data);
for (var i=2;i<=12;i++)
{
var month_ndvi = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2023-0'+month+'-01', '2023-'+month+'-28') //影像时间
// Pre-filter to get less cloudy granules.
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',5)) //云量
.map(maskS2clouds) //去云
.map(NDVI) //添加指数) //重命名
.select(['NDVI']); //影像集;
print(month_ndvi.first())
var month_ndvi = month_ndvi.median().clip(studyarea).select('NDVI').rename('NDVI'+i); //中值影像,裁剪出研究区影像
base_data = base_data.addBands(month_ndvi)
}
print(base_data)
// var NDVI;
// 导出哨兵2号影像数据
Export.image.toDrive({
image:base_data,
description:"sentinel2_Time_series",
region:studyarea,
scale:10,
maxPixels:1e13
})
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。