Конвертер файлов Raw-Fits | Астрономические мероприятия и наблюдения звездного неба в Крыму!

Конвертер файлов Raw-Fits

Хочу представить свою небольшую разработку - пакетный конвертер RAW файловых цифровых фотокамер в формат FITS.
Может быть полезно тем, у кого есть только фотоаппарат, а хочется делать что-то интересное (например искать переменные звезды в соответствующем ПО). С помощью этого конвертера можно быстро обработать большую серию кадров, записав в каждый FITS однотипный заголовок.
Программа имеет простой однооконный интерфейс:

Конвертер Raw - Fits

Указываете каталог с RAW файлами, указываете каталог куда сохранять FITS, указываете необходимые опции и жмете Start.
Лог конвертации будет выводится в текстовой области в нижей части окна. Программа раскидывает обработку на несколько потоков в зависимости от количества ядер/процессоров.
Обработку можно в любой момент остановить, а потом снова продолжить - программа пропустит уже созданные файлы (конечно если не стоит флаг Overwrite). После остановки так же можно задать иные параметры конвертации или даже другие каталоги источника и назначения, перезапускать всю программу для этого не нужно.

Данные введенные в поля окна попадают в заголовок FITS, в соответствии со стандартом. Часть данных можно не указывать - тогда будут подгружены соответствующие сведения из RAW файла (если они конечно доступны), например выдержку, модель камеры (Instrument), дату и время съемки. В случае некоторых RAW доступен так же автор снимков/владелец камеры - это имя попадет в поле OBSERVER.

Пример заголовка FITS файла созданного программой:

конвертер Fits

В программе предусмотрено несколько режимов преобразования цветного изображения:
- конвертация RGB в градации серого методом усреднения
- сохранение всех цветовых каналов в качестве отдельных изображений в одном FITS файле, каждому изображению назначается индивидуальный заголовок с указанием какой цветовой канал тут представлен
- сохранение цветовых каналов в индивидуальные FITS, каждый созданный файл при этом будет имя вида *_RED.fits, *_GREEN.fits и *_BLUE.fits

К изображению можно применить минимальную обработку - автоматически откорректировать яркость по гистограмме. Так же можно отключить интерполяцию и получить исходное мозаичное изображение.

При сохранении так же возможны несколько вариантов генерации имен файлов:
- имя исходного RAW (минус расширение) + цветовой режим + .fits
- имя объекта + дата + цветовой режим + .fits
- имя объекта + фильтр + дата + цветовой режим + .fits
- имя исходного RAW (минус расширение) + дата + .fits

Исходный RAW:

Raw Скорпион

Результат работы программы:

конвертер Raw

Программа полностью свободна и распространяется в виде исходных кодов под лицензией GNU GPLv2,
загрузить можно на github: https://github.com/olegkutkov/Raw2Fits

Для сборки нужны следующие библиотеки:
libraw (лучше всего взять на официальном сайте и собрать самостоятельно: https://www.libraw.org/download версии старее 0.17 могут некорректно извлекать метаданные)

cfitsio - можно использовать версию из дистрибутива

libgtk-3

Для сборки консольного приложения надо выполнить команду:

make cli 
Зависимости:
* libraw (требования такие же как и у оконного приложения - лучше руками собрать свежую версию
 с офф сайта)
 * cfitsio
* libconfig (подойдет любая версия из современных дистрибутивов)

Для своей работы консольное приложение требует конфигурационный файл. Например: https://raw.githubusercontent.com/olegkutkov/Raw2Fits/master/config/samp... .  Он поддерживает больше параметров, нежели окно графической версии. Все остальное в целом аналогично и подчиняется тем же правилам, что и в оконном приложении.
Комментарии можно писать в  любом удобном формате, в примере представлены три различных варианта. Можно использовать любое количество пробелов и табуляций, это не важно, главное не ломать общий синтаксис.

Запускается консольная версия очень просто:

raw2fits-cli -c file.config

Пути чтения RAW и сохранения FITS можно переопределить, для текущей сессии, аргументами -i и -o:

raw2fits-cli -c config/sample.config -i /disk/new_raw_dir -o /disk/new_fits_dir

После запуска программы происходит аналогичное разделение на потоки обработчика и программа ждет завершения их работы, обработку можно в любой момент остановить нажатием Ctrl-C.

Существует так же дополнительный аргумент командной строки: -q или --quiet
Если он задан - программа пишет меньше сообщений и при обработке выводится лишь прогресс бар из символов =, а так же общий процент выполнения.

Что запланировано в следующих версиях:
* Фильтр RAW файлов в конфигурационном файле, можно будет задать маску/расширения файлов, которые нужно обработать (на случай если в исходном каталоге много разных файлов), все остальные файлы будут проигнорированы.
* Произвольный формат имени FITS файла. В текущей версии имя FITS генерируется лишь по 4 возможным шаблонам. В дальнейшем можно будет описать правило вида "%OBJ_%DT_my_fits_%OBS.fits", где вместо "%OBJ, %DT и %OBS будут подствлены имя объекта, дата съемки, имя наблюдателя соответственно. Будет много различных вариантов шаблонов.
* Поддержка астрометрии. По желанию пользователя, перед запуском конвертации, можно будет отправить запрос на сервис astrometry.net и получить в каждом FITS файле полные астрометрические данные. Эта возможность будет добавлена как в консольное, так и в оконное приложение.

Кутков Олег, КрАО, 2017