问题描述
我正在尝试使用2000年的landsat5数据在Google Earth引擎上进行 lulc分类,但每次它向我显示错误时:
image.select(bands).sampleRegions
不是函数
var shp = ee.FeatureCollection(mws)
Map.addLayer(shp,{},'My polygon')
var pol = ee.FeatureCollection(poly2000)
Map.addLayer(pol,{} )
//landcover for 2000//
var dataset = ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA")
.filterBounds(roi1)
.filterDate('2000-01-01','2000-01-31')
.map(function(image){return image.clip(mws)});
var trueColor432 = dataset.select(['B4','B3','B2']);
var trueColor432Vis = {};
Map.setCenter(88.41713038056656,26.861987108179317);
Map.addLayer(trueColor432,trueColor432Vis,'True Color (432)');
var image = trueColor432;
// merging sample points together
var landcover = forest.merge(water).merge(clearing).merge(built_up);
print(landcover);
// selecting bands
var bands= ['B2','B4'];
//sampling the input imagery to get a featurecollection of a training data
var training = image.select(bands).sampleRegions({
collection: landcover,properties: ['landcover'],scale: 30
});
//training the classifier
var classifier= ee.Classifier.svm().train({
features: training,classproperty : 'landcover',inputProperties: bands
});
//classifying the input imagery
var classified= image.select(bands).classify(classifier);
解决方法
sampleRegions对图像的像素进行采样:https://developers.google.com/earth-engine/apidocs/ee-image-sampleregions
也许添加 .toBands()有用吗?
var training = image.toBands().select(bands).sampleRegions({
collection: landcover,properties: ['landcover'],scale: 30
});