Київський клуб аматорів астрономії "Астрополіс"

astromagazin.net
* *
Ласкаво просимо, Гість. Будь ласка, увійдіть або зареєструйтеся.
26 Листопада 2024, 05:29:46

Увійти

google


Автор Тема: Command line FITS Utilities by Max  (Прочитано 3022 раз)

0 Користувачів і 1 Гість дивляться цю тему.

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Command line FITS Utilities by Max
« : 15 Січня 2018, 14:53:33 »
. - .

Саморобний пакет утіліт командного рядку для роботи з FITS-файлами -- може, комусь виявиться корисним.

(відредаговано 09.07.2018, версія 1.1.2 beta, помилки в описі (та і самих утілітах), напевно, є, будуть виправлятся, якщо знайдуться)

Наразі я працюю більшою частиною в IRIS. Ця програма доволі функціональна (і вільна), хоч з чудернацьким інтерфейсом. Щоб трохи полегшити та пришвидшити деякі операції, я написав кілька утіліт командного рядку, яки виконують деякі маніпуляції з FITS файлами. Хоч цей пакет почався з утіліти, яка конвертувала результати мануальної фотометрії IRIS-а у зручний формат і до FITS не мала відношення. Потім я зробив утілітку для маніпуляції заголовками FITS, щоб мати можливість нормально заповнювати заголовок (IRIS генерує дивні заголовки). Ну а потім закортіло попробувати маніпулювати самими даними, більше з любові до мистецтва, ніж практичної необхідності. Для роботи з форматом FITS я написав свою просту бібліотеку, яка не претендує на повноту.
Хоч писались ці утіліти для полегшення роботи з IRIS, вони універсальні і можуть використовуватись з будь-якими FITS (див. Обмеження))

Інсталлятор та вихідні тексти програм лежать тут https://sourceforge.net/projects/fits-command-line-utilities/
FITS-Utils-setup_X_X_X_xxxx.zip: інсталлятор. Встановлює пакет у вибрану вами папку і додає цю папку у PATH, тобто можна з командного рядка з будь-якого місця їх викликати. Я, зазвичай, працюю у консольному файл-менеджері FAR (www.farmanager.com), в ньому такі утіліти командного рядку досить зручні (зауваження: після деінсталяції шлях до папки не видаляється з PATH, поки що треба підчистити вручну)
FITSutils_src.zip: тексти програм (потрібен FreePascal Compirer (використовувався 3.0.4 [Lazarus 1.8.2 Win32/Win64]. Наразі потрібні обидва варіанти (32 та 64). Використовуйте для компіляції пакетний файл make.bat, він задає необхідні параметри компіляції)

Більшість утіліт (окрім IPDAT, APDAT та FITSSTAT) можуть працювати з серіями файлів (якщо в якості імені файлу задається маска (наприклад, img*.fit)
Обмеження: підтримуються лише файли FITS з одним HDU, однак як раз з такими файлами і працюють більшість програм.

1) iconvraw: пакетний конвертер RAW-файлів у FITS. Використовує бібліотеку libraw, бібліотека спомпільована у обгортку LibRawMxWrapper_s_crt.dll, яка експонує потрібні для роботи функції (тексти у файлі FITSUtils_LibRawMxWrapper.zip). Я зробив цю утіліту, тому що інтерфейс конвертації RAW-файлів IRIS-а (з drag-n-drop) трохи дратує. Перетворює RAW-файли у файли CFA (Color Filter Array), тобто пряме представлення Баєрівської матриці. Вихідні файли ідентичні таким, що генерує IRIS (для камер, які IRIS підтримує), за винятком заголовку, який я намагався зробити більш інформативним.

iconvraw in_file_mask1 [in_file_mask2 ...] [/G=generic_name] [/O=out_dir] [/B=nn] [/X=<ext>] [/TS<xxxxx>] [/F] [/L] [/R] [/S] [/Y] [/DLL=<libraw_wrapper_dll>]
or
iconvraw in_file_mask1 [in_file_mask2 ...] /I

Можна конвертувати один файл:
iconvraw MYFILE.CR2
На виході отримаємо myfile.fit

Кілька файлів
iconvraw IMG*.CR2
На виході отримаємо FITS-файли з тими ж самими іменами (з розширенням .fit)

Також можна конвертувати файли у послідовність з іменами, яка прийнятна для IRIS (наприклад lite1, lite2...), наприклад:
iconvraw DIR1\IMG*.CR2 DIR2\IMG*.CR2 /G=lite /O=C:\IRIS\WORK /TS-7200
В цьому прикладі файли з каталогів DIR1 та DIR2 конвертуються у послідовність файлів з “родовим ім’ям” light і послідовною нумерацією. Вихідні файли створюються у каталозі C:\IRIS\WORK, під час конвертації час файлів (який береться з EXIF) зсувається на дві години назад (це задається параметром TS, який задає зсув у секундах -- в даному прикладі час змінюється на мінус дві години -- до UTC).

Також під час конвертації можна задавати додаткові ключові слова заголовка FITS, наприклад TELESCOP та OBJECT (або інші):
iconvraw DIR1\IMG*.CR2 DIR2\IMG*.CR2 /G=lite /O=C:\IRIS\WORK /TS-7200 /$TELESCOP=”SW 15075” /$OBJECT=”M57”
Я застосовую цей конвертер, щоб за один раз зробити серії вхідних файлів bias(offset), dark, flat, light для подальшої обробки в IRIS. Спочатку я поміщаю RAW-файли (у мене CR2) у папки OFFSET, DARK, FLAT, LIGHT відповідно. Потім в корінь цих папок записую BAT-файл (див. приклад пакетного файлу у підкаталогу Samples у каталозі, куди встановлені утіліти), запускаючи який я одразу одержую правильно пронумеровані FITS-файли у робочому каталозі IRIS
Інші опції пояснюються в довідці до утіліти (яка виводиться, якщо запустити її з ключом /H або /?).

Актуальну версію libraw можна взнати, якщо запустити iconvraw з ключом /V:
C:FITS Utils\>iconvraw /V

2) fihed: Утіліта для перегляду та модифікації заголовків FITS
fihed file_mask1[.fit] [file_mask2[.fit] ...] //CSV|//TAB [/keyword1 [/keyword2 ...]]
або 
fihed file_mask1[.fit] [file_mask2[.fit] ...] //SET [/keyword1=value [/keyword2=value ...]]
Якщо не заданий параметр //SET, то утіліта просто друкує заголовки одного чи серії файлів.
Найпростіший випадок:
fihed *.fit
Надрукує заголовки всіх файлів *.fit з поточного каталогу. Можна перенаправити вихід програми у текстовий файл, як це звичайно робиться:
fihed *.fit >list.txt
Якщо потрібно вивести лише значення деяких ключових слів, то їх можна вивеcти у табличному вигляді (наприклад, для подальшого завантаження в Excel):
fihed a*.fit //TAB /OBJECT /DATE-OBS /EXPTIME >list2.txt
Ми отримаємо файл list2.txt  приблинзно такого вигляду:


