在 Google Earth Engine 中与另一个要素集合合并时保留要素集合属性

Keeping feature collection properties when merging with another feature collection in Google Earth Engine

我是 Google Earth Engine 的新用户,虽然我有一些使用 R 编写代码的经验。我正在尝试合并几个具有相同 属性 标签的 ee.FeatureCollections,如下面使用树的简短示例所示。

我首先定义了两个特征集合(随机点,只是为了说明问题),为每个特征集合设置两个属性:一个 'type' 和一个具有关联值的 'status' 标签。

var trees = ee.FeatureCollection(ee.Geometry.Point([-122.22599, 37.17605])).set('type','Sycamore').set('status', 'dead');

var trees2 = ee.FeatureCollection(ee.Geometry.Point([-125.3456, 38.16578])).set('type','Aspen').set('status','alive');

然后我合并两个特征集合: var treesMerge = trees1.merge(trees2);

但是,当我打印合并的集合时,与每个特征关联的属性并没有从各个特征集合中继承:

print(trees1); print(trees2); print(treesMerge);

有没有办法合并保留这些属性的特征集合?

您写了 ee.FeatureCollection(...).set('type','Sycamore').set('status', 'dead'),它没有为单个要素设置属性,而是为 集合作为一个整体设置属性 .merge() 不会保留这些属性,但这没什么大不了的,因为如果需要,复制它们很容易。

如果您设置属性 对个别特征 ,那么 .merge() 将保留它们。

var trees1 = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([-122.22599, 37.17605]))
    .set('type', 'Sycamore')
    .set('status', 'dead')
]);

var trees2 = ee.FeatureCollection([
  // This is equivalent to using .set()
  ee.Feature(
    ee.Geometry.Point([-125.3456, 38.16578]),
    {'type': 'Aspen', 'status': 'alive'}
  )
]);

var treesMerge = trees1.merge(trees2);

print(trees1);
print(trees2);
print(treesMerge);