Форумы GIS-Lab.info
Google Maps — shp и GeoTiff. Подскажите пожалуйста
Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
13 сообщений • Страница 1 из 1
Bass Новоприбывший
Сообщения: 8 Зарегистрирован: 20 май 2011, 14:25
Репутация: 0
Google Maps — shp и GeoTiff. Подскажите пожалуйста
Сообщение Bass » 23 май 2011, 12:26
Добрый день уважаемые.
Подскажите пожалуйста в данном вопросе. Занимаюсь созданием окреснотей аэропортов для симулятора Microsoft Flight Simulator X. Пользуюсь программой SAS Planet для скачаки карт, а именно Goggle Maps (не спутниковых, а векторных). Необходимо с Гугл Мап карт скачать и конвертировать информацию в шейп файлы (SHP), лесные массивы, реки и т.п. Каким способом, и при помощи какиъ инструментов эффективнее всего это сделать?
Также возможно ли конвертировать данные в GeoTiff, из этого формата в симе можно получить лесные массивы для всей страны или планеты, конечно если есть исходные данные. Спасибо!
Сообщения: 5173 Зарегистрирован: 26 сен 2009, 16:26 Статьи: 3 Проекты: 5/1
Репутация: 793 Ваше звание: званий не имею Откуда: Москва
Re: Google Maps — shp и GeoTiff. Подскажите пожалуйста
Сообщение Александр Мурый » 23 май 2011, 12:38
Bass писал(а): Необходимо с Гугл Мап карт скачать и конвертировать информацию в шейп файлы (SHP), лесные массивы, реки и т.п. Каким способом, и при помощи какиъ инструментов эффективнее всего это сделать?
Ну.. Во-первых, это не слишком законно (как вы сами, я надеюсь, понимаете). Первый раз слышу о каких-то векторных данных на Google Maps (обычно снимки и карты, все в растре). Может, вы имеете в виду что-то другое? Или вам надо оцифровать (из растра в вектор)?
Bass писал(а): Также возможно ли конвертировать данные в GeoTiff, из этого формата в симе можно получить лесные массивы для всей страны или планеты, конечно если есть исходные данные.
Все выходные растровые форматы SASPlanet можно конвертировать в GeoTiff с помощью GDAL (поищите по форуму, если не знаете, что это).
Добавление GeoTIFF в .map карту
Спасибо за ответ, но легче не стало. Растр в карту добавляется, но как-то странно.
Во-первых, он не сохраняется в карте. Нужно как-то отдельно его записать? Во-вторых, при попытке панорамирования растр не обновляется и превращается в мешанину точек. Причём именно панорамирование, с масштабированием проблем нет.
Пользователь
Сообщений: 392 Регистрация: 07.11.2018
10.03.2021 15:24:17
Работа с картографическим документом предполагает, что он может состоять из произвольного количества векторных, растровых и матричных карт и моделей.
Первые открытые данные являются «главной картой» в документе. При добавлении любых данных к «главной карте», они не записываются в карту, а добавляются в список открытых наборов данных, для их совместного отображения.
Подробнее ознакомиться с открытием данных можно пункте 3.6.1 в Руководства программиста .
Можно сохранить текущий список наборов данных и их свойства в INI-файле или проекте данных MPT. Сделать это можно с помощью функций mapSaveMapState и mapSaveProject (mapapi.h):
// Сохранить текущие параметры окна карты в INI-файл карты, // имя файла можно запросить через mapGetMapIniName() // Вызывается перед закрытием окна карты // Сохраняет описание открытых данных, масштаб, палитру, признаки видимости, // редактируемости, состав отображаемых объектов. // hmap - идентификатор открытых данных // point - координаты центра окна в метрах (может быть 0) // При ошибке возвращает ноль _MAPIMP long int _MAPAPI mapSaveMapState(HMAP hMap, DOUBLEPOINT *point);
// Сохранить список открытых наборов данных и их свойства в проекте данных MPT // hmap - идентификатор открытых данных // name - имя файла проекта MPT (структура, как INI-файла) // При ошибке возвращает ноль _MAPIMP long int _MAPAPI mapSaveProjectUn(HMAP hMap, const WCHAR * name); _MAPIMP long int _MAPAPI mapSaveProject(HMAP hMap, const char * name);
Пожалуйста, предоставьте пример и укажите данные, на которых проявляется данное поведение для проведения тестирования.
Google Earth Engine (GEE) как общедоступный каталог больших геоданных
В прошлой статье Google Earth Engine (GEE) как общедоступный суперкомпьютер речь шла про работу в облачном редакторе GEE, где для доступа достаточно лишь наличия Google почты. Если потребности ограничиваются разовыми задачами и гигабайтами извлекаемых данных, то этого вполне достаточно. Но для автоматизации множества даже мелких задач облачный редактор не лучший способ работы и, тем более, когда требуется многократно получать растры суммарным размером в терабайты. В таких случаях потребуются другие инструменты и сегодня мы рассмотрим возможности доступа из консольных shell и Python скриптов и Python Jupyter notebook.

