利用GEE和站点坐标处理MODIS的LAI数据

        最近要用到LAI数据,结合各位前辈的分享和向GPT请教,突击了一晚上。因为我最终要得到的是站点的数据,并且想直接得到.csv格式,省掉用Arcgis处理tiff文件。最终的代码如下:

        我尝试了MOD15A2H和MCD15A3H,两个数据集,一个8天,一个4天尺度,结果差别不是很大,可以根据实际需求选择。

// 设置站点的经纬度坐标
var siteCoordinates = ee.Geometry.Point([276.6529, 41.6285]); // 请用实际的经纬度替换 lon 和 lat

// 根据站点坐标创建一个缓冲区
var siteBuffer = siteCoordinates.buffer(500); // 缓冲区半径为 500 米,可以根据实际情况调整

// 以站点为中心加载 MODIS 数据集
var dataset = ee.ImageCollection("MODIS/061/MOD15A2H")
    .filterBounds(siteBuffer)
    .filterDate('2011-01-01', '2013-12-31')
    .select('Lai_500m');

// 在地图上显示站点和 MODIS 数据
Map.centerObject(siteBuffer, 6);
Map.addLayer(siteBuffer, {color: 'red'}, 'Site Buffer');
Map.addLayer(dataset, {bands: ['Lai_500m'], min: 0, max: 100}, 'MODIS LAI');

// 定义一个函数,用于在每个图像上进行采样
var sampleImage = function(image) {
    // 使用 reduceRegion 采样
    var sampledValue = image.reduceRegion({
        reducer: ee.Reducer.mean(), // 这里使用均值作为采样统计量,你可以根据需要选择其他统计量
        geometry: siteBuffer,
        scale: 500, // 500 米的分辨率,根据数据集调整
    });

    // 乘以 0.1 来获取真实的 LAI 值
    var laiValue = sampledValue.getNumber('Lai_500m').multiply(0.1);

    // 为每个样本点添加经纬度信息和真实的 LAI 值
    return ee.Feature(siteCoordinates).set('LAI', laiValue);
};

// 对数据集中的每个图像进行采样
var sampledData = dataset.map(sampleImage);

// 打印样本点的 LAI 值,以便检查
print("LAIValues", sampledData);

// 导出样本点数据为 CSV 文件
Export.table.toDrive({
    collection: sampledData,
    description: "MODIS_LAI_Samples",
    folder: "MODIS_Data",
    fileFormat: "CSV"
});