Редактор кода Earth Engine

Редактор кода Earth Engine (EE), доступный по адресу code.earthengine.google.com, представляет собой веб-среду разработки для JavaScript API Earth Engine. Функции редактора кода разработаны для быстрой и простой разработки сложных геопространственных рабочих процессов. Редактор кода включает следующие элементы (иллюстрированы на рисунке 1):

  • редактор кода JavaScript
  • Отображение карты для визуализации геопространственных наборов данных.
  • Документация по API (вкладка «Документация»)
  • Менеджер скриптов на основе Git (вкладка «Скрипты»)
  • Вывод в консоль (вкладка «Консоль»)
  • Диспетчер задач (вкладка «Задачи») для обработки длительно выполняющихся запросов.
  • Интерактивный запрос карты (вкладка «Инспектор»)
  • Поиск в архиве данных или сохраненных скриптах.
  • Инструменты для построения геометрических фигур

Компоненты редактора кода

Рисунок 1. Схема компонентов редактора кода Earth Engine на сайте code.earthengine.google.com .

Редактор кода обладает множеством функций, которые помогут вам использовать API Earth Engine. Просматривайте примеры скриптов или сохраняйте свои собственные на вкладке «Скрипты» . Запрашивайте информацию об объектах, размещенных на карте, с помощью вкладки «Инспектор» . Отображайте и стройте графики числовых результатов с помощью API визуализации Google. Делитесь уникальной ссылкой на свой скрипт с коллегами и друзьями с помощью кнопки «Получить ссылку» . Скрипты, разработанные вами в редакторе кода, отправляются в Google для обработки, а сгенерированные фрагменты карты и/или сообщения отправляются обратно для отображения на вкладках «Карта» и/или «Консоль» . Для работы с редактором кода вам нужен только веб-браузер (для наилучших результатов используйте Google Chrome ) и подключение к интернету. В следующих разделах элементы редактора кода Earth Engine описаны более подробно.

редактор JavaScript

Редактор JavaScript будет:

  • Форматируйте и подсвечивайте код по мере ввода.
  • Подчеркивайте проблемный код, предлагайте исправления и другие подсказки по правильному синтаксису.
  • Автозаполнение пар кавычек, скобок и круглых скобок.
  • Предлагать подсказки автозавершения кода для функций Earth Engine.

Над редактором кода расположены кнопки для запуска скрипта, сохранения скрипта, сброса карты вывода и консоли, а также получения ссылки на скрипт. При нажатии кнопки «Получить ссылку» в адресной строке браузера появится уникальная ссылка. Эта ссылка соответствует коду, отображаемому в редакторе на момент нажатия кнопки.

Справочник API (вкладка «Документация»)

В левой части редактора кода находится вкладка «Документация» , содержащая полную документацию по API JavaScript. Поиск и просмотр документации возможны прямо на вкладке «Документация» .

Менеджер скриптов (вкладка «Скрипты»)

Вкладка «Скрипты» находится рядом с документацией API на левой панели редактора кода. Менеджер скриптов хранит частные, общие и примеры скриптов в репозиториях Git, размещенных Google. Репозитории упорядочены по уровню доступа, при этом ваши частные скрипты хранятся в репозитории, принадлежащем вам, в папке «Владелец» : users/username/default . Вы (и только вы) имеете доступ к репозиториям в папке «Владелец» , если не предоставите к ним доступ кому-либо еще. Репозитории в папке «Писатель» — это репозитории, для которых вам предоставлен доступ на запись их владельцем. Вы можете добавлять новые скрипты, изменять существующие скрипты или изменять доступ к репозиториям в папке «Писатель» (вы не можете удалить их владельца). Репозитории в папке «Читатель» — это репозитории, для которых вам предоставлен доступ на чтение их владельцем. Папка «Примеры» — это специальный репозиторий, управляемый Google, который содержит примеры кода. Папка «Архив» содержит устаревшие репозитории, к которым у вас есть доступ, но которые еще не были перенесены их владельцем из более старой версии Script Manager. Для поиска скриптов используйте панель фильтров в верхней части вкладки «Скрипты» .

Менеджер скриптов

Рисунок 2. Менеджер скриптов.

Нажмите Кнопка позволяет создать новый репозиторий в папке «Владелец» или создать папки и файлы внутри репозитория. Вы можете переименовывать скрипты с помощью значка и удалять их с помощью значка . Вы можете перемещать скрипты и организовывать их в папки с помощью перетаскивания (Рисунок 2). Если вы перетащите скрипт в другой репозиторий, он будет скопирован.

