ee.Classifier.amnhMaxent

Создаёт классификатор с максимальной энтропией. Maxent используется для моделирования вероятностей распределения видов с использованием данных об окружающей среде для известных местоположений присутствия и для большого количества «фоновых» местоположений. Для получения дополнительной информации и ссылок см.: https://biodiversityinformatics.amnh.org/open_source/maxent/ и справочную публикацию: Phillips et. al., 2004. «Подход к моделированию распределения видов с максимальной энтропией», Труды Двадцать первой международной конференции по машинному обучению. Выходные данные представляют собой один диапазон с именем «probability», содержащий смоделированную вероятность, и дополнительный диапазон с именем «clamp», если аргумент «writeClampGrid» имеет значение true.

Использование Возврат
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 ) Классификатор
Аргумент Тип Подробности
categoricalNames Список, по умолчанию: null Список названий категориальных входных данных. Любые входные данные, не перечисленные в этом аргументе, считаются непрерывными.
outputFormat Строка, по умолчанию: "cloglog" Представление вероятностей в выходных данных.
autoFeature Логическое значение, по умолчанию: true Автоматически выбирать, какие классы объектов использовать, на основе количества обучающих выборок.
linear Логическое значение, по умолчанию: true Разрешить использование линейных объектов. Игнорируется, если autofeature имеет значение true.
quadratic Логическое значение, по умолчанию: true Разрешить использование квадратичных функций. Игнорируется, если autofeature имеет значение true.
product Логическое значение, по умолчанию: true Разрешить использование функций продукта. Игнорируется, если autofeature имеет значение true.
threshold Логическое значение, по умолчанию: false Разрешить использование пороговых характеристик. Игнорируется, если autofeature имеет значение true.
hinge Логическое значение, по умолчанию: true Разрешить использование шарнирных элементов. Игнорируется, если autofeature имеет значение true.
hingeThreshold Целое число, по умолчанию: 15 Число выборок, при которых начинают использоваться шарнирные функции. Игнорируется, если autofeature имеет значение false.
l2lqThreshold Целое число, по умолчанию: 10 Число выборок, при которых начинают использоваться квадратичные признаки. Игнорируется, если autofeature равно false.
lq2lqptThreshold Целое число, по умолчанию: 80 Количество выборок, при которых начинают использоваться характеристики продукта и порога. Игнорируется, если значение autofeature равно false.
addSamplesToBackground Логическое значение, по умолчанию: true Добавьте к фону любой образец, для которого характерна комбинация экологических значений, которая еще не присутствует в фоне.
addAllSamplesToBackground Логическое значение, по умолчанию: false Добавьте все образцы к фону, даже если они имеют комбинации экологических значений, которые уже присутствуют в фоне.
betaMultiplier Плавающий, по умолчанию: 1 Множитель регуляризации. Умножьте все параметры автоматической регуляризации на это число. Большее число даёт более равномерное распределение.
betaHinge Плавающее число, по умолчанию: -1 Параметр регуляризации, применяемый ко всем элементам шарнира; отрицательное значение включает автоматическую настройку.
betaLqp Плавающее число, по умолчанию: -1 Параметр регуляризации применяется ко всем линейным, квадратичным и продуктовым признакам; отрицательное значение включает автоматическую настройку.
betaCategorical Плавающее число, по умолчанию: -1 Параметр регуляризации применяется ко всем категориальным признакам; отрицательное значение включает автоматическую настройку.
betaThreshold Плавающее число, по умолчанию: -1 Параметр регуляризации, применяемый ко всем пороговым признакам; отрицательное значение включает автоматическую настройку.
extrapolate Логическое значение, по умолчанию: true Экстраполировать. Прогнозировать области окружающего пространства за пределами, выявленных в ходе обучения.
doClamp Логическое значение, по умолчанию: true Применить ограничение к выходу.
writeClampGrid Логическое значение, по умолчанию: true Добавляет к выходным данным полосу («зажим»), отображающую пространственное распределение зажима. В каждой точке значение представляет собой абсолютную разницу между прогнозируемыми значениями с зажимом и без него.
randomTestPoints Целое число, по умолчанию: 0 Случайный процент тестирования. Процент обучающих точек, откладываемых в качестве тестовых, используемых для вычисления AUX, пропусков и т. д.
seed Длинный, по умолчанию: 0 Начальное число, используемое при генерации случайных чисел.

Примеры

Редактор кода (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)');

Настройка Python

Информацию об API Python и использовании geemap для интерактивной разработки см. на странице «Среда Python» .

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)