gdalmerge создает слишком большой файл

12

Я пытаюсь объединить 60 файлов геотифов в один огромный файл, чтобы иметь возможность создавать плитки из полученного огромного файла геотифов с помощью gdal2tiles.

Процесс слияния работал, но по какой-то причине он создает файл размером 78 ГБ вместо ожидаемых 19 ГБ. Не совсем уверен, что там пошло не так.

Причина для этого заключается в том, что мозаика 60 геотифов одна за другой дает мне пустые места на границе карты.

user851
источник

Ответы:

16

Обычно GeoTIFF сжимаются для хранения. Запуск gdal_merge с настройками по умолчанию не сжимает файл. Добавить опцию

-co COMPRESS=DEFLATE

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

Подземье
источник
1
Для дальнейшего использования - мой, если никто другой - gdal.org/frmt_gtiff.html имеет набор специфических параметров GeoTiff, которые вы можете использовать для любой из команд gdal. В зависимости от типа изображения, которое у вас есть, вы можете выбрать COMPRESS = LZQ или даже JPEG; Стоит потратить время на проверку типа сжатия, используемого на исходных изображениях.
Трава
Спасибо Херб, я обновил ответ, чтобы содержать вашу ссылку.
Подземье
5

Как подчеркивает Подземье, лучшим решением является сжатие изображений для предотвращения непосредственного сохранения большого объема пустого пространства (собственное изображение TIFF похоже на растровое изображение: каждое значение занимает одинаковое количество места). Еще одна удобная опция сжатия:

-co COMPRESS=LZW

Он редко имеет такую ​​же степень сжатия, как и DEFLATE, но имеет преимущество работы с большинством программного обеспечения, DEFLATEкоторое не поддерживается во многих средах, таких как ArcGIS 9.x.

Вы можете попробовать еще более агрессивное сжатие без потерь, используя одно из вейвлет-преобразований, такое как ECW , MrSID или одну из различных реализаций JPEG2000. Имейте в виду, что вам понадобятся инструменты, использующие GDAL или иным образом реализующие библиотеки для доступа к данным в этих форматах.

SCW
источник
3

Вы можете избежать слияния ваших файлов geotiff, написав vrt-файл, который объединяет их «виртуально».

Это файл XML, который описывает, как файлы должны быть собраны. Все утилиты gdal принимают этот файл vrt в качестве входной карты. Оба gdal2tiles или MapTiler основаны на gdal, поэтому они должны иметь возможность использовать файл vrt (я еще не пробовал с файлом vrt, но я уже пробовал с файлом gdal_wms, и он работал довольно хорошо).

Написание vrt-файла с нуля - дело непростое. Просто преобразуйте одного из ваших геотифов в vrt, чтобы получить пример:

gdal_tranlate -of vrt one_of_your_geotiff.tif one_of_your_geotiff.vrt

Существует также инструмент под названием gdalbuildvrt, но я не пробовал его.

имя
источник
1
У Мэтта Перри есть хорошая статья о некоторых преимуществах использования VRT: perrygeo.net/wordpress/?p=141
scw 26.10.10