Код: [Select]
File OBJECT DATE-OBS EXPTIME
'a1.fit' 'C/2016 R2' '2018-01-08T18:21:24' 3.000000000000E+001
'a2.fit' 'C/2016 R2' '2018-01-08T18:22:00' 3.000000000000E+001
'a3.fit' 'C/2016 R2' '2018-01-08T18:23:11' 3.000000000000E+001
'a4.fit' 'C/2016 R2' '2018-01-08T18:23:46' 3.000000000000E+001
'a5.fit' 'C/2016 R2' '2018-01-08T18:24:22' 3.000000000000E+001
'a6.fit' 'C/2016 R2' '2018-01-08T18:24:57' 3.000000000000E+001
'a7.fit' 'C/2016 R2' '2018-01-08T18:25:33' 3.000000000000E+001
'a8.fit' 'C/2016 R2' '2018-01-08T18:26:08' 3.000000000000E+001

Можна також редагувати (або додавати) ключові слова, для цього використовується ключ //SET:
(якщо у значеннях ключових слів є пробіли, обов’язково беріть їх у ПОДВІЙНІ лапки, щоб Windows передавала весь параметр а не губила його частину після пробілу).
fihed myimage.fit //SET /DATE-OBS=2017-07-31T23:12:00 /EXPOSURE=30 “/COMMENT=test file”
Таким чином можна змінити значення ключового слова або додати нове чи коментар (або HISTORY). Видалити ключове слово поки що неможна, але його можна встановити у пусте значення. CONTINUE та HIERARCH не підтримуються. Зміст ключового слова ніяк не перевіряється, тому можна і зіпсувати файл, змінивши, наприклад, значення NAXIS.
Інші опції пояснюються в довідці до утіліти (яка виводиться, якщо запустити її з ключом //H або //?).
Зверніть увагу, що, на відміну від інших утіліт, ключі програми треба задавати подвійними косими, наприклад //TAB, бо просто слеш з опцією розглядаеться як ключове слово заголовку FITS, інформацію по якому треба видати.

3) idobs: утіліта для обчислення середнього часу спостереження для серії.
idobs file_mask1[.fit] [file_mask2[.fit] ...] [/E] [/P=filename]
Дуже проста утіліта, яка друкує таблицю з часом спостережень для серії файлів і обчислює середній час. Якщо вказаний параметр /E, час обраховується відносно середини часу експозиції (кожного окремого файлу), при цьому вважається, що DATE-OBS для кожного файлу відповідає початку експозиції.
Наприклад,
idobs a* /E >time.txt
Згенерує файл time.txt приблизно такого вигляду:
Код: [Select]
[C:\personal\SKY2\a*.fit]
File: a1.fit Date: 2018-01-08 18:21:39 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:21:24]
File: a2.fit Date: 2018-01-08 18:22:15 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:22:00]
File: a3.fit Date: 2018-01-08 18:23:26 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:23:11]
File: a4.fit Date: 2018-01-08 18:24:01 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:23:46]
File: a5.fit Date: 2018-01-08 18:24:37 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:24:22]
File: a6.fit Date: 2018-01-08 18:25:12 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:24:57]
File: a7.fit Date: 2018-01-08 18:25:48 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:25:33]
File: a8.fit Date: 2018-01-08 18:26:23 Exposure:       30.0 [Fixed by EXPTIME. Original TIME-OBS=18:26:08]
Middle  Date: 2018-01-08 18:24:10 Sum Exp :      240.0
Останній рядок -- середній час спостережень та сумарна експозиція.
Інші опції пояснюються в довідці до утіліти (яка виводиться, якщо запустити її з ключом /H).

