Телескопы покупают здесь


A A A A Автор Тема: Пакетный конвертер RAW в FITS [Linux]  (Прочитано 1493 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн oleg_kutkovАвтор темы

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

Программа имеет простой однооконный интерфейс



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

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

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



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

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

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


Пример работы программы

Исходный RAW:


Сгенерированный FITS, в режиме "три цветовых канала в один FITS", просмотр в fv:



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

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


Надеюсь приложение будет кому-нибудь полезно.
С удовольствием принимаю отзывы и предложения :)
« Последнее редактирование: 10 Ноя 2017 [13:17:04] от Deimos »


Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #1 : 30 Окт 2017 [22:16:52] »
А безоконный вариант не пробегал?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #2 : 30 Окт 2017 [22:44:51] »
Можно сделать и консольный вариант, UI достаточно легко откручивается.
Думаю в одной из ближайших версий сделаю вариант и без графики.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #3 : 31 Окт 2017 [07:48:58] »
Думаю, автоматизаторам всяким пришлось бы по душе без гуя работать. Можно пайплайнить работу и тут.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн crypter

  • ***
  • Сообщений: 100
  • Благодарностей: 10
    • Сообщения от crypter
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #4 : 31 Окт 2017 [08:40:29] »
Интересная разработка. Напомнила мои скрипты для подготовки равов Canon 350D для фотометрии в gcx. Парочка косяков
CRVAL1  =             19.99333 / RA at reference pixel in degrees
RA      = '19:59:36,0017'      / Object Right Ascension
DEC     = '22:43:0,00183'      / Object Declination
В RA/DEC запятые вместо точек. И CRVAL1 разве не градусах должен быть?

Оффлайн Зануда

  • *****
  • Сообщений: 1 521
  • Благодарностей: 46
  • ТАЛ-150К и бинокли
    • Jabber - shurale51650@jabber.ru
    • Сообщения от Зануда
    • домашняя страничка
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #5 : 31 Окт 2017 [08:42:27] »
Можно сделать и консольный вариант, UI достаточно легко откручивается.
Думаю в одной из ближайших версий сделаю вариант и без графики.

Это было бы очень хорошо и linux-style. Думаю, полезно также было бы использовать конфигурационные файлы - такие поля, как "телескоп", "инструмент", "наблюдатель", "обсерватория" прямо-таки просятся быть вынесенными туда.

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #6 : 31 Окт 2017 [11:51:58] »
Парочка косяков
Код: [Выделить]

CRVAL1  =             19.99333 / RA at reference pixel in degrees
RA      = '19:59:36,0017'      / Object Right Ascension
DEC     = '22:43:0,00183'      / Object Declination

А можете показать выхлоп команды locale на своей системе?
Что-то я действительно позабыл про локальный формат разделителя дроби...

По поводу CRVAL - тут опечатку нашел, у меня CRVAL1 два раза задублировался, а должно быть CRVAL1 и CRVAL2, поправил.
И да - значение в градусах, 19:59:36 в градусах будет как раз 19.99333, так что тут как бы вроде все  верно.


Консольную версию приложения постараюсь выпустить на этой неделе.

Оффлайн Зануда

  • *****
  • Сообщений: 1 521
  • Благодарностей: 46
  • ТАЛ-150К и бинокли
    • Jabber - shurale51650@jabber.ru
    • Сообщения от Зануда
    • домашняя страничка
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #7 : 31 Окт 2017 [17:20:47] »
А можете показать выхлоп команды locale на своей системе?

На моей?

locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Оффлайн Serg1

  • ****
  • Сообщений: 284
  • Благодарностей: 18
  • Мне нравится этот форум!
    • Сообщения от Serg1
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #8 : 01 Ноя 2017 [06:21:54] »
Очень полезная программа. Если можете сделайте сборку под Win.

Оффлайн crypter

  • ***
  • Сообщений: 100
  • Благодарностей: 10
    • Сообщения от crypter
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #9 : 01 Ноя 2017 [07:30:55] »
На моей?
Видимо, это был мне вопрос. Локаль у меня стандартна — ru_RU.UTF-8.
Цитата
И да - значение в градусах, 19:59:36 в градусах будет как раз 19.99333, так что тут как бы вроде все  верно.
Насколько мне известно, RA — это строка, выраженная в часах-минутах-секундах (HH:MM:SS.sss).

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #10 : 01 Ноя 2017 [10:35:52] »
Версия под Windows технически возможна, просто этим нужно будет заняться и приложить определенные усилия, собрать все зависимости...
Я с Win крайне редко работаю, но думаю все же соберусь и сделаю сборку конвертера, много людей спрашивает :)

Оффлайн ekvi

  • *****
  • Сообщений: 6 258
  • Благодарностей: 342
    • Сообщения от ekvi
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #11 : 04 Ноя 2017 [13:46:40] »
много людей спрашивает
... и "живёт" под виндой.

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #12 : 08 Ноя 2017 [15:27:46] »
С небольшой задержкой выпускаю новую версию приложения.
Теперь есть и консольный вариант :)

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

