Найти в Дзене

Использование Google Earth Engine для извлечения климатических данных на примере TerraClimate

Google Earth Engine (GEE) предоставляет удобную среду для работы с климатическими и экологическими данными глобального масштаба. Одним из наиболее широко используемых источников климатических переменных является коллекция TerraClimate — высокоточное климатическое описание поверхности земли с ежемесячной временной дискретностью. Ниже представлена инструкция по применению кода GEE для извлечения усреднённых климатических переменных, таких как актуальное испарение (AET), дефицит влаги (DEF), осадки (PPT) и другие, с возможностью адаптации под разные регионы, временные периоды и переменные. Базовый код: // Источники данных var terraclimate = ee.ImageCollection("IDAHO_EPSCOR/TERRACLIMATE"); // Геометрия региона (пример: границы России) var region = ee.FeatureCollection("projects/turbinakz/assets/borders"); // Список месяцев и их числовых значений var monthInfo = [ ['mar', 3], ['apr', 4], ['may', 5], ['jun', 6], ['jul', 7], ['aug', 8], ['sep', 9], ['oct', 10] ]; // Функция для усреднения зна
Оглавление

Google Earth Engine (GEE) предоставляет удобную среду для работы с климатическими и экологическими данными глобального масштаба. Одним из наиболее широко используемых источников климатических переменных является коллекция TerraClimate — высокоточное климатическое описание поверхности земли с ежемесячной временной дискретностью. Ниже представлена инструкция по применению кода GEE для извлечения усреднённых климатических переменных, таких как актуальное испарение (AET), дефицит влаги (DEF), осадки (PPT) и другие, с возможностью адаптации под разные регионы, временные периоды и переменные.

Базовый код:

// Источники данных
var terraclimate = ee.ImageCollection("IDAHO_EPSCOR/TERRACLIMATE");
// Геометрия региона (пример: границы России)
var region = ee.FeatureCollection("projects/turbinakz/assets/borders");
// Список месяцев и их числовых значений
var monthInfo = [
['mar', 3], ['apr', 4], ['may', 5], ['jun', 6],
['jul', 7], ['aug', 8], ['sep', 9], ['oct', 10]
];
// Функция для усреднения значений за месяц по всем годам
function getMonthlyMean(monthTuple) {
var name = monthTuple[0];
var month = monthTuple[1];
return terraclimate
.filterDate('2008-01-01', '2023-12-31') // временной диапазон
.filter(ee.Filter.calendarRange(month, month, 'month'))
.select('aet') // переменная: актуальное испарение
.mean()
.rename(name);
}
// Применение функции ко всем месяцам
var monthlyImages = monthInfo.map(getMonthlyMean);
// Объединение изображений в один многослойный (многобэндовый) растр
var combinedImage = ee.ImageCollection.fromImages(monthlyImages)
.toBands()
.clip(region);
// Переименование бэндов
var bandNames = monthInfo.map(function(m) { return m[0]; });
combinedImage = combinedImage.rename(bandNames);
// Визуализация одного слоя (например, июль)
Map.addLayer(combinedImage.select('jul'), {
min: 0, max: 1500,
palette: ['white', 'blue', 'green']
}, 'AET Июль');
// Экспорт изображения в Google Drive
Export.image.toDrive({
image: combinedImage,
description: 'TerraClimate_AET_MarOct_2008_2023_Russia',
folder: 'GEE_exports',
fileNamePrefix: 'TerraClimate_AET_2008_2023_MarOct_RU',
region: region,
scale: 10000,
crs: 'EPSG:3857',
maxPixels: 1e13
});

Адаптация кода под различные задачи

1. Изменение географии анализа

Для проведения анализа в другой стране, регионе или по индивидуальной геометрии необходимо изменить переменную region. Возможны следующие варианты:

  • Использование предзагруженного слоя:

var region = ee.FeatureCollection("USDOS/LSIB_SIMPLE/2017")
.filter(ee.Filter.eq('country_na', 'Kazakhstan'));
  • Загрузка собственного слоя (Asset) в формате .shp или .geojson:
var region = ee.FeatureCollection("users/your_username/custom_region");
  • Ручное рисование полигона на карте
Можно рисовать произвольные многоугольники, полигоны или линии
Можно рисовать произвольные многоугольники, полигоны или линии

2. Смена источника данных и переменных

В коде используется коллекция IDAHO_EPSCOR/TERRACLIMATE, содержащая множество климатических переменных. Для анализа других характеристик необходимо изменить аргумент функции select.

-2

Например, для анализа осадков:

.select('ppt')

3. Изменение временного диапазона

Фильтрация по годам осуществляется строкой:

.filterDate('2008-01-01', '2023-12-31')

Период может быть изменён на любой другой — например, для анализа данных с 2015 по 2020 год:

.filterDate('2015-01-01', '2020-12-31')

4. Изменение месяцев

Список месяцев можно изменить по следующим принципам:

  • Для анализа всех 12 месяцев:
var monthInfo = [
['jan', 1], ['feb', 2], ..., ['dec', 12]
];

5. Изменение масштаба и проекции

Ключевые параметры масштаба и проекции:

scale: 10000,
crs: 'EPSG:3857'

6. Экспорт результатов

По умолчанию экспорт осуществляется в Google Drive. Можно использовать и другие способы:

  • Google Drive
  • Cloud Storage
  • GEE Asset (внутренний сервер Earth Engine)
Google Drive подходит для последующей локальной обработки и визуализации в ГИС-программах (например, QGIS или ArcGIS), Google Cloud Storage — для интеграции с облачными пайплайнами, web-приложениями или машинным обучением, особенно при работе с большими объёмами данных, а экспорт в Asset (внутреннее хранилище GEE) наиболее удобен для дальнейшего использования внутри GEE — например, при построении автоматизированных скриптов, повторного анализа или публикации данных в открытый доступ.

Google
89,1 тыс интересуются