【发布时间】:2021-04-21 01:01:21
【问题描述】:
我正在努力将一个 JavaScript 地球引擎例程转换为来自此材料 here 的 Python
javascript如下我已经包含了上下文的输入集合。
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(roi)
.filterDate('2016-01-01', '2016-12-31');
// Load an Earth Engine table.
var blocks = ee.FeatureCollection('TIGER/2010/Blocks');
var subset = blocks.filterBounds(roi);
print('Size of Census blocks subset', subset.size()); // 409
var triplets = l8.map(function(image) {
return image.select('B1').reduceRegions({
collection: subset.select(['blockid10']),
reducer: ee.Reducer.mean(),
scale: 30
}).filter(ee.Filter.neq('mean', null))
.map(function(f) {
return f.set('imageId', image.id());
});
}).flatten();
我有点卡住的部分是变量triplets的转换,其中包括各种嵌套例程。我的python版本返回错误:
Unrecognized argument type to convert to a FeatureCollection: {'collection': <ee.featurecollection.FeatureCollection object at 0x7f29fb0e2b80>, 'reducer': <ee.Reducer object at 0x7f29fb10e670>, 'scale': 30}
问题似乎出在 map(imfunc) 上,我认为这是因为我把 python 函数弄错了。
def imfunc(image):
return image.select('B1').reduceRegions({
'collection': subset.select(['blockid10']),
'reducer': ee.Reducer.mean(),
'scale': 30})
def wrapf(f):
return f.set('imageId', image.id())
triplets = l8.map(imfunc).filter(ee.Filter.neq('mean', {})).map(wrapf).flatten()
任何人都可以阐明我在 python 转换中出错的地方吗?
【问题讨论】:
标签: javascript python google-earth-engine