Часто задаваемые вопросы

Общие вопросы

У меня проблема, мне нужна помощь!

Задайте вопрос, следуя этому руководству , предоставив как можно больше информации (см. руководство по переполнению стека, как задавать хорошие вопросы ). Обычно это означает:

  • отправка ссылки на скрипт в редакторе кода (для ее получения нажмите кнопку «Получить ссылку»)

  • совместное использование любых ресурсов, необходимых для запуска сценария

  • для невыполненных пакетных задач сообщите идентификатор невыполненной задачи. Идентификаторы задач выглядят следующим образом: 4C25GIJBMB52PXTEJTF4JLGL . Их можно найти на вкладке «Задачи» редактора кода. Узнать больше .

Где я могу прочитать об архитектуре Earth Engine?

См. эту статью: Горелик и др. 2017 .

См. страницы EDU и учебных ресурсов .

Посмотрите этот бесплатный курс по ЭЭ Уджавала Ганди, который включает видео с введением в дистанционное зондирование.

Программирование Earth Engine

Каковы распространенные ошибки кодирования?

См. руководство по отладке .

Почему я не могу использовать базовые математические вычисления, например ee.Image("image") * 2 ?

В EE не следует смешивать объекты или операции на стороне сервера и на стороне клиента. Все операции над объектами EE выполняются на стороне сервера. Любые вычисления на стороне клиента не будут делать то, что вы от них ожидаете. См. эту страницу для более подробной информации .

Как я могу использовать циклы for или операторы if/else ?

Программирование Earth Engine выполняется с использованием функционального языка, поэтому циклы и условные операции следует выражать с использованием эквивалентных понятий, таких как map или filter . См. эту страницу для более подробной информации .

Как показать текстовые метки на изображении или видео?

Встроенной поддержки текстовых меток нет, но вы можете:

  • Используйте сторонний пакет JS. См. пример
  • Используйте сторонний пакет Python geemap .
  • Используйте QGIS для добавления изображений EE с помощью плагина EE QGIS.

Могу ли я использовать некоторые стандартные цветовые палитры?

Используйте сторонний JS-пакет ee-palettes .

Как мне создать свой собственный веб-сайт, использующий Earth Engine?

Используйте приложения Earth Engine для основных приложений. В более сложных случаях вы можете создавать приложения App Engine на базе EE .

Как работают идентификаторы карт?

Идентификаторы карт (называемые в API mapid ) — это ключи, которые позволяют клиентам получать фрагменты карты. Каждый идентификатор представляет собой хэш, созданный путем предоставления выражения изображения конечной точке getMapId . Полученные идентификаторы являются ключами, которые указывают как на выражение изображения , так и на учетные данные пользователя , которые будут использоваться для создания плиток на более позднем этапе.

Запрос фрагментов карты включает в себя указание местоположения фрагмента ( x , y , zoom ), а также mapid (ключ к изображению и учетным данным). Один и тот же идентификатор можно повторно использовать для загрузки множества фрагментов карты. Ограничений на повторное использование ключей mapid нет, но срок их действия истекает через несколько часов. Мы не публикуем конкретные сроки их действия, но любой написанный вами код должен быть устойчив к истечении срока действия идентификатора.

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

Почему ee.Algorithms.If() печатает как истинный, так и ложный случай?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

Алгоритм If() работает так же, как и любой другой алгоритм в Earth Engine, поскольку перед запуском самого алгоритма необходимо оценить все его аргументы. Алгоритм получает результаты как trueCase , так и falseCase , а затем выбирает и возвращает один из них на основе аргумента condition , но оба пути должны быть выполнены, чтобы эти значения были переданы в алгоритм в первую очередь.

Я получаю сообщение об ошибке «Размер полезной нагрузки запроса превышает предел».

Вы пытаетесь отправить в Earth Engine очень большой запрос. Обычно это происходит, когда код использует много циклов for на стороне клиента или создает FeatureCollection из множества геометрических объектов. В последнем случае вместо создания таких геометрий в вашем скрипте сгенерируйте CSV-файл, содержащий их, и загрузите его в таблицу assets .

В чем разница между ee.Image.clip() и ee.Filter.bounds() ?

См. эту ветку GIS Stack Exchange . Функция ee.Image.clip() маскирует пиксели, которые не пересекают заданный ee.Geometry или ee.Feature , делая их прозрачными в визуализациях и исключаемыми из вычислений. Вы можете представить это как отсечение пикселей от изображения.

