Как я могу добавить две коллекции featureCollections?

Мне нужно добавить два (немного разных) featureCollections, у которых нет общих функций: одна коллекция описывает многоугольники одного типа, другая - другого типа без пространственного перекрытия, и я намерен создать одну featureCollection, чтобы использовать их для классификации изображения.

Я думаю, что решением может быть соединение saveAll, но я не могу понять, как это работает (и я могу ошибаться!)


// Create the primary collection.
var primaryFeatures = ee.FeatureCollection([
  ee.Feature(null, {foo: 0, ID: 'a'}),
  ee.Feature(null, {foo: 1, ID: 'b'}),
  ee.Feature(null, {foo: 1, ID: 'c'}),
  ee.Feature(null, {foo: 2, ID: 'd'}),
]);

// Create the secondary collection.
var secondaryFeatures = ee.FeatureCollection([
  ee.Feature(null, {foo: 1, bar: 1, ID: 'e'}),
  ee.Feature(null, {foo: 3, bar: 1, ID: 'f'}),
  ee.Feature(null, {foo: 2, bar: 2, ID: 'g'}),
  ee.Feature(null, {foo: 2, bar: 3, ID: 'h'}),
]);

// Use an equals filter to specify how the collections match.
var toyFilter = ee.Filter.notEquals({
  leftField: 'ID',
  rightField: 'ID'
});

// Define the join.
var allJoin = ee.Join.saveAll({ matchesKey: 'ID'});

// Apply the join.
var toyJoin = allJoin.apply(primaryFeatures, secondaryFeatures,  toyFilter);

// Print the result.
print('All join toy example:', toyJoin);

Я ожидаю featureCollection с 8 строками и (возможно) тремя столбцами, но я не возражаю, если он удалит несоответствующие столбцы. В настоящее время я получаю набор функций только с вторичными функциями (я думаю) и идентификатором в очень странном формате списка, который я не понимаю.


person CMB    schedule 02.06.2019    source источник


Ответы (1)


print(primaryFeatures.merge(secondaryFeatures));

Это производит FeatureCollection (8 elements, 3 columns) с обоими входными данными и никакими изменениями ни одной из функций.

person Kevin Reid    schedule 02.06.2019
comment
Точно, не знаю, как мне не удалось найти слияние в моих поисках! Спасибо большое. - person CMB; 02.06.2019