4) iren: утіліта, яка робить копії вхідних файлів, перейменовуючи їх згідно з вимогами IRIS (серія послідовно пронумерованих файлів). Можна задавати “родове ім’я”, базовий номер та вихідний каталог. Наприклад, якщо є кілька відкаліброваних серій від різних сесій, їх можна звести в одну послідовність для подальшої обробки IRIS-ом.
Наприклад, команда:
iren dir1\*.fit dir2\*.fit dir3\*.fit /G=src /O=C:\SKY\ /F /B=1
згенерує у каталозі C:\SKY\ файли src1.fit, src2.fit ...
Деталі -- в довідці до утіліти (яка виводиться, якщо запустити її з ключом /H).

5) fflip: переворот (дзеркальний) зображення у файлі FITS відносно вертикалі або горизонталі. Справа в тому, що IRIS має інвертовану по відношенню до стандарту FITS вісь Y.
Приклад:
fflip *.fit
Оберне всі файли *.fit за вертикаллю. Увага! Файли перезаписуються (копії не створюються)
Працює з файлами з різними BITPIX, як цілими, так і з плаваючою точкою. Якщо задати ключ /1, переверне за горизонталлю.

6) fitsrgb: розділення кольорових каналів (файл FITS з трьома шарами -- R, G, B)
fitsrgb file_mask1[.fit] [file_mask2[.fit] ...] [/O=<output_dir>] [/F]
Наприклад:
fitsrgb *.fit
Для кожного вхідного fit-файлу зробить три файли з префіксами R-, G- та B-. Тут приймається, що кольорові площини розташовані у порядку RGB

7) fitscfa: розділення CFA (color filter array) кольорових каналів (вхідний формат -- файл FITS з Баєрівською матрицею, після конвертації з RAW за допомогою моєї утіліти iconvraw або інших конверторів типу dcraw у режимі прямої екстракції RAW-даних)
fitscfa /P=<profile> file_mask1[.fit] [file_mask2[.fit] ...] [/O=<output_dir>] [/F]
Параметр /P= задає профіль з файлу FITSCFA.INI -- розташування кольорів на матриці. Утіліта працює лише з матрицями, в якіх кольори можна описати квадратом 2x2, не підтримуються специфічні матриці, типу Fuji XT-10)
Якщо не вказаний профіль, використовується профіль за замовчуванням (див. fitscfa.ini)
Крім розділення файлів на чотири окремих канали (R, G1, G2, B), можна задати профіль, в якому деякі або всі канали комбінуються (усереднюються). Наприклад, використовуючи профіль GRAY (див. файл fitscfa.ini) можна отримати один канал, усереднений по всім чотирьом R, G1, G2, B каналам. Або отримати лише три канали, усереднивши G1 та G2 (профіль R2GB).
Деталі -- в довідці до утіліти (яка виводиться, якщо запустити її з ключом /H або /?).

8,9) Дві утіліти, APDAT та IPDAT, які спрощують роботу з вихідними даними фотометрії, отриманими, відповідно, за допомогою IRIS та AstroImajeJ. Вони не мають прямого відношення до маніпуляцій з FITS. Деталі -- в довідці до утіліт (яка виводиться, якщо запустити їх з ключом /H або /?).

10) cfa2rgb: дебаєризація CFA2RGB:
cfa2rgb file_mask1[.fit] [file_mask2[.fit] ...] [/O=out_dir] [/P=<prefix>] [/F] [/2] /M=<FilterPattern>

Версія 1.1.1 обмежена лише 16-бітними FITS задля ефективності! (після DSLR більшої розрядності не буде, принаймні поки що)

