Google EarthEngine:reduceRegion()

时间:2017-10-27 17:49:01

标签: python google-earth-engine

我正在使用Google EarthEngine Python API。我有一个图像集(MODIS),并希望为每个时间步提取一个包含平均NDVI的时间序列。

目前,我正在迭代单个图像并提取每个图像的值。像

feature_geometry = {
    'type': 'MultiPolygon',
    'coordinates': [[[
        [-120, 35],
        [-120.001, 35],
        [-120.001, 35.001],
        [-120, 35.001],
        [-120, 35]
    ]]]
}
ee.Initialize()
feature = ee.Feature(feature_geometry)
collection = ee.ImageCollection(
    'MODIS/006/MOD13Q1').filterDate('2017-01-01', '2017-05-01')
images = [
    item.get('id') for item in collection.getInfo().get('features')]
for image in images:
    print(ee.Image(image).reduceRegion(
        ee.Reducer.mean(), feature.geometry()).getInfo()['NDVI'])

问题:有没有办法在针对EarthEngine的单个请求中获得相同的结果,因为我倾向于遇到请求限制。

1 个答案:

答案 0 :(得分:5)

以下是我认为你要问的一个例子:

import ee
ee.Initialize()

feature_geometry = {
    'type': 'MultiPolygon',
    'coordinates': [[[
        [-120, 35],
        [-120.001, 35],
        [-120.001, 35.001],
        [-120, 35.001],
        [-120, 35]
    ]]]
}

collection = ee.ImageCollection(
    'MODIS/006/MOD13Q1').filterDate('2017-01-01', '2017-05-01')

def setProperty(image):
    dict = image.reduceRegion(ee.Reducer.mean(), feature_geometry)
    return image.set(dict)

withMean = collection.map(setProperty)

print withMean.aggregate_array('NDVI').getInfo()