Отсечение растрового изображения увеличивает размер файла


9

Работая с QGIS 2.4.0 Chugiak, у меня возник вопрос по поводу отсечения растровых изображений. У меня есть аэрофотоснимок, который я хочу обрезать, используя размеры шейп-файла. Пока все хорошо, я использовал для этого инструмент растр / извлечение / обрезка. Проблема в том, что размер файла моего выходного растра почти в три раза больше исходного файла (т.е. 725,283 и 249,693 кбайт соответственно), тогда как он покрывает меньшую поверхность.

Почему мой файл больше? И есть ли способ «установить» размер выходного файла?

Справочная функция clipper ссылается на следующую страницу: http://www.gdal.org/gdal_translate.html Хотя я не могу многого из этого извлечь.

Я относительно новичок в QGIS.


Обычно это означает, что оригинал сжимается, а вырезанный фрагмент - без сжатия. Вы должны прочитать о драйвере GDAL GeoTIFF и опциях сжатия.
— user30184

Если вы хотите использовать сжатие в своем выходном наборе данных, вы должны отредактировать команду, как показано в нижней части интерфейса клипсатора, и включить параметры создания с -coфлагом. Например, для GeoTiff можно -co compress=lzwиспользовать сжатие LZW без потерь. Нам нужно знать больше о вашем наборе данных, чтобы иметь возможность помочь вам (например, через gdlainfo).
— Керстен

Несжатые изображения TIFF обычно быстрее.
— Золтан,

Спасибо всем за ответы. Это действительно может быть проблема сжатия, я не думал об этом. Да, Керстен, я заметил консоль в интерфейсе клипера, хотя я не понял, как это использовать. Я пытаюсь запустить gdalinfo из консоли Python в QGIS, но у меня нет опыта с этим. Кто-нибудь знает правильный учебник, чтобы ознакомиться? Приветствия
— Mathijs

Вы можете пойти Raster > Miscellaneous > Information, что gdalinfoработать на вашем растровый файл. Вы не можете запустить его непосредственно из консоли Python, потому что это не скрипт Python.
— 15:33

Ответы:


6

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

Инструмент Растровый клип

Нажав кнопку пера справа от команды, вы можете отредактировать ее напрямую и добавить опцию конфигурации сжатия. В моем примере это стартовая команда:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff /tmp/453A.tif /tmp/output.tif

Вы можете изменить это так:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff -co "COMPRESS=LZW" /tmp/453A.tif /tmp/output.tif

Это -co "COMPRESS=LZW"всего лишь один из многих возможных вариантов сжатия, которые вы можете использовать с файлами GeoTIFF. Документация GDAL содержит больше информации обо всех опциях.


Большое спасибо, это было именно то, что мне было нужно. Размер файла по-прежнему составляет 409,019 кб, что почти вдвое больше оригинала, но рендеринг выполняется намного быстрее. Тот веб-сайт, который я видел, но я не мог понять многое из этого. Гдалинфо показал, что сжатие действительно было «снято» для первого клипа, так что это действительно было проблемой.
— Mathijs

Когда вы запускаете gdalinfo, что он сообщает для сжатия? Мы должны быть в состоянии повторить это во втором файле, как только мы узнаем. Я предполагаю, что это может быть JPEG с потерями, если он значительно меньше, чем LZW.
— Бост

Это то, что он говорит для исходного изображения: «Размер пикселя = (0.000738433000001, -0.000738432999949) Метаданные: AREA_OR_POINT = Метаданные структуры изображения области: СЖАТИЕ = LZW INTERLEAVE = PIXEL», и это то, что говорится для вырезанного изображения: «Размер пикселя» = (0.000738423955088, -0.000738437979722) Метаданные: AREA_OR_POINT = Структура изображения области Метаданные: СЖАТИЕ = LZW INTERLEAVE = PIXEL '
— Mathijs

Возможно ли, что вы случайно получили метаданные для одного и того же изображения дважды, поскольку оба они одинаковы?
— Бост

Их нет, посмотрите на размер пикселя;)
— Mathijs

0

Обновление для QGIS версии 3 и выше: опция сжатия теперь интегрирована в плагин Raster-> Extraction-> Clip raster by mask layerи в большинство других плагинов, которые создают растровые файлы.

Под Advanced parameters-> Profile, выбрав либо, Low compressionлибо High compressionполучим меньший файл.

Эти параметры сжатия без потерь, но вы можете выбрать и параметры с потерями:

  • Low compression -> -co PACKBITS(без потерь)
  • High compression-> -co DEFLATE(без потерь)
  • JPEG compression-> -co JPEG_QUALITY=75(с потерями: будьте осторожны!)

Обрезать растр по слою маски

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.