У меня есть две коллекции объектов: одна содержит точечные данные с измерениями, а другая - многоугольники, отмечающие различные кластеры, в которых несколько измерений были выполнены близко друг к другу. В движке Google Earth я пытаюсь создать новую (точечную) коллекцию объектов (или отредактировать полигональные объекты), которые содержат средние измеренные значения для каждого отдельного кластера.
Я использовал следующий код для объединения двух разных коллекций пространственных объектов (чтобы полигоны также содержали точечные данные):
var mean = ee.Filter.intersects({
leftField: '.geo',
rightField: '.geo'
})
var saveAllJoin = ee.Join.saveAll({
matchesKey: 'Measurements',
})
var intersect = saveAllJoin.apply(Clusters, Measurements, mean)
Однако, поскольку в одном кластере выполняется несколько измерений, это приводит к набору функций, который содержит список с точками измерения, расположенными в определенном кластере. Вместо этого я ищу средние измеренные значения как свойство многоугольников. Как это сделать в движке Google Earth (или, возможно, в QGIS)?
Я пробовал использовать ee.FeatureCollection.map
, чтобы вычислить среднее значение для каждого отдельного многоугольника:
var clust = ee.FeatureCollection(Clusters).map(function(feature) {
var meanClay = Measurements.reduceColumns({
reducer: ee.Reducer.mean(),
selectors: ['Clay']
})
return feature.set('mean', meanClay)
})
Теперь, если я распечатаю переменную clust, я получу набор функций со средними значениями для (измеренной) атрибутивной глины. Однако каждая функция получает одно и то же значение (среднее значение всех измеренных точек, а не только тех, которые находятся в определенном кластере).
Для ясности: у меня есть шейп-файл с 78 точками измерения (точками), которые загружаются в мой скрипт как набор функций и содержат измеренные значения. Помимо этого, у меня также есть шейп-файл с полигонами, обозначающими 16 областей, в которых был выполнен кластер измерений (то есть около 4-5 измерений в каждом кластере). Теперь я пытаюсь получить среднее значение всех измерений (точек) в каждом многоугольнике (кластере) для каждого отдельного многоугольника.
ee.FeatureCollection.map()
, чтобы суммировать местоположения точек, содержащихся в каждом многоугольнике? - person blindjesse   schedule 01.09.2020ee.FeatureCollection.map()
, однако я новичок в Google Earth Engine и не получаю желаемых результатов. Я добавил дополнительную информацию в свой исходный вопрос. Надеюсь, теперь стало понятнее. - person lcasse   schedule 02.09.2020Measurements
вы должны использоватьfeature.get
для извлечения свойства, которое вы хотите суммировать. - person blindjesse   schedule 02.09.2020