我的问题代码如下:
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:模式'分类器'与任何波段都不匹配。 小麦面积(平方米)的地区 数字(错误) Image.select:模式'分类器'与任何波段都不匹配。
答案 0 :(得分:0)
如果没有脚本,将很难分辨出来,但我的猜测是,您要为直方图选择的band('classifier)不在image1内,而在结果图像内:'classified'。
将image1更改为分类将是第一个建议。