Якщо не заданий ключ /2, виконує суперпіксельну дебаєризацію, якщо заданий -- білінійну (зі збереженням повного розміру зображення). Результат такий самий, як і у IRIS (білінійна) або SIRIL (білінійна або суперпіксельна). Невеличка різниця в тому, що вихідні файли можуть розрізнятися на одину горизонтальну лінію зображення (SIRIL додає порожню лінію для суперпіксельної дебаєризації, коли у вхідному файлі вертикальний розмір непарний, IRIS після білінійної дебаєризації одну лінію пропускає). Також алгоритми ROUND у С та PFC трохи різні -- FPC половинки завжди округлює до найближчого парного цілого (насправді, це INTEL-овський алгоритм banker’s rounding), а IRIS (написаний на С) -- округлює половинки завжди вгору. Можна перекомпілювати CFA2RGB з C-алгоритмом (у вихідному файлі є опція компіляції, яку можна включити), однак banker’s rounding статистично кращий.
Суперпіксельна та білінійна дебаєризації є найпростішими алгоритмами і єдиними, що підходять для фотометроії, опис див. https://pixinsight.com/doc/tools/Debayer/Debayer.html
Деталі -- в довідці до утіліт (яка виводиться, якщо запустити їх з ключом /H або /?).

11) MakeStack: проста утіліта для усереднення (простого, медіанного або сумування) серії кадрів по групах
makestack file_mask1[.fit] [file_mask2[.fit] ...] /G=generic_name [/N=mm] [/M=<mode>] [/O=out_dir] [/B=nn] [/X=<ext>] [/F]

Деталі -- в довідці до утіліт (яка виводиться, якщо запустити їх з ключом /H або /?).

Обраховує медіану, середнє значення або просту суму для заданої кількості зображень у послідовності (аналог IRIS COPYMED та COPYADD). Наразі не економить пам’ять, тож на великій кількості великих файлів може давати Out of Memory (можливо, потім покращу). Її основна функція -- “усереднення” довгих послідовностей зображень (серіі спостережень змінніх зірок) по групах файлів, щоб покращити співвідношення сигнал-шум. Наприклад:
C:\personal\SKY2>makestack tg-a* /G=tg-a-stack_ /M=m /N=3
Всі файли FITS, назва яких починається з “tg-a” будуть усередненi по групах з трьох файлів у кожній (/N=3) методом медіани (/M=m), результат буде у пронумерованих файлах з іменами, що починаються на tg-a-stack_

Формат (BITPIX) вихідних файлів може відрізнятися від вхідних!

В теперішній реалізації жере пам'ять. В майбутньому оптимізую. Станом на 09.07.2018 є 64-бітна версія, яка може зжерти більше пам'яті :)

Запустіть програму без параметрів, щоб побачити всі ключі

12) Проста утіліта FitsStat (працює лише з окремими файлами, не з наборами), яка обраховує деякі статистикі для двомірного (та RGB) FITS. На великих файлах може тормозити, основний час іде на обрахунок медіани.
« Останнє редагування: 14 Квітня 2020, 08:47:43 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.
Подякували

AYN

  • Offline Offline
  • Повідомлень: 930
  • Подяк: 3836
  • Одесса, Астродес
Re: Command line FITS Utilities by Max
« Відповідь #1 : 17 Січня 2018, 14:16:34 »
. - .

Полезные штуки, Спасибо большое !
Кстати работает в линуксе через wine :)

Вопрос... Насколько сложно в качестве рав конвертора применить вместо dcraw libraw библиотеку ?
https://www.libraw.org/download#stable
Смысл в том, что dcraw не поддерживает равы некоторых последних моделей фотоаппаратов. В частности интересует поддержка Fuji X-A3, беззеркалки на весьма многообещающем (для астрофото) сенсоре 24Mpx, с уже не X-trans,  а стандартной байеровской матрицей.   В снапшоте Libraw 0.19 как раз добавили поддержку X-A3, X-A10 и еще некоторых камер.

Предварительные тесты сравнения X-T10 и X-A3 показали примерно одинаковое пропускание Аш-альфа, что весьма круто. Получаем (надеюсь :) - 24Mpx, очень неплохие шумовые характеристики, байеровскую мозаику, "честный" рав, хорошее пропускание водорода :)
« Останнє редагування: 17 Січня 2018, 14:25:24 від AYN »
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #2 : 17 Січня 2018, 15:45:05 »
. - .

Полезные штуки, Спасибо большое !
Кстати работает в линуксе через wine :)

Вопрос... Насколько сложно в качестве рав конвертора применить вместо dcraw libraw библиотеку ?
https://www.libraw.org/download#stable
Смысл в том, что dcraw не поддерживает равы некоторых последних моделей фотоаппаратов. В частности интересует поддержка Fuji X-A3, беззеркалки на весьма многообещающем (для астрофото) сенсоре 24Mpx, с уже не X-trans,  а стандартной байеровской матрицей.   В снапшоте Libraw 0.19 как раз добавили поддержку X-A3, X-A10 и еще некоторых камер.

Предварительные тесты сравнения X-T10 и X-A3 показали примерно одинаковое пропускание Аш-альфа, что весьма круто. Получаем (надеюсь :) - 24Mpx, очень неплохие шумовые характеристики, байеровскую мозаику, "честный" рав, хорошее пропускание водорода :)

