Страница 1 из 1

Утилита выгрузки с WMS-серверов

Добавлено: 19 июн 2015, 13:41
SergeyRyzhkov
По просьбе нашего коллеги, сделал небольшую утилиту для просмотра информации о WMS-сервисах,
а также пакетной выгрузки растров (с привязкой WLD), формирования XML - описаний источника для последующей выгрузки посредством GDAL

Делалось быстро, возможны ошибки и т.д.
Код не открыт. Кому нужен - вышлю.
Лицензия - никакой.
Файл: https://yadi.sk/d/9oTkwG-YhM258
Требует наличия .NET Framework >=4.0

Описывать пока не буду. Если не понятно - спрашивайте.
ЗЫ
Основное предостережение:
Прежде, чем формировать большое количество отдельных растров, убедитесь что сервер корректно отображает BBOX и обрабатывает его.
Это в основном касается СК 4326.
В стандарте 1.3.0 , в отличие от 1.1.Х меняются местами долгота и широта.
Но не все сервера правильно "отдают" охват карты.

Re: Утилита выгрузки с WMS-серверов

Добавлено: 21 июн 2015, 21:23
Landser
Сергей, отличная утилита! Премного благодарен вам за труды!!!

Опишу поподробнее:

Утилита предназначена для облегчения получения значительных по площади отображаемой территории геопривязанных растров с различных WMS-сервисов. Происходит автоматическая разбивка общего растра на блоки (фрагменты) по долготе и широте, пиксельные размеры которых не превышают максимальные пиксельные размеры одного блока, отдаваемого данным WMS. Для каждого такого блока формируется свой XML-файл, необходимый для последующего получения данного блока посредством утилиты gdal_translate. Также формируется общий батник с командой взятия каждого блока, при однократном запуске оного, пользователь освобождается от монотонного ручного труда по изменению каждый раз при взятии каждого последующего блока параметров запуска утилиты gdal_translate.

Если нам нужно максимальное качество получаемых выходных растров, то используем режим "Формировать файлы GDAL WMS". В этом случае мы получим некоторое количество ogs_wms xml файлов, общее число которых будет равно общему количеству блоков всей карты. Также сгенерится gdal_getmap.bat, в котором будут прописаны команды для взятия всех блоков данной карты утилитой gdal_translate. Запуская батник, через некоторое время получаем все блоки карты в растровом формате geoTIFF с привязкой без компрессии.

Если максимальное качество нам не нужно, то все блоки карты можно загрузить непосредственно утилитой используя режим: "Загружать растры online (с файлом привязки WLD)". В это случае все блоки будут скачаны в формате с компрессией, определяемым переключателем "Формат растра" в "Параметры растра" утилиты. К каждому растру будет приложен свой файл с привязкой.

Дальнейшая сборка всей карты в общий геопривязанный растр из полученных блоков может осуществляться любым из известных способов. ИМХО, для этой цели лучше всего подходят программы с наглядным отображением всех загруженных растров, например Global Mapper.

Предостережение:
Чем крупнее масштаб карты, тем больше (в геометрической прогрессии) будет количество получившихся блоков и их суммарный объём. У каждого пользователя может наступить такой момент, что используемое компьютерное "железо" перестанет быстро справляться с получившимся количеством "тяжёлых" непакованных блоков в geoTIFF. В этом случае будет разумнее несколько пожертвовать качеством изображения на получаемых растрах и выбрать режим "Загружать растры online (с файлом привязки WLD)".

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