ee.Classifier.amnhMaxent

Crea un clasificador de máxima entropía. Maxent se usa para modelar las probabilidades de distribución de especies con datos ambientales de ubicaciones de presencia conocida y de una gran cantidad de ubicaciones de "fondo". Para obtener más información y citar, consulta https://biodiversityinformatics.amnh.org/open_source/maxent/ y la publicación de referencia: Phillips, et. al., 2004, A maximum entropy approach to species distribution modeling, Proceedings of the Twenty-First International Conference on Machine Learning. El resultado es una sola banda llamada "probability", que contiene la probabilidad modelada, y una banda adicional llamada "clamp" cuando el argumento "writeClampGrid" es verdadero.

UsoMuestra
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)Clasificador
ArgumentoTipoDetalles
categoricalNamesLista, valor predeterminado: nullEs una lista de los nombres de las entradas categóricas. Cualquier entrada que no se incluya en este argumento se considera continua.
outputFormatCadena. El valor predeterminado es "cloglog".Representación de probabilidades en el resultado.
autoFeatureBooleano, valor predeterminado: verdaderoSelecciona automáticamente qué clases de entidades usar, según la cantidad de muestras de entrenamiento.
linearBooleano, valor predeterminado: verdaderoPermite usar entidades lineales. Se ignora cuando autofeature es verdadero.
quadraticBooleano, valor predeterminado: verdaderoPermite el uso de funciones cuadráticas. Se ignora cuando autofeature es verdadero.
productBooleano, valor predeterminado: verdaderoPermite usar las funciones del producto. Se ignora cuando autofeature es verdadero.
thresholdBooleano, valor predeterminado: falsoPermite usar las funciones de umbral. Se ignora cuando autofeature es verdadero.
hingeBooleano, valor predeterminado: verdaderoPermite usar las funciones de la bisagra. Se ignora cuando autofeature es verdadero.
hingeThresholdNúmero entero, valor predeterminado: 15Cantidad de muestras en las que se comienzan a usar las funciones de bisagra. Se ignora cuando autofeature es falso.
l2lqThresholdNúmero entero, valor predeterminado: 10Cantidad de muestras en las que se comienzan a usar los atributos cuadráticos. Se ignora cuando autofeature es falso.
lq2lqptThresholdNúmero entero. El valor predeterminado es 80.Cantidad de muestras en las que se comienzan a usar las funciones de producto y umbral. Se ignora cuando autofeature es falso.
addSamplesToBackgroundBooleano, valor predeterminado: verdaderoAgrega al fondo cualquier muestra que tenga una combinación de valores ambientales que aún no esté presente en el fondo.
addAllSamplesToBackgroundBooleano, valor predeterminado: falsoAgrega todas las muestras al fondo, incluso si tienen combinaciones de valores ambientales que ya están presentes en el fondo.
betaMultiplierNúmero de punto flotante, valor predeterminado: 1Es el multiplicador de regularización. Multiplica todos los parámetros de regularización automáticos por este número. Un número más alto genera una distribución más dispersa.
betaHingeNúmero de punto flotante, valor predeterminado: -1Es el parámetro de regularización que se aplicará a todos los atributos de bisagra. Un valor negativo habilita el ajuste automático.
betaLqpNúmero de punto flotante, valor predeterminado: -1Es el parámetro de regularización que se aplicará a todas las características lineales, cuadráticas y de productos. Un valor negativo habilita el ajuste automático.
betaCategoricalNúmero de punto flotante, valor predeterminado: -1Es el parámetro de regularización que se aplicará a todos los atributos categóricos. Si se establece un valor negativo, se habilita la configuración automática.
betaThresholdNúmero de punto flotante, valor predeterminado: -1Es el parámetro de regularización que se aplicará a todos los atributos de umbral. Si se establece un valor negativo, se habilita la configuración automática.
extrapolateBooleano, valor predeterminado: verdaderoExtrapola. Realiza predicciones para regiones del espacio ambiental que se encuentran fuera de los límites encontrados durante el entrenamiento.
doClampBooleano, valor predeterminado: verdaderoAplica la fijación a la salida.
writeClampGridBooleano, valor predeterminado: verdaderoAgrega una banda al resultado ("clamp") que muestra la distribución espacial del ajuste. En cada punto, el valor es la diferencia absoluta entre los valores de predicción con y sin ajuste.
randomTestPointsNúmero entero, valor predeterminado: 0Es el porcentaje de pruebas aleatorias. Es el porcentaje de puntos de entrenamiento que se deben reservar como puntos de prueba, que se usa para calcular AUX, omisión, etcétera.
seedLargo, valor predeterminado: 0Es un valor de inicialización que se usa cuando se generan números aleatorios.

Ejemplos

Editor de código (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)');

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

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)