Спасибо за отзыв! Я тоже раздумывал над использованием библиотеки Libraw, тут для меня два пути -- либо переписать конвертер на C (тогда сразу можно взять библиотеку FITSIO и не продолжать изобретать велосипед), либо сделать заголовки для Libraw (ее интерфейса к обычному C) для Паскаля. Вероятно, я к этому еще вернусь, но несколько позже, поскольку надвингается февраль, в котором я буду очень сильно занят на основной работе :)
AYN, а САМУЮ СВЕЖУЮ версию dcraw Вы не пробовали? Ели свежак поддерживает Ваш формат, то у меня еще была мысль просто сделать вызовы dcraw.exe из моего конвертера и забирать с него stdout, в который он (при соответсвующих опциях) гонит сырой RAW в очень простом формате.... Это было бы самым простым вариантом, хотя, возможно, и чуть более медленным (пришлось бы вызывать второй раз для данных EXIF). Такой фокус используется некоторым софтом, например Regim (http://www.andreasroerig.de/)

Из планов (когда позволит время): сделать еще пару-тройку утилит, которые бы позволили сделать полную калибровку в пакетном режиме (master-offset, master-dark, master-flat, карту горячих пикселей и потом калибрануть ими light. Утилитка для вычисления медианы по набору файлов уже есть рабочая, для вычитания оффсета тоже есть (они пока не входят в основной пакет), поэтому сейчас могу пакетным файлом делать master-offset и master-dark (получаются идентичные ИРИС-овским, хотя считает медиану медленнее ИРИС-а, но это пока некритично, все равно будет выигрыш за счет автоматизации). Осталось сделать генерацию карты горячих пикселей и master-flat.

По ходу дела обнаружил, что IRIS не всегда делает "честную" медиану. Если файлов меньше или равно 19, то медиана вычисляется "честно". А если файлов 20 или больше, то он использует другой алгоритм (в командах IRIS это SMEDIAN2). И этот алгоритм считает похоже, но выдает немного другие значения на выходе (видимо, какой-то менее ресурсоемкий приближенный алгоритм).

P.S. Между прочим, можно попробовать было бы напрямуму компильнуть для LINUX (FreePascal мультиплатформенный и FreeImage есть для Linux), но есть один вызов, специфичный для Windows: функция "smart"-сортировки файлов -- чтобы файлы с нумерацией (и без лидирующих нулей в числах) сортировались по естественному порядку (как в Windows Explorer). Наверняка подобная функция есть и в Linux, не искал пока. Либо самому написать.  Это некритично, можно без нее сделать вариант, с обычной сортировкой по алфавиту. Но это надо пробовать, возможно, полезут косяки, которые надо будет отполировать.

P.P.S. В демонстрационном пакетном файле M57.BAT (в каталоге Samples) есть ошибка -- вместо переменной %RAWEXT% написано %EAWEXT%. Все работает, но нельзя явно указать расширение RAW-файлов. Если исправить %EAWEXT% на %RAWEXT%, то будет корректно задаваться расширение RAW.
« Останнє редагування: 17 Січня 2018, 16:33:12 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #3 : 17 Січня 2018, 16:23:26 »
. - .

Из описания SMEDIAN:
The maximum number of images is 19
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #4 : 17 Січня 2018, 16:26:27 »
. - .

Из описания SMEDIAN:
The maximum number of images is 19
Описание-описанием, но SMEDIAN работает и при большем числе файлов. Однако, если файлов 20+, то результат такой же, как и SMEDIAN2, а SMEDIAN2 дает чуть другой результат <дополнено>на малом числе файлов, по сравнению с SMEDIAN.
Кроме того, если изображения трехслойные (т.е. уже цветные, перегнанные из CFA в RGB), то алгоритм SMEDIAN2 используется ВСЕГДА, независимот от числа изображений. Что это за алгоритм, не знаю.

P.S. Проверил, к сожалению, свежая DCRAW 9.27 не поддерживает FUJI X-A3, поэтому вариант с dcraw.exe пока неактуален.
« Останнє редагування: 17 Січня 2018, 21:43:00 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #5 : 17 Січня 2018, 16:43:37 »
. - .

Цитувати
Перетворює RAW-файли у файли CFA (Color Filter Array), тобто пряме представлення Баєрівської матриці.
CFA звичайно є результатом demosaic, тобто це непряме представлення. Або що мається на увазі?
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #6 : 17 Січня 2018, 17:04:15 »
. - .

Цитувати
Перетворює RAW-файли у файли CFA (Color Filter Array), тобто пряме представлення Баєрівської матриці.
CFA звичайно є результатом demosaic, тобто це непряме представлення. Або що мається на увазі?

Зараз поясню. Звичайний DSLR roadmap, який рекомендований як автором IRIS для звичайного астрофото, так і документом AAVSO (https://www.aavso.org/dslr-observing-manual, документ в кінці сторінки "Photometry Software Calibration and Photometry Tutorials (V 1.0)") такий:
1) Конвертуємо всі (light, flat, dark, offset) RAW-файли у FITS (отримуємо двомірну Баєрівську матрицю с 4-ма каналами -- CFA)
2) Виконуємо калібровку, отримуємо калібровані lights (поки що у тому ж CFA вигляді)
3) Переводимо у тришаровий кольоровий RGB, на цьому етапі IRIS робить дебаєрізацію (для фотометрії задаємо лінійну інтерполяцію). Отримуємо тришаровий FITS (NAXIS3=3), причому розмір зображення, за рахунок інтерполяції, такий самий, як CFA. Як варіант, можна екстрагувати кольорові канали з CFA, усереднити G1 та G2 (наприклад, утілітою FITSCFA зі згаданого пакету), отримати зображення, яке у два рази менше, зате без інтерполяції, і працювати далі з ними. Я перевіряв, фотометрія отримується практично така ж сама, як і за пунктами 4-5 далі, зате є суттєвий виграш у розмірах файлів і часу подальшої обробки.
4) Тепер вирівнюємо RGB по зірках (я перевіряв, IRIS коректно робить це для кожного кольору окремо, тож результат однаковий -- чи вирівнювати кожний шар окремо, розділивши серію RGB та три серії файлів), чи тришарові FITS-и
5) Тепер можна або робити фотометрію по окремим файлам (чи в IRIS, чи в більш зручних програмах -- AstroImageJ, наприклад), або можна зробити стек кількох зображень, щоб збільшити SNR (є дуже зручна команда IRIS COPYMED, яка бере серію і робить стек кожних N  зображень по медіані).
Так от, якраз на цьому етапі я виявив, що якщо робити медіану по тришаровим файлам, то, хоч IRIS обробляє кожний колір окремо, але завжди використовує трохи інший алгоритм SMEDIAN2. Тобто, якщо розділити шари по кольорах і обрахувати медіану, вона буде "чесна" (така ж, як і командою SMEDIAN з N<=19). А якщо не розділяти, результат еквівалентний команді SMEDIAN2. Різниця між ними невелика і на практиці, швидше за все, несуттєва. Але збила мене з пантелику: простіше медіани нічого придумати не можна (окрім усереднення), а в мене не виходить! Поки не зрозумів, що IRIS махлює :)
« Останнє редагування: 17 Січня 2018, 17:13:13 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