Функция ee.Filter.bounds() фильтрует объекты ee.Image из ee.ImageCollection на основе пересечения изображения с ee.Geometry или ee.Feature . Он используется для ограничения области анализа только изображениями, пересекающими заданную область, что помогает оптимизировать выражения .

Как преобразовать пиксели изображения в коллекции объектов, по одному объекту на пиксель?

Используйте функцию ee.Image.sample() . См. примеры использования на справочной странице API функции.

В чем разница между ee.ImageCollection.merge() и ee.ImageCollection.combine() ?

Функция ee.ImageCollection.merge() объединяет все изображения из двух коллекций в одну коллекцию, независимо от того, имеют ли соответствующие изображения совпадающие полосы, метаданные, CRS или масштаб. Это объединение двух коллекций. Метод combine() объединяет полосы совпадающих изображений из двух коллекций в одну коллекцию. Соответствующие изображения имеют один и тот же идентификатор (свойство system:index ). Это внутреннее объединение двух коллекций на основе идентификатора изображения, при котором объединяются бэнды из совпадающих изображений. Для сопоставления изображений полосы из вторичного изображения добавляются к основному изображению (перезапись необязательна). Если подходящих изображений нет, возвращается пустая коллекция.

Как фильтровать коллекции изображений по нескольким интервалам дат?

См. эту ветку GIS Stack Exchange . Либо merge() несколько коллекций вместе, либо используйте ee.Filter.or() .

Как создать ограничивающую рамку вокруг заданной точки?

// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);

// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
  ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
  var box = feature.buffer(30000).bounds();
  return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);

Каталог данных

Можете ли вы добавить набор данных X?

Сообщите об ошибке запроса набора данных, следуя руководству по запросу набора данных .

Вы также можете загрузить данные в домашнюю папку Earth Engine. См. Импорт растровых данных и Импорт табличных данных .

У существующего набора данных появилась новая версия

Сообщите об ошибке набора данных, следуя руководству по запросу набора данных , и укажите, что вы запрашиваете обновление набора данных.

Существующий набор данных не обновлен или в нем отсутствуют активы.

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

Если вы ищете ресурс, фильтруя ImageCollection , убедитесь, что ваши фильтры не слишком ограничительны.

В частности, обратите внимание на следующее:

  • Sentinel-2 SR (данные уровня 2) не производились ЕКА для ранних сцен уровня 1.

  • Landsat не имеет глобального покрытия до 2000 года.

Существующий набор данных имеет неверные значения

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

Где еще я могу спросить о наборах данных?

По вопросам о наборах данных НАСА обращайтесь на форум НАСА по данным о Земле .

Вопросы о наборах инструментов, работающих с наборами данных Copernicus, можно найти на форумах S1 , S2 и S3 .

Насколько велик каталог EE?

По состоянию на октябрь 2023 года каталог содержит более 1000 наборов данных. Его размер на диске составляет более 90 петабайт (с учетом сжатия без потерь).

Как часто обновляются данные в EE?

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

Как программно просмотреть содержимое каталога EE?

Список набора данных экспортируется в формате STAC в корзину Google Cloud Storage gs://earthengine-stac . Входной файл — Catalog.json .

Могу ли я использовать данные или изображения Google Maps для анализа?

Google не лицензирует и не продает данные базовой карты для анализа.

Как узнать дату загрузки ресурса?

Свойство актива 'system:version' — это временная метка приема, отформатированная в микросекундах с эпохи Unix. Вот пример, который преобразует временную метку приема изображения Landsat в удобочитаемый формат.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

Есть ли в каталоге Earth Engine метаданные в формате JSON-LD?

Да, метаданные JSON-LD встроены в HTML-страницы каталога. Например, страница Sentinel-2 содержит следующий блок:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Earth Engine Data Catalog",
      "item": "https://developers.google.com/earth-engine/datasets"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
      "item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
    }]
  }
  </script>

Ландсат

Как реализован алгоритм simpleComposite ?

Реализация на стороне сервера эквивалентна этому коду JavaScript .

Как я могу создать безоблачные композиты на основе данных об отражательной способности поверхности Landsat?

