Общие вопросы
У меня проблема, мне нужна помощь!
Задайте вопрос, следуя этому руководству , предоставив как можно больше информации (см. руководство Stack Overflow по задаванию хороших вопросов ). Обычно это означает:
Отправка ссылки на скрипт в редакторе кода (для получения ссылки нажмите кнопку «Получить ссылку»).
Предоставление любых ресурсов, необходимых для запуска скрипта.
Для задач пакетной обработки, завершившихся с ошибкой, укажите идентификатор этой задачи. Идентификаторы задач выглядят следующим образом:
4C25GIJBMB52PXTEJTF4JLGL. Их можно найти на вкладке «Задачи» в редакторе кода. Подробнее .
Где я могу почитать об архитектуре Earth Engine?
См. статью: Gorelick et al. 2017 .
Существуют ли какие-либо рекомендуемые обучающие материалы по Earth Engine, созданные не компанией Google?
См. страницы «Образовательные ресурсы» и «Учебные материалы» .
Есть ли какие-нибудь рекомендуемые обучающие материалы по дистанционному зондированию?
Ознакомьтесь с этим бесплатным курсом по электротехнике от Уджавала Ганди, который включает видео с вводным материалом по дистанционному зондированию.
Программирование двигателя Земли
Какие распространённые ошибки встречаются в коде?
См. руководство по отладке .
Почему я получаю ошибку "... не является функцией"?
Эта ошибка возникает, когда Earth Engine не может найти вызываемый метод. Проверьте следующие распространенные причины:
Орфографическая чувствительность или чувствительность к регистру : Методы чувствительны к регистру. Проверяйте орфографию по справочнику API .
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
Отсутствует приведение типов : значения, возвращаемые функциями типа .get() , являются обобщенными экземплярами ee.ComputedObject и должны быть явно приведены к нужному типу. См. раздел «Приведение типов неизвестных объектов» .
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
Смешивание клиентских и серверных методов : Убедитесь, что вы не используете стандартные методы JavaScript или Python (например .push() или .append() ) для объектов Earth Engine. См. раздел «Избегайте смешивания клиентских и серверных функций» .
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
Недоступные методы : Если объект правильно типизирован, метод существует в документации или ранее работал, но теперь не работает, сообщите об ошибке .
Почему я не могу использовать элементарные математические операции, например, 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 Apps . В более сложных случаях вы можете создавать приложения App Engine на базе EE .
Как работают идентификаторы карт?
Идентификаторы карт (в API они называются mapid ) — это ключи, позволяющие клиентам получать тайлы карт. Каждый идентификатор представляет собой хеш, созданный путем передачи выражения изображения в конечную точку getMapId . Полученные идентификаторы являются ключами, указывающими как на выражение изображения , так и на учетные данные пользователя , которые будут использоваться для генерации тайлов на более позднем этапе.
Для запроса фрагментов карты необходимо указать местоположение фрагмента ( x , y , zoom ), а также mapid (ключ к изображению и учетным данным). Один и тот же ID можно использовать для загрузки множества фрагментов карты. Ограничений на повторное использование ключей mapid нет, но они истекают через несколько часов. Мы не публикуем конкретные сроки их действия, но любой написанный вами код должен быть устойчив к истечению срока действия ID.
Создание этих идентификаторов включает в себя хранение небольшого объема данных и проверку учетных данных, поэтому лучше всего использовать их повторно как можно дольше. Для конечной точки getMapId нет специальной квоты API, но любой рабочий процесс, включающий создание объектов 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-файл, содержащий их, и загрузите его в табличный ресурс .
В чём разница между 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() объединяет все изображения из двух коллекций в одну, независимо от того, совпадают ли у них полосы, метаданные, системы координат или масштаб. Это объединение двух коллекций. Метод 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 года.
В существующем наборе данных содержатся неверные значения.
Разместите сообщение на форуме разработчиков . Приложите скрипт, который увеличивает масштаб изображения до исходного разрешения и наглядно показывает, какие значения неверны. Объясните, где именно вы обнаружили альтернативное значение.
Где ещё я могу задать вопросы о наборах данных?
По вопросам, касающимся наборов данных НАСА, посетите форум NASA Earth Data .
По вопросам, касающимся инструментальных пакетов, работающих с наборами данных 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 уровня 2 (поверхностная отражательная способность) содержат несколько полос качества, которые можно использовать для удаления облаков и других нежелательных артефактов изображения. Пример использования этих полос для обработки изображений Landsat 8 SR и создания медианного композитного изображения без облаков приведен в этой публикации на GIS Stack Exchange . Та же процедура используется для создания композитного изображения без облаков для использования в примерах контролируемой классификации в Руководстве разработчика.
Необходима ли согласованность данных поверхностного отражения Landsat, полученных с помощью разных датчиков?
В работе Роя и др. (2016) был проведен анализ различий в отражательной способности между данными Landsat 7-8 TOA и отражательной способностью поверхности. Авторы опубликовали коэффициенты OLS и RMA, чтобы читатели могли преобразовывать значения отражательной способности данных одного датчика в значения данных другого. В заключительной строке статьи говорится: «Хотя различия между датчиками довольно малы, они могут оказывать существенное влияние в зависимости от области применения данных Landsat». Однако этот анализ был основан на данных, полученных до сбора информации.
Улучшения, внесенные в ходе переработки данных из Коллекции 1 и Коллекции 2, могут повлиять на взаимосвязь между датчиками, но, насколько нам известно, подобных анализу Роя и др. (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 или загрузить много файлов одновременно.
Используйте загрузку из командной строки . Для такой загрузки исходные файлы должны быть предварительно помещены в хранилище Google Cloud Storage (GCS). Использование 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 .
Другие системы также могут использовать REST API EE.
Я хотел бы обновить часть своего ресурса в Earth Engine, не выполняя его полную переустановку.
Обновить растровые или векторные данные, загруженные в EE, невозможно. Обновить можно только свойства метаданных активов.
Я теряю доступ к своему аккаунту. Что мне делать со своими активами?
Если правила исходной учетной записи разрешают передачу данных, предоставьте доступ к своим ресурсам другой учетной записи, а затем скопируйте ресурсы, которые будут принадлежать новой учетной записи. Используйте утилиту копирования из командной строки, если необходимо переместить много ресурсов.
При удалении учетной записи принадлежащие ей ресурсы становятся недоступными.
Экспортированное изображение находится не в том месте.
Для некоторых проекций, таких как синусоидальная или коническая, файлы GeoTIFF иногда не могут сохранить все необходимые параметры проекции. Это приводит к тому, что экспортированный файл отображается не в том месте при просмотре в настольных ГИС-инструментах или при повторном импорте в EE.
Чтобы исправить это, укажите параметр экспортируемой crs , который, как известно, хорошо работает с файлами GeoTIFF — например, используйте код EPSG для зоны UTM, содержащей интересующую вас область.
Какое местоположение в Cloud Storage следует использовать для хранения активов COG?
Ответ зависит от того, что именно вы пытаетесь оптимизировать. Если вы оптимизируете доступ к вычислительным ресурсам с низкой задержкой, то лучшие места в хранилищах GCS для хранения активов COG — это US-CENTRAL *. Дополнительную информацию о других факторах см. на странице «Места хранения» .
Экспортированные ресурсы коллекции объектов не сохраняют заданные мной свойства.
Функции Export.table.* не сохраняют свойства уровня таблицы в выходных данных. Для многих форматов вывода (например, CSV, GeoJSON) такие метаданные не поддерживаются. Функция Export.table.toAsset могла бы поддерживать свойства уровня таблицы, но в настоящее время это не так.
Таблицы, экспортированные в Google Диск в формате CSV, преобразуются в формат XLSX.
В зависимости от настроек Google Drive, CSV-таблицы, экспортируемые из Earth Engine, могут быть преобразованы в файлы XLSX с непредвиденными последствиями, такими как изменение типов данных. Выполните следующие шаги, чтобы изменить поведение при последующих экспортах.
- В веб-версии Google Drive нажмите на значок настроек в правом верхнем углу.
- Нажмите «Настройки».
- Прокрутите вниз до пункта "Преобразовать загруженные файлы в формат редактора 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 message», это, вероятно, означает, что репозиторий, в который вы сохраняете скрипт, не синхронизирован. Причина этого состояния может быть различной и её трудно определить. Чтобы решить проблему, попробуйте обновить список скриптов с помощью кнопки в правом верхнем углу вкладки «Скрипты». Если это не поможет, попробуйте создать новый репозиторий с помощью кнопки «Новый» на вкладке «Скрипты» и сохранить свой скрипт там (возможно, вам потребуется переместить скрипты из несинхронизированного репозитория в новый репозиторий).
Почему в редакторе кода постоянно появляются ошибки 400?
Если в редакторе кода постоянно появляются ошибки 400, перейдите по ссылке https://myaccount.google.com/connections , найдите «Earth Engine Code Editor» в списке приложений и служб, выберите его, затем выберите «Удалить все подключения к Earth Engine Code Editor» и подтвердите действие. После этого откройте редактор кода и пройдите повторную аутентификацию.