Расчет площади классифицированных пикселей в Google Earth Engine - PullRequest
0 голосов
/ 14 мая 2018

Код моей проблемы следующий:

var image = ee.Image(sent2
 .filterBounds(geometry2)
 .filterDate('2016-01-01', '2016-03-31')
 .sort("CLOUD_COVERAGE_ASSESSMENT")
 .first());

// print the image to the console.

    print("A Sentinel-2 scene:", image);

Обрезать геометрию области исследования

var image1=image.clip(geometry2)

//merging the feature collection collected 

var newfc = forest.merge(gram2).merge(baresoil).merge(wheat2).merge(mustard2);

var bands = [ 'B8', 'B4', 'B3'];

var training = image1.select(bands).sampleRegions({collection: newfc, properties: ['landcover'], scale: 10});

Обучение классификатора с использованием CART

var classifier = ee.Classifier.cart().train({features: training, classProperty: 'landcover', inputProperties: bands});

Выполнить классификацию

var classified = image1.select(bands).classify(classifier);

Map.addLayer(classified, {min: 0, max: 4, palette: '0D5D07','B47610','F7C537','7CE72E','EFF60E']},'classification');

// 0 лес 1 голый грунт 2 грамм 3 пшеница 4 горчица

var PIXEL_SCALE = 10; // Meters. Resolution of most sentinel bands

var PIXEL_AREA = PIXEL_SCALE * PIXEL_SCALE; // Square meters.

Рассчитать количество пикселей каждой классификации в нашем многоугольнике

var regionCoverHistogram = image1.select('classifier') .reduceRegion(ee.Reducer.frequencyHistogram(), geometry2, PIXEL_SCALE);

print('classified class pixel count within region', regionCoverHistogram);

var wheatPixelCount =ee.Dictionary(regionCoverHistogram.get('wheat2')).get(wheat2.toString());

var wheatArea = ee.Number(wheatPixelCount).multiply(PIXEL_AREA);

print('Wheat Area (sq meters) in region', wheatArea);

показывает ошибку следующим образом:

количество пикселей классифицированного класса в пределах области Словарь (Ошибка) Image.select: Pattern 'classifier' не соответствует ни одной полосе. Площадь пшеницы (кв. М) в регионе Номер (Ошибка) Image.select: Pattern 'classifier' не соответствует ни одной полосе.

1 Ответ

0 голосов
/ 10 января 2019

Без сценария это будет трудно сказать, но я думаю, что полоса («классификатор», которую вы пытаетесь выбрать для своей гистограммы) находится не внутри image1, а внутри вашего результирующего изображения: «классифицировано».

Первым предложением будет изменение изображения1 на секретное.

...