Использование редактора кода GEE для создания списка уникальных значений из существующего списка, извлеченного из объекта - PullRequest
0 голосов
/ 26 августа 2018

Я работаю в редакторе кода Google Earth Engine. У меня есть коллекция объектов, содержащая пожары в нескольких состояниях, и мне нужно создать уникальный список состояний, которые будут использоваться в виджете выбора. Я пытаюсь написать функцию, которая принимает список значений состояния для всех пожаров, создает новый список, а затем добавляет новые значения состояния в новый уникальный список. Я запустил приведенный ниже код и не получаю никаких сообщений об ошибках, но вывод все еще statesUnique = []. Кто-нибудь может указать мне правильное направление, чтобы получить новый список для заполнения уникальными значениями для состояний?

Мой код:

// List of state property value for each fire
var states = fire_perim.toList(fire_perim.size()).map(function(f) {
  return ee.Feature(f).get('STATE');
}).sort();
print('States: ', states);

// Create unique list function
var uniqueList = function(list) {
  var newList = []
  var len = list.length;
  for (var i = 0; i < len; i++) {
    var j = newList.contains(list[i]);
    if (j === false) {
      newList.add(list[i])
    }
  }
  return newList
};

// List of unique states
var statesUnique = uniqueList(states);
print('States short list: ', statesUnique)

1 Ответ

0 голосов
/ 30 августа 2018

Хорошо, я не придумал этот ответ, некоторые люди на работе помогли мне, но я хотел опубликовать ответ, так что вот одно решение:

var state_field = 'STATE'
var all_text = 'All states'
// Function to build states list
var build_select = function(feature_collection, field_name, all_text) {
  var field_list = ee.Dictionary(feature_collection.aggregate_histogram(field_name))
                     .keys().insert(0, all_text);
  return field_list.map(function(name) {
    return ee.Dictionary({'label': name, 'value': name})
  }).getInfo();
};

var states_list = build_select(fire_perim, state_field, all_text)
print(states_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...