На скриншоте Python Jupyter ноутбук, где растр с данными о плотности населения за 2020 год из каталога Earth Engine data Catalog: WorldPop Global Project Population Data отображен на карте OpenStreetMap
Введение
Как говорится, аппетит приходит во время еды. Вот и я, хотя давно и с удовольствием работаю с Google Earth Engine (GEE), только недавно столкнулся с задачами, требующими регулярного извлечения терабайт данных для их последующей обработки. К счастью, это вполне реально. Более того, на GEE все нужные данные представлены в одном месте и регулярно обновляются, что делает его оптимальным источником. Конечно, мне понятно, насколько мало специалистов работают с такими наборами пространственной информации, и уж точно они не ищут статьи на русском языке (потому, что их нет). С другой стороны, специалисты по машинному обучению (ML) часто жалуются на недостаток данных, так вот же вам настоящий Клондайк! Есть разные варианты, как реализовать машинное обучение на этих данных — можно средствами GEE, можно обратиться к функциям Compute Engine или делать все самому. Впрочем, это отдельная большая тема, так что мы ограничимся лишь получением данных.
Облачные акаунты Google
Для работы нам понадобится подключение к облачным аккаунтам Google Cloud SDK и установленный консольный google-cloud-sdk. При наличии гугл почты у нас уже есть один (или несколько) персональных аккаунтов. Просмотреть список доступных аккаунтов и переключаться между ними можно с помощью консольной команды:
$ gcloud auth list Credentialed accounts: - youremail@gmail.com (active) To set the active account, run $ gcloud config set account
Здесь уже отображена подсказка для переключения между аккаунтами:
$ gcloud config set account
После переключения нужно авторизоваться в аккаунте :
$ gcloud auth login
Доступ к облачным хранилищам
Обычных почтовых аккаунтов достаточно для доступа к облачным хранилищам buckets и Google Drive, куда можно сохранять данные GEE из облачного редактора GEE. Заметим, что при доступе через API данные возможно сохранить сразу локально.
Cохранение данных GEE на buckets выполняется с помощью функций Export.table.toCloudStorage и Export.image.toCloudStorage и используется в случаях, когда планируется дальнейшая работа с файлами в облаке Google Compute Engine. Управлять этими файлами можно с помощью утилиты gsutil, например:
$ gsutil du -h gs://mycloudstorage
Эта команда покажет список файлов и их размеры в удобных человеку единицах (см. ключ -h). С помощью утилиты gsutil можно осуществлять различные файловые операции, ключи достаточно интуитивны (cp, rm. ), подробности смотрите в справке указанной утилиты.
Для сохранения из GEE на Google Drive доступны команды Export.table.toDrive и Export.image.toDrive, дальнейшее управление файлами доступно в веб-интерфейсе или с помощью дополнительных утилит и приложений. Преимущественно сохранение на Google Drive используется для скачивания готовых файлов.
Доступ к GEE через API
Для не интерактивной работы с Google Earth Engine (GEE) рекомендуется создать так называемый сервисный аккаунт вида my-service-account@. iam.gserviceaccount.com: Create and register a service account to use Earth Engine. Для доступа к GEE требуется в свойствах созданного аккаунта зайти на вкладку KEYS и создать и скачать JSON файл его ключа, а также зарегистрировать аккаунт на странице Register a new service account. Теперь с этим ключом можно авторизоваться с помощью следующего Python кода:
import ee service_account = 'my-service-account@. iam.gserviceaccount.com' credentials = ee.ServiceAccountCredentials(service_account, 'privatekey.json') ee.Initialize(credentials)
вместо использования функции Python API ee.Authenticate() с интерактивной авторизацией каждого сеанса. Смотрите также консольную авторизацию
$ earthengine earthengine --ee_config
Аналогично, ключ сервисного аккаунта позволяет авторизоваться и при использовании Python GDAL:
import os from osgeo import gdal os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "my-service-account.json"
Или консольных утилит GDAL:
export GOOGLE_APPLICATION_CREDENTIALS=my-service-account.json
Извлечение растров GEE
Для получения растров мы будем говорить о методе API Method: projects.assets.getPixels Такой доступ обеспечивает высокую скорость передачи данных и позволяет копировать огромные объемы данных, но отдельными блоками размером не более 32MB. К счастью, проект GDAL уже предоставляет обертку для этого API, так что достаточно одного вызова нужной утилиты или функции для передачи всего растра целиком.
Возьмем практический пример для консольных утилит GDAL и на Python. Просмотрим набор данных WorldPop/GP/100m/pop и извлечем один из найденных растров за 2020 год. Растры в этом наборе варьируются в размере по порядку величины от мегабайт до гигабайт, для примера выберем один из небольших:
export GOOGLE_APPLICATION_CREDENTIALS=my-service-account.json # fetch collection ogrinfo -ro -al "EEDA:" -oo COLLECTION=projects/earthengine-public/assets/WorldPop/GP/100m/pop -where "year=2020" # show one raster info gdalinfo "EEDAI:projects/earthengine-public/assets/WorldPop/GP/100m/pop/ZWE_2020" # fetch one raster to local drive gdal_translate "EEDAI:projects/earthengine-public/assets/WorldPop/GP/100m/pop/ZWE_2020" ZWE_2020.tif
Аналогично на Python:
import os from osgeo import ogr, gdal # define service account key os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "my-service-account.json" # fetch collection driver = ogr.GetDriverByName('EEDA') ds = driver.Open('EEDA:projects/earthengine-public/assets/WorldPop/GP/100m/pop') layer = ds.GetLayer() # filter collection by attribute layer.SetAttributeFilter('year=2020') # select 1st raster for feature in layer: name = feature.GetField("name") crs = feature.GetField("band_crs") print ('raster name and crs:',name, crs) break # fetch 1st raster from the collection to array ds = gdal.Open(f'EEDAI:') band = ds.GetRasterBand(1) array = band.ReadAsArray() print ('raster shape:', array.shape)
Заключение
Выше мы рассмотрели достаточно «продвинутые» техники работы с Google Earth Engine. Если вы обращаетесь к GEE регулярно, намного удобнее использовать шелл скрипты и Python Jupyter ноутбуки и иметь возможность сохранять практически произвольные объемы данных локально без промежуточных облачных хранилищ и без ожидания выполнения очереди заданий экспорта, которое может затянуться. Отдельно отмечу, что вовсе не обязательно извлекать «сырые» данные — можно их предварительно обработать средствами GEE. За подробностями серверной обработки, работы с GDAL и отображения данных обратитесь к ссылкам ниже.
Мне было бы интересно получить обратную связь от читателей: стоит ли обращаться к более сложным темам или и это уже за гранью того, что интересует русскоязычную аудиторию? Знаю, что немало читателей здесь используют Google Transtale и подобные переводчики, возможно, стоит сразу писать на английском на LinkedIn, как я уже делаю с публикациями по геофизике.
Как загрузить изображения из Google Планета Земля — Карты Google — Bing — ArcGIS Imagery и другие источники
Для многих аналитиков, которые хотят создавать карты, на которых отображается растровая ссылка с любой платформы, такой как Google, Bing или ArcGIS Imagery, мы уверены, что у нас нет проблем, поскольку почти любая платформа имеет доступ к этим сервисам. Но если мы хотим загрузить эти изображения в хорошем разрешении, то какие решения StitchMaps исчезнуть, безусловно, лучшее решение — SAS Planet.
САС Планета, это бесплатная программа российского происхождения, которая позволяет вам находить, выбирать и загружать несколько изображений с разных платформ или серверов. Внутри серверов вы можете найти Google Earth, Google Maps, Yahoo, Bing, Nokia, Yandex, Navitel Maps, VirtualEarth, Gurtam, а к изображению можно добавить наложения, такие как метки или дорожные конструкции — то, что называется гибридным- . Среди его новостей можно перечислить:
- быть полностью переносимым приложением, не требующим какой-либо установки, просто выполнив его, можно выполнить любой процесс,
- возможность ввода .KML файлов,
- измерение расстояний и маршрутов
- загрузка дополнительных данных с других серверов, таких как Wikimapia,
- Экспорт карт на мобильные телефоны, совместимые с платформами, такими как Apple — iPhone.
Посредством практического примера можно будет визуализировать шаги по извлечению информации в растровом формате с любой из вышеупомянутых платформ. Одним из самых больших преимуществ является то, что изображения, загружаемые через это приложение, имеют географическую привязку, что экономит время при создании продуктов. В отличие от изображений Google Планета Земля, они могут быть сохранены — загружены, но для этого потребуются последующие процессы географической привязки, что отнимает много времени.
Последовательность шагов для загрузки изображений
Растровый выбор интересующей области
- Первым шагом является загрузка файла, содержащего установщик SAS Planet, в этом случае использовалась последняя версия, выпущенная для публичного использования в декабре 2018 г. Файл загружается в формате .zip, и для запуска они должны распаковать файл. содержание полностью. По завершении открывается путь назначения и находится исполняемый файл Sasplanet.
- При выполнении программы открывается основной вид приложения. Имеется несколько панелей инструментов (зеленого цвета), а также главное меню приложения (красный цвет), основной вид (оранжевый цвет), масштабирование вида (желтый цвет), относительная ситуация (фиолетовый цвет), панель состояния и координаты (цвет фуксии).

