开发者社区 问答 正文

AI Earth的image_Collection 支持往里逐个加image吗?

AI Earth的image_Collection 支持往里逐个加image吗? 我想计算区域内每个月的NDVI 栅格影像 放到一个collection 然后在逐月NDVI的Collection 中计算出 最大值合成的NDVI栅格影像和全年均值的栅格影像 下载到本地。案例里是直接统计区域的均值了

展开
收起
三分钟热度的鱼 2023-11-22 20:05:35 88 分享 版权
3 条回答
写回答
取消 提交回答
  • 是的,AI Earth的ee.ImageCollection是支持逐个添加ee.Image的。你可以使用add()方法来将单个影像添加到集合中。

    对于你的需求,你可以首先创建一个空的ee.ImageCollection,然后每个月添加一次NDVI影像。然后,你可以使用reduce()函数来计算集合中的最大值和平均值。最后,你可以使用getDownloadURL()函数来下载这些结果。

    以下是一个简单的示例:

    # 假设你已经有了每个月的NDVI影像
    ndvi_images = ee.ImageCollection('COPERNICUS/S2/SR_BANDS') \
      .filterDate('2021-01-01', '2021-12-31') \
      .select('NDVI')
    
    # 创建一个空的ImageCollection
    result_collection = ee.ImageCollection()
    
    # 遍历每个月的NDVI影像,并将其添加到结果集合中
    for image in ndvi_images.toList(12):
      result_collection = result_collection.add(image)
    
    # 计算结果集合中的最大值和平均值
    max_ndvi = result_collection.max()
    mean_ndvi = result_collection.mean()
    
    # 下载最大值和平均值
    max_ndvi_url = max_ndvi.getDownloadURL({'scale': 20, 'crs': 'EPSG:4326', 'maxPixels': 1e13})
    mean_ndvi_url = mean_ndvi.getDownloadURL({'scale': 20, 'crs': 'EPSG:4326', 'maxPixels': 1e13})
    
    print('Max NDVI URL:', max_ndvi_url)
    print('Mean NDVI URL:', mean_ndvi_url)
    

    这段代码首先创建了一个空的ee.ImageCollection,然后每个月添加一次NDVI影像。然后,它计算了结果集合中的最大值和平均值。最后,它生成了这两个结果的下载链接,并打印了出来。

    2023-11-28 10:48:41
    赞同 展开评论
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    AI Earth应该支持在Image Collection中逐个添加图像,但是要将多个月份的NDVI栅格影像汇总在一起,并计算最大值合成的NDVI栅格影像和全年均值栅格影像,需要一定的编程技巧。
    下面是一个基本的例子,假设你有一个名为'landsat'的Image Collection,你需要计算每年的最大值和均值NDVI,并下载到本地:

    var monthlyMaxNVDI = landsat.map(function(image) {
        var ndvi = image.normalizedDifference(['B4', 'B5']).rename('nd');
        return image.addBands(ndvi);
    });
    
    // 汇总一年的NDVI最大值
    var annualMaxNDVI = monthlyMaxNVDI.reduce(ee.Reducer.max());
    
    // 计算一年的NDVI均值
    var annualMeanNDVI = monthlyMaxNVDI.reduce(ee.Reducer.mean());
    
    // 下载到本地
    Export.image.toDrive({
      image: annualMaxNDVI,
      description: 'annualMaxNDVI',
      region: geometry,
      scale: 30,
      maxPixels: 1e13,
      crs: 'EPSG:4326',
      fileFormat: 'GeoTIFF'
    });
    
    Export.image.toDrive({
      image: annualMeanNDVI,
      description: 'annualMeanNDVI',
      region: geometry,
      scale: 30,
      maxPixels: 1e13,
      crs: 'EPSG:4326',
      fileFormat: 'GeoTIFF'
    });
    

    这个示例中,首先计算每个月的NDVI,然后使用reduce函数来汇总一年的NDVI最大值和均值。最后,使用Export.image.toDrive函数将结果下载到本地硬盘。

    2023-11-23 14:41:49
    赞同 展开评论
    1. ImageCollection支持通过list image构建,可参考示例:https://engine-aiearth.aliyun.com/docs/page/api?d=e5c222#heading-2
    2. 获取ImageCollection的最大值和均值,使用ImageCollection的max和mean函数,生成Image,然后导出,参考:https://engine-aiearth.aliyun.com/docs/page/api?d=a22508 此回答整理自钉群“AI Earth地球科学云平台交流群”
    2023-11-22 20:16:45
    赞同 展开评论