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

Объединение каналов в один файл

Добавлено: 01 сен 2009, 14:45
Aleksander
Подскажите, пожалуйста, есть ли бесплатные программы под Linux, позволяющие объединять отдельные каналы в один файл (как Layer Stack в ERDAS).

Re: Объединение каналов в один файл

Добавлено: 01 сен 2009, 15:12
Mavka
Вроде бы gdal_merge может такое:

Код: Выделить всё

gdal_merge.py -seperate red.tif nir.tif mir.tif -o stack.tif

Re: Объединение каналов в один файл

Добавлено: 03 сен 2009, 15:50
Aleksander
Спасибо, Mavka, программа работает. Значения пикселей по каналам совпадают с результатами объединения каналов с помощью ERDAS.
Однако привязка полученного изображения получается по обоим осям смещенной, по-видимому, ровно на половину разрешения пикселя (проверил только для снимков Landsat - смещение было 15 м). Использовал gdal_merge.py в составе FWTools 2.0.6 (Linux x86 32bit). Неужели программа рассчитывает при привязке координаты угла пикселя? Или это ошибка программы?

Re: Объединение каналов в один файл

Добавлено: 03 сен 2009, 16:04
Mavka
Не проверял. Могу лишь предложить перепрошить заголовок с правильной привязкой.
Была какая то программа, которая брала заголовок одного tiff'а и пришивала его в другой.
Никак не могу вспомнить какая, но вот здесь - libgeotiff предлагают две:
listgeo и geotifcp - одна сохраняет, другая загружает.

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 15:30
pendduduk
На самом деле это известная фитча...
GeoTransform (начало координат изображения) может задаваться двумя способами:
1. Левый-верхний угол 1-го (верхнего левого) пикселя растра.
2. Центр 1-го пикселя.
О том какой именно способ используется должно быть сказано в документации к ПО, GDAL использует второй.

Какой программный продукт вы используете для проверки?

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 15:41
Aleksander
В использованных мною снимках Landsat привязка происходит по центру пикселя (обрабатывались в USGS с помощью LPGS_10.0.0), а после использования gdal_merge.py получилось смещение +15 м по оси x и -15 м по оси y. Привязку смотрел в ERDAS IMAGINE 8.7.

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 15:56
pendduduk
Возможно питоновская реализация глючит, я в свое время делал такую утилитку, если надо могу поискать...

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 16:01
Aleksander
Было бы интересно посмотреть

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 16:05
pendduduk
куда положить?

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 16:19
pendduduk
вот ловите...
Нужно положить рядом GDAL16.dll (ее найти не трудно, например утянуть с официального сайта http://gdal.org),
Далее в ком. строке запускаем утиль в качестве аргумента пихаем каналы ландсата или иконоса или пофиг чего.

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 16:22
Aleksander
Спасибо!

Re: Объединение каналов в один файл

Добавлено: 04 сен 2009, 16:24
pendduduk
отпишите по результатам

Re: Объединение каналов в один файл

Добавлено: 08 сен 2009, 11:10
Aleksander
Результаты точно такие же, как при использовании gdal_merge.py (значения пикселей правильные, но есть смещение привязки).

Re: Объединение каналов в один файл

Добавлено: 08 сен 2009, 11:56
pendduduk
Aleksander писал(а):Результаты точно такие же, как при использовании gdal_merge.py (значения пикселей правильные, но есть смещение привязки).
если у вас есть утилиты gdal, запустите пожалуйста команду gdalinfo в качестве аргумента укажите первый канал который стыкуете, запишите параметры которые выплюнет прога, затем сделайте тоже самое но с получившимся файлом. И сравните координаты. Они должны быть одинаковыми!

Дело в том, что я просто читаю то что записано в первом файле и записываю в выходной.

Re: Объединение каналов в один файл

Добавлено: 08 сен 2009, 13:18
Aleksander
В самом деле одинаковые, если сравнивать с помощью gdalinfo.
Однако теперь (сравнивая с помощью gdalinfo) смещенными получаются результаты объединения с помощью ERDAS :D .