ee.Classifier.amnhMaxent

Crée un classificateur à entropie maximale. Maxent est utilisé pour modéliser les probabilités de répartition des espèces à l'aide de données environnementales pour les lieux de présence connus et pour un grand nombre de lieux de "fond". Pour en savoir plus et citer, consultez https://biodiversityinformatics.amnh.org/open_source/maxent/ et la publication de référence : Phillips, et. al., 2004 : "A maximum entropy approach to species distribution modeling", Proceedings of the Twenty-First International Conference on Machine Learning. La sortie est une bande unique nommée "probability" (probabilité), qui contient la probabilité modélisée, et une bande supplémentaire nommée "clamp" (serrage) lorsque l'argument "writeClampGrid" est défini sur "true".

UtilisationRenvoie
ee.Classifier.amnhMaxent(categoricalNames, outputFormat, autoFeature, linear, quadratic, product, threshold, hinge, hingeThreshold, l2lqThreshold, lq2lqptThreshold, addSamplesToBackground, addAllSamplesToBackground, betaMultiplier, betaHinge, betaLqp, betaCategorical, betaThreshold, extrapolate, doClamp, writeClampGrid, randomTestPoints, seed)Classificateur
ArgumentTypeDétails
categoricalNamesListe, valeur par défaut : nullListe des noms des entrées catégorielles. Toutes les entrées qui ne figurent pas dans cet argument sont considérées comme continues.
outputFormatChaîne, valeur par défaut : "cloglog"Représentation des probabilités dans la sortie.
autoFeatureBooléen, valeur par défaut : trueSélectionnez automatiquement les classes d'entités à utiliser en fonction du nombre d'échantillons d'entraînement.
linearBooléen, valeur par défaut : trueAutoriser l'utilisation des entités linéaires. Ignoré lorsque autofeature est défini sur "true".
quadraticBooléen, valeur par défaut : trueAutoriser l'utilisation de caractéristiques quadratiques. Ignoré lorsque autofeature est défini sur "true".
productBooléen, valeur par défaut : trueAutoriser l'utilisation des fonctionnalités du produit. Ignoré lorsque autofeature est défini sur "true".
thresholdBooléen, valeur par défaut : falseAutoriser l'utilisation des fonctionnalités de seuil. Ignoré lorsque autofeature est défini sur "true".
hingeBooléen, valeur par défaut : trueAutoriser l'utilisation des fonctionnalités de la charnière. Ignoré lorsque autofeature est défini sur "true".
hingeThresholdEntier, valeur par défaut : 15Nombre d'échantillons à partir duquel les caractéristiques de charnière commencent à être utilisées. Ignoré lorsque autofeature est défini sur "false".
l2lqThresholdEntier, par défaut : 10Nombre d'échantillons à partir duquel les caractéristiques quadratiques commencent à être utilisées. Ignoré lorsque autofeature est défini sur "false".
lq2lqptThresholdEntier, par défaut : 80Nombre d'échantillons à partir duquel les caractéristiques du produit et du seuil commencent à être utilisées. Ignoré lorsque autofeature est défini sur "false".
addSamplesToBackgroundBooléen, valeur par défaut : trueAjoutez à l'arrière-plan tout échantillon dont la combinaison de valeurs environnementales n'est pas déjà présente dans l'arrière-plan.
addAllSamplesToBackgroundBooléen, valeur par défaut : falseAjoutez tous les échantillons à l'arrière-plan, même s'ils présentent des combinaisons de valeurs environnementales déjà présentes dans l'arrière-plan.
betaMultiplierFloat, valeur par défaut : 1Multiplicateur de régularisation. Multipliez tous les paramètres de régularisation automatique par ce nombre. Plus le nombre est élevé, plus la distribution est étendue.
betaHingeFloat, valeur par défaut : -1Paramètre de régularisation à appliquer à toutes les caractéristiques de charnière. Une valeur négative permet un paramétrage automatique.
betaLqpFloat, valeur par défaut : -1Paramètre de régularisation à appliquer à toutes les caractéristiques linéaires, quadratiques et produit. Une valeur négative permet un paramétrage automatique.
betaCategoricalFloat, valeur par défaut : -1Paramètre de régularisation à appliquer à toutes les caractéristiques catégorielles. Une valeur négative permet un paramétrage automatique.
betaThresholdFloat, valeur par défaut : -1Paramètre de régularisation à appliquer à toutes les caractéristiques de seuil. Une valeur négative permet un paramétrage automatique.
extrapolateBooléen, valeur par défaut : trueExtrapolez. Prédire les régions de l'espace environnemental en dehors des limites rencontrées lors de l'entraînement.
doClampBooléen, valeur par défaut : trueAppliquez le clamping à la sortie.
writeClampGridBooléen, valeur par défaut : trueAjoute une bande à la sortie ("clamp") montrant la distribution spatiale du clamping. À chaque point, la valeur correspond à la différence absolue entre les valeurs de prédiction avec et sans clamping.
randomTestPointsEntier, valeur par défaut : 0Pourcentage de test aléatoire. Pourcentage de points d'entraînement à mettre de côté en tant que points de test, utilisés pour calculer AUX, l'omission, etc.
seedLong, valeur par défaut : 0Source utilisée pour générer des nombres aléatoires.

