【问题标题】:Google Earth Engine - RGB image export from ImageCollection Python APIGoogle Earth Engine - 从 ImageCollection Python API 导出 RGB 图像
【发布时间】:2019-03-29 05:18:44
【问题描述】:

我在使用 Google Earth Engine python API 来生成基于 ImageCollection 的 RGB 图像时遇到了一些问题。

基本上,为了将 ImageCollection 转换为 Image,我应用了中值缩减。在这个缩减之后,我应用了可视化函数,我需要定义不同的变量,比如最小值和最大值。问题是这两个值是依赖于图像的。

dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
        .filterBounds(ee.Geometry.Polygon([[39.05789266, 13.59051553],
                       [39.11335033, 13.59051553],
                       [39.11335033, 13.64477783],
                       [39.05789266, 13.64477783],
                       [39.05789266, 13.59051553]]))
        .filterDate('2016-01-01', '2016-12-31')
        .select(['B4', 'B3', 'B2'])

reduction = dataset.reduce('median')
            .visualize(bands=['B4_median', 'B3_median', 'B2_median'],
                         min=0,
                         max=3000,
                         gamma=1)

因此,对于每个不同的图像,我需要处理这两个可能会发生明显变化的值。由于我需要生成的图像数量巨大,因此无法手动完成。我不知道如何克服这个问题,也找不到该问题的任何答案。一个想法是找到图像的最小值和最大值。但我没有找到任何允许在 Javascript 或 python API 上执行此操作的函数。

我希望有人能帮助我。

【问题讨论】:

    标签: python-3.x google-earth-engine


    【解决方案1】:

    您可以使用img.reduceRegion() 获取所需区域的图像统计信息以及要导出的每个图像。您必须将区域缩减的结果调用到可视化函数中。这是一个例子:

    geom = ee.Geometry.Polygon([[39.05789266, 13.59051553],
                       [39.11335033, 13.59051553],
                       [39.11335033, 13.64477783],
                       [39.05789266, 13.64477783],
                       [39.05789266, 13.59051553]])
    
    dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')\
        .filterBounds(geom)\
        .filterDate('2016-01-01', '2016-12-31')\
        .select(['B4', 'B3', 'B2'])
    
    reduction = dataset.median()
    
    stats = reduction.reduceRegion(reducer=ee.Reducer.minMax(),geometry=geom,scale=100,bestEffort=True)
    
    statDict = stats.getInfo()
    
    prettyImg = reduction.visualize(bands=['B4', 'B3', 'B2'],
                         min=[statDict['B4_min'],statDict['B3_min'],statDict['B2_min']]
                         max=[statDict['B4_max'],statDict['B3_max'],statDict['B2_max']],
                         gamma=1)
    

    使用这种方法,我得到这样的输出图像:

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多