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

9

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

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

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

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

Mathijs
источник
Обычно это означает, что оригинал сжимается, а вырезанный фрагмент - без сжатия. Вы должны прочитать о драйвере 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 содержит больше информации обо всех опциях.

bosth
источник
Большое спасибо, это было именно то, что мне было нужно. Размер файла по-прежнему составляет 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(с потерями: будьте осторожны!)

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

RafDouglas
источник