Данные Landsat Level 2 (отражательная способность поверхности) имеют несколько диапазонов качества, которые можно использовать для маскировки облаков и других нежелательных артефактов изображения. Пример использования этих каналов для обработки изображений Landsat 8 SR и создания медианного безоблачного композита представлен в этом посте GIS Stack Exchange . Та же процедура используется для создания безоблачной композиции для использования в примерах контролируемой классификации в Руководстве разработчика.

Необходима ли гармонизация коэффициентов отражения поверхности между датчиками Landsat?

Рой и др., 2016 г. включили анализ различий в отражательной способности Landsat 7-8 TOA и отражательной способности поверхности. Они опубликовали коэффициенты OLS и RMA, чтобы читатели могли преобразовать значения отражательной способности данных одного датчика в другие. В последней строке документа говорится: «Хотя различия в показаниях датчиков довольно малы, они могут иметь существенное влияние в зависимости от применения данных Landsat». Однако этот анализ был основан на данных предварительного сбора.

Улучшения, сделанные во время повторной обработки Коллекции 1 и Коллекции 2, могут повлиять на взаимосвязь между датчиками, но, насколько нам известно, анализов, подобных Roy et al., не проводилось. (2016) для данных Сборника 1 или Сборника 2. Несмотря на отсутствие формального анализа, среди влиятельных пользователей Landsat, по-видимому, существует общее мнение о том, что корректировка данных Коллекции 2, Уровня 2 (отражательная способность поверхности) не требуется. Например, в ответ на вопрос о необходимости гармонизации Коллекции 2, Уровень 2, Майк Вулдер из научной группы Landsat отметил, что в зависимости от характера интересующего приложения (включая картирование земного покрова и обнаружение изменений) продукты Коллекции 2 по отражательной способности поверхности очень подходят и надежны, без необходимости перекрестной настройки датчиков.

Как замаскировать облака и тени облаков на изображениях MSS?

Сторонний модуль msslib для редактора кода JavaScript включает реализацию алгоритма MSScvm , а также другие полезные функции для исследования и подготовки данных MSS.

Управление данными

Кому принадлежат данные, которые я загружаю?

Согласно Условиям использования Earth Engine, клиенты владеют данными, которые они загружают в Earth Engine.

Я не могу загрузить данные!

Проверьте статус задачи загрузки на панели «Задачи» в правом верхнем углу редактора кода . Вы также можете просмотреть специальную страницу задач .

Если задачи нет, возможно, вы пытались загрузить файл через редактор кода, но из-за проблем с сетью загрузка файла так и не завершилась, поэтому задача так и не была создана. Попробуйте использовать другой браузер или другой компьютер.

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

Пример вызова gdalinfo:

gdalinfo -mm -stats -checksum file.tif

Пример вызова ogr2ogr, который преобразует in.shp в out.csv :

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

Если файл выглядит действительным, опубликуйте идентификатор невыполненной задачи в виде текста (а не в виде снимка экрана) в списке рассылки разработчиков . Идентификаторы задач имеют следующий формат: 4C25GIJBMB52PXTEJTF4JLGL . Если возможно, сделайте исходный файл общедоступным. Если это личный файл, отправьте его по адресу earthengine@google.com если вы хотите, чтобы команда Earth Engine проверила его. Если невозможно поделиться исходным файлом, предоставьте хотя бы выходные данные gdalinfo -mm -stats -checksum .

Если Earth Engine не поддерживает определенную проекцию, вам нужно будет перепроецировать данные перед загрузкой с помощью, например, gdalwarp .

Как загрузить файл в формате NetCDF или другом неподдерживаемом растровом формате?

В Earth Engine можно загружать только файлы GeoTIFF. Другие GDAL-совместимые форматы можно конвертировать в GeoTIFF с помощью gdal_translate . Пример:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

Обратите внимание, что некоторые файлы NetCDF или HDF состоят из нескольких поднаборов данных, которые можно обнаружить с помощью gdalinfo . Команда gdal_translate в этом случае будет выглядеть так (обратите внимание на путь в двойных кавычках):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

Файлы NetCDF иногда не содержат проекции, распознаваемой GDAL. В этом случае вам нужно будет установить проекцию и пространственный экстент в командной строке gdal_translate . Пример:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

Какие алгоритмы сжатия я могу использовать для загруженных файлов GeoTIFF?

