为什么在 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 的比例进行操作,我建议将该区域划分为更小的子集。
我正在使用 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 的比例进行操作,我建议将该区域划分为更小的子集。