#google-earth-engine
Вопрос:
Я хотел бы использовать Earth Engine для выборки растровых данных с помощью точек и сохранения этой информации в локальном файле. Я делаю это, создавая FeatureCollection
геометрию точек, а затем передаю эту структуру reduceRegions
вызову. Я повторяю результат getInfo
, чтобы получить выборочные растровые данные. Однако время выполнения этой функции намного медленнее, чем я ожидал. Есть ли какой-либо способ получить обратную связь во время выполнения о задании, которое обрабатывается в GEE, или лучший способ асинхронно запрашивать задания для загрузки на стороне клиента?
Это упрощенная, но функциональная версия того, что я пытаюсь сделать, которая занимает 30 секунд при первом запуске. Мои фактические данные включают тысячи точек, и время ожидания заставляет меня задуматься, не сделал ли я что-то не так.
import ee
def main():
"""Entry point."""
ee.Initialize()
pts = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([-118.6010, 37.0777])),
ee.Feature(ee.Geometry.Point([-118.5896, 37.0778])),
ee.Feature(ee.Geometry.Point([-118.5842, 37.0805])),
ee.Feature(ee.Geometry.Point([-118.5994, 37.0936])),
ee.Feature(ee.Geometry.Point([-118.5861, 37.0567]))
])
img = ee.ImageCollection("LANDSAT/LT05/C01/T1_8DAY_NDVI").filterDate('1997-01-01', '2019-01-01')
mean_img = img.reduce(ee.Reducer.mean())
samples = mean_img.reduceRegions(**{
'collection': pts,
'scale': 30,
'reducer': 'mean'}).getInfo() # <<< takes a long time to run! better way to do this?
for sample in samples['features']:
print(f"{sample['geometry']['coordinates']}, {sample['properties']['mean']}")
if __name__ == '__main__':
main()
Комментарии:
1. Я голосую за то, чтобы закрыть этот вопрос, потому что он относится к gis.stackexchange.com
2. То, что занимает так много времени, скорее всего, является получением среднего значения для стека изображений. Подумайте о количестве изображений, к которым он должен получить доступ за это время!