Для загрузки файлы GeoTIFF можно сжимать с помощью DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP или ZSTD. Для чтения COG в реальном времени вы можете использовать DEFLATE, JPEG, LZW или ZSTD. ZSTD в целом является хорошим выбором, поскольку он быстро распаковывает, но при этом обеспечивает хорошее сжатие большинства изображений.

Чтобы применить сжатие ZSTD при использовании gdal_translate , добавьте эти параметры. Если данные имеют значения с плавающей запятой, измените PREDICTOR на 3.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

Прием растра идет уже несколько дней и не завершился.

Используя gdalinfo , проверьте, установлен ли в вашем файле следующий параметр GDAL: INTERLEAVE=PIXEL . Для файлов с этой опцией и многими полосами прием может никогда не завершиться, поскольку структура таких файлов делает чтение очень медленным.

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

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

Мои загруженные растры не соответствуют базовой карте.

Если данные немного смещены относительно базовой карты, возможно, проекция имеет неправильный датум (предположение о форме Земли). Чаще всего это происходит с синусоидальной проекцией, которую невозможно полностью закодировать в метаданных GDAL. Когда вы знаете, какой должна быть целевая проекция (например, SR-ORG:6974 для файлов, использующих синусоидальную проекцию MODIS), установите флаг --crs во время загрузки из командной строки или поле crs манифеста загрузки .

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

Мой растр отображается только в восточном полушарии.

Вероятно, вы загрузили глобальный растр, охватывающий диапазон долгот [0, 360]. Однако Earth Engine требует, чтобы растры находились в диапазоне [-180, 180]. Перед загрузкой поменяйте местами левую и правую половины растра. См. эти предложения по обмену GIS Stack Exchange .

Почему загруженное классификационное изображение выглядит пятнистым?

Вероятно, вы использовали политику пирамидирования MEAN по умолчанию. Для классификационных изображений следует использовать политику пирамидального образования MODE . для изображений QA/битовой маски следует использовать политику формирования пирамиды SAMPLE .

Я получаю следующую ошибку: Значение данных -128,0 не может быть применено к полосе № 0 типа Short<0, 255>.

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

Если ваши значения на самом деле являются целыми числами со знаком, используйте загрузку манифеста и добавьте его в раздел набора плиток, содержащий ваш файл: data_type: "INT8"

Если ваши значения представляют собой целые числа без знака, ваш файл имеет неправильное значение nodata. Вы можете переопределить его при загрузке, указав правильное значение данных (или значение, которое никогда не встречается, если оно существует). Вы также можете использовать gdal_translate -a_nodata , чтобы изменить значение nodata, или gdal_edit.py -unsetnodata чтобы удалить его.

Как загрузить файл в формате GeoJSON или другом неподдерживаемом векторном формате?

Используйте ogr2ogr для перевода форматов, совместимых с OGR, в CSV или SHP. Пример:

or2ogr -f "ESRI Shapefile" file.shp file.kml

Обратите внимание, что при загрузке CSV столбец геометрии может содержать GeoJSON.

Я хочу загрузить данные с помощью Python или загрузить сразу несколько файлов.

Используйте загрузку из командной строки . Для таких загрузок исходные файлы сначала должны быть помещены в корзину GCS (Google Cloud Storage ). Использование GCS ничего не стоит, если вы не выходите за пределы уровня бесплатного пользования — см. страницу с ценами .

Я хочу загрузить большую растровую мозаику, разделенную на множество фрагментов.

Если все файлы имеют одинаковую проекцию и размер пикселей, просто загрузите их вместе в один ресурс — они будут автоматически объединены в мозаику.

Если файлы имеют разные проекции или размеры пикселей, их невозможно объединить в один растровый ресурс. Вместо этого загрузите каждую плитку как отдельный ресурс в одну и ту же ImageCollection , из которой можно составить мозаику с помощью ImageCollection.mosaic()

Я пытаюсь загрузить мозаику и получаю ошибки о несовпадении плиток.

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

Я пытаюсь загрузить файл из сегмента GCS, но Earth Engine не может его найти.

Возможно, вы использовали разные учетные записи Google для загрузки GCS и для подключения к Earth Engine. Убедитесь, что файл GCS доступен для чтения учетной записью, которую вы используете для подключения к Earth Engine. Если мультивход в браузере вызывает затруднения, подключитесь к Earth Engine в окне браузера в режиме инкогнито.

