Annonce : Tous les projets non commerciaux enregistrés pour utiliser Earth Engine avant le
15 avril 2025 devront
vérifier leur éligibilité non commerciale pour conserver leur accès. Si vous ne validez pas votre statut avant le 26 septembre 2025, votre accès pourra être suspendu.
Envoyer des commentaires
ee.FeatureCollection.classify
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
: classe chaque caractéristique d'une collection.
Utilisation Renvoie FeatureCollection. classify (classifier, outputName )
FeatureCollection
Argument Type Détails ceci : features
FeatureCollection Collection de caractéristiques à classer. Chaque caractéristique doit contenir toutes les propriétés du schéma du classificateur. classifier
Classificateur Classificateur à utiliser. outputName
Chaîne, valeur par défaut : "classification" Nom de la propriété de sortie à ajouter. Cet argument est ignoré si le classificateur comporte plusieurs sorties.
Exemples
Éditeur de code (JavaScript)
/**
* Classifies features in a FeatureCollection and computes an error matrix.
*/
// Combine Landsat and NLCD images using only the bands representing
// predictor variables (spectral reflectance) and target labels (land cover).
var spectral =
ee . Image ( 'LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820' ). select ( 'SR_B[1-7]' );
var landcover =
ee . Image ( 'USGS/NLCD_RELEASES/2016_REL/2016' ). select ( 'landcover' );
var sampleSource = spectral . addBands ( landcover );
// Sample the combined images to generate a FeatureCollection.
var sample = sampleSource . sample ({
region : spectral . geometry (), // sample only from within Landsat image extent
scale : 30 ,
numPixels : 2000 ,
geometries : true
})
// Add a random value column with uniform distribution for hold-out
// training/validation splitting.
. randomColumn ({ distribution : 'uniform' });
print ( 'Sample for classifier development' , sample );
// Split out ~80% of the sample for training the classifier.
var training = sample . filter ( 'random < 0.8' );
print ( 'Training set' , training );
// Train a random forest classifier.
var classifier = ee . Classifier . smileRandomForest ( 10 ). train ({
features : training ,
classProperty : landcover . bandNames (). get ( 0 ),
inputProperties : spectral . bandNames ()
});
// Classify the sample.
var predictions = sample . classify (
{ classifier : classifier , outputName : 'predicted_landcover' });
print ( 'Predictions' , predictions );
// Split out the validation feature set.
var validation = predictions . filter ( 'random >= 0.8' );
print ( 'Validation set' , validation );
// Get a list of possible class values to use for error matrix axis labels.
var order = sample . aggregate_array ( 'landcover' ). distinct (). sort ();
print ( 'Error matrix axis labels' , order );
// Compute an error matrix that compares predicted vs. expected values.
var errorMatrix = validation . errorMatrix ({
actual : landcover . bandNames (). get ( 0 ),
predicted : 'predicted_landcover' ,
order : order
});
print ( 'Error matrix' , errorMatrix );
// Compute accuracy metrics from the error matrix.
print ( "Overall accuracy" , errorMatrix . accuracy ());
print ( "Consumer's accuracy" , errorMatrix . consumersAccuracy ());
print ( "Producer's accuracy" , errorMatrix . producersAccuracy ());
print ( "Kappa" , errorMatrix . kappa ());
Configuration de Python
Consultez la page
Environnement Python pour en savoir plus sur l'API Python et sur l'utilisation de geemap
pour le développement interactif.
import ee
import geemap.core as geemap
Colab (Python)
from pprint import pprint
# Classifies features in a FeatureCollection and computes an error matrix.
# Combine Landsat and NLCD images using only the bands representing
# predictor variables (spectral reflectance) and target labels (land cover).
spectral = ee . Image ( 'LANDSAT/LC08/C02/T1_L2/LC08_038032_20160820' ) . select (
'SR_B[1-7]' )
landcover = ee . Image ( 'USGS/NLCD_RELEASES/2016_REL/2016' ) . select ( 'landcover' )
sample_source = spectral . addBands ( landcover )
# Sample the combined images to generate a FeatureCollection.
sample = sample_source . sample ( ** {
# sample only from within Landsat image extent
'region' : spectral . geometry (),
'scale' : 30 ,
'numPixels' : 2000 ,
'geometries' : True
})
# Add a random value column with uniform distribution for hold-out
# training/validation splitting.
sample = sample . randomColumn ( ** { 'distribution' : 'uniform' })
print ( 'Sample for classifier development:' , sample . getInfo ())
# Split out ~80% of the sample for training the classifier.
training = sample . filter ( 'random < 0.8' )
print ( 'Training set:' , training . getInfo ())
# Train a random forest classifier.
classifier = ee . Classifier . smileRandomForest ( 10 ) . train ( ** {
'features' : training ,
'classProperty' : landcover . bandNames () . get ( 0 ),
'inputProperties' : spectral . bandNames ()
})
# Classify the sample.
predictions = sample . classify (
** { 'classifier' : classifier , 'outputName' : 'predicted_landcover' })
print ( 'Predictions:' , predictions . getInfo ())
# Split out the validation feature set.
validation = predictions . filter ( 'random >= 0.8' )
print ( 'Validation set:' , validation . getInfo ())
# Get a list of possible class values to use for error matrix axis labels.
order = sample . aggregate_array ( 'landcover' ) . distinct () . sort ()
print ( 'Error matrix axis labels:' , order . getInfo ())
# Compute an error matrix that compares predicted vs. expected values.
error_matrix = validation . errorMatrix ( ** {
'actual' : landcover . bandNames () . get ( 0 ),
'predicted' : 'predicted_landcover' ,
'order' : order
})
print ( 'Error matrix:' )
pprint ( error_matrix . getInfo ())
# Compute accuracy metrics from the error matrix.
print ( 'Overall accuracy:' , error_matrix . accuracy () . getInfo ())
print ( 'Consumer \' s accuracy:' )
pprint ( error_matrix . consumersAccuracy () . getInfo ())
print ( 'Producer \' s accuracy:' )
pprint ( error_matrix . producersAccuracy () . getInfo ())
print ( 'Kappa:' , error_matrix . kappa () . getInfo ())
Envoyer des commentaires
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0 , et les échantillons de code sont régis par une licence Apache 2.0 . Pour en savoir plus, consultez les Règles du site Google Developers . Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
Voulez-vous nous donner plus d'informations ?
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/26 (UTC)."],[],[]]