0

我是 Google Earth Engine 代码的初学者,我正在尝试应用过滤哨兵 2 图像集合的过滤器,但是当应用此过滤器时,图像变得非常清晰并且有很多混乱,计算机将区域 (soil_1) 与城市混淆area, '由于这个原因,我没有选择市区的点,很多混乱'。我的代码不正确还是我没有正确地将其应用于图像?

//Seleciona as imagens de satélite Sentinel 2

var Sentinel2_1 = ee.ImageCollection("COPERNICUS/S2")
.filterMetadata('MGRS_TILE', 'equals', '24MYS')
.filterMetadata('CLOUDY_PIXEL_PERCENTAGE','less_than', 1) 
.filterDate('2016-01-01','2016-05-31')
.median();

//可视化

var Sentinel2_2 = Sentinel2_1.clip(table2);
//Map.addLayer(table, {color: 'blue'},'BHRS');
//Map.addLayer(Sentinel2_2, {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000}, 'S2-true-color');

我认为我无法解决的错误在 filtragem "var boxcar" 中。

//过滤

var boxcar = ee.Kernel.square({
radius: 0.5, units: 'pixels', normalize: true
});
var imagem_sem_nuvem = Sentinel2_2.convolve(boxcar);
Map.addLayer(imagem_sem_nuvem, {bands: ['B4', 'B3', 'B2'], min: 495, max: 1534}, 'semnuvem');

//分类

var features = arborea_densa.merge(sub_arborea_densa).merge(agua)
.merge(solo_1).merge(solo_2).merge(solo_3);

//print('Amostras',features);

var bands = ['B4', 'B3', 'B2'];

var training = imagem_sem_nuvem.select(bands).sampleRegions({
collection: features,
properties:['classe'],
scale: 10
});

//print (training);//áreas de treinamento

//Aplicando os algorítmos de classificação

var CART = ee.Classifier.smileCart().train({
features: training,
classProperty: 'classe',
inputProperties: bands
});

var MMD = ee.Classifier.minimumDistance('euclidean').train({
features: training,
classProperty: 'classe',
inputProperties: bands
});

var RF = ee.Classifier.smileRandomForest(500, null, 1, 0.5, null, 0).train({
features: training,
classProperty: 'classe',
inputProperties: bands
});

var N_Bayes = ee.Classifier.smileNaiveBayes().train({
features: training,
classProperty: 'classe',
inputProperties: bands
});

var LIBSVM = ee.Classifier.libsvm().train({
features: training,
classProperty: 'classe',
inputProperties: bands
});

var CART_class = imagem_sem_nuvem.select(bands).classify(CART);
var MMD_class = imagem_sem_nuvem.select(bands).classify(MMD);
var RF_class = imagem_sem_nuvem.select(bands).classify(RF);
var BAYES_class = imagem_sem_nuvem.select(bands).classify(N_Bayes);
var LIBSVM_class = imagem_sem_nuvem.select(bands).classify(LIBSVM);

Map.addLayer(CART_class, {min: 1, max: 6, palette: ['#057800', '#2dff00', '#000eff', 
'#fbf900', '#d44340','#b47f13']}, 'CART');
//Map.addLayer(MMD_class, {min: 1, max: 6, palette: ['#057800', '#2dff00', '#000eff', 
'#fbf900', '#d44340','#b47f13']}, 'MMD');
//Map.addLayer(RF_class, {min: 1, max: 6, palette: ['#057800', '#2dff00', '#000eff', 
'#fbf900', '#d44340','#b47f13']}, 'RF');
//Map.addLayer(BAYES_class, {min: 1, max: 6, palette: ['#057800', '#2dff00', '#000eff', 
'#fbf900', '#d44340','#b47f13']}, 'BAYES');
//Map.addLayer(LIBSVM_class, {min: 1, max: 6, palette: ['#057800', '#2dff00', '#000eff', 
'#fbf900', '#d44340','#b47f13']}, 'LIBSVM');

//Avaliação da qualidade das classificações CART

print('Matriz de Confusão CART',  CART.confusionMatrix().array());
print('Acurácia Geral CART', CART.confusionMatrix().accuracy());
print('Índice Kappa CART', CART.confusionMatrix().kappa());
print('Precisão Usuário CART', CART.confusionMatrix().consumersAccuracy());
print('Precisão Produtor CART', CART.confusionMatrix().producersAccuracy());

//Avaliação da qualidade das classificações RF

print('Matriz de Confusão RF', RF.confusionMatrix().array());
print('Acurácia Geral RF', RF.confusionMatrix().accuracy());
print('Índice Kappa RF', RF.confusionMatrix().kappa());
print('Precisão Usuário RF', RF.confusionMatrix().consumersAccuracy());
print('Precisão Produtor RF', RF.confusionMatrix().producersAccuracy());

//Avaliação da qualidade das classificações LIBSVM

print('Matriz de Confusão LIBSVM', LIBSVM.confusionMatrix().array());
print('Acurácia Geral LIBSVM', LIBSVM.confusionMatrix().accuracy());
print('Índice Kappa LIBSVM', LIBSVM.confusionMatrix().kappa());
print('Precisão Usuário LIBSVM', LIBSVM.confusionMatrix().consumersAccuracy());
print('Precisão Produtor LIBSVM', LIBSVM.confusionMatrix().producersAccuracy());

//Avaliação da qualidade das classificações N_Bayes

print('Matriz de Confusão N_Bayes', N_Bayes.confusionMatrix().array());
print('Acurácia Geral N_Bayes', N_Bayes.confusionMatrix().accuracy());
print('Índice Kappa N_Bayes', N_Bayes.confusionMatrix().kappa());
print('Precisão Usuário N_Bayes', N_Bayes.confusionMatrix().consumersAccuracy());
print('Precisão Produtor N_Bayes', N_Bayes.confusionMatrix().producersAccuracy());

//Avaliação da qualidade das classificações MMD

print('Matriz de Confusão MMD', MMD.confusionMatrix().array());
print('Acurácia Geral MMD', MMD.confusionMatrix().accuracy());
print('Índice Kappa MMD', MMD.confusionMatrix().kappa());
print('Precisão Usuário MMD', MMD.confusionMatrix().consumersAccuracy());
print('Precisão Produtor MMD', MMD.confusionMatrix().producersAccuracy());

在此处输入图像描述

//取消分类

var classificado_final = ee.Image(CART_class).select(['classification'],['b1']);
var CART_class_juncao = ee.ImageCollection([classificado_final]).sum();

//Map.addLayer(CART_class_juncao,{},'Área');

最后一个问题,因为当我导出图像(Exportar os resultados)时,文件格式是 GEO_TIFF?

//导出操作系统结果

Export.image.toDrive({
image: imagem_sem_nuvem,
description: 'imagem_filtrada_SENTINEL2_inverno_2021',
scale: 10,
region: table2,
folder: 'GEE',
maxPixels:1e13,
crs:'EPSG:3857'
});
4

0 回答 0