【问题标题】:Can't get result from Google Earth Engine Script using Python无法使用 Python 从 Google 地球引擎脚本中获取结果
【发布时间】:2018-10-04 21:32:15
【问题描述】:

我正在尝试复制此 python 脚本来计算特征集合的 NDVI 平均值 (Get results in an Earth Engine python script)。似乎代码计算了一个结果,但看不到结果。 这是代码:

import datetime
import ee
ee.Initialize()

#Feature collection
fc = ee.FeatureCollection("ft:1x290vohty0Wgdn5jL3RlpzryK7dfOPtG6yY213e0");
fc_filtered = fc.filter(ee.Filter.equals('NUM_DECS', 1))
#Image collection
Sentinel_collection = (ee.ImageCollection('COPERNICUS/S2')
    .filterBounds(fc_filtered)
    .filterDate(ee.Date('2017-01-01'),ee.Date('2017-08-01')))

def GetSeries(feature):
  def NDVIcalc(img):
    red = img.select('B4')
    nir = img.select('B8')
    ndvi = nir.subtract(red).divide(nir.add(red)).rename(['NDVI'])
    return (feature
            .set(ndvi.reduceRegion(ee.Reducer.mean(), feature.geometry(), 10))
            .set('date', img.date().format("YYYYMMdd")))

  series = Sentinel_collection.map(NDVIcalc)
  list = series.reduceColumns(ee.Reducer.toList(2), ['date', 'NDVI']).get('list')
  return feature.set(ee.Dictionary(ee.List(list).flatten()))


result = fc_filtered.map(GetSeries)
print(result.getInfo())

给我这个结果:

{'columns': {}, 'type': 'FeatureCollection', 'features': [], 'properties': {'name': 'kmltest', 'DocID': '1x290vohty0Wgdn5jL3RlpzryK7dfOPtG6yY213e0'}}

所以看起来好像没有什么东西从里面出来?

我还没有尝试过包含以下内容的下一个:

# Get all possible dates.
dates = ee.List(Sentinel_collection.map(function(img) {
      return ee.Feature(null, {'date': img.date().format("YYYYMMdd") })
}).aggregate_array('date'))

# Make a default value for every date.
header = ee.Feature(null, ee.Dictionary(dates, ee.List.repeat(-1, dates.size())))
output = header.merge(result)
ee.batch.Export.table.toDrive(...)

对做错什么有什么建议吗?更愿意将结果放在特征集合中或导出为列表。

【问题讨论】:

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


    【解决方案1】:

    据我所知,您必须将结果导出到 CSV 驱动器表。所以在这一行之后:

    result = fc_filtered.map(GetSeries)
    

    你必须这样写:

    task=ee.batch.Export.table.toDrive(collection=result,description='Name_csv_file', fileFormat='CSV')
    task.start()
    

    如果您想知道导出是否完成,请检查:

    task.status()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-28
      • 2019-05-21
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2018-08-24
      • 2022-06-21
      相关资源
      最近更新 更多