Все скрипты и репозитории сохраняют полную историю версий. Щелкните значок рядом со скриптом или репозиторием, чтобы сравнить его или вернуться к более старой версии. Чтобы удалить репозиторий, щелкните значок . Чтобы настроить доступ к репозиторию, щелкните значок рядом с именем репозитория. Обратите внимание, что если вы предоставляете доступ к репозиторию, человек, с которым вы делитесь доступом, должен будет принять репозиторий, щелкнув ссылку, отображаемую в диалоговом окне настроек. Ранее принятые репозитории можно скрыть, щелкнув значок после имени репозитория в менеджере скриптов.

Доступ к репозиториям осуществляется с помощью Git , поэтому вы можете управлять своими скриптами и редактировать их вне редактора кода или синхронизировать их с внешней системой, такой как GitHub. (Подробнее о Git можно узнать из этого руководства ). Щелкните значок рядом с именем репозитория, чтобы получить инструкции по клонированию репозитория. Обратите внимание, что вы можете просмотреть репозитории, к которым у вас есть доступ, перейдя по адресу earthengine.googlesource.com . Для некоторых операций Git вам может потребоваться создать учетные данные для аутентификации, перейдя по ссылке «Сгенерировать пароль» в верхней части страницы earthengine.googlesource.com .

Скриптовые модули

Хорошей практикой является написание модульного, многократно используемого кода, который можно совместно использовать в разных скриптах без необходимости многократного копирования и вставки. Для обеспечения модульной разработки Earth Engine предоставляет возможность совместного использования кода между скриптами. Например, предположим, вы написали функцию , которая выполняет полезный набор операций. Вместо того чтобы копировать код функции в новый скрипт, новому скрипту проще загрузить функцию напрямую. Чтобы сделать функцию или объект доступными для других скриптов, вы добавляете их в специальный объект с именем exports . Чтобы использовать код в другом скрипте, используйте функцию require для загрузки exports из другого скрипта. Например, предположим, вы определяете следующий модуль в файле с именем FooModule.js , который находится в папке с именем Modules :

Редактор кода (JavaScript)

/**
 * The Foo module is a demonstration of script modules.
 * It contains a foo function that returns a greeting string.
 * It also contains a bar object representing the current date.
 * @module Modules/FooModule
 */

/**
 * Returns a greeting string.
 * @param {ee.String} arg The name to which the greeting should be addressed
 * @return {ee.String} The complete greeting.
 */
exports.foo = function(arg) {
  return 'Hello, ' + arg + '!  And a good day to you!';
};

/**
 * An ee.Date object containing the time at which the object was created.
 */
exports.bar = ee.Date(Date.now());

Обратите внимание на использование ключевого слова exports в формате exports.objectToExport . Вы можете использовать этот модуль в другом скрипте, используя функцию require . Например:

Редактор кода (JavaScript)

var Foo = require('users/username/default:Modules/FooModule.js');

print(Foo.doc);

print(Foo.foo('world'));

print('Time now:', Foo.bar);