AYN

  • Offline Offline
  • Повідомлень: 930
  • Подяк: 3836
  • Одесса, Астродес
Re: Command line FITS Utilities by Max
« Відповідь #7 : 17 Січня 2018, 17:33:13 »
. - .


Спасибо за отзыв! Я тоже раздумывал над использованием библиотеки Libraw, тут для меня два пути -- либо переписать конвертер на C (тогда сразу можно взять библиотеку FITSIO и не продолжать изобретать велосипед), либо сделать заголовки для Libraw (ее интерфейса к обычному C) для Паскаля. Вероятно, я к этому еще вернусь, но несколько позже, поскольку надвингается февраль, в котором я буду очень сильно занят на основной работе :)
AYN, а САМУЮ СВЕЖУЮ версию dcraw Вы не пробовали? Ели свежак поддерживает Ваш формат, то у меня еще была мысль просто сделать вызовы dcraw.exe из моего конвертера и забирать с него stdout, в который он (при соответсвующих опциях) гонит сырой RAW в очень простом формате....

Пользовался dcraw, что идет штатно в Ubuntu 17.10. С офсайта не пробовал, но судя по отсутствию в списке поддерживаемых камер X-A3, наверное поддержки таки нету :) Вообще сложилось впечатление, что обновление dcraw идет весьма неспешно последнее время... X-A3 вышла больше года назад...



P.S. Между прочим, можно попробовать было бы напрямуму компильнуть для LINUX (FreePascal мультиплатформенный и FreeImage есть для Linux), но есть один вызов, специфичный для Windows: функция "smart"-сортировки файлов -- чтобы файлы с нумерацией (и без лидирующих нулей в числах) сортировались по естественному порядку (как в Windows Explorer). Наверняка подобная функция есть и в Linux, не искал пока. Либо самому написать.  Это некритично, можно без нее сделать вариант, с обычной сортировкой по алфавиту. Но это надо пробовать, возможно, полезут косяки, которые надо будет отполировать.


Если будет время свободное, может попробую поиграться с этим... К сожалению пока увы...
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #8 : 17 Січня 2018, 18:05:30 »
. - .

Скачал свежую libraw.dll (файл датирован 06 Dec 2017).
В комплекте есть скомпилированные утилиты-примеры для работы с ней (к примеру, unprocessed_raw.exe).
так вот, эта свежая libraw.dll тоже не работает с FUJI_X-A3.RAF
И сама по себе libraw основана на коде dcraw, мне кажется, тут что в лоб, что по лбу что пнем об сову, что совой об пень :)
« Останнє редагування: 17 Січня 2018, 18:11:12 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #9 : 17 Січня 2018, 19:07:29 »
. - .