Exemples

Éditeur de code (JavaScript)

// Create some sample species presence/absence training data.
var trainingData = ee.FeatureCollection([
  // Species present points.
  ee.Feature(ee.Geometry.Point([-122.39567, 38.02740]), {presence: 1}),
  ee.Feature(ee.Geometry.Point([-122.68560, 37.83690]), {presence: 1}),
  // Species absent points.
  ee.Feature(ee.Geometry.Point([-122.59755, 37.92402]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.47137, 37.99291]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.52905, 37.85642]), {presence: 0}),
  ee.Feature(ee.Geometry.Point([-122.03010, 37.66660]), {presence: 0})
]);

// Import a Landsat 8 surface reflectance image.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20200606')
                // Select the optical and thermal bands.
                .select(['.._B.*']);

// Sample the image at the location of the points.
var training = image.sampleRegions({collection: trainingData, scale: 30});

// Define and train a Maxent classifier from the image-sampled points.
var classifier = ee.Classifier.amnhMaxent().train({
  features: training,
  classProperty: 'presence',
  inputProperties: image.bandNames()
});

// Classify the image using the Maxent classifier.
var imageClassified = image.classify(classifier);

// Display the layers on the map.
// Species presence probability [0, 1] grades from black to white.
Map.centerObject(image, 9);
Map.addLayer(
    image.select(['SR_B4', 'SR_B3', 'SR_B2']).multiply(0.0000275).add(-0.2),
    {min: 0, max: 0.3}, 'Image');
Map.addLayer(
    imageClassified, {bands: 'probability', min: 0, max: 1}, 'Probability');
Map.addLayer(
    trainingData.filter('presence == 0'), {color: 'red'},
    'Training data (species absent)');
Map.addLayer(
    trainingData.filter('presence == 1'), {color: 'blue'},
    'Training data (species present)');

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)

"""Demonstrates the ee.Classifier.amnhMaxent method."""

import ee


# Authenticates to the Earth Engine servers.
ee.Authenticate()
# Initializes the client library.
ee.Initialize()


# Create some sample species presence/absence training data.
training_data = ee.FeatureCollection([
    # Species present points.
    ee.Feature(ee.Geometry.Point([-122.39567, 38.02740]), {'presence': 1}),
    ee.Feature(ee.Geometry.Point([-122.68560, 37.83690]), {'presence': 1}),
    # Species absent points.
    ee.Feature(ee.Geometry.Point([-122.59755, 37.92402]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.47137, 37.99291]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.52905, 37.85642]), {'presence': 0}),
    ee.Feature(ee.Geometry.Point([-122.03010, 37.66660]), {'presence': 0})
])

# Import a Landsat 8 image and select the reflectance bands.
image = (ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20200606')
         .select(['SR_B[1-7]'])
         .multiply(0.0000275).add(-0.2))  # Apply scaling factors.

# Sample the image at the location of the points.
training = image.sampleRegions(**{
    'collection': training_data,
    'scale': 30
})

# Define and train a Maxent classifier from the image-sampled points.
classifier = ee.Classifier.amnhMaxent().train(**{
    'features': training,
    'classProperty': 'presence',
    'inputProperties': image.bandNames()
})

# Classify the image using the Maxent classifier.
image_classified = image.classify(classifier)