为什么在 GEE 脚本中添加 tileScale 没有 运行 监督分类?

Why does adding tileScale to GEE script does not run the supervised classification?

我正在使用 GEE 在意大利的一个地区执行监督分类,我遇到了错误: 图像计算的输出太大(931221 像素的 15 个波段 = 99.5 MiB > 80.0 MiB)。如果这是减少,请尝试指定更大的 'tileScale' 参数。

我认为这是代码的一部分,因为在这些行之前,我没有遇到错误:

//Set the input image composite
var input = ee.Image(mean_Summer_IC);
//Set the band combinations
var bands = ['B1', 'B2', 'B3', 'B4','B5','B6','B7', 'B8', 'B8A', 'B9' ,'B11', 'B12','NDVI', 'EVI', /*'GNDVI',*/ 'NBR'/*, 'NDII'*/];
//Create training data
var training_Supervised = input.select(bands).sampleRegions({
  collection: Training_Points,
  properties: ['land_class'],
  scale:10
});

//RandomForest classification approach
//Create the RF_classifier
var RF_classifier = ee.Classifier.smileRandomForest({
  numberOfTrees: 500,
  variablesPerSplit: 1, //null means default value. In this case the rootsquare of the number of variables
  minLeafPopulation: 1,
  bagFraction: 1,
  maxNodes: null, //null means default value. In this case "no limits" of nodes
  seed: 0,
});

//Train the classifier
var classifier01 = RF_classifier.train({
  features: training_Supervised,
  classProperty: 'land_class',
  inputProperties: bands
});

//Run the classifier
var RF_classified = input.select(bands).classify(classifier01);
print(RF_classified);

var Palette = [
  
  'aec3d4', //  Water
  'cc0013', // Residential
  'cdb33b', // Agricultural
  'd9903d', // Arbusti
  'c3aa69', // BoschiMisti
  '30eb5b', //Latifoglie
  '152106', //Conifere
  'f7e084'  //BareSoil
 ];
 

//Show classification results
Map.addLayer(RF_classified, {min: 1, max: 8, palette: Palette},'RF_classification');

// Get a confusion matrix representing resubstitution accuracy.
print('RF error matrix: ', classifier01.confusionMatrix());
print('RF accuracy: ', classifier01.confusionMatrix().accuracy());

//Show classification results
Map.addLayer(RF_classified, {min: 1, max: 8, palette: Palette},'RF_classification');

// Get a confusion matrix representing resubstitution accuracy.
print('RF error matrix: ', classifier01.confusionMatrix());
print('RF accuracy: ', classifier01.confusionMatrix().accuracy());

我根据错误本身尝试做的是指定一个tilescale(我尝试了值2、4、8和16),但并没有解决问题。 Link 到我的脚本:https://code.earthengine.google.com/578e87ba2a48ce51b2892ffbbf5cdb5c?accept_repo=users%2Fessepratico%2FPratico_et_al_RemoteSensing_2021

有运行这个脚本吗?提前致谢。

有几个因素会使您的代码变重,包括比例参数、波段数量、分块比例、IC 大小等。

我测试了 运行 您的版本,比例设置为 120: https://code.earthengine.google.com/e18afb397b4954c6d841b7d7d5a2238a?accept_repo=users%2Fessepratico%2FPratico_et_al_RemoteSensing_2021

我还尝试使用较少的波段,并且能够 运行 在没有波段 1、6、7、8A 的情况下以 50 的比例进行。

您可能想看看在哪里可以减少 运行 脚本所需的计算量。如果您想以 10 的比例进行操作,我建议将该区域划分为更小的子集。