Google Earth Engine (GEE) — это мощная облачная платформа для геопространственного анализа планетарного масштаба. Он сочетает в себе многопетабайтный каталог спутниковых изображений и наборов геопространственных данных с мощными возможностями анализа.
Процесс контролируемой классификации в дистанционном зондировании включает в себя обучение классификатора распознаванию закономерностей в данных, которые соответствуют известным интересующим классам (например, лес, вода, город).
Этот учебник проведет вас через процесс выполнения контролируемой классификации земного покрова с использованием Google Earth Engine (GEE) и JavaScript. Мы будем использовать алгоритм кластеризации k-средних для обучения классификатора на основе дерева решений.
Перед началом этого процесса создайте учетную запись Google Earth Engine.
Шаг 1: Импорт изображения Landsat 8
Первое, что нам нужно, это спутниковый снимок для нашей классификации. Для этого урока мы будем использовать изображение со спутника Landsat 8.
// Import a Landsat 8 image. var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318');
Этот код импортирует изображение Landsat 8 по его конкретному идентификатору.
Шаг 2: Определение области интереса
Затем мы определяем точку, вокруг которой мы будем буферизовать интересующую нас область для нашего анализа.
// Define a region of interest with a point. var geometry = ee.Geometry.Point([-122.3942, 37.7295]); var region = geometry.buffer(50000); // 50 kilometers
Здесь мы определили точку (пару долготы и широты) и буферизовали область в 50 километров вокруг нее.
Шаг 3: Отображение изображения
Мы можем отобразить импортированное изображение на карте с помощью метода Map.addLayer().
// Display the image. Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Landsat 8 original image');
Мы используем композицию RGB для визуализации.
Шаг 4: Выборка изображения и создание наборов для обучения и тестирования
Затем мы выбираем точки в этой области на нашем изображении Landsat 8 и делим их на обучающую выборку и проверочную выборку.
// Sample the image at the points and add a random column. var points = image.sample({ region: region, scale: 30, numPixels: 5000, seed: 0, geometries: true // Set this to false to ignore geometries }).randomColumn(); // Make a training-testing split. var training = points.filter(ee.Filter.lt('random', 0.7)); var testing = points.filter(ee.Filter.gte('random', 0.7));
В приведенном выше фрагменте метод image.sample() используется для выборки точек в указанной области. Функция randomColumn() добавляет к этим точкам случайный столбец. Затем эти точки делятся на тренировочные и тестовые наборы с использованием случайного разделения.
Шаг 5: Обучение кластеризатора
Затем мы создаем экземпляр кластеризатора k-средних и обучаем его на нашем обучающем наборе.
// Instantiate the clusterer and train it. var clusterer = ee.Clusterer.wekaKMeans(15).train(training);
Мы используем алгоритм k-средних из библиотеки Weka, запрашивая 15 кластеров.
Шаг 6: Кластеризация изображения
После обучения кластеризатора применяем его к изображению.
JavaScript
// Cluster the input using the trained clusterer. var result = image.cluster(clusterer); // Display the clusters with random colors. Map.addLayer(result.randomVisualizer(), {}, 'clusters');
Метод cluster() применяет обученный кластеризатор к изображению. Затем мы визуализируем полученные кластеры.
Шаг 7: Обучение классификатора
Затем мы используем кластеры для обучения классификатора дерева решений.
// Now, use the clusters as a classifier! var trained = ee.Classifier.smileCart().train({ features: training, classProperty: 'cluster', inputProperties: image.bandNames() });
Мы используем классификатор дерева решений из библиотеки Smile.
Шаг 8: Классификация изображения
После того, как классификатор обучен, мы применяем его к изображению, чтобы классифицировать его.
// Classify the image. var classified = image.classify(trained); // Display the classification result. Map.addLayer(classified.randomVisualizer(), {}, 'classification');
Метод classify() применяет обученный классификатор к изображению. Затем мы визуализируем полученную классификацию.
Наконец, нажмите «Выполнить», чтобы выполнить скрипт и посмотреть результаты.
Этот сценарий объединяет изображение в 15 различных категорий земного покрова на основе их спектральных характеристик, а затем визуализирует эти категории. Это мощный инструмент дистанционного зондирования для понимания земного покрова или других пространственных явлений. Однако реальное применение этих методов может включать более сложные методологии.