По многочисленным отзывам libraw работает существенно быстрее и поддерживает большее к-во фотоаппаратов.

https://github.com/LibRaw/LibRaw/blob/master/Changelog.txt:
...
* Camera support (984 total):
    BlackMagic URSA Mini 4k, URSA Mini 4.6k, URSA Mini Pro 4.6k
    Canon PowerShot G9 X Mark II, EOS 6D Mark II, 77D, 200D, 800D, EOS M6
    FujiFilm X-A3, X-A10 ...
...
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #10 : 17 Січня 2018, 20:05:59 »
. - .

Попробую ещё раз. Образец файла я нашел на просторах инета, он открывается FsViewer, но не открывается тестовыми программами свежей libraw. Может, файл слегка поврежден?
 AYN, а можете кинуть образец RAF-а?

Тестирование скоростных характеристик завтра попробую сделать на кеноновских файлах.

M_M, кажется, я не ответил нормально на Ваш вопрос о CFA (ответил, но не на тот :) ). В терминологии IRIS файл CFA = Color Filter Array, т. е. именно прямое представление матрицы-сенсора, без обработки.
« Останнє редагування: 17 Січня 2018, 21:24:04 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #11 : 18 Січня 2018, 10:44:52 »
. - .

Результаты тестирования скорости работы

20 файлов CR2, CANON EOS 600D -- DELL LATITUDE 3480, время в секундах
Код: [Select]
20 файлов CR2, CANON EOS 600D -- DELL LATITUDE 3480, время в секундах
Max's iconvraw (FreeImage.dll 3.17.0, 2015) 46
только распаковка RAW, без записиси FITS(FreeImage.dll 3.17.0, 2015) 44
unprocessed_raw.exe (test app for libraw.dll) 32bit 18
dcraw v 9.27: dcraw.exe -D -4 (unpacking without postprocessing) 48
IRIS 5.59 (конвертер основан на dcraw, библиотека libdcraw.dll 6 Dec 2011) 35

Т.е. действительно, dcraw очень медленный, а libraw, видимо, хорошо оптимизирован -- 48 секунд dcraw против 18 секунд libraw. Причем версия libraw 2015 года (код которой входит в FreeImage.dll, сама libraw использует код dcraw) видимо, была еще не так хорошо оптимизирована для Кеноновских файлов, на которых я тестировал

Попытка открыть FujiFilm X-A3 RAF (взял образец отсюда http://www.photographyblog.com/reviews/fujifilm_x_a3_review/sample_images/)
FSViewer его открывает, по EXIF это "Digital Camera X-A3 Ver1.02"

Попытка открыть DCRAW либо свежей LIBRAW пока не прошла
(unprocessed_raw.exe -- это тестовая программа для LIBRAW, входит в дистрибутив:
"unprocessed_raw - LibRaw 0.18.6-Release sample. 930 cameras supported")
Проверены 64-битная и 32-битная версии

Код: [Select]
C:\personal\SKY2\LIBRAW_TEST>32\unprocessed_raw.exe fujifilm_x_a3_02.raf
Processing file fujifilm_x_a3_02.raf
Image size: 800x35
Raw size: 6016x4014
Margins: top=1988, left=2608
fujifilm_x_a3_02.raf: Unexpected end of file
Cannot unpack fujifilm_x_a3_02.raf: Input/output error

C:\personal\SKY2\LIBRAW_TEST>64\unprocessed_raw.exe fujifilm_x_a3_02.raf
Processing file fujifilm_x_a3_02.raf
Image size: 800x35
Raw size: 6016x4014
Margins: top=1988, left=2608
fujifilm_x_a3_02.raf: Unexpected end of file
Cannot unpack fujifilm_x_a3_02.raf: Input/output error

C:\personal\SKY2\LIBRAW_TEST>c:\Personal\Work\dcraw\dcraw.exe -D -4 fujifilm_x_a3_02.raf
fujifilm_x_a3_02.raf: Unexpected end of file

« Останнє редагування: 18 Січня 2018, 11:48:44 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

AYN

  • Offline Offline
  • Повідомлень: 930
  • Подяк: 3836
  • Одесса, Астродес
Re: Command line FITS Utilities by Max
« Відповідь #12 : 18 Січня 2018, 11:27:06 »
. - .

Скачал свежую libraw.dll (файл датирован 06 Dec 2017).
В комплекте есть скомпилированные утилиты-примеры для работы с ней (к примеру, unprocessed_raw.exe).
так вот, эта свежая libraw.dll тоже не работает с FUJI_X-A3.RAF
И сама по себе libraw основана на коде dcraw, мне кажется, тут что в лоб, что по лбу что пнем об сову, что совой об пень :)