- Чтобы начать поиск, если вы знаете, что такое требуемая область, вы приближаетесь к карте основного вида, пока не достигнете нужного места, на одной из панелей инструментов вы выбираете источник растровой информации, в данном случае это от Google. ,

Если вы хотите изменить источник информации, просто нажмите там, где указано имя базы данных, там вы можете выбрать между: Google, Yandex, Nokia, Kosmsnimki, Navteq, Genplan of Moscow, GeoHub, Bing, Geoportal, Yahoo! , другие карты, исторические, туризм, морские карты, Космос, локальные карты, OSM, ESRI или Google Earth.
- После выборов производится выбор необходимой площади. В зависимости от того, как выглядит растр, выбирается сервер, например, для изображения Google, так как оно не содержит облаков, присутствующих на сцене.

- Затем кнопка активируется Сдвиг, при этом область изучения будет выбираться с помощью курсора. Просто щелкните по углу и перетащите в нужное место, сделайте последний щелчок, и откроется окно, в котором мы должны разместить выходные параметры выбранного изображения.
- В окне видны несколько вкладок, в первой из них Скачать, уровень масштабирования выбран. Уровни масштабирования варьируются от 1 до 24 — максимальное разрешение. Когда изображение выбрано, на шкале масштабирования отображается уровень, однако в этом окне его можно изменить. Он также указывает сервер, с которого будет извлечен продукт.