Я хочу экспортировать много активов одновременно.

Вы должны экспортировать каждое изображение отдельно.

Я хочу переместить или удалить Folder или ImageCollection с помощью одной команды.

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

Я хочу получить прямой доступ к данным Earth Engine за пределами EE.

В QGIS есть плагин Earth Engine .

GDAL имеет драйвер Earth Engine .

Другие системы могут использовать EE REST API .

Я хотел бы обновить часть моего ресурса Earth Engine без его полной повторной загрузки.

Невозможно обновить растровые или векторные данные, загруженные в EE. Обновлять можно только свойства метаданных актива.

Я теряю доступ к своему аккаунту. Что мне делать со своими активами?

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

Если учетная запись удалена, принадлежащие ей активы больше не будут доступны.

Мое экспортированное изображение находится не в том месте.

Для некоторых проекций, например синусоидальной или конической, файлы GeoTIFF иногда не могут хранить все необходимые параметры проекции. В результате экспортированный файл отображается в неправильном месте при просмотре в настольных ГИС-инструментах или повторном вставке в EE.

Чтобы это исправить, укажите параметр экспорта crs , который, как известно, хорошо работает с файлами GeoTIFF — например, используйте код EPSG для зоны UTM, содержащей интересующую вас область.

Какое место в корзине Cloud Storage следует использовать для хранения ресурсов COG?

Ответ зависит от того, для чего вы пытаетесь оптимизировать. Если вы оптимизируете доступ к вычислениям с низкой задержкой, лучшим расположением сегмента GCS для хранения активов COG является US-CENTRAL *. См. страницу «Местоположения сегментов» для получения информации о других соображениях.

Экспортированные ресурсы коллекции объектов не сохраняют заданные мной свойства.

Никакие функции Export.table.* не сохраняют свойства уровня таблицы в выходных данных. Для многих форматов вывода (например, CSV, GeoJSON) такие метаданные не поддерживаются. Функция Export.table.toAsset может поддерживать свойства уровня таблицы, но в настоящее время не поддерживает.

Таблицы, экспортированные на Диск в формате CSV, преобразуются в формат XLSX.

В зависимости от настроек Google Диска таблицы CSV, экспортированные из Earth Engine, могут быть преобразованы в файлы XLSX с непредвиденными эффектами, например с преобразованием типов данных. Выполните следующие действия, чтобы изменить поведение последующего экспорта.

  1. В веб-версии Google Диска нажмите шестеренку «Настройки» в правом верхнем углу.
  2. Нажмите «Настройки».
  3. Прокрутите страницу до пункта «Преобразовать загруженные файлы в формат редактора Google Docs» и снимите флажок «Преобразовать загруженные файлы в формат редактора Google Docs».

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

Я не могу войти в редактор кода, поскольку он предлагает мне использовать неправильную учетную запись.

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

Я хочу сделать скриншот глобальной карты, но мне не нравится проекция Веб-Меркатора.

В редакторе кода используется картографическая проекция Web Mercator (EPSG:3857). Он увеличивает размер объектов вдали от экватора, в результате чего регионы высоких широт кажутся намного больше, чем они есть на самом деле, по сравнению с регионами вблизи экватора. Вы не можете изменить проекцию холста карты редактора кода, но можете «нарисовать» изображение в выбранной вами проекции на холст Web Mercator, используя метод ee.Image.changeProj . На справочной странице API метода приведен пример отображения глобальной матрицы высот на карте редактора кода в проекции Робинсона . Обратите внимание, что этот метод следует использовать только для целей визуализации, поскольку инспектор редактора кода и инструменты рисования все еще работают в Web Mercator.

Мой скрипт не сохраняется ( Script error: Unknown commit ).

Если вы получаете сообщение Script error: Unknown commit при сохранении сценария, это, скорее всего, означает, что репозиторий, в который вы сохраняете, не синхронизирован. Причина этого состояния различна и ее трудно определить. Чтобы решить проблему, попробуйте обновить список сценариев с помощью кнопки в правом верхнем углу вкладки «Скрипт». Если это не сработает, попробуйте создать новый репозиторий с помощью кнопки «Создать» на вкладке «Сценарий» и сохранить там свой сценарий (возможно, вам придется переместить сценарии в новый репозиторий из несинхронизированного репозитория).