Тут именно Libraw 0.19 нужен (он НЕ в стадии релиза пока). Он открывает равы X-A3 нормально. В последний Darktable 2.4.0 уже включили 0.19 и он работает с равами X-A3 отлично, по сути наверное единственная программа на сейчас, которая с ними работает, помимо родного SilkyPix
 
Кстати списался с автором Sequator (он тоже на libraw бегает), попросил включить 0.19, он ответил что ждет релиза, боится что в нестабильной версии может отвалится поддержка чего-то старого... Ну то такое...:)
« Останнє редагування: 18 Січня 2018, 12:18:42 від AYN »
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #13 : 18 Січня 2018, 11:46:16 »
. - .

AYN, спасибо за информацию.
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.
Подякували

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #14 : 18 Січня 2018, 12:01:16 »
. - .

0.19 видел только в исходниках. Мог бы и сам скомпилировать, но пока нет времени разбираться.

CFA - это обычно композит из  ЧБ снимков через цветные фильтры, тогда это прямое представление. Было несколько фитсов по одному слою. Стало много слоев в одном фитсе. Отсюда и имя возникло.

После дебайеризации вне зависимости от метода возможно разночтение. Мы уже не можем установить, который из пикселей реальный, а который аппроксимированный, разве что в заголовке указать порядок. Т.е. такой CFA  слегка искажает информацию. Это просто уточнение терминологии, "прямое представление Байеровкой матрицы" тут неприменимо.
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #15 : 18 Січня 2018, 15:02:25 »
. - .

М_M, в документации к IRIS под CFA понимается прямое недебаеризованное представление матрицы. Возможно, в этом разночтение с общеупотребительной терминологией.
Вроде такого:
RGRGRG
GBGBGB
RGRGRG
GBGBGB

P.S. Хотя Вики его так и трактует https://en.m.wikipedia.org/wiki/Color_filter_array
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #16 : 19 Січня 2018, 01:33:17 »
. - .

Вот тут (http://www.astrosurf.com/buil/iris/tutorial5/doc17_us.htm) говорится о 4-x слойном представлении, размер картинки ужат вдвое по каждой координате. Это - прямое представление: R, B и 2 G канала. Речь о нем, или о трехслойном полноразмерном RGB?
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #17 : 19 Січня 2018, 06:42:29 »
. - .

Да, об этом.

Утилита FITScfa  из пункта (7) первого сообщения этой темы  -- расширенный
и более удобный аналог команды IRIS SPLIT_CFA, описанной в разделе, на который Вы ссылаетесь.

Файлы CFA формата FITS есть результат работы утилиты iconvraw из пункта (1) первого сообщения этой темы, это расширенный аналог команды IRIS CONVERTRAW (командный эквивалент drag'n'drop интерфейса импорта RAW файлов этого же IRIS). В отличие от встроенной CONVERTRAW не ограничена жёстким правилом именования последовательностей файлов, может за раз обрабатывать несколько папок и пишет более полный заголовок FITS, корректнее обрабатывает время и в целом более гибкая.

Вообще-то надо уходить от этой фигни и попробовать связку SIRIL (Линукс-аналог Ириса) в связке с AstroImageJ, для такого начинающего в фотометрии, как я, пока должно хватить. По крайней мере стоит попытаться, тем более, что благодаря Олегу Малому с его Astro Линуксом все в одном флаконе :)
« Останнє редагування: 19 Січня 2018, 07:18:16 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094
Re: Command line FITS Utilities by Max
« Відповідь #18 : 19 Січня 2018, 12:47:12 »
. - .

Иметь свой вариант обработки - очень нужная и полезная вещь. Недостающий инструмент можно быстро дописать самому.  :up: Так что не надо уходить от этой фигни  ;D

При деинсталляции (хотел перенести в другой каталог) обнаружил, что из переменных среды не прибивается добавленный путь (после второй инсталляции уже два пути, один из которых не нужен). И не прибивается пустой каталог. Оно не слишком мешает, но увеличивает энтропию в ОС.
Записаний

mpyat2

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 1654
  • Подяк: 1596
  • Nothing lasts forever but the earth and sky.
    • Above us only sky
Re: Command line FITS Utilities by Max
« Відповідь #19 : 19 Січня 2018, 14:47:48 »
. - .

Вы, конечно, правы, но надо же и наблюдать иногда :))) Хотя, с нашими Cloudy Nights....
Если что-то сделаю еще в этом направлении, обязательно буду выкладывать.

С другой стороны, флер таинственности с FITS я уже для себя сдернул

Да, есть косяки при деинсталляции, хлам может остаться :( . Это пока недоработка.
Руками (Вы, наверно, знаете) подчистить можно в HKCU\Environment\Path

« Останнє редагування: 19 Січня 2018, 14:54:46 від mpyat2 »
Записаний
EQ5+EQDrive; SW 15075 | PMAK (AAVSO). 134 new variables discovered; 19 revisions/submissions of known objects.