问题:
我有两个具有相同 ID 的特征集,我想从第二个特征集中减去第一个特征集的表格单元格。
我使用了这个函数,但它计算的是表 1 中第一个元素与表 2 中其他元素的减法。
我想逐个单元格计算减法。第一个表格中 id 为 1 的单元格减去第二个表格中 id 为 1 的单元格,2x2、3x3...
有人能帮我完成这项任务吗?
var result = falsealarms.map(function(falsealarms){ var idb = falsealarms.get('id'); var valuea = omission.filter(ee.Filter.eq('id', idb)).first().get('count'); var resultvalue = ee.Number(falsealarms.get('count')).subtract(valuea); return omission.set('result', resultvalue) });
使用它们旨在从两个集合中查找匹配的元素。
函数
ee.Join.saveFirst(matchKey, ordering, ascending, measureKey, outer)
Returns a join that pairs each element from the first collection with a matching element from the second collection. The first match is added to the result as an additional property.
Arguments:
matchKey (String):
The property name used to save the match.
ordering (String, default: null):
The property on which to sort the matches before selecting the first.
ascending (Boolean, default: true):
Whether the ordering is ascending.
measureKey (String, default: null):
An optional property name used to save the measure of the join condition on the match.
outer (Boolean, default: false):
If true, primary rows without matches will be included in the result.
Returns: Join
apply(primary, secondary, condition)
Joins two collections.
Arguments:
this:join (Join):
The join to apply; determines how the the results are constructed.
primary (FeatureCollection):
The primary collection.
secondary (FeatureCollection):
The secondary collection.
condition (Filter):
The join condition used to select the matches from the two collections.
Returns: FeatureCollection
原始代码:
//define the study area var roi = roi.filter(ee.Filter.inList('Nomencl', ['SH-21-X-D'])); Map.centerObject(roi, 10) Deforestation Mapbiomas/ //Select the t mapbiomas land use classification var mabiomas_t = ee.Image('projects/mapbiomas-workspace/public/collection8/mapbiomas_collection80_integration_v1') .clip(roi) .select('classification_2000'); // create a list of land use classes from the classification var fromList = [3, 4, 5, 6, 49, 11, 12, 50, 32, 29, 13, 15, 18, 19, 39, 20, 40, 62, 41, 36, 46, 47, 35, 48, 9, 21, 23, 24, 30, 25, 33, 31, 27]; // A corresponding list of replacement values var toList = [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]; // performs the reclassification var t_remap = mabiomas_t.remap({ from: fromList, to: toList, defaultValue: 0, bandName: 'classification_2000' }).reproject('EPSG:4326', null, 30); //Map.addLayer(t_remap) //Select the vegetation land use class var veg_class_t = t_remap.eq(1) //Map.addLayer(veg_class_t, null, 'veg_class_mapbiomas') //Select the t + 1 mapbiomas land use classification var mapbiomas_t1 = ee.Image('projects/mapbiomas-workspace/public/collection8/mapbiomas_collection80_integration_v1') .clip(roi) .select('classification_2020'); var fromList = [3, 4, 5, 6, 49, 11, 12, 50, 32, 29, 13, 15, 18, 19, 39, 20, 40, 62, 41, 36, 46, 47, 35, 48, 9, 21, 23, 24, 30, 25, 33, 31, 27]; // A corresponding list of replacement values var toList = [10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 2