- На следующей вкладке размещены выходные параметры. Специально для сохранения растра с информацией о пространственной привязке. В поле (1) указывается формат изображения, в поле (2) выходной путь, в поле (3) выбранный сервер, в поле (4), если есть какой-либо слой перекрытия, в поле (5) указывается проекция, затем группа с именем Создать файл геопривязки (6), наиболее удобный вариант отмечен, в этом случае .W, качество по-прежнему остается по умолчанию на 95%, y наконец, нажмите на начать,

- Изображение было экспортировано в формате JPG, но его можно экспортировать в следующих форматах: PNG, BMP, ECW (вейвлет сжатия сжатия), JPEG2000, KMZ для Garming (оверлеи Jpeg), RAW (одиночная растровая графика), GeoTIFF.
Если вы проверите папку, в которой было сохранено изображение, можно определить файлы 4, растровый файл .jpg, вспомогательный файл, а затем увидеть jpgw (это эталонный файл, созданный ранее. .W)и .prj, связанный с изображением.
Растровый дисплей в SIG

- После завершения процесса файл открывается в любом программном обеспечении ГИС, чтобы можно было убедиться, что изображение находится именно в требуемой области. Для продолжения в проекте ArcGIS Pro слои загружаются в формате формы, указывая место, где должно быть размещено вновь экспортированное изображение.
- Когда вы открываете его, вы видите, что изображение полностью соответствует элементам в формате формы основного вида, то есть водоемам в векторном формате. Резервуар, представленный на изображении, корректируется в соответствии с местоположением многоугольника, поэтому считается, что он идеально привязан

