“ image.selectbands.sampleRegions不是函数错误我该怎么办?

问题描述

我正在尝试使用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
});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...