Функция require ожидает строку, описывающую абсолютный путь к расположению модуля. В частности, аргумент ` require() имеет вид 'pathToRepository:pathToModuleScript' . Вы можете загружать модули только из репозиториев, которыми владеете и/или к которым имеете доступ на чтение. Если вы хотите, чтобы другие могли использовать ваш модуль, репозиторий должен быть предоставлен в общий доступ другим пользователям, которым вы хотите предоставить доступ. Вы можете задокументировать свой модуль, чтобы помочь другим понять, как его использовать; мы рекомендуем использовать стиль JSDoc с тегом @module .

Вы можете использовать параметр URL ?scriptPath={repo}:{script} чтобы поделиться ссылкой на файл в вашем репозитории, например, https://code.earthengine.google.com/?scriptPath=users/username/utils:utils . При переходе по указанному URL файл и его репозиторий будут добавлены в каталог Reader или Writer на вкладке Scripts , в зависимости от вашего уровня доступа к общему репозиторию.

Менеджер активов (вкладка «Активы»)

Менеджер ресурсов находится на вкладке «Ресурсы» в левой панели. Используйте Менеджер ресурсов (Рисунок 3) для загрузки и управления собственными графическими ресурсами в Earth Engine. Подробности см. на странице Менеджера ресурсов .

Управляющий активами

Рисунок 3. Управляющий активами.

Скрипты из редактора кода можно передавать через закодированный URL-адрес. В следующих разделах описаны различные способы генерации URL-адреса скрипта, доступные параметры и методы управления URL-адресами скриптов.

Кнопка «Получить ссылку» в верхней части редактора кода (Рисунок 4) предоставляет интерфейс для генерации URL-адресов скриптов и настройки параметров поведения скриптов. Обратите внимание на различия между URL-адресами скриптов в виде снимков и сохраненных скриптов, описанные ниже.

Он

Рисунок 4. Кнопка «Получить ссылку».

Код в редакторе можно отправить через закодированный URL-адрес снимка, который создается при нажатии кнопки «Получить ссылку» в верхней части редактора кода. Когда пользователь с учетной записью Earth Engine переходит по этой ссылке, браузер переходит в редактор кода и воспроизводит среду, какой она была на момент создания ссылки, включая код, импорты, слои карты и положение на карте. Нажатие кнопки «Получить ссылку» автоматически скопирует ссылку на скрипт в буфер обмена. Кроме того, появится диалоговое окно с параметрами управления выполнением отправленного скрипта, а также кнопками для копирования и перехода по сгенерированной ссылке. Параметры управления включают в себя предотвращение автоматического запуска скрипта и скрытие панели кода при открытии отправленной ссылки. Перетаскиваемое диалоговое окно можно закрыть с помощью клавиши «Esc» или щелчком мыши в другом месте страницы.

Сохранённые скрипты имеют функцию отправки ссылки, которая всегда будет загружать самую последнюю сохранённую версию и будет доступна только вам и другим пользователям, имеющим текущий доступ к репозиторию, содержащему скрипт. Чтобы использовать эту функцию, загрузите сохранённый скрипт на вкладке «Менеджер скриптов», щёлкните стрелку раскрывающегося списка справа от кнопки «Получить ссылку» и выберите «Скопировать путь к скрипту». Появится диалоговое окно с URL-адресом скрипта, которым можно поделиться. Обратите внимание, что URL-адрес скрипта также задан в адресной строке браузера. Инструкции по предоставлению доступа к вашему репозиторию другим пользователям см. в разделе «Менеджер скриптов» .

Справа от кнопки «Получить ссылку» в выпадающем меню есть опция «Управление ссылками». Нажатие на эту опцию откроет новую вкладку браузера с интерфейсом, позволяющим вызывать, удалять и загружать ранее созданные ссылки на скрипты. Выбрав скрипт и нажав кнопку загрузки, вы загрузите на свой компьютер заархивированную папку («code_editor_links.zip»), содержащую текстовый файл с описанием каждого выбранного скрипта.

Модуль ui.url позволяет программно управлять идентификатором фрагмента URL-адреса скрипта с помощью методов get и set . Это означает, что скрипты редактора кода и приложения Earth Engine могут считывать и сохранять значения в URL-адресе страницы. Обратите внимание на конец следующих двух URL-адресов: в первом переменная debug устанавливается в значение false , а во втором — в значение true ; перейдите по обеим ссылкам и обратите внимание, что флажок debug в консоли не установлен в первом случае, а во втором — установлен, что изменяет поведение каждого скрипта.

https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;

Эта функция позволяет устанавливать масштаб и центр карты, а также другие параметры, которые вы можете настроить при отправке ссылок определенным людям или группам.

Инструмент поиска

Чтобы найти наборы данных для использования в ваших скриптах, вы можете использовать инструмент поиска в архиве данных. Инструмент поиска — это текстовое поле в верхней части редактора кода с надписью «Поиск мест и наборов данных...». Введите название продукта данных, датчика или другое ключевое слово в строку поиска и нажмите кнопку , чтобы увидеть список соответствующих мест, растровых и табличных наборов данных. Щелкните любой растровый или табличный результат, чтобы увидеть описание этого набора данных в архиве. Чтобы импортировать набор данных непосредственно в ваш скрипт, щелкните ссылку «Импорт» или кнопка из описания набора данных.

Импорт

Результаты импорта наборов данных в ваш скрипт организованы в разделе «Импорт» в верхней части скрипта и скрыты до тех пор, пока вы что-либо не импортируете. После создания импортов вы должны увидеть что-то похожее на рисунок 5. Чтобы скопировать импорты в другой скрипт или преобразовать импорты в JavaScript, щелкните значок рядом с заголовком «Импорты» и скопируйте сгенерированный код в свой скрипт. Вы можете удалить импорт с помощью значка .

Раздел импорта в редакторе кода

Рисунок 5. Раздел импорта в верхней части редактора кода.

Карта

Объект Map в API относится к отображению карты в редакторе кода. Например, Map.getBounds() вернет географический регион, видимый в редакторе кода. Ознакомьтесь с функциями Map в API, чтобы увидеть другие варианты настройки этого отображения.

Менеджер слоев

Используйте Диспетчер слоев в правом верхнем углу карты, чтобы настроить отображение добавленных вами слоев. В частности, вы можете переключать видимость слоя или регулировать его прозрачность с помощью ползунка. Щелкните значок , чтобы настроить параметры визуализации для отдельных слоев. Появившийся инструмент визуализации (Рисунок 6) позволяет интерактивно настраивать параметры отображения слоев. Щелкните кнопку справа от инструмента (по умолчанию выполняющую пользовательское растяжение до заданного минимального и максимального диапазона), чтобы линейно растянуть отображение до процентилей или стандартных отклонений значений изображения в окне отображения. Статистика вычисляется для всех пикселей в окне карты на текущем уровне масштабирования. Используйте ползунки для настройки гаммы и/или прозрачности. Щелкните переключатель «Палитра» и укажите пользовательскую палитру, добавив цвета ( ), удалив цвета ( ) или вручную введя список шестнадцатеричных строк, разделенных запятыми ( ). Нажмите «Применить », чтобы применить параметры визуализации к текущему отображению. Нажмите «Импорт» , чтобы загрузить объект параметров визуализации в качестве новой переменной в разделе импорта вашего скрипта.

Инструмент визуализации слоев.

Рисунок 6. Инструмент визуализации слоев.

Вкладка «Инспектор»

Вкладка «Инспектор» рядом с «Диспетчером задач» позволяет интерактивно запрашивать информацию с карты. При активации вкладки «Инспектор» курсор превращается в перекрестие, которое отображает местоположение и значения слоев под курсором при щелчке по карте. Например, на рисунке 7 показаны результаты щелчка по карте на вкладке «Инспектор» . Отображаются местоположение курсора и уровень масштабирования, а также значения пикселей и список объектов на карте. Список объектов интерактивен. Для получения дополнительной информации разверните объекты на вкладке «Инспектор» .

Вкладка «Инспектор»

Рисунок 7. На вкладке «Инспектор» отображается информация о местоположении курсора и значениях слоев под курсором.

Вкладка «Консоль»

Когда вы выводите что-либо в консоль с print() из своего скрипта, например, текст, объекты или диаграммы, результат отображается в консоли . Консоль интерактивна, поэтому вы можете развернуть выводимые объекты, чтобы получить более подробную информацию о них.

вкладка «Задачи»

Задачи Earth Engine — это операции, которые могут выполняться значительно дольше, чем стандартное время ожидания запроса API. Эти длительные задачи являются единственным механизмом для создания постоянных артефактов в Earth Engine и смежных системах (Google Cloud Storage, Google Drive и т. д.), и они делятся на две категории: Import и Export .

Задачи импорта позволяют загружать изображения или таблицы в Earth Engine из файлов различных типов ( .csv , .tif и т. д.). Задачи экспорта позволяют выполнять и записывать результаты из вычислительной системы EE (см. руководство по экспорту данных ).

При экспорте каждый вызов функции Export в редакторе кода будет заполнять запись в разделе «Неотправленные задачи» на вкладке «Задачи» . Чтобы отправить задачу экспорта на сервер, нажмите кнопку « Выполнить» рядом с задачей. Появится диалоговое окно конфигурации, позволяющее указать различные параметры для задачи. Если задача полностью задана во время создания (то есть вызов функции Export содержит все необходимые параметры), удерживайте ctrl или при нажатии кнопки «Выполнить » , чтобы отправить задачу без отображения диалогового окна.

При импорте загрузка файла происходит локально до отправки задачи на сервер. В разделе « Неотправленные задачи» задачи импорта на этапе загрузки будут отображать свой прогресс, и после завершения загрузки файла они автоматически отправятся на сервер.

Неотправленные задачи отображаются только на странице, где они были созданы, и исчезают при закрытии страницы. После отправки задачи на сервер, щелчок по ее строке в пользовательском интерфейсе предоставит дополнительную информацию и параметры о статусе задачи, включая возможность запросить отмену.

Для просмотра и отмены нескольких задач в полноэкранном режиме (в том числе на мобильных устройствах) используйте страницу «Задачи» в консоли Cloud Console .

Профайлер

Профайлер отображает информацию о ресурсах (процессорное время, память), потребляемых конкретными алгоритмами и другими частями вычислений. Это помогает диагностировать причины медленной работы скрипта или сбоев из-за ограничений памяти. Чтобы использовать профайлер, выберите опцию « Запустить с профайлером» в раскрывающемся списке кнопки «Запуск». В качестве сочетания клавиш удерживайте клавишу Alt (или Option на Mac) и нажмите «Запустить», или нажмите Ctrl+Alt+Enter. Это активирует вкладку «Профайлер» в правой части редактора кода. Во время выполнения скрипта на вкладке «Профайлер» будет отображаться таблица использования ресурсов скриптом. Нажатие кнопки «Запустить» (без профилирования) приведет к исчезновению вкладки «Профайлер» и отключению профайлера.

Подробный анализ результатов работы профилировщика см. на странице обзора вычислений .

Искусственный интеллект-помощник (вкладка «Задать вопрос»)

Редактор кода включает в себя ИИ-помощника на базе Gemini, который поможет вам писать, отлаживать и понимать ваши скрипты. Помощник доступен на вкладке «Задать вопрос» в правой панели.

Подробную информацию о настройке и использовании помощника см. в руководстве по ИИ-помощнику в редакторе кода Earth Engine .

Инструменты геометрии

Вы также можете импортировать геометрические объекты в свой скрипт, рисуя их на экране. Для создания геометрических объектов используйте инструменты рисования геометрии в верхнем левом углу карты (Рисунок 8). Для рисования точек используйте значок метки. Для рисования линий используйте значок линии. Для рисования многоугольников используйте значок многоугольника. Для рисования прямоугольников используйте значок прямоугольника. (Обратите внимание, что прямоугольники — это плоские геометрические объекты, поэтому их нельзя разместить на слое с геодезическими объектами, такими как линии и многоугольники.)

Использование любого из инструментов рисования автоматически создаст новый слой геометрии и добавит импорт для этого слоя в раздел «Импорт». Чтобы добавить геометрии в новый слой, наведите курсор на «Импорт геометрии» на карте и щелкните ссылку « +новый слой» . Вы также можете переключать видимость геометрий в разделе «Импорт геометрии». Обратите внимание, что нарисованные геометрии по умолчанию являются геодезическими, за исключением прямоугольников, которые являются только плоскими. Используйте конструктор геометрии , чтобы преобразовать их в плоские геометрии. Подробнее о геометриях в Earth Engine можно узнать на странице «Геометрия» .

Рисунок 8. Инструменты для построения геометрических фигур находятся в верхнем левом углу отображения карты.

Чтобы настроить способ импорта геометрических объектов в ваш скрипт, щелкните значок рядом со слоем в разделе «Импорт геометрии» на карте или в разделе «Импорт» редактора кода. Инструмент настройки слоя геометрии отобразится в диалоговом окне, которое должно выглядеть примерно как на рисунке 9. Обратите внимание, что вы можете импортировать нарисованные фигуры как геометрические объекты, объекты или коллекции объектов. Настройки импорта геометрии также позволяют изменить цвет отображения слоя, добавить свойства к слою (если он импортирован как Feature или FeatureCollection ) или переименовать слой.

Инструмент настройки геометрии

Рисунок 9. Инструмент настройки геометрии.

Наконец, чтобы предотвратить редактирование геометрических объектов в слое, вы можете заблокировать слой, нажав значок рядом со слоем. Это предотвратит добавление, удаление или редактирование любых геометрических объектов в слое. Чтобы снова разблокировать слой, нажмите значок .

Помощь!

Нажмите кнопку в правом верхнем углу редактора кода, чтобы увидеть ссылки на это руководство для разработчиков, другие форумы помощи, ознакомительный тур по редактору кода и список сочетаний клавиш, которые помогут вам в написании кода, его выполнении и отображении данных на карте . Нажмите кнопку , чтобы сообщить об ошибке, запросить новую функцию, предложить набор данных или отправить отзыв другим способом, если ответ не требуется.