Для своей работы консольное приложение требует конфигурационный файл.
Пример такого файла:

(кликните для показа/скрытия)

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

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

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 файле полные астрометрические данные. Эта возможность будет добавлена как в консольное, так и в оконное приложение.


Оффлайн Евгений Ромас(BrainBug)

  • Первооткрыватель астероидов
  • *****
  • Сообщений: 6 155
  • Благодарностей: 288
  • КУ!
    • Skype - jeka_brainbug
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Евгений Ромас(BrainBug)
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #13 : 08 Ноя 2017 [22:39:25] »
Подпишусь. Интересная тема.
В своё давнее кэноновское время очень нехватало такой софтины! Приходилось мучать dcraw...
254/1000 карбоновый ньютон, NEQ6 Pro SynScan, SBIG ST-402ME, QHY183M, Nikon D5300a(full spectrum mod), гид Datyson T7m(клон ASI120MM) + 32/128.
malum edo ipsum
MPC code: L76(Nomad Observatory)
Канал на youtube.

Оффлайн Борис (avfc1874)

  • *****
  • Сообщений: 1 436
  • Благодарностей: 195
  • Борис Кудрявцев
    • Сообщения от Борис (avfc1874)
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #14 : 09 Ноя 2017 [00:05:12] »
Подпишусь. Интересная тема.

Спасибо автору программы. Тоже подпишусь на тему и буду ждать выхода Win-версии. Очень интересно консольное приложение.
- SW BKP 2501 EQ8 Pro (стационар) в дачной обсерватории
- ZWO ASI 1600MM Pro + ZWO EFW + Baader LRGB+Ha/OIII/SII + ZWO OAG + ZWO ASI 120MM Mini
- Ivan7enych Focuser Controller
- Корректор комы: Sharpstar MPCC
- Труба-гид: DeepSky 60-240 + QHY5-III 290M

Оффлайн crypter

  • ***
  • Сообщений: 100
  • Благодарностей: 10
    • Сообщения от crypter
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #15 : 10 Ноя 2017 [10:05:42] »
Цитата
И да - значение в градусах, 19:59:36 в градусах будет как раз 19.99333, так что тут как бы вроде все  верно.
У вас везде в примерах указаны координаты Антареса, прямое восхождение которого 16h29m24.4s, то есть выраженное в часах/минутах/секундах. CRVAL1 для Антареса будет 247.35167.
Спасибо за консольную версию. Возможно, это не бага, но при указании в конфиге
sitelev = 220;
на выходе будет SITEELEV=0. Однако 220.0 работает.
Цитата
* Поддержка астрометрии. По желанию пользователя, перед запуском конвертации, можно будет отправить запрос на сервис astrometry.net и получить в каждом FITS файле полные астрометрические данные. Эта возможность будет добавлена как в консольное, так и в оконное приложение.
А вот это полезная фича будет.

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #16 : 10 Ноя 2017 [12:18:26] »
crypter, спасибо за сообщения об ошибках.

Исправил расчет угла, теперь все должно быть хорошо.
Так же поправил загрузку значений из конфигурационного файла, теперь можно писать и 220 и 220.0, будет загружено корректно.

Так же чуть ранее был немного обновлен интерфейс оконной версии.
Изменил способ ввода координат объекта, теперь пользователю будет сложнее ошибиться при вводе.

« Последнее редактирование: 10 Ноя 2017 [13:12:13] от Deimos »

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #17 : 10 Ноя 2017 [13:11:51] »
Изменил способ ввода координат объекта, теперь пользователю будет сложнее ошибиться при вводе.
Зато задолбаешься переносить откуда-то через буфер обмена...
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #18 : 10 Ноя 2017 [13:16:22] »
Комментарий модератора В порядке замечания: есть пункт 2.8 Правил форума.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн oleg_kutkovАвтор темы

  • Новичок
  • *
  • Сообщений: 27
  • Благодарностей: 7
  • Олег
    • Сообщения от oleg_kutkov
Re: Пакетный конвертер RAW в FITS [Linux]
« Ответ #19 : 10 Ноя 2017 [15:34:19] »
Зато задолбаешься переносить откуда-то через буфер обмена...

Ну теперь это не особая проблема.
Если вставить в любое из полей ввода координаты (RA или DEC) строку из буфера вида "16:29:24.45970" или "16 29 24.45970", или "16:29:24", или даже "16  :     29: 24. " - то все поля ввода соответствующей координаты
будут автоматически заполнены значениями "16", "29", "24" и "45970".
Думаю это удобная мелочь.
Особой валидации на вводе не выполняется, т.е. теоретически вставить то можно все что угодно, но вот дальше некорректные значения просто приводятся к нулям.

>> есть пункт 2.8 Правил форума.
Хорошо, учту при последующих вставках картинок.