Использование гибрида

Если вы хотите извлечь растровые данные с другим контентом, таким как улицы и проспекты, и использовать их на мобильных устройствах для определения местоположения пользователя, выполняется тот же процесс выбора области интереса.
Разница в том, что теперь данные сервера Bing будут взяты в его версии дороги — улиц, на главном экране отображаются только наиболее значимые достопримечательности, а также названия главных улиц. Если вы продолжаете приближаться к главному виду, загружаются сведения, относящиеся к области исследования.
Теперь, если предыдущий растр должен загружать данные карт маршрутов и сайтов, представляющих интерес, только гибрид — гибрид, который просто накладывает данные из базы эталонных мест на растровое изображение.
- На панели инструментов есть кнопка, на которую накладываются слои, при входе туда отображаются все картографические основы, которые можно наложить на растр. От Google, OSM — Open Street Maps, Яндекса, Росреестра, Гибрида Yahoo, Хибрида Викимапиа, Навтека.
- Затем для растровой базы используется сервер Bing Maps — Satellite, затем он вводится в меню гибрид, и активировать столько, сколько нужно, — чтобы определить, какой из гибрид имеет больше пространственной информации, для примера были выбраны: Google, OSM, Wikimapia и ArcGIS hybrid, вид растра с наложенными слоями показан ниже

Сохранить изображение с данными гибридвид выбирается так же, как и в предыдущих случаях, но на этот раз, когда отображается экран параметров изображения, выбирается следующее: на вкладке гладь, выходной формат, выходной путь, растровую базу (Bing) и Наложение слоя — был выбран Google Hybrid — и файл пространственной привязки .w.

- После запуска процесса изображение открывается в SIG или программном обеспечении по вашему выбору, и подтверждается, что изображение с наложенными данными Google Hybrid действительно было экспортировано. Отображаются метки элементов, присутствующих в интересующей области, и когда фигура размещается, она располагается именно там, где должен находиться водоем.
Процесс этой статьи можно увидеть на канале Youtube Geofumadas
Заключительные мысли

Как удалось убедиться, использование инструмента достаточно простое, не требуется больших усилий для понимания динамики каждого из процессов и инструментов, составляющих его. Поэтому его использование настоятельно рекомендуется.
В отличие от других инициатив в этой функции загрузки изображений с географической привязкой, таких как случай Stitchmap, эволюция, которую претерпела SASPlanet, подлежит погашению, поскольку в каждое обновление постоянно добавляются инструменты и функции, а также предоставляется доступ ко все большему количеству услуг. Эта статья написана с использованием последней стабильной версии от 21 декабря 2018 года, однако мы предлагаем вам эту ссылку с официальной страницы, которая содержит репозиторий всех версий, выпущенных с 2009 года.
Поздравляем SASPlanet с 10 годами непрерывности.