Я новичок в Earth Engine, и мне трудно определить, какой лучший метод получения табличных данных на уровне пикселей основан на входных растровых и векторных данных и географических точках интереса.
У меня естьсводная таблица географических точек интереса для Африки («интерес»), растров Hansen Global Forest Cover Watch («gfc2014_c») и шейп-файла районов и стран Африки к югу от Сахары («SSA»).
//Load the Hansen data and create layers
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015');
//Load the SSA administrative district shapefile
var SSA = ee.FeatureCollection('users/salem043/Africa_Districts')
//Crop the Hansen data we are interested in to the SSA admin shapefile
var gfc2014_c = gfc2014.clip(SSA);
//Load the data points of interest from the fusion table
var interest = ee.FeatureCollection('ft:1DCL5m_EO8kKMis2BWTdzfg-i9uc4uAZ2xNLQuhf7');
Я хочу извлечь данные GFC (все основные полосы) для каждой из достопримечательностей.Но мне также нужна информация из шейп-файла - мне нужны переменные, которые определяют, в какой геометрии лежат точки.
Одна страница, на которой я нашел информацию об этой задаче, была здесь:
Итак, я попробовал их метод, просто используя данные GFC, который выглядит следующим образом (опять же, в основном это взято по ссылке выше).
var mapfunc = function(feat) {
// get feature id
var id = ee.String(feat.id())
// get feature geometry
var geom = feat.geometry()
// make an empty list to store the features
var newfc = ee.List([])
// function to iterate over the ImageCollection
var addProp = function(img, fc) {
// the initial value is the empty list
fc = ee.List(fc)
// get the date as string
var date = img.date().format()
// extract the value of 'waterClass'
var value = img.reduceRegion(ee.Reducer.first(), geom, 30).get('waterClass')
// If the value is null then store it as 'No data'
var val = ee.String(ee.Algorithms.If(value, ee.String(value), ee.String('No data')))
// make the name of the feature (feat_id-date)
var featname = ee.String("feat_").cat(id).cat(ee.String("-")).cat(date)
// make the Feature
var newfeat = ee.Feature(geom, {name:featname,
value:val})
// add the value to the list
return fc.add(newfeat)
}
var newfeat = ee.FeatureCollection(ee.List(gfc2014.iterate(addProp, newfc)))
return newfeat
};
var newft = interest.map(mapfunc).flatten();
Export.table.toDrive(newft,
"export_Points",
"export_Points",
"export_Points");
Когда я запускаю это, я получаюошибка, что «gfc2014.iterate не является функцией»
Даже если бы я мог заставить работать вышеупомянутую функцию, я не знаю, как также извлечь другую информацию из шейп-файла.Конечный результат должен иметь идентификатор точки интереса (который находится в таблице слияния), страну точки интереса, район и все значения данных Хансена для точки интереса.
Я так благодарен за любые ссылки илипредложения!Большое вам спасибо за ваше время!