Siril это инструмент для обработки астрономических изображений.
Siril позволяет калибровать, выравнивать, складывать и улучшать изображения в различных форматах файлов, даже файлы последовательностей изображений (кубы FITS, видео и файлы SER). Также Siril может анализировать изображения с помощью инструментов астро- и фотометрии.
Язык программирования — C, с частями на C++. Основная разработка ведётся с использованием самых последних версий разделяемых библиотек в GNU/Linux. - Желающие внести свой вклад — добро пожаловать.
В документации предпринята попытка описать все функции Siril. Если эквивалент функции из графического интерфейса пользователя существует в командной строке, он указан во врезке. Другие полезные ресурсы можно найти на нашем основном веб-сайте siril.org.
Совет
В этой документации есть различные врезки с советами и предупреждениями, содержащие важную информацию. Кроме того, имеются разделы с теорией, которые не обязательны для понимания содержания, но доступны для людей, имеющих математическое образование и желающих глубже разобраться в определённых концепциях.
По ссылке команды приведён список доступных в Siril команд.
Каждая версия Siril доступна на 3-х основных платформах — Windows, MacOS, GNU/Linux, и может быть загружена с веб-сайта Siril. Поскольку Siril это свободное программное обеспечение, вы можете скомпилировать его из исходных кодов.
Совет
Может быть полезным проверить целостность только что скачанного двоичного файла или пакета. Список контрольных сумм SHA в формате json доступен по этой ссылке.
После установки программы, с помощью команды capabilities возможно получить больше информации об установленной программе.
Командная строка Siril
capabilities
Отображает список возможностей Siril на основе опций компиляции и среде, в которой исполняется программа
Порядок версий Siril
Начиная с версии 1.0, стабильные версии Siril (например, 1.0, 1.2) обозначаются чётными номерами и предназначены для повседневного использования. Версии в разработке, которые обозначаются нечётными номерами, например, 0.99.0 или 1.1.0, обычно недоступны в виде пакетов или исполнимых файлов и пользователю необходимо самостоятельно их компилировать. Последняя, третья цифра в номере версии, так называемая минорная версия (например, 1.0.1, 1.0.2, 1.0.3 и пр.), соответствует количеству выпусков, которые включают исправления ошибок и иные небольшие дополнения.
Для обеспечения оптимальной производительности рекомендуется, чтобы ваша система соответствовала следующим минимальным требованиям:
Оперативная память: Для обеспечения стабильной работы на всех системах рекомендуется использовать не менее 8 Гб оперативной памяти. Бо́льший объём оперативной памяти полезен, поскольку Siril активно использует доступную оперативную память для выполнения задач обработки данных.
Хранилище: Для ускорения операций чтения/записи рекомендуется использовать SSD-диск (твердотельный накопитель), поскольку это выражается в на порядок более быстрой работе по сравнению с обычными жёсткими дисками (HDD)
Специфические требования к платформам:
Windows: Windows 8.1 или новее.
macOS: macOS 13 Ventura or later.
GNU/Linux: Минимальные специфические требования отсутствуют. Достаточно любого современного дистрибутива.
Двоичный пакет доступен для тестируемого и старая версия для стабильного выпусков Debian. Пакет может быть установлен через apt, с использованием привилегий суперпользователя:
Для систем GNU/Linux мы решили предоставить пакетные двоичные файлы AppImage (x86_64) и flatpack, которые работают в системах, подобных GNU/Linux. Чтобы запустить двоичный файл AppImage, вам просто нужно загрузить его и разрешить запуск с помощью команды:
Другим способом установки стабильной версии siril является использование flatpak, — утилиты для развёртывания и управления пакетами в Linux. Для установки через flatpak введите следующую команду:
Рекомендуемый способ установки Siril — использовать программу установки, которая проведёт вас шаг за шагом.
На первом экране программы установки вам необходимо принять соглашение, чтобы продолжить.
Последний экран программы установки. Вы можете запустить Siril сразу после установки и открыть руководство, объясняющее первые шаги.
Мастер настройки Siril корректно установит все необходимые файлы, и в конце у вас будет выбор создавать или не создавать ярлык на рабочем столе.
Примечание
Siril будет установлен в C:\Program Files\Siril. Если у вас нет прав на установку в эту папку, используйте вместо этого переносимую версию (см. Установка переносимой версии.)
Если вы хотите использовать Siril без установки каких либо файлов на свой компьютер (например, если у вас отсутствуют права администратора на компьютере), то рекомендуется использовать переносимую версию. Она поставляется в виде zip-файла, который вам просто нужно извлечь в папку по вашему выбору, затем перейти в папку bin для запуска siril.exe. Вы также можете создать ярлык на своем рабочем столе, чтобы упростить запуск приложения.
Предупреждение
Будьте осторожны, ни при каких обстоятельствах не перемещайте файл exe или любой другой файл. В противном случае Siril не запустится.
Эти инструкции предназначены для компиляции в Windows с MSYS2 с использованием набора инструментов UCRT64. Для MSYS2 требуется 64-разрядная версия Windows 10 или новее и этот дистрибутив не работает с файловыми системами FAT.
Примечание
Начиная с версии Siril 1.4.2, UCRT64 является единственной поддерживаемой средой сборки для Windows. Среда MinGW64, ранее поддерживавшаяся как альтернатива, была объявлена устаревшей проектом MSYS2 15 марта 2025 года. Несколько зависимостей Siril уже были удалены из индекса пакетов MinGW64, и ожидается, что за ними последуют другие. Все будущие версии Siril будут создаваться исключительно с использованием UCRT64.
Если вы используете установщик или переносимые двоичные файлы, представленные на веб-сайте Siril, то это изменение очевидно для вас. Если вы собираете Siril из исходных текстов, вы должны использовать среду UCRT64.
Использование UCRT64 также увеличивает число файлов, которые могут обрабатываться в последовательности до 8192.
Загрузите MSYS2 64bit, платформу для распространения и компиляции программного обеспечения для Windows, и запустите программу установки x86_64 для 64-разрядной архитектуры. При запросе укажите директорию, куда будет установлена MSYS2 64-bit.
Запустите MSYS2 непосредственно из программы установки или позднее MSYS2 MinGW UCRT x64 из меню «Пуск» или нажав на ярлык.
Предупреждение
Убедитесь, что запущена оболочка UCRT x64 (значок в верхней части окна терминала жёлтый).
Сначала обновите базу пакетов и основные системные пакеты набрав (больше информации о pacman на этой странице):
Ссылка выше указывает на последнюю версию сценария для установки зависимостей. В прошлом у нас была тенденция не удалять какие-либо зависимости (а добавлять новые), поэтому, даже если вы хотите создать стабильную ветку, вы должны использовать последнюю версию сценария для установки зависимостей. В случае, если зависимость отсутствует для конкретной версии, вы всегда можете проверить сценарий по соответствующему тегу в репозитории GitLab.
Если команда gitpull не показывает никаких изменений, то нет необходимости в повторной сборке. В противном случае указанные выше команды обновять вашу сборку. После этого запустите Siril с помощью:
siril
Предупреждение
Начиная с версии Siril 1.3.6, в вашей системе должен быть установлен Python, если вы самостоятельно собираете Siril из исходного кода. При первом запуске Siril, самостоятельно собранного из исходного кода, вам будет нужно сделать это из нативной среды Windows, а не из оболочки MSYS2, чтобы Siril мог обнаружить Python, установленный в Windows, а не в MSYS2. Если пропустить этот шаг, вы получите уведомление в консоли, и модуль sirilpy не будет инициализирован. Это необходимо сделать лишь один раз. Как только виртуальное окружение (venv) будет настроено, вы сможете вернуться к запуску siril из оболочки MSYS2, как обычно.
To launch Siril in a Windows environment, either open a Windows terminal and run
C:\msys2\ucrt64\bin\siril.exe, or locate this file in Explorer and double-click it.
Homebrew похож на MacPorts и предоставляет пакеты (они же formula) для установки либо путём компиляции их из исходных кодов, либо с использованием предварительно скомпилированных двоичных файлов (они же bottles). Чтобы установить Homebrew, нажмите здесь. Siril может быть установлен с помощью команды:
brewinstallsiril
Примечание
Пожалуйста, имейте в виду, что Homebrew использует аналитику. Чтобы отключить это, выполните: brewanalyticsoff. Подробнее об этом вы можете прочитать в разделе Brew Analytics.
Установка из исходных кодов требуется, если вам нужны новейшие функции, если предыдущая версия устарела, если вы хотите участвовать в улучшении Siril или не хотите использовать все зависимости.
Siril зависит от ряда библиотек, большинство из которых должны быть доступны в вашей операционной системе, если она достаточно современная. Названия пакетов, специфичных для операционных систем, перечислены в каждом разделе ниже. Обязательными зависимостями являются:
gtk+3 (библиотека графического интерфейса пользователя), по крайней мере, версия 3.20.
gsl (The GNU Scientific Library), версии 1 или 2 начиная с релиза 0.9.1 или ревизии SVN 1040.
OpenCV и компилятор C++ для некоторых операций с изображениями.
Little CMS система управления цветом с открытым исходным кодом
wcslib для управления мировой системой координат, аннотаций и фотометрической калибровки цвета.
gtksourceview4 для многострочного редактирования текста. GtkSourceView предоставляет подсветку синтаксиса, операции отмены/повтора, загрузку и сохранение файлов, операции поиска и замены, систему дополнения при наборе, печать, отображение нумерации строк и другие функции, обычные для редактора исходного кода.
Примечание
Даже если Siril может запускаться в консоли начиная с версии 0.9.9, он по-прежнему компонуется с графическими библиотеками, поэтому вам всё равно понадобится GTK+ для компиляции и запуска программы.
Необязательные зависимости:
openmp поддержка мультипотоковости. Хотя эта зависимость опциональна, её использование настоятельно рекомендуется, поскольку это существенно улучшает производительность приложения. По умолчанию эта опция включена. Это означает, что если openmp не установлена на вашей машине, необходимо добавить -Dopenmp=false в настройках meson.
libraw, libtiff,
libXISF,
libjpeg,
libjxl,
libpng,
libheif for RAW, TIFF, XISF, JPEG,
JPEG XL, PNG, HEIF and AVIF images import and export. The libraries are
detected at compilation-time.
FFMS2 для нативной поддержки видео как последовательностей изображений. Это также позволяет извлекать кадры из многих видов видео для других целей, помимо астрономии. В версиях < 2.20 есть досадная ошибка, поэтому рекомендуется установить последнюю версию.
ffmpeg (или libav), предоставляющая libavformat, libavutil (>= 55.20), libavcodec, libswscale и libswresample для экспорта последовательностей mp4.
wcslib для управления мировой системой координат, аннотаций и фотометрической калибровки цвета.
Компиляция с помощью autotools хорошо известна в мире Unix. После загрузки исходных кодов и установки всего необходимого, обычный способ компиляции следующий:
./autogen.sh
make
makeinstall
возможно с правами суперпользователя для последней строки.
Возможно, вы захотите передать компилятору определенные параметры, например, такие, если бы вы хотели оптимизацию и установку в /opt вместо /usr/local, используемого по умолчанию:
Возможно, вы захотите создать пакет .deb вместо использования неупакованной версии, в этом случае обратитесь к этой справке. В частности, для установки зависимостей вы можете использовать команду:
aptbuild-depsiril
В противном случае вот список пакетов для текущей версии:
В AUR доступны два пакета: siril и siril-git`.Скачайте``PKGBUILD или репозиторий, установите зависимости, запустите makepkg для создания пакета и pacman-U для его установки.
Зависимости (обязательные и несколько необязательных):
Для сборки Siril необходима lcms2 версии 2.14 или выше. Эта версия нужна для обеспечения оптимизации кода управления цветом. Подходящая версия доступна в Debian testing и Ubuntu 23.04. Вместе с этим, текущая версия Ubuntu LTS предоставляет более раннюю версию lcms2, что могут делать и другие дистрибутивы ОС. Если вы используете более раннюю ОС, не предоставляющую lcms2 >= 2.14, вы можете установить пакеты из более новой версии вашего дистрибутива вручную, либо вы можете установить lcms2 из исходного кода, доступного в их репозитории git.
Каждый коммит в git Siril автоматически собирается в стандартной среде сборки для Linux, Windows и MacOS с использованием инфраструктуры gitlab CI. Это значит, что мы с высокой долей вероятности уверены в том, что компиляция основной ветки и отмеченных выпусков будет успешной при условии корректно настроенной среды сборки и наличии всех необходимых зависимостей.
Если вам не удаётся скомпилировать программу, это, скорее всего, свидетельствует о проблеме с вашей средой для сборки или неверно установленных зависимостях. Во многих дистрибутивах требуется отдельная установка пакетов разработки, которые содержат необходимые загловочные файлы. Проверьте сообщение CI из того коммита git, который вы пытаетесь скомпилировать. В маловероятном случае если действительно будет показан сбой сборки, будьте уверены, команда работает над его устранением. В противном случае, если конвейер CI показывает зеленые галочки, вам нужно будет просмотреть и устранить любые проблемы с вашей собственной средой сборки.
Если вы все еще считаете, что обнаружили проблему сборки, не отмеченную конвейером CI — например, если вы осуществляете сборку на другой платформе, такой как BSD, которую разработчики не используют регулярно, — тогда не стесняйтесь говорить о проблеме на gitlab.
Обратите внимание, что о проблеме следует сообщать только в отношении основной ветки или отмеченных выпусков. Если вы тестируете новые функции в запросах на слияние, пожалуйста, оставьте отзыв в комментариях к соответствующему запросу.
Если вы компилируете Siril самостоятельно, удостоверьтесь, что у вас установлена рабочая система Python, включая pip и venv. Обратите внимание на последний пункт, поскольку в некоторых системах (по крайней мере, в системах на базе Debian / Ubuntu, возможно, и в других) Python разделен на множество пакетов, и вы должны убедиться, что пакеты, предоставляющие pip и venv, установлены.
Графический интерфейс пользователя позволяет обрабатывать ваши изображения вручную, равно как использую сценарии или вводя команды. Чтобы узнать, как использовать Siril в автономном режиме (headless mode), обратитесь к этому разделу.
Графический интерфейс Siril написан с использованием GTK, свободной, кроссплатформенной библиотеки для создания графических пользовательских интерфейсов. В настоящее время используется GTK3.
В последующих разделах будут описаны основное окно и полезные меню.
После запуска Siril, открывается основной интерфейс.
Примечание
Нажмите на любом элементе изображения основного интерфейса ниже, чтобы узнать о его функциях.
Область изображения
В этой области отображается загруженное в данный момент изображение. Нажмите на Красный, Зелёный или Синий, для переключения между разными слоями (только для цветных изображений, для монохромных доступна отдельная вкладка Ч/Б).
При нажатии правой клавишей на изображении, появляется контекстное меню:
Совет
Когда не загружено ни одного изображения, двойное нажатие по области изображения вызывает диалог Открыть.
Применяет определение звезды в текущем выделении. Результат будет открыт в диалоге Динамическая PSF.... Обратите внимание, что эта операция менее строгая, чем поиск звёзд на всём изображении, поскольку предполагает что вы сделали выделение, содержащее звезду. Таким образом эта операция может использоваться для выбора звёзд, пропущенных функцией поиска звёзд на всём изображении.
Предоставляет интерфейс к функциям Кадрировать и Вращение и обрезка.
Совет
Если загружено изображение CFA, кадрирование будет ограничено границей CFA, так что эффективный шаблон CFA останется неизменным для будущих операций. Для шаблонов Bayer CFA это означает, что выбранная область обрезки будет иметь размер, кратный 2×2, и может быть смещена на 1 пиксель в направлениях x и y, чтобы быть выровненной с началом шаблона Bayer. Для шаблонов X-Trans размер кадрирования будет кратен 6×6 и может смещаться на 5 пикселей в каждом направлении.
Предупреждение
Rotating a CFA image by arbitrary angles will destroy the CFA pattern: you should
progress your workflow to the point where the CFA pattern has been debayered or
Bayer drizzled before doing anything that applies rotation or scaling.
Предоставляет интерфейс для установки или очистки области интереса (Region of Interest, ROI) для обработки ROI. Обратите внимание, что эта строка меню неактивна, если режим ROI в настройках установлен в "Автоматически из выделения".
Выравнивает RGB-каналы изображения. Поддерживается ряд способов регистрации для выравнивания:
Всё звёздное небо за 2 шага Используется процедура выравнивания всего звёздного неба за 2 шага с кадрированием с помощью центра тяжести (размеры изображения при этом сохраняются). Данный алгоритм настраивается с 8-ю степенями свободы, что позволяет корректировать сдвиг, вращение и скос изображения. Это рекомендуемый алгоритм для изображений, содержащих звёзды. Данный алгоритм является глобальным и не требует выделения.
KOMBAT Используется алгоритм выравнивания KOMBAT, который, в первую очередь, предназначен для выравнивания планет, но работает и для изображений глубокого космоса. Алгоритм обеспечивает только регистрацию посредством сдвига, но работает быстро. Для работы алгоритма необходимо выделение.
Регистрация по одной звезде Это более старый алгоритм, который обеспечивает регистрацию только по сдвигу, основываясь на движении одной звезды. Это очень быстро, но регистрация не может обеспечить такого числа степеней свободы, как регистрация всего звёздного неба за 2 шага. Данный способ может подойти, если вы уверены, что вам необходимо только скорректировать смещение изображения. Для работы этого алгоритма требуется выбрать одну звезду.
Выравнивание по паттерну Этот метод выполняет выравнивание изображений с использованием преобразования Фурье. Он работает для изображений глубокого космоса и планет, но обеспечивает только регистрацию помощью сдвига и работает довольно медленно. Для работы этого алгоритма необходимо квадратное выделение. Все неквадратные выделения будут исправлены на квадратные.
Предупреждение
Это инструмент для выравнивания RGB. Он не предназначен и не будет работать для выравнивания невыровненных LRGB-композиций. Для выравнивания последних, необходимо либо заранее выравнивать слои, которые будут использованы для последующего совмещения, либо использовать инструмент совмещения RGB для выравнивания.
Используйте эти кнопки для отмены/повтора последних действий. Возможно только в том случае, если последнее действие было выполнено через пользовательский интерфейс, а не путём ввода команды.
Выпадающий список в правом нижнем углу позволяет вам выбрать тип записанного изображения. Он автоматически добавляет расширение к имени файла. Однако, оставаясь в режиме Поддерживаемые форматы, можно вручную добавить любое расширение, поддерживаемое Siril, и программа сохранит изображение в правильном формате.
сделать снимок текущего вида изображения (включая растягивание, если таковое применено). Возможны два варианта. Либо снимок сохраняется в буфере обмена, либо непосредственно копируется на диск в рабочую директорию.
изменить разрядность текущего изображения. Доступны 16- и 32-битные режимы.
Siril использует GTK для сопоставления основной, дополнительной и средней кнопок мыши. Обычно они сопоставляются с левой, правой и средней (кнопка колесопрокрутки) физическими кнопками мыши, однако в определенных настройках они могут быть сопоставлены по-разному (например, пользователи-левши могут настроить переключение левой и правой кнопок).
Основная кнопка мыши
Основная кнопка мыши используются для ряда целей:
Для выбора области на изображении
С зажатой Ctrl (или Cmd в MacOS), для перемещения изображения
При активном инструменте создания профиля интенсивности, создаёт линию, вдоль которой будет построен профиль интенсивности и выбирает точки, соответствующие известным длинам волны / волновым числам в настройках спектроскопии
В инструменте совмещения в RGB выбирает центр вращения при использовании выравнивания вручную
В инструменте удаления градиента — для создания образцов
В режиме фотометрии — для выполнения фотометрии звезды
Для выбора положений для предварительных просмотров регистрации
Двойное нажатие на основную кнопку мыши когда не загружено ни одного изображения вызывает диалог Открыть.
Дополнительная кнопка мыши
Дополнительная кнопка мыши используется для:
Вызова контекстного меню изображения (за исключением режима фотометрии)
В инструменте удаления градиента — для удаления образцов
В режиме фотометрии — выполнение фотометрии выбранной звезды на всех кадрах последовательности, загруженной в настоящий момент (если последовательность не загружена, это не имеет эффекта)
Средняя кнопка мыши
Средняя кнопка мыши используются для:
Для перемещения по изображению в текущем масштабе
С нажатой клавишей Ctrl (или Cmd на MacOS) — создание квадратного выделения подходящего для фотометрии размера
Двойное нажатие выставляет размер изображения к предустановленному значению. Это поведение настраивается на вкладке Интерфейс в диалоге Настройки. Доступны следующие варианты:
Всегда подгонять изображение под размер окна
Полный размер изображения с центром в позиции курсора
Переключение между подгонкой изображения под размер окна или показом изображения в его полный размер с центром в позиции курсора
Колесо прокрутки
Колесопрокрутки используется для масштабирования изображения.
Используйте верхний и нижний ползунки, чтобы настроить, соответственно, точки белого и чёрного при предварительном просмотре изображения (в линейном режиме).
Совет
Нажатие на название загруженного в данный момент изображения или последовательности позволяет скопировать это название в буфер обмена (полезно для вставки в команду).
Выберите режим предварительного просмотра загруженного изображения из следующих:
Линейный
Логарифмический
Квадрат. корень
Квадратичный
Asinh
Авторастягивание (установите флажок Расширить, чтобы использовать более широкую, до 24 бит (устанавливается в настройках), LUT вместо используемой по умолчанию 16-битной)
Гистограмма
В режиме Авторастягивания со цветными изображениями переключатель справа включает/отключает привязку каналов. При разъединении, 3 слоя растягиваются независимо друг от друга, чтобы получить более сбалансированное изображение.
Предупреждение
Это лишь предварительный просмотр изображения, а не реальные данные (за исключением Линейного режима). Не забудьте растянуть ваши изображения перед сохранением.
Ctrl+нажатиеналевуюкнопкумыши позволит перемещаться по изображению
Совет
Ctrl+прокручиваниеколесамыши приближают/отдаляют изображение, а Ctrl + 0 / 1 подгоняют масштаб к размеру окна/полному размеру, соответственно.
Совет
При перетягивании основной кнопки мыши с зажатыми Ctrl+Shift, будет измерена дистанция между двумя точками. Если метаданных достаточно, измерение будет выполнено в градусах, минутах и угловых секундах, в противном случае — в пикселях.
Главная панель расположена внизу основного окна Siril. Она предоставляет быстрый доступ к контролю просмотром, инструментам анализа и базовым командам трансформации изображений.
The first control is a drop-down menu button showing the current display mode
(Linear by default). Clicking it opens the list of all visual modes
available in Siril:
Linear — direct rendering of pixel values. This is the reference mode.
Logarithm — applies a logarithmic transfer function, compressing bright
areas and bringing out faint details.
Square root — applies a square root transfer function, a gentler
alternative to the logarithm.
Squared — applies a quadratic transfer function, boosting bright areas
at the expense of the shadows.
Asinh — applies an inverse hyperbolic sine transfer function, offering a
smooth and natural-looking stretch.
AutoStretch — automatically computes and applies a stretch for a
visually pleasing result. A High definition sub-option is available to
increase the precision of the stretch computation.
Histogram — applies a stretch based on the image histogram for a
balanced display.
Предупреждение
Only Linear mode (with both visualisation sliders at their minimum and
maximum positions) reflects the true pixel values. All other modes are
purely visual aids. Stretch the histogram before exporting to an external
tool.
Toggles between normal display and a false colour rendering (rainbow
palette). This mode helps visualise intensity variations across the image more
clearly.
Siril предоставляет ряду функций обработку области интереса (ROI). Обработка области интереса выполняет две задачи:
Для операций над изображениями, которые требуют длительных вычислений, такими как реконструкция, более быстрая обработка небольшой области изображения позволяет скорее подобрать идеальные параметры в ходе экспериментов.
Для операций, которые влияют на вид изображения, например, растягивание, насыщенность и пр., использование области интереса удобно для непосредственного сравнения обработанной и необработанной областей.
Обработка области интереса не является универсальной для всех операций над изображениями в Siril. Фактически, для значительного числа операций это не будет иметь смысла. Например, для геометрически операций, когда содержимое области интереса будет отображаться на другую часть изображения. Обработка области интереса не поддерживается операциями, требующими несколько входящих изображений, например, Восстановить звёзды, Совмещение в RGB или Математические операции над пикселями.
Операции, поддерживающие обработку области интереса
Следующие операции над изображениями поддерживают обработку области интереса:
Реконструкция Эта операция может быть очень медленной, поэтому обработка области интереса позволяет быстрее подобрать наилучшие настройки для вашего изображения, проверяя их на небольшой его области.
Подавление шума Это может быть очень медленным процессом, поэтому обработка области интереса позволяет быстрее подобрать необходимые настройки.
Растягивание по asinh Пользователь может захотеть оценить эффект от растягивания по asinh или любой из следующих операций над изображением, сравнивая с необработанной областью. Обработка области интереса позволяет это.
Обобщённое гиперболическое преобразование
Растягивание гистограммы
Преобразование кривых
Насыщенность
Медианный фильтр
Удалить зелёный шум (SCNR)
Фильтры сохранения краёв
Подавить фиолетовые ореолы
Остальные операции над изображениями не поддерживают обработку области интереса.
Примечание
Обработка области интереса в общем не предназначена для обработки части изображения.
При использовании операций над изображениями, поддерживающих автоматическое обновление предварительного просмотра, предварительный просмотр будет применяться к области интереса, но при нажатии кнопки Применить, будет обновлено изображение целиком.
При использовании операций, не имеющих автоматического обновления предварительного просмотра, при выборе области интереса станет доступной кнопка Предпросмотр ROI, которая служит кнопкой ручного предварительного просмотра. Таким образом вы можете получить представление о действии настроек в области интереса. Когда желаемые настройки подобраны, нажатие на кнопку Применить, выполнит операцию над всем изображением.
Доступны две опции для установки области интереса:
Вручную Эта опция подразумевает, что область интереса будет устанавливаться и очищаться вручную с использованием подменю ROI ‣ Установить ROI к выделению в меню, вызываемым правой кнопкой мыши.
Автоматически из выделения Эта опция автоматически синхронизирует область интереса с текущим выделением и автоматически очищает её при очистке выделения.
Это взаимоисключающие опции и предпочитаемая может быть установлена на вкладке Интерфейс в диалоге Настройки.
В режиме ручного управления областью интереса, опция очистки области располагается в подменю ROI ‣ Очистить ROI в меню, вызываемым правой кнопкой мыши.
В режиме автоматической установки области интереса, просто очистите текущее выделение и область интереса будет очищена.
Область интереса будет очищена в следующих случаях:
При закрытии текущего изображения,
При открытии нового изображения,
При открытии последовательности и изменении отображаемого кадра.
Когда область интереса установлена, она отображается в окне изображения как область, ограниченная красной пунктирной линией, похожей по стилю на область выделения. Однако когда открыт диалог операции над изображением, которая поддерживает обработку области интереса (или область интереса была установлена при уже открытом диалоге), цвет линии, ограничивающей область интереса изменится на зелёный. Это означает, что для текущей операции включена обработка области интереса.
Команды Siril игнорируют область интереса, даже если запущены в графическом режиме из командной строки и даже если эта операция поддерживает обработку области интереса при запуске из графического режима. Область интереса предназначена для быстрого просмотра, в то время как команды предназначены для работы с изображением целиком. Если область интереса установлена на момент запуска команды, она будет проигнорирована, но не будет очищена. Таким образом, область интереса останется доступной для дальнейших операций, поддерживающих обработку области интереса.
В этом окне содержится информация о выборке открытого изображения. Выборка, называемая также разрешение или масштаб, представляет собой угловой размер пикселя, при наблюдении через этот прибор. Она зависит от двух факторов: фокусного расстояния прибора и размера пискеля в сенсоре, который, в свою очередь, зависит от режима биннинга.
Заголовок FITS содержит эту информацию, если она была передана программному обеспечению для захвата изображений. В таком случае эти значения отображаются в информационном окне. Если же метаданные изображения не содержат этих значений, поскольку они не были известны программе захвата или, проще, потому что формат файла их не поддерживает, данное диалоговое окно всё равно будет доступно и заполнено значениями по умолчанию. Они могут быть изменены и использованы для различных операций Siril, требующих информацию о масштабе, например, отображение FWHM в угловых секундах вместо пикселей.
Значения по умолчанию — биннинг отсутствует (1×1), а фокусное расстояние и размер пикселя сохранены в настройках. Значения, сохранённые в настройках, можно задать из этого диалогового окна, установив флажок Сохранить как значения по умолчанию, прежде чем нажать на кнопку Закрыть. Их также можно задать, выполнив астрометрическое решение изображения, также называемое решение пластин (plate solving), если в настройках включена опция обновления значений по умолчанию когда найдено астрономическое решение.
Значения, отображаемые в этом окне, будут сохранены в текущем загруженном изображении, и, если это изображение сохранено как FITS, они будут сохранены в заголовке FITS.
Управление биннингом может осуществляться в двух режимах, в зависимости от программного обеспечения для захвата изображений: задаётся реальный размер пикселя, но его необходимо умножить на коэффициент биннинга (когда установлен флажок Реальный размер пикселя), или задаётся размер пикселя, уже умноженный на коэффициент биннинга (когда флажок снят).
Siril использует несколько клавиатурных сочетаний для доступа к инструментам обработки или для манипулирования приложением и/или изображениями. Эти сочетания клавиш приведены в диалоге Клавиатурные комбинации, доступном через главное меню .
Рабочая директория (wd), она же текущая рабочая директория (cwd) — это директория, в которой работает Siril. Её выбор это важный шаг, особенно при использовании сценариев. Неверный выбор cwd ответственен за 90% неудач при выполнении сценариев. Эта директория выбирается нажатием на кнопку Домой, имеющей форму . В этой директории Siril по умолчанию сохраняет изображения (если не указан иной путь) и где осуществляет поиск последовательностей.
После того как директория была выбрана, путь к ней легко можно узнать в заголовке окна приложения, под версией программы, как показано на рисунке ниже.
Путь к рабочей директории, указанный в заголовке. Представлен вариант для Linux.
Если вы хотите иметь несколько файлов с конфигурацией, вы можете выбрать какой использовать, открыв терминал и набрав:
siril-ipath/to/my_other_config.ini
Предупреждение
Чтобы использовать siril как показано строкой выше, необходимо, чтобы Siril был в системной переменной path. В противном случае необходимо указать полный путь к исполняемому файлу Siril.
Настройки доступны через главное меню или через клавиатурное сочетание Ctrl + P. В настройках 10 страниц, каждая из которых освещает определённую группу функций. Настройки позволяют более или менее продвинутым пользователям оптимизировать Siril для наилучшего удовлетворения их потребностей. Некоторые настройки могут негативно воздействовать на работу Siril, поэтому желательно изменять настройки только тогда, когда вы знаете, что делаете. В нижней части окна настроек расположены три кнопки: Сброс сбрасывает все настройки к значениям по умолчанию, Отмена отменяет текущие изменения, а Применить закрывает диалоговое окно и сохраняет настройки.
The FITS/SER debayer tab allows the user to define the debayer settings
for FITS, SER or TIFF files. Consequently, this tab is only usable for a user
with an OSC camera. It is advisable to leave the default settings as Siril
will automatically define the correct settings to use. However, in the case of
a TIFF file that is not an AstroTIFF, or a file that does not have all the
required keywords, it may be necessary to adjust the settings manually.
Row-order preference: You can choose to use header ROW-ORDER keywword if present and
fallback to either Top-Down or Bottom-Up if not present. Or you can force a
preferred orientation. More explanation on this keyword can be found
here.
Bayer/mosaic pattern: This drop-down menu allows you to choose the type
of Bayer matrix used by the camera. It is generally indicated in the
manufacturer's information. If Bayer information from file's header if available
is ticked, the value specified in this dropdown will only be used in case the
information is not present in the header. If the option is unticked,
it is always used.
X offset: In rare cases, files are recorded with a Bayer array shift.
We can define an offset of 1 on the X axis, and an offset of 1 on the Y axis.
Here the value defines if there is an offset in X. Note that this is used only when
Bayer information from file's header if available is unticked or
when the header does not contain this information.
Смещение по Y: смещение массива Байера по Y.
Изменение этих настроек каждый раз будет включать в себя иную дебайеризацию, поэтому настоятельно рекомендуется оставить настройки в значениях по умолчанию, если только вы действительно не уверены в том, что делаете.
Следующая настройка, которая оказывает меньшее влияние на конечный результат, является алгоритм дебайеризации, доступный в пункте Интерполяция. Возможны следующие варианты:
Быстрая дебайеризация это самый быстрый алгоритм, доступный в Siril. Однако другие алгоритмы, перечисленные ниже, часто дают гораздо лучший результат.
VNG4 (Threshold-Based Variable Number of Gradients), алгоритм работает в области 5×5 пикселей вокруг каждого исходного пикселя. Это очень хороший алгоритм для ровных областей изображения (например, фон неба), но создает артефакты в высококонтрастных областях (например, звёзды).
AHD (Adaptive Homogeneity-Directed), это другой хорошо известный алгоритм дебайеризации. Однако обычно он демонстрирует артефакты фона и плохие формы звёзд.
AMaZE (Aliasing Minimization and Zipper Elimination), это алгоритм, который даёт хорошие результаты, особенно при съёмке с низким уровнем шума.
DCB (Double Corrected Bilinear), более современный алгоритм, демонстрирующий некоторые артефакты фона, подобно AHD.
HPHD (Heterogeneity-Projection Hard-Decision), старый алгоритм, демонстрирующий хорошие результаты, но достаточно медленный.
IGV and LMMSE очень хороши при работе с сильно зашумлёнными изображениями. Однако IGV имеет тенденцию к потере некоторой цветовой информации, а LMMSE — один из алгоритмов дебайеризации требующих значительного количества вычислений и который нуждается в большом количестве памяти.
RCD (Ratio Corrected Demosaicing) предназначен для сглаживания ошибок в коррекции цвета, которые имеют место у многих методов интерполяции. Этот алгоритм хорошо себя ведёт на круглых границах, например, звёздах, и поэтому является алгоритмом по умолчанию в Siril.
Для сенсоров X-Trans, независимо от указанного в настройках, используется специальный алгоритм Markesteijn. Для это алгоритма возможно указать желаемое качество с помощью опции Качество дебайеризации X-Trans. Она определяет количество проходов алгоритма дебайеризации X-Trans Markesteijn. Значение по умолчанию — 1, немного лучшим, но более медленным будет 3.
Предупреждение
Для дебайеризации на лету файлов SER всегда используется алгоритм RCD, независимо от выбора, сделанного в выпадающем меню. Это позволяет Siril быть более эффективным во времени выполнения и обеспечивает хорошее качество.
На странице Параметры FITS сгруппированы все настройки, связанные с нативным форматом файлов, используемом Siril.
Расширение: по умолчанию значение установлено в .fit. Однако многие программы захвата используют расширение .fits. В таком случае необходимо обновить это значение. Все файлы, создаваемые Siril, будут использовать расширение, указанное здесь. Более того, могут быть загружено только те последовательности, которые имеют расширение, указанное в настройках. Таким образом нельзя одновременно открыть последовательности .fits и .fit, не обновив это значение. Поддерживаются следующие расширения:
.fit
.fits
.fts
Ко всем им можно прибавить расширение .fz, если файл сжатый.
Командная строка Siril
setext extension
Устанавливает расширение, используемое и понимаемое последовательностями.
Аргумент extension может быть "fit", "fts" или "fits"
Тип по умолчанию: По умолчанию Siril работает с 32-битными числами с плавающей точкой в диапазоне [0, 1]. Это лучший способ иметь высокую точность. Однако из соображений места, занимаемого файлами на жёстком диске, пользователь может принять решение работать с 16-битными числами без знака (в диапазоне [0, 65535]). Будьте осторожны, поскольку в этом случае возможна потеря большого количества информации при укладке.
Кубы FITS могут содержать изображения разного размера: Это может быть полезно при использовании научных файлов FITS, которые не созданы в Siril и содержат множественные изображения разного размера. В противном случае такие файлы рассматривались бы как неверные файлы Siril FITSEQ. Хорошим примером использования этой опции являются изображения космического телескопа «Джеймс Уэбб». Пример изображения приведён по ссылке.
Включить совместимость с Aladin (CTYPE3 = 'RGB '): Aladin рассматривает 3D-куб FITS как изображение RGB (Красный, Синий и Зелёный компоненты), если в заголовке указано ключевое слово FITS CTYPE3='RGB'. В этом случае поддерживаются любые значения BITPIX. Без установки ключевого слова FITS CTYPE3='RGB' только куб FITS с 3 кадрами одинакового размера и с BITPIX=8 будет автоматически определен как RGB FITS.
Предупреждение
Эта опция может конфликтовать с функцией астрометрии и должна быть включена если она действительно необходима.
Обновить размер пикселей при биннинге: Используется для вычисления масштаба изображения. Размер пикселя может быть задан двумя способами: указывается реальный размер пикселя, который умножается на коэффициент биннинга (если флажок установлен), или указывается размер пикселя уже умноженный на коэффициент биннинга (если флажок снят). Данная настройка зависит от программы захвата, использованной для создания файлов FITS.
Встроить ICC-профили в сохранённые файлы FITS: Как правило, этот параметр следует оставить включённым, если только вам не требуется совместимость с программой, которая не поддерживает файлы FITS со встроенными ICC-профилями (в настоящее время такие программы неизвестны).
Проверять контрольные суммы файлов в заголовке FITS (DATASUM и CHECKSUM): Проверять контрольные суммы, если они существуют. Проверка происходит каждый раз при чтении файла, что может существенно отразиться на производительности Siril при работе с последовательностью.
Сжатие FITS: Сжатие может иметь смысл в тех случаях, когда пространство на жёстком диске является важным аспектом. Больше информации доступно в разделе, посвящённом формату FITS.
При сжатии к файлу добавляется расширение .fz. Siril имеет возможность открывать последовательность с расширением fz без необходимости изменения настроек.
Командная строка Siril
setcompress 0/1 [-type=] [q]
Определяет, сжимать изображения или нет.
0 означает, что сжатие выключено, а 1 включает сжатие.
Если сжатие включено, его тип должен быть явно указан опцией -type= ("rice", "gzip1", "gzip2").
Связанное со сжатием значение квантования должно быть в диапазоне [0, 256].
Например, "set compress 1 -type=rice 16" устанавливает тип сжатия (rice) со значением квантования 16
Не забудьте, что вы можете прокрутить окно, поскольку ряд опций находятся внизу окна.
На данной вкладке располагаются настройки, связанные с астрометрией, которая является важным инструментом Siril. После получения астрономическое решение изображения, т.е. когда астрометрия была успешной, возможно показать названия известных объектов. В частности тех, которые указаны в крупных астрономических каталогах. Раздел Аннотации позволяет указать, какие каталоги могут быть использованы для показа названий объектов. В настоящее время этих каталогов 8 и они могут быть исключены из выделения, чтобы Siril их игнорировал:
Каталог Мессье (M)
Новый общий каталог (NGC)
Индекс-каталог (IC)
Каталог ярких туманностей Линдc (LdN)
Каталог Шарплесса (Sh2)
Каталог ярчайших звёзд
Линии созвездий МАС
Названия созвездий МАС (положения получены с этой страницы)
В дополнение к этому списку, имеются два каталога, которые наполняются пользователем. Первый содержит объекты глубокого космоса, второй — объекты Солнечной системы. Эти каталоги лучше описаны в разделе документации, посвящённом аннотациям.
Под списком астрономических каталогов располагается поле для ввода предпочитаемого кода обсерватории Международного астрономического союза (МАС). Это трёхзначный код, который можно использовать для указания ближайшей астрономической обсерватории МАС, чтобы улучшить точность определения местоположения при запуске conesearch -cat=solsys. Если аргумент -obscode= не указан, по умолчанию используется это значение, а не геоцентрическое значение, которое используется в противном случае. Заголовок поля является ссылкой на сайт Центра малых планет, где размещён актуальный список кодов обсерваторий МАС, чтобы вы могли легко найти код ближайшей к вашему местоположению обсерватории.
После нажатия на кнопку Показать имена небесных тел (только если изображение имеет астрономическое решение), на изображении отображаются аннотации. Так же возможно отобразить небесную сетку, нажав на кнопку . Последняя, по умолчанию, добавляет компас в центре изображения. Раздел Компас определяет положение компаса на экране.
Раздел Мировая система координат позволяет выбрать
Формализм 1: В формализме PCi_j элементы матрицы \(m_{ij}\) (матрица линейного преобразования) кодируются в карточках заголовков PCi_j (значения с плавающей точкой), а si - как CDELTi. Индексы i и j используются без начальных нулей, например, PC1_1 и CDELT1. Значения по умолчанию для PCi_j равно 1.0 если \(i = j\) и 0.0 в противном случае. Матрица PCi_j не должна быть вырожденной; она должна иметь обратную матрицу. Более того, все CDELTi не должны быть равны нулю.
Формализм 2: Ключевые слова CDi_j (значения с плавающей точкой) кодируют результат \(s_i m_{ij}\). Индексы i и j используются без начальных нулей, например,``CD 1_1``. Матрица CDi_j не должны быть вырожденной и должна иметь обратную матрицу. Для совместимости со старыми интерпретаторами FITS вместе с CDi_j допустимы CDELTi и CROTAi, но они игнорируются новыми программами.
The Local star catalogues part of the dialog window concerns the use of
local catalogs to platesolve images. This feature is described in details in the
local star catalogues section of this documentation.
В разделе Настройки решателя доступен ряд опций, контролирующих внутренний решатель Siril и решатель astrometry.net.
первая опция определяет, сохранять ли после нахождения астрономического решения фокусное расстояние и входящий размер пикселя как значения по умолчанию для изображений, не имеющих соответствующих метаданных.
Допуск масштаба: процент, определяющий допустимые нижнюю и верхнюю границы масштаба. Данный масштаб умножается или делится на 1 + это значение / 100.
Степень полиномиальной коррекции: решатели пластин могут использовать полиномиальную коррекцию (SIP) для работы с оптическими искажениями. Здесь указывается степень полиномиальной модели. Значение 0 отключает её.
Радиус цели: допустимый радиус (в градусах) вокруг координат цели для решения. Не используется для решения вслепую (без указания цели).
Макс. секунд для попытки решения: допустимое время поиска решения для каждого файла каталога. Может использоваться как общее время для решения только в том случае, если команда solve-field сконфигурирована таким образом в файле настроек.
Последний раздел посвящён решателю пластин solve-field из набора astrometry.net.
Не удалять таблицы .xyls: список звёзд передаётся команде solve-field в виде таблицы FITS. Установите этот флажок, чтобы сохранить этот файл в рабочей директории.
Не удалять файлы .wcs: результаты команды solve-field хранятся в заголовке FITS файла, оканчивающимся .wcs. Установите флажок, чтобы не удалять этот файл.
Расположение локального решателя astrometry.net: для того, чтобы использовать локальный решатель Asrometry.net, необходимо указать Siril путь к директории с установленным решателем. На UNIX-подобных системах путь к решателю обычно находится в переменной PATH и в указании пути нет необходимости. На Windows, если вы не изменяли директорию установки по умолчанию, то ею является %LOCALAPPDATA%\cygwin_ansvr и Siril будет искать её без дополнительных настроек. Если вы используете cygwin и компилировали astrometry.net из исходных кодов, то здесь вам необходимо указать расположение корневой директории cygwin.
Показать вывод solve-field: отображать вывод решателя в журнале Siril. В противном случае будет отображён только результат работы решателя.
Во вкладке «Предобработка» располагаются элементы, связанные с шагами, выполняющимися до завершения укладки. В частности, здесь можно управлять библиотеками кадров шума считывания, темновых кадров, кадров плоского поля и искажений, названием файла, полученного в результате укладки, или специфичными коррекциями для камер, использующих сенсор X-Trans.
Библиотеки мастер-кадров: В этом разделе можно загрузить мастер-кадр шума считывания, темновой мастер-кадр и мастер-кадр плоского поля, которые будут использованы по умолчанию в ходе предобработки, если справа от текстового поля установлен флажок Использовать по умолчанию. Каждый путь так же сохраняется в зарезервированном ключевом слове $defbias, $defdark, $defflat и $defdisto (один знак $), которые могут использоваться при сохранении результатов укладки и/или решения пластин. Что касается шума считывания, можно использовать не только путь к файлу. Действительно, в команде Siril мы призываем пользователей использовать синтетические кадры шума считывания, как это описано в этом руководстве. В этом случае возможны несколько значений, если первым символом является знак =. Возможно использовать фиксированное целое значение, например =500 или умножение с применением ключевого слова $OFFSET (один знак $), при условии, что последнее зарегистрировано в заголовке файла FITS, например 10*$OFFSET. Больше подробностей приведено в соответствующем руководстве.
Укладка: В этом разделе мы указываем название по умолчанию, которое будет дано результату укладки. В качестве ключевого слова можно использовать любое значение из заголовка FITS, окружив его символом $. Если этого ключевого слова не существует, то будет использована переменная, в противном случае — значение переменной. Другое зарезервированное ключевое слово, которое можно использовать, это $seqname$, содержащие название загруженной последовательности. Например, следующее название по умолчанию $seqname$stacked_$LIVETIME:%d$s с названием последовательности r_pp_light_ и следующим заголовком:
Пути к библиотекам и при укладке по умолчанию поддерживают разбор путей.
Исправления в файлах Xtrans: Этот раздел настроек очень специфичен и касается лишь процессоров некоторых сенсоров Xtrans. Действительно, из-за расположения автофокуса (АФ), некоторые изображения, полученные на этих камерах, содержат большой квадрат в центре темновых кадров и кадров шума считывания. В Siril доступен алгоритм для удаления этого квадрата на следующих камерах:
В том маловероятном случае, если ваша камера имеет этот артефакт и не поддерживается, существует возможность определить необходимые коррекции. Лучшая вещь, которую можно сделать, это связаться с командой разработчиков, чтобы получить значения для ввода, соответствующие вашей камере.
Фотометрия, являющаяся исследованием света, это другая функция, доступная в Siril. В этом разделе настроек вы можете определить установки, связанные с этим инструментом.
Основной принцип апертурной фотометрии — это сложение светового потока в указанном радиусе от центра объекта, после чего из этой суммы вычитается общий вклад фона неба в этой области (вычисляемый в кольце, образованным внутренним и внешним радиусами). Результатом этой операции является световой поток непосредственно от объекта, позволяющий вычислить инструментальный блеск (instrumental magnitude). Подробности см. в разделе Фотометрия.
Возможно изменить внутренний и внешний радиусы для оптимизации размера вычисляемого значения неба, чтобы избежать присутствия звёзд внутри кольца. Внешний радиус всегда должен быть больше внутреннего. По умолчанию радиуса светового потока установлен вдвое больше, чем FWHM PSF. Эту функцию, однако, можно отключить и задать фиксированное значение вручную.
Диапазон значений пикселей позволяет пользователю установить придел, за которым пиксель рассматривается неподходящим для фотометрии. Действительно, выполнение фотометрии на насыщенных данных (saturated data) никогда не приводит к хорошим результатам. Вместе с этим, даже приближение к высоким значениям может оказаться неподходящим, поскольку этом может происходить в нелинейном режиме работы сенсора. Чтобы избежать этой области, по умолчанию установлено значение 50000 ADU, однако оно может варьировать от сенсора к сенсору. Так же допустимы отрицательные значения, поскольку шум может усредняться вокруг положительного значения, но всё равно давать несколько пикселей с отрицательными значениями.
В заключение, настоятельно рекомендуется установить значение усиления ADC в электронах на ADU, если оно известно. Это значение используется при вычислении неопределённостей, если не указано в заголовках обрабатываемых изображений.
В настоящий момент только один инструмент анализа изображений требует настройки. Это инструмент «Аберрации». На данной вкладке вы можете настроить:
Размер панели, определяющий размер размещаемого изображения (в пикселях). Чем больше значение, тем больше размер изображения на панели. Слишком большое значение может не дать рассмотреть дефекты на звёздах.
Размер окна, в пикселях, определяет размер диалога. Обычно это хорошая идея увеличить это значение при использовании экранов с разрешением 4K.
Эта вкладка содержит настройки, связанные с интерфейсом пользователя. Данные настройки влияют не на обработку, а на внешний вид программы и потребности пользователя.
Совет
Не забудьте, что вы можете прокрутить окно, поскольку ряд опций находятся внизу окна.
По умолчанию язык Siril определяется языком системы. Вместе с этим, возможно изменить язык и установить его в соответствии с вашими потребностями. Следует помнить, что разработка Siril ведётся на английском.
Доступны две темы:
Тёмная тема (по умолчанию)
Светлая тема
Для полной работоспособности, смена темы потребует перезапуска приложения.
Кроме того, можно настроить масштаб шрифта для пользователей экранов с разрешением 4K Ultra-HD или использовать символьные значки для некоторых значков. Эти настройки так же требуют перезапуска приложения.
По умолчанию Siril запоминает размер и положение окна приложения при каждом закрытии программы. Установка флажка Запоминать размер и положение окна позволяет отключить такое поведение.
Миниатюры изображений обычно отображаются в диалоговых окнах. Эта настройка позволяет не отображать их, если производительность компьютера ограничена и пользователь не видит в этом нужды. Вы можете изменить размер миниатюр, выбрав подходящий из выпадающего списка.
Режим просмотра по умолчанию позволяет отображать изображения согласно предпочтениям пользователя. По умолчанию используется Линейный режим. Поскольку линейный режим действительно отражает то, что представляет собой изображение, новичкам рекомендуется оставить эту настройку по умолчанию. Легко забыть, что вы находитесь в режиме автонастройки просмотра, и не понять, почему сохранённые изображения выглядят не так, как они отображаются на экране. Однако вы всегда можете настроить режим отображения в основном окне.
По этому же принципу гистограммы могут отображаться в двух режимах с помощью Режима показа по умолчанию. Это Линейный или Логарифмический режимы. Последний может быть очень полезен при работе с инструментом Обобщённого гиперболического преобразования. Режим показа гистограммы может быть, однако, изменён для каждого окна отдельно. Данная установка в настройках это скорее установка поведения по умолчанию.
Область интереса (ROI) это установка, позволяющая выбрать тип выделения, который будет применён к области интереса: Вручную или Автоматически из выделения. В деталях эти установки описаны в соответствующем разделе Установка области интереса.
Поведение мыши обеспечивает настройку поведения мыши. Начиная с версии 1.3.0, это позволяет настраивать поведение двойного клика средней кномпкой мыши для установки заданного уровня масштабирования. Предустановленный уровень масштабирования можно настроить либо на масштабирование по размеру, либо до 100% с центром в позиции курсора мыши, либо на переключение между масштабированием по размеру и до 100% с центром в позиции курсора мыши. Вместе с другими улучшениями в управлении панорамированием и масштабированием с помощью средней кнопки мыши это улучшает удобство работы с Siril одной рукой.
Настройка кнопок мыши открывает диалог настройки мыши. Это позволяет вам полностью перенастроить поведение мыши для Siril, изменив поведение по умолчанию, добавив или удалив функции мыши. Это может быть особенно полезно для пользователей с ограниченными возможностями, чтобы переназначить существующие функции мыши на другие кнопки или для того, чтобы им не требовались клавиши-модификаторы. Также этом может полезно любому пользователю с мышью с бо́льшим количеством кнопок (или колёсами с двусторонней прокруткой) для назначения новых действий (таких, как сохранение, отмена, прокрутка через активную последовательность) с помощью кнопок мыши или осей прокрутки способом, который ранее был невозможен, или с помощью двухсторонних колёс прокрутки.
Вам нужно согласиться с напоминанием, что этот инструмент может удалить или изменить поведение мыши таким образом, что ваши настройки больше не будут соответствовать документации. В инструмент имеет определённую проверку работоспособности: он будет отклонять повторяющиеся назначения, будет настаивать на том, чтобы было включено основное действие мыши, используемое для взаимодействия с изображением, и будет проверять, нет ли противоречий между действиями одиночного и двойного щелчка, назначенным одной и той же кнопке и модификатору. Если вы действительно испортите свою конфигурацию, есть кнопка сброса, которая вернёт все настройки мыши к значениям по умолчанию.
Нумерация кнопок мыши не всегда очевидна, особенно для манипуляторов с большим количеством кнопок, так как при нумерации кнопок учитываются направления движения колеса прокрутки, поэтому справа от диалогового окна предусмотрена область для проверки. Если вы наведёте курсор на эту область и нажмёте любую кнопку мыши, её номер будет указан в метке. Этот же номер необходимо использовать при назначении функций этой кнопке мыши.
Совет
Обратите внимание, что эта конфигурация применяется лишь к событиям, происходящим с мышью в основной области, где отображается изображение. Независимо от любых действий, настроенных в этом диалоге, поведение мыши в других частях приложения будет прежним. Так, например, если вы хотите универсально поменять местами левую и правую кнопки мыши, вы не можете сделать это здесь, но, возможно, сможете сделать это в настройках своей операционной системы или в конфигурации драйвера мыши.
Вы можете указать некоторые цвета для текста и рисунков, отображаемых на изображении в разделе Цвета. Чтобы выполнить это, просто нажмите на кнопку цвета и выберите необходимый цвет. Данный выбор касается 5 пунктов:
Эти настройки указывают набор рабочих цветовых пространств, а именно линейное рабочее пространство RGB, нелинейное рабочее пространство RGB со стандартной кривой передачи тона цветового пространства (tone response curve, TRC) и Ч/Б рабочее пространство с TRC, соответствующей рабочему пространству RGB. Доступны следующие опции: sRGB, наиболее подходящей для работы с изображениями для использования в интернете; Rec2020, которая является рекомендуемым Siril цветовым пространством с широким цветовым охватом; и Из файлов, позволяющая определять свой собственный набор профилей с помощью диалога выбора файлов.
Данные диалоги выбора файлов можно использовать только вместе с выбранным выше параметром «Из файлов» для предпочитаемого цветового пространства.
RGB ICC-профиль: Этот диалог позволяет выбрать RGB ICC-профиль для предпочитаемого цветового пространства.
Ч/Б ICC-профиль: Этот диалог позволяет выбрать Ч/Б ICC-профиль. Этот профиль должен иметь кривую воспроизведения тона (TRC), соответствующую таковой выбранного цветового пространства RGB.
Пример того, как настроить пользовательский цветовой охват RGB, соответствующий Pro Photo RGB, доступен на этой странице.
This button opens a reference image comparing the gamuts offered by the built-in sRGB and Rec2020
color spaces with the gamuts of some other well-known RGB color spaces.
Custom monitor profile: This option allows you to choose a custom monitor profile, for example
if you have calibrated your monitor or are using a wide gamut monitor. There is also a button to
clear the current selection, and a check box to set whether or not the custom monitor profile is
active. If it is not active, the display transform will target a standard sRGB display.
Rendering intent: This option allows you to choose your preferred ICC rendering intent, which is
used for the color transform from the working space to the monitor profile. A description of the
available intents is available on the Theory page.
A check button is also provided to set whether or not to use Black Point Compensation.
Output device proofing profile: This option allows you to choose a soft proofing profile for an
output device. If no profile is set here, soft proofing will target the display profile.
There is also a button to clear the current selection and a check box to set whether or not the
soft proofing profile is enabled. If it is not enabled, the soft proofing display mode will not be
available.
Treat non color-managed files as sRGB for export to supported formats: This option is for images
that do not have a color profile assigned. If the option is checked, when an image without an ICC
profile is exported to a format that supports ICC profiles, it will be saved with a sRGB ICC profile
or a Gray profile with a TRC that matches the standard sRGB TRC. This is essentially the behaviour of
previous versions of Siril. It will often work OK, but does not represent a properly color managed
workflow. The option is on by default, but it is better to avoid the issue by using the auto
conversion / assignment options to ensure that images will have an ICC profile assigned and be
properly color managed at the time you wish to save them.
Export 8-bit images using: This option sets the color space to export 8-bit images that support
embedding ICC profiles: the choice is between sRGB and your working color space as chosen with the
Working RGB Gamut option above.
Export high bit depth images using: This option sets the color space to export 16-bit images that
support embedding ICC profiles: the choice is between sRGB and your working color space as chosen with
the Preferred Color Space option above.
Export intent: this sets the intent for transforming images from their assigned color space to
the color space they are to be saved in. Leave this set to Relative Colorimetric to ensure your saved
images look consistent with how you saved them. Other intents should probably only ever be chosen here
for debugging purposes and similar.
One preference is in the FITS Options tab:
Embed ICC profiles in FITS images and FITSEQ sequences: This option enables ICC profile embedding
in FITS files: the profiles are embedded within an extra HDU inside the FITS file, with the name
"ICCProfile", which matches the embedding method used by other major astrophotography software.
It is strongly recommended to leave this option enabled.
Совет
Export of images to 8-bit and 16-bit formats that do not support embedded ICC profiles will always
be in the sRGB color space.
This set of check boxes sets the occasions on which an image will automatically be assigned the working
color space. The possibilities are: on load, on stacking, on stretching and on the output of compositing
tools (pixelmath / RGB composition).
The default is to assign the working color space on stretching, as
this is the point at which you typically switch the viewer mode to Linear and start to stretch your image
to look the way you want it to. This is when color management starts to matter.
However, you can also assign the color space at earlier stages in processing if you want to. There is
little benefit or drawback to doing so in most circumstances, but if you expect to be exporting images
before stretching them then selecting the other check boxes will ensure that a color profile is always
assigned.
Совет
A color profile will never be automatically assigned if Siril believes it is a single channel
extracted from a 3-color image using RGB, HSV, HSL, CIE L*a*b* or Green extraction. There is no ICC profile
that can sensibly be assigned in this case. You should consider the file to be raw data until you
are ready to either re-composite it with other data or process it to look good in its own right, at
which point you should assign your preferred working color space.
Split-out CFA, Ha and OIII channels can safely be assigned a linear version of the working space, and this
will be done if the pedantic option described below is active.
If you want to avoid color profiles completely you can select "Never", but this will result in a non-color
managed workflow and your images may not look consistent when viewed in other software or when output
to different output devices.
loaded images that lack an ICC profile and show no evidence of previous stretching,
newly stacked images,
newly composited images
Siril will assign a linear ICC profile. This is usually technically correct, as such images will still
contain linear light data. The option is made available should you want it, however it is generally
unnecessary: see the profiles page for an explanation
of why. You may wish to use this in order to benefit from the display transform by applying your stretches
to the original linear data while previewing the effect in sRGB (or your custom monitor profile):
in this case you should deselect the following auto-conversion box, so that the profile remains
linear during stretching, and then manually convert the data to your working profile on completion
of stretching.
Преобразовать другие цветовые профили в рабочий профиль?
This drop-down sets Siril's behaviour if an image is loaded with an ICC profile that is different to
the selected working profile. The optons are: Never, Always and Ask every time. The default is Never, as
this avoids unrequested change to the image, however for a consistent workflow you may wish to select
Always, so that you are always editing in your preferred color space. Ask every time is an option, but
it can be annoying especially as it regards the v2 export profiles as being different to the v4 built-in
working profiles, so although it is provided for users who wish to manage every detail, it is not
particularly recommended.
Siril uses profiles from the Elle Stone collection of color profiles to provide its built-in profiles.
As these are distributed under a Creative Commons BY-SA-3.0 licence which requires sharing the
profiles, a button is provided to export all the built-in profiles to the working directory.
In order to provide a profile capable of the Perceptual sRGB intent, the ICC Preference profile with
perceptual lookup tables is provided. To export this you will need to accept the same terms and
conditions text as you do to download it from the ICC website.
На вкладке Сценарии, по сути, располагаются пути, по которым Siril должен искать сценарии. Действительно, по умолчанию и в зависимости от используемой операционной системы, сценарии устанавливаются в определенном месте:
/usr/local/share/siril/scripts или /usr/share/siril/scripts для GNU/Linux.
C:\ProgramFiles\Siril\scripts для Windows.
/Applications/Siril.app/Contents/Resources/share/siril/scripts для MacOS, если приложение было установлено в папку Applications.
Предупреждение
Поскольку приложение для macOS подписано и заверено, изменить сценарии внутри пакета невозможно. В противном случае приложение не запустится. Поэтому вам нужно настроить другой путь, указывающий на папку, где у вас есть права на запись.
Поле Директории хранения сценариев позволяет указать пути к пользовательским директориям со сценариями, которые вы создали и/или модифицировали. Нажатие на кнопку, расположенную непосредственно под этим полем, запускает повторный просмотр директорий и обновление списка сценариев в соответствующем меню.
Раздел Окна с предупреждениями предназначен для отключения:
Предупреждающего текста, который отображается перед выполнением сценария.
Проверки ключевого слова requires, находящегося в самом начале сценария для проверки совместимости сценария с версией Siril. Мы рекомендуем не отключать эту настройку.
The Siril Script Repository field is where scripts that have been
validated by the Siril team are automatically uploaded. However, these may
have been written by third-party developers. You can enable/disable this
feature with the Enable use of the siril-scripts online repository
button, and define automatic or manual updates with
Automatic updates and Manual update. To display a
script in the script menu, simply select it.
The Reset python venv will kill all running python scripts and reset the
virtual environment "venv" directory to an as-new state. Any modules that have
been installed by scripts will require re-installation. This is normally not
necessary but is provided as a last resort to restore the venv to a pristine
state as an aid to troubleshooting.
Программное обеспечение для обработки астрономических изображений, такое как Siril, использует большое количество ресурсов и обычно требует достаточно мощные компьютеры. Если компьютер сильно загружен, не исключено, что он может зависнуть. Не рекомендуется делать что-то ещё на компьютере во время обработки, особенно просмотр страниц в интернете, поскольку браузеры весьма требовательны к оперативной памяти. Однако можно управлять максимальным процентом оперативной памяти, доступной Siril.
Доля доступной памяти: Siril будет ограничен долей свободной физической памяти и, при необходимости, уменьшит размер рабочих задач. Значение выше 1 означает, что будет использована некоторая часть памяти, выгруженная на сконфигурированный носитель, и, в целом, процесс будет медленнее, а система, скорее всего, не будет отвечать на запросы в ходе некоторых операций. Если у вас не настроена директория подкачки на каком-либо разделе, значение 1 или выше, скорее всего, приведет к сбою siril или операционной системы.
Фикс. объём (Гбайт): Siril ограничит себя фиксированным объёмом памяти и, при необходимости, уменьшит размер рабочих задач. Указание объёма памяти бо́льшего, чем доступен вашей системе может привести к падению siril или операционной системы.
Настройка Разрядность по умолчанию для расширенного режима авторастягивания устанавливает разрядность по умолчанию для расширенного режима авторастягивания. Бо́льшая разрядность требует экспоненциально бо́льших объёма памяти для LUT и времени для повторного вычисления, но гораздо лучше сглаживает артефакты квантования на изображениях с очень узкими пиками гистограммы. Разрядность по умолчанию будет применена следующем переключении режима просмотра, и может быть применена сейчас с помощью кнопки справа. Нажмите на кнопку Установить разрядность для установки выбранной разрядности.
Мультипотоквое FFTW: этот флажок позволяет FFTW использовать несколько потоков. Это может быть быстрее, (хотя производительность не возрастает линейно с числом процессоров из-за расходов на синхронизацию), но стадия планирования FFTW требует бо́льшего времени для мультипотоковых систем. Таким образом первое FFT для изображения указанного размера будет существенно медленнее при использовании нескольких потоков.
Стратегия планирования FFTW: в данном списке можно указать необходимую стратегию планирования FFTW. Библиотека FFTW имеет несколько алгоритмов вычисления быстрых преобразований Фурье (FFT) и будет планировать заданное FFT для оптимизации скорости. Результаты этих планов сохраняются для повторного использования в файле кэша, под названием "Wisdom". Следовательно, дополнительное время, потраченное на предварительное планирование, может принести свои плоды, если вы рассчитываете много FFT одинакового размера. Необходимо отметить, что файл Wisdom специфичен для конкретной машины и не должен использоваться совместно на разных машинах. После обновления памяти или процессора или существенного изменения программной среды (основные изменения операционной системы или версии Siril) этот файл необходимо удалить и создать с нуля. В порядке убывания скорости стратегий планирования, Оценка является самой быстрой: фактически эта стратегия не производит никаких измерений, но выполняет планирование на основе набора эвристик. Следующая по скорости — Измерить. Этот метод фактически сравнивает скорость вычисления FFT различными внутренними методами FFTW и выбирает самый быстрый. В результате этап планирования занимает больше времени. Полная стратегия планирования рассматривает ещё больше возможных планов, а Исчерпывающая — ещё больше. Если вы всегда обрабатываете изображения определённого размера, то более "дорогие" стратегии планирования могут быть более целесообразными из соображений кеширования, но если вы работаете с большим количеством изображений разного размера, то более "дешевый" алгоритм планирования может оказаться более подходящим.
Ограничение по времени планирования FFTW: останавливает планирование FFTW через указанный промежуток времени. Это переопределит стратегию планирования. Обратите внимание, что ограничение по времени строго не соблюдается: FFTW завершит любое непрерываемое вычисление, которое выполняется в момент достижения ограничения, и, если оно установлено равным нулю, FFTW всегда, как минимум, будет выполнять планирование с использованием стратегии Оценка.
Drizzle: High resolution Drizzle weight files: When this button is toggled,
weight files produced by the drizzle algorithm will be of the same bitdepth than
the images. This can be important when trying to get the best possible FWHM on the
stacked image, but it is very much space consuming. By default, it is unticked and
the weight files are saved in 8-bit.
На последней вкладке располагаются все настройки, не попадающие в другие разделы.
Использование кнопок Отмена/Возврат требует места на диске. Иногда очень много места. В разделе Директория подкачки может быть указана директория, содержащая файлы подкачки, необходимые для корректного функционирования пары отмена/возврат. Доступное место на диске указывается справа от диалога выбора файлов. Мы рекомендуем не изменять настройки по умолчанию, если только у вас нет веских причин сделать это. Поскольку выбор хорошей директории имеет решающее значение, можно вернуться к настройкам по умолчанию, нажав на Исходные параметры.
В разделе Окна с предупреждениями можно отключить всплывающие предупреждения, которые предназначены в помощь новичкам.
Ознакомительные подсказки: При самом первом запуске Siril есть возможность просмотреть небольшую анимацию, показывающую, что нового в приложении. Она может быть повторно воспроизведена после нажатия на Посмотреть вступление.
Расположение исполняемого файла StarNet. Для использования StarNet в Siril необходимо указать Siril путь к исполняемому файлу StarNet. Для устаревших установок StarNet++ v1, использующих разные исполняемые файлы для обработки монохромных и RGB-изображений, может быть указан любой — Siril автоматически определит второй, если установлены оба файла. Обратите внимание, что для старых установок НЕОБХОДИМО сохранить исходные имена исполняемых файлов rgb_starnet++ и mono_starnet++. Для всех новых версий StarNet с одним исполняемым файлом Siril определит версию эвристически и соответствующим образом взаимодействует с ней.
Расположение файла с весами StarNet: Новые версии StarNet, основанные на библиотеке Torch, предоставляют возможность указать расположение файла с весами нейросети, который необязательно должен находиться в директории с исполняемым файлом. Этот параметр позволяет установить расположение файла с весами для передачи StarNet, и его можно использовать для сброса с помощью соответствующей кнопки. Примечание: этот параметр работает только с установками StarNet, основанными на библиотеке Torch. При использовании более старых установок StarNet, файл с весами должен находиться в одной директории с исполняемым файлом.
Предупреждение
Необходимо указать расположение версии StarNet для командной строки, а не с графическим интерфейсом пользователя.
Предупреждение
В macOS может быть трудно найти путь к каталогу, поскольку Apple не упрощает просмотр некоторых директорий. Хитрость заключается в том, чтобы набрать Shift + Cmd + g в открытом диалоге выбора файлов, а затем напрямую ввести путь установки, который обычно задается Homebrew. Обычно это /usr/local/bin на компьютерах Intel и //opt/homebrew/bin/ в версиях Apple Silicon.
GraXpert Executable Location: In order to use GraXpert in Siril, it is
necessary to tell Siril the path where the GraXpert executable is located.
If you find any difficulty in getting GraXpert working with Siril, check that
it works by itself before submitting a bug report: all Siril does is
execute the third party software, so if it doesn't work by itself then it will
not work when called from Siril either.
Авторские права в TIFF: При сохранении файлов TIFF возможно настроить авторские права в соответствующих метаданных EXIF.
Обновления: По умолчанию Siril проверяет обновления при запуске. Вы можете отключить это поведение, если не хотите, чтобы приложение запрашивало наш веб-сайт.
Начиная с версии 1.2, большинство настроек могут быть установлены командами, что подразумевает прямой ввод команд в командной строке, либо в сценариях или в автономном режиме.
Для получения списка всех доступных переменных, введите в командной строке siril:
get-A
Это выведет список всех переменных с их текущим значением и кратким описанием в журнал (используйте опцию в нижнем регистре -a, чтобы опустить описание).
Этот список представлен в таблице ниже:
Переменная
По умолчанию ([Диапазон])
Тип
Комментарий
core.wd
(не установлено)
директория
текущая рабочая директория
core.extension
.fit
строка
расширение файла FITS
core.force_16bit
false
логический
не использовать 32 бита для разрядности пикселей
core.fits_save_icc
true
логический
встроить профили ICC в FITS при сохранении
core.allow_heterogeneous_fitseq
false
логический
позволять кубам FITS иметь разные размеры
core.mem_mode
0 [0, 1]
целочисленный
режим памяти (0 — отношение, 1 — объём)
core.mem_ratio
0.9 [0.05, 4]
двойной точности
доля доступной памяти
core.mem_amount
10 [0.1, 1e+06]
двойной точности
объём памяти в Гб
core.hd_bitdepth
20 [17, 24]
целочисленный
разрядность расширенного авторастягивания
core.script_check_requires
true
логический
в сценарии необходима команда requires
core.pipe_check_requires
false
логический
в именованном канале необходима команда requires
core.check_updates
false
логический
проверка обновлений при запуске
core.lang
(не установлено)
строка
активный язык siril
core.swap_dir
зависит от ОС
директория
директория подкачки
core.binning_update
true
логический
обновить размер пикселя после биннига
core.wcs_formalism
1 [0, 1]
целочисленный
формализм WCS, используемый в заголовке FITS
core.catalogue_namedstars
~/.local/share/kstars/namedstars.dat
строка
Путь к каталогу namedstars.dat
core.catalogue_unnamedstars
~/.local/share/kstars/unnamedstars.dat
строка
Путь к каталогу unnamedstars.dat
core.catalogue_tycho2
~/.local/share/kstars/deepstars.dat
строка
Путь к каталогу deepstars.dat
core.catalogue_nomad
~/.local/share/kstars/USNO-NOMAD-1e8.dat
строка
Путь к каталогу USNO-NOMAD-1e8.dat
core.catalogue_gaia_astro
~/.local/share/siril/gaia_astrometric.dat
строка
Путь к локальному астрометрическому каталогу Gaia
core.catalogue_gaia_photo
~/.local/share/siril/gaia_photometric.dat
строка
Путь к локальному фотометрическому каталогу Gaia
core.rgb_aladin
false
логический
добавить CTYPE3='RGB' в заголовок FITS
core.use_checksum
false
логический
Проверять контрольные суммы, если они существуют
core.copyright
(не установлено)
строка
авторские права пользователя для размещения в заголовке файла
core.starnet_exe
(не установлено)
строка
расположение исполняемого файла StarNet
core.starnet_weights
(не установлено)
строка
расположение файла с весами StarNet-torch
core.graxpert_path
(не установлено)
строка
расположение исполняемого файла GraXpert
core.asnet_dir
(не установлено)
строка
директория установки asnet_ansvr
core.fftw_timelimit
60
двойной точности
ограничение времени планирования FFTW
core.fftw_conv_fft_cutoff
15
целочисленный
Минимальный размер ядра свёртки для использования FFTW
core.fftwf_strategy
0
целочисленный
Стратегия планирования FFTW
мультипотоковое FFTW
true
логический
мультипотоковое FFTW
core.max_slice_size
32769 [512, 32769]
целочисленный
Maximum slice size for automated slice processing
starfinder.focal_length
0 [0, 999999]
двойной точности
фокусное расстояние (в мм) для настройки радиуса
starfinder.pixel_size
0 [0, 99]
двойной точности
размер пикселя (в мкм) для настройки радиуса
debayer.use_bayer_header
true
логический
шаблон из заголовка файла
debayer.pattern
0 [0, 7]
целочисленный
индекс шаблона Байера
debayer.interpolation
8 [0, 9]
целочисленный
тип интерполяции
debayer.orientation
0 [0, 3]
целочисленный
row-order preference
debayer.offset_x
0 [0, 1]
целочисленный
Смещение шаблона Байера по X
debayer.offset_y
0 [0, 1]
целочисленный
Смещение шаблона Байера по Y
debayer.xtrans_passes
1 [1, 4]
целочисленный
Число проходов для алгоритма X-Trans Markesteijn
photometry.gain
2.3 [0, 10]
двойной точности
электронов/ADU для оценки шума
photometry.inner
20 [2, 100]
двойной точности
внутренний радиус кольца фона
photometry.outer
30 [3, 200]
двойной точности
внешний радиус кольца фона
photometry.inner_factor
4.2 [2, 50]
двойной точности
коэффициент для автоматического расчёта внутреннего радиуса
photometry.outer_factor
6.3 [2, 50]
двойной точности
коэффициент для автоматического расчёта внешнего радиуса
photometry.force_radius
true
логический
значение апертуры светового потока
photometry.auto_aperture_factor
4 [1, 5]
двойной точности
Отношение радиус/половина FWHM
photometry.aperture
10 [1, 100]
двойной точности
значение апертуры для вычисления светового потока
photometry.minval
-1500 [-65536, 65534]
двойной точности
минимально надёжное значение пикселя для фотометрии
photometry.maxval
60000 [1, 65535]
двойной точности
максимально надёжное значение пикселя для фотометрии
photometry.discard_var_catalogues
4 [0, 7]
целочисленный
каталоги, которые будут использованы для исключения переменных звёзд из списка звёзд сравнения
photometry.redpref
(не установлено)
строка
предпочитаемый красный фильтр для SPCC
photometry.greenpref
(не установлено)
строка
предпочитаемый зелёный фильтр SPCC
photometry.bluepref
(не установлено)
строка
предпочитаемый синий фильтр SPCC
photometry.lpfpref
(не установлено)
строка
предпочитаемый НЧ фильтр DSLR для SPCC
photometry.oscfilterpref
Без фильтра
строка
предпочитаемый цветной фильтр для SPCC
photometry.monosensorpref
(не установлено)
строка
предпочитаемый монохромный сенсор для SPCC
photometry.oscsensorpref
(не установлено)
строка
предпочитаемый цветной сенсор для SPCC
photometry.is_mono
true
логический
является ли сенсор SPCC монохромным?
photometry.is_dslr
false
логический
является ли сенсор SPCC DSLR?
photometry.nb_mode
false
логический
мы находимся в узкополосном режиме?
photometry.r_wl
656.28
двойной точности
длина волны красного узкополосного фильтра
photometry.r_bw
6
двойной точности
полоса пропускания красного узкополосного фильтра
photometry.g_wl
500.7
двойной точности
длина волны зелёного узкополосного фильтра
photometry.g_bw
6
двойной точности
полоса пропускания зелёного узкополосного фильтра
photometry.b_wl
500.7
двойной точности
длина волны синего узкополосного фильтра
photometry.b_bw
6
двойной точности
полоса пропускания синего узкополосного фильтра
astrometry.asnet_keep_xyls
false
логический
не удалять таблицы .xyls
astrometry.asnet_keep_wcs
false
логический
не удалять файлы .wcs
astrometry.asnet_show_output
false
логический
показать вывод solve-field в журнале
astrometry.sip_order
3 [1, 5]
целочисленный
степень полиномиальной коррекции
astrometry.radius
10 [0.01, 30]
двойной точности
радиус вокруг координат цели (градусы
astrometry.max_seconds_run
30 [0, 100000]
целочисленный
максимальное кол-во секунд для попытки решения
astrometry.update_default_scale
true
логический
обновить по результатам фокусное расстояние и размер пикселя, используемые по умолчанию
astrometry.percent_scale_range
20 [1, 50]
целочисленный
процент, определяющий допустимые нижнюю и верхнюю границы масштаба
astrometry.default_obscode
(не установлено)
строка
код МАС для обсерватории по умолчанию
analysis.panel
256 [127, 1024]
целочисленный
размер панели диалога аберраций
analysis.window
381 [300, 1600]
целочисленный
размер окна диалога аберраций
compression.enabled
false
логический
включено сжатие FITS
compression.method
0 [0, 3]
целочисленный
метод сжатия FITS
compression.quantization
16 [8, 256]
двойной точности
коэффициент квантования для 32-битных значений с плавающей точкой
compression.hcompress_scale
4 [0, 256]
двойной точности
коэффициент масштаба HCompress
gui_prepro.cfa
false
логический
тип сенсора для косметической коррекции
gui_prepro.equalize_cfa
true
логический
выравнять плоские каналы
gui_prepro.fix_xtrans
false
логический
включить коррекцию для сенсора X-Trans
gui_prepro.xtrans_af_x
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_af_y
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_af_w
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_af_h
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_sample_x
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_sample_y
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_sample_w
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.xtrans_sample_h
0
целочисленный
использовать, если не найдено никакой модели X-Trans
gui_prepro.bias_lib
(не установлено)
строка
мастер-кадр шума считывания по умолчанию
gui_prepro.use_bias_lib
false
логический
использовать мастер-кадр шума считывания по умолчанию
gui_prepro.dark_lib
(не установлено)
строка
темновой мастер-кадр по умолчанию
gui_prepro.use_dark_lib
false
логический
использовать темновой мастер-кадр по умолчанию
gui_prepro.flat_lib
(не установлено)
строка
мастер-кадр плоского поля по умолчанию
gui_prepro.use_flat_lib
false
логический
использовать мастер-кадр плоского поля по умолчанию
gui_prepro.disto_lib
(не установлено)
строка
мастер-кадр дисторсии по умолчанию
gui_prepro.use_disto_lib
false
логический
использовать мастер-кадр дисторсии по умолчанию
gui_prepro.stack_default
$seqname$stacked
строка
название результата укладки по умолчанию
gui_prepro.use_stack_default
true
логический
использовать предпочитаемое название результата укладки
gui_registration.method
0 [0, 7]
целочисленный
индекс выбранного метода регистрации
gui_registration.interpolation
4 [0, 5]
целочисленный
индекс выбранного метода интерполяции
gui_registration.clamping
true
логический
использование метода фиксации для интерполяции методом Ланцош-4 или бикубической интерполяции
gui_registration.drizz_weight_match_bitpix
false
логический
Match Drizzle weights bitpix to sequence
gui_stack.method
0 [0, 4]
целочисленный
индекс выбранного метода
gui_stack.normalization
3 [0, 4]
целочисленный
индекс метода нормализации
gui_stack.rejection
5 [0, 7]
целочисленный
индекс метода выбраковки
gui_stack.weighting
0 [0, 4]
целочисленный
индекс метода присвоения веса
gui_stack.sigma_low
3 [0, 20]
двойной точности
нижнее значение σ для выбраковки
gui_stack.sigma_high
3 [0, 20]
двойной точности
верхнее значение σ для выбраковки
gui_stack.linear_low
5 [0, 20]
двойной точности
значение нижнего порога для выбраковки
gui_stack.linear_high
5 [0, 20]
двойной точности
значение верхнего порога для выбраковки
gui_stack.percentile_low
3 [0, 100]
двойной точности
нижнее значение процентиля для выбраковки
gui_stack.percentile_high
3 [0, 100]
двойной точности
верхнее значение процентиля для выбраковки
gui.first_start
(не установлено)
строка
первый запуск siril
gui.silent_quit
false
логический
не спрашивать перед выходом
gui.silent_linear
false
логический
не спрашивать перед сохранением в нелинейном режиме
gui.remember_windows
true
логический
запоминать положение окна
gui.main_win_pos_x
0
целочисленный
положение главного окна
gui.main_win_pos_y
0
целочисленный
положение главного окна
gui.main_win_pos_w
0
целочисленный
положение главного окна
gui.main_win_pos_h
0
целочисленный
положение главного окна
gui.pan_position
-1
целочисленный
положение двухстороннего разделителя
gui.extended
true
логический
главное окно расширено
gui.maximized
false
логический
главное окно развёрнуто
gui.theme
0 [0, 1]
целочисленный
индекс выбранной темы
gui.font_scale
100
двойной точности
масштаб шрифта в процентах
gui.icon_symbolic
false
логический
стиль иконок
gui.script_path
список строк
список каталогов со сценариями
gui.use_scripts_repository
true
логический
use and sync online scripts repository
gui.use_scripts_repository
true
логический
использование и синхронизация удалённого репозитория spcc-database
Обновляет значение настройки, используя имя её переменной с заданным значением или набором значений, используя существующий ini-файл с опцией -import=.
См. GET для получения списка переменных или их значений
Siril может открывать и работать с рядом форматов файлов. Однако чтение только двух форматов поддерживается нативно и позволяет создавать последовательности: FITS и SER.
Ниже приведено описание различных форматов файлов, чтение которых поддерживается в Siril, дана информация об ограничениях одних форматов файлов и сильных сторонах других.
Глубина цвета определяет число битов, используемых для указания цвета отдельного пикселя или число битов, используемых для каждой цветовой компоненты отельного пикселя.
Для повседневного использования 8-битных изображений, в которых для кодирования пикселя в изображении используются значения в диапазоне [0, 255], более чем достаточно. Однако фотографирование астрономических объектов более требовательно и обычно при этом работа идёт с изображениями с разрядностью по крайней мере 16 бит, т.е. в диапазоне [0, 65535]. Более того, 32-битная точность позволяет сохранить едва различимые данные. В последнем случае пиксели кодируются в диапазоне [0, 4294967295], или, как это имеет место в Siril, дробными значениями в диапазоне [0, 1]. Возможно найти форматы, кодирующие пикселей в 64 битах (в диапазоне [0, 1]), но такие форматы редки и имеют специфические области применения. В частности, формат FITS позволяет это.
Однако не все форматы изображений поддерживают 16-битную глубину цвета, не говоря уже о 32-битной. Это следует иметь, выбирая формат для работы.
Линейное изображение, сохранённое с глубиной цвета 16 бит
Это же изображение, сохранённое с глубиной цвета 8 бит. Практически все данные потеряны
В данном разделе описаны стандартные форматы файлов, читаемые всеми программами обработки изображений. Эти форматы разработаны для удовлетворения потребностей некоторое время назад и могут устареть. Более того, ни один из этих форматов не был разработан для обработки астрономических данных. Поэтому они, как правило, должны использоваться в конце процесса обработки.
AVIF это современный формат изображений, основанный на видеокодеке AV1. В этом формате используется контейнерный формат HEIC. Siril поддерживает чтение изображений с глубиной цвета (разрядностью) до 12 бит. Поддержка сжатия без потерь может быть доступна в зависимости от кодеков, скомпилированных в установленной libheif. AVIF поддерживает цветовые профили, использующие как встроенные профили ICC, так и идентификаторы NCLX: встроенные профили ICC поддерживаются полностью. Присутствует частичная поддержка идентификаторов NCLX (они преобразуются в эквивалентный профиль ICC, хотя в настоящее время поддерживаются только наиболее вероятные профили NCLX).
Файлы с расширением .bmp это файлы растровых изображений, используемые для хранения цифровых растровых изображений. Такие изображения являются аппаратно-независимыми растровыми изображениями (Device Independent Bitmap, DIB). Такая независимость позволяет открывать файл на нескольких платформах, таких как Microsoft Windows и Mac. В файлах формата BMP сохраняются данные в виде двумерных цифровых изображений, как монохромных, так и цветных, с различной глубиной цвета.
В настоящее время этот формат больше не используется и предпочтение отдаётся другим типам файлов.
HEIF это современный формат изображений, основанный на видеокодеке x265. В этом формате используется контейнерный формат HEIC. Siril поддерживает чтение изображений с глубиной цвета (разрядностью) до 12 бит. Поддержка сжатия без потерь может быть доступна в зависимости от кодеков, скомпилированных в установленной libheif. HEIF поддерживает цветовые профили, использующие как встроенные профили ICC, так и идентификаторы NCLX: встроенные профили ICC поддерживаются полностью. Присутствует частичная поддержка идентификаторов NCLX (они преобразуются в эквивалентный профиль ICC, хотя в настоящее время поддерживаются только наиболее вероятные профили NCLX).
Расширения файла для этого формата — .heic и .heif.
Вероятно, наиболее часто используемый формат, чтобы делиться изображениями на форумах, по электронной почте или на USB-носителях. Этот формат позволяет более или менее сильное (деструктивное) сжатие, обеспечивающее идеальный размер файлов для обмена. Расширение файлов этого формата — .jpg или .jpeg*.
Формат JPEG, однако, кодируется только в 8-битном формате. Из-за сжатия, приводящего к появлению артефактов, этот формат не очень подходит для астрономических изображений, и мы обычно предпочитаем формат PNG.
Вслед за рядом предыдущих обновлений формата JPEG (JPEG 2000, JPEG XR...) формат JPEG XL представляет собой значительный скачок в возможностях с намерением заменить все растровые форматы. Независимо от того, будет это достигнуто это или нет, у этого формата есть несколько функций, которые делают его интересным для астрофотографии. Поэтому в Siril добавлена поддержка чтения и записи. Он поддерживает высокую разрядность, до 32 бит с плавающей точкой; поддерживает сжатие с потерями и без потерь: при сжатии с потерями достигается гораздо лучшая степень сжатия, чем в формате JPEG, при тех же настройках качества, а при сжатии без потерь достигается гораздо лучшая степень сжатия, чем в формате PNG. Обратите внимание, что метаданные FITS не будут сохранены при сохранении в формате JPEG XL: основное использование этого формата в Siril, скорее всего, будет в качестве архивного формата для окончательной визуализации изображений. Это также может быть полезно при экспорте для Интернет-страниц: формат пока не поддерживается браузерами широко, но Safari поддерживает его изначально; доступна экспериментальная или с помощью дополнений поддержка в Firefox и Chrome, так что мы можем увидеть, что поддержка станет более доступной в будущем.
JPEG XL полностью поддерживает встроенные профили ICC, однако для улучшения сжатия он сохранит распознанные профили с закодированным идентификатором вместо полного профиля. Это означает, что описание профиля ICC, которое вы видите после открытия сохраненного файла JPEG XL, может отличаться от исходного, однако функционально профиль ICC будет идентичен.
Portable Network Graphics (PNG) — это формат файлов растровой графики, который поддерживает сжатие данных без потерь. Расширение формата — .png. Изображения в оттенках серого в формате PNG поддерживают широчайший диапазон глубины пикселей для любого типа изображений. Поддерживаются значения глубины 1, 2, 4, 8 и 16 бит, охватывающие всё — от простых чёрно-белых сканов до полноэкранных медицинских и необработанных астрономических изображений.
Откалиброванные данные астрономических изображений обычно хранятся в виде 32-разрядных или 64-разрядных значений с плавающей запятой, а некоторые необработанные данные представлены в виде 32-разрядных целых чисел. PNG напрямую не поддерживает ни один из этих форматов.
Однако этот формат является отличным выбором для сохранения конечного изображения после обработки.
Tagged Image File Format (TIFF или TIF), представляет растровые изображения для использования на различных устройствах, соответствующих этому стандарту формата файлов. Он способен описывать двухуровневые, в оттенках серого, с индексированной палитрой и полноцветные изображения в нескольких цветовых пространствах. Формат поддерживает как схему сжатия без потерь, так и с потерями, что позволяет приложениям, использующим этот формат, выбирать между пространством и скоростью обработки. Расширение либо .tiff, либо .tif.
Формат TIFF имеет множество преимуществ. Он поддерживает кодировку до 32-х бит на пиксель и предлагает широкий спектр возможных полей в метаданных, что делает его хорошим кандидатом для хранения астрономических данных.
В сотрудничестве с другими разработчиками, используя формат TIFF, мы создали псевдостандарт Astro-TIFF.
Проектом Netpbm используются и определены несколько графических форматов. Portable pixmap format (PPM), portable graymap format (PGM) и portable bitmap (PBM) — это форматы файлов изображений, предназначенные для простого обмена между платформами. Возможные расширения файла: .pbm, .pgm (для файлов в оттенках серого) и .ppm.
Эти форматы, поддерживающие до 16 бит на канал, редко используются и должны применяться только для хранения конечного изображения.
Это медиаконтейнер, способный содержать данные с различными аудио- и видеокодеками. Некоторые видеокодеки, обеспечивающие сжатие без потерь, в прошлом использовались для получения изображений в астрономии. Однако это формат, который не содержит метаданных, пригодных для астрономии, ограничен 8-битными изображениями и не даёт никаких гарантий того, что содержащиеся в нём данные являются необработанными.
Предупреждение
Этот формат входящих файлов в настоящее время устарел. Мы рекомендуем использовать вместо него формат SER.
FITS означает Flexible Image Transport System (гибкая система передачи изображений) и является стандартным форматом астрономических данных, используемым профессиональными учёными, например в NASA. FITS это больше, чем просто формат изображений (как, например, JPG или TIFF). Он специально разработан для хранения научных данных, состоящих из многомерных массивов.
Файл в формате FITS состоит из одного или более заголовков и наборов данных (HDU). На первый HDU ссылаются как "первичный HDU" или "первичный массив". Поддерживаются пять первичных типов данных: 8-разрядные байты без знака, 16- и 32-разрядные целые числа со знаком, а также 32- и 64-разрядные числа с плавающей запятой одинарной и двойной точности. Формат FITS также может хранить 16- и 32-разрядные целые числа без знака.
Каждый блок заголовка состоит из любого количества ключевых слов длиной 80 символов, имеющих общий вид:
KEYNAME=value/commentstring
Ключевые слова могут быть длиной до 8 символов и содержать только заглавные буквы, цифры 0-9, дефис и символ подчёркивания. За ключевым словом в столбцах 9-10 записи (обычно) следует знак равенства и пробел (= ), за которым находится значение ключевого слова. Последнее может быть целым числом, числом с плавающей запятой, строкой символов (заключённой в одинарные кавычки) или логическим значением (буква T или F).
Последним ключевым словом в заголовке всегда является END, не имеющее полей значения или комментария.
Каждый заголовок начинается с набора обязательных ключевых слов, определяющих размер и формат следующего за ним набора данных. Заголовок двумерного первичного массива изображения, например, начинается со следующих ключевых слов:
FITS files should have an extension ".fit", ".fits" or ".fts"; uppercase variations
are accepted but not recommended. It is possible to select your preferred extension
in the Preferences dialog, and this will be used for saving FITS files,
but all permitted extensions will be accepted for reading FITS images or sequence
frames.
Предупреждение
The FITS file library cfitsio interprets square brackets in filenames as providing
filtering options. Therefore regardless of whether square bracket characters are
permitted in filenames by your operating system, they must not be used in FITS
files.
Сжатие это способ уменьшить размер изображения. Существует много методов сжатия, в зависимости от типа используемого изображения. Сжатие может быть с потерей, в случае JPEG, или без потери качества, как это предлагает PNG.
В Siril присутствует возможность работы со сжатыми файлами FITS. За счёт более длительного времени вычислений, размер изображений может быть значительно уменьшен. Siril предлагает несколько алгоритмов сжатия:
Rice: Алгоритм Райса простой и очень быстрый
GZIP 1: Алгоритм gzip используется для упаковки и распаковки пикселей изображения. Gzip это алгоритм сжатия, используемый свободной утилитой GNU с таким же названием.
GZIP 2: Байты в массиве значений пикселей изображения перетасовываются в порядке убывания значимости перед сжатием с помощью алгоритма gzip. Обычно это особенно эффективно при сжатии массивов с плавающей запятой.
С этими алгоритмами связана одна опция, Уровень квантования:
В то время как изображения в формате с плавающей точкой могут быть сжаты без потерь (используя gzip, поскольку алгоритм Райса сжимает только целочисленные массивы), эти изображения часто сжимаются не очень хорошо, потому что значения пикселей слишком зашумлены; менее значимые биты в мантиссе значений пикселей эффективно содержат несжимаемые случайные битовые шаблоны. Чтобы добиться более высокого сжатия, необходимо удалить часть этого шума, но без потери полезной информации. Если он слишком велик, неправильный выбор значения пикселей приводит к потере информации в изображении. Однако если он слишком мал, сохранятся слишком много шума (или даже усиливает шум) в значениях пикселей, что приводит к плохому сжатию.
Примечание
Поддерживаемые алгоритмы обеспечивают сжатие изображений без потерь (loss-less), когда применяются к целочисленным изображениям FITS; значения пикселей сохраняются без потери информация в ходе сжатия и распаковки. Изображения FITS с плавающей запятой (имеющие BITPIX=-32 или -64) сначала квантуются до масштабированных целочисленных значений, а потом сжимаются. Этот способ обеспечивает гораздо более высокие коэффициенты сжатия, что чем сжатие изображения с использованием GZIP. Однако это означает, что исходные значения с плавающей запятой не могут быть точно восстановлены при распаковке изображения. При правильном применении, это только удаляет 'шум' из значений с плавающей запятой без потери значимой информации.
FITS-файлы, создаваемые крупными астрономическими миссиями, такими как миссии космического телескопа Хаббл (HST) НАСА или космического телескопа Джеймса Уэбба (JWST), часто являются более сложными, чем типичные файлы FITS, используемые астрономами любителями. Эти файлы обычно устроены как последовательности FITS (также называемые FITS-кубами), но с важным отличием: отдельные изображения внутри этих последовательностей могут иметь разные размерности.
Эта особенность позволяет хранить многомерные данные, собранные в различных условиях, где каждый кадр или изображение в последовательности может иметь различное разрешение или размер. Например, данные от телескопа Джеймса Уэбба (JWST) часто включают такие неоднородные наборы данных из-за особенностей его инструментов и режимов наблюдения.
В Siril , при обработке подобных научных файлов FITS важно включить опцию, которая позволяет работать с изображениями различной размерности внутри FITS-куба. Это можно сделать, включив параметр Кубы FITS могут содержать изображения разного размера во вкладке Параметры FITS настроек программы.
Предупреждение
Currently, Siril is unable to process FITS files with NAXES[2]>3. This
feature is planned for future versions of the software, so FITS cubes with
more than three axes are not supported at the moment.
Пример изображения, полученного космическим телескопом Джеймс Уэбб, загруженного в Siril
Стандарт FITS это контейнер, описывающий как хранить данные изображения и метаданные. Профессиональные инструменты из ранней истории формата FITS, такие, как ds9 (Гарвард-Смитсоновский центр астрофизики), fv (просмоторщик FITS от NASA), хранят изображения в восходящем порядке (bottom-up). У нас может возникнуть соблазн сказать, что на самом деле это не имеет значения, но когда речь заходит о дебайеризации или астрометрии, возникают проблемы. Например, обычный шаблон Байера RGGB становится GBRG, если изображение перевёрнуто (upside-down).
В настоящее время, несмотря на это, большинство драйверов камер записывают данные в нисходящем порядке (top-down), и нам приходится иметь с этим дело.
По этой причине совместно с P. Chevalley из CCDCiel мы недавно предложили новое ключевое слово FITS. Мы призываем всех производителей данных, разработчиков INDI и ASCOM использовать его, чтобы упростить работу для всех.
Это ключевое слово — ROWORDER, имеющее тип TSTRING. Оно может иметь два значения: BOTTOM-UP и TOP-DOWN.
Siril всегда читает и отображает изображения в восходящем порядке, однако если в ключевом слове дана информация о нисходящем порядке данных, то Siril выполнит дебайеризацию изображения, используя корректный шаблон.
Почему некоторые программы вообще записывают изображения в восходящем порядке?
Очень полезно принять соглашение об отображении изображений, переданных в формате FITS. Многие из существующих систем обработки изображений пришли к такому соглашению. Поэтому мы рекомендуем при записи FITS упорядочить пиксели таким образом, чтобы первый пиксель в файле FITS (для каждой плоскости изображения) был тем, который будет отображаться в левом нижнем углу (с увеличением первой оси вправо, а второй оси вверх) системой обработки изображений, записывающей FITS. Это соглашение явно полезно в отсутствие описания мировых координат. Это не мешает программе просматривать описания осей и переопределять это соглашение, а также не мешает пользователю запрашивать другое отображение. Это соглашение также не освобождает авторов FITS от предоставления полных и корректных описаний координат изображения, позволяющих пользователю определить значение изображения. Порядок отображения изображения — это просто соглашение для удобства, в то время как координаты пикселей являются частью физики наблюдения.
Предупреждение
Ключевое слово ROWORDER можно использовать для:
Показ изображения в заданной ориентации (поворот экрана).
Переворот шаблона Байера. Таким образом, шаблон может быть указан поставщиком сенсора.
НО
ROWORDER не должен использоваться для переворота изображения для укладки. В противном случае новые изображения будут несовместимы со старыми темновыми кадрами и кадрами плоского поля.
ROWORDER не должен использоваться для переворота данных изображения при поиске астрономического решения. В противном случае такое астрономическое решение будет несовместимо с другими программами.
Программное обеспечение, использующее ключевое слово ROWORDER
Порядок строк в изображении меняет то, как должен быть прочитан шаблон Байера, но есть так же два необязательных ключевых слова FITS, которые влияют на это: XBAYROFF и YBAYROFF. Эти ключевые слова задают смещение шаблона Байера, чтобы начать считывать её с первого столбца или первой строки.
Чтобы помочь разработчикам интегрировать ключевые слова ROWORDER, XBAYROFF и YBAYROFF в их программное обеспечение, Han Kleijn из hnsky.org, создал несколько тестовых изображений, по одному для каждой комбинации из трёх ключевых слов. Эти изображения можно скачать по ссылке: Bayer_test_pattern_v6.tar.gz.
Siril имеет возможность читать и интерпретировать широкий диапазон ключевых слов. Ниже приведён список нестандартных ключевых слов, которые Siril регистрирует при необходимости. Некоторые ключевые слова, которые Siril имеет возможность читать, могут отсутствовать в этом списке. Например, ключевые слова CCDTEMP или TEMPERAT, которые указывают температуру сенсора, корректно считываются, но выводятся с ключевым словом CCD-TEMP.
Совет
Siril is able to read and compare checksums if they are present in the FITS
header. However, by default and for software performance reasons, CHECKSUM
and DATASUM cards are automatically removed from HDU headers when a file
is opened, and any CHECKSUM or DATASUM cards are stripped from headers
when an HDU is written to a file. Nevertheless, they can be saved at the
user's request, using the -chksum option of the save
command, or via the graphical user interface.
FITS keywords saved by Siril. For reasons of clarity, astrometry SIP keywords are not listed.
Ключевые слова FITS
Тип
Комментарий
BZERO
Двойной точности
Смещение диапазона данных к диапазону коротких целых без знака
BSCALE
Двойной точности
Коэффициент масштабирования по умолчанию
MIPS-HI
Короткое целое без знака
Верхняя граница визуализации
MIPS-LO
Короткое целое без знака
Нижняя граница визуализации
MIPS-FHI
Одинарной точности с плавающей запятой
Верхняя граница визуализации
MIPS-FLO
Одинарной точности с плавающей запятой
Нижняя граница визуализации
PROGRAM
Строка
Программное обеспечение, использованное для создания этого HDU
FILENAME
Строка
Original Filename
DATE
Строка
Дата (по UTC), когда этот файл FITS был создан
DATE-OBS
Строка
Дата начала наблюдения в формате YYYY-MM-DDThh:mm:ss (по UT)
IMAGETYP
Строка
Тип изображения
ROWORDER
Строка
Порядок строк в массиве изображения
EXPTIME
Двойной точности
[s] Exposure time duration
TELESCOP
Строка
Телескоп, использованный для получения этого изображения
OBSERVER
Строка
Имя наблюдателя
FILTER
Строка
Название активного фильтра
APERTURE
Двойной точности
Апертура инструмента
ISOSPEED
Двойной точности
Установленная чувствительность камеры (ISO)
FOCALLEN
Двойной точности
[мм] Фокусное расстояние
CENTALT
Двойной точности
[град.] Высота телескопа
CENTAZ
Двойной точности
[град.] Азимут телескопа
XBINNING
Целое без знака
Режим биннинга камеры
YBINNING
Целое без знака
Режим биннинга камеры
XPIXSZ
Двойной точности
[um] Pixel X axis size
YPIXSZ
Двойной точности
[um] Pixel Y axis size
INSTRUME
Строка
Название инструмента
CCD-TEMP
Двойной точности
[degC] CCD temperature
SET-TEMP
Двойной точности
[degC] CCD temperature setpoint
GAIN
Короткое целое без знака
Усиление сенсора
OFFSET
Короткое целое без знака
Sensor gain offset
CVF
Двойной точности
[e-/ADU] Electrons per A/D unit
BAYERPAT
Строка
Цветной шаблон Байера
XBAYROFF
Целое
смещение массива Байера по X
YBAYROFF
Целое
смещение массива Байера по Y
FOCNAME
Строка
Название фокусировчного оборудования
FOCPOS
Целое
[step] Focuser position
FOCUSSZ
Целое
[мкм] Шаг фокусёра
FOCTEMP
Двойной точности
[degC] Focuser temperature
STACKCNT
Целое без знака
Количество уложенных кадров
LIVETIME
Двойной точности
[s] Exposure time after deadtime correction
EXPSTART
Двойной точности
[JD] Время начала экспозиции (стандартная Юлианская дата)
EXPEND
Двойной точности
[JD] Время окончания экспозиции (стандартная Юлианская дата)
OBJECT
Строка
Название объекта интереса
AIRMASS
Двойной точности
Airmass at frame center (Gueymard 1993)
SITELAT
Двойной точности
Широта места наблюдения (в градусах)
SITELONG
Двойной точности
Долгота места наблюдения (в градусах)
SITEELEV
Двойной точности
[м] Высота места наблюдения
DFTTYPE
Строка
Амплитуда/фаза дискретного преобразования Фурье
DFTORD
Строка
Низкая/высокая пространственные частоты, расположены в центре изображения
В 2022 Хан Клейндж (Han Kleijn), разработчик ASTAP, предложил внести свой вклад в разработку нового псевдостандарта, используя формат TIFF и возможности заголовков файлов FITS. Таким образом был создан формат Astro-TIFF.
В настоящее время наиболее используемым форматом для астрофотографии является FITS. Этот формат, разработанный профессиональными учёными, отвечает всем требованиям любителей. И хотя его большая гибкость вызывает некоторые опасения по поводу совместимости, он остаётся предпочтительным форматом.
Существуют и другие специализированные форматы, но обычно они связаны с конкретным программным обеспечением. Например, формат XISF, разработанный командой PixInsight. Последний, хотя его часто запрашивают в Siril, является форматом, предназначенным для проприетарного программного обеспечения PixInsight. Так что интерес к развитию совместимости с Siril минимален, и мы сделали это только для чтения в цикле 1.4.x.
Разработка Astro-TIFF представляется хорошей альтернативой, поскольку файлы на основе формата TIFF можно открывать в любом программном обеспечении для обработки изображений.
Наконец, формат TIFF поддерживает сжатие (как и FITS), что позволяет получать изображения меньшего размера.
Файлы полностью соответствуют спецификации TIFF 6.0, включая дополнение 2.
Заголовок FITS записывается в базовый тег TIFF Описание изображения. Code 270, Hex 010E.
Заголовок соответствует спецификации FITS, за исключением того, что строки могут быть короче 80 символов и оканчиваться на CR+LF (0D0A) или LF (0A).
Первая строка в описании является первой строкой заголовка и начинается с SIMPLE. Последняя строка заголовка начинается с END.
Рекомендации
TIFFtag_orientation=1 (вверху-слева) Ориентация следует следующим соглашениям. Пиксель FITS_image[1,1] — внизу слева. TIFF_image[0,0] — вверху слева. Эти пиксели первыми записываются в файл или читаются из файла. Таким образом, при записи изображения FITS в файл TIFF с сохранением ориентации для пользователя первым записываемым пикселем является FITS_image[1,NAXIS2].
TIFFtag_compression=8 (Deflate) или 5 (LZW).
Для изображений в градациях серого TIFFtag_PhotometricInterpretation=1 (минимальное значение — чёрное, максимальное — белое).
Записывать все доступные ключевые слова.
Замечания
Подобный формат TIFF предназначен для использования с 16-битными астрономическими изображениями — кадрами отдельных субэскпозиций (light), темновыми кадрами (dark), кадрами плоского поля (flat) и темновыми кадрами плоского поля (flat-dark), но может использоваться и в 32-битном формате. Возможно преобразование FITS в TIFF и обратно, но разработчик приложения может решить только экспортировать (запись) или только импортировать (чтение) в формате Astro-TIFF.
Если включено астрономическое решение, то оно должно соответствовать ориентации изображения.
Некоторые ключевые слова избыточны (например, NAXIS1, NAXIS2, BZERO и BITPIX) и не требуются. Размеры и тип изображения в формате TIFF являются главными.
Шаблон для дебайеризации, указанный в заголовке, должен совпадать с ориентацией изображения.
Заголовок будет видим во многих программах для обработки изображений.
Пример заголовка Astro-TIFF, который выглядит так же как и заголовок файла FITS:
SIMPLE = T / file does conform to FITS standard
BITPIX = -32 / number of bits per data pixel
NAXIS = 2 / number of data axes
NAXIS1 = 6248 / length of data axis 1
NAXIS2 = 4176 / length of data axis 2
NAXIS3 = 1 / length of data axis 3
EXTEND = T / FITS dataset may contain extensions
COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
BZERO = 0 / offset data range to that of unsigned short
BSCALE = 1 / default scaling factor
DATE = '2022-12-14T16:05:47' / UTC date that FITS file was created
DATE-OBS= '2022-05-06T20:29:20.019000' / YYYY-MM-DDThh:mm:ss observation start,
INSTRUME= 'ZWO CCD ASI2600MM Pro' / instrument name
OBSERVER= 'Unknown ' / observer name
TELESCOP= 'iOptron ZEQ25' / telescope used to acquire this image
ROWORDER= 'TOP-DOWN' / Order of the rows in image array
XPIXSZ = 3.76 / X pixel size microns
YPIXSZ = 3.76 / Y pixel size microns
XBINNING= 1 / Camera binning mode
YBINNING= 1 / Camera binning mode
FOCALLEN= 370.092 / Camera focal length
CCD-TEMP= -9.8 / CCD temp in C
EXPTIME = 120 / Exposure time [s]
STACKCNT= 126 / Stack frames
LIVETIME= 15120 / Exposure time after deadtime correction
FILTER = 'Lum ' / Active filter name
IMAGETYP= 'Light Frame' / Type of image
OBJECT = 'Unknown ' / Name of the object of interest
GAIN = 100 / Camera gain
OFFSET = 50 / Camera offset
CTYPE1 = 'RA---TAN' / Coordinate type for the first axis
CTYPE2 = 'DEC--TAN' / Coordinate type for the second axis
CUNIT1 = 'deg ' / Unit of coordinates
CUNIT2 = 'deg ' / Unit of coordinates
EQUINOX = 2000 / Equatorial equinox
OBJCTRA = '09 39 54.932' / Image center Right Ascension (hms)
OBJCTDEC= '+70 00 10.118' / Image center Declination (dms)
RA = 144.979 / Image center Right Ascension (deg)
DEC = 70.0028 / Image center Declination (deg)
CRPIX1 = 3123.5 / Axis1 reference pixel
CRPIX2 = 2088.5 / Axis2 reference pixel
CRVAL1 = 144.979 / Axis1 reference value (deg)
CRVAL2 = 70.0028 / Axis2 reference value (deg)
CD1_1 = -0.000580606 / Scale matrix (1, 1)
CD1_2 = -4.12215e-05 / Scale matrix (1, 2)
CD2_1 = -4.11673e-05 / Scale matrix (2, 1)
CD2_2 = 0.000580681 / Scale matrix (2, 2)
PLTSOLVD= T / Siril internal solve
HISTORY Background extraction (Correction: Subtraction)
HISTORY Plate Solve
END
В Siril вы можете сохранить файлы Astro-TIFF, выбрав формат TIFF в диалоге сохранения, когда нажимаете на кнопку Сохранить как. В выпадающем списке диалога есть возможность выбора между сохранением в стандартном формате TIFF или в формате Astro-TIFF. Последний является форматом по умолчанию.
Сохраняет текущее изображение в виде несжатого 16-битного файла TIFF filename.tif. Опция -astro позволяет сохранить в формате Astro-TIFF, а -deflate включает сжатие.
Формат SER это простая последовательность изображений, похожая на несжатые ролики. Документацию можно найти на официальной странице. Ссылка на последнюю версию документации в формате PDF доступна так же на сайте free-astro.
С обновлениями версий 2 и 3, формат SER поддерживает цветные изображения, что делает его прекрасной заменой обычного формата AVI или других форматов роликов, создаваемых более старыми программами захвата, во всех астрономических ситуациях. Сжатые изображения не следует использовать для астрономии, но их всё равно можно преобразовать в формат SER, что увеличит размер файлов при том же качестве, но упростит работу с ними.
Siril способен конвертировать любую последовательность изображений и многие форматы роликов в файлы SER. Ser-player это замечательный инструмент, имеющий много опций и работающий на большинстве операционных систем, который позволяет визуализировать файлы SER, подобно любым другим роликам.
Основная проблема с AVI и другими контейнерами заключается в том, что они предназначены для работы со многими кодеками и пиксельными форматами, что хорошо для роликов общего назначения, но требует от астрономического программного обеспечения поддержки обработки большого массива фактически различных форматов файлов. Программное обеспечение для создания роликов общего назначения часто недостаточно подходит для обработки 16-битных значений на пиксель или некоторых несжатых форматов данных. В случае SER только один формат файла поддерживает всё это, поэтому для Siril, например, сейчас разрабатывается обработка только для SER.
В версии 3 SER (2014) существуют два способа обработки цветных изображений. Если данные поступают напрямую с сенсора, предпочитаемым способом, вероятно, будет использование одноплановых изображений и интерполяция данных из массива цветных светофильтров (аналогично форматам файлов CFA, используемым астрономическим программным обеспечением).
Другой способ, добавленный в 3 версию, это использование трёх плоскостей для представления данных изображения RGB. SER третьей версии поддерживает RGB/BGR 8/16-битные данные. Это может быть полезно, если данные конвертированы из источника с неизвестным массивом фильтров или для конвертации общего назначения.
Поскольку файлы SER могут содержать изображения с 16-битной разрядностью, порядок байтов должен быть чётко указан. Спецификация допускает, чтобы порядок байтов был либо от старшего к младшему (big-endian), либо от младшего к старшему (little-endian), чтобы облегчить создание файла в различных системах, при условии, что используемый порядок байтов задокументирован в заголовке файла.
По неизвестной причине несколько первых программ, поддерживающих SER, не соблюдают спецификацию, касающуюся флага порядок байтов. В спецификации указано, что для заголовка Little Endian используется логическое значение, и они используют его как заголовок BigEndian, где 0 соответствуют порядку от младшего к старшему (little-endian) и 1 - от старшего к младшему (big-endian). Следовательно, чтобы не нарушать совместимость с этими первыми реализациями, более поздние программы, такие как Siril, GoQat, Ser-player и многие другие, также решили реализовать этот заголовок в значении, противоположном спецификации.
Формат PIC — это проприетарный формат изображений, созданный для программного обеспечения IRIS от Кристиана Буила (Christian Buil). Чтобы обеспечить совместимость с IRIS, Siril имеет возможность читать файлы этого типа. Gоскольку формат является проприетарным, чьи технические характеристики неизвестны, не вся информация заголовка будет сохранена при преобразовании в FITS.
PixInsight представила файловую структуру, получившую название расширенный формат сериализации изображений (Extensible Image Serialization Format) или XISF. Этот формат был написан для замены формата FITS, обычно используемого в астрофотографии. По сути, этот формат был разработан для программного обеспечения PixInsight и многие важные типы метаданных хранятся в частных пространствах имён, на которые, по мнению разработчиков Pixinsight, нельзя полагаться, и они могут произвольно изменяться в зависимости от версии спецификации XISF. Более того, способ использования ключевых слов для описания конкретной функции может быть очень непрозрачным. В результате преимущества, которые это могло бы принести PixInsight, как правило, равны нулю для другого программного обеспечения. Более того, формат файла FITS является признанным и широко используемым форматом в сообществе. NASA использует его для своих собственных изображений. Он очень гибкий и мощный и содержит все функции, необходимые для современной обработки астрофотографий.
Поэтому мы решили дать возможность Siril открывать файлы этого типа, но в режиме только для чтения. Сохранение в формате XISF не реализовано и не будет реализовано.
Сейчас Siril предоставляет рабочий процесс, полностью поддерживающий управление цветом с использованием ICC-профилей. Обеспечивая точную и последовательную цветопередачу на различных устройствах, Siril позволяет уверенно редактировать изображения, зная, что цвета, которые вы видите на экране, будут точно отображаться при печати или на других дисплеях. Вы можете редактировать свои изображения в цветовых пространствах, более соответствующих возможностям профессионального фотопринтера с широкой гаммой, что позволяет получать отпечатки с более насыщенными цветами, чем это возможно при работе в стандартном цветовом пространстве sRGB. Вы можете создавать изображения, которые ваша аудитория сможет воспринимать в соответствии с тем, как вы их видите в ходе обработки, независимо от устройства отображения.
В этом разделе документации есть несколько разделов, цель которых — дать общее представление о том, что такое управление цветом, как оно может помочь вам и как оно работает в Siril.
Добро пожаловать в новую систему управления цветом Siril! Управление цветом может показаться сложным, поэтому на этой странице будет рассказано об основных принципах, которые вам необходимо знать для начала работы. Мы рассмотрим две настройки, которые упростят вашу жизнь.
Настройки по умолчанию обеспечивают поведение, аналогичное предыдущим версиям Siril.
Монитор настроен в sRGB, и предпочитаемое цветовое пространство также задано как sRGB. Это означает, что не требуется преобразования между ними и, следовательно, нет дополнительных затрат на обработку изображений с использованием профиля по умолчанию.
Когда изображения загружаются, если они имеют связанный цветовой профиль, то он будет сохранён. Это означает, что требуется преобразование отображения, что приводит к небольшим дополнительным затратам на обработку, но сводит к минимуму внесение изменений в загружаемый файл.
Если изображения не имеют цветового профиля, то при первом растягивании им присваивается предпочитаемое цветовое пространство (sRGB). Именно в этот момент вам следует использовать линейный режим просмотра, чтобы изображение отображалось на экране так, как вы хотите, и, следовательно, именно сейчас управление цветом становится важным.
Изображения будут экспортированы во все 8- и 16-битные форматы с использованием цветового пространства sRGB.
Настройки по умолчанию идеально подходят, если вашей основной целью является создание изображений для Интернета или для просмотра на большинстве обычных компьютерных мониторов.
Если вы собираетесь делать отпечатки своих работ, рассмотрите следующие настройки.
На снимке экрана монитор остается в режиме sRGB, поскольку пользовательский профиль монитора не установлен. Если у вас есть доступ к необходимому оборудованию для калибровки монитора, вы можете настроить пользовательский профиль, адаптированный к вашему монитору (Как это сделать, не входит в компетенцию Siril, но вы, возможно, захотите ознакомиться со свободным программным продуктом ArgyllCMS.)
Предпочитаемым цветовым пространством является Rec 2020. Это цветовое пространство с широким цветовым охватом лучше подходит для рабочего процесса, ориентированного на печать, поскольку преобразование RGB в CMYK, выполняемое принтером, с меньшей вероятностью приведет к искажению профиля CMYK.
При загрузке изображений, если с ними связан цветовой профиль, они будут преобразованы в формат Rec 2020. Если у изображений нет цветового профиля, при первом растягивании с ними будет связан предпочитаемый цветовой профиль (Rec 2020).
В предложенных выше настройках используется относительная колориметрическая цветопередача. Это то, что вы всегда должны использовать при редактировании вашего изображения, так как при использовании относительной колориметрической цветопередачи цвета внутри цветового охвата остаются неизменными, что обеспечивает наиболее точное представление о том, как выглядит ваше изображение в целом.
Однако при относительной колориметрической цветопередаче отсекаются цвета, выходящие за приделы цветового охвата. Вы не увидите деталей цвета, которые не входят в цветовой охват.
Поэтому иногда может потребоваться изменить режим цветопередачи на воспринимаемый, что позволит плавно перенести цвета из рабочей области на дисплей. Будут показаны все детали цветовой гаммы, но за счёт общей потери насыщенности. Это неизбежно, так как большой цветовой охват сжимается, чтобы вписаться в меньшую. Следовательно, воспринимаемая цветопередача не обеспечивает истинного отображения вашего изображения: повторим — воспринимаемая цветопередача не должна использоваться при редактировании изображений. Она предназначена только для изучения деталей на ваших изображениях, которые находятся за пределами охвата sRGB. Смотрите обсуждение здесь.
Изображения будут экспортированы в 8-битные форматы, как sRGB, но в форматы с высокой разрядностью — как Rec2020 (и вам следует сохранить окончательную версию в стандартном для полиграфии 16-битном формате, т.е., вероятно, в формате TIFF).
The color management status of the loaded image is indicated by the Color
Management status icon in the bottom left hand corner of the window. The icon is
fully saturated when the image is color managed, and desaturated when the image
is not color managed. The tooltip provides more detailed status information if
the image is color managed: it shows the working space and monitor profiles.
Left clicking the status button accesses the Color Management Dialog. Right
clicking the tool toggles the ISO 12646 color assessment display mode. Both are
described in more detail below.
Just above the color management status button is a new menu for image checks.
This includes the existing cut check for highlighting pixels that exceed the gui
hi slider, and adds a new gamut check, which highlights pixels that are out of
gamut for the soft proofing profile in bright magenta.
The Color Management tool is accessed by clicking on the Color Management status
icon. (It can also be accessed via the Tools menu.)
The tool itself is shown below.
The top part of the tool shows information about the current ICC profile
assigned to the image. The description, manufacturer details and copyright
notice are shown.
Underneath this are choosers that allow you to choose a different profile,
either one of the built-in profiles using the drop-down menu on the left or
any ICC profile you wish to load from a file using the filechooser on the right.
Предупреждение
When loading a profile from a file, the profile type must be either RGB or
Gray to match the loaded image. Assigning or converting images to other color
spaces such as XYZ, CIE La*b* or CMYK is not supported, however color spaces
such as CIE La*b* may be used internally by some image operations where
required.
Совет
You can convert a RGB image to a Gray profile. This will result in a mono
image with the appropriate tone response curve (TRC) transform and contributions
from the 3 R, G and B channels determined by the white points of the two
profiles. Converting a Gray image to a RGB profile will result in a 3-channel
image with the appropriate TRC transform and all pixel components equal.
At the bottom of the window, the tool shows the same kind of information for
the target profile that it does for the original profile at the top of the
window. This helps in checking you've loaded the right one.
The Export button simply exports the current image profile to
a file in the working directory.
The Remove button removes the ICC profile from an image.
The Assign button assigns the selected ICC profile to the image,
without performing a color space conversion. This is useful if the image has
an incorrect color profile embedded.
The Convert button converts the image to the selected ICC profile
and assigns the profile to the image. This is useful if you wish to transform
the image from its current color space to a different one.
Предупреждение
Use of the Remove, Assign or Convert
buttons (or the Siril commands icc_remove,
icc_assign or icc_convert_to)
will clear any ROI that is set.
ISO 12646 defines optimum viewing conditions for assessing color. In summary,
to get the best assessment of the colors in your image the best viewing conditions
are provided by a uniform neutral gray background called D50. Technically this
should even extend to the walls in your room, but Siril can't control that!
Siril does provide an image assessment mode that approximates ISO 12646
recommendations, however. It is available by right clicking on the color
management button in the bottom-left of the screen, and does not require the
image to be color managed to use it.
This mode is intended as a final check of the colors of your image, so it sets
the preview mode to linear with the sliders at 0 and 65535 (full range). It also
hides the panel and sets the zoom so that the full image is visible and centered
with an ample border around it, and sets a moderate white border around the
image to provide a visual white reference, surrounded by a background of D50 gray.
Ideally you should also choose a neutral gray GTK theme, such as the excellent
Equilux theme.
This mode automatically disables itself if the zoom is changed or the panel made
visible again, and it can be toggled off by right clicking a second time on the
color management button. The view will revert to its previous zoom settings and
panel state.
Most Siril commands do not engage with color management except that they do not
prevent existing color profiles from being preserved in an image.
The exceptions are three specific color management commands that can be used to
assign, convert or delete the ICC profile in an image.
Командная строка Siril
icc_assign profile
Назначает текущему изображению указанный в аргументе ICC-профиль.
Для использования соответствующих встроенных профилей может быть передан один из следующих специальных аргументов: sRGB, вRGBlinear, Rec2020, Rec2020linear, working для установки рабочего монохромного или RGB цветового профиля, (для монохромных изображений) linear или может быть указан путь к файлу с профилем ICC. Если указан встроенный профиль при загруженном монохромном изображении, будет использован Ч/Б профиль с соответствующей TRC
Командная строка Siril
icc_convert_to profile [intent]
Преобразует текущее изображение в указанный ICC-профиль.
Для использования соответствующих встроенных профилей может быть передан один из следующих специальных аргументов: sRGB, sRGBlinear, Rec2020, Rec2020linear, graysrgb, grayrec2020, graylinear или working для установки рабочего монохромного или RGB цветового профиля, (для монохромных изображений) linear или может быть указан путь к файлу с профилем ICC. Если указан встроенный профиль при загруженном монохромном изображении, будет использован Ч/Б профиль с соответствующей TRC.
Может быть передан второй аргумент для указания цветопередачи при преобразовании: доступны perceptual, relative (относительная колориметрическая), saturation или absolute (абсолютная колориметрическая)
Командная строка Siril
icc_remove
Удаляет ICC-профиль из текущего изображения если оно уже имеет таковой
ICC profiles do not cover everything a user may wish to do in terms of color
manipulation, so additional tools are provided as well. Of course, pixel math
is a powerful general purpose tool for manipulating pixels but a common use
case is to apply a color correction matrix to data, for example for manual
conversion of camera chromaticities.
Предупреждение
Application of CCMs is an advanced technique. Description of
techniques involving the use of CCMs is outside the scope of Siril
documentation. You should understand how CCMs operate and how to apply them
within your workflow in order to use this tool successfully.
Several common preset are provided in a drop-down selector. The tool
additionally offers the ability to scale by a \(\gamma\) factor.
This is applied to pixels as follows:
\[\begin{split}\begin{align}
r' &= (m_{00}\cdot r + m_{01}\cdot g + m_{02}\cdot b)^{(-1/\gamma)} \\
g' &= (m_{10}\cdot r + m_{11}\cdot g + m_{12}\cdot b)^{(-1/\gamma)} \\
b' &= (m_{20}\cdot r + m_{21}\cdot g + m_{22}\cdot b)^{(-1/\gamma)}
\end{align}\end{split}\]
Предупреждение
If a CCM is applied to an image that has an embedded ICC profile,
the ICC profile will no longer be a valid description of the image data. The
profile is therefore temporarily disabled and the color management icon will
show as inactive. It is assumed that your workflow will involve low-level
colorspace transforms and image operations and at some point you will end up
transforming the data back to the color space described by the ICC profile.
At this point the ICC profile can be reactivated using the bottom of the
dialog. If however your workflow involves manual conversion of the image to
a different final color space you will need to apply the target ICC profile
using the Color Management dialog.
Note that this does not apply to the command line ccm command.
By policy, Siril commands do not interact with ICC profiles therefore the
ccm command will not disable an ICC profile attached to an image:
it is your responsibility to do this using the icc_remove
command if required.
This operation can be applied to sequences. Open a sequence and prepare the
settings you want to use, then check the Apply to sequence button
and define the output prefix of the new sequence (ccm_ by default).
Командная строка Siril
ccm m00 m01 m02 m10 m11 m12 m20 m21 m22 [gamma]
Применяет матрицу преобразования цвета к текущему изображению.
Имеются 9 обязательных аргументов, соответствующих девяти элементам матрицы:
m00, m01, m02
m10, m11, m12
m20, m21, m22
Может быть передан дополнительный, десятый, аргумент [gamma]. Если он опущен, используется значение по умолчанию 1.0.
Аргументы применяются к каждому пикселю в соответствии со следующими формулами:
r' = (m00 * r + m01 * g + m02 * b)^(-1/gamma)
g' = (m10 * r + m11 * g + m12 * b)^(-1/gamma)
b' = (m20 * r + m21 * g + m22 * b)^(-1/gamma)
Командная строка Siril
seqccm sequencename [-prefix=]
Аналогична команде CCM, но применяется к последовательности sequencename. Обрабатываются только выбранные изображения из последовательности.
Название итоговой последовательности будет начинаться с префикса "ccm", если не указан иной с помощью аргумента -prefix=
Color management is the method used to ensure that the colors of an image
always look consistent, however the image is viewed. This is done using
color profiles (ICC profiles, named for the International Color Consortium).
Each display type and printer / paper combination has its specific color
profile. The image also has a defined color space, and by transforming the
image between different color spaces when viewed on two different types of
display, or when printed, we ensure it always looks the same (or at least as
close to "the same" as possible).
The CIE 1931 color space (CIE 1931) maps all colors that are discernable by
the human eye. As the human eye has three types of cone cell (color
receptors), so CIE 1931 has three parameters (X, Y and Z). Note the
parameters X, Y and Z don't directly correspond to the response of each
type of cone cell, but they do allow 3 degrees of freedom. For more details
on this color space, see here: https://en.wikipedia.org/wiki/CIE_1931_color_space
This isn't a color space that is used to store image data most of the time
but it matters because it is used as an intermediate color space, and
because it defines what are "real" colors (those visible by human eyesight)
and what are "imaginary" (those we can't see). CIE 1931 can be visualised
as a horseshoe shape.
Our working color spaces are generally based around the color axes Red,
Green and Blue. This corresponds roughly to how our eyes work and also
to the phosphors in the emitters in a screen. However there are a great
many RGB color spaces, each suitable for different purposes, and each
with advantages and disadvantages. You can see the variety of color spaces
in this diagram, which shows them defined in relation to CIE 1931.
The R, G and B channels of an image are defined in terms of a color space formed
by three primary colours located within this CIE 1931 space, plus a white point,
plus a tone response curve (TRC) for each channel that sets the gamma of each
channel. (Actually, TRCs can be more complex than a simple gamma curve but mostare at least approximately a gamma curve.)
The diagram above shows that some color spaces are considerably bigger than
others: that is, they can represent a greater portion of the visible colors.
In astrophotography we quite often deal with monochrome images. These clearly
can't have a RGB color profile. Instead they get a Gray color profile. This
defines the image's tone response curve (TRC) in exactly the same way as the RGB
color profiles define the TRC of each channel. So whatever type of display or
printer you're using, monochrome images can still be faithfully reproduced and
look the same (or as close to it as possible) in different output media.
The "standard" color space used for computer graphics has traditionally been
sRGB. This was created by HP and Microsoft in 1996 and subsequently
standardized as IEC 6166-2-1:1999. This color space codifies the color gamut
achievable by displays of the time. As can be seen in the figure it can only
represent a small portion of the total visible color space defined by CIE
1931. However, many monitors today can still do little better than sRGB and
it is the current standard color space for the World Wide Web (WWW), so even
if you don't want to use it for any other purpose it is necessary to use it
as the export profile for any image you want to display consistently in
web browsers. It is also the assumed color space for any image format that
lacks color profile support, and for any application that lacks color
management.
However it is obvious that there are other RGB color spaces with much larger
gamuts, for example Adobe RGB, Adobe ProPhoto, Rec2020. These can represent
a much larger portion of the real colors defined in CIE1931. They can also
represent a much larger color gamut than most monitors. So why would these
be of interest?
Well, for one, monitors are getting better. Wide gamut monitors are still
not mainstream but they are becoming less rare, and more affordable. If you
edit and view your images on a wide gamut monitor, you will benefit from
richer color by using a color space with a bigger gamut. Some modern phones
can display the whole of the P3 gamut, which is considerably bigger than sRGB
and allows a richer range of colors to be displayed.
Print profiles can extend beyond sRGB in some areas (and may not cover all of
sRGB in other areas). By editing in a wide gamut color space, that richness of
color - even if it can't be shown in the color-transformed output on your
display - is still there and will be evident in good quality prints.
The point of color spaces is that an image will often appear in outputs with
different color spaces at different points in its life. It may be created on
a professional-quality high gamut monitor, it may be viewed by the public
on basic sRGB monitors, and it may be printed on a range of different printers.
Each of these devices is capable of reproducing different color gamuts but we
want the image, so far as possible, to look consistent across all of them. This
is done by color space transforms. Unfortunately, because color spaces are
different, we have to deal with the problem of how to represent in one color
space colors that are "out of gamut" having been transformed from a different
color space.
The answer to the problem above is "intents". Whenever you are viewing an image
on a device / paper that has a different color space to your working profile it
has a color space transform applied to it. This isn't as straightforward as an
arbitrary 2-way mapping between two sets of coordinates.
Say you're working in Rec2020. Consider the transform to your monitor color
profile. Remember, your monitor (let's assume it is approximately a sRGB
display) cannot display as many colors as are representable in Rec2020. So the
color space has to map all the colors in Rec2020 onto colors in sRGB. How it
does this is determined by the Rendering Intent.
You may want to choose one intent for rendering your image for display but a
different intent for other purposes. The different intents defined by the ICC
and available in Siril are described below.
Совет
Perceptual The perceptual intent scales the input color gamut into the
output color gamut. All colors are changed, but the relationships between
colors are maintained. Generally, color is less saturated in the
output color space, but the saturation compared with other colors is
maintained.
Saturation The saturation intent similarly scales the input color gamut
into the output gamut, but it does so in a way that prioritises saturation.
This is usually more suitable for vibrant graphics than for photography.
Relative Colorimetric The relative colorimetric intent reproduces
in-gamut colors accuately, however it clips colors that are out of gamut to
the closest point on the triangle representing the boundaries of the target
color profile.
Absolute Colorimetric The absolute colorimetric intent is really only
of use in pre-press proofing.
The ICC defines the four intents listed above (as well as some others used
primarily for ink control in press applications) but not all ICC profiles support
all of the intents. Most of the color profiles built into Siril are matrix
shaper profiles. These are very good as working color space profiles but mostly
they only support the Relative Colorimetric intent. That's fine, because mostly
that's the intent we want to use when converting between color spaces. (See below
for an explanation of why.) If you set an intent in preferences that your ICC
profile doesn't support, Siril will fall back to one that is supported - generally
Relative Colorimetric.
For display you generally want to use Relative Colorimetric. This makes the
image display as consistent as possible with what anyone else with a color
managed display will see, or what it will look like when printed to a color
managed print workflow.
You may occasionally want to switch to Perceptual. This will not give you an
accurate representation of color, but it will show the relative differences in
color that get clipped when shown on your display. You can check what parts of
the image are outside your display gamut using the gamut check tool in the
image checking menu - the pixels that are outside the display gamut are shown in
bright magenta. Siril provides a built-in sRGB profile with support for the
Perceptual intent and will automatically use it if Perceptual intent is selected
in the Preferences tab (and if no custom monitor profile is active). If you do
wish to use a custom monitor profile and the Perceptual intent, it is up to you
to ensure your profile supports this.
For converting files and saving them you almost always should use Relative
Colorimetric. This preserves color correctly. Relative Colorimetric does typically
clip colors to the gamut of the color space it is converting to, but you get
a consistent result. In fact, when dealing with 32 bit floating point images
Siril uses an unbounded transform - that is, instead of clipping colors it permits
negative values. They will need clipping at some point - when displayed, for example -
but they can be saved, and applying a color transform in the reverse direction brings
back the original data. Nothing is lost.
For soft proofing you probably want Relative Colorimetric. Absolute Colorimetric
may be of use in simulating exactly what your image will look like on a given
printed medium as it simulates one medium's white point in another (so if you're
proofing what an image will look like on the dingy yellowish-white of newsprint
then Absolute Colorimetric will try to simulate that via your monitor), but for
soft proofing a wider gamut color space against your display profile then you
likely want Relative Colorimetric.
Almost all astrophotographic workflows start off with a linear stage. This
is because our imaging sensors are photon counters, and provide essentially
a linear response to incoming photons. Double the number of incoming photons
during an exposure and the pixel value doubles (neglecting sensor bias, which
will be calibrated out).
Many standard photographic workflows jump straight into color spaces with a
nonlinear "tone response curve", for example the TRC of sRGB is approximately
a gamma function \(f(x) = x ^{1/g}\), where \(g = 2.2\).
However, astrophotography is different. Representing this linear data as
linear values in a linear colorspace is vital for a number of reasons. Most
importantly some functions rely on the data being linear: star detection
matches Gaussian star profiles, and if the data has had a nonlinear TRC
applied then the profiles will no longer be Gaussian, and the star finder
algorithm will give worse results. StarNet has been trained on linear data
with a specific transformation (histogram stretch with automatic parameters)
and again, feeding it data that has already had a gamma function applied will
make the results worse. Deconvolution, noise reduction... Many functions we
apply to our data rely on it still being linear.
If you wish, you may apply a linear profile at this stage. Siril can do this
automatically for you when an image is opened, if you set the auto-assign
preferences and check the Pedantically assign linear profiles button.
For monochrome images the linear Gray profile will be applied. For RGB images
(or when compositing linear monochrome images into a color image), the profile
selected will be the linear profile from the preferred set of color space
profiles you set in Preferences.
For example if you chose the Rec2020 color space, Siril will assign the
Rec2020-V4-g10 ICC profile to your image. "Rec2020" is the name of the gamut;
"V4" indicates that this is a Version 4 ICC profile; and "g10" states that the
profile has a TRC that is a gamma function with \(g = 1.0\) (i.e. a linear
response).
Совет
Assigning a basic working space profile is enough for most users. Color
balance can be addressed later using the color calibration tools. However, if
you have a calibrated camera you may wish to apply an input profile. Camera
calibration and creation of camera profiles is an advanced topic and is outside the
scope of Siril, but you may find the guidance in the articles at Section D
of this page
of use. The simplest way to apply an input profile is using the Color
Management dialog. Select your camera profile from the file chooser and click
Assign. This is actually enough: Siril will happily edit your
image in the camera profile, but you can also select your working profile and
click Convert to convert the data to your preferred color space.
Another approach to calibrating your input is by using Color Conversion
Matrices (CCMs). This is more labor-intensive: as with camera profiles, the
CCMs need to be produced outside Siril, and they can then be applied to your
linear data using PixelMath.
What you have just done is assigned the color space primaries in CIE 1931 XYZ
space, according to the points on the triangle representing the Rec2020 gamut.
Although the data is linear, when you see the image on your screen it has the
display color space transform applied to it, using your chosen rendering intent.
Having said that, it isn't really all that necessary to assign a color profile
at this stage. You will quite likely be using the Autostretch viewer mode when
working with linear data, which doesn't require color management anyway.
Now that's explained, you can happily get on with the rest of your linear
workflow. Calibration, registration, stacking, star removal, noise
reduction... Go at it!
When you're ready to stretch your image, it's time to think about your
color space again. Stretching changes the image from linear data to
non-linear data so that it looks pleasing to the human eye. You're going to
make your data non-linear now, so before stretching is a good time to convert
the image to your chosen nonlinear color space, be it sRGB or Rec2020 or
another color space of your preference. You can either do it yourself manually,
or you can set a preference for Siril either to prompt you to convert the
image color space to your preferred color space, or to do it automatically.
You can now carry on and finish any post-stretch editing of your image.
When the time comes to save your image, you have a choice of formats:
FITS is the native image format for Siril, and ICC profiles can be
embedded in FITS files. This is done in the same way as other
astrophotography software, so images saved with embedded ICC profiles
will be interoperable between Siril and PixInsight (and probably
other software supporting FITS ICC profile embedding).
TIFF and PNG are good formats to choose for high quality image export
and offer wider compatibility with other software than FITS. Both
support ICC profile embedding. Options in the Preferences
dialog allow setting whether 8-bit and higher bit depth TIFF and PNG images
are saved as sRGB, saved in the image's current ICC profile, or saved in the
preferred color space set in preferences.
The de facto standard for highly compressed images for the WWW is
JPEG. Support for ICC profiles in JPEG images varies according to your
JPEG library, but if you are using libjpegturbo version 2.0.0 or higher
then ICC profiles will be embedded. Still, many third party programs
do not support color management at all and they will assume JPEGs
represent a image in the sRGB colorspace with the sRGB standard TRC. This
is the default export color space for JPEGs and you should consider carefully
before saving them with a different color profile.
Siril does also support some other image formats: PNM / PGM, BMP etc.
These formats are grouped together under the category of "do not support
ICC profiles". When exporting to these formats, images will always
be converted to sRGB.
Siril provides a preference setting for the export / conversion intent. In
pretty much every single case you should leave this as "Relative Colorimetric".
Siril contains a basic set of color space profiles. These are taken from
Elle L. Stone's excellent repository of free and well-behaved color profiles. Her
website contains a wealth of technical
information on color space theory and practice, and a great source of
inspiration for applying color processing to images. All the profiles there
are released under the Creative Commons Attribution-Share-Alike Unported license, version 3.0.
The built-in profiles are intended to provide a sufficient set of color
spaces for most purposes: sRGB for web export and as a default display
profile, Rec2020 as a wide gamut profile that looks like it may become the
next standard for high quality wide gamut monitors, and of course a range of
Gray profiles to match the RGB ones.
Note that the native TRC versions of the profiles are provided in two
versions (version 4 and version 2). Version 4 provides better functionality
(especially for high bit depth images) including parametric TRCs which
avoid quantization. However version 4 profiles are not universally supported
yet. So when exporting a file for use in other software it is safest to embed
a V2 profile.
The Gray profile is available with TRCs to match the two built-in RGB color
spaces, and also with a linear TRC.
Sensor data starts off as a linear representation of light, so why don't we
assign a linear color profile to unstretched images such as a newly stacked
stack? Well, technically perhaps we should. Certainly if you wish to do so
you can, and nothing bad will happen. You can do this using the color management
dialog, and there is also a preference (Pedantically Assign Linear ICC Profiles)
that will assign a linearized version of the working ICC profile when a profile
is auto-assigned to a newly loaded image (if it shows no sign of having been
previously stretched), a stacked image or a newly composited image.
However there is generally no benefit in doing so. To understand why, we need to
understand a fundamental difference between astrophotography and normal
photography processing.
In normal photography the whole image is well exposed, with darker shadow
regions and lighter highlights. At the raw stage the image is converted from
linear light to a working profile, but this is reversible and in fact is
frequently reversed as many editing operations (color blending, noise reduction,
etc.) are best done in linear light.
However in astrophotography, all the detail is very deep in the shadows and we
have to apply a very strong stretch indeed in order to produce an image that
looks pleasing. This stretch is much more extreme than the mild change of gamma from 1.0
to 2.2 going from linear light to sRGB, and it is not easily reversible -
especially if multiple stretches are applied. So we do still need to do the same kind
of operations (color correction, noise reduction, deconvolution etc.) on linear
light (and a lot of other things that don't even exist in normal photography should
be done to linear images too: star modelling, star removal etc.)
It isn't necessary to set a linear color profile to do these operations - algorithms
like noise reduction etc. aren't even aware of color profiles. They just apply
themselves to the provided data.
So it is safe to assign the color profile to an image at any stage of editing,
though it usually makes most sense to do it just before stretching. The key thing
to remember is that with astrophotography, all the operations that need to be
done on linear images should be done before any stretching. Generally, stretching
and any final tweaks to color balance, saturation etc. should be just about the
last editing operation that is done to an image. And at that point you should be
editing it in your chosen color space, which will give as consistent as possible
a look to the image when viewed in any color managed application or output device.
This section explains in a bit more detail why Siril offers the built-in
color spaces it does.
sRGB is the de facto standard for the web. As mentioned above, if you want
to guarantee your images look good in all web browsers, as well as all third
party applications that may or may not support color management, you really
need to export in sRGB. It's a good fit for most SDR monitors, and in the
absence of proper color management images that looked right in previous
versions of Siril should be considered to be in sRGB.
However, consider the CIE 1931 color space again. The horseshoe shape forming
the boundary of the color space represents pure spectral tones. If you
have a perfectly monochromatic light source like a laser or one of those
sodium yellow street lights, you're looking at the boundary of CIE 1931.
As astrophotographers these pure monochromatic sources are actually really
important to us, especially if you do narrowband imaging. Those colors can't
be represented accurately in sRGB. The proportion of visible colors that can
be represented in sRGB is actually rather small. We can do better.
So, if a wide gamut is better why is the wide gamut color space built into
Siril Rec2020 rather than an even wider one? AllColorsRGB, ACES 2065 and
ProPhoto RGB are all much bigger - ACES 2065 can represent all parts of the
visible spectrum.
The problem is, the way they do that is by setting their primary colors -
the "100% red", "100% green" and "100% blue" values - outside the visible
range. This is problematic especially for narrowband imagers who want to
assign filters to primary colors: you end up with imaginary colors in your
image and always have to rely on the intent of a color space transform to
do the right thing in turning them into something visible. Also some of
these color spaces are linear, such as ACES 2065. This is good for CGI
artists but not so good for us, because of the slow display transforms
when working with linear spaces. Siril can optimise some transforms from linear
color spaces over and above what lcms2 does, but only if the RGB primaries are
the same, e.g. if transforming linear sRGB to g22 sRGB). So Rec2020 was chosen
as it provides a nonlinear color space with the widest gamut without having
imaginary primaries.
My recommendation, if you aren't already sold on a particular color space,
is to try Rec2020 as a color space for editing, as well as for sending images
to high-quality printing services that can cope with color managed images, and
sRGB for web export. But there are also other good choices available using ICC
profile files that you can use instead, such as Adobe RGB and ProPhoto RGB (ROMM),
if you prefer.
Monitor Profiles
Siril includes the ICC's v4 sRGB monitor profile with support for Perceptual
rendering LUTs and uses this by default. A different monitor profile may be
used in its place, but note that only the intents supported by a given profile
will be available - many widely available sRGB profiles only support the Relative
Colorimetric intent.
Soft Proofing Profiles
There are a wide variety of press standards and papers in the world and
each combination requires its own ICC profile. Siril cannot provide all of
these. Therefore in order to use the soft proofing display mode you will need
to provide the appropriate soft proofing ICC profile in the Preferences
window.
You may wish to work in a color space other than the inbuilt ones, for
example ProPhoto RGB. This is supported, but you will need to provide
ICC profiles yourself. The Preferences window provides controls to set
a RGB profile and a Gray profile with a matching TRC (essentially, with the
same gamma).
If you intend to export files in your chosen color space it is recommended
that the profile you provide is a V2 ICC profile, for maximum compatibility with
other software.
The image shows how to set up a ProPhoto working space using Elle Stone's
profiles. The standard gamma of ProPhoto RGB (ROMM) is 1.8, so as well as the
ProPhotoRGB profile, we add the Elle Stone Gray profile with gamma = 1.8. You
can download all of Elle Stone's profiles here.
If you don't have the ProPhotoRGB profile, you can also use Elle Stone's
"LargeRGB-elle-v2-g18" profile, which is exactly the same except she has
avoided use of the term "ProPhoto RGB" for possible copyright reasons.
Wide gamut display color spaces such as Rec2100 with HLG or PQ TRCs may need
greater than 8 bit pixel buffers to display smoothly. Unfortunately, Siril uses
the Cairo graphics library for display and Cairo cannot yet process pixel buffers
wider than 8 bits. The impact of this is likely negligible for most users.
However, if you are lucky enough to be using a >1000nit HDR display capable of
displaying wide gamut color spaces and are using certain combinations of third
party image and custom monitor profiles then for certain images, you may
experience minor color staircasing artefacts. These are only a display issue and
won't affect the printed appearance of your image, or even its appearance when
transformed to a narrower gamut or viewed on operating systems that do support
high bit depth pixelbuffers.
For the moment there isn't anything we can do, however if Cairo adds high bit
depth support in the future then there may be room for improvement.
Siril supports soft proofing. This provides a visualisation in your monitor's
color space of what your image will look like when printed on a specified
press standard. To use output device soft proofing you must specify a soft proofing
profile in the Settings dialog.
If no output device profile is specified, or if it is made inactive using the
preference check box, soft proofing will use the display profile as the proofing
target. This enables the gamut image check in the Image Checks menu,
which shows the pixels that are outside your display's color gamut. When gamut
checking is active, out-of-gamut pixels will be shown in garish magenta.
Siril does not support exporting in CMYK formats for print / press
purposes. Most photo printing services expect images to be provided in RGB
formats and printer drivers do a much better job of converting RGB to a blend of
the specific inks used by each printer than a simplistic application-level
RGB-to-CMYK conversion. Unless you know exactly why you need to convert an imge to CMYK, you almost certainly don't need to.
However, in order to minimize gamut clipping when your printing service
converts the image to a CMYK profile for printing, it is worth using a wide
gamut RGB profile such as the built-in Rec2020.
Changes caused by introduction of color management
Siril is now doing color management properly.
That means it wasn't really doing it properly in the past. Siril wasn't unusual
in this regard: many programs do not provide color management, but rely on
assumptions that everything is done in an sRGB color space. This is fine most of
the time, but it led to reports of issues when interchanging images between Siril
and properly color-managed graphics applications.
Some users reported that in certain circumstances, images saved by Siril
looked different in other software than it did in Siril. For images exported
from the new color-managed Siril, that should stop. Images will have a
consistent look in all software with a correct color management implementation.
However, if you have stretched images saved as FITS in a previous version
of Siril and you open them in color-managed Siril, they may in some circumstances
look pale and washed out. Don't panic! Here is an explanation of why it happens,
and how it can very easily be avoided / fixed.
When Siril reads a FITS image without an embedded ICC profile, if the "Auto
assign ICC profile" preferences are set it tries to work out whether the image
has been stretched or not. It can only do that by checking the HISTORY entries
in the FITS header. If it can detect stretch functions have been applied, then
it assumes the image has been stretched on a sRGB monitor and applies the
relevant profile. However older versions of Siril didn't always add the history
for every command, and other software may or may not add history but Siril can't
recognise all the stretch keywords that might be used by all other software, so
it may be unable to detect that an image has been stretched. The fallback
assumption we choose to make is that a FITS image without an embedded ICC
profile is linear data.
However, your stretched FITS isn't really linear data. It has been stretched,
and you have in effect been stretching it so that it looks right in your
monitor's color space, which is probably approximately sRGB.
When this has a linear ICC profile assigned to it, the display routines then
apply a color space transform from linear space to the display profile, in
effect stretching it a second time.
This problem will only occur if you have the option "Auto assign preferred color
space on load" enabled. If this option is disabled, Siril will not assign any
color profile when the file is loaded. You can then assign one manually using
the Color Management dialog.
If you loaded an image with the Auto assign option enabled and the wrong profile
is assigned (or if the wrong profile is assigned for any other reason, for
example if you loaded a fle saved by other software that has assigned a wrong
profile) fixing the problem is also very easy. All you need to do is open the
image, go to the Color Management dialog and select "sRGB (standard sRGB TRC)"
from the drop down selection (or "Gray (sRGB TRC)" if the image is mono). Click
the Assign button (notConvert to) and Siril will assign the
selected color profile to your image.
That's it. The display will now look correct and when you save the image, and
the appropriate color profile will be embedded.
Последовательности это то, что Siril использует для представления набора обрабатываемых файлов, например, набора темновых изображений, которые мы превратим в темновой мастер-кадр. Это очень полезный инструмент для обработки большого количества файлов, которые необходимо связать друг с другом.
Для изображений FITS Siril нативно использует 32-битные значения с плавающей запятой или 16-битные целочисленные значения без знака; остальные форматы преобразуются автоматически. Для определения набора изображений FITS в качестве последовательности, названия файлов должны следовать определённому шаблону:
basename$i.[ext]
basename может быть чем угодно, использующим символы ascii. Удобно, но необязательно, если название оканчивается символом _. Оно будет использовано как название последовательности.
$i это порядковый номер изображения. Он должен быть положительным целым числом и может иметь несколько ведущих нулей.
[ext] это одно из поддерживаемых расширений, описанных в настройках. По умолчанию — fit.
Примечание
Расширение, используемое для определения последовательностей FITS в текущей рабочей директории, будет таким же, как расширение, указанное в настройках и как файлы, созданные Siril.
Предупреждение
Некоторые операционные системы ограничивают количество одновременно открытых файлов, которые требуются для укладки по медиане или по средней. Для Windows ограничение составляет 2048 файлов. Если у вас много изображений, то необходимо использовать другой тип последовательности, описанный ниже.
Формат SER предназначен для хранения в одном файле последовательности из нескольких смежных изображений. Это довольно простой формат, который не содержит такого же количества метаданных, как FITS, но больше, чем обычные ролики. При этом, сжатия данных не происходит. Файлы SER могут содержать изображения с только 8-ю или 16-ю битами на канал. Существует три типа файлов SER, в зависимости от содержимого пикселей: монохромные, CFA или цветные (3 канала).
Примечание
Файл SER можно открыть через Файл и Открыть или используя кнопку Найти последовательности.
По ссылке доступна дополнительная информация о формате SER и почему форматы роликов, подобные несжатому AVI, не должны использоваться в астрономии.
Предупреждение
Обычные ролики, например AVI или любые другие контейнеры, также в некоторой степени поддерживаются. Поддержка роликов прекращается в пользу SER, но она всё ещё может быть полезна для открытия роликов в Siril для просмотра его содержимого, извлечения отдельных кадров или их конвертации. Ряд операций всё ещё можно выполнить, например укладка по сумме, но медленнее, чем с другими последовательностями. При полной обработке вы столкнётесь с ограничениями и несовместимостью.
Также называется кубы FITS, последовательности FITS, или, сокращённо, FITSEQ в Siril.
Формат FITS — это контейнер изображений и научных данных, он может содержать несколько из них в одном файле. Мы можем использовать его для хранения всей последовательности изображений FITS в одном файле, сохраняя заголовок FITS каждого изображения. Этот формат файла используют профессиональные астрономы.
Проще управлять одним файлом на диске, чем 2000, но поскольку это одиночный файл, некоторые операции с отдельными изображениями последовательности могут оказаться невозможными. В частности, в настоящее время Siril не поддерживает изменение заголовка отдельного изображения.
Данный формат является альтернативой для однофайловой последовательности SER, с 32 битами на канал и полной поддержкой заголовков.
Когда рабочая директория корректно установлена, FITS следует правильной номенклатуре, и расширение файлов FITS также правильно установлено, нажмите кнопку Найти последовательности на вкладке Последовательность. Откроется выпадающий список со всеми последовательностями, доступными в директории. Если найдена только одна, то она будет автоматически выбрана и загружена.
Существенным преимуществом Siril являет то, что программа легко манипулирует последовательностями изображений. Когда открыта последовательность, отображается опорное изображение (см. ниже). По умолчанию это первое изображение в последовательности. Однако иногда бывает полезно просмотреть отдельные изображения в последовательности. Это можно сделать с помощью диалога выбора кадров (frame selector), доступного в панели инструментов через кнопку или на вкладке Последовательность через кнопку Открыть список кадров.
Список кадров, в котором можно выбрать кадр, отобразить его, установить его как опорное изображение или исключить.
Совет
Hovering over an image in the frame selector displays the original file
name, if saved.
Нажатие на изображении в списке приведёт к его загрузке и отображении в области изображения, при этом сохраняя последовательность как активный объект для обработки. Селектор кадров это более, чем просто инструмент для отображения изображений, он также может использоваться для исключения изображений из последовательности вручную или визуализации тех изображений, которые всё ещё включены. Кроме того, с помощью этого инструмента можно отобразить значения качества изображения и сдвиг между изображениями, если они были вычислены, а также для изменения опорного изображения. Обратите внимание, что более подробную информацию о качестве изображения можно просмотреть на вкладке График.
Исключение изображения из последовательности не подразумевает, что его данные будут удалены безвозвратно. Изображение не будет использовано в последующей обработке, если будет дано соответствующее указание. В большинстве случаев необходимо искать опцию Обработать только включённые изображения.
Опорное изображение это изображение в последовательности, которое будет служить в качестве цели при регистрации и нормализации. Остальные изображения будут преобразованы, чтобы выглядеть как опорное, поэтому его надо выбирать тщательно. К счастью, начиная с версии Siril 1.2 новый алгоритм регистрации за 2 шага перед переходом к преобразованию изображений может автоматически выбрать лучшее изображение в последовательности в качестве опорного.
В панели заголовка окна расположены следующие элементы для управления свойствами последовательности:
Через выпадающее меню можно изменить канал, для которого отображаются данные регистрации (качество, сдвиг), если таковые имеются.
Первая кнопка на панели инструментов устанавливает все изображения в последовательности как исключённые из плана обработки.
Вторая — устанавливает их как включённые в план обработки.
Третья кнопка включает или исключает выбранные изображения из списка (множественное выделение возможно с использованием Ctrl или Shift) последовательности.
The last button can be deactivated to hide the framing indicator over
registered images.
The red frame shows the trace of the reference frame over each image of the
sequence. The filled circle in one corner indicates the position of the top-left corner
of the reference image. For instance, for the right image above, the framing
indicator circle is at the bottom right, showing that there has been a meridian
flip between this image and the reference shown on the left.
The red circle/green cross close to the center show the position of the center
of the reference image and of the current image respectively. This enables to visualize
the shift between the two images.
Примечание
Since Siril 1.3.1, the color of the framing indicator is different whether the
registration information is just pure shift (in blue) or more
complex transformations
(in red for linear transformations, in green when distortions are included).
For previous versions, it was always red, irrespective of the transformation.
Флажок Опорное изображение используется для установки опорного изображения последовательности. Все последовательности должны иметь такое изображение. По умолчанию или если не установлено, в качестве такового используется первое изображение в последовательности.
В заключение, поле поиска позволяет найти изображения по их названиям.
Имеется возможность сортировки изображений нажатием на заголовок колонки. Таким образом вы можете отсортировать изображения по их номеру или FWHM. Последние весьма полезно, чтобы взглянуть на лучшие и худшие изображения.
Устанавливает опорное изображения для последовательности, указанной в первом аргументе. image_number это порядковый номер изображения в последовательности (начинающийся с 1), а не номер в названии файла
Командная строка Siril
select sequencename from to
Эта команда позволяет выполнить массовый выбор изображений в последовательности sequencename (начиная с from и заканчивая to включительно). Это выделение для дальнейшей обработки.
Укажите название и исходящий формат для экспорта последовательности.
Инструмент Экспортировать позволяет вам экспортировать последовательность в несколько форматов. Это особенно полезно, если вы хотите экспортировать изображения с учетом информации о регистрации, содержащейся в файле seq, с дополнительной обрезкой и нормализацией.
С помощью функции экспорта последовательности вы можете выбрать последовательность для экспорта, формат файла и уровень сжатия для видеоформатов. Функция экспорта последовательности Siril поддерживает широкий выбор форматов изображений, включая FITS (отдельный файл FITS или последовательность файлов FITS), TIFF, SER, AVI, MP4 и WEBM. Эта функция может пригодиться при создании роликов с помощью интервальной съёмки (timelapse).
Флажок Нормализовать изображения позволяет нормализовать изображения по отношению к опорному. Используется нормализация, аналогичная выполняемой во время укладки, со следующими установками: Аддитивная с масштабированием, и отключённой Быстрой нормализацией.
Более того, есть возможность использовать критерии фильтрации изображений, чтобы исключить или оставить изображения на основе их качества. Кнопка Перейти на вкладку «Укладка» добавлена здесь, чтобы легко перейти на вкладку, предоставляющую эти критерии.
Вся информация о последовательности, преобразования регистрации, статистика и выбор кадров хранится в файле .seq, сохраняемом вместе с файлами последовательности. Настоятельно не рекомендуется редактировать этот файл вручную, поскольку Siril непрерывно записывает данные в него и один неверный символ может привести к искажению чтения последовательности.
Один из способов очистить содержимое этого файла — перейти на вкладку Последовательность и нажать на кнопку Очистить последовательность. Для выбора того, что будет очищено, необходимо нажать на маленькую стрелку рядом с ней.
Эта команда очищает выделение, данные регистрации и/или статистику, сохранённые для последовательности sequencename.
Вы можете очистить только данные выделения, регистрации и/или статистику, используя опции -sel, -reg или -stat, соответственно. Если никакой опции не передано, очищаются все данные
Астрофотография это процесс получения изображений небесных объектов. Он состоит из нескольких различных, но взаимосвязанных, этапов, включая предобработку и обработку.
Предобработка это первый шаг в работе с «сырыми» астрофотографическими данными, включающий в себя подготовку этих данных для последующей обработки. Обычно в этот шаг входят вычитание темного тока, коррекция плоского поля и других основных проблем, таких, как удаление горячих и холодных пикселей.
Обработка подразумевает постобработку предварительно обработанных данных, обычно после укладки. Именно здесь астрофотограф применяет различные методики улучшения конечного изображения и выявления деталей и подробностей. Эти методики могут включать повышение резкости (реконструкцию), калибровку цвета, подавление шума и растягивание гистограммы изображения для улучшения видимости слабых деталей.
Коротко, в ходе предобработки подготавливается почва для обработки, гарантируя, что данные находятся в подходящей форме и очищены от нежелательного сигнала, в то время как обработка заключается в улучшении сигнала для создания конечного изображения. Оба этапа важны в процессе астрофотографии, и качество результата зависит от навыков и техник, применяемых на обоих этапах.
В Siril основная предобработка выполняется в соответствии с порядком расположения вкладок на правой панели и требует использования мастер-файлов. Этот процесс довольно легко автоматизируется и Siril предоставляет сценарии для выполнения этой задачи. Обработка изображения выполняется через соответствующее меню Обработка. Этот процесс автоматизируется сложнее из-за его специфичности для каждого изображения и того, что он состоит из итеративной работы.
В этом разделе вы познакомитесь с различными этапами предварительной обработки изображений, от импорта в Siril до получения уложенного изображения.
На правой панели расположены вкладки, полезные в ходе предобработки. Они расположены таким образом, чтобы использовать их слева направо на протяжении всего процесса, за исключением создания мастер-файлов. Эти вкладки доступны с помощью клавиш F1 – F7.
Предобработка — это этап, начинающийся с конвертации и заканчивающийся укладкой изображений. Его цель — удаление нежелательного сигнала и уменьшение шума, присутствующего на всех субэкспозициях.
На Рис. 1 представлен результат конвертации "сырого" изображения с цифровой камеры. Отметьте наличие пыли, похожую на тёмные пятна. На Рис. 2 представлено изображение после калибровки темновым мастер-кадром (master dark), мастер-кадрами шума считывания (master bias) и плоского поля (master flat), демонстрирующее полное удаление этих пятен и более чистый сигнал. Рис. 3 — это же изображение после дебайеризации, демонстрирующее цвет и имеющее сильный зелёный оттенок из-за более высокой чувствительности зелёных фотоэлементов в сенсорах. В заключение, Рис.4 это результат укладки с балансировкой каналов.
Siril в своей работе использует 32-битные файлы FITS, а так же в формате SER. Следовательно, файлы в любых других форматах сначала необходимо конвертировать в эти форматы, чтобы с ними мог работать Siril и мог создать последовательность. Типы поддерживаемых файлов указаны на вкладке и это зависит от того, каким образом Siril был скомпилирован.
Siril предоставляет вкладку «Конвертация», разделённую на две панели. Верхняя панель позволяет загрузить исходные файлы, которые вы хотите конвертировать.
Управление этими файлами осуществляется через небольшую панель инструментов .
Первая кнопка, +, позволяет загрузить все исходные файлы. После нажатия на эту кнопку открывается диалоговое окно, позволяющее выбрать все файлы, которые необходимо конвертировать. При этом отображаются только файлы, поддерживаемые Siril.
Совет
Доступна возможность перетаскивать файлы (drag and drop) непосредственно в область исходных файлов. Она подсвечивается, когда файлы располагаются над ней.
Вторая кнопка, -, позволяет удалять выделенные файлы. Одновременно могут быть удалены несколько файлов. Они удаляются не с жёсткого диска, а лишь из области конвертации.
Последняя кнопка позволяет удалить все загруженные файлы.
Количество загруженных и выделенных файлов отображается в строке статуса справа от панели инструментов.
В разделе назначение можно указать название последовательности, которая будет создана после конвертации файлов.
Таким образом, для последовательности basename, названия файлов после конвертации будут иметь вид
basenameXXXXX.[ext]
Расширение итоговых файлов определяется в настройках. Индекс XXXXX по умолчанию начинается с 00001 для первого изображения. Тем не менее можно указать другое число, с которого начинать нумерацию файлов. Это может быть полезно в случае нескольких съёмочных сессий, которые имеют одинаковые мастер-файлы. Через выпадающее меню можно выбрать следующие варианты конвертации файлов:
Изображения FITS
Последовательность SER
Последовательность FITS
Подробности об этих форматах файлов доступны в разделе последовательности данной документации.
Технически, если входящие файлы сохранены в формате FITS, то нет необходимости их конвертировать. Однако может потребоваться сделать это, чтобы переименовать файлы для создания последовательности и её дальнейшей обработки в Siril. Чтобы не заполнять жёсткий диск без необходимости, имеется возможность установить флажок Символ. ссылка. В этом случае вместо копирования файлов FITS, будут созданы символические ссылки на эти файлы. Эта опция, таким образом, доступна только когда исходящие файлы являются изображениями FITS.
Примечание
Включение символических ссылок отключает сжатие.
Предупреждение
Для Microsoft Windows, использование символических ссылок требует включения режима разработчика.
Предупреждение
Если при работе в GNU/Linux вы видите ошибку Symbolic link Error: Function not implemented, это может означать, что вы пытаетесь создать символическую ссылку в директории на файловой системе, где символические ссылки не допускаются.
Когда исходящим форматом выбран SER или последовательность FITS, доступна опция Множественные последовательности. Установите этот флажок, чтобы создать несколько файлов последовательности вместо одиночного файла SER или FITS для всех входящих элементов. Используйте это, если входящие элементы (файлы последовательности, такие как ролики, SER или кубы FITS) имеют разный размер изображения или не должны обрабатываться вместе.
Последняя опция, Дебайеризация, позволяет пользователю выполнить дебайеризацию изображений в ходе конвертации. Она не должна использоваться если обрабатываются изображения шума считывания (bias), темновые изображения (dark) или изображения плоского поля (flat), а также отдельные субэкспозиции (light images), предназначенные для предобработки. Действительно, принимая во внимание шаблон Байера, полученное из «сырого» (RAW) изображения RGB-изображение является интерполированным изображением. Как следствие, предобработка интерполированных данных даст неверные результаты. В результате конвертации «сырых» файлов, полученных с помощью цветного (OSC) сенсора, будут монохромные CFA (массив цветных светофильтров) изображения FITS. В отличие от RGB-изображений, CFA-изображения представляют все данные сенсора с шаблоном Байера. Ниже приведён фрагмент CFA-изображения, на котором виден шаблон Байера (в данном случае — RGGB).
Шаблон Байера, показанный на изображении CFA (Color Filter Array).
В заключение, кнопка Конвертировать, как понятно из её названия, позволяет начать конвертацию файлов.
Примечание
«Сырые» изображения с цифровых зеркальных камер зависят от производителя и, как привило, это закрытые форматы. Поэтому декодирование таких файлов — сложная задача, которая должна выполняться с использованием специального кода. Для Siril задачу конвертации «сырых» изображений выполняет LibRaw. Фактически, если формат файлов, обычно новый, не читается, необходимо посмотреть на сайте LibRaw, поддерживается ли этот формат. Если это не так, предоставление необработанного файла команде разработчиков может помочь добавить его поддержку. Однако также возможно, что версия LibRaw, встроенная в пакет Siril, не является самой последней. В этом случае вам необходимо либо дождаться нового выпуска, либо скомпилировать исходный код напрямую.
После конвертации файлов каждый раз создаётся дополнительный файл, чьё название заканчивается на _conversion.txt. В этом файле содержится информация о соответствии между входящими изображениями и изображениями последовательности, полученной в ходе конвертации.
Конвертирует все изображения, находящиеся в текущей рабочей директории, из форматов, поддерживаемых Siril, в последовательность изображений FITS (несколько файлов), либо в последовательности FITS или SER (одиночный файл), если переданы аргументы -fitseq или -ser, соответственно. Аргумент basename указывает базовое название новой последовательность, за которым будут добавлены порядковый номер и расширение.
Для изображений FITS Siril будет пытаться создать символическую ссылку; если это невозможно, то файлы будут скопированы. Опция -debayer применяет дебайеризацию к входящим изображениям CFA. В этом случае символические ссылки не создаются.
Опция -start=index устанавливает порядковый номер, с которого начинается нумерация. Это удобно для продолжения существующей последовательности (не используется с -fitseq or -ser. В этом случае убедитесь, что вы очистили или удалили целевой файл .seq, если он существует).
Опция -out= изменяет целевую директорию на указанную в аргументе.
После того как последовательность загружена, изображения могут быть откалиброваны, зарегистрированы и уложены. Калибровка это необязательный, но важный, шаг, для которого необходимы кадры шума считывания, темновые кадры и кадры плоского поля. В Siril калибровка последовательности выполняется только с помощью мастер-кадров шума считывания, темнового и плоского поля, которые необходимо сначала создать из соответствующих последовательностей.
Уровень шума считывания ПЗС-матрицы это искусственное привнесённое электронное смещение, гарантирующее, что аналого-цифровой преобразователь (АЦП) всегда получает положительный сигнал. Все данные с ПЗС-матриц имеют подобное смещение, которое необходимо удалить, если данные должны представлять истинные значения, записанные каждым пикселем.
Чтобы использовать мастер-кадр шума считывания в Siril, нажмите на кнопку справа от текстового поля ввода и в открывшемся диалоге нужный мастер-кадр. Более того, вы можете использовать мастер-кадр из библиотеки, указанный в настройках.
Совет
Кадры шума считывания должны сниматься с закрытым затвором и наиболее короткой из возможных выдержкой. В основном это соответствует выдержке в 1/4000 с для современных цифровых зеркальных фотокамер.
Пример кадра шума считывания, полученный с помощью Canon EOS 1100D. Не полагайтесь на слабо заметный сигнал смещения — изображение было автоматически растянуто, а различия в амплитуде сигналов сильно преувеличены.
Синтетический кадр шума считывания
Поскольку сигнал смещения на современных сенсорах очень однороден, мы рекомендуем обрабатывать его как изображение с одним уровнем. Преимуществом такого подхода является экономия места на жёстком диске и минимизация шума на окончательном изображении. В Siril есть функция, позволяющая легко это сделать.
В ходе предобработки кадров плоского поля вместо указания мастер-кадра шума считывания, вы можете написать выражение в селекторе директорий, подобное этому:
=2048
либо, если заголовок FITS содержит ключевое слово OFFSET,
=64*$OFFSET
Символы = и $ — обязательны. Уровень должен быть указан в единицах ADU (не значения с плавающей запятой, даже если работа ведётся в 32-х битах).
В переводе на язык сценариев это выглядит так:
preprocess flat -bias="=64*$OFFSET"
Значение 2048 взято в качестве примера для камер, чей мастер-кадр шума считывания имел бы медианное значение 2048. Обычно для цифровых зеркальных камер это значение пропорционально корню из 2. В нашем примере: \(2048 = 2^{11}\).
Темновые кадры содержат тепловой шум, связанный с сенсором, который пропорционален температуре и длительности выдержки. Следовательно, эти кадры должны иметь близкую к отдельным субэкспозициям (light frames) температуру. По этой причине темновые кадры делаются в конце или середине съёмочной сессии.
Чтобы использовать темновой мастер-кадр в Siril, нажмите на кнопку справа от текстового поля ввода и в открывшемся диалоге нужный мастер-кадр. Более того, вы можете использовать мастер-кадр из библиотеки, указанный в настройках.
Совет
Темновые кадры должны сниматься с теми же выдержкой и значениями ISO/усиления (gain), что и полученные раннее отдельные субэкспозиции, но затвор при этом должен быть закрыт.
Пример темнового кадра, полученный с помощью Canon EOS 1100D. Выдержка 300 с, ISO 800.
Анимация, демонстрирующая удаление теплового сигнала благодаря вычитанию темнового кадра.
Оптимизация темновых кадров
Опция оптимизации темновых кадров полезна, если темновые изображения не были сняты в оптимальных условиях. Siril предлагает два метода с разными подходами, доступные из выпадающего списка.
С помощью опции Авт. оценка вычитание темного кадра можно оптимизировать таким образом, чтобы минимизировать шум на итоговом изображении (отдельная субэкспозиция минус темновой кадр) применив коэффициент к темновому кадру.
Второй способ, Экспозиция, основан на длительности экспозиции изображений, если она была указана в ключевых словах FITS.
Вот пример ситуации, когда необходимо использование этой опции. Изображения были получены с помощью камеры FLI ProLine 4240. Использованный темновой мастер-кадр с выдержкой 600 с взят из библиотеки. Каждая субэскпозиция, с другой стороны, получена с выдержкой 60 с. Темновой мастер-кадр имеет характерную и довольно неприглядную сигнатуру сигнала: наличие в камере четырёх предусилитей послужило причиной такого сигнала. Этот дефект так же присутствует и на изображении галактики и калибровка темновым кадром должна быть тщательно выполнена, чтобы получить изображение без каких-либо дефектов.
Отдельная субэкспозиция и темновой мастер-кадр, полученные на камере FLI ProLine 4240. Вы можете видеть четыре хорошо выраженные полосы, вызванные предусилителями, как на отдельной субэскпозиции, так и на мастер-кадре. Чтобы подчеркнуть имеющиеся дефекты, изображения представлены в режиме выравнивания гистограммы.
Однако в этом случае если мы используем традиционный подход, результат калибровки будет неудовлетворительным. Это связано с тем, что темновой мастер-кадр снят с другой экспозицией.
При использовании обычного подхода, калибровка будет неудовлетворительной и дефекты не будут исправлены. Чтобы подчеркнуть имеющиеся дефекты, изображение представлено в режиме выравнивания гистограммы.
В этом случае решение состоит в том, чтобы вычесть шум считывания из темновых кадров, затем интегрировать эти изображения и установить флажок Оптимизация темновых кадров. Siril автоматически вычислит коэффициент, который необходимо применить к темновому кадру. В данном случае коэффициент 0.110 достаточно согласованный, поскольку он соответствует 10-кратной разнице между темновыми кадрами и изображениями (\(60 / 600 = 0.1\)).
В данном случае вкладка "Калиборовка" должна быть заполнена таким образом. Мастер-кадр плоского поля и темновой мастер-кадр были откалиброваны кадром шума считывания.
10:34:58: Preprocessing...
10:34:58: Normalisation value auto evaluated: 0.313
10:34:58: 13230 corrected pixels (0 + 13230)
10:34:59: Dark optimization of image 0: k0=0.110
10:34:59: Saving FITS: file pp_M51SDSSr_00002.fit, 1 layer(s), 2048x2048 pixels, 32 bits
Благодаря оптимизации темновых кадров, калибровка прошла корректно. Единственным видимым остатком является градиент (CCD fringing) в ближнем ИК-диапазоне, который не удаляется калибровкой. Чтобы подчеркнуть имеющиеся дефекты, изображение представлено в режиме выравнивания гистограммы.
Телескопы обычно освещают приёмник неравномерно. В дополнение пыль на оптических поверхностях и на сенсоре приводит к формированию более тёмных пятен на изображении. Кроме того, сам сенсор по-разному реагирует на количество фотонов, попадающих на разные области сенсора. Чтобы исправить эти эффекты, каждую отдельную субэскопозицию необходимо разделить на мастер-кадр плоского поля, представляющий собой медианное значение непереэскпонированных отдельных изображений равномерно освещённой области.
Чтобы использовать мастер-кадр плоского поля в Siril, нажмите на кнопку справа от текстового поля ввода и в открывшемся диалоге нужный мастер-кадр. Более того, вы можете использовать мастер-кадр из библиотеки, указанный в настройках.
Пример изображения плоского поля, полученный с помощью Canon EOS 1100D. Хорошо видна пыль, присутствующая в оптическом тракте и, особенно, на сенсоре. Хорошо видно и виньетирование (затенение краёв изображения). Эти эффекты усилены применением режима просмотра. Также на этом изображении, чтобы избавиться от шаблона Байера, использована команда grey_flat.
Выравнивание CFA
Опция Выровнять CFA выравнивает среднюю интенсивность слоёв RGB на изображении CFA. Это эквивалентно применению команды grey_flat.
Командная строка Siril
grey_flat
Выравнивает среднюю интенсивность слоёв RGB в загруженном изображении CFA. Этот же процесс применяется к кадрам плоского поля во время калибровки, когда используется опция «Выровнять CFA»
Автоматическая оценка значения нормализации
Если установлен флажок Автоматически оценить значение нормализации, Siril автоматически оценит значение нормализации. Это среднее значение мастер-кадра плоского поля, откалиброванного мастер-кадром шума считывания. В противном случае будет использовано значение, указанное в текстовом поле ввода.
Калибровка отдельных субэкспозиций состоит в применении к ним мастер-кадров шума считывания, темнового мастер-кадра и мастер-кадра плоского поля, чтобы удалить нежелательный сигнал.
Предупреждение
Калибровка ни в коем случае не уменьшает шум изображений. Напротив, она усиливает его. Вот почему важно получить как можно больше калибровочных изображений, например, темновых, чтобы свести к минимуму количество шума на изображениях.
Исправление артефактов автофокуса X-Trans
Опция Исправление артефактов автофокуса X-Trans позволяет исправить пиксели системы автофокусироваки Fujifilm X-Trans. Из-за особенностей фазовой системы автофокусировки, области, используемые для автофокусировки получают немного меньше света, чем соседние участки. Камера компенсирует это и увеличивает значения в областях для автофокусировки, что приводит к отчётливому квадрату в центре темновых кадров и кадров шума считывания. Эта опция не влияет на шаблон Байера. Она должна использоваться только в том случает, если загружен и используется мастер-кадр шума считывания или темновой мастер-кадр.
Косметическая коррекция это методика коррекции дефектных пикселей на изображениях. Действительно, у сенсора любой камеры есть отдельные датчика, некорректно реагирующие на фотоны. На изображении это видно как пиксели, чьи значения очень сильно отличаются от таковых их ближайших соседей. Такие пиксели называются горячими если их значения существенно выше или холодными, если их значения существенно ниже. Siril предлагает два алгоритма коррекции таких дефектных пикселей, если установлен флажок Включить косметическую коррекцию.
Использовать темновой мастер-кадр
Это метод требует наличия темнового мастер-кадра. Siril будет искать пиксели, отклонение которых от медианы превышает стандартное отклонение \(\sigma\) в x раз. Это значение можно настроить как для горячих, так и для холодных пикселей.
Возможно оценить число пикселей, которые будут исправлены на откалиброванном изображении нажав кнопку Оценка. Если количество пикселей, которые будут исправлены, отображается красным цветом, это значит что их число превысило 1% от общего количества пикселей на изображении. В этом случае необходимо увеличить значение коэффициента или снять соответствующий флажок. Если изображения получены на цветной сенсор, то необходимо установить флажок Данные CFA.
Использовать карту дефектных пикселей
Другой метод использует файл, содержащий координаты дефектных пикселей. Это простой текстовый файл, который изначально может быть создан командой find_hot.Последняя строка была добавлена вручную и исправляет дефектный столбец в положении \(x = 1527\).
P 325 2855 H
P 825 2855 C
P 838 2855 H
P 2110 2855 H
P 2702 2855 H
P 424 2854 H
C 1527 0 H
Командная строка Siril
find_hot filename cold_sigma hot_sigma
Сохраняет в рабочей директории файл filename (текстовый формат), содержащий координаты пикселей, с интенсивностью в hot_sigma раз выше и cold_sigma ниже стандартного отклонения, извлечённые из загруженного изображения. Обычно мы используем эту команду для темнового мастер-кадра. Команда COSME может применить этот список дефектных пикселей к загруженному изображению. См. также SEQCOSME для применения его к последовательности
Строки вида Pxyтип исправляют пиксель с координатами x, y. Тип это произвольный символ (C или H), указывающий Siril холодный данный пиксель или горячий. Эта строка создаётся командой FIND_HOT, но вы так же можете добавить строки вручную:
Строки Cx0тип исправляют дефектный столбец с координатами x.
Строки Ly0тип исправляют дефектную строку с координатами y.
Этот файл, который можно редактировать вручную, должен быть загружен как карта дефектных пикселей.
В заключение, если изображения получены на цветной сенсор, то необходимо установить флажок Данные CFA.
В данном разделе сгруппированы настройки, которые применимы к результату калибровки.
Текстовое поле Префикс вывода позволяет указать префикс, который будет добавлен к итоговым изображениям, чтобы их было легче идентифицировать. По умолчанию это pp_, означающий предобработанные изображения.
Выпадающий список определяет тип итоговой последовательности.
Изображения FITS: каждой изображение в отдельном файле FITS.
Последовательность SER: один файл SER для всей последовательности (ограничение — 16 бит на канал).
Последовательность FITS: вся последовательность сохраняется в один файл FITS.
Последняя опция, Дебайеризация перед сохранением. Установите этот флажок, если хотите применить дебайеризовать ваши изображения сразу после того, как они были откалиброваны. Благодаря этому вы можете избежать дополнительного шага, который может занять некоторое время.
Калибрует последовательность sequencename, используя кадры шума считывания, темновые кадры и кадры плоского поля, указанные в аргументе.
Вместо изображения, можно указать однородный уровень шума считывания, введя в кавычках выражение, начинающееся со знака =. Например, -bias="=256" или -bias="=64*$OFFSET".
Косметическая коррекция по умолчанию отключена. Если вы хотите применить коррекцию, это необходимо указать с помощью опции -cc=.
Вы можете использовать -cc=dark для определения горячих и холодных пикселей по темновому мастер-кадру, который должен быть указан с помощью опции -dark=. Опционально можно указать значения холодных и горячих пикселей с помощью siglo и sighi, соответственно. Значение 0 отключает коррекцию. Если значения σ не указаны, то будет применено только определение горячих пикселей со значением σ равным 3.
В качестве альтернативы, для указания пикселей, которые необходимо скорректировать, можно использовать опцию -cc=bpm за которой следует путь к вашей карте дефектных пикселей. Пример файла может быть получен с помощью команды find_hot, применённой к темновому мастер-кадру.
К цветным изображениям в формате CFA применимы три опции: -cfa для целей косметической коррекции, -debayer для дебайеризации изображений перед их сохранением и -equalize_cfa для выравнивания средней интенсивности слоёв RGB в мастер-кадре плоского поля, чтобы избежать тонирования откалиброванного изображения.
Опция -fix_xtrans используется при работе с файлами X-Trans, применяя коррекцию к темновым кадрам и кадрам шума считывания для удаления квадратного рисунка в зоне автофокуса.
Так же можно оптимизировать вычитание темнового кадра с помощью -opt, которая требует указания мастер-кадра шума считывания и темнового мастер-кадра, и автоматически вычисляет коэффициент, применяемый к темновому кадру, либо вычисляет этот коэффициент благодаря ключевому слову exposure, переданному с помощью -opt=exp.
По умолчанию, кадры, отмеченные как исключённые, не обрабатываются. С помощью аргумента -all можно принудительно обработать все кадры, даже отмеченные как исключённые.
Название итоговой последовательности будет начинаться с префикса "pp_", если не указан иной с помощью опции -prefix=.
Если передана опция -fitseq, итоговая последовательность будет последовательностью FITS (одиночный файл)
Калибрует изображение imagename, используя кадры шума считывания, темновые кадры и кадры плоского поля, указанные в аргументе.
Вместо изображения, можно указать однородный уровень шума считывания, введя в кавычках выражение, начинающееся со знака =. Например, -bias="=256" или -bias="=64*$OFFSET".
Косметическая коррекция по умолчанию отключена. Если вы хотите применить коррекцию, это необходимо указать с помощью опции -cc=.
Вы можете использовать -cc=dark для определения горячих и холодных пикселей по темновому мастер-кадру, который должен быть указан с помощью опции -dark=. Опционально можно указать значения холодных и горячих пикселей с помощью siglo и sighi, соответственно. Значение 0 отключает коррекцию. Если значения σ не указаны, то будет применено только определение горячих пикселей со значением σ равным 3.
В качестве альтернативы, для указания пикселей, которые необходимо скорректировать, можно использовать опцию -cc=bpm за которой следует путь к вашей карте дефектных пикселей. Пример файла может быть получен с помощью команды find_hot, применённой к темновому мастер-кадру.
К цветным изображениям в формате CFA применимы три опции: -cfa для целей косметической коррекции, -debayer для дебайеризации изображений перед их сохранением и -equalize_cfa для выравнивания средней интенсивности слоёв RGB в мастер-кадре плоского поля, чтобы избежать тонирования откалиброванного изображения.
Опция -fix_xtrans используется при работе с файлами X-Trans, применяя коррекцию к темновым кадрам и кадрам шума считывания для удаления квадратного рисунка в зоне автофокуса.
Так же можно оптимизировать вычитание темнового кадра с помощью -opt, которая требует указания мастер-кадра шума считывания и темнового мастер-кадра, и автоматически вычисляет коэффициент, применяемый к темновому кадру, либо вычисляет этот коэффициент благодаря ключевому слову exposure, переданному с помощью -opt=exp
Название итоговой последовательности будет начинаться с префикса "pp_", если не указан иной с помощью опции -prefix=
Данный раздел преследует своей целью дать немного больше информации о том, каким образом различные уровни играют роль в коррекции субэкспозиций кадрами плоского поля.
Сейчас мы проигнорируем любые соображения о шуме (ещё раз, шум не исчезает при вычитании мастер-кадров или делении на них, он уменьшается путём усреднения многих повторений одного и того же случайного процесса). Мы также проигнорируем конкретные пространственные паттерны, такие как засветка от усилителя (ampglow) или пыль.
Если мы попытаемся количественно оценить интенсивность пикселей фона на различных имеющихся у нас кадрах, мы можем записать следующие выражения:
\begin{align}
L &= a - b \times \left(x-\frac{W}{2}\right)^2 + d_\text{rate} \times t_{\text{lights}} +o \\
D &= d_\text{rate} \times t_{\text{lights}} + o \\
F &= K\left(a - b \times \left(x-\frac{W}{2}\right)^2\right) + o \\
O &= o
\end{align}
где, \(L\) это отдельные субэкспозиции, \(D\) темновые кадры, \(F\) кадры плоского поля и \(O\) кадры шума считывания.
Для субэкспозиций \(L\) первая часть это пространственный компонент освещённости, т.е.\(a - b(x-\frac{W}{2})^2\). Здесь нами выбрана квадратичная вариация с максимальным значением \(a\) в центре кадра шириной \(W\), даже примерно в центре сенсора. Это не точная пространственная форма виньетирования, но достаточно хорошее приближение, чтобы понять, как это работает. В дополнение к этому пространственному члену освещённости, присутствует член, изменяющийся в зависимости от длительности экспозиции, обычно называемый темновым током (\(d_\text{rate} \times t_\text{lights}\)), который, однако, не зависит от положения пикселя на сенсоре. И, в заключение, "ступенька", т.е. шум считывания. Он присутствует на всех снятых кадрах, поэтому мы обнаружим его во всех уравнениях.
Темновые кадры \(D\) не были освещены, они содержат только член темнового тока, с такой же интенсивностью, как и субэкспозиции (lights), поскольку были сняты с такой же выдержкой и таким же шумом считывания (offset).
Кадры плоского поля \(F\) также имеют пространственный член, пропорциональный таковому, обнаруживаемому на субэкспозициях. Коэффициент \(K\), больший 1, просто демонстрирует что их интенсивность выше. Чтобы записать это, нам необходимо только принять, что пиксели линейно реагируют на число собираемых фотонов, что разумно. Мы могли бы также записать значение темнового тока, пропорциональное времени экспозиции изображений плоского поля. Но если это время экспозиции незначительно, мы можем предположить, что и значение темнового тока невелико. Если это не так, то это означает, что вам нужно снимать темновые изображения плоского поля или, по крайней мере, оценить их уровень.
В заключение кадры шума считывания \(O\) это просто значение уровня шума считывания.
Чтобы показать эти уровни, мы построили эти выражения в виде кривых по отношению к положению на кадре. Мы рекомендуем вам сделать то же самое и поэкспериментировать с входящими данными.
\(a = 200 \text{[ADU]}\)
\(b = 0.0003 \text{[ADU/px}^2\text{]}\)
\(d_\text{rate} = 1 \text{[ADU/s]}\)
\(t_{\text{lights}} = 10 \text{[s]}\)
\(o = 2048 \text{[ADU]}\)
\(W = 1000 \text{[px]}\)
Значения (в единицах ADU) \(L\), \(D\) и \(O\) приведены на левой оси, а значения \(F\) — на правой.
Теперь — что означает калибровка субэкспозиций? Когда вы калибруете свои изображения, вы выполняете следующую операцию:
\[L_c = \dfrac{L -D}{F-O}.\]
Член \(F-O\) это кадр плоского поля из которого вычтен уровень шума считывания (был ли это мастер-кадр или просто заданный уровень). Эта операция выполняется перед укладкой мастер-кадра плоского поля. Член \(L-D\) это изображение из которого вычтены уровни темнового тока и шума считывания, т.е. темновой мастер-кадр. Если вы замените их выражениями, приведёнными выше, то вы придёте к следующему:
\[L_c = \dfrac{1}{K}.\]
Член пространственной вариации исчез, теперь вы выровняли поле своих изображений! Получение разумного значения в ADU (а не \(1/K\)) это то, что делает Siril, когда вы ставите флажок Автоматическая оценка значения нормализации на вкладке Калибровка.
Вы можете попробовать любые иные комбинации — никакая другая не избавит от пространственной вариации.
Чтобы проиллюстрировать это, мы отобразили на графике результат различных комбинаций. Чтобы привести всё к одному масштабу, все результаты нормализованы таким образом, чтобы они имели одинаковую интенсивность, равную 1, в середине кадра. Приведены результаты следующих тестов:
\(L-D\) : вы сняли лишь темновые кадры.
\(L/F\) : вы сняли лишь кадры плоского поля.
\(L/(F-O)\) : вы сняли только кадры плоского поля и скорректировали их кадрами шума считывания (либо мастер-кадр, либо синтетический).
\((L-O)/(F-O)\) : у вас есть лишь кадры плоского поля, скорректированные кадрами шума считывания. Но вы также вычли значение шума считывания из ваших субэкспозиций.
\((L-D)/F\) : вы сняли кадры плоского поля и темновые кадры, но не сняли кадров шума считывания.
\((L-D)/(F-O)\) : вы сделали всё по учебнику.
Вы можете отметить что:
\(L-D\) очевидно демонстрирует, что коррекция виньетирования отсутствует.
И \(L/F\), и \(L/(F-O)\) демонстрируют чрезмерную коррекцию или обратное виньетирование.
Результат, близкий к оптимальному демонстрируют \((L-D)/F\) и \((L-O)/(F-O)\), давая почти плоское поле. Это, конечно же, зависит от величины темнового тока вашего сенсора и виньетирования в оптическом тракте.
Эталонная калибровка дает плоское поле.
Из данных выше можно сделать следующие выводы:
Вам лучше скорректировать субэкспозиции с помощью кадров шума считывания (мастер-кадр или просто уровень шума считывания), если вы не снимали темновые кадры.
Если у вас нет времени снимать серию темновых кадров, вероятно, стоит снять хотя бы один, измерить его медиану и вычесть это (синтетическое) значение из ваших субэкспозиций. Это, конечно, не исправит засветку от усилителя или не позволит скорректировать горячие пиксели, но ваши изображения, по крайней мере, будут ровными!
Что с пылью...?
Печальная новость состоит в том, что для того, чтобы ваши изображения плоского поля также корректировали эти неприятные пятна, вам необходимо включить все калибровочные кадры в уравнение. Чтобы проиллюстрировать этот эффект, мы добавили небольшой локальный дефицит ADU на субэкспозиции и кадры плоского поля.
Как вы видите, комбинация только \((L-D)/(F-O)\) позволяет избавиться от этого.
Для дальнейшей иллюстрации выражений и кривых, приведённых выше, нет ничего лучше, чем реальный пример. Все приведенные ниже фотографии любезно предоставлены Г. Аттардом (G. Attard).
Калибровка это очень простой шаг с точки зрения арифметически и не может завершиться неудачей, если входящие данные соответствуют тому, что ожидается от астрономических изображений.
Однако пользователи регулярно сталкиваются с ситуациями, когда откалиброванные изображения получаются некорректными. В этом разделе мы расскажем о возникающих проблемах и о том, как их избежать.
Прежде всего, инструмент статистики это бесценное подспорье для понимания проблем и используется в большинстве случаев для устранения неполадок.
При анализе статистики темнового мастер-кадра нужно убедиться что он чёрный. Это связано с тем, что темновые изображения получаются с закрытой крышкой, и нет причин, по которым какой-то из фотопримёмников должен быть в привилегированном положении. Изображение должно выглядеть так, как если бы оно было снято на монохромный сенсор, при этом шаблон Байера не должен быть виден. Ниже приведен пример когда темновой мастер-кадр получил нежелательный для этого типа изображений цветовой баланс. В результате он больше не чёрный и виден шаблон Байера. Такой темновой кадр непригоден для использования и должен быть переделан.
Внимательное изучение статистики изображения показывает, что медианные значения каждого канала отличаются, хотя они должны быть идентичны и почти идентичны. Кроме того, чётко виден шаблон Байера.
В ходе ночной сессии очень важно, чтобы значение шума считывания (OFFSET) было одинаковым для всех изображений. В частности, обязательно иметь одинаковые установки для пар темновые кадры/субэкспозиции и кадры шума считывания/кадры плоского поля. Невыполнение первого условия может привести к потере важных данных (обрезка пикселей в левой части гистограммы). Несоблюдение обоих условий, скорее всего, приведет к тому, что ваши изображения не будут иметь правильного плоского поля (см. выше).
Проверьте уровни темновых кадров и субэкспозиций: медианное значение субэкспозиций должно быть существенно выше, чем у темновых кадров, чтобы избежать изображений с большим количеством пикселей с отрицательными значениями.
Если вы использовали одинаковые значения для кадров темнового тока и кадров шума считывания, их медианные значения должны быть очень близки (по крайней мере для охлаждаемой камеры). В противном случае это может означать наличие засветки (light leakage), которая повлияла на кадры темнового тока (кадры шума считывания значительно меньше подвержены этому, поскольку снимаются с гораздо более короткой выдержкой). Поэтому всегда проверяйте свои темновые мастер-кадры на наличие градиента или более яркого пятна в центре. Не следует это путать с засветкой от усилителя, которая является нормальной для некоторых камер.
Мы настоятельно рекомендуем получать астрофотографии одним тем же способом: одно и тоже программное обеспечение / один и тот же компьютер или мини-ПК (astrobox) / один и тот же формат изображений. Фактически, каждая программа может использовать свои собственные правила записи (writing conventions) и изображения могут быть более несовместимы друг с другом. Мы часто слышим, что пользователи делают все свои снимки с помощью мини-ПК, а на следующий день делают кадры плоского поля непосредственно с помощью своей зеркальной камеры. В этом случае изображения часто имеют разный размер, что делает калибровку невозможной.
Часто возникают ошибки при выполнении сценариев в случае наличия изображений в формате JPG в папках со входящими изображениями (darks/biases/flats/lights). В большинстве случает программное обеспечение сохраняет такие снимки для более быстрого просмотра. Следствием такого рода ошибок является сбой и остановка калибровки с сообщением, что изображения имеют разный размер. Поскольку изображения в формате JPG уже дебайеризованы, они имеют три канала, в то время как изображения RAW имеют только один. Удаление изображений JPG из папок со входящими изображениями исправляет эту ошибку.
Убедитесь, что изображения плоского поля непереэкспонированы. Изображения плоского поля используются для коррекции различий чувствительности датчика от пикселя к пикселю. Если некоторые пиксели переэкспонированы, их реальная чувствительность может быть представлена неточно, что приведет к неправильным корректировкам в процессе калибровки. Переэкспонированный кадр плоского поля гарантирует неудачную калибровку.
Чтобы проверить наличие переэкспонированных пикселей, вы можете загрузить одиночный кадр плоского и с помощью меню Обработка ‣ Преобразование гистограммы... отобразить гистограмму этого кадра. На изображение ниже показано, что один из пиков гистограммы обрезан справа. Разумным подходом будет каждый раз проверка того, что правая граница пика, наиболее удаленная вправо, не превышала 80%, чтобы избежать попадания в зону, где ваш сенсор может стать нелинейным.
Обрезка кадра плоского поля. Когда это происходит, вам следует уменьшить усиление (gain) или длительность экспозиции.
Регистрация, по сути, это процесс выравнивания изображений в последовательности для их последующей обработки. Все процессы, описанные ниже, вычисляют преобразование, которое должно быть применено к каждому изображению для его выравнивания относительно опорного изображения в последовательности.
Сила Siril заключается в большом разнообразии предлагаемых алгоритмов записи. Каждый метод описан ниже. Нажатие кнопки Начать регистрацию запускает регистрацию последовательности.
Можно выбрать канал в котором будет осуществлена регистрация. По умолчанию используются зелёный для цветных изображений и светимость — для монохромных. Знак (*), появляющийся после названия канала, означает, что данные регистрации для этого слоя уже доступны. При обработке изображений данные регистрации берутся из слоя по умолчанию, если он доступен (для RGB-изображений: зелёный, в противном случае резервный вариант — синий, затем красный).
То, что мы называем регистрацией, фактически представляет собой следующие шаги:
Определение деталей, которые должны совпадать на всех изображениях
Вычисление преобразований между каждым изображением и опорным
Применение вычисленного преобразования каждому изображению, чтобы получить новое изображение
В зависимости от выбранного метода регистрации, эти 3 шага происходят (или нет) в рамках одного процесса. Siril использует наиболее разумные значения по умолчанию (выбирая, применять вычисленное преобразование или нет) в зависимости от выбранного метода регистрации, но понимание внутреннего механизма может помочь вам изменить это поведение в соответствии с вашими потребностями.
(*) При регистрации комет создаются новый файл последовательности (с префиксом по умолчанию comet_) и «новые» изображения. Если во входящей последовательности были данные регистрации, сдвиг кометы компонуется с уже имеющимися данными регистрации. Создаваемые «новые» изображения являются символическими ссылками и не занимают дополнительное дисковое пространство. Это нововведение версии 1.4 было сделано, чтобы уточнить, должна ли последовательность, имеющая данные регистрации, быть выравнена только по звёздам или по звёздам и сдвигу кометы. Экспорт новой последовательности теперь делает очевидным, что были включены дополнительные сдвиги. Это также позволяет использовать одну и ту же входящую последовательность и создавать несколько последовательностей, выровненных по разным движущимся объектам.
Таблица ниже содержит список преобразований, совместимых с каждым методом, и возможность исправления дисторсии.
Способ регистрации
Сдвиг
Евклидово
Подобие
Аффинное
Гомография
Коррекция дисторсии
Все цвета
субпиксели
x
x
x
x
2 шага
субпиксели
x
x
x
x
1-2-3 звезды
субпиксели (1-2-3)
(2-3)
По паттерну
пиксели
KOMBAT
пиксели
Комета
субпиксели
Вручную
пиксели
Астрометрия
x
x
Важно иметь в виду, каким образом зарегистрированная последовательность проходит процесс укладки, который обычно происходит сразу после регистрации:
Если преобразование состоит только из попиксельных сдвигов, алгоритм укладки может использовать эти сдвиги на лету, при чтении изображений. Это значит, что у вас нет необходимости создавать «зарегистрированные изображения», что сохраняет дисковое пространство и позволяет избежать интерполяции. Конечно же это делается за счёт менее точной регистрации (т.е. субпиксельной точности), но обычно это используется при работе с изображениями планет или изображениями, полученными методом удачных экспозиций (lucky imaging), когда размер выборки невелик. Это также может быть использовано вместе с методом регистрации, вычисляющим субпиксельные сдвиги. В ходе укладки сдвиги будут округлены с точностью до пикселя. Во всех остальных случаях, означающих, что на укладку подаётся последовательность, где при регистрации были вычислены преобразования более сложные, чем просто сдвиги, и зарегистрированные изображения не были сохранены, Siril выдаст предупреждение с предложением экспортировать зарегистрированные изображения, прежде чем переходить к укладке.
Во всех остальных случаях, как только преобразования были вычислены, преобразованные изображения необходимо сохранить, прежде чем переходить к укладке. Названия сохранённых файлов начинаются с префикса r_.
Siril использует линейные преобразования с разным числом степеней свободы для сопоставления изображений с опорным изображением:
Сдвиг это преобразование с 2-мя степенями свободы (сдвиг по x/y), хорошо приспособленное для изображений без дисторсии, масштабирования и вращения поля. Необходима минимум одна совпадающая пара звёзд (или объектов) для определения преобразования.
Евклидово это преобразование с 3-мя степенями свободы (сдвиг по x/y + одно вращение) для изображений без дисторсии и масштабирования. Оно требует по крайней мере две совпадающие пары звёзд для определения преобразования.
Подобие это преобразование с 4-мя степенями свободы (одно масштабирование, одно вращение и сдвиги по x/y), более жёсткое, чем гомография, хорошо подходящее для изображений без дисторсии. Для определения преобразования необходимо минимум две совпадающие пары звёзд.
Аффинное это преобразование с 6-ю степенями свободы (два масштабирования, один скос, одно вращение и сдвиги по x/y), более жёсткое, чем гомография, хорошо подходящее для изображений без дисторсии. Для определения преобразования необходимо минимум три совпадающие пары звёзд.
Гомография это преобразование по умолчанию, которое использует 8 степеней свободы, чтобы наложить изображения на опорный кадр. Оно хорошо подходит для обычных случаев и настоятельно рекомендуется для изображений с широким полем зрения. Для определения преобразования необходимо минимум четыре совпадающие пары звёзд.
Начиная с версии 1.3 Siril также может учитывать дисторсию для методов регистрации, указанных в таблице. Коэффициенты дисторсии, которыми оперирует Siril, следуют соглашению SIP. Это соглашение предполагает, что координаты пикселей необходимо скорректировать ПРЕЖДЕ, чем пытаться сопоставить их с помощью линейного преобразования. На жаргоне WCS это называется дисторсией до (prior distortion), в отличие от дисторсии после (sequent distortion).
Эти коэффициенты используются дважды в процессе регистрации:
положение звёзд на «искажённых» изображениях сначала корректируется как на изображении, которое должно быть выравнено, так и на опорном изображении (или положения звёзд проецируется для астрометрической регистрации). Затем вычисляется линейное преобразование, сопоставляющее звёзды на текущем изображении с опорным.
При экспорте зарегистрированного изображения, сначала исправляется дисторсия на изображение, которое затем линейно проецируется для выравнивания по опорному изображению. Обратите внимание, что это происходит за одну операцию (сопоставление пикселей вычисляется как совокупность данной нелинейной коррекции и последующей линейной проекции) во избежание двойной интерполяции значений пикселей. Опорное изображение также подвергается коррекции без линейной проекции.
Это изображение, которое используется в качестве общей основы для вычисления преобразований, связывающих все изображения в последовательности с этим изображением.
Если не установлено вручную, опорное изображение выбирается по следующим критериям:
если последовательность уже была зарегистрирована, то это самое лучшее изображение в терминах наименьшей FWHM или с самым высоким качеством, в зависимости от способа регистрации
В противном случае — первое неисключённое изображение в последовательности.
Чтобы установить изображение в качестве опорного, вы можете:
Открыть список кадров, выбрать изображение, которое надо установить в качестве опорного, и установить флажок Опорное изображение.
Использовать команду setref. Например, если вы хотите установить изображение №10 в качестве опорного:
setref10
Командная строка Siril
setref sequencename image_number
Устанавливает опорное изображения для последовательности, указанной в первом аргументе. image_number это порядковый номер изображения в последовательности (начинающийся с 1), а не номер в названии файла
Список кадров. Вы можете просмотреть все изображения в последовательности.
В ходе укладки опорное изображение так же используются как база для нормализации, если последняя включена.
Это предпочитаемый алгоритм для выравнивания изображений глубокого космоса, имеющих значительное перекрытие.
Глобальное сопоставление основано на методе подобия треугольников для автоматического определения общих звёзд на каждом изображении [Valdes1995]. Наша реализация основывается на программе Майкла Ричмонда (Michael Richmond) match. После этого полученный список звёзд обрабатывается алгоритмом RANSAC[Fischler1981] для удаления выбросов и определения проекционной матрицы. Устойчивость алгоритма зависит от способности находить звёзды, избегая при этом ложных срабатываний. Siril имеет очень сложный алгоритм поиска звёзд, который позволяет максимально избегать выбора объектов, не являющихся звёздами, за максимально короткое время. Обнаружение ярчайших звёзд обычно является самым важным. Однако в случае необходимости поиска более слабых звёзд, параметры поиска можно настроить с помощью диалога Динамическая PSF.
Автоматическое определение звёзд на отдельном кадре
С этим способом выравнивания связаны несколько опций.
Через выпадающее меню Преобразование можно выбрать различные способы преобразования.
Предупреждение
При первоначальном сопоставление звёзд используется алгоритм подобия треугольников. Следовательно, минимальное число пар звёзд должно быть 3 для сдвига, подобия и аффинного преобразований и 4 для гомографии.
Остальные опции регистрации:
Минимальное кол-во пар звёзд устанавливает минимальное число пар звёзд, которое должно быть на отдельном кадре по отношению к опорному. Если на отдельном кадре меньше пар звёзд, он не будет зарегистрирован. Кнопка справа открывает диалог инструмента динамической PSF.
Опция Максимальное кол-во звёзд определяет максимальное количество звёзд для поиска на каждом изображении (по умолчанию — 2 000). Чем больше это значение, тем больше звёзд потенциально может быть найдено. Следствием этого будет более долгий поиск звёзд, но более точная регистрация.
Используйте опцию Только в выделении если хотите применить алгоритм выравнивания по всему звёздному небу внутри выбранной области на опорном изображении. Если выделение отсутствует, это опция игнорируется.
Через выпадающее меню Исправить дисторсию можно выбрать различные способы исправления:
Нет
Из изображения
Из файла FITS/WCS
Из мастер-файлов дисторсии
Из изображения использует астрономическое решение из изображения, загруженного в данный момент.
Из файла FITS/WCS будет открыт диалог выбора файлов для выбора изображения FITS или файла *.wcs, содержащий коэффициенты дисторсии.
Из мастер-файлов дисторсии будет получен мастер-файл дисторсии, соответствующий каждому изображению. Эта опция может быть полезной, если вы выравниваете изображения двух или более сессий и сенсор между сессиями был сдвинут по отношению к оптике. В этом случае коэффициенты дисторсии могут отличаться.
Совет
Для того, чтобы опиция Из мастер-файлов дисторсии работала, необходимо установить путь к мастер-файлу в настройках. Для создания мастер-файла, перейдите по ссылке.
Опции ниже позволяют вам:
Отфильтровать изображения, которые были исключены из выделения в последовательности.
Выбрать между интерполяцией и сверхразрешением (drizzle) при экспорте изображений. Это те же опции, что в разделе Результат регистрации, поэтому здесь эти опции более не будут объяснены.
Находит и, опционально, выполняет геометрическую трансформацию изображений последовательности, переданной в аргументе, таким образом, чтобы изображения могли быть наложены на опорное изображение. Поскольку для регистрации используются звёзды, этот алгоритм работает только с изображениями глубокого космоса. Настройки определения звёзд могут быть изменены с помощью команды SETFINDSTAR или диалога Динамическая PSF.
Будут зарегистрированы все изображения в последовательности, если только не передана опция -selected. В этом случае исключённые изображения не будут обработаны.
Опция -2pass только вычисляет преобразования, но не создаёт преобразованных изображений. -2pass добавляет предварительный шаг к алгоритму для поиска хорошего опорного изображения перед вычислением преобразований на основе качества и кадрирования. Для создания преобразованных изображений после этого шага используйте SEQAPPLYREG.
В случае создания, название итоговой последовательности будет начинаться с префикса "r_", если с помощью опции -prefix= не указан иной. Итоговые изображения могут быть масштабированы путём передачи значения с плавающей точкой в диапазоне от 0.1 до 3 аргументу -scale=.
Опции преобразования изображений:
Для цветных изображений определение выполняется на зелёном слое, если не указан иной слой с помощью опции -layer=, принимающей значения от 0 до 2 (от красного до синего).
-transf= указывает вид преобразования; может быть shift, similarity, affine или homography (значение по умолчанию).
-minpairs= указывает минимальное количество пар звёзд, которое должно между кадром и опорным кадром. В противном случае этот кадр будет отброшен и исключён из последовательности.
-maxstars= указывает максимальное количество пар звёзд для поиска на каждом кадре (должно быть от 100 до 2000). С бо́льшим количеством звёзд регистрация будет более точной, но это потребует больше времени для вычислений.
-nostarlist отключает сохранение списка звёзд на диск.
-disto= использует полученные раннее в ходе астрономического решения данные дисторсии (со степенью SIP > 1). В качестве параметра используется либо image, чтобы использовать решение, содержащееся в загруженном в данный момент изображении, file, за которым следует путь к изображению, содержащему решение, либо master, чтобы автоматически загрузить соответствующий мастер-фaйл дисторсии, соответствующий каждому изображению. При использовании этой опции полиномы используются как для коррекции положения звёзд перед вычислением преобразования, так и для устранения дисторсии в изображениях при экспорте итоговых изображений.
Интерполяция изображений:
По умолчанию преобразования применяются к изображениям с использованием интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции по умолчанию используется фиксация (clamping), предотвращающая артефакты, но она может быть отключена с помощью аргумента -noclamp.
Сверхразрешение:
В противном случае изображения можно экспортировать с помощью алгоритма сверхразрешения HST, передав аргумент -drizzle, который может принимать дополнительные параметры:
-pixfrac= устанавливает долю пикселей (по умолчанию = 1.0).
-kernel= устанавливает ядро и обязательно принимает одно из следующих значений point (точка), turbo (турбо), square (квадрат), gaussian (Гаусс), lanczos2 (Ланцош-2) или lanczos3 (Ланцош-3). Значение по умолчанию — square.
-flat= указывает использовать ли мастер-кадр плоского поля для присвоения веса входящим пикселям при использовании сверхразрешения (по умолчанию — кадры плоского поля не используются).
Замечание: при использовании -drizzle для изображений, полученных на цветную камеру, входящие изображения не должны быть дебайеризованы. В этом случае определение звёзд всегда выполняется по зелёным пикселям
Для включения этой опции просто поставьте соответствующий флажок после выбора метода Всё звёздное небо в выпадающем меню.
Выполняется только первый из двух шагов, позволяющий выбрать опорный кадр на основе информации о найденных звёздах, вместо автоматического выбора первого кадра в последовательности. Доступные опции сходны с таковыми для алгоритма Всё звёздное небо, но этот способ не создаёт новой последовательности, а вся информация о выравнивании сохраняется в файле seq.
В ходе поиска звёзд Siril устанавливает максимально возможное число звёзд в 2 000 (это можно изменить с помощью соответствующей опции). В случае, если максимальные лимиты определяемого числа звёзд достигнуты более чем на одном изображении, списки звёзд для всех изображений просматриваются повторно. Определяется новый минимальный порог для определения звёзд, позволяющий отсортировать изображения как по количеству найденных звёзд, так и по FWHM.
Сохраняются списки звёзд для всех изображений. Расширение .fit(s) при этом заменяется на .lst. Это позволяет очень быстро повторно запустить алгоритм регистрации за 2 шага с другими параметрами, скажем, с другим преобразованием. В случае, если параметры поиска звёзд были изменены, процесс обнаруживает эти изменения и повторяет анализ по мере необходимости.
За этим способом регистрации обычно должен следовать Применить существующую регистрацию для того, чтобы применить преобразование и создать новую последовательность, если только не был выбран Сдвиг.
Эти строки выполняют регистрацию последовательности pp_light за 2 шага и применяют её. Результатом является последовательность pp_light.
Эти строки выполняют регистрацию последовательности colors за 2 шага и применяют её, обрезая исходящие изображения до минимальной общей области. Итогом является последовательность pp_colors. Это может быть полезным перед совмещением (compositing) монохромных изображений (при этом обрезаются области, которые не являются общими для всех изображений).
# Align layers in 2 passes and crop away borders
register colors -2pass
seqapplyreg colors -framing=min
Если изображения содержат несколько звёзд, например, в случае изображений объектов глубокого космоса, полученных методом удачных экспозиций, когда выдержка отдельного кадра менее секунды, возможно, что алгоритм регистрации всего звёздного неба не сработает, даже если вы измените параметры определения звёзд в диалоге Динамической PSF. Может оказаться интересным вручную указать звёзды, которые вы хотите выровнять. В этом заключается интерес алгоритма регистрации по 1-2-3 звёздам.
Принцип этого метода — создать выделение вокруг звезды и нажать на кнопку Выбрать первую звезду и так далее.
Если выбрана только одна звезда, будет рассчитан только сдвиг между изображениями. Поэтому автоматически устанавливается флажок Только сдвиг. Значения сдвига затем сохраняются в файле seq.
Если выбраны две или три звезды, вычисляется и применяется вращение для создания новой последовательности. Однако, если установлен флажок Только сдвиг, который не является обязательным, вычисляются только сдвиги.
Опция Следовать за движением звезды использует положение звезды (звёзд), найденной на предыдущем изображении как новый центр для регистрации текущего изображения. Это позволяет уменьшить область выделения, ускорить регистрацию и учесть дрейф или изображения с большим количеством звёзд.
Предупреждение
Включение этой опции приводит к отключению распараллеливания, и регистрация выполняется на только одном ядре ЦПУ.
Это простой метод регистрации с помощью сдвига используя кросс-корреляцию в пространственном домене.
Этот быстрый метод используется для регистрации роликов планет, на которых контрастная информация присутствует на значительных участках изображения. Его также можно использовать для регистрации некоторых изображений глубокого космоса. Тем не менее имейте в виду, что это метод выравнивания по одной точке, что делает его плохо подходящим для планетарного выравнивания высокой чёткости. Но он эффективно закрепляет изображения для стабилизации последовательности. Просто сделайте выделение вокруг объекта (например, планеты) и убедитесь, что его перемещение во всей последовательности находится в границах выделения. С помощью этого метода можно рассчитать только сдвиг.
Этот метод пришёл из библиотеки OpenCV, которая активно используется Siril. Они объясняют:
Он просто перемещает изображение шаблона над входящим изображением (как при 2D свёртке) и сравнивает шаблон с фрагментом входящего изображения под изображением шаблона. В OPenCV реализованы несколько методов сравнения (вы можете обратиться к документации за подробностями). Он возвращает изображение в градациях серого, где каждый пиксель обозначает насколько окружение этого пикселя соответствует шаблону.
На практике просто сделайте выделение вокруг объекта (например планеты) и убедитесь, что все его движения в последовательности находятся внутри выделения. С помощью этого метода может быть вычислен только сдвиг.
Инструмент регистрации по комете работает очень просто.
В диалоге выбора кадров выберите первое изображение в последовательности, выделите ядро кометы и нажмите кнопку Выбрать объект в №1.
Далее выберите последнее изображение в последовательности, выделите ядро кометы и нажмите кнопку Выбрать объект в №2.
Если всё хорошо, скорость кометы ( \(\Delta x\) и \(\Delta y\)) будет вычислена в пикселях в час.
Предупреждение
Выравнивание кометы следует выполнять на изображениях с предварительно выравненными звёздами. Либо посредством создания новой последовательности с выравниванием по всему звёздному небу, либо сохранив данные регистрации в файле seq с использованием регистрации за 2 шага или астрометрической регистрации.
Примечание
To fully function, the images must have a timestamp.
If the PSF detection fails to detect an object, it will return the center of the
box that was drawn. This can be handy if you want to align on an object that
is not visible on your subs. Use the solar system object
annotations to plot the position of an asteroid and draw a box around the marker
to pick its position.
This method will ouput a new sequence file, with the sequence name prepended with
the prefix defined (comet_ by default). This does not however create
the new images but symlinks to the original images. For Windows users, please make
sure you have enabled developer mode,
otherwise, it will make hard copies. See also the note below this table.
Этот последний способ регистрации очень специфичен, что объясняет его отдельное расположение и позволяет выравнивать изображения вручную. Конечно, допускается только сдвиг между изображениями.
Первое, что нужно сделать, это определить две точки предварительного просмотра на изображении. Нажав на кнопку Установить первый предпросмотр, вы укажете первую точку предварительного просмотра. Затем вам нужно щелкнуть по области изображения, в идеале по звезде вблизи края изображения, чтобы задать область предварительного просмотра. Нажмите на вторую кнопку Установить второй предпросмотр позволяет сделать то же самое со второй точкой.
Очень важно, чтобы опорное изображение было уже настроено с помощью окна Выбор кадра. По умолчанию это первое изображение. Пользователь волен выбрать то, которое он хочет. Оно будет использоваться в качестве базового слоя, видимого благодаря прозрачности, для выравнивания изображений вручную с помощью цифровых кнопок. Затем просмотрите изображения одно за другим, чтобы применить этот же метод ко всей последовательности.
Сдвиг по оси Y слишком велик, одни и те же звезды на разных кадрах не перекрываются.
Сдвиги по оси X и Y выглядят хорошо. Текущее изображение выровнено по опорному.
Introduced in version 1.3, this is the prefered mode for assembling mosaics or images
with little overlap. It can also be useful to register stacks issued from different
set-ups (different optics, different cameras, different field of views etc...).
It does not have an entry in the registration method drop-down as the information to
export the registered images has already been computed when platesolving the
sequence. All you need to do is to
Apply Existing Registation.
Undistortion will be applied as defined when platesolving the sequence, meaning
if the images were plate-solved using a SIP order larger than 1, then undistortion
will automatically be included. Unless you have a perfectly optically flat field,
it is usualy a good idea to platesolve using SIP, as shsown below, with and without
distortion correction.
Effect of undistortion on two overlapping panels after registration
This is not an algorithm but rather a commodity to apply previously computed
registration data stored in the sequence file. The interpolation method can be
selected in the Output Registration
section. You can also use image filtering to avoid saving unnecessary images,
as in stacking Выбраковка изображений. There is also a
Drizzle option to apply registration using Drizzle instead of
interpolation. See the Drizzle section for
details.
Доступны четыре метода кадрирования:
: текущее использует текущее опорное изображение. Это поведение по умолчанию.
: максимум (ограничивающая рамка) добавляет чёрную границу вокруг кадров таким образом, чтобы ни одна часть изображения не была обрезана при регистрации.
: минимум (общая область) кадрирует каждый кадр до участка, общего для всех изображений в последовательности.
: центр тяжести определяет наилучшее положение области кадрирования как центр тяжести всех изображений.
Совет
Introduced in Siril 1.3, max mode does not export images with black borders,
that encompass the full resulting image. The images are exported with the
necessary projection and the relative shifts required to compose the final image
is kept in the the resulting seq file.
Estimate button will launch the framing computation, without
actually exporting the images. This information can be interesting to know in advance
the size of the exported images. This accounts for the framing method
selected and the scaling factor chosen in the Output Registration.
When pressing Estimate, the console will show an output like this:
Output image: 7893 x 5254 pixels (assuming a scaling factor of 1.30)
Используя ранее вычисленные данные регистрации (см. REGISTER), выполняет геометрическое преобразование изображений последовательности, указанной в аргументе таким образом, чтобы они могли быть наложены на опорное изображение.
Название итоговой последовательности начинается с префикса "r_", если с помощью опции -prefix= не указан иной.
Для RGB-изображений регистрация выполняется на первом слое, для которого существуют данные, если не указан иной слой с помощью опции -layer= (0, 1 или 2 для R, G и B, соответственно).
Итоговые изображения могут быть масштабированы с помощью аргумента -scale=, являющимся дробным значением в диапазоне от 0,1 до 3.
Автоматическое кадрирование итоговой последовательности может быть сделано с помощью опции -framing= и указанием метода кадрирования из списка { current | min | max | cog } :
-framing=max (ограничивающая рамка) проецирует каждое изображение и вычисляет его сдвиг относительно опорного. Итоговая последовательность может быть уложена с помощью опции -maximize команды STACK, которая создаёт полное изображение, включающее все изображения последовательности.
-framing=min (общая область) обрезает каждое изображение до области, общей с всеми остальными изображениями в последовательности.
-framing=cog определяет лучшее кадрирование как центр тяжести (center of gravity — cog) всех изображений.
Интерполяция изображений:
По умолчанию преобразования применяются к изображениям с использованием интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции по умолчанию используется фиксация (clamping), предотвращающая артефакты, но она может быть отключена с помощью аргумента -noclamp.
Сверхразрешение:
В противном случае изображения можно экспортировать с помощью алгоритма сверхразрешения HST, передав аргумент -drizzle, который может принимать дополнительные параметры:
-pixfrac= устанавливает долю пикселей (по умолчанию = 1.0).
-kernel= устанавливает ядро и обязательно принимает одно из следующих значений point (точка), turbo (турбо), square (квадрат), gaussian (Гаусс), lanczos2 (Ланцош-2) или lanczos3 (Ланцош-3). Значение по умолчанию — square.
-flat= указывает использовать ли мастер-кадр плоского поля для присвоения веса входящим пикселям при использовании сверхразрешения (по умолчанию — кадры плоского поля не используются).
Фильтрация изображений:
Изображения для регистрации могут быть отфильтрованы с помощью некоторых фильтров, например, выбранные или с лучшей FWHM, используя опции -filter-*.
Лучшие изображения из последовательности могут быть уложены с использованием аргументов фильтрации. Каждый из этих аргументов может удалить некачественные изображения, основываясь на отличительных чертах в их названиях, взятых из данных регистрации с любым из трёх значений аргумента:
- a numeric value for the worse image to keep depending on the type of data used (between 0 and 1 for roundness and quality, absolute values otherwise),
- a percentage of best images to keep if the number is followed by a % sign,
- or a k value for the k.sigma of the worse image to keep if the number is followed by a k sign.
Так же можно выбрать изображения вручную либо раннее с помощью графического интерфейса или с помощью команд select или unselect, используя аргумент -filter-included.
Tthe pixels of the resulting images are interpolated by an algorithm that is
left to the user's choice. There are 5 possible interpolation algorithms, plus a
None option:
Ближайший сосед
Билинейная
Бикубическая
Отношение площади пикселя
Ланцош-4
Нет
The best efficient interpolation methods are generally bicubic and Lanczos-4
(used by default). However, they usually require the Clamping
interpolation option to be enabled to avoid ring artifacts around the stars,
which makes the interpolation operation twice as slow. We still enable it by
default because it gives a significant improvement in resolution, with often a
8% smaller in FWHM compared to Siril 1.0 default method of pixel area.
It is possible the clamping is not useful for your images, we recommend you to
compare the results with your images.
Специальный вариант Нет зарезервирован для случая глобальной регистрации и Применения существующей регистрации. Если вы хотите экспортировать или сохранить последовательность, содержащую только сдвиг, без использования интерполяции (чтобы не изменять значения в пикселях), вам следует выбрать Нет.
The button Drizzle activates the drizzle
algorithm for the processing of this sequence. See the
Drizzle section for details.
Предупреждение
The counterpart of this technic is that the amount of memory and disk
space needed to create and process drizzled images is multiplied by the
square of the Drizzle scale factor.
When registered images are exported, they inherit the astromertic soluion of the
reference image if any. Otherwise, their previous solution is wiped. Obviously,
the new solution for each image accounts for the transformations it has undergone
through the registration process.
In case a distortion solution is found in the reference image but no undistortion
was applied when computing the transformations - for instance if you have not
selected any Distortion from the drop-down in global or 2-pass methods,
a warning will be displayed in the Console. The distortion information will be kept
in the registered images. In case they are significant, you may see their effect
when stacking. In which case, you will need to register again using a distortion
specification.
Fischler, M. A., & Bolles, R. C. (1981). Random sample
consensus: a paradigm for model fitting with applications to image analysis
and automated cartography. Communications of the ACM, 24(6), 381-395.
Valdes, F. G., Campusano, L. E., Velasquez, J. D., & Stetson,
P. B. (1995). FOCAS automatic catalog matching algorithms. Publications of
the Astronomical Society of the Pacific, 107(717), 1119.
Метод линейной реконструкции с переменным пикселем (variable-pixel linear reconstruction), более известный как drizzle (прим. переводчика — данный термин переведён как сверхразрешение), разработан Энди Фручером (Andy Fruchter) и Ричардом Хуком (Richard Hook) для работы с космическим телескопом Хаббл (HST) [FruchterHook1997] и первоначально использовался для объединения размытых изображений Hubble Deep Field North (HDF-N). Этот алгоритм можно рассматривать как непрерывный набор линейных функций, плавно изменяющихся между оптимальным методом линейной комбинации (чересстрочной разверткой, interlacing) и методом сдвига и сложения (shift-and-add). Это часто позволяет улучшить разрешение и снизить уровень коррелированного шума по сравнению с изображениями, полученными только с использованием метода сдвига и сложения.
На замечательной странице кратко описан этот метод и дано хорошее графическое представление того, как пиксельные данные «стекают» с грубой входящей пиксельной сетки на более тонкую итоговую.
Степень, в которой алгоритм отходит от чересстрочной развертки и переходит к методу сдвига и сложения, зависит от того, насколько хорошо PSF подвергается подвыборке с учетом сдвигов на входящих изображениях. На практике работа алгоритма сверхразрешения управляется параметром, называемым долей пикселя, представляющим собой величину, на которую входящие пиксели уменьшаются перед отображением на плоскость итогового изображения. При доле пикселя равной 0, сверхразрешение эквивалентно чистой чересстрочной развертке, а при доле пикселя, равной 1 — сдвигу и сложению.
Для понимания разницы между методами сверхразрешения и интерполяции при применении регистрации, сначала рассмотрим, как работает стандартный метод интерполяции. Данные регистрации имеют форму матрицы гомографии 3×3, которая кодирует линейное преобразование с 8-ю степенями свободы от одного набора координат к другому (т.е. от каждого кадра к опорному). Это используется для сопоставления значений каждого пикселя на каждом входящем изображении с правильным местом на итоговом изображении, выравнивая итоговые данные с опорным изображением. Для фактического выравнивания используется метод интерполяции, который можно выбрать в параметрах регистрации. Интерполяция приводит к размыванию функции рассеяния точки, особенно если увеличивается масштаб изображений. Это также может привести к появлению артефактов, хотя в Siril реализован механизм фиксации, позволяющий свести это к минимуму.
При использовании алгоритма сверхразрешения, напротив, каждый пиксель входящего изображения «превращается» в каплю и «разбрызгивается» через сетку на итоговый опорный кадр. Каждая капля имеет определённый размер, и, выбрав увеличенную итоговую пиксельную сетку, но меньший размер капли, вы можете добиться улучшения разрешения, если полученные с помощью вашего оптического тракта изображения имеют недостаточную дискретизацию (undersampled). В случае если масштаб изображений соответствует разрешающей способности вашего телескопа, то алгоритм сверхразрешения не сможет передать детали, превышающие дифракционный предел. Это достигается за счёт увеличения шума изображения: поскольку каждая капля «закрашивает» меньшую область итогового изображения, среднее количество капель на пиксель итогового изображения в итоговом стеке уменьшается.
Обратите внимание, что алгоритм сверхразрешения не заменяет всего процесса регистрации. Вы по-прежнему должны использовать подходящий метод регистрации (всё звёздное небо, 1-2-3 звезды, по комете и пр.) до применения алгоритма сверхразрешения. Последний является лишь альтернативой методу интерполяции, используемому при регистрации.
Предупреждение
Процесс применения алгоритма сверхразрешения включает в себя съёмку нескольких кадров и их объединение в итоговый кадр. На входе используется набор кадров с их WCS-решениями, а на выходе будет одно изображение, к которому был применён алгоритм сверхразрешения. В Siril этот процесс разделён на применение сверхразрешения при регистрации и последующую укладку. Промежуточный артефакт — набор изображений, представляющих отдельные изображения, «разбрызганные» по общей итоговой сетке, но еще не уложенные — сам по себе не имеет значения. Отдельные кадры в последовательности с применённым алгоритмом сверхразрешения могут и будут выглядеть странно: опорный кадр часто выглядит не так, как остальные, особенно при применении сверхразрешения к данным CFA, из-за особого свойства — нулевого сдвига относительно итогового кадра, а на других кадрах может появиться муар. Не паникуйте! Это всего лишь промежуточный этап в общем процессе применения сверхразрешения, и все эти очевидные странности будут устранены на этапе укладки.
Есть 3 основные причины, по которым вы можете предпочесть использование сверхразрешения методу интерполяции для применения регистрации.
Улучшение разрешения Если ваше изображение имеет недостаточную дискретизацию, возможно, вам удастся улучшить разрешение используя алгоритм сверхразрешения, чего не удалось добиться с помощью опции регистрации Увел. вдвое (интерполяция).
Обработка изображений CFA Если ваши имеют шаблон CFA (например, если вы пользуетесь цветной камерой или зеркальной фотокамерой), алгоритм сверхразрешения значительно улучшает качество изображения по сравнению с дебайеризацией. Иногда этот процесс называют Байеровским сверхразрешением (Bayer Drizzle), но на самом деле это один и тот же процесс. При применении сверхразрешения к CFA-изображению цвет текущей капли определяет, в какой канал итогового изображения она попадёт, в то время как при применении сверхразрешения к монохромному изображению все капли попадают в единственный монохромный канал. Применение сверхразрешения к CFA-изображениям позволяет избежать артефактов, которые возникают при использовании всех алгоритмов дебайеризации, что улучшает шумовые характеристики при сильном растягивании изображений. Это обеспечивает улучшенные шумоподавление и реконструкцию CFA-последовательностей, к которым применено сверхразрешение, по сравнению с дебайеризованными и зарегистрированными CFA-изображениями, а также улучшает видимость теней.
Предотвращение артефактов Можно применить сверхразрешение к последовательности, используя масштаб и долю пикселя равные 1, и получить, по сути, тот же результат, что и при использовании регистрации с помощью одного из методов интерполяции. Возможно, вы захотите рассмотреть это, если увидите артефакты интерполяции, появляющиеся при использовании стандартного метода интерполяции (хотя они, как правило, эффективно подавляются функцией фиксации). Обратите внимание, что алгоритм сверхразрешения может сам по себе создавать различные артефакты (см. раздел «Некоторые распространённые проблемы» ниже), однако их можно полностью избежать, выбрав ядро алгоритма сверхразрешения или используя бо́льшее количество входящих кадров, и, как правило, они идеально обрабатываются путем укладки.
Алгоритм сверхразрешения работает несколько медленнее интерполяции, особенно при применении предпочтительного ядра «Квадрат». Если вы используете более старое или медленное оборудование, вы можете предпочесть устаревший метод.
При использовании для повышения дискретизации (upsampling), алгоритм сверхразрешения позволяет улучшить разрешение ценой увеличения шума изображения. Поэтому, возможно, вам потребуется накопить больше сигнала при использовании сверхразрешения, чем при использовании метода повышения дискретизации на основе интерполяции.
Вышеупомянутая проблема особенно актуальна для CFA-изображений. Учтите, что только 1 из 2 пикселей зелёного цвета, и только 1 из 4 — красного или синего. Таким образом, для красного или синего каналов, применение сверхразрешения к CFA уже обеспечивает такой же уровень уменьшения капельного покрытия, как и 2-кратное увеличение масштаба с помощью сверхразрешения. Если, сверх того, вы хотите увеличить масштаб изображения, вам потребуется такое же количество капель, как и для 4-кратного увеличения масштаба изображения с помощью сверхразрешения! Поэтому, как правило, рекомендуется применять сверхразрешение к CFA-изображениям с масштабом = 1.
На следующем рисунке показано сравнение между методом сверхразрешения и устаревшим методом масштабирования. Это изображение Ha, извлечённое из цветного изображения, полученного с использованием двухдиапазонного (dual band) фильтра. Слева вы можете увидеть результат работы устаревшего сценария OSC_Extract_HaOIII, который извлекает данные Ha, полученные с помощью красных пикселей из шаблона Байера цветного сенсора в виде изображения уменьшенного размера. К нему применено масштабирование OpenCV с интерполяцией методом Ланцош-4 для получения изображения, которое соответствует размеру изображения OIII.
On the right you can see the result of the updated script (available through the
siril-scripts repository), which extracts the Ha
data captured by the red pixels in the OSC Bayer matrix as a half-size image and
drizzles it using scale = 2.0, pixel fraction = 0.5, to produce an image that
matches the size of the OIII image.
При просмотре в масштабе 100% становится ясно, что стек, к которому применено сверхразрешения, в значительной степени восстанавливает разрешение оптической системы, которое имеет недостаточную дискретизацию (undersampled) из-за разнесённых красных пикселей в шаблоне Байера. Изображение выглядит намного резче, и цифры подтверждают это: среднее значение FWHM на изображении слева составляет 3.59, тогда как на изображении справа это значение равно 3.25.
Сравнение между увеличением масштаба с помощью интерполяции и сверхразрешением
Масштаб определяет масштаб итогового изображения, получаемого при использовании сверхразрешения, по отношению к входящему изображению. Типичный масштаб для монохромного изображения с недостаточной дискретизацией равен 2.0. Это означает, что входящие данные будут распределены на итоговой пиксельной сетке с вдвое бо́льшим разрешением, чем разрешение входящего изображения. Если бы ваше входящее опорное изображение было размером 1024 × 512 пикселей, то итоговое изображение имело бы размер 2048 × 1024 пикселя. Примечание: поскольку изображение представляет ту же область неба, хотя на выходном изображении вдоль каждой оси в два раза больше пикселей, фактически каждый итоговый пиксель вдвое меньше по ширине и вдвое меньше по высоте.
Совет
Чем больше масштаб, тем более редким будет изображение, к которому применяется сверхразрешение, и тем меньше пикселей в конечном итоге попадает на каждый итоговый пиксель. В результате изображение получается более шумным: увеличение разрешения, обеспечиваемое сверхразрешением, происходит за счёт шума. Это можно преодолеть благодаря использованию бо́льшего общего времени накопления сигнала, чем вам потребовалось бы, без применения данного алгоритма для увеличения разрешения.
Доля пикселя задает размер капли, взятой из входящей сетки. Рассмотрим масштаб сверхразрешения, равный 2.0: поскольку входящие пиксели вдвое меньше по ширине и высоте, это означает, что для того, чтобы каждая входная пиксельная «капля» имела тот же размер, что и итоговый пиксель, её следует уменьшить до половины линейных размеров. Это доля пикселя, равная 0.5. Хорошее эмпирическое правило заключается в том, что доля пикселя должна быть примерно равна величине, обратной масштабу сверхразрешения (в некоторых ядрах полезно установить её немного больше, чтобы уменьшить количество пикселей, которые получают нулевую информацию от любых «капель» алгоритма).
С долей пикселя можно поэкспериментировать: установка бо́льшей доли пикселя означает, что каждая входящая «капля» будет влиять на бо́льшее число итоговых пикселей. С другой стороны, установка меньшей доли пикселя означает, что каждая входящая «капля» будет влиять на меньшее число итоговых пикселей. Ядро «Точка» — это особый случай, когда доля пикселя равна нулю (и при выборе этого ядра настройка доли пикселя не имеет никакого эффекта).
Реализация алгоритма сверхразрешения в Siril предоставляет несколько моделей «капель»:
Square. This models the droplet as a square droplet aligned exactly with
the input pixel. It is accurately mapped to the output reference frame, and it
works well at any scale and pixel fraction. This is the default kernel.
Совет
The Square kernel is mathematically flux preserving by construction: each
input pixel’s flux is distributed into output pixels in exact proportion to
area overlap. Total counts are preserved identically. This makes it both robust
and ideal for applications where you need strict surface brightness conservation
(e.g. diffuse structures or extended sources).
Point. This models the droplet as a point at the center of the input pixel.
It is the limit of the square kernel with a very small pixel fraction. This will
prodce the lowest correlated noise but is prone to leaving holes unless you have
very large numbers of well-dithered frames. If you find holes or artefacts in your
final stack, use the Square kernel instead. This kernel is very fast.
Turbo. This is a simplification of the Square kernel. It assumes that
rotation between the input and output reference is negligible. This results in
a much faster computation, but is approximate. It is a "quick and dirty" kernel
originally intended for generating intermediate products within the HST workflow,
but it may be of some use in lucky imaging due to its speed relative to Square.
Gaussian. This models the droplet as a Gaussian centered on the center of
the input pixel with a FWHM equal to pixfrac. The droplets in the Gaussian model
are round and are recommended where improved preservation of PSFs (star shapes)
is important.
Совет
[Avila2015] recommends the Gaussian kernel for applications involving point source
photometry. Despite not being mathematically flux preserving, the Gaussian
kernel reduces the blockiness typical of square kernels (and avoids the high
frequency ringing characteristic of Lanczos kernels, producing smooth, centrally
peaked PSFs that are closer to analytical forms used in photometry. While
Gaussians don't preserve flux perfectly the trade-off is much better behaved
PSFs, which is more important for extracting accurate stellar photometry. It
may also be more aesthetically pleasing in a final image.
Lanczos2 and Lanczos3. These kernels model the droplet as a Lanczos
function centered on the center of the input pixel.
Предупреждение
The Lanczos kernels are specially designed for resampling an image from one
World Coordinate System (WCS) onto another at the same scale. They should
only be used with scale == pixfrac == 1.0.
Lanczos kernels provide a good option for single-image registration at native
scale: Lanczos3 produces tigher average FWHM than any other kernel or OpenCV
interpolation, but it is significantly slower than other kernels.
When a droplet lands on the output pixel grid, it may cover more than one output
pixel. In fact, one output pixel may be covered by multiple droplets, by only a
fraction of a droplet or even by no droplets at all. The contribution of each
input pixel can be weighted by the master flat, so that pixels from areas with
higher SNR (less vignetting) are weighted more highly. Unless you have peculiar
flats this generally makes no practical difference.
Для присвоения веса пикселям, установите флажок Включить мастер-кадр плоского поля.
Предупреждение
Мастер-кадр должен быть задан на вкладке Калибровка!
Теперь вы можете укладывать последовательность, обработанную алгоритмом сверхразрешения, как обычно. Обратите внимание, что для некоторых комбинаций масштаба сверхразрешения и размера «капель» некоторые модели выбраковки будут работать лучше, чем другие. В частности, если у вас значительное количество «нулевых входящих данных» или нулевых пикселей (null pixels), то при выбраковке будет использовано меньше значений. Возможно, стоит попробовать MAD, если ваш обычный метод выбраковки не работает.
В приведенном ниже GIF-файле показано сравнение стека из 37 изображений, в первом случае — применена регистрация с использованием интерполяции, а во втором — регистрация с использованием алгоритма сверхразрешения. Очевидно, что стек, созданный с использованием алгоритма сверхразрешения, значительно резче, чем стек, созданный с использованием данных, зарегистрированных с помощью интерполяции.
Сравнение регистрации, применённой с использованием сверхразрешения и интерполяции. Нажмите, чтобы увеличить.
Для цветных изображений (OSC) снимите флажок Дебайеризация перед сохранением. Это является изменением по сравнению с предыдущими рабочими процессами, но для алгоритма сверхразрешения важно сохранить шаблон CFA во входящей последовательности.
Вы можете использовать сверхразрешение сразу после регистрации существующей регистрации для всех методов регистрации, которые не экспортируют изображения напрямую.
Масштабирование устанавливает масштаб итогового изображения, полученного с использованием алгоритма сверхразрешения, по отношению к входящему изображению. На изображениях, снятых с помощью цветной камеры, каждый пиксель отображает только один цвет: красный, зелёный или синий. К пикселям применяется массив цветных светофильтров (CFA), определяющий какие пиксели реагируют на красную, зелёную и синюю длины волн. Таким образом, все пиксели распределены неравномерно по сравнению с монохромным сенсором, где все пиксели чувствительны к любому свету, проходящему через фильтр. Как в шаблоне Байера, так и на сенсорах X-Trans красные и синие пиксели особенно редки на входящих кадрах, поэтому для увеличения масштаба сверхразрешения выше 1.0 потребуется ещё больше кадров, чтобы обеспечить достаточное покрытие алгоритмом сверхразрешения и достичь приемлемого уровня шума.
Для типичного применения цветного сенсора, кода астрономическая видимость (seeing) хорошо согласуется с номинальным разрешением сенсора, рекомендуется использовать алгоритм сверхразрешения с масштабом и долей пикселя равным 1.0. Это восстановит разрешение в каждом цветовом канале (которое фактически имеет недостаточную дискретизацию [undersampling] из-за расстояния между цветными пикселями в CFA) и позволит избежать обычных артефактов дебайеризации. Если же вы ещё хотите увеличить дискретизацию изображения, используя масштаб > 1.0, имейте в виду, что пиксели, доступные в каждом канале, будут ещё более редки, и вам потребуется ещё больше данных, чтобы обеспечить адекватное покрытие и снизить уровень шума до приемлемого уровня.
Совет
Для применения алгоритма сверхразрешения к цветным изображениям, начните с масштаба и доли пикселя равным 1.0.
Доля пикселя устанавливает размер «капли», поступающей от входящей сетки. В данном случае применимы все комментарии, данные выше при описании процесса обработки монохромных изображений.
Для применения алгоритма сверхразрешения к CFA-изображениям используется тот же набор ядер, что и для монохромных изображений. Обратите внимание, что использование ядер, особенно подверженных созданию нулевых пикселей, может вызвать сложности при использовании алгоритма сверхразрешения для CFA-изображений. Если у вас десятки тысяч кадров, как в планетарном видео, ядро Турбо может работать нормально (и будет быстрым!), однако для последовательностей глубокого космоса с меньшим количеством кадров рекомендуется придерживаться ядер Квадрат или Гаусс. И помните, как упоминалось выше, что ядро Гаусс не сохраняет световой поток, поэтому, если вы собираетесь делать что-либо с использованием фотометрических методов, предпочтительнее использовать Квадрат.
Как и при обработке монохромных изображений, можно указать мастер-кадр плоского поля. Для использования мастер-кадра, установите флажок Включить мастер-кадр плоского поля.
Предупреждение
Мастер-кадр должен быть задан на вкладке Калибровка!
Теперь вы можете уложить последовательность с применённым свехразрешением как обычно, учитывая комментарии по выбраковке, данные для монохромных изображений. Они могут быть более заметны при использовании сверхразрешения для CFA-изображений, в случае если у вас недостаточное покрытие для поддержки некоторых алгоритмов выбраковки выбросов из-за бо́льшей разреженности входящих пикселей в каждом канале.
Совет
Если вы применяете сверхразрешение к данным CFA для получения бо́льшего разрешения, возможно, вы будете разочарованы, сравнивая результаты с уложенными дебайеризованными изображениями. Как правило, выигрыш есть, но он может быть незначительным (например, улучшение FWHM на несколько процентов) и, как правило, не будет столь впечатляющим, как улучшение разрешения, которое можно получить при применении алгоритма сверхразрешения к монохромным данным, имеющим недостаточную дискретизацию.
Причина этого в том, что при дебайеризации утраченное разрешение частично восстанавливается. Различные алгоритмы дебайеризации работают по-разному, но в целом все они основаны на принципах пространственной и спектральной корреляции, позволяющих определить часть разрешения, отсутствующего в одном канале, на основе информации, полученной из других [Losson2010].
Реальная причина, почему следует применять сверхразрешение к данным CFA — гораздо более чистый шум после применения сверхразрешения. Шум выглядит менее «зернистым», т.е. в нём отсутствует структура, которую можно увидеть на фоне типичного дебайеризованного стека CFA. Поэтому его легче уменьшить с помощью методов шумоподавления и он даёт более согласованные данные для фотометрических приложений, таких как калибровка цвета. При сильном растягивании, чтобы отделить слабые детали от фона, полученный фон выглядит более естественно.
На анимации ниже показано сравнение алгоритма сверхразрешения CFA с двумя различными значениями доли пикселя и двух классических алгоритмов дебайеризации.
Сравнение сверхразрешения CFA (обозначено как Bayer Drizzle) с классическими алгоритмами дебайеризации
VNG приведён как базовый ориентир: обратите внимание на цветовой артефакт вокруг более ярких звёзд.
RCD достаточно хорош с круглыми объектами, такими как звёзды.
Результат Bayer Drizzle 1.0 близок к RCD, но с лучшим уровнем шума и фоном
Bayer Drizzle 0.5 обеспечивает лучшее разрешение ценой большего уровня шума. Соотношение между разрешением и уровнем шума, обеспечиваемое долей пикселя, очевидно. При меньшей доле пикселя сверхразрешение CFA требует больше данных для достижения тех же показателей шума.
**НЕ ПАНИКУЙТЕ ** — следующие результаты могут показаться немного странными при просмотре отдельного кадра, к которому применено сверхразрешение, но это не ошибки — алгоритм работает так, как задумано. В большинстве случаев они устраняются естественным образом во время укладки. В остальных случаях их можно устранить, изменив параметры алгоритма сверхразрешения или добавив больше кадров с данными.
Из-за особенностей алгоритма сверхразрешения при увеличении масштаба некоторые итоговые пиксели могут не получить никаких данных. Они называются «пустыми пикселями» (null pixels) и имеют нулевое значение. Некоторые ядра компенсируют это, эффективно ограничивая долю пикселя, так что все итоговые пиксели получают некоторую часть входящих данных, а другие — нет.
Итоговые пиксели, которые не получили никаких входящих данных, остаются чёрными: поскольку они обычно расположены в виде узоров, основанных на геометрии преобразования из входящего кадра, они обычно выглядят как муаровые узоры, как показано на рисунке ниже:
Пример узоров, возникающих из-за «пустых» пикселей на изображении, обработанном с помощью алгоритма сверхразрешения
Не беспокойтесь об этом! При укладке Siril игнорирует пиксели, равные 0, поэтому, если у вас достаточно входящих кадров и подвижки между кадрами соответствующим образом распределены, все пиксели получат покрытие от достаточного количества пикселей, и итоговый стек будет в порядке. Однако, если при укладке вы используете меньшее количество входящих кадров, и это вызывает проблемы, попробуйте другое ядро алгоритма сверхразрешения. Здесь точно такое же изображение, обработанное с помощью алгоритма сверхразрешения в том же масштабе и с той же долей пикселя, но с ядром Квадрат вместо Турбо. Результат будет другим, и узор более не будет виден.
Использование другого ядра алгоритма сверхразрешения может устранить узоры из «пустых» пикселей
Одна из проблем, с которой вы можете столкнуться при укладке данных, обработанных с помощью алгоритма сверхразрешения, это если в данных слишком много «пустых» пикселей, то конечный результат может иметь странный «пятнистый» вид:
Типичный «пятнистый» стек, полученный при укладке данных, обработанных с помощью алгоритма сверхразрешения, в котором слишком много «пустых» пикселей или недостаточное количеством кадров
Обычно это происходит с ядрами точка, турбо или Ланцош. Вы можете исправить это, используя ядра квадрат или Гаусс, либо увеличив количество входящих кадров.
Используя ранее вычисленные данные регистрации (см. REGISTER), выполняет геометрическое преобразование изображений последовательности, указанной в аргументе таким образом, чтобы они могли быть наложены на опорное изображение.
Название итоговой последовательности начинается с префикса "r_", если с помощью опции -prefix= не указан иной.
Для RGB-изображений регистрация выполняется на первом слое, для которого существуют данные, если не указан иной слой с помощью опции -layer= (0, 1 или 2 для R, G и B, соответственно).
Итоговые изображения могут быть масштабированы с помощью аргумента -scale=, являющимся дробным значением в диапазоне от 0,1 до 3.
Автоматическое кадрирование итоговой последовательности может быть сделано с помощью опции -framing= и указанием метода кадрирования из списка { current | min | max | cog } :
-framing=max (ограничивающая рамка) проецирует каждое изображение и вычисляет его сдвиг относительно опорного. Итоговая последовательность может быть уложена с помощью опции -maximize команды STACK, которая создаёт полное изображение, включающее все изображения последовательности.
-framing=min (общая область) обрезает каждое изображение до области, общей с всеми остальными изображениями в последовательности.
-framing=cog определяет лучшее кадрирование как центр тяжести (center of gravity — cog) всех изображений.
Интерполяция изображений:
По умолчанию преобразования применяются к изображениям с использованием интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции по умолчанию используется фиксация (clamping), предотвращающая артефакты, но она может быть отключена с помощью аргумента -noclamp.
Сверхразрешение:
В противном случае изображения можно экспортировать с помощью алгоритма сверхразрешения HST, передав аргумент -drizzle, который может принимать дополнительные параметры:
-pixfrac= устанавливает долю пикселей (по умолчанию = 1.0).
-kernel= устанавливает ядро и обязательно принимает одно из следующих значений point (точка), turbo (турбо), square (квадрат), gaussian (Гаусс), lanczos2 (Ланцош-2) или lanczos3 (Ланцош-3). Значение по умолчанию — square.
-flat= указывает использовать ли мастер-кадр плоского поля для присвоения веса входящим пикселям при использовании сверхразрешения (по умолчанию — кадры плоского поля не используются).
Фильтрация изображений:
Изображения для регистрации могут быть отфильтрованы с помощью некоторых фильтров, например, выбранные или с лучшей FWHM, используя опции -filter-*.
Обратите внимание, что введение функции истинного сверхразрешения потребовало внесения некоторых изменений в существующие аргументы команд для бо́льшей ясности.
register и seqapplyreg имеют новый аргумент -drizzle, который, вместе с некоторыми связанными аргументами, активирует истинное сверхразрешение.
Olivier Losson, Ludovic Macaire, Yanqin Yang. Comparison of
color demosaicing methods. Advances in Imaging and Electron Physics, 2010,
162, pp.173-265, section 2.2.2.
https://hal.science/hal-00683233/document
A. S. Fruchter and R. N. Hook. (1997) A novel image
reconstruction method applied to deep Hubble Space Telescope images.
Proc. S.P.I.E. vol. 3164.
https://arxiv.org/abs/astro-ph/9708242
Последний шаг предварительной обработки в Siril — это укладка изображений. Укладка изображений — это метод, используемый в астрофотографии для повышения качества и детализации изображения путем объединения нескольких фотографий в одно составное изображение. Процесс включает в себя получение нескольких изображений одного и того же объекта, а затем выравнивание и усреднение кадров для снижения шума и увеличения соотношения сигнал/шум. Это приводит к получению конечного изображения с меньшим количеством шума, большей детализацией и большим динамическим диапазоном, чем при одиночной экспозиции.
Это самый простой алгоритм: каждый пиксель укладываемых кадров суммируется. Увеличение отношения сигнал/шум (SNR) пропорционально \(\sqrt{N}\), где \(N\) — количество изображений. Из-за отсутствия нормализации и отбраковки этот метод следует использовать только для планетарной обработки.
Для входных изображений с глубиной 8 или 16 бит на канал сумма вычисляется в виде 64-битного целого числа, затем нормализуется до максимального значения пикселя и сохраняется в виде 16-битного целого без знака или 32-битного изображения с плавающей запятой.
Этот метод укладки следует использовать для 8-битных входных изображений, поскольку он повышает динамику изображений при их укладке и делает различимыми детали. Суммирование такой последовательности с использованием методов среднего значения или медианы только уменьшило бы шум, но не улучшило динамику изображения, в результате чего глубина изображения все равно составила бы 8 бит.
Этот метод укладки вычисляет среднее значение пикселей в стеке после исключения отклоняющихся от нормы пикселей и дополнительной нормализации изображений относительно эталонного изображения. Что касается результирующего изображения, улучшение SNR пропорционально \(\sqrt{N}\). Существует несколько способов нормализации изображений и несколько способов обнаружения и замены или исключения отклоняющихся пикселей, описанных ниже.
Предупреждение
Некоторые операционные системы ограничивают количество одновременно открытых изображений, которые необходимы для укладки методами медианы или среднего значения. Для Windows это ограничение составляет 2048 изображений. Если у вас много изображений, вам следует использовать другой тип последовательностей, описанных здесь.
Обрезка по процентилям: это одношаговый алгоритм выбраковки, идеально подходящий для небольших наборов данных (до 6 изображений).
Обрезка по σ: итеративный алгоритм, который отбрасывает пиксели, отстоящие от медианы более чем на два заданных значения, указанных в единицах σ (Верхний порог, Нижний порог).
Обрезка по MAD: итеративный алгоритм, работающий аналогично обрезке по σ, но использующий в качестве оценки медианное абсолютное отклонение (MAD). Он обычно используется для обработки зашумленных инфракрасных изображений.
Медианная обрезка по :math:`sigma`: тот же алгоритм, что и Обрезка по \(\sigma\) за исключением того, что отброшенные пиксели заменяются медианным значением сложенного изображения.
Винсоризованная обрезка по :math:`sigma`: очень похож на метод обрезки по \(\sigma\), за исключением того, что он должен быть более надежным для обнаружения выбросов, см. работу Хубера [Peter2009].
GESDT[Rosner1983]: это обобщение теста Граббса (Grubbs Test), которое используется для обнаружения одного или нескольких выбросов в одномерном наборе данных, который приблизительно соответствует нормальному распределению. Данный алгоритм демонстрирует прекрасную производительность на больших наборах данных, имеющих более 50 изображений.
Линейная обрезка[ConejeroPI]: подбирает наилучшую прямую линию (\(y=ax+b\)) пикселей уложенного изображения и отсекает выбросы. Этот алгоритм очень хорошо работает с большими стеками и изображениями, содержащими градиенты неба с различающимися пространственным распределением и ориентацией.
Note that for drizzled CFA images, you may find difficulty in achieving
satisfactory rejection in the Red and Blue channels with some methods. In these
cases the MAD Clipping method appears to be the most effective.
Карты выбраковки
Опция Создать карты выбраковки вычисляет и создает карты отклонения в ходе укладки. Это изображения, показывающие, сколько изображений было отклонено для каждого пикселя итогового изображения, деленное на количество сложенных изображений. Если отмечена опция Объединить L+H, Siril создает только одну карту выбраковки, которая будет суммой карт низов и верхов.
Пример карты выбраковки (L+H). Мы можем очень четко видеть удалённый след спутника.
Присвоение веса позволяет придать статистический вес каждому изображению. Таким образом, изображения, которые считаются лучшими, будут иметь больший вес, чем те, которые считаются худшими. Доступны четыре метода присвоения веса:
Кол-во звёзд присваивает вес отдельным кадрам на основе количества звезд, вычисленного на этапе регистрации.
Со взвешенной FWHM присваивает вес отдельным кадрам на основе wFWHM, вычисленной в ходе регистрации. Это FWHM, взвешенный по количеству звёзд на изображении. При одном и том же измерении FWHM изображение с большим количеством звёзд будет иметь лучшую wFWHM, чем изображение с меньшим количеством звёзд.
Шум присваивает вес отдельным кадрам на основе значения шума фона.
Кол-во изображений присваивает вес отдельным кадрам на основе их времени интеграции.
Available since Siril 1.3, this submenu allows to perform a smoother stitching
between images with little overlaps. It is the first step of mosaic stitching which
we plan to expand further in next releases.
Borders feathering applies a feathering mask on each image during stacking.
The smoothing is applied over X pixels distance, X between the value you set
with this interface. The masks are cached in the ./cache subfolder.
Borders feathering applied to a 3x2 mosaic (negative). Images courtesy of G. Attard
Normalization on overlaps will compute the normalization factors on the images
overlaps instead of whole images. This is useful when images have little overlap
and when the nature of the data in each tile is very different accross all images
(some images with mostly nebulosity and others with mainly black sky). As it is longer
to compute than regular normalization, you should try without ticking this option
first. This feature is intended for stitching stacked mosaic tiles so it will
throw a warning if you try to compute it for a long sequence (i.e. for subs
acquired with a smart telescope in mosaic mode). It is only available if
maximize framing is enabled.
Global vs overlap normalization on a 2x1 mosaic. Images courtesy of D. Huber
Теория
The normalization on overlaps has been derived from the algorithm for gain
compensation from [Brown2007]. The full write-up of the modifications is
described in the contributors documentation.
Этот метод наиболее часто используется для укладки кадров темнового тока/плоского поля/смещения. Медианное значение пикселей в итоговом изображении вычисляется для каждого пикселя.
Увеличение SNR пропорционально \(0.8\sqrt{N}\) и, следовательно, хуже, чем при суммировании по среднему значению, которое обычно предпочтительнее.
Этот алгоритм в основном используется для создания изображений звездных следов с длительной экспозицией. Пиксели изображения заменяются пикселями с теми же координатами, имеющими наибольшую интенсивность.
Этот алгоритм в основном используется для кадрирования последовательности путем удаления черных границ. Пиксели изображения заменяются пикселями с теми же координатами, имеющими более низкую интенсивность.
При нормализации уровни каждого изображения будут сопоставлены с опорным изображением. Это особенно полезно для укладки методом Среднее с выбраковкой пикселей, поскольку, при наличии на изображениях видимых различий в уровнях, выбраковка пикселей не очень полезна. Эти различия могут быть вызваны легкой туманностью, градиентом освещенности, вызванным луной или городскими огнями, изменением температуры датчиков и так далее.
Это приводит к улучшению отношения сигнал/шум, и поэтому этот параметр используется по умолчанию при аддитивной нормализации.
Если выбран один из этих 5 пунктов, то перед объединением всех входных изображений будет выполнен процесс нормализации.
Нормализация выравнивает средний фон всех входных изображений, затем нормализация подвергается умножению или сложению. Имейте в виду, что оба процесса обычно приводят к схожим результатам, но мультипликативная нормализация предпочтительнее для изображения, которое будет использоваться для умножения или деления как плоское поле.
Масштаб выравнивает дисперсию путем присвоения веса всем входным изображениям. Это позволяет улучшить соотношение сигнал/шум, и поэтому этот параметр используется по умолчанию при аддитивной нормализации.
Нормализация
Действие
Когда использовать
Нет
Нормализация не была применена.
кадры темнового тока/кадры шума считывания
Аддитивный
Средние фоновые значения будут выровнены с помощью применения аддитивных операций.
Мультипликативный
Для выравнивания средних фоновых значений будет использоваться деление.
кадры плоского поля
Аддитивный с масштабированием
В сочетании с аддитивным фоном, полученным аддитивным выравниванием, изображения будут масштабироваться для достижения выравнивания дисперсии.
отдельные субэкспозиции (light frames)
Мулитипликативный с масштабированием
В сочетании с фоном, выравненным путём деления, изображения будут масштабироваться для достижения выравнивания дисперсии.
Примечание
Мастер-кадры шума считывания и темновые мастер-кадры не должны подвергаться нормализации. Однако для кадров плоского поля обязательно надо использовать мультипликативную нормализацию.
Имейте в виду, что оба процесса обычно приводят к схожим результатам, но мультипликативная нормализация предпочтительнее для изображения, которое будет использоваться для умножения или деления в виде плоского поля.
Поскольку этап расчета нормализации обычно является длительным, так как требует определения всех статистических данных изображения, результаты сохраняются в файле seq. Таким образом, если пользователь захочет выполнить ещё одну укладку, изменив параметры выбраковки, то она будет выполнена быстрее. Опция Пересчитать позволяет принудительно выполнить перерасчет нормализации.
По умолчанию Siri использует IKSS функцию оценки местоположения и масштаба для вычисления нормализации. Для длинных последовательностей вычисление этих функций оценки может быть довольно трудоемким. В таких случаях вы можете выбрать более быстрые функции оценки (основанные на медиане и среднем абсолютном отклонении) с помощью опции :guilabel: "Быстрая нормализация". Хотя они менее устойчивы к выбросам на каждом изображении, они все же могут дать удовлетворительный результат по сравнению с полным отсутствием нормализации.
Также можно отбраковать некоторое количество изображений, чтобы выбрать только лучшие. Это может быть очень полезно для метода удачных экспозиций DSO (Lucky imaging), когда количество изображений в последовательности очень велико. Можно выбрать между % и k-\(\sigma\), чтобы либо сохранить заданный процент изображений, либо рассчитать допустимый порог, используя отсечение k-\(\sigma\).
все: при укладке используются все изображения последовательности.
выбранные: используются только те изображения, которые отмечены выбранными в последовательности.
FWHM: изображения с наилучшим вычисленным значением FWHM (только регистрация на основе звезд).
со взвешенной FWHM: это усовершенствование простой FWHM. Оно позволяет исключить гораздо больше некачественных изображений, используя количество обнаруженных звезд по сравнению с эталонным изображением (только регистрация на основе звезд).
с лучшей округлостью: изображения с наилучшей округлостью звезд (только регистрация на основе звезд).
фон: изображения с самым низким значением фона (только регистрация на основе звёзд).
кол-во звёзд: изображения с максимальным количеством обнаруженных звёзд (только регистрация на основе звёзд).
с лучшим качеством: изображения с лучшим качеством (регистрация планет DFT или Kombat).
Если отмечена опция Нормализация вывода, то итоговое изображение будет нормировано к диапазону [0, 1], если вы работаете с данными в 32-битном формате, либо к диапазону [0, 65535] в остальных случаях.
Предупреждение
Не следует включать эту опцию при укладке мастер-кадров.
Если включена опция Выравнивание RGB, то каналы в итоговом изображении будут выровнены (только для цветных изображений).
If Maximize framing is checked, the output image will encompass
all the images. Note this option is forced if the images have different sizes.
If Interpolation upscaling x2 is ticked, the images will be
upscaled during stacking. Note this option is not always available.
Selecting Force 32b forces the stacked image to be saved as a float
image irrespective of the bitdepth set in the Preferences.
Результат суммирования сохраняется под именем, указанным в текстовом поле. Для создания имени файла можно использовать:ref:разбор пути <Pathparsing:Path parsing>. Если отмечена опция Перезаписать, это позволяет вновь созданному файлу перезаписать старый, если он существует. Если эта опция не установлена, но изображение с таким же именем уже существует, то новый файл не создается.
Этот раздел проведет вас через различные этапы обработки изображений. Выпадающее меню доступно в верхней панели заголовка с помощью кнопки Обработка. Инструменты группируются в меню и подменю, и в этой документации тоже, по темам.
Изображения хранятся в виде значений пикселей, которые поступают с камеры по квазилинейному закону, что означает, что для областей неба, на которых нет видимых особенностей, значение пикселя будет близко к нулю, но для ярких объектов, таких как звёзды, оно будет близко к максимальному значению в зависимости от экспозиции и усиления. Между тем, если туманность имеет поверхностную величину в половину звезды, она будет иметь значения пикселей в половину от звёздных и так далее. Это то, что мы называем линейным пиксельным режимом.
Человеческий глаз не воспринимает фотоны таким образом. Он усиливает тёмные области, поэтому объект, который в десять раз менее яркий, чем другой, будет казаться в два раза тусклее. Для астрономических изображений мы обычно отображаем их с подобным масштабированием значений пикселей (см. режимы отображения в графическом интерфейсе).
Но это всего лишь трюк с отображением, использующий функцию передачи экрана, для преобразования значений пикселей исходного изображения в более привлекательное визуальное представление.
Растяжение изображения заключается в выполнении подобной операции, но с модификацией значений пикселей самого изображения, а не просто изменением их отображения. В Siril существует три основных инструмента для достижения этой цели.
Преобразование asinh, или обратный гиперболический синус, изменит значения пикселей изображения способом, аналогичным тому, что можно увидеть с помощью режима отображения asinh, который регулируется ползунками отсечения низких и высоких значений. Здесь же параметрами являются коэффициент растягивания и значение черной точки.
где rgb_original вычисляется с использованием значений пикселей трех каналов.
A clipping mode can also be set.
Теория
As rgb_original is an average of the 3 channels, one or two channel values
will be greater than rgb_original and can therefore clip. This can cause color
artefacts when bright, strongly-colored regions are stretched. In order to
avoid this problem the RGB blend clipping algorithm was developed by the
authors of the original GHSastro tool: the same algorithms are available in
the Siril implementation and this is the default clipping mode for stretches
that require handling of clipping. The \((r, g, b)\) values are stretched first
based on the luminance value rgb_original to give \((r', g', b')\). Then
the original \((r, g, b)\) values are independently stretched to give
\((r'', g'', b'')\). Finally the largest value of \(k\) is identified
such that
\(k \times r' + ( 1 - k ) \times r'' ≤ 1\);
\(k \times g' + ( 1 - k ) \times g'' ≤ 1\);
и
\(k \times b' + ( 1 - k ) \times b'' ≤ 1\)
Затем преобразованные значения вычисляются как
\(( k \times r' + ( 1 - k ) \times r'', k \times g' + ( 1 - k ) \times g'', k \times b' + ( 1 - k ) \times b'')\)
This RGB blend clipping algorithm is also available for the Generalised Hyperbolic
Stretch transforms described below.
Other choices of clipping algorithm are available:
Clip - this clipping mode just allows any colour components that clip to
clip, but restricts them to values in the range 0.0 to 1.0. This may suffer
from coloured artefacts such as fringes around nearly-saturated stars, but
it is extremely quick to calculate.
Rescale - this clipping mode checks the R, G and B components of each
pixel and if any are > 1.0 it rescales the pixel so that no components are
clipped. This method is prone to artefacts and is mainly included for feature
equivalence with the GHSastro plugin. It is quick to compute.
Global Rescale - this clipping mode behaves similarly to Rescale except
that the scaling is computed globally instead of per-pixel. This avoids
the kind of artefacts that Rescale can produce, but has a bigger impact on
overall image brightness. This is faster than RGB blending to compute
but slower than Clip or Rescale.
When the Use Human-weighted Luminance option is not ticked, rgb_original is the
mean of the three pixel values; when it is set, weighting changes to 0.2126
for the red value, 0.7152 for the green value and 0.0722 for the blue value,
which gets results closer to human perceptual color balance.
Командная строка Siril
asinh [-human] stretch { [offset] [-clipmode=] }
Преобразует изображение, используя функцию arcsin, благодаря чему становятся видны тусклые объекты. Обязательный аргумент команды — stretch, обычно в диапазоне от 1 до 1000, определяет интенсивность растягивания. Точка чёрного может быть смещена с помощью аргумента offset в нормализованном значении пикселя в диапазоне [0, 1]. Наконец, аргумент -human позволяет использовать веса на основе относительной чувствительности человеческого глаза для вычисления светимости, применяемой при расчёте растягивания для каждого пикселя, а не просто средние значения пикселей каналов. Этот метод растягивания сохраняет светимость в цветовом пространстве L*a*b*. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Преобразование гистограммы (преобразование функцией передачи полутонов, MTF)
Преобразование гистограммы (MTF) является одним из самых мощных инструментов для растягивания изображения. Он может легко автоматизироваться, и именно поэтому в автоматическом растягивании используется именно этот метод.
Инструмент представлен в виде гистограммы с тремя ползунками (в форме треугольника, расположенных под ней), которые необходимо двигать для преобразования изображения. Треугольник слева представляет сигнал теней, справа — света (ярких деталей), а тот, что посередине, — параметр баланса полутонов. Значения этих ползунков отображаются под гистограммой слева и могут быть изменены непосредственно вручную. Напротив показан процент пикселей, обрезаемых при преобразовании: важно не обрезать слишком много пикселей. Если изменяется только параметр полутонов, то никакие пиксели обрезаны не будут.
Теория
Новые значения пикселей затем вычисляются с помощью следующей функции:
Обычно не рекомендуется изменять значение для света (ярких деталей), так как в этом случае они могут стать пересыщенными, и информация будет потеряна.
The toolbar contains many buttons that affect the visualization of the
histogram. You can choose to display the input histogram, the output
histogram, the transfer curve and the grid. The button
allows you to apply the same transformation as the autostretch algorithm. It
is rarely advisable to use this button as is. Adjustments are usually
necessary to avoid losing information.
Совет
When the button is pressed, the sliders and
lo, mid and hi entries will become temporarily inactive. You have to apply
the autostretch with the Apply button and the controls will
reactivate. You can then apply adjustments as a second follow-up stretch.
This behaviour avoids problems where the monitor ICC profile is different
to the image ICC profile.
At the top of the histogram it is also
possible to choose to display the histogram in logarithmic view, as in the
illustration. This behavior can be made default as explained
here. Finally a zoom in X
is available. This is very useful when all the signal is concentrated on
the left of the histogram.
Совет
If a ROI is set, the MTF histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Командная строка Siril
mtf low mid high [channels]
Применяет передаточную функцию полутонов к изображению, загруженному в настоящий момент.
Необходимы три параметра low, midtones и high, где параметр баланса полутонов (midtones) определяет нелинейное растяжение гистограммы в диапазоне [0,1]. Для автоматического определения параметром см. AUTOSTRECH.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам
Автоматически растягивает текущее загруженное изображение с различными параметрами для каждого канала (если каналы несвязаны), если только не передан аргумент -linked. Необязательные аргументы: shadowclip — точка обрезки теней, выраженная в значениях σ от основного пика гистограммы (по умолчанию -2.8); targetbg — целевое значение фона, в диапазоне [0, 1] (по умолчанию 0.25), определяющее окончательную яркость изображения. Значениями по умолчанию являются используемые при визуализации авторастягивания в графическом интерфейсе пользователя.
Не используйте несвязанную версию после калибровки цвета, поскольку это повлияет на баланс белого
Применение преобразования к последовательности
Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и определить префикс вывода для новой последовательности (по умолчанию stretch_), или использовать следующую команду:
Командная строка Siril
seqmtf sequencename low mid high [channels] [-prefix=]
Аналогична команде MTF, но применяется к последовательности sequencename.
Название итоговой последовательности начинается с префикса "mtf_", если с помощью опции -prefix= не указан иной
Это самый функциональный и современный инструмент в Siril, однако также и самый сложный для изучения. Очень подробный учебник по использованию этого инструмента в Siril был написан авторами данного алгоритма: https://siril.org/tutorials/ghs. Здесь мы лишь кратко подведем итоги основной работы с этим инструментом.
Простыми словами, GHS способен улучшать контраст в определённом диапазоне яркости на изображении. Например, если нужно лучше рассмотреть детали в части туманности со средней или высокой яркостью (что обычно очень слабо выражено на астрономических изображениях), можно выбрать именно этот диапазон для растягивания. Этот инструмент отлично справляется с улучшением контраста основных объектов без чрезмерного увеличения размеров звёзд. Инструмент в значительной степени основан на итеративном использовании, то есть растягивании на изображении различных диапазонов яркости один за другим, небольшими корректировками.
Для достижения этой цели инструмент в значительной степени полагается на отображение гистограммы и взаимодействие с ней для каждого цветового канала. Функция преобразования, имеющая форму гиперболы или буквы 'S', может быть изменена путем перемещения ее центра (параметр — точка симметрии (SP)), выравнивания любого из ее концов (с помощью параметров защиты теней и ярких участков — Точка сохранения теней (LP) и Точка cохранения светов (HP)) и, конечно, настройки силы её изгиба (коэффициенты растягивания (ln(D+1)) и локального растягивания (b)). Использование этих параметров на маленьком изображении (для повышения скорости) со значением SP , равным 0.5, поможет вам лучше понять их влияние.
На каждой итерации нужно выполнить две основные операции: выбрать диапазон источников света для изменения и фактически изменить его. Выбор диапазона довольно прост, это вопрос нахождения репрезентативного значения (SP) и определения ширины диапазона (b). Установка SP может быть выполнена тремя способами:
выберите область на изображении с подходящей яркостью и нажмите на кнопку выбора
щелкнуть по самой гистограмме один раз левой кнопкой мыши (можно увеличить гистограмму с помощью кнопки + в левом верхнем углу)
с помощью ползунка или связанных с ним кнопок плюс и минус или прямого ввода значения.
Ширина диапазона зависит от локального растяжения. Высокое значение b создаст небольшой диапазон и увеличит контраст в небольшом диапазоне яркостей на изображении.
Модификация гистограммы после установки точки изменения является более сложной операцией. Одной из целей, обозначенных авторами алгоритма, является приведение логарифмического представления гистограммы (включаемого с помощью соответствующей галочки) как можно ближе к убывающей линии. Для этого необходимо вырезать выпуклости и заполнять впадины. Вот быстрое руководство по использованию значений в зависимости от того, что требуется достичь:
Начальное растяжение из линейного состояния: установите SP немного левее главного пика, умеренное значение b от 6 и выше, слегка увеличьте D, чтобы только начать видеть основной объект. Не растягивайте слишком сильно на этом этапе, как это делает автоматическое растяжение, иначе звезды станут слишком большими (основной раздел руководства по этой теме).
Улучшение контраста диапазона или заполнение впадины: установите SP в центр впадины на гистограмме, задайте b настолько высоким, чтобы он соответствовал узости диапазона впадины, уменьшите HP, чтобы сохранить звезды, медленно увеличивайте D, пока улучшение не станет заметным.
Уменьшение контраста диапазона или сглаживание пика: уменьшение пика не так просто выполнить, но оно может произойти как побочный эффект от заполнения впадин. Например, создание пика или заполнение впадины приведет к уменьшению того, что находится левее SP. Другая возможность — использовать инвертированное обобщённое гиперболическое преобразование, выбрав его из выпадающего списка Тип растягивания, установив высокое значение LP и HP равным 1.
Сдвиг кривой влево, делая изображение темнее: часто после растяжения всей гистограммы пик смещается вправо, что делает фон слишком ярким. Существует простой способ просто сдвинуть всё влево — в выпадающем списке Тип растягивания выберите последний пункт, Линейное растягивание (сдвиг BP). Теперь есть только один ползунок для перемещения, который управляет величиной сдвига.
Совет
If a ROI is set, the GHT histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Некоторые операции также применимы для цветных изображений, где часто требуется получить схожую форму кривой для всех трех каналов. При этом каждый канал можно обрабатывать независимо, отключая их с помощью трех цветных кругов под гистограммой:
Обобщённое гиперболическое преобразование с цветным изображением
сдвиг пика вправо: простое растяжение со значением SP, установленным левее пика, как правило делает это, поэтому данная операция должна быть частью процесса растяжения.
spreading a peak: to stretch a channel a bit more and it give it more
importance in the final result, without changing the location of the peak too
much, set SP near the peak or slightly to its right, set b depending
on how the contribution is expected throughout the channel, between a
negative value if the impact shall be felt up to the stars levels (to change
their color) and a high value if this is only for a nebula, increase D to
obtain the target width of the peak, and
then offset the peak to the left by decreasing HP.
сдвиг всех каналов вместе: существует альтернативное растяжение на основе отображения яркости, см. выпадающий список Цветовая модель растягивания в верхнем правом углу окна обобщённого гиперболического преобразования. Использование любого из значений растяжения яркости будет растягивать яркость и наносить цвета обратно на неё вместо прямого растяжения трёх каналов. Режимы яркости могут лучше сохранять цвета на изображении. Эти режимы используют описанный выше алгоритм обрезки смешивания RGB для предотвращения артефактов обрезки цветовых каналов.
изменение насыщенности изображения: обобщённое гиперболическое преобразование можно применить к каналу насыщенности изображения, выбрав опцию Растянуть насыщенность в выпадающем списке Модель растягивания. При выборе этого режима гистограмма насыщенности до и после растяжения будут отображаться жёлтым цветом. Все параметры GHS доступны, и этот режим позволяет осуществлять высокоточную корректировку канала насыщенности изображения. Простой способ увеличения насыщенности в относительно малонасыщенных областях, предотвращая перенасыщение, заключается в использовании инвертированного обобщённого гиперболического преобразования с SP, установленным около 0.5, и снижением HP до уровня, достаточного для выравнивания верхней части гистограммы насыщенности.
In order to control partially-clipped highlights, the GHS tool makes available the
same range of clipping modes as the asinh stretch. Details can be found here.
Изображение выше демонстрирует, как применение инструмента Обобщённого гиперболического преобразования к каналу насыщенности предоставляет простой способ значительного усиления насыщенности в изображении с низкой насыщенностью, сохраняя при этом контроль над верхней частью гистограммы насыщенности. На примере показано создание изображения 'Минеральной Луны', подчёркивающего различный минеральный состав различных областей лунной поверхности.
Обобщённое гиперболическое растягивание, основанное на работе группы ghsastro.co.uk.
Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
B определяет интенсивность растягивания вблизи точки фокуса (focal point); принимает значения между -5 и 15;
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не даны, используются значения по умолчанию для B, LP и SP — 0.0, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Инвертирует обобщённое гиперболическое растягивание. Предоставляет обратное преобразование GHT с теми же параметрами (если указаны), отменяет команду GHT, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и GHT, но для негативных изображений
Модифицированное растягивание по arcsinh, основанное на работе группы ghsastro.co.uk.
Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не указаны, используются значения по умолчанию 0.0 для LP и SP, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Инвертирует модифицированное преобразование по arcsinh. Предоставляет обратное преобразование MODASINH с теми же параметрами (если указаны), отменяет команду MODASINH, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и MODASINH, но для негативных изображений
Выполняет линейное растягивание изображения к новой точке чёрного BP.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам.
Необязательный параметр -sat может быть использован для применения линейного растягивания к каналу насыщенности (saturation channel) изображения. Этот аргумент работает только если выбраны все каналы. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Применение преобразования к последовательности
Это преобразование можно легко применить к последовательности изображений. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем установить флажок Применить к последовательности и задать префикс вывода для новой последовательности (по умолчанию stretch_). Все команды также имеют форму обработки последовательностей. Каждая команда растяжения последовательности начинается с seq, а первым аргументом должно быть имя последовательности, но в остальном они такие же.
Аналогична команде GHT, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Аналогична команде INVGHT, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде MODASINH, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Аналогична команде INVMODASINH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде LINSTRETCH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Curves Transformation is a highly versatile tool used to adjust the contrast and brightness
of an image by modifying the pixel values according to a custom-defined curve. This allows
for precise control over the image's stretch.
The curve is defined by a series of points, each of which can be moved to adjust the
curve. The curve is interpolated between these points, and the pixel values are transformed
based on it. This allows for a wide range of transformations to be applied to the
image, from simple linear stretches to complex non-linear adjustments.
There are two interpolation algorithms available in the Curves Transformation dialog: linear
and cubic spline.
Теория
Linear interpolation is a simple interpolation that connects the points with straight lines.
For each pair of points, the slope of the line connecting the points is calculated:
Cubic spline curves are more complex curves that are defined by a series of control
points. For pixel value \(x\) between two control points \(x_i\) and \(x_{i+1}\),
the curve is defined by the following equation:
For \(x_i < x < x_{i+1}\), the coefficients \(a_i, b_i, c_i\), and \(d_i\) are calculated by
solving a system of equations derived from the conditions of continuity and
smoothness at each internal point. These conditions are:
The spline must be continuous at each internal point,
The first derivative of the spline must be continuous at each internal point,
The second derivative of the spline must be continuous at each internal point
Since Curves Transformation uses natural cubic splines, the second derivative at both endpoints is 0.
Предупреждение
Curves Transformation is only available as a GUI tool and cannot be used from the command line.
Curves Transformationcan display the histogram of the image in two modes: linear and logarithmic.
You can swap between these modes by clicking the Logarithmic scale checkbox at the top of the histogram.
Logarithmic scale is useful for images with a wide dynamic range, as it allows you to see the histogram in the shadows
and highlights more clearly.
Совет
If a ROI is set, the histogram preview will not update to show the impact
of the stretch on the ROI. This is because that behaviour could be misleading:
if the ROI is not typical of the image overall, adjusting the ROI histogram
to a suitable level would result in a badly adjusted histogram for the
overall image and potentially a burned-out or excessively dark look to the
result. When in ROI mode the stretch parameters should be adjusted by eye.
If it is desired to check the histogram for the stretch as applied to the
image as a whole, the ROI should be cleared.
Some common uses of the Curves Transformation tool include:
"S" curve: This curve is used to increase the contrast of an image. By increasing the
slope of the curve in the middle of the histogram, the contrast is increased.
BP & WP adjustments: The black point (BP) and white point (WP) of an image can be adjusted
by moving the first and last control points of the curve. This allows for the shadows and
highlights of the image to be adjusted independently.
An example of adjusting the black point and white point of an image
Targeted adjustments: By adding control points at specific locations in the histogram, targeted
adjustments can be made to the image. For example, the shadows can be darkened without affecting
other parts of the image.
The Curves Transformation tool is best used on an image that has already been stretched to
some extent. This allows for more precise control over the image's contrast and brightness.
This transformation can easily be applied to a sequence. All you have to do is
define the transformation on the loaded image while a sequence is loaded
and check the Apply to sequence button. Similarly to other stretching
tools, you can define the output prefix of the new sequence (curve_ by default).
Калибровку цвета обязательно нужно выполнять на линейном изображении, гистограмма которого еще не растянута. В противном случае правильность полученных цветов не гарантируется.
Первый шаг касается фона вашего изображения. Цель состоит в том, чтобы выровнять слои RGB так, чтобы фон выглядел как нейтральный серый цвет.
После выбора области на изображении (не слишком переполненной и не слишком контрастной), нажмите на кнопку Использовать текущее выделение. Отображаются координаты прямоугольника. Затем нажатие на кнопку Нейтрализация фона вычислит медиану каждого канала и выровняет их.
Второй шаг касается ** ярких объектов** на изображении. Вы можете снова изменить гистограмму двумя способами:
Вручную, с Ориентиром белого и 3 коэффициентами R, G и B, в соответствии с вашим собственным вкусом.
Автоматически, выделив прямоугольную область с контрастным объектом (так же, как и ранее)
Два ползунка позволяют вам изменить предел выбраковки для слишком тёмных и слишком ярких пикселей в выделенной области.
Поскольку это процесс проб и ошибок, вы можете отменить результат с помощью кнопки Отменить (вверху слева), а затем попробовать выделить другие области или использовать другие коэффициенты, пока не будете удовлетворены.
The calibration of the colors by photometry must imperatively be carried
out on a linear image whose histogram was not yet stretched. Otherwise,
the photometric measurements will be wrong and the colors obtained without
guarantee of being correct.
Another way for retrieving the colors is to compare the color of the stars in
the image with their color in catalogues, to obtain the most natural color in
an automatic and non-subjective way. This is the PCC (Photometric Color
Calibration) tool (Ctrl + Shift + P). It can only work for
images taken with a set of red, green and blue filters for colors, or on-sensor
color. To identify stars within the image with those of the catalogue, an
astrometric solution is required. Please see the documentation of the
plate solver module.
This method is less accurate than Spectrophotometric Color Calibration explained
below, however it can be performed using local catalogues and is therefore the
best option when an internet connection is not available.
Примечание
Эта техника сильно зависит от типа используемого фильтра. Использование различных типов фильтров R, G, B не будет иметь большого значения, но использование фильтра светового загрязнения или отсутствие ИК-фильтров приведет к существенным отклонениям в решении и не даст ожидаемых цветов.
Since version 1.4, the two tools run independently: it is possible to run the
photometric analysis and color correction of the image only if the image has
been already plate solved. It also means different catalogues can be used for
PCC and astrometry. The tool is also available as the pcc command, so it can
be embedded in image post-processing scripts.
If the image was previously plate solved, turn on the
annotations feature to check that
catalogues align with the image. If the astrometric solution is not good
enough, please redo a plate solving.
The Catalog Settings section allows you to choose which photometric
catalog should be used, NOMAD, APASS or Gaia DR3, as well as the limiting
magnitude.
Совет
The NOMAD and GAIA catalogs can be locally installed,
while the APASS catalog requires internet access to obtain its
contents.
The local Gaia catalog used for PCC is the astrometric extract, which is
a much smaller download than the whole SPCC catalog. If this is available
it will be shown as the default.
Примечание
Whereas the NOMAD and APASS catalogs use the catalogued B-V index and
estimate the effective temperature from this value, Gaia provides an
accurately modelled effective temperature therefore when this catalog is
used the Teff field is used directly, giving more accurate results.
Раздел "Обнаружение звезд" позволяет вам вручную выбрать, какие звезды будут использоваться для фотометрического анализа. Лучше, чтобы их было как минимум несколько сотен, так как выбор отдельных звёзд не будет идеальным.
If desired, the Background Reference can be manually selected as
described in Manual Color Calibration.
This can be useful in the case of nebula images where the background sky parts
are small.
Когда будет найдено достаточное количество звезд и астрометрическое решение будет правильным, фотометрическая калибровка цвета выведет этот текст на вкладке консоли:
Applying aperture photometry to 433 stars.
70 stars excluded from the calculation
Distribution of errors: 1146 no error, 18 not in area, 48 inner radius too small, 4 pixel out of range
Found a solution for color calibration using 363 stars. Factors:
K0: 0.843 (deviation: 0.140)
K1: 1.000 (deviation: 0.050)
K2: 0.743 (deviation: 0.130)
The photometric color correction seems to have found an imprecise solution, consider correcting the image gradient first
Мы можем понять, что из каталога и изображения для фотометрического анализа было выбрано 433 звезды, но каким-то образом мы фактически использовали только 363, исключив 70. Строка Распределение ошибок объясняет, по какой причине они были исключены: 18 не были найдены в ожидаемом положении, 48 были слишком большими, а 4, вероятно, насыщенными. Очень часто бывает так, что многие звезды отклоняются, потому что они не соответствуют строгим требованиям для корректного фотометрического анализа.
Мы также видим, что фотометрическая калибровка цвета нашла три коэффициента для применения к цветовым каналам для коррекции баланса белого. Здесь отклонение, представляющее собой среднее абсолютное отклонение цветокоррекции для каждой звезды фотометрического набора, является умеренно высоким. На хорошо откалиброванных изображениях без градиента, с правильными фильтрами и без цветной туманности, покрывающей все изображение, отклонение приблизилось бы к 0.
Запускает фотометрическую коррекцию цвета на загруженном изображении, имеющем астрономическое решение.
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений смещения (+offset или -offset) ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
По умолчанию используется каталог звёзд NOMAD. Используемый каталог можно изменить, указав -catalog=apass, -catalog=localgaia или -catalog=gaia. Если доступна локальная версия полного каталога NOMAD, можно использовать её с помощью -catalog=nomad
Допустимое отклонение от значения фона может быть указано в единицах σ с помощью -bgtol=lower,upper: значения по умолчанию равны -2.8 и +2.0, соответственно
The calibration of the colors by photometry must imperatively be carried
out on a linear image whose histogram was not yet stretched. Otherwise,
the photometric measurements will be wrong and the colors obtained without
guarantee of being correct.
Spectrophotometric Color Calibration (Ctrl + Shift + C) is
the newest method of color calibration available in Siril. This method uses the
extensive spectral data available in the Gaia DR3 catalogue [GaiaDR3]. This can
be accessed either through direct querying of the online catalogue or by downloading
a local extract and querying the local catalogue.
Предупреждение
Note that when the Gaia archive is offline for maintenance or due to a fault,
Siril's SPCC functionality will not be available via the remote catalog.
Fortunately the archive is normally very reliable, however a status indicator is built into the SPCC dialog. The archive status is checked when the dialog starts
up and can be re-checked by clicking the status button.
The offline Gaia SPCC extract will still work fine if the Gaia archive is offline.
What's the difference between SPCC and PCC? When should I use one rather
than the other? SPCC is a more accurate version of PCC and renders the
latter obsolete. SPCC takes your setups sensor and filters into account. As
a result, the color produced is closer to "reality". The example in the
picture below illustrates the difference in results.
Comparison between PCC (left) and SPCC (right): click to enlarge.
(Courtesy of Ian Cass)
From 1.4.0 an offline SPCC catalog is available using Gaia DR3 data. Note that the
catalog is chunked into 48 files covering each level 1 HEALpixel.
Теория
HEALpix (Hierarchical Equal Area isoLatitude Pixelisation) is an algorithm for
pixelising a sphere based on subdivision of a distorted rhombic dodecahedron.
Mathematical details can be found on Wikipedia [Wiki_HEALPIX]. Gaia sources
use a Level 12 NESTED HEALpix scheme and the HEALpixel number is encoded into
the source_id. The specification of the Gaia DR3 catalogue extracts and their
file format is documented here (PDF).
The nested nature of the scheme means that HEALpixels that are close together
in the sky have numbers that are close together. The hierarchical property also
means that it is possible to index sources in HEALpixels at a deep HEALpixel
level and divide the catalog into chunks at a shallower level while still
supporting a highly efficient catalog search algorithm.
It is possible to download the entire catalog or only the chunks you need. The
folder location to store the catalog files is set in
Preferences->Astrometry.
Sirilpy script
The easiest way to install the catalog is to use the built-in Python script
Siril_Catalog_Installer.py in the Scripts->Python Scripts menu.
This provides an interface that allows you to install either the whole catalog,
or only the chunks that are visible from your observing latitude above a certain
elevation, or only sets of chunks corresponding to certain themes (Milky Way,
Summer Triangle, Galaxy Season etc.) Select the latitiude / elevation or area
of interest if desired, and then select the selection method (All, Visible
from Latitude or Area of Interest).
You can preview the coverage using the Preview coverage button.
Finally, clicking Install will download, verify, uncompress and
install the selected chunks and also set the catalog path in Siril's preferences.
A default catalog path is suggested in the text entry widget, but can be changed
to a different location if you prefer.
If you wish to install the offline SPCC catalog files manually, they can be downloaded
from Zenodo. Either individual level 1
HEALpixels can be downloaded or the entire catalog can be downloaded as an archive.
Совет
When you download "All Files" from the Zenodo record, the download is a zip
archive that you will need to extract, however the zip archive is just a
convenient way of bundling all of the individual files; the data files inside
the zip archive are themselves compressed with bzip2 compression, and you will
need to decompress the individual .bz2 files before Siril can use them. Support
for this compression format is available by default in Linux and MacOS, and is
provided in Windows by various archive programs including
7-Zip and Pea-Zip,
which are both Free and Open Source software.
All compressed files have accompanying sha256sums and there is a file containing
all the sha256sums of the uncompressed files as well, for additional validation.
The Zenodo record also provides a DOI reference that can be used to cite the
dataset if you use it in academic work.
Siril uses an optimized extract of the Gaia DR3 xp_sampled datalink product. As
with the astrometric extract, the offline catalogue is capped at the 127 brightest
sources per level 8 HEALpixel. The catalogue contains fewer sources than the
astrometric extract as xp_sampled spectra are typically only provided for sources
brighter than magnitude 17.6 and therefore more HEALpixels in emptier parts of the
sky have fewer than 127 sources compared with the astrometric extract (i.e. these
HEALpixels contain all the available Gaia DR3 sources with xp_sampled data),
but this approach still avoids overpopulation of the catalogue in extremely
crowded parts of the sky while providing the best SNR. In those HEALpixels with
fewer than 127 xp_sampled sources, the local catalog is as comprehensive as using
the online Gaia archive directly.
The xp_sampled is converted from float32 to float16 data with an additional byte
setting the exponent to be applied to the xp_sampled data for the source to
overcome limitations on exponents expressible with float16. This is entirely
justifiable given the error bars on the xp_sampled data and makes no practical
difference to the accuracy of the results. It means that we can provide a highly
effective, purpose-optimized local SPCC catalogue in under 21GB of data.
SPCC requires knowledge of your sensor and the RGB filters you use. These are
provided through an online repository which Siril will sync,
either automatically at startup or manually when required. Sensor and filter
information is updated via the same synchronization method as used for the online
scripts repository. (This means that as data on new filters or sensors becomes
available it can be added to the repository without requiring an update to the
application.)
In the GUI you select your sensors and filters from the widgets in the SPCC dialog.
Don't worry if there isn't an exact match for your equipment, just pick the
closest option, or the appropriate default option. You also need to select a
white reference. The default reference is the Average Spiral Galaxy reference
which is suitable for a wide range of astrophotographic scenes, however there is
an extensive range of galaxy and star types to choose from. The Sun's spectral
type is G2(v) so if you want to balance your image using sunlight as a white
reference, you would pick Star, type G2(v) from the list.
SPCC then uses the stellar spectra in Gaia DR3 and knowledge of your imaging
sensor and filters to compute for each star in the catalogue that matches a star
detected in the image by Siril the expected flux in each color channel. It then
compares this with the actual flux measured in each channel using Siril's photometric
capabilities.
Given the sensor and filter knowledge, SPCC computes the expected flux in each
channel for the specified white reference. A robust linear fit is obtained to give
the best fit of catalogue to image R/G and B/G flux ratios for each star and for
the white reference. This fit is used to derive correction coefficients which are
applied multiplicatively to each channel, resulting in spectrophotometrically
accurate color channels.
Your image must be plate solved for SPCC to work: if it is not already, this
should be done with the dedicated tool. It is important to make sure that the plate
solving information is correct, as some software is known to add inaccurate WCS
data to images.
Selection of Sensor In order to select your sensor, ensure that the mono /
OSC toggle button is set correctly. You will then see the appropriate dropdown
to choose from the available sensors.
Selection of Filters SPCC can operate in two modes.
The default mode is broadband operation. In this mode, the Narrowband mode
check box should be unchecked. You can choose either red, green and blue filters
(for composited images made with a mono sensor) or OSC filters, for example light
pollution filters, for images made with an OSC sensor.
Предупреждение
If you select a DSLR OSC sensor (e.g. a Canon EOS 600D) an additional widget
will become visible to select a DSLR Low Pass Filter. This allows you to tailor
whether your camera has been astro-modded or not. You must select an option
here or the process will complain that you haven't set all the necessary filters!
Options exist for Canon and Nikon OEM low-pass filters as well as the popular
Baader BCF astro-mod filter that lets Ha and Sii through but stil blocks longer
IR wavelengths and "Full spectrum" which is modelled as a perfect clear filter.
If you have an unmodified camera of a different model or brand, select any of
the Canon or Nikon low-pass filters: the effect is very minor as these wavelengths
are right at the edge of human visual perception anyway.
By checking the Narrowband mode check box, you enable narrowband
mode. This is intended either for images composited from narrowband filters
used with a mono sensor or for images made using an OSC sensor with a dual,
tri-band or quad band narrowband filter. In this mode the available controls
change, and for each color channel you enter the nominal wavelength and
bandwidth of the filter passband. For ultra-narrowband mono filters the
passband may be as little as 3nm; for a quadband OSC filter like the Altair
QuadBand V2 the passbands may be as much as 35nm. Note that for a HOO
composition where two channels are set to the same data, the nominal
wavelength and bandwidth should be set equal in the SPCC interface too.
Some manufacturers specify a center wavelength and FWHM. It is fine
to use the FWHM as the bandwidth: these filters have very sharp
cutoffs.
Предупреждение
Don't expect to retrieve the Hubble palette for SHO imaging using
the wavelengths of the SII, \(\mathrm{H}\alpha\) and OIII
filters respectively. The result will be an image with a huge
green cast. This is easily explained by the fact that the SII
emission line is much fainter than that of hydrogen, and the
SPCC gives a representation of real intensities. But this is
not the case in the Hubble palette. In fact, manual color
calibration will
give better results.
SHO image calibrated by SPCC compared to the same, manually calibrated
one. The entire nebula was taken as a white reference during manual
calibration. Image by Cyril Richard.
Selection of DSLR Low Pass Filter (LPF) DSLRs contain a low-pass filter (sometimes
also called a 'hot mirror'. These reduce transmittance at wavelengths of interest
to astronomers (Ha at 656nm and S-II at 674nm). If the selected OSC is a DSLR, a
dropdown will be provided from which you can the appropriate LPF profile. Options
exist for stock LPFs as well as astro-modified LPFs and an ideal Full spectrum
filter model for if the LPF has been removed altogether.
Selection of White Reference SPCC requires an absolute white reference spectrum.
The default is Average Spiral Galaxy and the source spectra used to create
this white reference are taken from the SWIRE templates [SWIRE] in a manner consistent
with other astrophotography software providing the same white reference. A wide
range of other white references is available, covering the full range of galaxy
and star classifications [Stellar]. If you wish to use sunlight as your white reference,
you would choose the white reference Star, type G2(v) as the Sun is a type
G2(v) star.
Graphs showing white reference data from spiral galaxies. At around 350 nm,
the Average Spiral Galaxy data become identical to the Sc galaxies, which
are also a good representation of the white reference.
NGC 4414 is a great example of a Sc-type galaxy, the type closest of the
average spiral galaxy used as white reference by default. Image Credit:
NASA, ESA, W. Freedman (U. Chicago) et al, & the Hubble Heritage Team
(AURA/STScI), SDSS; Processing: Judy Schmidt.
Совет
Summary of Stellar Spectral Classifications
Stellar classifications have two parts, a Morgan-Keenan type and a
Luminosity index.
The first part of the spectral classification (G2 in the case of the Sun)
takes one of the following letters: O, B, A, F, G, K, M. O represents
extremely hot blue stars, while M represents cool red stars. The sun is
roughly in the middle of the spectrum. The number represents intermediate
cases, for example a B5 star is halfway between type B and type A.
The second part of the spectral classification is the luminosity index
ranging from i to v. Stars with luminosity index i are supergiants,
whereas stars with luminosity index v are dwarfs. Main sequence stars
such as the sun have a luminosity index of iv.
Graphs showing white reference data for a set of two different star classes,
G and K.
Difference in color calibration depending on the choice of white reference.
On the left, an M-type star, on the right the average spiral galaxy. Please
note that the data are linear, and only an autostretch has been applied to
the visualization.
Atmospheric Correction
Siril's SPCC supports atmospheric correction. When imaging from Earth we image
through the atmosphere. This does not have perfect transmittance and therefore
acts as another, non-optional, filter in the imaging chain between the sensor
and the astronomical object. Whether or not to correct for this is an artistic
choice each astrophotographer must make, but the option is provided.
Теория
Atmospheric extinction arises from several sources. The most important are:
Rayleigh scattering. This is the elastic scattering of light by particles
that are small compared with the wavelength of light. The strong wavelength
dependence of the Rayleigh scattering (\(\approx λ^{−4}\)) means that shorter (blue)
wavelengths are scattered more strongly than longer (red) wavelengths.
Aerosol scattering. This is scattering of light by particles that are
larger than the wavelength of light. This is quite variable but (in the
absence of significant short term dust or smoke effects) relatively spectrally
flat and less significant than Rayleigh scattering.
Molecular absorption lines.
Siril models only Rayleigh scattering. This is the most important contribution
in most atmospheric conditions, and is highly predictable making it easy to
model without requiring the user to provide complex data.
The formula for the Rayleigh transmittance of the atmosphere as a function of
wavelength \(\lambda\) nm, observer height \(H\) m and pressure
\(p\) hPa is:
Under normal
circumstances aerosol scattering has a roughly flat response in the visible
region. This changes in specific conditions, for example when there is high
atmospheric smoke particle concentration after wildfires or, in parts of Europe,
when Saharan dust is carried into the atmosphere. However these effects are
very difficult to model accurately as they depend on the concentration of sand
or smoke particles in the atmosphere at the time. Siril therefore does not
model this effect.
The main molecular absorption lines in the visible spectrum are the Chappuis
stratospheric ozone bands and the Fraunhofer B molecular oxygen absorption
line. However the Fraunhofer B line is very narrow and does not have a
significant effect on overall calibration. The Chappuis bands are broad but
with a low peak absorption, with a much smaller overall impact than Rayleigh
scattering. Molecular absorption bands are not currently modelled in Siril.
When selecting the Atmospheric correction check box, the following options
become available:
Observer Height. This allows setting of the observer height, which is used in
the Rayleigh extinction calculation. Set this to the altitude of your observatory
above sea level. Some capture software sets the FITS header SITEELEV card: if
this is present, the height from this card will be used, otherwise the value
is editable and defaults to 10 m.
Atmospheric pressure. This allows setting atmospheric pressure at the time of
observation. For convenience it can be specified as sea level pressure (as
provided by weather forecasts) or as local pressure (as measured by a barometer
at the observatory). In case you are unsure, the default is standard atmospheric
pressure at sea level (1013.25 hPa).
Теория
If the pressure is provided as a sea-level pressure measurement, the local
pressure at the observer's height is calculated
according to the barometric formula:
\(L = 0.0065~\text{K}/\text{m}\) (Temperature lapse rate),
\(T_0 = 288.15~\text{K}\) (Sea level standard temperature),
\(g = 9.80665~\text{m}/\text{s²}\) (Acceleration due to gravity),
\(M = 0.0289644~\text{kg}/\text{mol}\) (Molar mass of Earth's air),
\(R = 8.3144598~\text{J}/(\text{mol}·\text{K})\) (Universal gas constant).
Airmass. This is not an editable parameter but shows the airmass that will be
used in the calculations. It is obtained, in order of preference, from the
AIRMASS FITS header card; by calculation using the CENTALT FITS header card; or
as a last resort by using the average zenith angle of all parts of the more than
30° above the horizon. The tooltip shows which source the used figure is based on.
Теория
If the AIRMASS header is unavailable the calculation used to derive airmass from
zenith angle is calculated in accordance with [Young1994]:
\(X(z) = \frac{1.002432 \cos^2 z + 0.148386 \cos z + 0.0096467}{\cos^3 z + 0.149864 \cos^2 z + 0.0102963 \cos z + 0.000303978}\).
The interface allows you to view details of the selected sensor, filter and white
reference using the Details button next to each combo box. From the
details information box that this brings up you also have the option to plot the
Quantum Efficiency (for sensors) or transmittance (for filters) or relative
photon count (for white references) against wavelength. A Plot All
button is also available in the main SPCC dialog which allows you to see the
responses of all your filters and your sensor and the white reference spectrum
all plotted together.
Plotting all the responses of all your filters and your sensor and the white
reference spectrum all plotted together
When you are happy, click Apply and SPCC will run. It will cache catalogue data
but the first time you apply it to an image it will take a few seconds to perform
the online catalogue searches and retrieve the source and spectral data. SPCC will
then be applied to the image. Additional plots showing the linear fit of the
catalogue Red / Green and Blue / Green to image Red / Green and Blue / Green
ratios.
By default, Siril outputs graphs showing the fits used in the process. In
this example the magnitude was limited to 17.
Совет
How do I process L-RGB images? We recommend processing only RGB with SPCC.
The L layer must be added at a later stage, when the histograms have been
stretched.
Совет
For images taken with an OSC sensor, we recommend using
Bayer Drizzle to recover image colors.
This ensures more accurate colors as shown in the
following image.
SPCC applied identically to the same image. On the left, conventional
demosaicing using the VNG algorithm; on the right, the Bayer Drizzle
technique. A dominant green hue is clearly visible on the conventionally
demosaiced image. Note that the VNG algorithm was chosen for this
example because the effects explained here are more pronounced. However,
in Siril, the default demosaicing algorithm is RCD. Click to enlarge image.
The format used for the database is JSON (a lightweight data-interchange format derived from JavaScript object notation). We recommend starting with an existing file from the database that suits your needs and saving it under the name of your sensor or filter. You can then simply replace the values in the file with the data you have obtained.
In the wavelength array, enter your wavelength measurements. Make sure to properly set the units field to one of the following values: angstroms, nm, micrometres, or m.
In the values array, enter either:
Transmittance values for filters
Quantum efficiency values for sensors
Set the range field according to your data scale (e.g., "range":100 if your values are percentages, "range":1 if they are normalized to 1).
The SPCC database is designed to store JSON files of OSC/monochrome sensors and filters available in the market. Its primary objective is to gather extensive data, fostering collaboration within the community.
We greatly value community contributions and encourage active participation. We are in need of data spanning ideally from 300nm to 1100nm. Software tools can be employed to extract curves/charts found online, and contacting manufacturers directly for data is also an option.
We do not include narrowband filters. These highly specific filters are synthesized in Siril, ensuring precision. This also applies to duonarrowband filters.
Here is the template for the JSON files used in the SPCC database:
[{"model":"sensor model / filter set","name":"sensor / filter name","type":"MONO_SENSOR | OSC_SENSOR | MONO_FILTER | OSC_FILTER | OSC_LPF | WB_REF","dataQualityMarker":1-5,"dataSource":"Describe where the data came from","manufacturer":"Manufacturer name","version":1,"channel":"RED | GREEN | BLUE | LUM","wavelength":[Commaseparatedarrayofwavelengths],"values":[Commaseparatedarrayofvalues]}]
Data of unknown provenance. Not accepted for the siril-spcc-database repository.
Data scanned from OEM or other reputable plots in image format.
Lower resolution tabulated data provided by the OEM, or academic data relating to ideal standard filter transmittance (e.g. generic standard photometric filters).
High resolution (no more than 2nm spacing) tabulated data provided by the OEM.
Data specific to your own filter which you have personally calibrated using appropriate equipment. This is the highest possible quality marker and will never be given to .json files in the repository which can only ever be generic to an equipment model, not specific to your individual equipment item. Note that the actual quality of this data is entirely dependent on the quality of your calibration equipment - the old adage "garbage in, garbage out" applies.
The model name requirements:
Must be identical for all related JSON objects in a set
Примеры:
RGB filter set: "model":"ChromaRGB"
OSC sensor: "model":"ZWOASI2600MM"
The channel field:
Required only for "type":"OSC_SENSOR" or "type":"MONO_FILTER"
For OSC sensors, include one JSON object per channel (RED, GREEN, BLUE)
Preferred channel order: RED, GREEN, BLUE
The wavelength array requirements:
Minimum coverage: 380nm to 700nm
Maximum useful range: 336nm to 1020nm (Gaia DR3 spectra limits)
Values must be monotonically increasing
No duplicate values allowed
Must use specified units (angstroms, nm, micrometres, m)
Примечание
If your sensor data only extends down to 400nm (which is common with some
manufacturers), it is acceptable to extrapolate a single point at 380nm.
The sensor response below 400nm typically follows a predictable pattern
across different sensors. Adding this extrapolated point at 380nm is
preferable to letting the curve end at 400nm, which would effectively treat
all response below 400nm as zero. The impact of this extrapolation is minimal
since the CIE 1931 response is very low in this wavelength range.
The values array requirements:
For filters: contains transmittance values
For sensors: contains quantum efficiency values
Set appropriate range value (e.g., 100 for percentages)
Siril scales all values to 0.0-1.0 range internally
As most users are likely to do most of their imaging with one setup, or maybe two,
it would be tedious to reselect the sensor and filters each time. The user choices
are therefore automatically remembered when set and restored next time the tool is
used, even if Siril is closed and restarted in between. This works using the
preferences system but there is no need to use the preferences dialog to remember
the set sensor and filters, it is done automatically.
The chosen white reference is not remembered: the default Average Spiral Galaxy is
a suitable choice for most astronomical scenes, and alternative white references
would normally be set for a specific image to draw out a particular aspect of the
color.
Запускает спектрофотометрическую коррекцию цвета на загруженном изображении, имеющем астрономическое решение.
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений смещения (+offset или -offset) ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
Для SPCC всегда используется каталог звёзд Gaia DR3. Если доступен, то по умолчанию используется локальный каталог Gaia DR3 xp_sampled. Это поведение может быть изменено с помощью аргумента -catalog={gaia | localgaia}.
Названия сенсоров и фильтров можно задать с помощью: -monosensor=, -rfilter=, -gfilter=, -bfilter= или -oscsensor=, -oscfilter=, -osclpf=; название точки белого можно указать с помощью -whiteref=. Во всех случаях название должно быть указано точно так, как оно указано в диалоге инструмента SPCC. Обратите внимание, что названия сенсоров, фильтров и точек белого могут содержать пробелы: в этом случае при использовании их в качестве аргументов команды spcc весь аргумент должен быть заключен в кавычки, например "-whiteref=Average Spiral Galaxy".
Узкополосный режим может быть выбран с помощью аргумента -narrowband, в этом случае предыдущие аргументы фильтра игнорируются, и длины волн и полосы пропускания узкополосного фильтра могут быть заданы с помощью -rwl=, -rbw=, -gwl=, -gbw=, -bwl= и -bbw=.
Если один из аргументов со спектральными данными опущен, то будет использоваться ранее использованное значение.
Допустимое отклонение от значения фона может быть указано в единицах σ с помощью -bgtol=lower,upper: значения по умолчанию равны -2.8 и +2.0, соответственно.
Атмосферная коррекция может быть применена с помощью -atmos. В этом случае применяются следующие необязательные аргументы: -obsheight= определяет высоту наблюдателя над уровнем моря в метрах (по умолчанию 10), -pressure= определяет местное атмосферное давление в месте наблюдения в гПа, или -slp= определяет атмосферное давление на уровне моря в гПа (давление по умолчанию равно 1013.25 гПа на уровне моря)
Выводит в журнал список названий SPCC для сенсоров, фильтров или точек белого, доступных при использовании команды spcc. Для этой команды необходим аргумент, для указания, какой список будет выведен: oscsensor, monosensor, redfilter, greenfilter, bluefilter, oscfilter, osclpf или whiteref.
Обратите внимание, что названия сенсоров, фильтров и точек белого могут содержать пробелы: в этом случае при использовании их в качестве аргументов команды spcc весь аргумент должен быть заключен в кавычки, например "-whiteref=Average Spiral Galaxy"
Этот инструмент используется для увеличения насыщенности цвета изображения. Для улучшения можно выбрать определенный оттенок или все цвета одновременно. Степень насыщенности регулируется с помощью ползунка Количество.
Ползунок Коэффициент фона устанавливает коэффициент, умноженный на значение фона. Чем меньше значение, тем сильнее эффект насыщенности. При высоком значении фон будет сохранен.
Улучшает насыщенность цвета загруженного изображения. Для получения наилучших результатов используйте итеративно.
amount положительное значение увеличивает насыщенность цвета, отрицательное — уменьшает, 0 — ничего не делает, 1 — увеличивает насыщенность на 100%
background_factor это коэффициент (медиана + σ), используемый для установки порога, выше которого будет происходить изменение пикселей. При правильном подборе, это позволяет не увеличивать насыщенность цвета фонового шума. Значение по умолчанию — 1. При установке 0 порог отключается.
hue_range_index может быть [0, 6], что означает: 0 от розового до оранжевого, 1 от оранжевого до жёлтого, 2 от жёлтого до голубого, 3 для голубого, 4 от голубого до пурпурного, 5 от пурпурного до розового, 6 все цвета (значение по умолчанию)
Поскольку зеленый цвет естественным образом не присутствует на снимках глубокого космоса (за исключением комет и некоторых планетарных туманностей), если изображение уже откалибровано, его цвета хорошо сбалансированы и изображение свободно от градиента, мы можем предположить, что если изображение содержит зеленый цвет, то он относится к шуму. Тогда интересно найти метод удаления этого доминирующего зеленого цвета. Это именно то, что предлагает инструмент Удаление зелёного шума, который является производным от инструмента SCNR, но только для зеленого цвета.
Этот инструмент не предназначен для непосредственного использования на обычном зеленом изображении после укладки, где уровень фонового неба не был выровнен. Его использование в таких условиях нарушило бы цветность изображения.
Предупреждение
Этот инструмент разработан для использования с нелинейными изображениями, так как он работает в нелинейном цветовом пространстве. Чтобы избежать некорректных результатов обработки, перед использованием этого инструмента убедитесь, что гистограмма была растянута.
Этот инструмент имеет 3 настройки. Метод защиты, количество (называемое \(a\) в следующем разделе) и кнопка Сохранить светлоту. Следующие методы предоставляют различные существующие способы удаления зеленых пикселей путем их замены смесью красного и синего. Указание значения количества доступно только для методов, использующих защитную маску. Выбор этого значения должен делаться с осторожностью, чтобы минимизировать рост пурпурного оттенка на фоне неба. Не стесняйтесь использовать кнопки Отменить и Повторить для точной настройки значения.
Наконец, кнопка Сохранить светлоту сохраняет исходный компонент CIE L* в обработанном изображении, чтобы обработать только хроматический компонент, настоятельно рекомендуется включить эту опцию.
Командная строка Siril
rmgreen [-nopreserve] [type] [amount]
Применяет фильтр подавления хроматического шума, удаляющий зелёный оттенок на текущем изображении. Этот фильтр основан на SCNR из PixInsight и этот же фильтр используется плагином HLVG в Photoshop.
По умолчанию светлота сохраняется, но это может быть отключено с помощью -nopreserve.
Аргумент type может принимать значения 0 для средний нейтральный, 1 для максимальный нейтральный, 2 для максимальная маска и 3 для аддитивная маска. По умолчанию — 0. Последние два могут принимать аргумент amount со значением между 0 и 1. Значение по умолчанию — 1
Negative transformation refers to subtracting pixel values from \((L - 1)\),
where \(L\) is the maximum possible value of the pixel, and replacing it
with the result.
Инструмент Инвертировать отличается от просмотра негатива в меню инструментов. Когда используется инструмент Инвертировать, преобразование не только визуальное, но и фактически применяется к значениям пикселей. Если вы сохраните изображение, оно будет сохранено как негатив.
Исходное изображение со слабым сигналом (изображение Сирила Ричарда (Cyril Richard).
Негативное изображение, на котором сигнал более заметен (изображение Cyril Richard).
Совет
Обычное использование инструмента Инвертирование — удаление пурпурного оттенка из изображений SHO. В этом случае нужно применить Инвертирование, затем Уменьшение зеленого шума, затем снова Инвертирование.
Командная строка Siril
neg
Изменяет значения пикселей загруженного в настоящий момент изображения на отрицательное представление, например, 1-значение для 32-х бит, 65535-значение для 16-ти бит. Режим просмотра при этом не изменяется
Вейвлет — это функция, лежащая в основе вейвлет-декомпозиции, аналогичной кратковременному преобразованию Фурье, используемому при обработке сигналов. Она соответствует интуитивному представлению о функции, соответствующей небольшому колебанию, отсюда и ее название.
Существует много типов вейвлет-функций, имеющих свои собственные названия, как показано на рисунке ниже.
Используемое в Siril стационарное вейвлет-преобразование выполняет разложение изображения на ряд масштабных слоев, также известных как вейвлет-слои.
Представление стационарного вейвлет-преобразования интерполяцией b-сплайнами.
Эти слои можно извлечь с помощью инструмента извлечения Частотные слои, однако в этом случае они используются без визуального представления. В целом, этот алгоритм широко используется после укладки планетарных изображений. Поскольку шум содержится исключительно в одном из вейвлет-слоев, то можно выявить детали изображения, сдерживая количество шума.
Первое, что нужно сделать, это нажать на кнопку Выполнить, чтобы рассчитать вейвлет-слои с использованием определенных выше параметров, таких как:
Тип: возможны два типа алгоритмов: линейный и B-сплайновый. Обычно выбирается последний, несмотря на то, что он немного медленнее.
Кол-во слоёв: количество вейвлет-слоев, которые будут использоваться. 6 — это максимальное количество слоев, которое можно определить. Для работы с большим количеством слоев можно использовать командную строку, описанную ниже.
Затем у каждого слоя есть ползунок, который позволяет изменять контрастность этого слоя. Если было создано менее 6 слоев, активными будут только соответствующие ползунки. Значение, превышающее 1, повышает детализацию, в то время как меньшее значение приводит к ее уменьшению.
Это инструмент имеет режим предпросмотра. Изменения отображаются в режиме реального времени, и вам нужно нажать на Применитьy, чтобы подтвердить их. При нажатии на Сброс все ползунки сбрасываются в 1 и, таким образом, отменяются все текущие изменения.
Вейвлеты, примененные к изображению Юпитера (любезно предоставлено J.-L. Dauvergne). Изображение слева — это необработанное изображение, полученное в результате укладки, в то время как изображение справа — это то же изображение, к которому были применены вейвлеты.
Командная строка Siril
wavelet nbr_layers type
Вычисляет вейвлетное преобразование для nbr_layers=1...n слоёв загруженного изображения, используя линейную (type=1) или В-сплайн (type=2) версию алгоритма. Результат сохраняется в файле как структура, содержащая слои, готовые к реконструкции с использованием весов с помощью WRECONS.
Восстанавливает текущее изображение из слоёв, раннее вычисленных с помощью вейвлетов и с присвоенными весами с помощью коэффициентов c1, c2, ..., cn в соответствии с количеством слоёв, использованных для вейвлет-преобразования после использования WAVELET
В некоторых случаях изображения могут страдать от дефекта полосатости. Обычно это вызвано датчиком, а калибровка темновыми кадрами, кадрами смещения и кадрами плоского поля не улучшает изображения.
В диалоговом окне уменьшения полошения есть несколько параметров для оптимизации обработки:
Количество определяет силу коррекции. Чем выше значение, тем сильнее коррекция.
Защита от засветов при включении этой опции будут игнорироваться яркие пиксели.
Коэффициент :math:`frac{1}{sigma}` позволит настроить защиту ярких участков. Чем больше значение, тем лучше защита.
Вертикальное полошение позволяет пользователю исправить полосы, если они вертикальные.
Применение следующего фильтра к исходному изображению со значениями параметров, показанными на рисунке, дает хороший результат без полос.
Результат после работы фильтра. Больше никаких полос не видно.
Это преобразование можно легко применить к последовательности. Вам просто нужно определить преобразование на загруженном изображении (с уже загруженной последовательностью), затем отметить флажок Применить к последовательности и определить выходной префикс новой последовательности (unband_ по умолчанию).
Командная строка Siril
fixbanding amount sigma [-vertical]
Пытается удалить горизонтальное или вертикальное полошение на загруженном изображении.
Аргумент amount указывает силу коррекции, в диапазоне между 0 и 4.
Аргумент sigma определяет уровень защиты светов алгоритмом. Бо́льшие значения σ дают бо́льшую защиту, между 0 и 5. Значения 1 и 1 часто достаточны.
Аргумент -vertical включает удаление вертикального полошения. По умолчанию предполагается, что полошение горизонтальное
Метод ограниченного контрастом адаптивного выравнивания гистограммы (CLAHE) используется для увеличения контраста изображения. Он отличается от обычного выравнивания гистограмм тем, что адаптивный метод вычисляет несколько гистограмм, каждая из которых соответствует отдельному участку изображения, и использует их для перераспределения значений яркости изображения. Таким образом, он может улучшить локальную контрастность и четкость контуров в каждой области изображения.
Этот фильтр имеет предварительный просмотр. Другими словами, каждое изменение настроек автоматически отображается на экране, но это можно отключить, сняв отметку с флажка Предпросмотр.
С помощью ползунка можно задать размер ячеек, в которых вычисляется гистограмма. По умолчанию установлено значение 8.
Предел обрезки — это опция, которая предотвращает чрезмерное усиление шума в относительно однородных областях изображения. Затем обрезанная часть гистограммы, которая превышает предел обрезки, равномерно распределяется между всеми ячейками гистограммы.
Совет
Этот фильтр лучше работает с нелинейными данными. Рекомендуется предварительно растянуть изображение.
Пример применения адаптивного выравнивания гистограммы к нелинейным данным, где Размерячейки=21 and Пределобрезки=4.20.
Командная строка Siril
clahe cliplimit tileSize
Выравнивает гистограмму изображения используя ограниченное контрастом адаптивное выравнивание гистограммы.
cliplimit устанавливает порог для ограничения контраста.
tilesize устанавливает размер ячейки для выравнивания гистограммы. Входящее изображение будет разделено на прямоугольные ячейки одинакового размера
В Siri косметическая коррекция — это шаг, на котором удаляются горячие и холодные пиксели на изображении. Обычно это делается во время предварительной обработки с использованием мастер-кадра темнового тока. Это связано с тем, что последний обычно содержит хорошую карту дефектных пикселей, и на ней их легче найти. Однако, если у вас нет темнового мастер-кадра, Siril предлагает альтернативу с алгоритмом автоматического обнаружения этих пикселей на исходном изображении.
Диалоговое окно содержит несколько параметров, необходимых для правильной работы инструмента. Однако использование настроек по умолчанию обычно дает хорошие результаты.
:math:`sigma` холодных пикселей: во сколько раз (в единицах среднего отклонения) значение пикселя должно отличаться от значения соседних пикселей, чтобы считаться холодным пикселем.
:math:`sigma` горячих пикселей: во сколько раз (в единицах среднего отклонения) значение пикселя должно отличаться от значения окружающих его пикселей, чтобы пиксель считался горячим.
Количество: это параметр модуляции, где 0 означает отсутствие коррекции, а 1 — 100% коррекцию.
CFA: этот параметр необходимо установить для цветных изображений (CFA) с шаблоном Байера. Он не работает для датчика X-Trans.
Эту операцию можно применять к последовательностям. Откройте последовательность и подготовьте настройки, которые вы хотите использовать, затем отметьте флажок Применить к последовательности и задайте выходной префикс новой последовательности (cc_ по умолчанию).
Теория
Обнаружение горячих пикселей
Давайте назовем \(m_{5\times 5}\) медианой 5 ближайших соседей. Если значение пикселя больше, чем
Применяет автоматическое определение и замену холодных и горячих пикселей на загруженном изображении с использованием порогов (в значениях σ), указанных в аргументах
Командная строка Siril
find_cosme_cfa cold_sigma hot_sigma
Аналогична команде FIND_COSME, но для изображений CFA
Реконструкция это математический инструмент для компенсации эффектов размытия или искажения на изображении. Истинная сцена это не то что записано вашим сенсором — ваша запись это оценка истинной сцены, свёрнутой с помощью PSF (в математическом выражении "размывающая PSF" представляет искажения атмосферы, физические свойства вашего телескопа, смазывание при движении и т.д., которые ухудшают вашу оценку). С помощью реконструкции можно, в некоторой степени, обратить подобную деградацию изображения. Однако важно сразу отметить, что реконструкция это то, что математики называют некорректно поставленной задачей (как и большинство обратных задач). Это значит что решения может не существовать. Если решение существует, оно может не быть уникальным и может не иметь непрерывной зависимости от данных. По сути, это означает, что реконструкция, даже теоретически, действительно сложна, и нет никаких гарантий, что она сработает.
Всё становится ещё труднее когда мы точно не знаем, что представляет собой PSF, которую мы пытаемся удалить. В астрономии мы можем, в теории, получить представление о PSF по эффекту размытия точечных источников (звёзд), которые мы снимаем. Однако иногда истинная PSF непостоянна по всему изображению, иногда иные факторы, как насыщенность звёзд не позволяют PSF, полученной от звёзд, быть полностью точной оценкой PSF, а иногда, например при съёмке Луны, на изображении нет звёзд.
Siril стремится обеспечить гибкий подход к реконструкции. Имеются несколько настроек для определения или оценки PSF и несколько алгоритмов реконструкции для заключительного этапа реконструкции после того, как PSF определена.
Чтобы сгенерировать реконструирующую PSF, выберите необходимый метод генерации PSF и нажмите Создать PSF. Это может быть выполнено отдельно от фактической реконструкции, чтобы пользователь мог видеть эффект изменения параметров PSF.
Siril создаёт только монохромные PSF, поскольку это самый частый способ использования и упрощает пользовательский интерфейс. Однако можно сохранить и объединить 3 монохромных PSF, чтобы создать трёхканальную PSF, которая может быть загружена и использована для реконструкции трёхканальных изображений.
Чтобы применить реконструкцию к отдельному изображению, выберите необходимый метод генерации PSF и нажмите Применить. Если ранее был запущен метод оценки PSF вслепую, для этого метода автоматически будет установлено значение Предыдущая PSF, чтобы избежать ненужного пересчета PSF.
Чтобы применить реконструкцию к последовательности, действуйте как описано выше, но убедитесь, что выбран пункт Применить к последовательности. Вы можете так же указать пользовательский префикс новой последовательности. Если не указано иное, по умолчанию будет использован префикс dec_.
При реконструировании последовательности, PSF будет рассчитана только для первого изображения в последовательности. Одинаковая PSF будет повторно использована для всех изображений в последовательности.
\(\boldsymbol{ℓ_0}\)Спуск: это метод оценки PSF по умолчанию, основанный на работе Энгера, Дельбрасио и Фаччиоло. Параметры, как правило, не требуют корректировки, за исключением того, что для особо крупных PSF вы можете попробовать многоступенчатую модель оценки PSF. Функция многоступенчатости по умолчанию отключена, так как во время разработки была замечена тенденция к получению довольно неестественных результатов при использовании более распространенных PSF малых и средних размеров.
Неравномерность спектра[Goldstein2012]: этот метод оценки PSF предлагается в качестве альтернативы. В целом он не так хорош, как метод \(ℓ_0\) спуска, однако он может быть полезен, если вы обнаружите изображение, на котором метод по умолчанию не дает хороших результатов. Для этого метода скрытое резкое изображение не должно содержать никаких краев, если соблюдается модель спектрального распада. С другой стороны, \(ℓ_0\) спуск предполагает аналогичную модель (поскольку края имеют одинаковый спектральный распад), но требует, чтобы градиенты были разреженными и контрастными, поэтому края должны быть синфазными, поэтому теоретически эта модель может работать лучше на низкоконтрастных беззвездных изображениях. Вероятно, потребуются некоторые эксперименты, чтобы найти алгоритм, который лучше всего подходит для ваших данных.
PSF по звёздам: этот метод моделирует PSF из средней PSF выбранных звезд. Важно быть избирательным в выборе звезд: они не должны быть насыщенными, так как это приведет к грубому искажению оценки PSF, но они также не должны быть настолько слабыми, чтобы функции анализа звезд Siril давали неточные измерения звезд. Выбранные звезды должны быть достаточно яркими, располагаться как можно ближе к центру изображения и в области изображения с довольно постоянным фоном. После выбора звёзд вы можете выбрать либо модель профиля звезд Гаусса, либо Моффата, и при выполнении реконструкции PSF будет синтезирована из средних параметров выбранных звезд. Если звезды не выбраны, Siril попытается автоматически обнаружить звезды с пиковой амплитудой между 0,07 и 0,7 с профилем Моффата. Этот диапазон позволяет избежать насыщенных звезд, а также тех, которые слишком слабы, чтобы дать точное решение, и в целом дает хорошие результаты.
PSF вручную: этот метод позволяет вам вручную определить PSF. Можно определить такие модели PSF, как Гаусс, Моффат или Диск. Обратите внимание, что FWHM указывается в пикселях, а не в угловых секундах. Модели Гаусс и Моффат подходят для реконструкции форм звезд, возникающих из-за атмосферных искажений; такая модель PSF, как Диск подходит для реконструкции эффекта небольшой размытости.
Загрузить PSF из файла: этот метод позволяет вам загружать PSF из любого графического формата, поддерживаемого Siril. Предоставленная PSF должен быть квадратной (она будет отклонен, если не квадратная) и нечетной (она будет обрезана на один пиксель в каждом направлении, если не нечетная, но это даст немного смещенную от центра PSF и не является оптимальным по сравнению с предоставлением нечетной PSF изначально). Могут быть загружены как монохромные, так и 3-канальные PSF. Если 3-канальная PSF загружен вместе с монохромным изображением, будут использоваться равномерно взвешенные значения яркости PSF. Если 3-канальная PSF загружена вместе с 3-канальным изображением, то каждый канал изображения будет реконструирован с использованием соответствующего канала PSF. Если монохромная PSF загружен вместе с 3-канальным изображением, то изображение будет преобразовано в цветовое пространство LAB, а канал L (яркость) будет реконструирован с использованием монохромной PSF для повышения вычислительной эффективности, а реконструированный L будет заново скомбинирован с каналами A и B и преобразован обратно в RGB.
Предыдущая PSF: этот метод позволяет повторно использовать ранее оцененную PSF. Он в основном используется со слепыми методами оценки PSF: если вы удовлетворены оценённой PSF, но хотите сделать несколько тестовых запусков с использованием различных параметров для конечной стадии реконструкции, вы можете повторно использовать предыдущую PSF и сэкономить время вычислений.
После оценки PSF можно сохранить, если это необходимо. Если Siril скомпилирован с поддержкой libtiff, то PSF будет сохранена в 32-битном формате TIFF с тем же именем файла, что и у текущего изображения, но с отметкой даты и времени и с суффиксом _PSF. Если Siril был собран без поддержки libtiff, то PSF будет сохранен как файл FITS. Хотя это основной формат Siril для файлов астрономических изображений, TIFF предпочтительнее для PSF: недостатком использования формата FITS для PSF является потенциальная сниженная совместимость с редакторами изображений, которые вы можете использовать для редактирования или изучения сохраненного файла.
Совет
Если реконструкция вслепую может быть выполнена на линейных и нелинейных данных, то использование PSF по звёздам может быть выполнено только на линейных изображениях. В противном случае значения PSF были бы недействительными.
Совет
If a ROI is set, blind PSF estimation methods will calculate the PSF from the
ROI rather than the whole image. If you do wish to calculate a PSF from the
whole image you must clear the ROI before estimating the PSF, then set the ROI
to apply a preview. However, you also have the option of calculating the PSF
only from a selected part of the image. This may be desirable if you have
optical aberrations close to the edge of the image and wish to estimate the
PSF from the central area only.
Метод Ричардсона-Люси с регуляризацией[Lucy1974]: это алгоритм не-слепой реконструкции по умолчанию. Это итеративный метод, известный своим использованием для исправления искажений изображения в ранний период работы космического телескопа Хаббл, и в Siril регуляризован с использованием либо метода полной вариации, который направлен на штрафование алгоритма за усиление шума, либо нормы Фробениуса локальной матрицы Гессе. Эта регуляризация основана на вторых производных. Наряду с регуляризацией предоставляется параметр ранней остановки, который позволяет остановить алгоритм на ранней стадии, как только его скорость сходимости падает ниже определенного уровня. Увеличение значения параметра ранней остановки может уменьшить кольца вокруг звезд и острых краев. Предоставляются две формулировки алгоритма Ричардсона-Люси: мультипликативная формулировка и формулировка градиентного спуска. Последний может обеспечить лучший контроль, поскольку размер шага градиентного спуска может быть изменен (недостатком этого является то, что при использовании большего количества маленьких шагов требуется больше итераций для достижения того же уровня сходимости). Большим преимуществом метода градиентного спуска является то, что он позволяет использовать большую регуляризацию — это может быть проблематично в мультипликативном алгоритме Ричардсона-Люси, поскольку член регуляризации появляется в знаменателе, а малые значения здесь (сильная регуляризация) могут вызвать нестабильность. Siril будет использовать наивную свертку для малых размеров ядра и свертку на основе быстрого преобразования Фурье (БПФ) для больших размеров ядра, где БПФ обеспечивает более эффективный алгоритм. (Это происходит автоматически и не требует вмешательства пользователя.)
Фильтр Винера: этот метод является неитеративным методом реконструкции. Он моделирует предполагаемый профиль гауссовского шума, т. е. шум, моделируемый постоянным профилем. Постоянная Альфа (α) используется для установки силы регуляризации по отношению к уровню шума. Как и в других алгоритмах, меньшее значение альфа обеспечивает большую регуляризацию. Этот алгоритм может быть хорош для лунных изображений, где режим шума является гауссовым, а не пуассоновским, но обычно плохо работает на снимках дальнего космоса, где шум все еще имеет тенденцию иметь пуассоновский характер.
Метод Брэгмана с регуляризацией: этот метод используется в процессах оценки размытия PSF, а также предлагается как алгоритм финальной стадии реконструкции. Это широко используемый алгоритм для решения задач выпуклой оптимизации. Алгоритм также регуляризуется с помощью функции стоимости, основанной на полной вариации. Он не так эффективен, как метод Ричардсона-Люси, при обработке изображений звездного неба, но может быть рассмотрен для изображений без звезд или снимков лунной поверхности.
Совет
Выбор метода реконструкции очень важен для получения хороших результатов. Как правило, для изображений глубокого космоса (DSO) важно использовать метод Ричардсона-Люси: как метод Брэгмана, так и метод Винера дают плохие результаты вокруг звезд из-за экстремально высокого динамического диапазона. Для линейных изображений обычно лучше всего использовать метод Ричардсона-Люси с градиентным спуском, а если вокруг ярких звезд возникает эффект "кольца", то следует уменьшить размер шага спуска. Такой подход снижает влияние каждой итерации, поэтому требуется больше итераций, но это позволяет достичь более точного контроля, доводя реконструкцию до момента, когда начинают появляться артефакты, а затем слегка скорректировать значения настроек назад. Для растянутых изображений можно использовать мультипликативный алгоритм Ричардсона-Люси.
Совет
Для сложенных изображений Луны и планет могут оказаться более подходящими методы Брэгмана или Винера. Как правило, эти методы не требуют итераций, как это делает метод Ричардсона-Люси, и они могут лучше соответствовать шумовым характеристикам сложенных изображений с высоким соотношением сигнал/шум. (Алгоритм Ричардсона-Люси основан на предположении о пуассоновском шуме, которое обычно верно для изображений объектов глубокого космоса (DSO), тогда как метод Винера, реализованный здесь, предполагает гауссово распределение шума, которое может лучше соответствовать сложенным изображениям планет / Луны).
Размер PSF. Размер входной PSF должен быть выбран достаточно большим, чтобы гарантировать, что PSF полностью помещается в указанной области. Однако, если задать слишком большой размер, это может привести к ухудшению результата и увеличению времени выполнения при использовании методов слепой оценки PSF.
Лямбда (\(\lambda\)). Параметр регуляризации для оценки PSF. Попробуйте уменьшить это значение для шумных изображений.
Настройки метода \(\boldsymbol{ℓ_0}\)} спуска
Многоступенчатый. Эта настройка позволяет включить многоступенчатый метод оценки PSF. Это может помочь стабилизировать оценку PSF при указании большого размера PSF, однако некоторые PSF, сгенерированные с использованием этой опции, могут приводить к неестественным результатам. Поэтому по умолчанию эта функция отключена.
Дополнительные параметры. Обычно они не требуют настройки, но доступны для любопытных.
Гамма (γ) задает силу регуляризации, используемую на этапе предсказания резкого изображения. Для заданного значения гаммы, с увеличением уровня шума оценка также становится более зашумленной. Если увеличить значение гаммы, оценка будет меньше подвержена влиянию шума, но станет более сглаженной. Значение по умолчанию, равное 20, было определено экспериментально в [Anger2019].
Кол-во итераций задает количество итераций, используемых в процедуре оценки PSF. Авторы алгоритма отмечают, что увеличение этого значения до 3 дает минимальный выигрыш, а увеличение больше 3 не приносит никакой пользы.
Отношение λ и Лямбда (мин.) задают настройки для уточнения предсказания резкого изображения путем последовательного изменения значения параметра регуляризации предсказателя резкого изображения на каждой итерации метода.
Коэф-т масштаба, Увел. размытие и Умен. размытие используются только при включенной опции Многоступенчатый. Они задают масштабный коэффициент по умолчанию между каждой ступенью масштаба, а также степень размытия, применяемую при изменении масштаба между ступенями.
Порог ядра. Значения ниже этого уровня в оценке PSF устанавливаются равными нулю.
Настройки метода неравномерности спектра
Коэф-т компенсации управляет силой фильтра, который используется для предотвращения чрезмерной резкости в оцененной PSF. Для изображений с существенным размытием следует использовать значение, близкое к единице. Для изначально резких изображений низкие значения могут приводить к артефактам, и в этом случае значение следует увеличить до большого числа, что фактически отключает фильтр.
Дополнительные параметры. Обычно они не требуют настройки, но доступны для любопытных.
Повторы внутреннего цикла — этот параметр задает количество итераций, выполняемых во внутреннем цикле метода неравномерности спектра. Алгоритм сходится быстро, и можно уменьшить это значение примерно до 100 без значительного ухудшения результата.
Образцов во внешнем цикле — этот параметр определяет, сколько случайных фаз должно быть сгенерировано. Поскольку восстановление фазы начинается со случайных значений для каждого образца, важно использовать достаточное количество образцов, чтобы избежать сходимости к локальному минимуму. Для изображений с низким уровнем шума PSF стабилизируется быстро, но если вы хотите улучшить результаты с помощью этого метода, то это первая из экспертных настроек, которую стоит попробовать настроить, особенно для изображений с высоким уровнем шума.
Повторы внешнего цикла. [Anger2018] предполагает, что 2 итерации может быть достаточно для получения приемлемой оценки PSF, и увеличение этого значения выше 3 не приносит заметной пользы.
PSF по звёздам
Этот метод генерации PSF не имеет настраиваемых параметров. Он генерирует PSF на основе средних параметров звезд, выбранных с помощью команды findstar или диалогового окна Динамическая PSF. Средние параметры отображаются в диалоговом окне реконструкции, когда выбран этот метод генерации PSF. Пользователю желательно самостоятельно выбирать звезды, которые он хочет использовать для этого метода, чтобы получить наиболее точную PSF. В идеале следует выбрать около 10 довольно ярких, но не насыщенных звезд из центральной области изображения (чтобы исключить звезды, которые могут страдать от комы или других аберраций). Однако, если пользователь не выбрал ни одной звезды, Siril попытается автоматически определить подходящие звезды, запустив свою процедуру обнаружения с фильтрами, настроенными только на звезды с пиковыми амплитудами между 0.07 и 0.7.Этот диапазон позволяет избежать как насыщенных звезд, так и слишком тусклых, которые не могут дать точного решения. В большинстве случаев он работает хорошо, но может быть подвержен влиянию смещенных от центра аберраций.
Если вы установите флажок Симметричная PSF, сгенерированная PSF будет круглой. Она будет соответствовать среднему значению FWHM и бета (β) выбранных звезд, но не будет учитывать какие-либо удлинения.
PSF вручную
Этот метод генерации PSF позволяет задать пользовательскую параметрическую PSF.
Профиль позволяет выбрать профиль PSF. Поддерживаются профили: Гаусс, Моффат, Диск и Диск Эйри.
Для сопоставления параметров звезд, измеренных по изображению, используются профили PSF: Гаусс и Моффат. Они должны обеспечить хорошую оценку общей функции размытия, применяемой к изображению, поскольку звезды являются точечными источниками.
Пример PSF с профилем Моффат, fwhm/"=5", Угол/°=45°, Соотношение=1.20, \(\beta=4.5\) и Размер PSF равен 15.
Профиль PSF Диск используется для реконструкции несфокусированных изображений.
Пример профиля Диск с fwhm/"=5" и Размером PSF равным 15.
Профиль PSF Диск Эйри используется для реконструкции дифракции, которая возникает как физическое следствие дифракции на апертуре вашего телескопа.
Пример профиля PSF Диск Эйри с Диаметр/мм=150мм, Фокусное расстояние/мм=4500мм, Длина волны/нм=525нм, Размер пикселя/мкм=2.9мкм, Центральное экранирование=40% и Размер PSF равен 41.
FWHM определяет полную ширину на уровне половины высоты выбранного профиля (для профиля Диск просто задаёт радиус).
Бета (:math:beta) определяет параметр бета, используемый в профиле PSF Моффат. Для других типов профилей PSF этот параметр игнорируется.
Для профиля PSF Диск Эйри требуется несколько параметров ваших телескопа и сенсора:
Диаметр / мм
Фокусное расстояние
Размер пикселя / мкм
Длина волны / нм. Siril попытается извлечь эти данные из метаданных вашего изображения, где это возможно, но если какие-то параметры отсутствуют или выглядят необоснованными, Siril выделит их и напечатает предупреждение в журнале с рекомендацией проверить их. Величина Центрального экранирования также необходима для получения точного изображения диска Эйри. Она выражается в процентах, т.е. как общая площадь центральной преграды, деленная на общую площадь апертуры х 100. Для рефракторов это значение равно нулю; для других телескопов этот показатель варьируется: для ньютоновского рефлектора он может составлять около 20%, а для некоторых телескопов Долла-Киркхэма - до 40-50%. Вам необходимо измерить свой прибор или ознакомиться со спецификациями производителя.
Реконструкция по Ричардсону-Люси
В Siril используются следующие параметры для настройки реконструкции методом Ричардсона-Люси:
Альфа (α) задает силу регуляризации. Меньшее значение альфа дает более сильную регуляризацию и более гладкий результат; большее значение снижает силу регуляризации и сохраняет больше деталей изображения, но может привести к усилению шума.
Кол-во итераций задаёт максимальное количество используемых итераций. При отсутствии шума большое количество итераций приведет к тому, что реконструкция приблизит оценку к истинному изображению, однако чрезмерно большое количество итераций также увеличит шум и вызовет кольцевые артефакты вокруг звезд. Значение по умолчанию — 1 итерация: можно задать большее число для автоматического вычисления нескольких итераций, или же вы можете продолжать нажимать Применить, чтобы применять одну итерацию за раз, пока не будете удовлетворены результатом. (Или сделав очередной шаг, решите, что результат вас больше не устраивает, и используете Отменить.)
Критерий остановки задает критерий сходимости на основе разницы между последовательными оценками. Алгоритм остановится, когда сходимость окажется в пределах указанного предела. Это важный параметр — если на итоговом изображении появляются кольца вокруг звезд, попробуйте увеличить значение критерия остановки. Его также можно полностью отключить с помощью соответствующего флажка.
Алгоритм определяет, следует ли использовать мультипликативный метод или метод градиентного спуска.
Шаг спуска указывает размер шага, который будет использоваться для реализации градиентного спуска. Не устанавливайте его слишком большим, иначе алгоритм не будет сходиться. Этот параметр не действует, если выбрана мультипликативный метод.
Совет
Для линейных изображений попробуйте использовать метод градиентного спуска, который обеспечивает контроль, необходимый для предотвращения образования колец вокруг звезд. Однако при обработке растянутых изображений это может быть неоправданно медленным процессом, поэтому использование мультипликативного метода часто позволяет сэкономить время без ущерба для качества изображения.
Реконструкция методом Брэгмана с регуляризацией
В Siril используются следующие параметры для настройки реконструкции методом Брэгмана с регуляризацией:
Альфа (α) задает силу регуляризации. Меньшее значение альфа дает более сильную регуляризацию и более гладкий результат; большее значение снижает силу регуляризации и сохраняет больше деталей изображения, но может привести к усилению шума.
Кол-во итераций указывает максимальное количество используемых итераций. Метод Брэгмана в том виде, в котором он реализован здесь, не требует многократных итераций, но при желании может быть повторен. Как правило, это имеет лишь небольшое значение, и поэтому значение по умолчанию равно 1.
Реконструкция методом Винера
Реконструкция Винера в Siril требует только один параметр:
Альфа (α) задает силу регуляризации. Меньшее значение альфа дает более сильную регуляризацию и более гладкий результат; большее значение снижает силу регуляризации и сохраняет больше деталей изображения, но может привести к усилению шума.
Настройки производительности FFTW
Алгоритмы оценки PSF и реконструкции активно используют быстрое преобразование Фурье с использованием библиотеки FFTW. Это предоставляет ряд настроек, которые можно изменить на вкладке Производительность в основном диалоговом окне Siril Настройки.
Для различных типов изображений, обрабатываемых Siril, данные о пикселах могут располагаться в разном порядке. В видеофайлах SER данные всегда хранятся сверху вниз, в то время как в файлах FITS данные могут храниться как снизу вверх, так и сверху вниз. Порядок снизу вверх является изначальной рекомендацией, однако все чаще снимки получаются с помощью CMOS-камер, которые, как правило, следуют порядку пикселей сверху вниз.
Когда делается реконструкция изображения на основе PSF, созданной на основе того же изображения (или когда оно открыто), это не вызывает проблем. Однако могут возникнуть сложности, если PSF генерируется на основе изображения с одним порядком строк, а затем используется для реконструкции изображения или последовательности с противоположным порядком строк. Это редкий случай, но его использование стабильно будет приводить к поведению, которое на первый взгляд может показаться неожиданным. Поэтому оно объясняется ниже.
Siril решает эту проблему, отслеживая порядок строк изображения, на основе которого была создана PSF. Все PSF сохраняются с порядком строк снизу вверх (автоматически переворачивает их, если они были созданы из изображения с порядком строк сверху вниз), и при загрузке порядок строк PSF приводится в соответствие с порядком строк текущего открытого изображения. Если открывается изображение с противоположным порядком строк, порядок строк PSF изменяется, чтобы соответствовать ему. Это означает, что если, например, вы возьмёте несколько FITS-изображений с порядком строк снизу вверх, создадите PSF на основе одного из них, а затем конвертируете их в последовательность SER с порядком строк сверху вниз, PSF будет автоматически преобразована в правильную ориентацию, чтобы соответствовать последовательности SER. Если в момент открытия изображения с противоположным порядком строк выполняется предварительный просмотр PSF, он не обновится сразу: изменение порядка строк будет обнаружено автоматически, и PSF будет перевёрнута в момент применения к изображению.
Этот раздел показывает несколько примеров, где реконструкция выполнена плохо, вместе с объяснениями причин.
Заданная вручную PSF оказалась слишком большой, что привело к появлению крупных тёмных колец вокруг звёзд.
Было применено слишком много итераций. (Я применял их по одной за раз до тех пор, пока результат не стал утрированным, поэтому в параметре Кол-во итераций (Iterations) по-прежнему указано значение 1.)
Крупным планом показан эффект от попытки применить слишком большую регуляризацию (Альфа (α) = 30) с использованием мультипликативной версии Ричардсона-Люси. Для строгой регуляризации и /или лучшего контроля над каждой итерацией рекомендуется использовать метод градиентного спуска.
Типичный пример попытки реконструкции нерастянутого звездного поля с помощью метода Брэгмана (в данном случае) или с помощью метода Винера. Эти методы лучше подходят для планетарных / лунных / солнечных изображений; для звездных пейзажей всегда рекомендуется использовать Ричардсона-Люси.
Вы попали сюда с помощью кнопки "Советы" в инструменте реконструкции в Siril. Не беспокойтесь: реконструкция - сложный метод. Даже теоретически это действительно сложно: нет никаких гарантий, что математика всегда приведет к уникальному решению, которое улучшит ваше изображение. Тем не менее, вот несколько советов, которые помогут вам получить максимальную отдачу от алгоритмов реконструкции Siril.
Использование правильной PSF является основой для достижения хороших результатов при реконструкции. Два самых простых способа создать PSF — это использовать Реконструкцию вслепую или смоделировать PSF по звёздам на вашем изображении.
PSF по звёздам
Siril может обнаруживать и моделировать звёзды по вашему изображению. Подробности см. на странице справки Динамическая PSF. Чтобы получить хорошую модель для вашей PSF, попробуйте выбрать профиль звезды Моффат в Динамической PSF. Звёзды являются точечными источниками, поэтому функция распределения, построенная по усреднённым параметрам имеющихся звёзд, служит хорошей моделью для эффектов размытия, которые мы пытаемся устранить с помощью реконструкции.
Совет
После того как вы сделали обнаружение звёзд, отсортируйте их по пиковой амплитуде (столбец "A"). Выделите и удалите те, у которых амплитуда больше 0.7 или меньше 0.1, а если на вашем изображении есть фоновые галактики, убедитесь, что не осталось ложных срабатываний. Звёзды в этом диапазоне яркости не насыщенны и не слишком тусклы, чтобы обеспечить точную модель PSF.
Совет
Если реконструкция вслепую может быть выполнена на линейных и нелинейных данных, то использование PSF по звёздам может быть выполнено только на линейных изображениях. В противном случае значения PSF были бы недействительными.
Реконструкция вслепую
Эти методы могут автоматически оценить PSF на основе самого изображения. Если у вас нет более точных исходных данных о PSF, таких как звёзды на изображении (например, снимки Луны, на которых нет звёзд), то это может быть лучшим вариантом. В большинстве случаев рекомендуется использовать метод по умолчанию \(\boldsymbol{ℓ_0}\): спуска он быстрее и обычно даёт лучшие результаты.
Совет
Независимо от того, как вы создаёте свою PSF, проверьте предварительный просмотр, чтобы убедиться, что она не выглядит обрезанной. Если это всё же так, увеличьте размер PSF, чтобы значительные части PSF не обрезались.
Другие методы создания PSF
Другие методы создания PSF, заслуживающие упоминания, — это профили создаваемые вручную Диск и Диск Эйри. Профиль Диск можно использовать для улучшения изображений, где фокус слегка смещён. Постарайтесь подобрать размер диска в соответствии с размером размытия, вызванного расфокусировкой. Диск Эйри можно использовать для устранения лёгкого размытия, вызванного дифракцией самого телескопа.
Совет
Если у вас отличная видимость (атмосферное размытие практически отсутствует), то, возможно, все, что вам нужно, — это уменьшить искажение изображения с помощью профиля Диск Эйри.
Как только вы создадите PSF, которая вас устроит, можно приступать к реконструкции изображения. Для получения хороших результатов важно использовать правильные настройки.
Совет
Deconvolution is quite slow for large images. To make it quicker to
find the best parameters, save your work at this point and use the ROI feature.
Изображения со звёздами
Изображения, содержащие звезды, особенно линейные (нерастянутые) данные, всегда следует реконструировать с помощью методов Ричардсона-Люси. Не обращайте внимания на методы Брэгмана и Винера: эти алгоритмы подходят для изображений объектов солнечной системы.
При реконструкции изображений объектов глубокого космоса возникают две проблемы: кольца вокруг ярких звезд и усиление шума на заднем плане.
Для решения проблемы колец вокруг звёзд, попробуйте использовать алгоритм градиентного спуска и постепенно увеличивайте количество итераций, пока не начнёте замечать признаки образования тёмных колец вокруг звёзд, после чего немного сократите количество итераций.
Приведенная выше анимация демонстрирует эффект сокращения числа итераций мультипликативной формулировки Ричардсона-Люси: она также демонстрирует более точный контроль, которого можно достичь с помощью метода градиентного спуска за счет большего количества итераций.
Чтобы справиться с усилением фонового шума, вы можете попробовать применить небольшое шумоподавление перед реконструкцией. В диалоговом окне Подавление шума выберите алгоритм вторичного шумоподавления Преобразование Анскомба и оставьте уровень модуляции достаточно низким, попробуйте около 50-60%. Вы просто хотите уменьшить уровень шума, чтобы немного увеличить количество итераций, а не создавать полностью гладкое изображение.
Изображения Луны
Как правило, вы можете захотеть повысить резкость лунного изображения после сложения. У сложенных лунных изображений можно очень хорошо повысить резкость с помощью методов Брэгмана или Винера. Я обычно выбираю метод Брэгмана с регуляризацией. Попробуйте оставить значение Альфа (\(\boldsymbol{\alpha}\)) по умолчанию и выполнить реконструкцию изображения с использованием Реконструкции вслепую и \(\boldsymbol{ℓ_0}\) спуска. Пример этого показан ниже с использованием только что сложенного лунного изображения (т. е. к нему не применялась обработка вейвлетов). Несмотря на ограничения формата анимации GIF, повышение резкости можно четко увидеть; также очевидно, что результаты методов Брэгмана и Винера очень похожи.
Сложенные изображения планет
Типичный рабочий процесс для планетарной съёмки включает сложение видео SER в специализированном инструменте, таком как Autostakkert! или Astrosurface, а затем повышение резкости полученного изображения с использованием вейвлетов и реконструкции. Комбинация инструмента Стационарное вейвлет-преобразование и инструмента Реконструкция в Siril даёт отличные результаты, как показано здесь. Это изображение Юпитера было первоначально улучшено с помощью вейвлетов, где первый слой был установлен на 75, второй — на 10, а остальные оставлены по умолчанию. Затем была создана цветная PSF из трёх дисков Эйри, рассчитанных для используемого телескопа и сенсора (6-дюймовый Ньютон с линзой Барлоу 3x и сенсором ASI462MC с пикселями 2,9 микрона), объединённых с помощью инструмента Совмещение в RGB. Эта PSF была использована для реконструкции изображения с 6 итерациями метода Ричардсона-Люси (в данном случае использовалась мультипликативная версия). На каждом этапе изображение становится чётче.
Необработанное уложенное изображение всё ещё размыто.
Обработано в Siril с использованием вейвлет-преобразования, коррекция 1-го вейвлет-слоя равна 75, у 2-го вейвлет-слоя — 10.
Обработано в Siril с вейвлетами, как и выше, и затем мультипликативным методом реконструкции по Ричадсону-Люси с 6-ю итерациями .
Не сложенные изображения планет
Совет
Внимание: этот метод чрезвычайно медленный, поскольку требует индивидуальной обработки, как правило, 30 000 (или больше) изображений в планетарной последовательности!
Некоторые пользователи предлагают смягчить диффракцию телескопа, выполнив до укладки реконструкцию вашей последовательности, используя для генерации PSF профиль Диск Эйри. Чтобы сделать это для типичной цветной камеры, при загрузке последовательности необходимо установить флажок Дебайеризация. Вы можете пойти ещё дальше, если захотите, сгенерировав три отдельные профиля Диска Эйри для красного, зелёного и синего цветов (обычно 600нм, 530нм и 450нм соответственно). Siril напрямую не может создавать цветную PSF (интерфейс реконструкции и так достаточно перегружен!), но если вы отдельно сохраните красный, зелёный и синий профили Диска Эйри вы можете объединить их в цветную PSF, используя инструмент Совмещение в RGB. Сохраните её, и при загрузке цветного изображения или последовательности PSF будет загружаться в цвете и выполняться реконструкцию каждого цветового канала с использованием соответствующей PSF.
Укладка и повышение чёткости без реконструкции каждого кадра.
Необработанный результат укладки: лучшие 30% из 91тыс кадров, к которым была применена реконструкция Siril.
Результат повышения чёткости изображения, полученного укладкой кадров, к которым была применена реконструкция.
На изображении выше видно небольшое улучшение формы кромки в варианте, в котором перед укладкой кадры были подвергнуты реконструкции с помощью профиля PSF Диск Эйри по методу Ричардсона-Люси в Siril, но необходимо соблюдать осторожность, чтобы избежать потери деталей. Этот процесс очень медленный: моей машине, на которой я веду разработку, потребовалось 4,5 часа, чтобы обработать каждый из 91тыс кадров этой последовательности, а улучшение может быть незначительным, если вообще произойдет.
Генерирует PSF для реконструкции любым из трех методов предоставляемых командами RL, SB или WIENER. В качестве первого аргумента должно быть указано одно из следующих ключевых слов: clear (очищает существующую PSF), load (загружает PSF из файла), save (сохраняет текущую PSF), blind (реконструкция вслепую), stars (генерирует PSF на основе измеренных на изображении параметров звезд) или manual (генерирует PSF на основе заданных вручную параметров функции).
При использовании аргумента clear дополнительные аргументы не требуются.
Для загрузки раннее сохранённой PSF аргументу load требуется второй аргумент filename с названием файла, содержащим PSF. Это может быть любой формат, с поддержкой которого был скомпилирован Siril, но файл должен быть квадратным и, в идеале, иметь нечётный размер.
Для сохранения ранее созданной PSF используется аргумент save. По выбору может быть указано имя файла, которое должно иметь расширение ".fit", ".fits", ".fts" или ".tif". Если имя файла не указано, PSF будет названа на основе имени открытого файла или последовательности.
Вместе с аргументом blind, могут быть указаны следующие необязательные аргументы: -l0 использует метод спуска l0, -si использует метод неравномерности спектра, -multiscale указывает методу l0 выполнить многоступенчатую оценку PSF, -lambda= предоставляет постоянную регуляризации.
Для PSF, рассчитанной по звёздам (stars) может быть передан единственный необязательный аргумент -sym, указывающий, что PSF должна быть симметричной.
Для PSF, рассчитанной вручную (manual), может быть передан необязательный аргумент -gaussian, -moffat, -disc или -airy (значение по умолчанию — Гауссов). Для PSF по Гауссу или Моффату могут переданы необязательные аргументы -fwhm=, -angle= и -ratio=. Необязательный аргумент -beta= может быть передан, если используется PSF по Моффату. Если эти значения не переданы, по умолчанию используются соответствующие значения, указанные в диалоге реконструкции. PSF по диску требует единственного аргумента -fwhm=, который в этой функции используется для установки диаметра PSF. Для PSF по диску Эйри могут быть переданы следующие аргументы: -dia= (устанавливает диаметр телескопа), -fl= (устанавливает фокусное расстояние телескопа), -wl= (устанавливает длину волны, для которой вычисляется дифракционная картина Эйри), -pixelsize= (устанавливает размер пикселя сенсора), -obstruct= (устанавливает размер центрального экранирования, как процент от общей площади апертуры). Если эти параметры отсутствуют, по умолчанию используются длина волны 525 нм и центральное экранирование в 0%. Siril попытается получить оставшиеся из открытого изображения, но некоторые программы захвата изображений могут не предоставлять всю необходимую информацию и в этом случае результаты будут плохими. Имейте ввиду, что видео в формате SER могут иметь незаполненные метаданные. Какие из аргументов можно не указывать для конкретного оборудования вы можете определить опытным путём.
Для любого из приведённых выше аргументов, могут быть указаны необязательные аргументы -ks= для установки размера PSF и -savepsf= filename для сохранения созданной PSF: название файла должно быть указано; требования к расширению файла такие же, как для makepsf save filename
Восстанавливает изображение с помощью метода Ричардсона-Люси.
PSF может быть загружена с помощью необязательного аргумента -loadpsf=filename (создан с помощью MAKEPSF).
Количество повторов устанавливается с помощью -iters (по умолчанию — 10).
Тип регуляризации может быть установлен с помощью -tv для полной вариации или -fh для нормы Фробнеуса для матрицы Гессе (по умолчанию — регуляризация отключена) и параметра -alpha=, устанавливающего силу регуляризации (меньшее значение = бо́льшая регуляризация, по умолчанию = 3000).
По умолчанию используется метод градиентного спуска с шагом 0.0005, однако с помощью -mul может быть использован мультипликативный метод.
Критерий остановки можно включить, указав предел остановки с помощью -stop=
Anger, J., Facciolo, G., & Delbracio, M. (2018). Estimating an
image's blur kernel using natural image statistics, and deblurring it: an
analysis of the Goldstein-Fattal method. Image Processing On Line, 8,
282-304.
https://doi.org/10.5201/ipol.2018.211
Goldstein, A., & Fattal, R. (2012, October). Blur-kernel
estimation from spectral irregularities. In European Conference on Computer
Vision (pp. 622-635). Springer, Berlin, Heidelberg.
https://doi.org/10.1007/978-3-642-33715-4_45
Lucy, L. B. (1974). An iterative technique for the rectification
of observed distributions. The astronomical journal, 79, 745.
https://doi.org/10.1086/111605.
Siril предлагает два фильтра, сохраняющих края: реализацию билатерального фильтра от OpenCV, и фильтр с учителем. Оба фильтра можно использовать для уменьшения шума, а также для сохранения чётких краёв и сильных градиентов на изображении. Билатеральный фильтр действует на одно изображение, в то время как фильтр с учителем фильтрует изображение, используя эталонное изображение для определения структур. При простейшем использовании фильтр с учителем самообучается, используя входящее изображение в качестве эталонного.
Довольно простое диалоговое окно предоставляет несколько настроек.
Тип фильтра: Позволяет выбрать между билатеральным фильтром и фильтром с учителем.
Диаметр: Определяет размер ядра фильтра, которое будет использовано. При использовании билатерального фильтра установка диаметра, равного 0, приведёт к автоматической настройке размера ядра фильтра на основе пространственного значения σ. При использовании фильтра с учителем это значение необходимо установить — при диаметре, равном 0, фильтр не будет применён.
σ (пространственная): Этот параметр определяет пространственную протяженность ядра фильтра. Бо́льшее значение приводит к сглаживанию шума на бо́льшей площади изображения, но вычисление выполняется медленнее. Меньшее значение приводит к более локальному сглаживанию и ускоряет вычисления. Значения σ по умолчанию не установлены, поскольку соответствующее значение может существенно зависеть от характеристик изображения, но можно начать со значений σ (пространственная) и σ (интенсивность) примерно равными 11.
σ (интенсивность): Определяет диапазон изменения интенсивности, на который реагирует фильтр. Высокое значение эффективнее фильтрует шум, но может привести к потере подлинных деталей; низкое значение снижает эффективность фильтрации, но позволяет избежать потери деталей при более плавных градиентах.
Эталонное изображение: Позволяет выбрать изображение для использования в качестве эталонного при работе фильтра с учителем. Если установлен флажок «самообучение», фильтр будет работать в режиме самообучения, используя входящее изображение в качестве эталонного.
Модуляция: В Siril модуляция — это параметр в диапазоне от 0 до 1, который позволяет смешивать исходное и обработанное изображения. При значении 1 сохраняется только обработанное изображение, при значении 0 фильтр сохранения краёв, вообще не применяется.
Пример изменения параметров билатерального фильтра. Обратите внимание, что необходимые значения будут зависеть от характеристик шума ваших данных.
Совет
Параметры двух разных типов фильтров работают по-разному, поэтому при переключении между билатеральным фильтром и фильтром с учителем при установленных параметрах σ следует ожидать некоторого изменения результата предварительного просмотра. Код применяет определённую компенсацию к указанным параметрам, чтобы свести к минимуму разницу в поведении этих фильтров при одних и тех же входящих параметрах, но это не является точным (и не должно быть).
Применяет фильтр сохранения краёв. По умолчанию применяется билатеральный фильтр; фильтр с учителем можно применить с помощью аргумента -guided. Диаметр фильтра по умолчанию равен 3 и может быть установлен с помощью аргумента -d=. Будьте осторожны со значениями d, превышающими 20, так как алгоритм может потребовать большого количества вычислений.
Значение σ (интенсивность) можно задать с помощью -si=, а значение σ (пространственное) — с помощью -ss=. Значения σ представляют собой разницу в значениях пикселей, на которые сильно воздействует фильтр: для 32-битных изображений значение должно быть от 0 до 1.0, тогда как для 16-битных изображений оно должно быть от 0 до 65535. Значения по умолчанию, если они не указаны, должны быть равны 11. Если указано значение -d=0, диаметр фильтра будет установлен автоматически на основе значения -ss. Обратите внимание, что при применении фильтра с учителем применяется только-sc.
При указании фильтра с учителем эталонное изображение может быть задано с помощью -guideimage=. По умолчанию, если эталонное изображение не указано, применяется самообучающийся фильтр. Примечание: эталонное изображение должно иметь те же размеры, что и обрабатываемое!
Силу фильтра можно регулировать с помощью аргумента -mod=. Если mod = 1.0, то фильтр будет применён в полную силу; при mod менее 1.0 часть исходного изображения будет смешана с результатом, а при mod = 0.0 фильтрация применяться не будет
Преобразование Фурье (Fourier Transform, FT) — это математическое преобразование, которое раскладывает функции на частотные компоненты, представленные выходными данными преобразования как функции частоты. Это преобразование широко используется в обработке изображений, так как позволяет выявлять сигналы с регулярными частотами.
Теория
Преобразование Фурье
Преобразование Фурье — это процесс анализа, раскладывающий комплекснозначную функцию \(f(x)\) на составляющие ее частоты и их амплитуды:
\(\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) e^{-2\pi i \xi x} \, dx\).
Обратное преобразование
Обратным процессом является синтез, который воссоздаёт \(f(x)\) из её преобразования:
\(f(x) = \int_{-\infty}^{\infty} \hat{f}(\xi) e^{2\pi i \xi x} \, d\xi\).
Siri позволяет преобразовать изображение в частотном пространстве благодаря алгоритму быстрого преобразования Фурье. Результат представляет из себя два изображения. Первое, загружаемое автоматически, содержит величину (или модуль) преобразования, второе — фазу. Расположение двух изображений необходимо ввести на вкладке "Прямое преобразование" (см. иллюстрацию ниже) диалогового окна. Затем можно изменить изображение модуля, удалив частотные пики, соответствующие нежелательным сигналам. Важно не забыть сохранить изменения.
Когда отмечена опция По центру, начало координат прямого преобразования Фурье будет центрировано. Если нет — начало координат будет в левом верхнем углу.
Чтобы восстановить изображение, перейдите на вкладку Обратное преобразование и укажите путь к файлам амплитудных (modulus) и фазовых (phase) изображений.
Применяет быстрое преобразование Фурье к загруженному в память изображению. Амплитуда (modulus) и фаза (phase), указанные в аргументе, являются именами сохраняемых файлов FITS
Командная строка Siril
ffti modulus phase
Извлекает исправленное изображение, применяя обратное преобразование. Аргументы modulus и phase — это имена входящих файлов, Результатом будет новое загруженное изображение
Медиана представляет собой среднюю точку данных, в сравнении с которой половина данных меньше, а половина данных больше этой точки. Это надежная оценка для удаления выбросов из набора данных. Следовательно, этот инструмент может быть полезен как простой инструмент подавления шума, эффективный против импульсного шума.
Довольно простое диалоговое окно предоставляет несколько настроек.
Размер ядра: от \(3\times 3\) до \(15\times 15\), определяет размер квадратного ядра, которое используется для применения фильтра. Чем больше размер ядра, тем более размытым будет результат.
Кол-во итераций: определяет количество проходов ядра.
Модуляция: в Siril модуляция — это параметр между 0 и 1, смешивающий исходное и обработанное изображения. Значение 1 сохраняет только обработанное изображение, значение 0 вообще не применяет медианный фильтр.
Командная строка Siril
fmedian ksize modulation
Применяет медианный фильтр, размером ksize × ksize (ksize ДОЛЖЕН быть нечётным), к загруженному изображению с параметром модуляции modulation.
Значения итоговых пикселей вычисляются как : out=mod × m + (1 − mod) × in, где m это значение пикселя после применения медианного фильтра. При значении модуляции равном 1, модуляция не применяется
Этот тип шума (иногда называемый "шумом соль с перцем") обычно возникает из-за горячих или холодных пикселей. Обычно с ним справляются с помощью метода сложения с обрезкой по сигме, но иногда может потребоваться справиться с ним, если вы работаете с одиночным изображением без сложения.
Аддитивный белый гауссовкий шум
Этот тип шума характерен для хорошо освещённых фотографий: он возникает из-за тепловых и электронных флуктуаций в устройстве захвата изображения, и уровень шума не зависит от сигнала. Аддитивный белый гауссовский шум можно уменьшить во время съёмки, используя охлаждаемые камеры. Также он уменьшается при сложении изображений, поскольку сложение \(n\) изображений увеличивает коррелированный сигнал в \(n\) раз, тогда как некоррелированный шум увеличивается только в \(\sqrt{n}\) раз. Это также тот тип шума, для удаления которого разработано большинство классических алгоритмов шумоподавления.
Пуассоновский шум
При работе с изображениями, испытывающими недостаток фотонов, характер шума перестает быть в первую очередь гауссовским, а вероятностный способ подсчета фотонов становится значимым или даже доминирующим. Это моделируется распределением Пуассона, и этот тип шума зависит от сигнала.
Siril предлагает хорошо изученные современные классические алгоритмы подавления шума. Критериями выбора алгоритмов были:
Алгоритм должен быть проанализирован в рецензируемых научных журналах с описанием алгоритма и объективным количественным сравнением его эффективности.
Авторы должны были предоставить доступ к реализации алгоритма в рамках свободного программного обеспечения с открытым кодом (F/OSS). Это важно для предотвращения проблем с интеллектуальной собственностью и, в случае непосредственного использования отсылок к авторским реализациям, для обеспечения совместимости лицензий.
Алгоритмы должны работать достаточно быстро.
Наконец, реализация алгоритма должна быть способна обрабатывать 32-битные пиксельные данные с плавающей запятой.
Технология шумоподавления с использование нейронных сетей была исследована, но в настоящее время не используется из-за сложности разработки. Эффективность нейронных сетей по снижению уровня шума, как правило, может превосходить классические подходы, достигая пикового соотношения сигнал/шум до дБ, но производительность сильно зависит от того, обучается ли нейронная сеть на данных, представляющих реальные живые данные.
Siril в первую очередь удаляет импульсный шум с помощью сложения с обрезкой по сигме. Если вы используете этот метод сложения, у вас не должно возникнуть никаких проблем с импульсным шумом. Однако, если вы работаете с одиночной экспозицией, вы вполне можете обнаружить импульсный шум на своем изображении. Его следует удалить с помощью функции Косметическая коррекция в Siril перед использованием любого другого шумоподавления, так как наличие импульсного шума может исказить работу алгоритмов удаления аддитивного белого гауссовского шума и создать артефакты. Этот метод работает аналогично обрезанию по сигме, но анализирует соседние пиксели. Любой пиксель, интенсивность которого больше, чем n стандартных отклонений от соседних, будет отклонен и заменен значением, основанным на медиане соседних пикселей. В инструменте Подавление шума Косметическая коррекция активна по умолчанию и будет выполняться перед любыми дополнительными шагами шумоподавления. (Даже если удаление импульсного шума уже выполнено, сохранение этой настройки не навредит.) Кроме того, косметическую коррекцию можно выполнить вручную с помощью инструмента Косметическая коррекция в меню Обработка.
Основной алгоритм подавления аддитивного белого гауссовского шума, используемый в Siril, — это нелокальное байесовское шумоподавление (НЛ-Байесовское) [Lebrun2013].
Нелокальные алгоритмы шумоподавления представляют собой значительное улучшение по сравнению с предыдущими линейными фильтрами, ориентированными на пиксели. НЛ Байесовское шумоподавление — это улучшенная версия более ранних нелокальных алгоритмов шумоподавления и один из лучших классических алгоритмов шумоподавления аддитивного белого гауссовского шума. Он незначительно лучше, чем современный “эталонный” алгоритм сопоставления блоков и снижения шума 3D-преобразования (BM3D), и намного быстрее выполняется.
Ключевым параметром, необходимым для оптимизации производительности алгоритмов подавления аддитивного белого гауссовского шума, является сигма, стандартное отклонение шума. Siril измеряет уровень шума непосредственно на основе данных изображения и передает их в алгоритм НЛ Байесовского шумоподавления, поэтому в инструменте шумоподавления Siril нет настраиваемых входных данных для НЛ Байесовского шумоподавления.
Siril дополняет НЛ Байесовское шумоподавление рядом других алгоритмов шумоподавления:
Этот метод использует результат НЛ Байесовского шумоподавления в качестве опорного изображения. Опорное изображение применяется для повторной обработки исходного изображения путем выполнения сжатия в частотной области на адаптивных к форме и данным участках. Это немного улучшает производительность НЛ Байесовского шумоподавления, хотя и требует дополнительных вычислительных затрат. Адаптивные к форме и данным участки выбираются динамически, что позволяет сосредоточить вычисления на областях с наибольшей детализацией. Также это помогает уменьшить ступенчатые артефакты, присутствующие в опорном изображении.
В инструменте шумоподавления Siril DA3D — это простой переключатель без дополнительных настроек.
SOS работает путем многократного повторения основного алгоритма устранения шума. На каждой итерации изображение "усиливается" путем добавления некоторой доли исходного зашумленного изображения. Алгоритм НЛ Байесовского шумоподавления выполняется на этом усиленном изображении, после чего вычитается предыдущая оценка.
Изображение x на итерации \(k+1\) задаётся формулой \(x_{k+1}=f(y+x_k)-x_k\), где \(y\) — зашумленное входное изображение.
В инструменте шумоподавления Siril SOS — это переключатель с двумя параметрами: можно задать Кол-воповторовSOS и долю изображения с шумами, добавляемого на каждой итерации (ρ). Избегайте установки слишком высокого значения ρ, так как это может привести к проблемам со сходимостью SOS: значения по умолчанию (3итерации и ρ=0.2) обычно приемлемы.
Алгоритмы: Пуассоновский и Пуассоно-Гауссовский шум
Преобразования, стабилизирующие дисперсию, используются для изображений с Пуассоновским или Пуассоно-Гауссовским шумом, чтобы минимизировать зависимость шума от сигнала и сделать его более похожим на аддитивный белый гауссовский шум (AWGN), который хорошо устраняется методом НЛ Байеса, после чего применяется обратное преобразование. Преобразование, выбранное для использования в Siril, — это преобразование Анскомба \(A: x\rightarrow 2\times \sqrt{\left(x+\frac{3}{8}\right)}\)
Так как преобразование является нелинейным, использование результатов прямого алгебраического обратного преобразования может привести к смещению результата. Поэтому Siril использует приближение в закрытой форме (аналитическое приближение) к точной несмещенной обратной функции, которое быстро вычисляется и обеспечивает значительное улучшение по сравнению с другими формами обратного преобразования, такими как асимптотическая обратная функция.
В инструменте шумоподавления Siril Преобразование Анскомба представляет собой простой переключатель без дополнительных настроек.
Обратите внимание, что можно выбрать только один из вышеупомянутых дополнительных алгоритмов шумоподавления.
Анимация ниже демонстрирует, что можно достичь с использованием стабилизации дисперсии на изображении с низкой интенсивностью фотонов, в данном случае это одиночный 5-минутный кадр туманности Пеликана через красный фильтр, показанный на экране в режиме Авторастягивание. Обратите внимание на отсутствие размытия, расплывчатости или потери деталей вокруг звезд и четкий край туманности в нижней левой части изображения по сравнению с тем, что можно было бы получить с использованием более простых методов шумоподавления. После более деликатного растяжения и объединения с другими каналами это значительно улучшит качество, достижимое с очень ограниченными данными (хотя больше данных всегда является лучшим решением!)
Шумоподавление изображения с низкой интенсивностью фотонов
В Siril модуляция — это параметр между 0 и 1, задающий степень смешивания исходного и очищенного от шума изображения. Значение 1 оставляет только очищенное от шума изображение, а значение 0 совсем не применяет шумоподавление. Модуляция очевидно снижает эффективность шумоподавления, но в некоторых случаях, если шумоподавление сделало плоские области изображения слишком гладкими, можно использовать модуляцию для восстановления внешнего вида микротекстуры в этих областях.
Алгоритмы шумоподавления разработаны для удаления аддитивного белого гауссовского шума (AWGN) и поэтому работают лучше всего на нерастянутых изображениях: если белый шум подвергается нелинейной коррекции, его характеристики изменяются, и он перестает быть белым. Шумоподавление можно выполнять и на растянутых изображениях, что всё равно приведет к улучшению, но, вероятно, будет менее эффективным, чем при применении на линейном этапе.
Инструмент шумоподавления в Siril доступен двумя способами: через графический интерфейс (GUI) или через командную строку. На изображении ниже показан графический интерфейс. Примечание: Расширенные настройки SOS отображаются только при выборе метода Усиление-подавление-вычитание (SOS).
Подавляет шум на изображении, используя нелокальный Байесовский (НЛ Байесовский) алгоритм описанный Лебраном, Буадесом и Морелом.
Перед шумоподавлением настоятельно рекомендуется применить косметическую коррекцию для удаления шума типа соль и перец. По умолчанию эта команда автоматически применяет косметическую коррекцию. Однако, если косметическая коррекция была выполнена в ходе рабочего процесса раннее, она может быть отключена с помощью опции -nocosmetic.
Может быть указан необязательный аргумент -mod=m, где 0 <= m <= 1. Итоговое значение пикселя вычисляется как out=m × d + (1 − m) × in, где d это значение пикселя после шумопдавления. Модуляция не применяется при значении 1. Если этот параметр не указан, по умолчанию он равен 1.
Необязательный аргумент -vst можно использовать для применения перед НЛ Байесовским шумоподавлением стабилизирующего дисперсию обобщённого преобразования Анскомба. Это полезно для изображений, например, одиночные субэкспозиции, где шум имеет Пуассоновское или смесь Пуассоновского и Гауссова распределений, а не главным образом Гауссово распределение. Нельзя использовать вместе с DA3D или SOS. Для шумоподавления уже уложенных изображений обычно не даёт выигрыша.
Необязательный аргумент -da3d можно использовать для включения адаптивного двухдоменного подавления шума (DA3D) в качестве заключительного алгоритма подавления шума. Результат алгоритма сопоставления блоков и 3D трансформации (BM3D) используется как эталонное изображение для улучшения шумоподавления. DA3D улучшает детали и уменьшает ступенчатые артефакты.
Необязательный аргумент -sos=n можно использовать для включения итеративного улучшения шумоподавления с помощью алгоритма усиление-подавление-вычитание (SOS). Количество повторов указывается с помощью n. В частности, SOS может давать лучшие результаты, если неулучшенный НЛ Байесовский алгоритм оставляет артефакты в областях фона. Если одновременно переданы -da3d и -sos=n, то будет применён последний из переданных.
Может быть передан необязательный аргумент -rho=r, где 0 < r < 1. Он используется алгоритмом SOS для указания доли зашумлённого изображения, подмешиваемой к промежуточному результату между каждым повтором. Если -sos=n не указан, этот параметр игнорируется.
По умолчанию DA3D или SOS не применяются, поскольку обычно улучшение в подавлении шума относительно невелико, а эти методы требуют дополнительного вычислительного времени.
В очень редких случаях, при подавлении шума на цветных изображениях могут появляться цветные артефакты. Для предотвращения этого можно использовать необязательный аргумент -indep, благодаря чему подавление шума в каждом канале выполняется отдельно. Это медленнее, но удаляет артефакты
На изображениях ниже представлено упрощенное сравнение различных алгоритмов. Обратите внимание, что используется только одно изображение: на практике различные алгоритмы могут быть более эффективны для разных изображений. Все изображения можно кликнуть, чтобы просмотреть в масштабе 100%.
Шум удалён с использованием НЛ Байесовского алгоритма с преобразованием Анскомба
Шум удалён с использованием НЛ Байесовского алгоритма, дисперсия стабилизирована преобразованием Анскомба. Справа показано увеличение до 200% без интерполяции.
Шум удалён с использованием алгоритма Адаптивного двухдоменного подавления шума (DA3D), используя в качестве опорного изображение, обработанное НЛ Байесовским методом
Шум удалён с использованием алгоритма Адаптивного двухдоменного подавления шума (DA3D), опорное изображение подготовлено НЛ Байесовским методом. Справа показан фрагмент с увеличением в 200% без интерполяции.
Шум удалён НЛ Байесовским методом плюс Усиление-подавление-вычитание (SOS)
Шум удалён НЛ Байесовским методом плюс повторы Усиления-подавления-вычитания (SOS). Справа показан фрагмент с увеличением в 200% без интерполяции.
Основным ограничением является то, что алгоритмы лучше всего работают, когда шум имеет гауссовский характер (или может быть преобразован в приблизительно гауссовский с помощью преобразования Анскомба (VST)). Существуют некоторые причины, по которым это может не быть верным:
Если изображение уже подверглось серьезной обработке, например, преобразованию (деконволюции) или повышению четкости с помощью вейвлетов, характер шума обычно уже не будет гауссовским. Если как шумоподавление, так и преобразование (деконволюция) являются частью вашего рабочего процесса, шумоподавление следует выполнять в первую очередь.
Изображения, полученные цветной камерой (OSC), могут поддаваться шумоподавлению хуже, чем монохромные или скомпонованные цветные изображения. Небольшое снижение уровня аддитивного белого гауссовского шума (AWGN) в канале яркости достигается, но в результате процесса дебайеризации характер шума изменяется так, что он больше не соответствует модели AWGN и поэтому удаляется менее эффективно. Кроме того, как для снимков с цветных камер (OSC), так и для скомпонованных монохромных цветных изображений шум цветности редко соответствует модели AWGN и требует другого подхода к обработке. На данный момент шум цветности лучше всего корректировать с помощью программного обеспечения общего назначения для обработки изображений, такого как`The GIMP <https://www.gimp.org>`__.
Lebrun, M., Buades, A., & Morel, J. M. (2013) Implementation
of the “Non-Local Bayes” (NL-Bayes) Image Denoising Algorithm.
Image Processing On Line, 3 , pp. 1–42.
https://doi.org/10.5201/ipol.2013.16
Pierazzo, N., & Facciolo, G. (2017). Data adaptive dual
domain denoising: a method to boost state of the art denoising algorithms.
Image Processing On Line, 7, 93-114.
https://doi.org/10.5201/ipol.2017.203
Mäkitalo, M., & Foi, A. (2012, March). Poisson-gaussian
denoising using the exact unbiased inverse of the generalized anscombe
transformation. In 2012 IEEE International Conference on Acoustics, Speech
and Signal Processing (ICASSP) (pp. 1081-1084). IEEE.
https://doi.org/10.1109/ICASSP.2012.6288074
Makitalo, M., & Foi, A. (2011). A closed-form approximation
of the exact unbiased inverse of the Anscombe variance-stabilizing
transformation. IEEE transactions on image processing, 20(9), 2697-2698.
https://doi.org/10.1109/TIP.2011.2121085
Градиент вращения, также называемый фильтром Ларсона-Секанины, — это фильтр, который позволяет удалить круговые структуры с изображения для лучшего выделения других деталей. Эта техника особенно эффективна для демонстрации джетов (струй), исходящих из ядра кометы.
Принцип довольно прост: эта обработка изображения заключается в вычитании двух копий изображения друг из друга, причем одна из двух копий была предварительно повернута относительно точки, определенной на изображении.
Если вокруг этой точки присутствуют круговые структуры, они не изменяются при вращении и исчезнут после применения этого фильтра.
Если присутствуют некруговые структуры, такие как джеты в коме, они будут смещены относительно друг друга между двумя копиями, и вычитание усилит контраст этих структур в результате.
Если комета движется на изображении, можно добавить радиальное смещение.
Исходя из входного изображения, фильтр создает два изображения, каждое из которых имеет радиальное смещение (\(dr\) в пикселях) и вращательное смещение (\(d\alpha\) в градусах) относительно точки (\(x_c\), \(y_c\)). Эти смещения имеют одинаковую величину, но противоположные знаки между двумя изображениями. Затем два изображения объединяются для получения конечного изображения. В полярных координатах \((r, a)\) относительно точки \((x, y)\) имеем:
with \(B\): the starting image, \(B'\): the resulting image,
\(dr\): the radial shift and \(d\alpha\): the rotational shift
В приведенном ниже примере, касающемся кометы C/2022 E3, было выполнено выравнивание по комете, и звезды показывают существенные следы. Кома имеет очень круглую форму, и трудно увидеть детали ее активности. Поэтому нет необходимости определять радиальный сдвиг. Для поворота был выбран угол в 15° (этот выбор был сделан после нескольких попыток и использования кнопки отмены для возврата назад). Чтобы выбрать координаты центра вращения, просто сделайте выделение вокруг ядра кометы и нажмите на :guilabel: "Использовать текущее выделение`. Это действие скопирует координаты центроида в нужное место.
Изображение кометы (C/2022 E3 (ZTF)), показывающее кому и хвост (любезно предоставлено Stéphane Garro).
Простое нажатие на кнопку Применить применит фильтр. В нашем примере становится виден джет.
После применения фильтра мы замечаем джет, выходящий из ядра.
Командная строка Siril
rgradient xc yc dR dalpha
Создаёт два изображения с радиальным (dR пикселей) и вращательным (dalpha градусов) сдвигом по отношению к точке (xc, yc).
Сдвиги между этими изображениями имеют одинаковую амплитуду, но противоположенный знак. Далее изображения суммируются для создания итогового изображения. Этот процесс также называет фильтром Ларсона Секанина
Этот косметический фильтр предназначен для уменьшения фиолетовых ореолов вокруг звёзд, которые могут быть видны при использовании ахроматических рефракторов, особенно при широкополосной съёмке. Фильтр работает с растянутыми цветными изображениями.
Совет
Данный фильтр предназначен для работы с нелинейными изображениями. Поэтому его необходимо использовать после растягивания гистограммы.
Фильтр работает в двух режимах: когда он воздействует на все цвета или ограничивается только звёздами.
Он уменьшает фиолетовые ореолы, применяя маску светимости, созданную на основе зелёного канала, к синему каналу и позволяя уменьшить интенсивность последнего. В режиме маски звёзд воздействие фильтра ограничивается областями вокруг обнаруженных звёзд.
Этот режим полезен при работе с маской звёзд или с изображениями, содержащими только звёзды, например, шаровые скопления. Он не очень удобен для изображений туманностей или галактик, поскольку может повлиять на цвет.
Для использования вам следует сместить ползунок Коррекция синего в сторону уменьшения, пока воздействие фильтра не станет оптимальным. Обычно это значение составляет около 0.15.
Вы также можете сместить ползунок Порог в сторону увеличения, чтобы ограничить воздействие фильтра теми пикселями, чья светимость превышает это значение. В этом режиме оптимальное значение будет довольно низким.
Этот режим полезен для совмещённых изображений, на которых вы хотите ограничить действие этого фильтра только звёздами.
Для использования этого режима, следует установить флажок Маска звёзд. Если вы еще не определили маску звёзд с помощью функции «Динамическая PSF», то при создании маски произойдет задержка в несколько секунд. Теперь вы можете временно уменьшить значение Коррекция синего до нуля. Теперь звёзды должны быть жёлтыми. Если вы по-прежнему видите фиолетовые ореолы, вам следует с помощью ползунка увеличивать значение параметра «Порог» до тех пор, пока ореолы полностью не покроются жёлтым цветом. Теперь вы можете с помощью ползунка увеличивать значение параметра Коррекция синего до тех пор, пока ваши звёзды не станут желтыми, а фиолетовые ореолы не уменьшатся или не исчезнут вовсе. Обычно это происходит при значениях примерно 0.12-0.15.
Сравнение до/после применения фильтра подавления фиолетовых ореолов. Очень хорошо видно, что звёзды имеют лучший цвет без фиолетового ореола.
Применяет косметический фильтр для уменьшения фиолетовых ореолов вокруг звёзд.
Если передан аргумент -starmask, то для определения областей изображения, на которые необходимо воздействовать, будет использована маска звёзд. Если «Динамическая PSF» уже запущена, она будет использоваться для создания маски, в противном случае она будет создана автоматически. Параметру -mod= следует присвоить значение около 0.14, чтобы уменьшить количество фиолетового цвета. Параметр -thresh= задает модификатор размера для каждой звезды в маске звёзд и должен быть достаточно большим, чтобы звёзды были полностью обработаны без остатков фиолетового ореола. Значение должно быть от 0 до 1, обычно около 0.5.
Если параметр -starmask не указан, уменьшение фиолетового цвета будет применено ко всему изображению для любых фиолетовых пикселей со значением светимости, превышающим заданное значение -thresh=. В этом случае значение -thresh= должно быть достаточно низким. Этот режим полезен для масок звёзд или других изображений без туманностей или галактик
Звезды являются неотъемлемой частью изображений глубокого неба и играют решающую роль в передаче красоты и детализации небесных объектов. Они часто выглядят как яркие точки света, демонстрирующие свою яркость и цвета, что делает изображения глубокого неба по-настоящему захватывающими. Однако из-за ограничений условий наблюдения звезды на этих снимках могут казаться более крупными и переэкспонированными. Для борьбы с этим астрономы используют продвинутые методы обработки изображений, чтобы обрабатывать звёзды отдельно и контролировать их размер и яркость на конечном изображении.
Эта часть документации посвящена всему, что связано с обработкой звезд.
The Starnet interface built into Siril itself is now deprecated. StarNet 2.5
has been released and is supported by means of a Python script which is
available in the scripts repository. The legacy C interface will not support
Starnet 2.5 but will remain available in Siril 1.4.x for users of older
versions of Starnet.
In Siril 1.6 the legacy C interface will be removed
so all users will need to upgrade to Starnet 2.5 and use the python script.
The script does provide CLI args so where scripts use the Siril starnet
command they will need to adapt to using pyscriptStarNet.py instead.
StarNet — это программное обеспечение, разработанное Никитой Мисюрой. Его первая версия была выпущена под свободной лицензией с открытым исходным кодом. К сожалению, вторая версия стала проприетарной, и доступ к исходному коду закрыт. Версия 2 может быть скачана бесплатно здесь. Убедитесь, что вы скачиваете версию Command Line Tool. Siril может взаимодействовать с любой версией командной строки StarNet, включая новую экспериментальную версию на базе Torch, которая изначально была выпущена для Apple Mac с чипами M1 и M2.
Предупреждение
Если вам интересно, почему StarNet не запускается, пожалуйста, сначала запустите его вне Siril. Если ваш компьютер не поддерживает работу StarNet или программа некорректно установлена по какой-либо причине, это не является проблемой Siril. Если ваш процессор не поддерживает необходимые векторные инструкции, требуемые StarNet, обойти это невозможно. Сообщение об ошибке можно получить, выполнив StarNet непосредственно сам по себе.
Совет
В macOS, для того чтобы Siril мог правильно обнаруживать и использовать StarNet, сначала необходимо решить некоторые проблемы с правами доступа и безопасностью. Начните с открытия приложения Терминал (Terminal) из папки Утилиты (Utilities) в разделе Приложения (Applications). В терминале вам нужно изменить рабочую директорию с домашней папки на директорию установки StarNetCLI. Для этого введите cd, затем нажмите пробел и перетащите папку StarNetCLI в окно терминала, чтобы скопировать её путь. Нажмите Enter. После этого введите следующие четыре команды, нажимая Enter после каждой из них:
Затем, при первом использовании Siri, запуск StarNet может завершиться ошибкой с предупреждением о libtensorflow. Отмените это предупреждение. Откройте системные настройки (System Preferences) и в разделе Конфиденциальность и безопасность (Privacy and Security) нажмите кнопку Разрешить в любом случае (Allow anyways)для libtensorflow. После этого StarNet должен правильно выполняться в Siril.
Совет
Для macOS также выпущен новый исполняемый файл StarNet, оптимизированный для чипа Apple Silicon, который доступен на сайте: https://www.starnetastro.com/experimental/. Эта новая версия значительно быстрее предыдущих, поскольку она использует ускоренную библиотеку MPS PyTorch (https://developer.apple.com/metal/pytorch/). Кроме того, в этой версии содержатся подписанные двоичные файлы, следуйте инструкциям по установке, указанным в файле README.txt
Тем не менее, Siril по-прежнему может запускать внешние исполняемые файлы, и именно это мы решили реализовать, начиная с версии Siril 1.2.0. Для настройки обратитесь к этому разделу руководства. Там объясняется, как указать Siril местоположение StarNet.
Предупреждение
Необходимо указать расположение версии StarNet для командной строки, а не с графическим интерфейсом пользователя.
Обратите внимание, что StarNet требует ввода данных в виде изображений в формате TIFF, поэтому, если Siri скомпилирована без поддержки libtiff, интеграция со StarNet будет недоступна.
Основная цель StarNet — удалить все звезды с изображений, чтобы использовать разные процессы к звездам и остальной части изображения. Обычно это помогает контролировать раздувание звезд на разных участках, но также очень полезно для создания изображений комет, где скорость слежения за кометами может значительно отличаться от скорости наблюдения за далекими звездами.
Диалоговое окно Удаление звезд с помощью StarNet.
Инструмент очень прост в использовании и имеет всего пять настроек:
Предварительно растянуть: если этот параметр выбран, перед запуском StarNet к изображению применяется оптимизированное растяжение посредством функции переноса средних тонов (Midtone Transfer Function, MTF), а после завершения работы инвертированное растяжение. Это необходимо для использования StarNet на линейном этапе обработки.
Восстановить звезды в конце: если этот параметр выбран, по завершении процесса удаления звезд откроется инструмент Восстановить звезды, предоставляющий интерфейс для независимого растяжения и смешивания фона и звезд, если требуется сокращение яркости звезд вместо их полного удаления. Этот параметр не действует при обработке последовательности.
Создать маску звезд: эта опция позволит сгенерировать маску звёзд и сохранить ее в рабочей директории. Маска звёзд рассчитывается как разница между исходным изображением и изображением без звёзд. По умолчанию маска звёзд создается.
Удвоить разрешение: эта опция увеличивает разрешение изображения в два раза перед запуском StarNet. Это улучшает обработку очень плотных звёзд, но увеличивает время обработки в четыре раза и может снизить эффективность при работе с очень большими звёздами. По завершении изображение масштабируется обратно до исходного размера.
Пользовательский шаг: можно ввести собственное значение для параметра шага в StarNet. Значение по умолчанию составляет 256, и разработчик StarNet рекомендует не изменять этот параметр.
Процесс StarNet может легко применяться к последовательности изображений. Опция Применить к последовательности определяет, будет ли процесс применяться к одному изображению или к целой последовательности. Если процесс применяется к последовательности, будет создана новая последовательность, содержащая изображения без звезд, а если выбрано создание масок звезд, то будет создана вторая последовательность с соответствующими масками звезд.
При нажатии на кнопку Выполнить процесс будет запущен. Он может быть медленным, в зависимости от производительности вашего компьютера. Однако, Siril показывает индикатор прогресса, чтобы вы могли отслеживать ход обработки. Как и в случае с другими процессами в Siril, если обрабатывается последовательность изображений, индикатор прогресса будет обновляться только после завершения обработки каждого изображения в последовательности, отображая общий прогресс по всей последовательности.
Эта команда вызывает StarNet для удаления звёзд с загруженного изображения.
Предварительные условия: StarNet это внешняя программа, не связанная с Siril, которая должна быть корректно установлена перед первым использованием этой команды. Путь к директории с установленной версией StarNet для командной строки должен быть указан в разделе настроек Разное.
По завершении работы загружается изображение без звёзд, а в рабочей директории создаётся изображение с маской звёзд, если только не указан необязательный параметр -nostarmask.
Необязательные параметры, которые могут быть переданы команде:
- The option -stretch is for use with linear images and will apply a pre-stretch before running StarNet and the inverse stretch to the generated starless and starmask images.
- To improve star removal on images with very tight stars, the parameter -upscale may be provided. This will upsample the image by a factor of 2 prior to StarNet processing and rescale it to the original size afterwards, at the expense of more processing time.
- The optional parameter -stride=value may be provided, however the author of StarNet strongly recommends that the default stride of 256 be used
Восстановить звёзды — это инструмент графического интерфейса, помогающий объединять изображения без звёзд и маски звёзд. Он не предлагает уникальных методов обработки изображений, которые нельзя реализовать другими способами (например, с помощью Математических операций над пикселями и инструмента Обобщенного гиперболического преобразования), но предоставляет предпросмотр объединения двух отдельных изображений с разными настройками растяжения для каждого в реальном времени.
There is no command-line equivalent for this tool as it is purely graphical in
nature, however starless and star mask images could be combined using the PixelMath
pm command and GHT-related commands (ght, invght, modasinh, invmodasinh
and linstretch).
Этот инструмент находится в меню Обработка, в подменю Обработка звёзд.
Диалоговое окно разделено на два столбца, по одному для каждого входного изображения.
Каждое входное изображение загружается с помощью соответствующего поля выбора файлов. Каждый столбец имеет область просмотра растянутой гистограммы, которую можно свернуть для удобства использования на небольших дисплеях, набор элементов управления растяжением обобщенного гиперболического преобразования и кнопок Сброс и Применить.
Режим отображения гистограммы может быть изменён в линейный или логарифмический, используя флажок внизу диалогового окна. Это диалоговое окно соответствует настройкам Siril для линейных или логарифмических гистограмм, которые можно задать в окне Настройки.
Совет
Star Recomposition does not obey the FITS 16-bit preference as there could
be an adverse effect on performance in some cases (the calculations must
be done using floating point maths anyway). So if you really want a 16-bit
result to be created from 32-bit input images then you will need to use the
precision switch.
Диалоговое окно имеет два вида, которые определяют, какие элементы управления отображаются. Оно открывается в простом режиме, в котором отображаются только наиболее полезные элементы управления для типичного объединения беззвездного изображения и маски звёзд.
The stretch type for the starless image is set to Generalized Hyperbolic
stretch and the Stretch Factor, Local stretch intensity, Symmetry Point
and Black Point controls are shown. As well as using the SP control, the
Symmetry Point can be set using the eyedropper tool to select the average
pixel value of a selection from the image.
Note that the eyedropper tool
is disabled when there is an unapplied BP shift: because of the process of
applying the hyperbolic stretch and then the BP shift, the behaviour of the
tool becomes non-intuitive when a non-zero BP parameter is set. To resolve
this, simply apply the BP shift and the eyedropper will become available
again for your next hyperbolic stretch.
Для изображения маски звезд установлен тип растягивания Модифицированное растягивание по arcsinh, а также показаны элементы управления Коэффициент растягивания и Точка сохранения светов.
Для обоих наборов растягивания используется цветовая модель Относительная чувствительность глаза: это позволяет лучше сохранять цвета на нерастянутом изображении.
Подробную информацию обо всех элементах управления растягиванием, как показанных в простом режиме, так и в расширенном, можно найти на странице документации по обобщенному гиперболическому преобразованию.
Контроль Точки черного (BP) работает немного иначе, чем в отдельном инструменте Линейное растяжение (сдвиг BP) обобщенного гиперболического преобразования . В данном инструменте корректировка черной точки применяется после гиперболического растяжения, тогда как в отдельном инструменте это отдельное растяжение, применяемое самостоятельно. При попытке оптимизировать комбинацию независимых растяжений для двух входных изображений данный подход был признан наиболее эффективным. Это означает, что величина смещения черной точки, необходимая в данном инструменте, отличается от величины, требуемой в инструменте обобщенного гиперболического преобразования, и что установка черной точки путем щелчка по гистограмме невозможна.
Каждое растяжение является независимым. Настройки растяжения для изображения без звезд можно зафиксировать с помощью левой кнопки Применить: это растягивает изображение без звезд согласно текущим настройкам растяжения, а затем сбрасывает настройки растяжения, чтобы последующие растяжения могли быть применены итеративным способом. Аналогично, настройки растяжения для маски звезд можно зафиксировать с помощью правой кнопки Применить. Любая из групп настроек растяжения может быть сброшена к значениям по умолчанию с помощью соответствующей кнопки Сброс.
Диалоговое окно можно переключать между режимами Меньше и Больше с помощью кнопки внизу.
В режиме Больше доступен весь набор элементов управления обобщенного гиперболического преобразования, включая Тип растягивания, Цветовую модель растягивания и Точку сохранения теней (LP) для обоих входных изображений. Это позволяет более детально настроить оба растяжения при необходимости. Если пользовательский интерфейс снова перевести в режим Меньше, все изменения, внесенные с режиме Больше, сохраняются в силе, только скрываются элементы управления.
Примечание
В данном инструменте невозможно выполнить растяжение каналов насыщенности. Инструмент и так требователен к оперативной памяти и процессорным ресурсам: а удвоение потребления памяти за счёт добавления копии каждого рабочего изображения в режиме обобщенного гиперболического преобразования считается чрезмерным. Насыщенность можно легко растянуть отдельно уже после завершения объединения изображений.
С помощью инструмента Восстановить звёзды объединяются изображение без звёзд и маска звёзд области Альнитака
При применении детектора звезд к изображению (данные которого всегда являются линейными) вокруг звезд отображаются эллипсы. Когда эллипс имеет фиолетовый цвет, это означает, что звезда пересыщена.
Пересыщенная звезда — это звезда, у которой самые яркие пиксели больше не содержат информации и обрезаны до максимального значения. Как правило, мы стараемся избегать перенасыщения звёзд , даже если это невозможно для самых ярких из них. Если, несмотря на принятые меры предосторожности, остаются пересыщенные звёзды, в Siril есть алгоритм, который восстановит профиль звезды, учитывая результаты корректировки, выполненные во время работы функции поиска звёзд.
Сначала необходимо выполнить поиск звёзд , либо с помощью команды findstar, либо кнопки в окне Динамическая PSF. После этого инструмент удаления перенасыщения находится в Обработка звёзд ‣ Обесцветить звёзды.
Важно запускать этот инструмент на линейных изображениях, иначе звёзды не будут иметь профиля Гаусса или Моффата, и расчеты окажутся некорректными.
Обнаружение звёзд показывает все звёзды, найденные Siril. Пурпурные эллипсы соответствуют перенасыщенным звёздам. Изображение отображается в режиме авторастягивания: данные по-прежнему линейны.
После нажатия на инструмент, Siril переключается на консоль и отображает результаты текущего процесса:
22:26:17: Star synthesis (desaturating clipped star profiles): processing...
22:26:17: Findstar: processing for channel 0...
22:26:21: Star synthesis: desaturating stars in channel 0...
22:26:21: Star synthesis: 70 stars desaturated
22:26:21: Remapping output to floating point range 0.0 to 1.0
22:26:21: Execution time: 4.09 s
Необходимо снова выполнить обнаружение звёзд, чтобы увидеть внесенные изменения.
После процесса удаления перенасыщения фиолетовые эллипсы больше не видны. Все звёзды были восстановлены. Изображение отображается в режиме автоматического растяжения: данные остаются линейными.
Сравнение звезды до и после применения инструмента Обесцветить звёзды.
Командная строка Siril
unclipstars
Перепрофилирует обрезанные звёзды для уменьшения их насыщенности, масштабируя исходящие данные, чтобы все значения пикселей были <= 1.0
Инструмент Полный повторный синтез предназначен для исправления сильно искаженных звезд с помощью функций подбора звезд Siril. Он может быть полезен для восстановления изображений, которые страдают от сильной комы или других искажений. Если Siril сможет обнаружить звезды, он сможет их исправить.
Инструмент находится в меню Обработка, в подменю Обработка звёзд.
Результатом работы инструмента является синтетическая маска звёзд. Чтобы её использовать, её необходимо повторно объединить с версией исходного изображения без звезд. Это можно сделать или с помощью команды starnet, или пункта меню Удаление звёзд с помощью Starnet, или с помощью стороннего программного обеспечения для удаления звёзд.
Этот инструмент не имеет настроек, вы просто нажимаете на пункте меню, чтобы использовать его, или используете команду synthstar.
Если на изображении не было обнаружено звезд, инструмент автоматически обнаружит звезды, используя текущие параметры моделирования звезд, доступные с помощью инструмента динамической PSF или с помощью команды setfindstar.
Если звезды были смоделированы с помощью инструмента динамической PSF или команды findstar, обнаруженные звезды будут повторно синтезированы с использованием их индивидуальных смоделированных профилей светимости. Быстрый доступ к инструменту Динамическая PSF предоставляется с помощью кнопки настроек в меню рядом с пунктом Полный повторный синтез.
Рекомендуется сначала выполнить обнаружение звезд вручную, так как это позволяет проверить результаты: если какие-либо галактики были ошибочно определены как звезды, их можно удалить из списка звезд перед запуском повторного синтеза.
Как только синтетическая звездная маска будет создана, ее можно будет объединить с изображением без звезд с помощью инструмента Восстановить звёзды.
Исправляет плохие звёзды на загруженном изображении. Неважно насколько велика кома, ошибка ведения или другие искажения звёзд, если процедура поиска звёзд Siril может найти звёзды, synthstar исправит их. Для исправления значительных недостатков, вы можете вручную выбрать те звёзды, которые хотите исправить. Это можно сделать используя консольную команду findstar или диалог «Динамическая PSF». Если поиск звёзд не был выполнен, он будет автоматически запущен с настройками по умолчанию.
Для наилучших результатов, команда synthstar должна быть выполнена перед растягиванием.
Итогом работы synthstar будет полностью скорректированная синтетическая маска звёзд, состоящая из идеально круглых PSF звёзд (с профилем Гаусса или Моффата в зависимости от насыщенности звезды), вычисленных в соответствии с интенсивностью, FWHM, оттенком и насыщенностью, измеренными для каждой звезды, обнаруженной на входящем изображении. Затем результат можно повторно объединить с изображением без звёзд, чтобы получить изображение с идеальными звёздами.
С помощью соответствующих пунктов меню можно поворачивать изображение на 90 градусов по часовой стрелке и против нее. Здесь поворот выполняется без интерполяции пикселей, поэтому этот метод является предпочтительным, если вы хотите повернуть изображение на угол, кратный 90 градусам. Эта функция также доступна с помощью значков и на панели инструментов.
Вращение и обрезка
Для поворота на другой угол необходимо использовать инструмент Вращение и обрезка. Он позволяет выполнять точный поворот и обрезку, которыми можно легко управлять.
Диалоговое окно Вращение и обрезка, отображающее все настройки.
Доступны пять алгоритмов интерполяции:
Ближайший сосед
Билинейная
Бикубическая
Отношение площади пикселя
Ланцош-4 (по умолчанию)
Наилучшие результаты дает Ланцош-4. Однако, если вы видите искажения, особенно звезды, окруженные черными пикселями, возможно, вам захочется попробовать другие методы. Тем не менее, флажок Фиксация при интерполяции применяет коэффициент сжатия к бикубической интерполяции и интерполяции Ланцош-4, чтобы предотвратить кольцевые артефакты.
Если вы не хотите, чтобы изображение обрезалось после поворота, то вам следует снять галочку с флажка Кадрировать. Однако недостающие области изображения будут заполнены черными пикселями.
Преимущество этого инструмента заключается в том, что поворот изображения отображается красной рамкой, как показано на рисунке ниже. Кроме того, если есть выделенная область, можно изменять её размер и наблюдать за изменением кадрирования в режиме реального времени.
Диалоговое окно Вращение и обрезка при наличии области выделения. Нажмите, чтобы увеличить рисунок и лучше рассмотреть детали.
Командная строка Siril
rotatePi
Вращает загруженное изображение на 180° вокруг центра. Это эквивалентно команде "ROTATE 180" или "ROTATE -180"
Вращает загруженное изображение на угол degree. Чтобы избежать обрезки изображения, может быть использована опция -nocrop. При этом к изображению будут добавлены чёрные границы.
Замечание: если имеется активное выделение, например, если перед командой `rotate` использовалась команда `boxselect`, итоговое изображение будет кадрировано перед вращением. В данном случае аргумент -nocrop, если передан, будет проигнорирован.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции используется фиксация по умолчанию для предотвращения артефактов, но она может быть отключена с помощью аргумента -noclamp
Также можно применить к изображению зеркальное преобразование. Либо по оси x, либо по оси y. Это преобразование также доступно через кнопки и на панели инструментов.
Командная строка Siril
mirrorx [-bottomup]
Переворачивает загруженное изображение по горизонтальной оси. Опция -bottomup переворачивает изображение только в том случае, если оно ещё не находится в ориентации снизу вверх
Биннинг — это специальное преобразование для изменения размера изображения. Он вычисляет сумму или среднее значение областей пикселей 2x2, 3x3, ... (в зависимости от коэффициента биннинга) загруженного изображения (как аналогичный биннинг CCD-камеры).
Вычисляет числовой биннинг изображения, находящегося в памяти (сумма пикселей 2×2, 3×3..., подобно аналоговому биннингу у CCD-камеры). Если передан необязательный аргумент -sum, то вычисляется сумма пикселей, в то время как при отсутствии необязательного аргумента вычисляется среднее значение
Инструмент масштабирования позволяет изменить размер изображения с использованием интерполяции, выбранной из следующего списка:
Ближайший сосед
Билинейная
Бикубическая
Отношение площади пикселя
Ланцош-4 (по умолчанию)
Наилучшие результаты дает Ланцош-4. Однако, если вы видите искажения, особенно звезды, окруженные черными пикселями, возможно, вам захочется попробовать другие методы. Тем не менее, флажок Фиксация при интерполяции применяет коэффициент сжатия к бикубической интерполяции и интерполяции Ланцош-4, чтобы предотвратить кольцевые артефакты.
Если вы хотите изменить соотношение сторон изображения, то вам следует снять флажок Сохранить соотношение сторон.
Масштабирует изображение либо на коэффициент factor, либо к целевой ширине или высоте, указанной с помощью -width=, -height= или -maxdim=. Обычно это используется для изменения размера изображения: коэффициент 0.5 уменьшает размер вдвое. Аргумент -maxdim= можно использовать для изменения размера наибольшего измерения изображения к определённому размеру, что удобно для оптимизации изображений для определённых сайтов, например, для социальных сетей.
Можно отметить, что в графическом интерфейсе доступны несколько алгоритмов интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=, за которым следует один из методов, указанных в списке *no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.
При интерполяции методом Ланцош-4 или бикубической интерполяции используется фиксация по умолчанию для предотвращения артефактов, но она может быть отключена с помощью аргумента -noclamp
Масштабирует последовательность, указанную в аргументе sequencename. Обрабатываются только выбранные изображения из последовательности.
Коэффициент масштаба указывается либо аргументом -scale=, либо указанием итоговых ширины, высоты или максимального измерения с помощью -width=, -height= или -maxdim=, соответственно.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=, за которым следует один из методов, указанных в списке ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.. Фиксация применяется для методов интерполяции cubic и lanczos.
Название итоговой последовательности начинается с префикса "scaled_", если с помощью опции -prefix= не указан иной
Фон неба часто имеет нежелательный градиент, вызванный световым загрязнением, Луной, или просто ориентацией камеры по отношению к земле. Это функция получает образцы фона из большого количества участков изображения, ищет тенденцию в изменении фона и удаляет его, следуя сглаживающей функции, чтобы избежать удаления туманностей вместе с фоном.
Диалоговое окно "Извлечение фона". Слева версия с полиномиальной, а справа — с радиально-базисной (RBF) функциями.
Образцы фона могут быть выбраны автоматически с заданной плотностью (Плотность образцов), которые размещаются на изображении после нажатия кнопки Создать. Если какие-то области изображения ярче медианы на произведение коэффициента допуска (Допуск) и стандартного отклонения (σ), то в этой области образец фона не размещается.
Совет
If you have very strong gradients, for example when imaging in high
Bortle urban skies, even the maximum grid tolerance may be insufficient. In this
case you can check the Keep all samples checkbox and the full sample
grid will be populated. You will then need to remove samples from actual astronomical
objects manually.
After generation, samples can also be added manually
(left click) or removed manually (right click).
Это самый современный метод. В нем используется радиально-базисная функция для синтеза фона неба, что позволяет с большой гибкостью удалять градиент. Для этого требуется единственный параметр, который представлен в виде ползунка: Сглаживание. С помощью этого значения вы можете определить, насколько мягким или жестким будет вычисленный переход между точками образцов. Высокий коэффициент сглаживания имеет смысл для больших и равномерных градиентов и, соответственно, меньшее значение для небольших локальных градиентов.
Совет
Начните с базовой настройки (50%) и постепенно изменяйте её для достижения оптимальных результатов.
Теория
Радиально-базисные функции — это функции вида \(\phi(\mathbf{x}) = \phi(\| \mathbf{x} \|)\), причем в нашем случае мы используем Евклидову норму \(\| \mathbf{x} \| = \sqrt{x_1^2 + x_2^2}\). Функция \(f\), описывающая фоновую модель, теперь может быть выражена в виде линейной комбинации
которое может быть выполнено только в том случае, если матрица в левой части обратима. Это всегда можно гарантировать при правильном выборе функции \(\phi\) [Wright 2003]_.
Кроме того, слева к матрице добавляется слагаемое \(s \, I\), где \(s\) — параметр сглаживания, а \(I\) — единичная матрица. Слагаемое вызывает регуляризацию, которая приводит к более гладкому результату при увеличении параметра \(s\). Этот параметр можно изменить в диалоговом окне с помощью ползунка Сглаживание.
Для радиальной базисной функции мы используем тонкий пластинчатый сплайн \(\phi(|\mathbf{x}|) = |\mathbf{x}|^2 \log(|\mathbf{x}|)\).
Это оригинальный и простой алгоритм разработанный в Siril. В полиномиальных вычислениях используется только один параметр: Степень функции. Чем больше степень, тем более гибкая коррекция. Однако слишком высокая степень функции может привести к странным результатам, как перекоррекция.
Совет
Коррекция со значением степени функции равным 1 может быть очень полезна, когда вы хотите удалить градиент на переводниках (изображениях до укладки).
Предупреждение
Background removal can be carried out on CFA images, but only if they have
Bayer patterns. (It is not supported for X-TRANS patterns.) For Bayer patterned
images, the image is treated as four spatially interleaved images, each
corresponding to a CFA subchannel. Each subchannel is independently processed
to remove its gradient and then the subchannels are recombined into the original
interleaved pattern.
The intended use for this is to remove linear gradients from sequence frames
prior to using Drizzle on a Bayer patterned sequence, and in that case it is
strongly recommended to use linear (polynomial order 1) gradient removal as with
other pre-stacking gradient removal.
В Siril максимально допустимая степень составляет \(n=4`и может быть изменена с помощью выпадающего меню :guilabel:`Степень функции\). При больших значениях модель, как правило, нестабильна и дает плохие результаты.
Подмешать шум: Используйте эту опцию, когда после удаления фона появляется вертикальное полошение. Этот намеренно привнесённый шум, используется для рандомизации ошибок квантования, предотвращая появление крупномасштабных градиентов на изображениях, таких как цветовое полошение.
Коррекция:
Вычитание: главным образом корректируются аддитивные эффекты, вызванные световым загрязнением или Луной.
Деление: главным образом используется для коррекции мультипликативных эффектов, как виньетирование или дифференциальное поглощение атмосферой, например. Однако такие операции должны корректироваться с помощью мастер-кадров плоского поля.
Вычислить фон: Будет рассчитан синтетический фон и применён выбранный тип коррекции. Модель всегда рассчитывается для загруженного в память изображения, позволяет пользователю работать итеративно.
Показать оригинальное изображение: Удерживайте нажатой эту кнопку, чтобы увидеть оригинальное изображение.
Изображения после предобработки могут иметь комплексный градиент фона, поскольку в ходе съёмки возможно вращение градиента. Полностью удалить градиент может быть нелегко, поскольку трудно представить его через полиномиальную функцию. В таком случае стоит рассмотреть возможность удаления градиента на субэкспозициях: на отдельном изображении градиент фона гораздо проще и обычно следует простой линейной функции (степень 1).
Совет
Иногда после удаления фона появляются неприглядные цветные полосы. Когда это происходит, необходимо проверить две вещи. Во-первых, если изображение 16-битное, мы настоятельно рекомендуем вам всегда использовать 32-битный формат. Если, несмотря ни на что, вы по-прежнему наблюдаете такие артефакты, опция Подмешать шум, описанная выше, является решением вашей проблемы.
Когда такая полосатость возникает после извлечения градиента, ее можно решить с помощью опции Подмешать шум (любезно предоставлено Nathan B.).
Совет
Для получения хороших результатов при использовании алгоритма RBF обычно требуется указать меньшее количество образцов, чем при использовании полиномиального алгоритма.
Вычисляет синтетический градиент фона, используя либо полиномиальную функцию степени degree или радиально-базисную функцию (RBF), если указан аргумент -rbf, и вычитает градиент из изображения.
Количество и плотность образцов в горизонтальной строке и допуск для исключения ярких областей могут быть указаны опционально с помощью соответствующих аргументов. Допуск указывается в единицах медианного абсолютного отклонения (MAD): медиана + допуск * mad.
Шум, необходимый для низких динамических градиентов, может быть подмешан с помощью аргумента -dither.
Для радиально-базисной функции также доступен дополнительный параметр сглаживания. Для использования уже существующих образцов (например, если образцы фона были указаны с помощью сценария на Python), необходимо применить аргумент -existing
Совет
The -existing command argument forces use of existing background samples.
This option is primarily for use in conjunction with the Python module where
SirilInterface.set_bgsamples() can be used to set custom background
samples based on user-defined algorithms. If it is not provided, subsky
will automatically regenerate background samples. Note that the -existing
option is not available with the seqsubsky command, because sequence frames
are not necessarly registered at the time background subtraction is carried
out, so the samples for one frame do not necessarily apply to another.
Аналогична команде SUBSKY, но применяется к последовательности sequencename.
Подмешивание шума (dithering), необходимое для изображений с низкими динамическими градиентами может быть отключено с помощью -nodither. Обратите внимание, что аргумент -existing недоступен для удаления фона в последовательности, так как кадры последовательности не обязательно всегда выровнены.
Название итоговой последовательности начинается с префикса "CFA_", если с помощью опции -prefix= не указан иной. В последовательности будут обработаны только выбранные изображения
The first GraXpert interface was written in C and simply called the
GraXpert executable. However for various reasons this approach proved
unreliable for a significant minority of users and with Siril 1.4.0-beta2
an updated interface has been released as a Python script. This directly
interfaces with the GraXpert model files and provides much better performance
and integration, and since it builds on the way the Python interface
uses the native PyPI modules library to install the correct versions of
dependecies for each user's machine it is expected to be more reliable and
better able to make use of different types of GPU.
Owing to the way GraXpert distributes its AI models from an Amazon S3 instance,
a copy of the GraXpert program needs to be available in order to download
model files. The model files you can download are dependent on the version
of GraXpert installed therefore it is recommended to install 3.1.0-RC2 which
provides access to the stellar and background object deconvolution models as
well as the denoising and background extraction models that have been available
since version 3.0.0.
The old GraXpert interface was marked as deprecated in 1.4.0-beta2 and has
since been removed from the code base. This documentation covers the new
Python-based interface.
Siril provides an interface to the AI models provided by the third party
GraXpert tool.
This is a third party piece of Free and Open Source software that provides
sophisticated background removal and denoising routines. There is a lengthy
history of collaboration between Siril and GraXpert, and the RBF algorithm
used in Siril's core background removal function was contributed by the
GraXpert developers several years ago.
In order to be used, the path to the working GraXpert installation must be set
in Preferences->Miscellaneous.
The GraXpert-AI.py script can be installed in the usual way, by going to the
Scripts menu -> Get Scripts and selecting the check box next to the
script in the list.
To configure the script you need to tell Siril where your GraXpert installation
is. To do this, go to Preferences -> Miscellaneous and
select the GraXpert executable using the appropriate file chooser widget.
The title bar changes to show the currently selected operation, and at the top
of the window are the script title and version number. A dropdown allows you
to select the operation you wish to perform. How this dropdown is populated
depends on the version of GraXpert you have available. It will always feature
Denoising and Background Extraction, even if no locla models are available (see
the section on Model Manager for information on how to download models). If you
have locally available deconvolution models, or if you have set the location of
a GraXpert version that supports deconvolution, you will also see
Deconvolution (Stars) and Deconvolution (Objects), however if these models are
not available locally and you don't have a version of GraXpert that is capable
of downloading them they will not be shown.
Next follows an area for operation-specific parameters. If you select Denoising
you will find a widget to control strength, if you select Background Extraction
you will find widgets for smoothing and the type of background extraction to
perform, and so on. These are described in more detail below.
The Advanced setting provides a means of controlling the inferencing batch size
and whether or not to use GPU acceleration. It is generally a good idea to leave
the batch size at the default: it sets how many chunks of the image can be
processed in parallel, and increasing it may result in out-of-memory errors.
Совет
The GraXpert models use ONNX to perform inferencing. This is a hardware-
agnostic Machine Learning framework that provides various runtimes targeting
different types of acceleration hardware. There is a specific NVidia runtime,
a DirectML runtime that provides generic Windows GPU acceleration, a MacOS
runtime and Linux runtimes for NVidia, AMD and Intel GPUs. The script will
automatically try to install the most suitable runtime for your hardware,
however in the event that it does not work there is always a CPU runtime to
revert to - simply disable the GPU acceleration checkbox and please submit
a bug report as this is new functionality and we are especially keen to hear
of any issues relating to the ONNX runtime selection.
Finally, the UI provides Apply and Close buttons that
perform the expected functions and a Model Manager button that
opens a tool to discover and download versions of the AI models.
When opening the GUI, it will detect whether a single image or a sequence is
loaded. If a single image is loaded it will process it and update the result
in Siril, whereas if a sequence is loaded it will process all the selected
frames of the sequence and create a new sequence with a prefix dependent on
the operation being performed.
Предупреждение
In Siril 1.4, Python scripting cannot subscribe to Siril event notifications
so it is not possible for the script to detect if the image has been closed
or if a change between a single image and a sequence occurs after opening the
tool. Therefore if you do this, you should close and reopen the script GUI.
The GraXpert background extraction AI model offers two parameters:
Smoothing - this determines the smoothness of the background model that
is generated.
Correction type - this determines the type of correction that is applied:
you can choose from subtraction or division.
Note that the GraXpert script does not provide an interface to the classical
background removal algorithms provided by GraXpert. RBF is already natively
available in Siril, and Spline and Kriging do not generally provide better
performance than RBF.
From version 3.1 onwards, GraXpert supports deconvolution. With the models
downloaded, Siril supports both modes provided by GraXpert:
Object deconvolution
Stellar deconvolution
These modes can be selected using the Operation dropdown.
Both deconvolution modes have two parameters, Strength, which
takes values between 0.0 (no deconvolution) and 1.0 (maximum deconvolution)
and Image FWHM (in pixels), which also takes values between 0.0
(prioritises fine structure retention) and 10.0 (prioritise deconvolution
ability). If you set it to zero you can see a very (too) small effect on
processed image, if so set it higher.
To use the GraXpert AI denoising model, select Denoising in
the Operations dropdown.
This operation has only one parameter, Strength, which
takes values between 0.0 (no denoising) and 1.0 (maximum denoising).
Denoising can take a little time, especially for large images and / or if
using a CPU for inferencing. However once the denoising is done the denoised
image is cached, so experimenting with different strengths is extremly quick.
The script provides a model manager to discover and download model versions.
Whereas inferencing is done directly in the script, model download requires
use of the actual GraXpert program because the models are stored in an
Amazon S3 instance and GraXpert stores its credentials internally. The
model manager will show radio buttons for each model that the installed
version of GraXpert is capable of downloading. For v3.0.x this means
denoising and background extraction; for v3.1.0-rcx this also adds stellar
and object deconvolution.
The list of remotely available models is shown. If you want to discover
models for a different AI operation, change the radio button to the
operation you want a model for and click Refresh. A model can
be downloaded by selecting it in the list and clicking
Download selected model. Note that the download may take some
time in the case of large models or slow network connections and GraXpert
provides little feedback, so be patient. The models are stored in the
GraXpert user data directory.
Предупреждение
Do not move the GraXpert models from the GraXpert data directory structure
where they are saved by the model manager. This is where the script
expects to find them and it will ignore models put in any other location.
Once a model is downloaded it will automatically be populated in the
model version dropdown in the main UI when the relevant AI operation is
selected.
GraXpert script interface, showing the model manager.
The GraXpert-AI.py script provides a command-line interface for use in
scripting. This uses the pyscript command as shown below.
Командная строка Siril
pyscript scriptname.py [script_argv]
Выполняет сценарий python Siril
Название сценария должно быть указано в качестве первого аргумента. Если он не найден в текущей рабочей директории, будет выполнен поиск по пользовательским путям к сценариям, указанным в настройках, и в локальном репозитории siril-scripts. Остальные аргументы будут рассматриваться как аргументы сценария и передаваться в сценарий как его вектор аргументов. Обратите внимание, что конкретный сценарий должен поддерживать чтение входящих данных из вектора аргументов
The following parameters are recognised in all modes:
-h / --help prints help to the Siril console and exits
-model specifies the model version to use (e.g. -model="3.0.2")
If this argument is omitted it defaults to the latest available version.
-batch specifies the AI batch size
-gpu specifies to use the GPU (this is the default)
-nogpu speficies to use CPU inferencing only
-listmodels causes the script to list the available model versions for
the specified operation and exit
Совет
Note that this script does not provide a -seq parameter as it expects to
work on a sequence already loaded in Siril. When scripting, this can be
achieved using the load_seq command first to load the desired sequence.
-smoothing= This option sets the smoothing parameter, between 0.0-1.0
-correction= This option sets the correction type and may be either
"subtraction" or "division"
-keep-bg This option specifies that the modelled background should be
saved as well. For a filename such as myfile.fit, the background will be
saved as myfile_bg.fit
Эта функция создает три монохромных изображения из трехканального цветного изображения, в зависимости от настроенного цветового пространства. Для RGB это просто разделение файла на три канала. Для других цветовых моделей требуется пересчет в эквивалентное цветовое пространство, такое как HSL (hue-saturation-lightness), HSV (hue-saturation-value), или CIELAB.
Если каналу не задано имя, то этот канал не извлекается.
Командная строка Siril
split file1 file2 file3 [-hsl | -hsv | -lab]
Разделяет цветное изображение на три отдельных файла (по одному для каждого цвета) и сохраняет их как file1.fit, file2.fit и file3.fit. Последний необязательный аргумент, -hsl, -hsv или lab, указывает применять ли извлечение HSL, HSV или CieLAB. Если никакой опции не указано, извлекаются RGB изображения, что означает, что преобразование не выполняется
CFA означает массив цветных светофильтров. Этот термин часто используется для описания одноканального содержимого, находящегося в цветном изображении, где каждый пиксель соответствует значениям, полученным через цветные фильтры, расположенные на сенсоре камеры. Это противопоставляется изображениям после дебайеризации (или дебайеризованным, или демозаичным).
Открытие CFA изображений в Siril необходимо для предварительной обработки, например удаления темнового шума перед преобразованием изображения в цветное трёхканальное. Мы так же можем использовать информацию о цветных светофильтрах для извлечения изображений следующими способами:
Разделить каналы CFA: создаются четыре изображения из CFA-изображения, каждое соответствует одному из фильтров матрицы Байера, обычно это R.fit, G1.fit, G2.fit и B.fit. Это полезно, если целью является обработка разных цветов изображения.
Извлечь Ha: использование фильтра H-alpha с камерой цветного изображения означает, что будут полезны только пиксели с красным фильтром, то есть, как правило, только четверть из них. Эта функция создает новое изображение, содержащее только пиксели, связанные с красным фильтром, задокументированным в матрице Байера изображения.
Извлечь Ha/OIII: для цветных камер появились фильтры, пропускающие фотоны с длиной волны H-альфа и O-III. Такое извлечение создает два изображения: изображение из красных пикселей, как и Извлечение Ha, и изображение, объединяющее зеленые и синие пиксели в одно для O-III. Оба изображения имеют половину разрешения входного изображения.
Примечание
Часто задаваемый вопрос о том, почему изображения Ha и OIII имеют разные размеры и как они разделены. В этой заметке делается попытка дать ответ на этот часто задаваемый вопрос.
У сенсора цветного изображения пиксели покрыты очень тонкой матрицей фильтров, называемой массивом цветных фильтров (CFA) или матрицей Байера. Расположение фильтров на пикселях соответствует одному из следующих шаблонов: RGGB, GBGR и т.д.
Из этих пикселей только R-пиксели чувствительны к Ha. Итак, сначала мы выделяем все красные пиксели в изображение Ha. Поскольку только 1 из 4 элементов CFA красного цвета, высота и ширина изображения Ha в два раза меньше, чем у исходного изображения.
Остальные пиксели, G и B, чувствительны к OIII. Чувствительность пикселей с фильтром G к OIII отличается от чувствительности пикселей с фильтром B к OIII, однако они отображают одну и ту же сцену и равномерно распределены, поэтому средняя интенсивность должна быть одинаковой.
Где \(\text{B}_\text{i}\) — это \(i^{\text{й}}`синий пиксель, :math:\)text{B}_text{io}`— это \(i^{\text{й}}`исходный синий пиксель и :math:\)overline{text{B}_text{o}}`— это среднее значение всех исходных синих пикселей (и аналогично для зелёных).
Пока что у нас есть выровненный набор пикселей G и B с промежутками в тех местах, где были удалены R пиксели. Итак, наконец, мы используем билинейную интерполяцию для оценки значений R пикселей и в итоге получаем полноразмерное изображение OIII.
Примечание
Параметр Масштабировать Ha/OIII — это способ обработки выходных данных Извлечь Ha/OIII. Выбор Без масштабирования позволяет получить изображение OIII с полным разрешением и изображение Ha с половинным разрешением; выбор Увеличить Ha увеличивает размер изображения Ha в 2 раза для соответствия изображению OIII; выбор Уменьшить OIII уменьшает размер изображения OIII в 2 раза для соответствия изображению Ha.
Возможно, вы захотите использовать Сверхразрешение (2x) для увеличения Ha вместо функции Увеличения Ha. Поскольку Сверхразрешение (2x) — это метод, применяемый при укладке, то в этом случае вам следует использовать seqextract_HaOiii для извлечения Ha и OIII для каждого из кадров последовательности, и затем сделать укладку изображений OIII обычным способом, а изображения Ha с включенной опцией Сверхразрешение (2x).
Извлечь зелёный: для фотометрии часто бывает полезно обрабатывать только зеленую часть изображения CFA, поскольку она более чувствительна и имеет два пикселя для усреднения, что еще больше снижает шум. Конечно, при этом четкость созданного изображения уменьшается вдвое.
Эти функции работают только в том случае, если матрица Байера была надлежащим образом задокументирована программным обеспечением для сбора данных и если формат изображения ее поддерживает, то есть, как правило, FITS или SER.
Предупреждение
Это не работает с другими матрицами фильтров, отличными от матриц Байера, например, Fujifilm X-TRANS.
Этот инструмент извлекает различные плоскости изображения путем применения вейвлет-обработки. Каждая плоскость сохраняется как отдельное изображение, и набор этих изображений может быть прочитан как последовательность. Вы можете выбрать до 9 слоев для вейвлет-вычислений, а тип алгоритма может быть либо Линейный, либо B-сплайн. Обычно последний является предпочтительным.
Разложение выполняется с помощью ряда слоев деталей, определенных в возрастающих масштабах характеристик, и конечного остаточного слоя, который содержит оставшиеся неразрешенные структуры.
Исходное изображение M45 (любезно предоставлено V. Cohas).
Линейное поиск соответствий — это процесс поиска линейной функции, которая наилучшим образом (в смысле наименьших квадратов) сопоставляет интенсивность пикселей одного изображения интенсивности пикселей эталонного изображения. Это быстрый и простой способ выравнивания гистограмм разных изображений.
Поле Опорный кадр позволяет выбрать эталонное изображение.
Ползунки Нижняя граница и Верхняя граница позволяют исключить значения пикселей в левом и правом хвостах распределений интенсивности. Они определяются как квантили в диапазоне [0, 1]. Например, значение по умолчанию для high равно 0.92, что означает, что 8% самых ярких пикселей будут исключены из подгонки для поиска линейных коэффициентов соответствия.
Предупреждение
Загруженное и опорное изображения должны быть выровнены перед применением линейного поиска соответствий. В противном случае нет оснований предполагать, что интенсивности их пикселей коррелируют.
Командная строка Siril
linear_match reference low high
Вычисляет и применяет линейную функцию между опорным (reference) изображением и загруженным изображением.
Алгоритм будет игнорировать все опорные пиксели, значения которых выходят за пределы диапазона [low, high]
The RGB composition tool allows you to assemble up to 8 monochrome images to
form a single color image. The tool has been updated to provide access to all
the best registration methods available in Siril, plus a manual registration
method unique to this tool.
The operation of this tool is quite simple, just load the images and assign
them a color. The first field, optional, is reserved for the luminance layer.
Once a luminance layer is loaded you can integrate it or not in the composition
thanks to the Use Luminance button. Each color can be customized by
clicking on it and choosing a new one. When more than 3 images (or 4 if there
is luminance) are loaded, or when the assigned colors are color mixtures rather
than pure R, G and B, it may be necessary to adjust the brightness of each
channel. The Adjust layers brightness button performs this
operation automatically.
When compositing different channels, especially from narrowband filters, the
histograms may be severely mismatched. A basic initial correction can be made
by applying a linear match using the Linear match button. This works
in the same way as the Image Processing menu entry, but is tailored
to this particular tool. The top layer loaded (usually Luminance or Red) is
taken as the reference channel, and all other channels are automatically linearly
matched to it. This is particularly important if assigning non-pure colours to
some layers, as each layer will potentially be blended into each RGB channel in
the result, and it will no longer be possible to separately adjust the histograms
of the input layers by adjusting the R, G and B histograms of the composition.
It is possible enable or not the Sum exposure time. This option
gives the user the option of summing or not the exposures of individual images,
storing the result in the FITS header.
Примечание
For binning and image dimensions, the first loaded image determines the size
of the output image. If you have images of different sizes, you should
always load the largest first. If your images are different just because of
binning, so with the same field of view, the composition tool will upscale
the smaller images when they are loaded to match the size of the first
loaded image. It is useful for the common L-RGB taken with the colour
filters in bin 2. This also means that if two images have not been taken
with the same sensor, it is unlikely they will have the same field of view
and pixel sampling after image resampling. Whether or not this tool can align
such images will depend on the scale mismatch and the alignment method used.
Для визуализации композиции доступно три цветовых пространства:
Once the composition is finished, it is possible to do a linear match of the
channels using the Linear match button.
If the images are not aligned with each other, then it is possible to align
them. The following algorithms are possible:
Deep Sky (two step global star registration): no selection is required
for this method. This generates a very accurate 8 degrees-of-freedom
homography mapping between images.
Planetary (DFT pattern alignment): you have to draw a selection
around the object you want to align. A high enough contrast is required for
the algorithm to work properly. This method only registers image shifts, it
cannot compensate for rotation. This is fine for planetary images but for
deep sky images it is recommended to use the global star registration method.
KOMBAT: as with the DFT pattern matching, you have to draw a selection
around the object you want to align. This method also only registers image
shifts. It is much faster than the DFT method, but can be less successful
when the image patterns in the different channels are significantly different
(for example, two planetary channels filtered with IR and UV filters may not
share enough pattern similarity for KOMBAT to match them).
Manual alignment: this method is unique to the RGB composition tool. When
selected, the spin buttons change function from displaying information about
alignment shifts to allowing you to enter desired shifts in x and y as well as
rotation. Rotation defaults to centering on the image center, but a custom
rotation center may be chosen for each layer using the centermark button at
the right of each set of layer controls. This method may be of use if you
have imagery that is not suited to alignment using any of the other methods,
or if you wish to fine tune results.
You can choose the framing method that will be applied to your aligned layers.
The following methods are possible:
First channel - this method frames all other frames to the first channel
(usually Luminance or Red). This makes particular sense for LRGB compositions.
MIN - this method applies the minimum framing: the largest rectangle
including only regions that are covered by all the input images will be framed.
COG - this method selects an optimum framing for the composition based on
the centre of gravity of the aligned image pixels.
Примечание
Framing methods do not apply to DFT shift alignment. This method always frames
based on the first layer. If this alignment method is selected, the chosen
framing method will be ignored.
Совет
On alignment the RGB composition tool aligns the loaded images in memory. That
means that if you decide you aren't happy with the alignment and want to try a
different method or a different framing, you have to reload all the images to
get back to their original state before alignment. The Reload all
button is provided for this purpose.
If you prefer to composite your images in a different way, for example using
Pixel Math, you can still use the RGB composition tool as a quick means of aligning
the images. After alignment, pressing Save all will save all the
aligned images with their original filenames prefixed with comp_. These can then
be brought into whatever tool you like and, unlike if you create a sequence with
your stacks and align it in the normal way, it is obvious from the filename which
image is which.
This tool is by nature graphical and is not exactly replicated in a Siril command,
however there are commands that can be used to achieve part of the process:
Регистрация можно выравнять последовательность, содержащую уложенные изображения,
The rgbcomp command can compose a RGB image from 3 separate R, G and B images
or 4 L, R, G, B images, however the images must be pre-aligned and it cannot
assign mixed colors to the input images.
Pixelmath can also be used in scripts to combine
channels.
There is also a built-in RGB Composition script that can partly automate the
process.
Командная строка Siril
rgbcomp red green blue [-out=result_filename] [-nosum]
rgbcomp -lum=image { rgb_image | red green blue } [-out=result_filename] [-nosum]
Создаёт композитное RGB изображение, используя три независимых изображения, или композитное изображение LRGB, используя дополнительное яркостное изображение и три монохромных или одно цветное изображение. Итоговое изображение будет иметь название composed_rgb.fit или composed_lrgb.fit, если в необязательном аргументе не указано другое название. Другой необязательный аргумент, -nosum, указывает Siril не складывать время эскпозиций. Это влияет на ключевые слова FITS, такие, как LIVETIME и STACKCNT
Цель этого инструмента — объединить несколько монохромных изображений, которые были ранее извлечены из изображения, полученного цветным сенсором (например, с помощью меню Извлечение ‣ Разделить каналы CFA...). Инструмент объединяет отдельные изображения красного, зеленого (x2) и синего каналов в одно составное изображение, называемое изображением CFA.
Предупреждение
Этот инструмент предназначен для изображений с матрицы Байера и поэтому не может работать с изображениями файлов X-Trans с камер Fuji.
Диалоговое окно разделено на три части:
Input files: Select the images containing the CFA0, CFA1, CFA2 and CFA3
Bayer subpatterns. If these have been produced using Siril's "Split CFA"
function they will have the CFA prefix.
Шаблон Байера: устанавливает заголовок Шаблон Байера, который будет применен к результату. Он должен соответствовать шаблону Байера изображения, из которого были извлечены исходные подканалы Байера.
Раздел Последовательность позволяет обрабатывать целые последовательности, восстанавливать последовательность изображений CFA. Включение флажка Применить к последовательности отображает текст справки для правильного применения. Этот текст показан в следующем разделе Совет. Доступны две опции:
Маркер входящей последовательности: префикс, используемый для обозначения номера CFA в отдельных изображениях канала CFA. Для этого следует установить любой префикс последовательности, который использовался при запуске процесса split_cfa (по умолчанию: CFA_).
Префикс вывода: префикс названий изображений, полученных по завершении процесса совмещения каналов CFA. По умолчанию mCFA_.
Совет
You may have any of the CFA0, CFA1, CFA2 or CFA3 sequences selected in the
main window sequence tab: Siril will determine which one it is from the
prefix and the number.
Your separate sub-CFA sequences should have been processed in exactly the
same way; they must have the same sequence name format and CFA marker
string, differing only but the number 0-3 following the CFA marker
string (e.g. CFA0_bg_pp_lights, CFA1_bg_pp_lights, CFA2_bg_pp_lights and
CFA3_bg_pp_lights).
Each image in the sequence will only be processed if the corresponding
images for the other 3 CFA channels can be found. Both Green subchannel
images are required. Note this means that if you discard an image
containing one CFA channel of an image between split_cfa and merge_cfa,
merge_cfa will be unable to merge the remaining CFA channels for that
image. All sequence filtering should be done either before split_cfa or
after merge_cfa.
Создаёт цветное изображение с шаблоном Байера из 4 отдельных изображений, содержащих данные из подканалов шаблона Байера CFA0, CFA1, CFA2 и CFA3 (Соответствующая команда для разбиения шаблона CFA на подканалы — split_cfa). Эта функция может использоваться как часть рабочего процесса для применения некоторой предобработки к отдельным подканалам шаблона Байера перед дебайеризацией. Пятый параметр, bayerpattern, указывает шаблон Байера, который необходимо восстановить. bayerpattern должен быть 'RGGB', 'BGGR', 'GRBG' или 'GBRG'
Сливает 4 последовательности изображений для восстановления шаблона Байера. Последовательности указываются в аргументах sequencename0, sequencename1, sequencename2 и sequencename3.
Вариант восстанавливаемого шаблона Байера (RGGB, BGGR, GBRG или GRBG) должен быть указан в качестве второго аргумента. Порядок каналов в шаблоне Байера должен совпадать с порядком указанных последовательностей.
Замечание: все 4 входящих последовательности должны присутствовать и иметь одинаковые размер, разрядность и количество изображений.
Название итоговой последовательности будет начинаться с префикса "mCFA_", если не указан иной с помощью аргумента -prefixout=
Одним из самых мощных инструментов Siril является Математические операции над пикселями. Этот инструмент позволяет вам манипулировать пикселями изображений с помощью математических функций. От простого сложения или вычитания до более сложных функций, таких как MTF. Математические операции над пикселями являются идеальным инструментом для астрономической обработки изображений.
Цель этой страницы — полностью описать инструмент. Чтобы увидеть подробные примеры, обратитесь к превосходному руководству на сайте.
Диалоговое окно Математические операции над пикселями, показанное при открытии
Окно разделено на 5 областей.
Первая из них включает 3 текстовые зоны, принимающие математические формулы. Если вы хотите получить монохромное изображение, используется только первая. Снимите флажок Использовать одно выражение RGB/K для создания RGB изображения.
Вторая — это область переменных с выбором Функций и Операторов. Каждая переменная — это изображение, которое должно быть загружено заранее с помощью кнопки +. Вы можете нажать на нужную функцию и/или оператор, чтобы они появились в записи формулы.
Третья — поле Параметры, позволяет пользователю определять параметры, разделенные ,. Например, если вы зададите параметры с помощью выражения factor=0.8,K=0.2, все вхождения factor и K в приведенной выше формуле будут заменены на 0.8 и 0.2 соответственно. Таким образом, Ha*factor+OIII*K будет оцениваться как Ha*0.8+OIII*0.2.
Область параметров Математических операций над пикселями
Поле Результат предназначено для масштабирования изображения в заданном диапазоне и для включения или выключения функции Суммировать экспозиции. Последняя опция предоставляет пользователю возможность суммировать или не суммировать экспозиции отдельных изображений, сохраняя результат в заголовке FITS. Перед использованием необходимо развернуть кадр.
Область масштабирования окна Математические операции над пикселями
Наконец, область Предустановки позволяет пользователю повторно использовать сохраненные ранее формулы с помощью кнопки, расположенной справа от областей с формулами. Перед использованием необходимо развернуть эту область. Дважды щёлкните по формуле, чтобы скопировать её в нужное поле.
Область предустановок Математических операций над пикселями
По умолчанию можно одновременно загрузить 10 изображений. Каждому изображению присваивается переменная, чьё название начинается символом I, за которым следует число от 1 до 10. Если загруженное изображение содержит в своём заголовке ключевое слово FILTER, то значение последнего становится названием переменной по умолчанию. Конечно, его всегда можно изменить, дважды щёлкнув по нему.
$T — ссылка на текущее изображение, обозначающая изображение, к которому будут применены математические операции.
Совет
Можно использовать загруженное в данный момент изображение, используя токен $T. Однако обратите внимание, что, в отличие от других программ, выражение $T[i] где i=0,1,2 не распознаётся.
Примеры
Давайте возьмем монохромное изображение галактик. Это линейные данные, отображаемые в режиме авторастягивания.
Эта команда вычисляет выражение, заданное в аргументе, как в инструменте математических операций над пикселями. Всё выражение должно быть заключено в двойные кавычки, а переменные (которые в этом случае являются именами изображений без расширения, расположенными в рабочей директории) должны быть окружены символами $, например "$image1$ * 0.5 + $image2$ * 0.5". В выражении может быть использовано максимум 10 изображений.
Изображение можно масштабировать с помощью аргумента -rescale, за которым следуют значения low и high в диапазоне [0, 1]. Если эти значения не указаны, значения по умолчанию они устанавливаются равными 0 и 1. Другой необязательный аргумент, -nosum, указывает Siril не суммировать длительность экспозиции. Это влияет ключевые слова FITS, такие, как LIVETIME и STACKCNT
Астрометрия это наука, занимающаяся положением и движением небесных объектов. Для современной астрофотографии астрометрия имеет большое значение, поскольку программы захвата изображений, такие как N.I.N.A., Ekos, APT и другие выполняют решение пластин для изображений, чтобы получить астрономическое решение. Это означает, что программа точно знает положение кадра на небе. Астрометрия может также использоваться на этапе обработки изображений, например, в инструменте фотометрической калибровки цвета.
The platesolving is a major step in astronomical image processing. It allows
images to be associated with celestial coordinates, giving the ability to know
what object is in the observed field of view. Many of Siril's tools, such as
the Spectrophotometric or Photometric Color Calibration (SPCC or PCC) tools, need
to know the coordinates of the image with sufficient accuracy in order to work.
Astrometry in Siril can be performed in two different ways:
Using the dedicated tool accessible via the menu
Tools ‣ Astrometry ‣ Image Plate Solver, or
using the shortcut Ctrl + Shift + A.
Если решение для изображения уже существует, ничего не будет делаться, если только не передан аргумент -force для повторного поиска решения. Если данные WCS или другие метаданные изображения ошибочны или отсутствуют, то должны быть переданы аргументы:
приблизительные координаты центра изображения могут быть представлены в виде десятичных градусов или градус/час минута секунда (J2000, разделённые двоеточием) и значениями прямого восхождения и склонения, разделённые запятой или пробелом (для astrometry.net — необязательно).
фокусное расстояние и размер пикселя могут быть переданы с помощью -focal= (в миллиметрах) и -pixelsize= (в микрометрах), переопределяя значения, полученные из изображения и настроек. См. также опции для решения вслепую с помощью локальной установки Astrometry.net
Если не указан аргумент -noflip, в том случае, если будет определено, что изображение находится в ориентации вверх ногами, оно будет перевёрнуто.
Для более быстрого поиска звёзд на больших изображениях, возможно уменьшить масштаб изображения с помощью -downscale.
Решение может учитывать искажения, используя соглашение SIP с полиномами до пятой степени. Значение по умолчанию берётся из настроек астрометрии. Его можно изменить с помощью параметра -order=, который задаёт значение от 1 до 5.
При использовании локальных каталогов решателя Siril или локальной установки Astrometry.net, если первоначальное решение не удалось, решатель будет искать решение в пределах радиуса, указанного с помощью опции -radius=. Если значение не указано, радиус поиска берётся из настроек астрометрии. Поиск поблизости Siril можно отключить, указав значение 0. (для Astrometry.net отключить нельзя).
Текущее решение можно сохранить как файл с данными о дисторсии с помощью аргумента -disto=.
Астрономическое решение изображений может быть получено с помощью Siril, используя каталог звёзд и алгоритм регистрации всего звёздного неба или с помощью локальной команды solve-field из пакета astrometry.net (включается с помощью -localasnet).
Настройки решателя Siril:
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений положительного или отрицательного смещения ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
Каталог звёзд выбирается автоматически, если только не передан аргумент -catalog=: если установлены локальные каталоги, то используются они. В противном случае выбор основывается на размере поля зрения и пределе звёздной величины. Если этот аргумент передан, будет принудительно использован удалённый каталог. Возможные значения аргумента: tycho2, nomad, localgaia, gaia, ppmxl, brightstars, apass.
Если рассчитанное поле зрения больше 5 градусов, обнаружение звёзд будет ограничено областью вокруг центра изображения, если не только не передан аргумент -nocrop.
Настройки решателя Astrometry.net:
Передача аргументов -blindpos и/или -blindres позволяет выполнять поиск вслепую для определения позиции и разрешения, соответственно. Вы можете использовать эти опции при решении изображений с неизвестными положением и разрешением
Since version 1.2, plate solving can be done by two different algorithms. The
first was the only one in Siril until this version, it is based on the global
registration star matching algorithm, trying to register images onto a
virtual image of a catalog with the same field of view. The second is new, it
is using an external program called solve-field from the Astrometry.net
suite, installed locally. For Windows platforms, the simplest way to get it is
to use ansvr.
Since version 1.3, Siril internal solver will also look within a cone around the
initial target coordinates if it did not find a match. This is only available when
using local star catalogues.
The log will show this information when that happens:
Initial solve failed
Attempting a near solve with a radius of 10.0 degrees
Астрометрическое решение требует несколько параметров, например, разрешение изображения. Окно инструмента помогает получить необходимые параметры, теперь мы посмотрим, как правильно их заполнить.
Найти астрометрическое решение проще и быстрее, когда мы примерно знаем, где ищем. Системе поиска астрономического решения Siril, сравнивающей каталог с изображением, нужно знать приблизительное положение центра изображения, чтобы получить данные из каталога. Astrometry.net имеет все необходимые каталоги локально, поэтому может просмотреть их все, чтобы найти решение, но, конечно, гораздо быстрее указать ей откуда начать.
В настоящее время программное обеспечение для получения астрономических изображений (данных) часто также управляет телескопом и должно знать приблизительные координаты, где был сделан снимок. В этом случае, при использовании формата FITS, эти координаты будут предоставлены в метаданных изображения, в заголовке FITS. Это не всегда так, и, очевидно, не так, когда вместо FITS создаются изображения RAW DSLR.
When opening the plate solver window, the current image's metadata is
loaded and displayed in the window. If no coordinates appear at the top, or if
RA and Dec remain zero, some user input is needed. If you don't know at all
what the image is, use a blind solve with astrometry.net. Otherwise, provide
equatorial J2000 coordinates corresponding to as close as the center of the
image as possible, either by filling the fields if you already know the
coordinates, or by making a query with an object name (not yet possible from
the command).
The text field at the top left of the window is the search field, its goal
being to convert an object name to its coordinates. Pressing ENTER or
clicking the Find button will first search the object in the local
annotation catalogues. If not found, a Web request will be made to obtain its
coordinates. Several results may be found for the entered name, they will be
displayed in the list below. Selecting one updates the coordinates at the top,
the first is selected by default.
Также можно выбрать сервер, на котором вы хотите выполнить запрос. Это не сильно повлияет на результаты, но не всегда каждый из них может быть в сети, тогда другие будут выступать в качестве резерва. Можно выбирать между CDS, VizieR и SIMBAD (используется по умолчанию).
Примечание
If the object is not found, please try with the full name or with the name
from a catalogue. The annotation catalogues contain a few common names, the
online services too, but not all, and they don't find partial answers.
For example, for the Bubble Nebula, please enter NGC7635 or bubblenebula, not bubble.
Поля координат заполняются автоматически, но можно задать их самостоятельно. Не забудьте поставить галочку в поле Ю, если искомый вами объект находится в южном полушарии неба (отрицательное склонение).
Разрешение изображения является наиболее важным параметром для астрономического решения. В нашем случае она выражается в угловых секундах на пиксель и показывает, насколько сильно увеличено изображение неба, а значит, насколько широка область поиска.
Оно основано на двух параметрах: фокусном расстоянии и размере пикселя. Эти значения часто также доступны в метаданных изображения. Если они недоступны в изображении, используются значения, сохраненные в настройках. Значения изображений и настроек можно задать с помощью диалогового окна :guilabel:"Информация". В любом случае, проверьте отображаемое значение перед астрономическим решением и при необходимости исправьте. Если найдено астрометрическое решение, фокусное расстояние по умолчанию и размер в пикселях будут заменены. Такое поведение можно отключить в настройках.
Предупреждение
Если использовался биннинг, это должно быть указано в заголовке FITS, но это может иметь две формы: размер пикселя может оставаться неизменным, и для вычисления выборки следует использовать множитель биннинга, или размер пикселя уже умножен программным обеспечением для получения данных/изображения. В зависимости от конкретного случая, с которым вы сталкиваетесь, можно выбрать любую из форм в настройках или в окне Информация.
Размер пикселя указан в спецификации астрономических камер, и, как правило, его можно найти в Интернете для цифровых зеркальных фотокамер (DSLR) или других камер. Количество датчиков ограничено, и характеристики большинства из них известны.
Фокусное расстояние зависит от основного инструмента, а также от используемого заднего фокуса и корректирующих или увеличивающих линз. Укажите значение, максимально приближенное к тому, которое, по вашему мнению, является эффективным фокусным расстоянием. Если будет найдено астрометрическое решение, в результатах будет указано рассчитанное фокусное расстояние, и вы сможете повторно использовать его в своем программном обеспечении для получения данных/изображений и для дальнейшего использования инструмента.
When either of the fields is updated, the sampling is recomputed and displayed
in the window (called 'resolution' here). Make sure the value is as close to
reality as possible.
Совет
Data written in orange color in the GUI indicates values which could not be
retrieved from the image header. It does not mean they are wrong (they could
have been loaded from the preferences values and be valid) or mandatory
(you could blind-solve), this color is just here to differentiate from values
read from the header.
Since Siril 1.2, Siril can use two different solvers, its internal solver and
Astrometry.net local installation.
The interface differs depending on whether one or the other is selected in the
dedicated drop-down list.
The option Solution order, selected via the drop-down list, specifies
the order of the platesolving solution. When selecting Linear, the solver will
try to fit a solution assuming there are no distortions in the image (i.e. the field
is optically flat). However, this assumption may not be true in presence of
optical aberrations (wrong backfocus, no field-flattener etc...). Since version
1.3, the platesolver can try to fit up to fifth-order polynomial distortions, following the
SIP convention.
By default, the platesolver uses Cubic(SIP) distortions, which should fit
most use cases. This default can be changed in the Preferences.
This option is available with both solvers.
You can also choose to save distortions to a wcs file by ticking the Save distortion
box. Use the filechooser below to specify its path. If you have defined a
master distortion path in the preferences,
its path will be shown by default. This file can then be used to undistort images
during Global Registration
and 2pass Registration
When using local star catalogues
are installed or when using Astrometry.net,
a cone around the target position will be searched. The size of this cone in
degrees can be changed using the Search radius control, which default
value can be changed in the Preferences.
For Siril solver, this feature can be disabled by ticking the
disable near search box.
Use these two options together if the location and resolution of the image are
completely unknown.
Предупреждение
There is no magic happening here. In order to solve for any field of view, you
will need to have the necessary indexes
installed that cover the actual field of view of the image being solved.
Наконец, в нижней части диалогового окна имеются три кнопки-переключателя:
Опция Уменьшить изображение уменьшает разрешение входного изображения для ускорения обнаружения звезд на нем. Недостатком этого способа является то, что он может не найти достаточно звезд или дать менее точное астрометрическое решение. Размер выходного изображения остается неизменным.
Если астрометрическое решение определяет изображение как перевернутое, при включенной опции Отобразить при необходимости, оно будет перевернуто в конце. Это может быть полезно в зависимости от программного обеспечения захвата изображений, если изображение имеет неправильную ориентацию при отображении в Siril (см. дополнительные объяснения).
При включении опции Автокадрирование (для широкого поля) выполняется астрометрическое решение только для центральной части изображения. Это делается только для широкоугольных изображений (больше 5 градусов), где искажения относительно центра достаточно велики, чтобы затруднить работу инструмента астрометрического решения. Игнорируется при использовании astrometry.net.
This section is relevant for Siril internal solver only. Several online
catalogues can be used and also two catalogues that can be installed locally for
faster and more reliable operation.
По умолчанию этот раздел недоступен, поскольку всевключен автоматический режим. Однако, сняв флажок "Авто (удалённый каталог) в зависимости от разрешения изображения, можно выбрать онлайн-каталог, используемый для обработки изображений. Выбор осуществляется между:
TYCHO2,
a catalogue containing positions, proper motions, and two-color photometric
data for 2,539,913 of the brightest stars in the Milky Way.
NOMAD,
a merge of data from the Hipparcos, Tycho-2, UCAC2,
Yellow-Blue 6, and USNO-B catalogs for astrometry and optical photometry,
supplemented by 2MASS near-infrared. The almost 100 GB dataset contains
astrometric and photometric data for about 1.1 billion stars.
Gaia DR3,
released on 13 June 2022. The five-parameter astrometric
solution, positions on the sky (α, δ), parallaxes, and proper motions, are
given for around 1.46 billion sources, with a limiting magnitude of G = 21.
This represents the state of the art in accurate astrometry data and provides
spectral data for a wide range of sources which is used in SPCC.
PPMXL,
a catalog of positions, proper motions, 2MASS- and optical
photometry of 900 million stars and galaxies.
Bright Stars,
a star catalogue that lists all stars of stellar magnitude
6.5 or brighter, which is roughly every star visible to the naked eye from
Earth. The catalog contains 9,110 objects.
APASS,
a star catalogue that lists all stars of stellar magnitude
6.5 or brighter, which is roughly every star visible to the naked eye from
Earth. The catalog contains 9,110 objects.
Примечание
Для использования этих онлайн-каталогов необходимо соединение с сетью Интернет.
All these catalogs are made available through VizieR catalogue access tool, CDS,
Strasbourg, France (DOI:10.26093/cds/vizier). The original description
of the VizieR service was published in 2000, A&AS 143, 23.
Предел звёздной величины — это параметр, который позволяет вам ограничить величину звезд, запрашиваемых в каталоге. Значение автоматически рассчитывается исходя из разрешения изображения.
Начиная с версии 1.1, выпущенной в июне 2022 года, появилась возможность использовать локально установленный каталог звёзд для автономной или более устойчивой работы. Каталог звёзд, который, на наш взгляд, наиболее соответствует нашим потребностям, — это каталог KStars. На самом деле он состоит из четырёх каталогов (задокументированных в руководстве KStars), два из которых не распространяются напрямую в основных установочных файлах KStars:
namedstars.dat — самые яркие звезды, у всех есть имена
unnamedstars.dat — также яркие звезды, но до 8-й звёздной величины
deepstars.dat — более слабые звезды, извлеченные из каталога Tycho-2, включающего 2,5 миллиона самых ярких звезд, вплоть до 12,5 звёздной величины
USNO-NOMAD-1e8.dat — фрагмент огромного каталога NOMAD, ограниченный фотометрической информацией B-V и собственным движением звезд в компактной двоичной форме, до 18-й звездной величины.
This catalogue can be used for plate solving and for PCC.
When comparing these catalogues with the online NOMAD, we can easily see that
many stars are missing. If not enough are found for your narrow field, you
should still use the remote queries. A nice thing to check when the catalogues
are installed is highlighting which stars of the image will be used for the
PCC, those available with photometric information in the catalogues, using the
conesearch command.
In version 1.4 support for a local extract of the Gaia DR3 catalogue has been
added. This astrometric Gaia extract differs from the other catalogues in that
it is focused on astrometry as applied to plate solving, so instead of defining
a limiting magnitude the catalogue has been designed to provide an even coverage
of stars in each level 8 HEALPixel (you can read more about HEALPixels
here).
This avoids including excessive numbers of stars in densely populated parts of
the sky and ensures that sufficient fainter stars are included in emptier
HEALPixels to support accurate plate solving.
The default catalogue will be selected at startup based on two criteria:
If a local catalogue is available it is preferred to the remote equivalent
If a Gaia catalogue (local or remote) is available it is preferred to NOMAD
Совет
Although the offline Gaia DR3 extract can be used with the conesearch command
(by specifying the catalogue name localgaia) it is not really designed for
this purpose. In busy regions of the sky the limiting magnitude will be
relatively bright and therefore many stars visible in your images will not
be contained in the catalogue whatever limiting magnitude you set. For
annotation cone searches in such regions you will be better served by
specifying the catalogue name gaia instead, which will conduct a remote
cone search using the Vizier mirror of the Gaia DR3 archive. This is both
fast (for a remote query) and comprehensive.
This catalogue can be used only for plate solving. A photometric Gaia
extract also exists, and can be used for the SPCC, it is documented on the
SPCC page.
To make things easier to Siril users, and possibly to KStars users too, we
redistribute the four files in a single place, and in a more compressed format.
With the LZMA algorithm (used by xz or 7zip), the file size is 1.0GB instead of
the 1.4GB with the original gzip file. So those .xz files are compressed, make
sure you uncompress them with a suitable software before copying them.
Direct download links are available here
(right click on each file name on the left and save the links).
In case the link is unavailable and to make it faster from anywhere, it is also
distributed with bittorrent, using this
torrent file
or the following magnet link.
The Gaia DR3 local astrometric extract is available from Zenodo
It comes with a sha256 checksum
for the compressed archive.
Full details, plus a citation reference and a checksum
for the uncompressed archive for extra paranoia, can be found at the
Zenodo record. The specification of the
Gaia DR3 catalogue extracts and their file format is documented
here (PDF).
Совет
For convenience, an offline version of the Gaia DR3 astrometric catalogue can
be installed using the Catalogue Installer script in the Scripts menu.
This catalogue takes up 1.5GB once installed compared with 2.1GB for the KStars NOMAD
catalogue and provides higher precision astrometry and even density of stars in all
regions, for more reliable and accurate plate solving. It is strongly recommended
to install and use this catalogue for all astrometry purposes within Siril.
Файлы можно разместить где угодно, а их пути указать в настройках Siril, но для четырех файлов есть местоположение по умолчанию: ~/.local/share/kstars/ в Linux. Можно использовать ссылки на них, чтобы избежать ненужных копий. Теперь настройки можно менять из командной строки, используя команду set.
Когда эти файлы доступны и читаемы, Siril не будет использовать веб-сервис для получения астрометрических или фотометрических данных. Просмотрите сообщения на вкладке журнала или на консоли, чтобы убедиться, что файлы каталога используются так, как и ожидалось.
From Siril 1.4.0 onwards, Siril will first look in
local annotation catalogs
to find the coordinates of an object passed in the platesolving dialog, to locate
the center of the image.
This means that, provided you have the local star catalogues installed, you can
solve your images without Internet connection.
Of course, this should only be needed if the acquisition software did not
record the target coordinates in the FITS header, or when using SER file format
which cannot hold this information.
With the addition of the new link between Siril's plate solver and the local
catalogue and the new link between Siril's PCC and the local catalogue, a new
command conesearch was created (from Siril 1.4.0) to display catalog objects in
a plate solved image.
To display stars that contain photometric information (the B-V index)
and can be used for calibration, you can for instance use the following:
conesearch -phot
В дополнение к функции аннотации объекта (см. аннотации), это хороший способ убедиться в том, что астрометрическое решение и изображение выровнены.
For photometry, Siril only uses the B-V index
(or, for the Gaia catalogue, the effective temperature field Teff) which gives information
about star colour. The three image channels are then scaled to give the best colour
representation to all stars in the image.
For more information about the KStar binary file type, see this page
and this discussion on kstars-devel
and some development notes in Siril here
and here.
Начиная с версии 1.2, solve-field, решатель из пакета astrometry.net, может использоваться Siril для поиска астрометрических решений изображений или их последовательностей.
Для платформ Windows самый простой способ получить его — использовать ansvr. Если вы не меняли каталог установки по умолчанию, то есть оставили %LOCALAPPDATA%\cygwin_ansvr, Siril будет искать его без дополнительной настройки. Если у вы используете cygwin и вы собрали astrometry.net из исходников, вы должны указать расположение корня cygwin в Настройках.
Для MacOS следуйте этим инструкциям. Установите с помощью homebrew и добавьте его в PATH. Также убедитесь, что программа работает для тестовых образов, как указано в инструкции, и вне Siril.
Для ОС, отличных от Windows, исполняемый файл должен быть найден в PATH.
The use of this tool makes it possible to blindly solve images, without a
priori knowledge of the area of the sky they contain or its resolution. It's also a good
alternative to Siril's plate solver in case it fails, because it's a dedicated
and proven tool that also can take field distortion into account.
Default settings should be fine, but can be modified if you really want to,
using the set command (default values specified between parens) or
in the Astrometry tab of
preferences. How wide the range of allowed scales is (15%), how big the radius
of the search from initial coordinates is (10 degrees), the polynomial order
for field distortion (0, disabled), removing or not the temporary files (yes),
using the result as new default focal length and pixel sizes (yes).
Для работы Astrometry.net необходимы индексные файлы. Мы настоятельно рекомендуем использовать последние индексные файлы, доступные на их сайте, т. е. серии 4100 и 5200. Поле зрения каждой серии описано на их странице github. (официальная документация пока не включает эту таблицу).
В системе на базе Unix вы можете просто следовать инструкциям в документации.
В Windows, если вы используете ansvr, эти последние индексные файлы не будут доступны в Index Downloader. Но ыы все равно можете загрузить их отдельно и сохранить там, где хранятся другие индексные файлы (рекомендуем удалить старые файлы, хотя это может испортить Index Downloader).
Just like the internal solver, Siril will proceed with extracting the stars from
your images (so as to benefit from internal parallelism) and submit this list of
stars to astrometry.net solve-field. If you then want astrometry.net to
crawl the index in parallel, you will need to specify it through the
astrometry.cfg file.
You can specify to solve the whole sequence. The images already
solved will be solved again unless the Skip already solved images box is
ticked. To use Astrometric registration, you will need to process
the whole sequence so that useful information is stored with the sequence (FWHM,
number of stars, background level...), so leave the box Use as registration information
ticked.
When using Siril solver with local catalogues or when using Astrometry.net, the
information contained in the header (if present) will be used to update the
image target center and resolution for each image. However, when using Siril solver
with online catalogues, a single star catalogue will be downloaded by default to
avoid too much network traffic and server requests. If the images do not have too much
drift and the same resolution, this is normally sufficient. However, if the images
do not have enough overlap or different sampling, you can force downloading one
star catalogue per image by ticking the Fetch stars for each image
box.
Finally, the 3 boxes on the right will enable to control if the platesolver should
read target coordinates, pixel size and focal from each image header or the values
specified in the dialog.
At the end of the sequence solving, the log will report how many images were solved
and if any were skipped.
Sequence processing succeeded.
Execution time: 676.35 ms
3 images successfully platesolved out of 3 included
(2 were already solved and skipped)
Solving sequences is also available via the command seqplatesolve.
Примечание
When solving FITS sequences or a FITSEQ
file, the images are directly saved, without creating a new sequence. For FITS
sequences, if the sequence was created using symbolic links, the original files
are not updated. Instead, the name of the symbolic link is used to create a
new FITS file, leaving the original untouched.
When solving a SER sequence, a new
sequence with the prefix ps_ is created as SER cannot store WCS data.
By default, the star detection uses the findstar algorithm
with the current settings. It works very well to find many stars, but in some
occasions we would like to detect the stars manually, or simply view which are
used. A first step would be to open the PSF window and launch star
detection, then adjust the settings (see the related documentation
documentation).
Другой подход — выбрать звезды одну за другой, обведя их рамкой, а затем, щелкнув правой кнопкой мыши, выбрать Выбрать звезду. Чем больше звезд выбрано, тем больше вероятность того, что алгоритм сработает.
Then in the astrometry window, expand the star detection section and activate
the Manual detection. Instead of running findstar,
it will use the current list of stars.
Примечание
Detection always uses the green layer for RGB images. For undebayered CFA images,
the green layer is extracted on-the-fly and used instead.
Когда астрометрическое решение найдено, мы можем увидеть на вкладке Консоли сообщения такого рода:
Up is -5.26 deg CounterClockWise wrt. N
Resolution: 3.051 arcsec/px
Focal length: 254.21 mm
Pixel size: 3.76 µm
Field of view: 04d 51m 58.27s x 03d 01m 1.21s
Image center: alpha: 21h02m02s, delta: +68°10'48"
Was 119.64 arcmin from initial value
Saved focal length 254.21 and pixel size 3.76 as default values
Flipping image and updating astrometry data.
The astrometric solution gives us the J2000 equatorial coordinates of the image
center, the projected horizontal and vertical dimension of the image on the
sky, the focal length that could give this field for the given pixel size and
consequently the actual image sampling, the angle the image makes with the
north axis, the field of view and image center. It also tells what was the distance
with the initial specified center.
If it fails, check that start coordinates and pixel size are correct and try
changing the magnitude, this will change the amount of
stars downloaded from the catalogs, and maybe more stars will be identified. If
Siril's plate solve won't find a solution, it is still possible to use an
external tool to do it, the solution will be written in the FITS header either
way.
To check the validity of the solution, you can use the conesearch command.
This should display stars positions found from catalogues and inspect if they
match with the actual stars in the image.
The two images below shows annotations in the top right corner of an image with
significant distortion. The top one is the linear solution while the bottom one
has been solved accounting for cubic polynomials.
If platesolving with distortions is sucessfull, the disto command
or the Tools ‣ Image Analysis ‣ Show Distortions menu
can display a representation of the corrections as an overlay on the image.
Командная строка Siril
disto [clear]
Показывает поле дисторсии на изображении, имеющем астрономическое решение с включёнными данными о дисторсии
If you want to visualize the distortion field in 3D, you can use the Python script
Distortion3D.py in the Scripts->Python Scripts menu. You
will need to enable getting scripts from the scripts repository.
Annotations are glyphs displayed on top of images to depict the presence
of known sky objects, like galaxies, bright stars and so on. They come
from catalogues but can only be displayed on images for which we know
which part of the sky they represent, images that have been plate
solved and contain the world coordinate system (WCS) information in
their header, so only FITS or
Astro-TIFF files.
Plate solving, can be done within Siril in the menu
Tools ‣ Astrometry ‣ Image Plate Solver... entry, or using
external tools like
astrometry.net or
ASTAP.
Когда в Siril загружается изображение, имеющее астрономическое решение, вы можете увидеть координаты неба для пикселя под указателем мыши, отображаемым в правом нижнем углу, и становятся доступными кнопки, связанные с аннотациями. Первая кнопка включает или выключает аннотации объектов, вторая — небесную сетку и компас.
There's also a simpler way of accessing this list, as well as the button for
displaying/hiding catalog annotations. Right-click on the annotations button in
the toolbar and the list will be displayed in a popup window.
Catalogue management in the pop-up window triggered by right-clicking on the
annotation button.
These annotation catalogues are used primarily for display purposes. Starting
from Siril 1.3, they are also used to locate the center of the image for
astrometry tool. If the object is found locally, the resolver will
be shown as Local. If not, it will fall back using an online resolver.
Object resolved from local annotations catalogues
You may want to query other databases than the ones already shipped with Siril,
described in the
offline annotation catalogues
section. This works, again, for plated-solved images only.
Starting from Siril 1.3, this is possible with the command conesearch.
This new command replaces and expands capabilities previously provided by nomad
and solsys from Siril 1.2.
Отображает звёзды из локального каталога по умолчанию для загруженного изображения, имеющего астрономическое решение, вплоть до заданного значения limit_magnitude (для большинства каталогов по умолчанию — 13, за исключением 14.5 для aavso_chart, 20 для solsys и пропущено для pgc).
Альтернативный удалённый каталог можно указать с помощью аргумента -cat=, принимающего значения
- for solar system objects: solsys (closest IAU observatory code can be passed with the argument -obscode= for better position accuracy)
Для каталогов, содержащих данные фотометрии, будут сохранены звёзды без информации B-V; их можно исключить, передав аргумент -phot
Вместо каталога можно передать аргумент -trix=, за которым следует число от 0 до 511, для отображения трикселей 3-го уровня, содержащих звёзды, из локальных каталогов (в основном для использования разработчиками)
Ряд каталогов (bsc, gcvs, pgc, exo, aavso_chart, varisum and solsys) показывают названия объектов рядом с маркерами (только графический интерфейс) и выводят их в журнал. Для каталогов с большим количеством объектов, а именно vsx и simbad, эта информация также может отображаться, но, поскольку она может загромождать экран, по умолчанию её показ отключен. Это поведение можно включить / выключить с помощью аргументов -tag=on|off (для показа названий рядом с маркерами) и -log=on|off (для вывода списка объектов в журнал)
Список элементов, присутствующих на изображении, при желании можно сохранить в файле csv, передав аргумент -out=
This command is accessible from the graphical interface via the Tools ‣ Astrometry ‣ Annotate....
For solar system object queries, you may pass an additional parameter -obscode=,
the 3-symbol code for an IAU observatory
close by to your observing location. This will improve annotations accuracy. Please note
that results may still slightly differ from those obtained by making a direct
ephemerides query for a specific object,
which uses the exact observing location (if present in the FITS header).
Совет
A preferred observatory code may be set in the Astrometry tab
in the Preferences dialog. If set, this will be used for the
Solar System Objects GUI tool and will also be used in the
conesearch command unless the -obscode= argument is provided.
These additional annotations will be displayed in RED, to differentiate them
from offline annotations, shown in GREEN. These annotations will be erased as
soon as the ShowObjectsnames button is toggled.
You may want to display your own user catalogues. This can be done with the
command show. This command can also be used to display, for instance,
csv files created with the feature to find
comparison stars.
Командная строка Siril
show [-clear] [{ -list=file.csv | [name] RA Dec }] [-nolog] [-notag]
На основании экваториальных координат показывает точку на загруженном изображении, имеющем астрономическое решение, используя временный каталог с пользовательскими аннотациями. Аргумент -clear сначала очищает этот каталог и может использоваться отдельно.
С помощью аргумента -list= можно передать несколько точек, используя файл в формате CSV, содержащий по крайней мере столбцы с данными о прямом восхождении и склонении. Если указанный файл так же также содержит столбец с названием, эти названия будут использованы как метки на изображении и отображены в журнале, если только не отключены с помощью опций -notag и -nolog.
Это доступно только через графический интерфейс Siril
These catalogues may be any csv (comma-separated) file, respecting the following rules:
строки с комментариями, если необходимы, должны начинаться со знака #
a line should be present at the top with the column names, comma separated
at least ra and dec columns should be provided, in decimal degrees.
the columns can be written in no particular order
other columns can be passed:
name (str)
diameter (double), the object diameter in arcmin
mag (double), the object magnitude
type (str), which will be appended between () after the name in the Console
Other columns than those listed above may be passed but they will not be used.
This command is accessible from the graphical interface via the Tools ‣ Astrometry ‣ Annotate....
You can either load a *.csv file containing several lines of
comma-separated ra, dec coordinates in Import CSV, or a single point
in the Single Coordinates tab.
In the case of a single point, you can save the result in the Deep Sky user
catalogue by clicking on the save button as shown in the illustration bellow:
It is possible to show only one single point and to save it in the Deep Sky
user catalogue.
Совет
The save button will only work if the field Display Name is filled.
Совет
You can select a star or object and obtain its coordinates using the
Get coordinates from selection button.
Список известных пользовательских каталогов:
Sometimes, users create their own catalogues, we can try to link them
here to help everybody.
Contrarily to the instructions discussed in the linked topic, it is not recommended
to replace the user-DSO catalogue with such files. The usage is discouraged as
some of them could be particularly big and would slow down tremendously every
annotation redraw.
If you know a specific object is somewhere in the image (if not, see the
search for an unknown object
section), it is possible to add it to annotations.
Pressing Enter or Apply will first search for this name the
existing annotation catalogues in case it already exists under another name. If
not it will send an online request to SIMBAD
to get the coordinates of an object with such a name. If found, and not already
in any catalogue, the object will be added to the Deep Sky user catalogue.
The items of this catalogue are displayed in ORANGE while the objects
from the predefined catalogues are displayed in GREEN.
Объекты дальнего космоса из пользовательского и предопределенных каталогов
Examples of valid input (not case sensitive):
HD86574 или HD86574 оба запроса подходят для этой звезды
From Siril version 1.2, objects from the solar system can also be searched for,
using the Miriade
ephemcc
service. This is done in the same manner as for Deep Sky Objects, but
prefixing the name of the object to be searched
by some keyword representing the type of object: a: for asteroids,
c: for comets, p: for planets, dp: for dwarf planets and
s: for natural satellites.
If you query an image taken from a close enough date and time (same night) than
another image already annotated with SSOs, their cached positions
will be used and corrected by each object velocity as returned by the ephemerids.
The items of this catalogue are displayed in YELLOW.
Примеры допустимых поисковых запросов (регистр не имеет значения):
c:67p или c:C/2017T2 являются допустимыми формами запроса для комет
a:1 и a:ceres допустимы для (1) Цереры
a:2000BY4 действителен для 103516 2000 BY4
p:4 or p:mars are both valid for Mars
dp:Pluto is valid for Pluto
s:Moon or s:Io is valid for natural satellites.
Предупреждение
Images that do not have a DATE-OBS header key cannot be annotated for SSOs.
Images that do not have observer location information (SITELAT, SITELONG and
SITEELEV header keys) will still be annotated, but assuming a geocentric
observer position, i.e. as if observing from center of the Earth. Depending
on objects distance wrt. Earth, this may result in positions being slightly
offset from their real positions.
The same feature is accessible through the command catsearch:
Командная строка Siril
catsearch name
Ищет объект по названию (name) и добавляет его в каталог пользовательских аннотаций. В первую очередь поиск производится в каталоге аннотаций. Если объект не найден, то делается запрос к удалённому серверу SIMBAD.
Объектом может быть тело Солнечной системы. В этом случае перед названием объекта необходим префикс 'a:' для астероида, 'p:' для планеты, 'c:' для кометы, 'dp:' для карликовой планеты или 's:' для естественного спутника. Поиск выполняется для даты и местоположению Земли, указанным в заголовке файла, с помощью сервиса Miriade от Института небесной механики и вычисления эфемерид (IMCCE)
Especially useful for photometry works, it is possible to identify a
star or other objects in the image by drawing a selection around them,
right clicking to bring up the context menu, and selecting the PSF
entry.
This will open the PSF window, and if it is a star it will display
the Gaussian fit parameters, but it will also display a Web link at the
bottom left of the window. Opening it will bring you to the SIMBAD
page for the
coordinates of the object and in many cases will give you the name of
the object.
SIMBAD does not have all known objects, but the coordinates
from the page can still be used as a starting point to look for the
object in other online catalogues, for example Gaia DR3
(VizieR).
Данный раздел описывает два важных шага, выполняемых для определения звёзд на отдельных кадрах. Определение на отдельном изображении можно выполнить или уточнить с помощью Основное меню ‣ Данные об изображении ‣ Динамическая PSF или с помощью клавиатурной комбинации Ctrl + F6.
Динамическая PSF, выполняемая на изображении глубокого космоса.
Обработка выполняется следующим образом:
первоначальное определение кандидатов в звёзды
подгонка модели PSF для каждого кандидата. Проверка на адекватность, основываясь на параметрах подогнанной модели, чтобы убедиться, что кандидат является звездой и отбросить кандидаты, не являющиеся звёздами.
Результатом этого процесса является список звёзд, с их положением на изображении относительно левого верхнего угла и измеренными величинами всех звёзд в списке.
Хотя при взгляде на изображение кажется очевидным, где располагаются звёзды, это несколько более трудная задача формализовать этот процесс в математических терминах и критериях. В этом разделе коротко описан алгоритм, лежащий в основе определения звёзд. Он вдохновлён руководством к программе DAOPHOT[Stetson1987], с некоторыми упрощениями, улучшающими производительность. Оригинальный алгоритм был нацелен на поиск всех возможных звёзд, служа цели создания каталогов звёзд. Siril же нуждается в определении звёзд как деталей для регистрации. Он так же должен уметь обрабатывать разнообразные изображения, которые предоставляют пользователи — большинству из нас недоступно профессиональное астрономическое оборудование на своём заднем дворе - и нам приходится делать определённый выбор, касающийся предварительных знаний об условиях получения изображений (масштаб, условия съёмки и пр.).
С течением времени, наша реализация алгоритма эволюционировала к тому, что она представляет собой сейчас. Она имеет целью не пропустить слишком яркие звёзды, которые важны для регистрации и выбраковать как можно больше выбросов, делая это с разумной скоростью.
Его можно разделить на следующие шаги:
вычисляется статистика изображения для получения уровня фона, в виде медианы изображения, и его шума. Это предполагает, что изображение относительно плоское. Как следствие, определение имеет тенденцию быть менее эффективным в углах, если после калибровки осталось сильное виньетирование.
Так же вычисляется динамический диапазон, определяемый как разница между максимумом изображения и его фоном. Позже это будет полезно для определения насыщенных звёзд.
изображение сглаживается при помощи гауссовского ядра. Для идеального сглаживания было бы необходимо использовать ядро того же размера, как FWHM изображения. Вместо этого, мы выбрали произвольный размер, который даёт удовлетворительный результат в очень большом диапазоне условий. Это позволяет быть "слепым" к условиям получения изображения.
на сглаженной версии изображения определяются локальные максимумы на уровне, определённом как уровень фона плюс уровень шума умноженный на X (X можно изменять с помощью значения threshold в графическом интерфейсе). Убеждаемся, что это максимум на заданном размере поля (определяемом параметром radius).
запускается проверка работоспособности, чтобы убедиться, что максимум и его соседи значительно выше окружающих пикселей (например, чтобы исключить пятна в ярких частях туманности).
запускается проверка правильности предположения, что ядро вокруг максимумов является насыщенным, т. е. постоянно близким к верхней границе динамического диапазона. Если это так, запускается алгоритм обхода по краю, чтобы обнаружить предел насыщенной части.
Используются первая и вторая производные вдоль горизонтальной и вертикальной линий, проходящих через центр, чтобы определить локальный фон звезды, амплитуду и ширину во всех направлениях (вверх, вниз, влево и вправо).
Если параметры достаточно симметричны во всех направлениях (с точностью до значения параметра roundness), то подтверждаем, что звезда является потенциальным кандидатом.
После получения списка потенциальных кандидатов, они сортируются по убыванию амплитуд и передаются в алгоритм подгонки PSF, описанный в разделе минимизация.
В окне Динамическая PSF используются две модели. В целом, модель Моффата (Moffat) более подходящая для подгонки таких объектов, как звёзды.
Показаны две круговые PSF в соответствии с профилем Гаусса и профилем Моффата. Обе модели используют одни и те же параметры, а профиль Моффата использует \(\beta = 1.4\).
Повернутые функции Гаусса и Моффата с параметрами \(\sigma_x=2\sigma_y\), \(\theta=45°\). Для Моффата \(\beta = 1.4\).
Профили звезд с моделями Гаусса и Моффата. Были проверены несколько значений \(\beta\). \(\beta = 10\) дает профиль, очень близкий к гауссовскому.
Теория
Эллиптическая функция подгонки по Гауссу определена следующим образом
\(A\) — это амплитуда, которая является максимальным значением подогнанной PSF.
\(x_0\), \(y_0\) — это координаты центроида в пикселях.
\(\sigma_x\), \(\sigma_y\) — это стандартные отклонения Гауссова распределения по горизонтальной и вертикальной осям, измеренные в пикселях.
\(\beta\) — это показатель степени из формулы Моффата, который определяет общую форму функции подгонки. Верхняя граница этого параметра была установлена равной 10. Более высокое значение не имеет смысла и означает, что гауссиан достаточно хорош для подгонки звезды.
Другие параметры выводятся из этих подогнанных переменных:
\(\text{FWHM}_x\) и \(\text{FWHM}_y\): Ширина на полувысоте (FWHM) по осям X и Y в пикселях. Эти параметры рассчитываются следующим образом:
\(\text{FWHM}_x = 2\sigma_x\sqrt{2\log 2}\).
\(\text{FWHM}_y = 2\sigma_y\sqrt{2\log 2}\).
Можно получить параметры FWHM в угловых секундах. Для этого необходимо заполнить все поля, соответствующие вашей камере и фокусному расстоянию объектива/телескопа, в окне настройки параметров в главном меню, затем Данные об изображении и Информация. Если в заголовках FITS указаны такие ключевые слова, как FOCALLEN, XPIXSZ, YPIXSZ, XBINNING и YBINNING, PSF также вычислит масштаб изображения в угловых секундах на пиксель.
\(r\): — параметр округлости. Он выражается в виде \(\text{FWHM}_x/\text{FWHM}_y\), с условием симметричности \(\text{FWHM}_x > \text{FWHM}_y\).
Другой параметр также подгоняется как в модели Гаусса, так и в модели Моффата. Это угол поворота \(\theta\), определённый в диапазоне \([-90°,+90°]\). Добавление этого параметра подразумевает изменение координат, где переменные \(x\) и \(y\), выраженные в (1) и (2), заменяются на \(x'\) и \(y'\):
Минимизация выполняется с помощью нелинейного алгоритма Левенберга-Марквардта благодаря очень надежной GNU Scientific Library. Этот алгоритм используется для поиска минимума функции, которая отображает набор параметров в набор наблюдаемых значений. Он представляет собой комбинацию двух методов оптимизации: метода градиентного спуска и метода обратного гессиана.
Алгоритм Левенберга-Марквардта устанавливает компромисс между этими двумя методами, основываясь на минимизации кривизны функции. Когда кривизна мала, алгоритм использует метод градиентного спуска, а когда кривизна велика, алгоритм использует метод обратного гессиана.
Начиная с версии 1.2.0, насыщенная часть звезды удаляется из процесса подгонки, что позволяет гораздо точнее захватывать ненасыщенную часть. Это то, что позволяет «реконструировать» профиль звезды при использовании пункта меню Обесцветить звёзды или команды unclipstars.
Динамическая PSF, в зависимости от вашего желания, может быть вызвана двумя различными способами:
Возможно, вам захочется разместить только одну или несколько звёзд. В этом случае после выделения ненасыщенной звезды (это важно для точности результата) вы можете щелкнуть правой кнопкой мыши и выбрать пункт Выбрать звезды, нажать кнопку + в диалоговом окне Динамическая PSF или нажать Ctrl + Пробел. В результате вокруг звезды будет нарисован эллипс. Чтобы открыть диалоговое окно, также можно использовать сочетание клавиш Ctrl + F6.
Вы можете захотеть проанализировать как можно больше звёзд, нажав на кнопку или используя командную строку findstar. Все обнаруженные звёзды будут окружены эллипсом: оранжевым, если звезда в порядке или пурпурным, если звезда насыщена. Также можно отобразить среднее значение вычисленных параметров, как показано ниже, нажав на кнопку .
Средние значения подобранных звёзд в Гауссовой модели.
Обнаружение звезд имеет ряд применений:
Siril использует его для целей астрометрии при регистрации последовательностей изображений. Это происходит автоматически и не требует вмешательства пользователя.
Поскольку звёзды очень яркие по сравнению с тусклыми объектами, представляющими интерес, такими как туманности или галактики, очень часто некоторые звёзды на изображении получаются насыщенными, что означает, что их профиль яркости обрезан. Это может вызвать проблемы с некоторыми функциями обработки изображений, в частности с реконструкцией, и приводит к потере информации о цвете и незначительному раздуванию звёзд при растяжении. Анализ всех звёзд покажет вам, какие из них насыщенные, и затем вы можете воспользоваться пунктом меню Обесцветить звёзды или командой unclipstars, чтобы устранить проблему путем синтеза отсеченной части профиля.
Командная строка Siril
unclipstars
Перепрофилирует обрезанные звёзды для уменьшения их насыщенности, масштабируя исходящие данные, чтобы все значения пикселей были <= 1.0
В идеале все звёзды на изображении должны быть максимально круглыми, однако такие проблемы, как кома, астигматизм и плохое ведение (гидирование), а также такие проблемы, как неправильно подобранный задний отрезок (back focus) при использовании выравнивателей поля (кома-корректоров или спрямителей поля), могут привести к появлению на изображении эллиптических звёзд. Эллипсы, созданные инструментом Динамическая PSF, могут служить хорошей наглядной иллюстрацией таких проблем.
Изучение средних параметров звезды, особенно FWHM и β-параметра функции подгонки Моффата, может дать информацию о качестве условий наблюдения (seeing) при получении изображения.
Обнаружение всех звёзд является первым шагом в использовании Обработка звёзд ‣ Полный повторный синтез. Этот инструмент синтезирует исправленные профили светимости для всех обнаруженных звёзд. Кроме того, он может использоваться для создания синтетической маски звёзд, которую затем можно смешать с изображением без звёзд, созданным Starnet++, чтобы исправить на изображении звёзды, не поддающиеся реконструкции. В этом случае обнаружение звёзд с использованием профиля Моффата может дать более реалистичный результат, что также может упростить отфильтровывание галактик, неправильно определённых как звёзды, с помощью опции «Минимальная β».
Флажок Отцентрировать выделенную звезду может использоваться для быстрого и легкого поиска определённой звезды из списка на изображении, центрируя её в окне просмотра. Это полезно, если вы определили все звёзды и хотите проверить конкретные определения, чтобы убедиться, что они действительно являются звездой, а не галактикой или космическим лучом.
Аналогично этому, нажатие на оранжевый или пурпурный эллипс вокруг звезды в главном окне просмотра выделит выбранное определение звезды в диалоговом окне Динамическая PSF. Это может быть полезно, если вы хотите увидеть параметры отдельной звезды.
Инструменты реконструкции Siril могут использовать измерения Динамической PSF для синтеза математической функции реконструкции, которая соответствует параметрам звезды, измеренным непосредственно на изображении.
Динамическая PSF может быть настроена с использованием параметров в диалоге Динамическая PSF:
Радиус устанавливает половинный размер области поиска. Если у вас возникли проблемы с поиском определенных звёзд, вы можете попробовать изменить это значение, но обычно оно используется по умолчанию.
**Порог ** изменяет порог, превышающий уровень шума для обнаружения звёзд. Если вы увеличите это значение, будет обнаружено меньше слабых звёзд. Возможно, вы все же захотите сделать это для изображений с очень высоким уровнем шума. Уменьшение этого значения может привести к обнаружению большего количества слабых звёзд, но также повысит вероятность ошибочной идентификации алгоритмом случайных всплесков шума в качестве звёзд.
Округлость определяет порог допустимой эллиптичности объектов, которые будут приниматься за звёзды. Звезды с высокой степенью эллиптичности могут возникать из-за недостаточного качества ведения(гидирования) или аберраций, но иногда звёзды, расположенные слишком близко друг к другу, также обнаруживаются как одиночные очень вытянутые звёзды. Чтобы выявить все эти проблемы, можно установить более высокую границу округлости. Максимальное значение, равное 1, эквивалентно отключению диапазона, оставляя только минимальное значение. Этот диапазон округлости должен быть отключен для регистрации или астрометрии.
Сходимость задает критерий, используемый решателем. Его увеличение позволит решателю выполнить больше итераций для сходимости и потенциально может обнаружить дополнительные звёзды, но может увеличить время работы решателя.
Тип профиля позволяет выбрать между решением профиля типа Гаусс или Моффат для звёзд.
Минимальная β устанавливает минимально допустимое значение β для того, чтобы объект был признан звездой. При использовании профиля Моффата, галактики иногда могут быть определены как звёзды, но они имеют рассеянный профиль и, обычно, очень низкое значение β, менее 1.5.
Ослабить проверки PSF позволяет ослабить некоторые проверки качества звёзд-кандидатов. Это, вероятно, приведет к значительному увеличению числа ложноположительных результатов при обнаружении звёзд, часто с нестандартными параметрами.
Диапазон минимальной и максимальной амплитуд может быть установлен для ограничения амплитуды (параметр, называемый A в отчётах) обнаруженных звёзд. Это полезно, если необходимо выбрать только ненасыщенные звёзды, например, для подгонки PSF при реконструкции. Обратите внимание, что удаление насыщенных звёзд из поля зрения может нарушить регистрацию и астрометрию.
Совет
Параметры, заданные в этом окне, можно протестировать на загруженном в данный момент изображении. Однако вы должны иметь в виду, что они также будут использоваться для всех изображений последовательности, особенно для регистрации глобального выравнивания.
Команда findstar будет соответствовать тем же настройкам, которые были введены в диалоговом окне Динамическая PSF, но ее также можно настроить с помощью команды setfindstar.
Командная строка Siril
findstar [-out=] [-layer=] [-maxstars=]
Определяет звёзды на текущем загруженном изображении, чей уровень превышает пороговое значение, вычисленное Siril.
После этого применяется PSF и Siril выбраковывает все найденные структуры, которые не удовлетворяют набору ранее определённых критериев, указанных с помощью команды SETFINDSTAR.
Наконец, вокруг обнаруженных звёзд рисуется эллипс.
Необязательный параметр -out= позволяет сохранить результат по указанному пути.
Опция -layer= указывает слой, на котором будет происходить определение звёзд (только для цветных изображений).
Вы также можете ограничить максимальное количество обнаруженных звёзд, указав значение параметра -maxstars=.
Определяет параметры определения звёзд для команд FINDSTAR и REGISTER.
При отсутствии параметра выводит список текущих значений.
Передача reset сбрасывает все значения к значениям по умолчанию. Вы всё ещё можете передавать значения после этого ключевого слова.
Настраиваемые значения:
-radius= определяет радиус первоначального поискового окна и должно быть между 3 и 50.
-sigma= определяет пороговое значение превышения уровня шума и должно быть больше или равно 0.05.
-roundness= определяет минимальное значение округлости звёзд и должно быть между 0 и 0.95. -maxR позволяет установить верхнюю границу округлости для визуализации только тех областей, где звёзды значительно вытянуты. Не меняйте для регистрации.
-minA и -maxA определяют пределы минимальной и максимальной сохраняемых амплитуд звёзд, нормализованные между 0 и 1.
-focal= определяет фокусное расстояние телескопа.
-pixelsize= определяет размер пикселя сенсора.
-gaussian и -moffat настраивает используемую модель решателя (по умолчанию - Гауссова).
Если выбрана модель Моффата, аргумент -minbeta= определяет минимальное значение параметра β для которого будут приняты кандидаты в звёзды и должно быть больше или равно 0.0 и меньше чем 10.0.
-convergence= определяет количество выполняемых повторов для подгонки PSF и должно быть установлено между 1 и 3 (более толерантное).
-relax= ослабляет проверки, выполняемые для кандидатов в звёзды, чтобы определить, являются ли они звёздами или нет, и позволяет по-прежнему принимать объекты, не имеющие форму звёзд (по умолчанию отключено)
Stetson, P. B. (1987). DAOPHOT: A computer program for crowded-field
stellar photometry. Publications of the Astronomical Society of the Pacific,
99(613), 191.
Ключевые слова, содержащиеся в заголовке FITS-файла, могут быть отображены в программе Siril. Для этого просто щелкните на Инструменты ‣ Заголовок FITS.
Начиная с версии 1.3.0, стало возможным изменять значения ключевых слов, поддерживаемых Siril, либо с помощью команды update_key, либо через графический интерфейс в соответствующем окне. Это окно разделено на две вкладки. Первая, Редактор заголовков, активна для отдельных изображений вне последовательности. Она может отличаться от того, как на самом деле выглядит заголовок файла, и больше отражает состояние, в котором он будет после сохранения. Значения ключевых слов обновляются в реальном времени. Вторая вкладка отображает заголовок в текстовом формате таким, как он записан в файле, и так, как он представлялся в версиях Siril ниже 1.3.0.
Предупреждение
Ключевые слова HISTORY не отображаются в редакторе. Они видны во вкладке Сохранённый заголовок.
Другой способ просмотра заголовка — использование dumpheader в командной строке. Эта команда показывает тот же заголовок, что отображается во вкладке Сохранённый заголовок.
Предупреждение
Так как файлы SER содержат очень мало ключевых слов и отличаются от файлов FITS, эта команда неприменима к этому типу последовательностей.
Названия ключей, значения ключей и комментарии к ключам могут быть изменены, однако ключ должен быть незащищённым. Для удобного определения, защищённые ключи отображаются лососевым цветом.
Редактирование очень простое — просто дважды щелкните на ячейке, которую нужно изменить. Первый щелчок выделяет поле, второй открывает режим редактирования. Нажатие клавиши Enter подтверждает введённые данные. Чтобы внесённые изменения вступили в силу, не забудьте сохранить файл.
Предупреждение
Пожалуйста, обратите внимание, что Siri не проверяет правильность введенного значения. Пользователь сам должен ввести правильное значение. Неправильное значение может привести к нежелательному поведению при обработке ключевых слов в Siril.
Диалоговое окно Заголовок FITS при редактировании значения ключевого слова.
Окно содержит опцию в виде кнопки Копировать выделение. Она копирует выбранные строки в буфер обмена в оригинальном формате заголовка FITS и работает для обеих вкладок.
Наконец, вы можете добавить новое ключевое слово, используя кнопку + в левом нижнем углу, и удалить его, используя кнопку -:
Для добавления ключевого слова нажмите кнопку +. Откроется новое диалоговое окно, показанное ниже. Это окно позволяет добавить новое ключевое слово, название которого будет ограничено 8 символами (конвенция HIERARCH не используется). Вы можете оставить поле Comment пустым, если другие два поля заполнены. Однако пользователь может заполнить только поле Comment, чтобы добавить одно примечание в заголовок FITS. Наконец, если ключевое слово уже существует, его значение будет обновлено предоставленной информацией.
Для удаления ключевого слова выберите одну или несколько строк и нажмите кнопку - (или используйте клавиши Del или Backspace). Выбранные ключевые слова будут удалены, за исключением защищённых.
Совет
При загруженной последовательности возможно выбрать только одну строку за раз. Это означает, что из последовательности вы можете удалить только одно ключевое слово за раз. Однако для отдельного изображения вы можете выбрать несколько ключевых слов.
Командная строка Siril
dumpheader
Выводит заголовок FITS загруженного изображения в журнал
Обновляет ключевое слово FITS. Пожалуйста, обратите внимание, что валидность значения value не проверяется. За это ответственен пользователь. Также можно удалить ключ, указав аргумент -delete перед названием удаляемого ключа, или изменить ключ с помощью аргумента -modify. За последним должны следовать ключ, который нужно изменить, и название нового ключа. Наконец, аргумент -comment, за которым следует текст, добавляет комментарий к заголовку FITS. Пожалуйста, обратите внимание, что любой текст, содержащий пробелы, должен быть заключен в двойные кавычки
Siril имеет режим создания профиля интенсивности. Пользователю необходимо провести линию между двумя точками, и Siril построит график значений пикселей между ними. Это имеет несколько применений. Его можно использовать для проверки профиля интенсивности отдельной звезды или целой галактики.
Для создания базового профиля интенсивности звезды или другого объекта выберите кнопку Профиль в нижней панели инструментов. Это переведёт Siril в режим построения профиля и откроет небольшое диалоговое окно.
Теперь вы можете нажать и потянуть на основном окне изображения, чтобы установить начальную и конечную точки линии, по которой вы хотите построить профиль. Если нажать клавишу Shift при перетаскивании линии, она примет либо горизонтальное, либо вертикальное направление.
Совет
Когда линия профиля строго горизонтальна или строго вертикальна, для построения используются точные значения пикселей непосредственно из изображения. Когда линия профиля не является ни горизонтальной, ни вертикальной, точки для построения не попадают точно на пиксель, поэтому используются значения пикселей, полученные методом билинейной интерполяции.
В нижней части диалогового окна есть поле для ввода пользовательского заголовка вашего графика.
Совет
При обработке последовательности можно настроить пользовательский заголовок так, чтобы он отображал номер текущего изображения и общее количество, добавив () в конец заголовка. Например, если для последовательности из 5 изображений ввести заголовок Солнечный спектр (), то будут сгенерированы заголовки Солнечный спектр (1 / 5), Солнечный спектр (2 / 5) и т.д. Скобки игнорируются и удаляются, если обрабатывается одиночное изображение.
Используйте радиокнопки для выбора типа профиля, который вы хотите получить. (Нажмите на приведенные ниже примеры изображений, чтобы увидеть их в полном размере.)
Моно профиль. Для монохромных или цветных изображений создается профиль яркости между двумя точками. Этот режим может использоваться со спектрометрическими данными.
Совет
Если загружено цветное изображение, но выбран режим моно профилирования, профиль будет создан в соответствии с областью просмотра. Области просмотра R, G и B предоставляют моно профили соответствующих каналов, а область просмотра RGB предоставляет профиль яркости, равномерно учитывающий все три канала.
Цветной профиль. Для цветных изображений создаются три профиля для значений пикселей R, G и B между двумя точками. Этот режим может использоваться с спектрометрическими данными.
Трёхпрофильный (моно). Для монохромных или цветных изображений создаются три параллельных, равноудалённых друг от друга профиля яркости между двумя точками. Расстояние между тремя профилями можно установить с помощью кнопки прокрутки.
CFA. Только для изображений с шаблоном Байера. Для каждого из четырех CFA-каналов создаются четыре профиля между двумя точками. Это может быть особенно полезно для проверки профиля изображений плоского поля с шаблоном Байера или других изображений с шаблоном Байера перед их дебайеризацией.
Это изображение демонстрирует использование поля для установки пользовательского заголовка графика.
Для облегчения точного и повторяемого ввода координат предоставляется метод ручного ввода. Нажмите кнопку Координаты вручную, и вы сможете ввести координаты X и Y начальной и конечной точек линии профиля. Если линия профиля уже нарисована, но одна из точек не находится точно там, где вам нужно, вы можете использовать это всплывающее диалоговое окно для точной настройки положения конечных точек.
If you wish to set an endpoint exactly to the position of a star, make a rectangular
selection around the star and click the relevant star button to the right of the
dialog.
Примечание
При использовании режима CFA координаты задаются на входном изображении. Однако каждый CFA-канал имеет половину ширины и высоты. Ось x в графике режима CFA измеряется в пикселях канала CFA, то есть она будет охватывать в два раза меньше пикселей, чем в исходном изображении.
Линия профиля интенсивности может быть использована в качестве измерительного инструмента двумя способами:
Checking the Measure profile checkbox will measure all profile lines
dragged with the mouse, similarly to the Ctrl+Shift+Drag quick measurement
function.
В диалоговом окне Координаты есть кнопка Измерить. Она предоставляет ту же функцию измерения, но позволяет вам точно установить конечные точки и затем выполнять измерение линии профиля по запросу. Выбирая звезды, малые планеты или ядра комет в качестве конечных точек, как описано выше, можно производить очень точные измерения (с субпиксельной точностью) между двумя небесными телами.
Здесь выбраны две близкие звезды и установлены в качестве конечных точек, а расстояние между ними измерено как 5.2 угловых секунды. Это может быть использовано для исследования бинарных систем или для триангуляции положения малой планеты.
Примечание
Функция измерения в Siril использует приближение малых углов для углового разделения \(\theta\). Наиболее значимая ошибка пропорциональна \(\theta^3\) и составляет менее 1% для измерений до 10°, поэтому она применима для большинства астрометрических задач. Однако она станет неточной для больших измерений на ультра-широкоугольных изображениях. Для измерений более 10° будет выдано предупреждение в журнале.
Функция построения профилей использует встроенный инструмент построения графиков Siril для отображения различных профилей. С помощью созданных файлов *.dat вы по-прежнему можете использовать любой другой инструмент построения графиков по вашему выбору для исследования базовых данных.
По right-click (щелчок правой кнопкой мыши) в любом месте области графика появится контекстное меню, в котором можно:
Показывать/скрывать сетки и условные обозначения
Экспортировать текущее представление в буфер обмена, *.png или *.svg
Создаёт профиль интенсивности между двумя точками на изображении — cut (разрез). Аргументы могут быть переданы в любом порядке. Обязательные аргументы — -to=x,y и -from=x,y.
Аргумент -layer={red | green | blue | lum | col} определяет какой канал (либо светимость или цвет) отобразить на графике, если изображение цветное. Его можно использовать в сочетании с аргументом -tri, создающим 3 параллельных равноудалённых профиля, разделённых -spacing= пикселей. Следует отметить, что для трёхпрофильного типа, аргумент col обрабатывается так же, как lum.
Аргумент -cfa выбирает режим CFA, создающий 4 профиля, по одному для каждого канала CFA, для изображения с шаблоном Байера. Он не может быть использован со цветными или монохромными изображениями без шаблона Байера, но и не может использоваться вместе с аргументом -tri.
Аргумент -arcsec позволяет отобразить расстояние по оси x в угловых секундах, если доступны необходимые метаданные. Если необходимые метаданные не указаны или отсутствуют, расстояние отображается в пикселях.
Аргумент -savedat может быть передан в случае, если необходимо сохранить файлы данных; название файла будет выведено в журнал. В качестве альтернативы, для указания названия файла, в котором будут сохранены данные, можно использовать опцию -filename= (Аргумент -filename= подразумевает **-savedat)
Создаёт профиль интенсивность между двумя точками на каждом изображении последовательности. После обязательного первого аргумента, указывающего название последовательности, которую необходимо обработать, остальные аргументы аналогичны аргументам команды profile. Если обрабатывается последовательность и желательно, что номер текущего изображения и общее количество изображений отображались в формате "Моя последовательность (1/5)", заголовок должен заканчиваться (), например, "Моя последовательность ()" и данные будут заполнены автоматически
В Siril есть несколько инструментов, которые помогут вам проанализировать изображение и оценить качество снимка. В частности, есть или нет оптические дефекты в вашей установке.
Первый инструмент, предлагаемый Siril, — это расчет наклона. Наклон сенсора возникает, когда сенсор не ортогонален плоскости изображения: для его устранения требуется вмешательство в оптическую систему. Вы можете выполнить эту функциональность двумя различными способами. Либо через графический интерфейс (в меню Инструменты ‣ Анализ изображений ‣ Показать наклон), либо через командную строку. Последний даже предлагает альтернативу, которая позволяет вычислить наклон по всей последовательности изображений для большей точности. Следующая команда:
Командная строка Siril
tilt [clear]
Вычисляет наклон сенсора как разницу в FWHM между наилучшим и наихудшим усечёнными средними значениями угла. Аргумент clear позволяет очистить диаграмму наклона
наклон, выраженный как разница между лучшим и худшим значением FWHM по 4 углам изображения, в скобках указан процент отклонения наклона (значение больше 10% указывает на проблему наклона)
аберрация, выраженная разницей в FWHM между звездами в центре и звездами по краям сенсора
Если количество обнаруженных звезд невелико (<200), параметры обнаружения динамической PSF позволяют улучшить результаты путем настройки порога / радиуса. Фактически, чем больше количество звезд используется при расчете, тем надежнее результат анализа.
Предупреждение
Чтобы результат был более качественным, предпочтительнее запустить эту команду на одиночном кадре, а не на результате стекирования. Поэтому идеальным вариантом будет использовать предварительно обработанное изображение (для цветных датчиков — просто дебайеризрванное). Более того, нарисованный четырехугольник имеет преувеличенные пропорции, чтобы быть более заметным на экране. Он не может точно соответствовать реальности.
Этот инструмент создает мозаику 3x3 из центра изображения, углов и краев. Это позволяет легко сравнивать форму звезд в разных частях изображения. Доступ к этой функции можно получить в меню Инструменты ‣ Анализ изображений ‣ Аберрации. Настройки этого инструмента можно изменить, чтобы скорректировать размер панелей и окна, в настройках.
Окно инспектора аберраций, показывающее аберрации, созданные оптической системой, в звездах, расположенных по краям.
Это также очень хороший индикатор того, содержит ли изображение градиент: различия в яркости становятся очень заметными.
Окно инспектора аберраций, показывающее разницу в яркости.
Командная строка Siril
inspector
Создаёт из текущего изображения мозаику из 9 изображений, отображающую углы и центр изображения для более тщательного изучения (только графический интерфейс)
Этот раздел знакомит вас со всеми утилитами, связанными с фотометрией, сначала объясняя принципы фотометрии, а затем то, как она используется в Siril.
Siril способен определять звёздную величину, а также её изменение. С её помощью можно изучать изменчивость определенных звезд, экзопланет или затмений. В конце процесса также строится кривая блеска.
Фотометрия — это наука об измерении света. Она занимается измерением потока или интенсивности света, излучаемого астрономическими объектами. В Siril фотометрия может использоваться для анализа кривой блеска переменных звёзд, транзитов экзопланет или затмений звёзд, а также для калибровки цвета в изображениях RGB.
В качестве метода используется апертурная фотометрия. Его основной принцип заключается в суммировании наблюдаемого потока в заданном от центра объекта радиусе, затем вычитании общего вклада фона неба в той же области (рассчитанного по кольцу между внутренним и внешним радиусами, исключая отклоняющиеся пиксели), оставляя только поток объекта чтобы рассчитать инструментальную звёздную величину. Это проиллюстрировано на следующих рисунках.
Значения этих настроек можно изменить в разделе Фотометрия настроек или с помощью команды setphot. Апертура должна содержать все пиксели измеряемого объекта, кольцо, напротив, не должно содержать ни одного из его пикселей. По умолчанию апертура настраивается на цель с использованием удвоенного значения FWHM динамической PSF, но размер кольца фиксирован. Эти значения следует настраивать для заданного разрешения и тщательно проверять.
Примечание
Нижеследующий текст представляет собой сокращенную и измененную копию превосходной документации по программному обеспечению MuniPack, подготовленной Дэвидом Мотлом и выпущенной под лицензией GNU Free Documentation License, исходные тексты которой доступны здесь.
Измерение звёздной величины объекта
Сумма S пикселей в небольшой области A вокруг объекта представляет собой сумму чистой интенсивности объекта I и интенсивности фона \(B\cdot A\):
Значения S и B получены из исходного кадра, площадь A определяется как площадь круга радиусом r, где r — размер апертуры в пикселях. Тогда легко вычислить чистую интенсивность I объекта в ADU:
Предположив, что суммарная интенсивность I пропорциональна наблюдаемому потоку F, мы можем определить видимую величину m объекта, используя закон Погсона:
(3)\[ m = -2.5 \log_{10}\left(\frac{I}{I_0}\right)\]
Оценка ошибки измерения
После того, как мы получим чистую инструментальную яркость объекта, мы попытаемся оценить ее стандартную ошибку. Прежде всего, мы вспомним несколько общих правил, которые применяются к стандартной ошибке и ее распространению. Это общее правило для распространения ошибки через функцию f неопределенного значения X:
Используя это общее правило, мы выводим два закона распространения ошибок. В первом случае неопределенное значение X умножается на константу a и сдвигается на постоянное смещение b. Этот закон можно использовать и в случае, когда происходит только умножение или только смещение.
(5)\[ \operatorname{Var}(aX + b) = a^2 \operatorname{Var}(X)\]
Второй закон определяет погрешность логарифма неопределенного значения X:
Обратите внимание, что функция log здесь является натуральным логарифмом, в то время как формула Погсона (см. выше) включает логарифм по основанию 10. Следующее уравнение помогает нам справиться с этой разницей:
Если у нас есть две некоррелированные неопределенные переменные X и Y, то дисперсия их суммы равна сумме их дисперсий, это уравнение известно как формула Бьенеме.
Из этой формулы мы также можем вывести стандартную ошибку выборочного среднего. Если у нас есть N наблюдений случайной величины X с оценкой стандартной ошибки совокупности s на основе выборки, то стандартная ошибка выборочного среднего оценки среднего значения совокупности равна
Вооружившись этими знаниями, мы можем начать думать об оценке стандартной ошибки яркости объекта. Мы рассмотрим следующие три источника неопределенности: (1) случайный шум внутри апертуры звезды, который включает в себя тепловой шум детектора, шум считывания усилителя сигнала и аналого-цифрового преобразователя, (2) пуассоновскую статистику подсчета дискретных событий (фотонов, падающих на детектор), которые происходят в течение фиксированного периода времени, и (3) погрешность оценки среднего уровня неба.
Для оценки среднего уровня неба мы использовали надёжный алгоритм среднего. Он позволяет оценить его выборочную дисперсию \(\sigma_{pxl}^2\). Это дисперсия на основе пикселей, и поскольку мы просуммировали A пикселей в апертуре звезды, применяется формула Бьенеме, сумма S является суммой A некоррелированных случайных величин, каждая из которых имеет дисперсию \(\sigma_{pxl}^2\). Для дисперсии первого источника ошибки мы получаем:
Из статистики Пуассона мы можем вывести дисперсию, которая возникает из-за подсчета дискретных событий, фотонов, падающих на детектор, которые происходят в течение фиксированного периода времени, экспозиции. Нам снова понадобится использовать коэффициент усиления детектора (gain) p, чтобы преобразовать интенсивность из ADU в количество фотонов. Если измеренная чистая интенсивность объекта равна I, мы вычисляем среднее число фотонов \(\lambda\) как
Мы вывели уровень неба как выборочное среднее значение совокупности пикселей в кольце неба. Поскольку каждый пиксель в кольце имеет дисперсию \(\sigma_{pxl}^2\), дисперсия выборочного среднего равна
Обратите внимание, что в уравнении (2) уровень неба умножается на A, поэтому нам нужно умножить его дисперсию на \(A^2\) - см. уравнение (16). Теперь мы используем закон распространения ошибки для логарифма, принятого в соответствии с формулой закона Погсона.
The outer circle, defined by the outer radius (most often expressed in pixel).
The inner circle, defined by the inner radius (most often expressed in pixel).
These 2 circles define the annulus which is used to measure the background (that is the sky level + additionnal noise).
The aperture circle, defined by the aperture radius.
It can be expressed in pixel or as a ratio of the star FWHM (the automatic checkbox in the window).
This area is used to measure the star signal added to a backgroud signal.
These 3 radii can be set and tweaked individually from the GUI Preferences ‣Photometry tab.
Получает или устанавливает настройки фотометрии, используемые, главным образом, командой SEQPSF. Если указаны аргументы, то настройки обновляются. Ни один из аргументов не является обязательным, могут быть указаны любые. Значения по умолчанию отображаются в синтаксисе команды. После выполнения команды выводится текущая конфигурация.
Используется динамическое значение апертуры, если только её значение не установлено принудительно. В последнем случае используется значение aperture, указанное в настройках. При использовании динамической апертуры, радиус апертуры определяется указанным динамическим отношением («радиус/половина FWHM»).
Допустимые значения аргумента -dyn_ratio находятся в диапазоне [1.0, 5.0]. Значения за приделами этого диапазона будут автоматически установлены в фиксированное значение -aperture.
Усиление (gain) используется только если его значение недоступно из заголовка FITS
These radii settings apply to all aperture photometric processes: quick photometry and Light Curves.
Check them carfully.
Фотометрия выбранных вручную объектов на одиночном снимке
Кнопка Быстрая фотометрия расположена на панели инструментов и используется для выполнения фотометрии звезд. Как правило, это самый простой способ выполнить фотометрию.
Совет
Если звезда находится в между нескольких звезд и инструмент не может указать на нужную звезду, альтернативным решением является выделить область вокруг звезды, а затем щёлкнуть правой кнопкой мыши и выбрать PSF. Также может быть интересно узнать, что Ctrl-щелчок средней кнопкой мыши (или Cmd-щелчок средней кнопкой мыши на MacOS) выделяет область рекомендуемого размера для PSF/фотометрии (на основе настроенного внешнего радиуса).
Совет
При выполнении фотометрии на RGB изображении результаты фактически рассчитываются для зеленого слоя. Чтобы получить фотометрию для красного или синего слоя, необходимо работать на соответствующих каналах.
Командная строка Siril
psf [channel]
Выполняет PSF (функция рассеяния точки) для выбранной звезды и отображает результат. Для автономной работы, выделение (в пикселях) может быть указано с помощью BOXSELECT. Если передан аргумент channel, это позволяет выбрать канал, в котором будет проанализирована звезда. Он может не указываться для монохромных изображений или, при запуске из графического интерфейса, с одним из активных каналов в отображении
Нажмите на эту кнопку, чтобы изменить режим выбора области изображения, затем нажмите на звезду. Вычисляются фотометрические параметры и PSF (функция рассеяния точки) звезды, что дает множество деталей.
Для расчета PSF используются две модели, которые пользователь может выбрать в окне Динамическая PSF <Dynamic-PSF:Dynamic PSF> (:kbd:`Ctrl + F6).
Подгонка была выполнена с помощью функции Гаусса, поэтому никаких дополнительных параметров не требуется. Однако, если использовался метод Моффата, будет показан следующий результат:
PSF fit Result (Moffat, beta=2.9, monochrome channel):
Координаты центроида дают координаты центроида в пикселях. Однако, как и в примере выше, если на изображении была установлена астрометрия, Siril дает координаты в Системе мировых координат (WCS) (RA и Dec).
Полуширина (FWHM) возвращается в угловых секундах, если масштаб изображения известен (получен из его заголовка или из GUI Данные об изображении ‣ Информация), если не известен, то в пикселях. Округлость r также вычисляется как отношение \(\frac{\text{FWHMy}}{\text{FWHMx}}\).
Угол — угол поворота оси X относительно координат центроида. Лежит в диапазоне \([-90°,+90°]\).
Значение фона — это локальный фон в диапазоне \([0,1]\) для 32-битных изображений и \([0,65535]\) для 16-битных изображений. Это подобранное значение, а не фон, вычисленный в кольце апертурной фотометрии.
Макс. интенсивность также является подогнанным значением и представляет амплитуду. Это максимальное значение функции подгонки, расположенное в координатах центроида.
Блеск (относительный) указан с учетом погрешности, является результатом фотометрии. Однако, если по каким-либо причинам расчет не может быть выполнен (насыщенные пиксели или черные пиксели), указывается погрешность, равная 9.999. В этом случае фотометрия помечается как недопустимая, но значение звёздной величины всё равно указывается, хотя его следует использовать с осторожностью.
где I — чистая интенсивность, пропорциональная наблюдаемому потоку F, а N — сумма неопределенностей, выраженная в (18).
Для простоты понимания он связан с 6 уровнями качества:
Отлично (сигнал/шум > 40 дБ)
Хорошо (сигнал/шум > 25 дБ)
Удовлетворительно (сигнал/шум > 15 дБ)
Мало (сигнал/шум > 10 дБ)
Плохо (сигнал/шум > 0 дБ)
Н/Д
Последнее обозначение отображается, только если вычисление не удалось по той или иной причине.
Наконец, RMSE дает оценку качества подгонки. Чем ниже значение, тем лучше результат.
Когда изображение имеет астрономическое решение, кнопка Подробнее в нижней части окна ведет на страницу на сайте SIMBAD с информацией о выбранной звезде. Однако возможно, что страница не даст никакой дополнительной информации, если звезда отсутствует в базе данных SIMBAD.
Больше информации об анализируемой звезде. Нажмите на картинку, чтобы увеличить.
Также можно выполнить быструю фотометрию для последовательности. Обычно это делается для получения кривой блеска, как описано здесь. Чтобы это сделать, вы должны ** загрузить последовательность , выделить звезду, затем **щелкнуть правой кнопкой мыши на изображении.
Совет
В идеале последовательность должна быть выровнена без интерполяции, чтобы не изменять исходные данные. Например, используйте алгоритм Всё звёздное небо с включенной опцией Только сохранить преобразования в файл seq.
Примечание
Убедитесь, что внутренний и внешний радиусы фонового кольца подходят анализируемой звезде и последовательности. Некоторые изображения могут иметь гораздо большую FWHM, чем эталонное изображение, из-за условий неба или плохого отслеживания. Их можно изменить в настройках или с помощью команды setphot.
В конце процесса Siril автоматически откроет вкладку График, на которой будут показаны рассчитанные кривые. Можно щёлкнуть по нескольким звёздами, чтобы повторить вычисления, однако первая звезда сохраняет особый статус переменной, а остальные служат в качестве опорных. Это важно при расчёте кривой блеска.
В этом примере были проанализированы 3 звезды. Первая из них используется как переменная. Остальные являются опорными.
Рассчитанная звездная величина имеет смысл только в том случае, если ее сравнить с другими значениями на линейном изображении. Действительно, приведенное значение совершенно не соответствует истинной видимой величине звезды, оно не откалибровано и также называется относительной звёздной величиной.
Siril предоставляет инструменты, которые можно использовать для расчета приблизительной видимой звездной величины. Для этого необходимо знать звездную величину другой звезды, видимой на изображении, которая будет использоваться в качестве опорной. В настоящее время в качестве опорной можно использовать только одну звезду, отсюда и "приблизительная". Для большей точности используйте звезду того же цвета и величины, что и звезд(ы), которую вы хотите измерить, и её величина должна соответствовать фильтру, используемому для получения изображения. Каталоги содержат величины, рассчитанные с использованием фотометрических фильтров, которые, как правило, не используются любителями для получения хороших снимков, это добавляет еще одно приближение.
Проведите быструю фотометрию известной звезды, указанная относительная звездная величина равна -2.428. Можно узнать фактическую видимую звездную величину, нажав на кнопку Подробнее, как описано выше. Допустим, найденное значение равно 11.68 (убедитесь, что вы используете значение, соответствующее спектральному диапазону изображения).
После этого оставьте звезду выделенной, затем введите следующую команду в Siril
После этого все вычисления PSF будут возвращать откалиброванную видимую звёздную величину вместо видимой величины относительно значений ADU. Следует отметить, что для того, чтобы быть осмысленным, указанное значение звёздной величины должно совпадать с наблюдательным фильтром.
Чтобы сбросить константу звёздной величины см. UNSETMAG
Теперь все рассчитанные звездные величины должны иметь значения, близкие к их истинной видимой звездной величине. Однако это особенно верно для звезд, звездная величина которых имеет тот же порядок, что и у звезды, взятой в качестве опорной.
Окно результатов фотометрии с установленной истинной звездной величиной.
Чтобы сбросить вычисленное смещение, просто введите
Для последовательностей существуют такие же команды. Это seqsetmag и sequnsetmag. Они используются таким же образом, когда загружена последовательность.
Командная строка Siril
seqsetmag magnitude
Аналогична команде SETMAG, но для загруженной последовательности.
Эта команда применима только после выполнения команды SEQPSF или её графического аналога (выберете область вокруг звезды и запустите анализ PSF для последовательности, она появится на графиках).
Эта команда имеет ту же цель, что и SETMAG, но повторно вычисляет опорную звездную величину для каждого изображения последовательности, на котором была найдена опорная звезда.
При запуске команды, последняя проанализированная звезда будет рассматриваться как опорная. Отображение графика блеска перед вводом команды упрощает её понимание.
Чтобы сбросить смещение опорной звезды и звёздной величины, см. SEQUNSETMAG
In astronomy, a light curve is a graph of light intensity of a celestial object
as a function of time, typically with the magnitude of light received on the y
axis and with time on the x axis. Siril is able to generate such curves when
analysing stars.
Выбор переменной и опорной (звезды сравнения) звёзд возможен двумя способами: вручную или используя список звёзд, полученных с помощью плагина экзопланет N.I.N.A.
Start by switching to the Photometry Mode (click on ).
Select (right click) the variable star followed by the comparison stars you wants, as explained here.
Одна звезда — переменная (фиолетовая с буквой V), а 5 других используются в качестве опорных.
Предупреждение
Убедитесь, что вы не выбрали переменные звезды в качестве опорных. Если астрометрия сделана на вашем изображении, не стесняйтесь использовать запрос к SIMBAD, чтобы узнать больше о звездах.
One handy way to check your comparison star is to display the 3 variable catalogues related to variable stars: GCVS, AAVSO-VSX and GAIA-varisum.
You have to set your own parameter (limit magnitude), but as an example, here are the commands:
It is preferable to choose references whose magnitude is close to that of
the variable as explained later here.
После этого Siril автоматически загрузит вкладку График, как показано на рисунке ниже. Она показывает кривые FWHM, выраженные как функция от номера кадра.
Вкладка графика, показанная сразу после быстрой фотометрии последовательности.
What interests us in this part is to display the magnitude curves. Simply go to
the drop-down menu and change FHWM to Magnitude. The magnitude curves
of each analyzed star are then displayed. The submenus located in Photometry
of the Tools menu are also sensitive.
When satisfied with the comparison stars set, one can to save them for future
use in an Automated Light Curve
process or just keep a trace for further documentation.
In the Tools menu, select Photometry ‣ Create
Comparison Stars File....
The default Use the stars in the currently loaded image is selected.
The button Light Curve (ETD format), located in the menu
Tools ‣ Photometry ‣ Create Output
is dedicated to exoplanet transit data, producing a file in the format managed
by the ETD website.
Switching to magnitude view make the Photometry output button
sensitive.
Once the analysis is completed with a number of reference stars of at least 4
or 5 (the higher the number, the more accurate the result. However, a maximum
number of 19 stars is allowed). Siril will ask for a file name to save the data
in csv format, then the light curve will be displayed in a new window.
This is a 3-column file. The first 2 lines, starting with a "#", are comments.
Then, the first column is the precise time of observation in Julian Date format.
The second column is the magnitude of the variable (\(V\)), from which the
sum of the instrumental magnitudes of the comparison stars has been subtracted.
The third column represents magnitude uncertainties.
Located in the menu Tools ‣ Photometry ‣ Create Output,
the button, AAVSO file format, is dedicated to the AAVSO
extended file format for
variable stars. This opens a new dialog, which once completed, exports a csv file
that can be uploaded to the dedicated website.
AAVSO parameters dialog. This dialog is used to fill the AAVSO extended file.
More information are found at the AAVSO website
Теория
In Siril, the AAVSO file format exported uses the standardized magnitude
defined as:
where \(V_\text{ins}\) and \(C_\text{ins}\) are the instrumental
magnitude of the variable and the comparison, respectively, and \(C_\text{std}\)
is the chart magnitude for the comparison. You can specify \(C_\text{std}\)
value in the AAVSO parameters dialog, before export.
An example of photometry is given below with the star Rx And. This star has
great variability: its magnitude varies from 10.2 to 15.1 with a periodicity of
about 13 days. After processing in Siril, taking a comparison star and a check
star, we obtain the following AAVSO curve after data upload.
The new data are on the far right (taken on November 24 and 25, 2023) and are
shown in green.
A concrete example of variable star photometry (courtesy of H. Meunier).
In order to automate the process of exoplanet transit analysis, lists of
reference stars, also called comparison stars, could be obtained from star
catalogues, with the appropriate criteria: similar magnitude, similar color (to
not change their relative magnitude with atmospheric extinction at different
elevations), proximity.
Программа захвата изображений N.I.N.A имеет плагин для работы с экзопланетами, который показывает такие звёзды и позволяет сохранить их список в файле CSV, например csvfile:
In the Tools menu, Siril can load this file using
the Automated Light Curve... button. To use this, a few prerequisites
must be met:
the calibrated images sequence must be already loaded
опорное изображение последовательности должно иметь астрономическое решение, чтобы убедиться, что мы что мы правильно определили звезды по их экваториальным координатам J2000
Далее все происходит автоматически, и в конце процесса отображается кривая блеска для выбранных опорных звёзд.
It is also possible to automate or create the light curve remotely using the
light_curve command. As blind operation needs as much automation as
possible, the configuration of the background annulus radii can be automated
with the -autoring argument: it runs a star detection in the reference
image and multiplies the mean FWHM with a configurable factor to obtain the
inner and outer radii that should work with the sequence.
Анализирует несколько звёзд с помощью апертурной фотометрии в последовательности изображений и создаёт для одной из них кривую блеска, откалиброванную по другим. Первые координаты относятся к звезде, свет которой будет нанесен на график, остальные — к звёздам сравнения. Координаты задаются в пикселях, если используется -at=, или в градусах, если используется -wcs=.
В качестве альтернативы, список целевых и опорных звёзд может быть передан в формате списка звёзд для плагина экзопланет NINA при помощи опции -ninastars=. Siril проверит, что все опорные звёзды могут быть использованы, прежде чем приступить к их фактическому использованию. Файл с данными (light_curve.dat) будет создан в текущей директории и Siril, при возможности, преобразует результат в изображение PNG
Радиусы колец для апертурной фотометрии могут быть установлены в настройках, или указаны как коэффициент от FWHM опорного изображения, если передан аргумент -autoring. Эти размеры в 4,2 и 6,3 раза превышают FWHM для внутреннего и внешнего радиусов соответственно.
Чтобы аналогичным образом установить размер радиуса апертуры, см. команду setphot.
If you are not a NINA user, or you wish to build your own file and then use the
Automated light curve feature
, since Siril-1.3 you can generate a list of comparison stars using the new Siril tool.
This feature can be accessed via the Tools menu,
Photometry ‣ Create Comparison Stars File..., once the current
displayed image of the loaded sequence has been plate solved.
The Create Comparison Stars File... feature in the Tools
menu.
A prerequisite is to load a representative, plate solved, image of the sequence.
The Find comparison stars from catalogue request is mandatory in the use case.
The first field must be the variable star name you plan to get the light
curve of.
The check button Narrow field of view enables to select a circle centered
on the image.
The second field is de delta_Vmag value.
This is the maximum discrepancy from the target V magnitude (0.0 <
delta_Vmag < 6.0). Default value is set to 3.0.
The third field is the delta_BV value.
This is the maximum discrepancy from the target BV index (0.0 < delta_BV < 0.7).
Default value is set to 0.5.
The fourth field is the max_emag value.
This is the maximum allowed statistical error on Vamg (0.0 < max_emag < 0.1).
Default value is set to 0.03.
Then, you can choose the source of the comparison stars: from the APASS
catalogue or NOMAD catalogue.
These two criteria help you to get comparison stars matching the target
magnitude and color index.
The maximum number of comparison stars is internally set to 20.
After you click OK, a request is sent to the adequate server.
The answer is a list of stars, coming from the chosen catalogue, matching your
criteria, displayed in red in your image and saved as a CSV file compatible with
the NINA Exoplanet process.
Автоматически находит звёзды сравнения в поле загруженного изображения с астрономическим решением для фотометрического анализа кривой блеска звезды согласно
- the provided name of the star
- the field of view of the image, reduced to a diameter of its height if -narrow is passed, avoiding stars in the corners
- the chosen catalog (APASS by default), can be changed with -catalog={NOMAD|APASS}
- the difference in visual magnitude from the variable star, in the range [0, 6] with a default of 3, changed with -dvmag=
- the difference in color with the variable star, in the range [0.0, 0.7] of their B-V indices with a default of 0.5, changed with -dbv=
- the maximum allowed error on Vmag in the range [0.0, 0.1] with a default of 0.03, changed with -emag=.
При передаче необязательного опции -out=, этот список может быть сохранён как файл CSV, совместимый со списком звёзд сравнения NINA. Если указанное название является специальным значением auto, оно генерируется с использованием входящих параметров
-narrow limits the field of search to a circle inscribed and centred in
your image. This avoids choosing stars in a potentially distorted part of the
image.
View of the -narrow limited field of search. (the yellow circle is for
illustration purposes only)
Without the -narrow option, comparison stars are searched across the entire
picture. It can be useful in case of a poorly populated field of view.
[-catalog={nomad|apass}] allows you to choose between the NOMAD catalogue
and the APASS catalogue (by default).
Совет
The displayed names will be reduced to simple numbers, sorted by increasing
distance wrt. image center
These labels are only for information.
[-dvmag=3], [-dbv=0.5] and [-max_emag=0.03] stand respectively for
delta_Vmag, delta_BV and max_emag criteria as explained previously.
[-out=nina_file.csv] sets the name of the CSV file.
Совет
APASS stands for AAVSO Photometric All Sky Survey. Additional
information can be found here.
The AAVSO Photometric All-Sky Survey (APASS DR9) provides calibrated magnitudes
in the range 7.0 < Vmag < 17.0 for the entire sky, in the BVugriZsY
bandpasses.
Among the returned stars from either APASS or NOMAD, a few of them can be
identified as variable stars. If one (or more) of these stars are selected as
comparison stars, their flux variation can affect the final result for the
variable star under study.
So the automatic comparison star list feature of Siril is able to find these
outlier stars and discard them accordingly.
Three main catalogues can be used to detect variable stars:
The AAVSO VSX,
it lists all stars that have an entry in the AAVSO International Variable Star Index.
The GAIA varisum
GAIA varisum, a sub table of GAIA DR3 listing "potential variable objects".
These 3 catalogues can be used one by one or all at the same time during the
discarding process. But you have to be aware that each selected catalogue
results in an additional online request.
Basically, only the GAIA Varisum is selected. However, the user can still make
his own choice.
The used catalogues are managed with a Siril variable,
photometry.discard_var_catalogues according to the following table:
Discard table to properly set photometry.discard_var_catalogues.
Значение переменной
Binary
GCVS
AAVSO VSX
GAIA Varisum
0
0000
1
0001
✔
2
0010
✔
3
0011
✔
✔
4
0100
✔
5
0101
✔
✔
6
0110
✔
✔
7
0111
✔
✔
✔
(It can be seen in the previous table that the variable can be written in binary
format, with bit#0 as GCVS, bit#1 as VSX and bit#2 as GAIA-Varisum).
One can read this variable with the command:
get photometry.discard_var_catalogues
One can assign another value to the variable with the command:
set photometry.discard_var_catalogues=4
Например, с помощью команды:
set photometry.discard_var_catalogues=7
You will have the 3 catalogues checked and the consol will display:
Contacting server
-> 5 variable stars found within the image from AAVSO Variable stars
Contacting server
-> 1 variable stars found within the image from GCVS
Contacting server
-> 8 variable stars found within the image from Gaia DR3 Variability
В Siril есть вкладка, отображающая графики на основе данных, полученных в ходе выравнивания или других вычислений. Эта вкладка очень мощная и позволяет легко сортировать изображения и выполнять их анализ. На вкладку График можно перейти с помощью клавиатурной комбинации F5.
Для улучшения ручной сортировки кадров после регистрации, на вкладку График были добавлены возможности для построения графиков. По окончании регистрации последовательности (или при загрузке последовательности, имеющей данные регистрации) с помощью выпадающего списка возможно указать параметры для построения графиков и сортировки имеющихся данных.
Вкладка График после завершения регистрации всего звёздного неба.
Вы можете также построить график одного параметра по отношению к другому. В выпадающем списке доступны:
FWHM: Полная ширина на уровне половины высоты (полуширина), один из наиболее частых критериев для оценки изображения глубокого неба.
Округлость: Округлость r вычисляется как соотношение \(\frac{\text{FWHMy}}{\text{FWHMx}}\).
wFWHM: Это улучшение простой FWHM. Значение FWHM взвешивается по количеству звёзд на изображении. При одинаковом измерении FWHM, изображение с бо́льшим числом звёзд будут иметь лучшую wFHWM, чем изображение с меньшим числом звёзд. Это позволяет исключить гораздо менее информативные изображения, сравнивая количество обнаруженных звёзд с таковым на опорном изображении.
Фон: Среднее значение фона неба.
Кол-во звёзд: Количество звёзд, использованных для регистрации.
Позиция по X: сдвиг по оси X относительно опорного изображения.
Позиция по Y: сдвиг по оси Y относительно опорного изображения.
Качество: Это число в диапазоне [0, 1], которое определяет качество изображений, обработанных любым алгоритмом регистрации планет.
Значения округлости против FWHM отображаются в виде диаграммы рассеяния. Наведите курсор на различные точки данных, чтобы увидеть значения X и Y вместе с соответствующим номером кадра.
Различные виды графиков, полученные с использованием одного и того же набора изображений.
Щелкните по одной из точек данных, чтобы исключить кадр или открыть его. Последний вариант загрузит изображение и откроет окно Список кадров. Параметр, выбранный для значений Y, отображается в последнем столбце окна Список кадров, который затем можно использовать для сортировки, просмотра и выбора или отмены выбора кадров в последовательности.
Щелкните правой кнопкой мыши по точке данных, чтобы исключить или загрузить в предварительный просмотр соответствующий ей кадр
Вы также можете массово выбирать/отменять выбор нескольких точек данных, рисуя область выделения на графике. Информация в верхней части области выделения указывает количество выбранных точек, а также граничные значения в выбранной области. Вы можете изменить форму выделения точно так же, как если бы вы делали это с нарисованным выделением в режиме просмотра изображения. После того, как вы будете удовлетворены своим выбором, при щелчке правой кнопкой мыши отобразится меню, позволяющее сохранить или исключить точки, или изменить масштаб выделения.
Щелкните правой кнопкой мыши по выделенному фрагменту, чтобы выбрать/отменить выбор или увеличить масштаб
Чтобы дополнить сортировку и фильтрацию кадров в последовательности, вы также можете выполнить PSF по звезде для всей последовательности. Процедура подробно описана на странице посвященной :ref: фотометрии <photometry/quickphotometry:Quick photometry on sequences>. После этого пункт "фотометрия" в первом раскрывающемся списке становится активным и выбирается автоматически. В другом раскрывающемся списке содержатся следующие пункты:
FWHM: Полная ширина на половине высоты, как определено выше.
Округлость: Округлость r вычисляется как соотношение \(\frac{\text{FWHMy}}{\text{FWHMx}}\).
Амплитуда: максимальное значение подобранной функции, расположенное в координатах центра тяжести.
Звездная величина: Относительная звездная величина анализируемой звезды.
Фон: Среднее значение фона неба, полученное в внутри окружности.
Позиция по X: сдвиг по оси X относительно опорного изображения.
Позиция по Y: сдвиг по оси Y относительно опорного изображения.
SNR: Оценка отношения сигнал/шум.
В фотометрии, в отличие от регистрации, невозможно изменить ось X. Можно использовать только количество изображений (или юлианский день).
Кнопка Очистить графики совмещает меню Очистить все and Очистить последнюю, позволяющие очистить все фотометрические кривые или только последнюю из построенных.
Начиная с версии Siril 1.4, многие опции были перенесены в меню Инструменты, расположенное справа от меню Обработка. Это меню будет подробно описано в разделе Фотометрия .
Нажав на кнопку на кнопку Результат можно создать несколько итоговых файлов:
Опция Показать данные на графике Siril позволяет отобразить всё, что показано на вкладке «График» в новом окне с графиком Siril.
Кнопка Экспорт в CSV экспортирует отображаемый график в файл CSV.
Кнопка Отображение используется для изменения единиц измерения по осям. В зависимости от доступных данных, в выпадающем меню расположены несколько кнопок:
Если известен масштаб изображений, флажок угловые секунды позволяет переключить показ FWHM в угловых секундах вместо пикселей.
Только в случае фотометрии (так что это не совсем общие настройки), также можно выбрать Юлианская дата в качестве единицы измерения по оси X.
Совет
Наведите курсор на слова «Наведите для показа легенды» чтобы появилось описание легенды графика.
Фиолетовая кривая: фактический график согласно селекторам X и Y.
Зелёная кривая: отсортированные значения в порядке уменьшения качества.
Окружность: значение опорного кадра.
Крест: значение загруженного в настоящий момент кадра.
This is a documentation for Siril's statistics, given by the graphical user
interface (GUI) from the menu Tools ‣ Image Analysis) then
selecting Statistics..., or using the
stat command. Note that when using the GUI, it is possible to draw a selection
in the loaded image and that when doing so, the statistics are computed on the
pixels of region.
Опция На канал CFA позволяет рассчитывать статистику для каждого канала R, G и B в CFA-изображении, даже если изображение не было дебайеризовано.
Совет
When a CFA image is loaded, the selection will be constrained to a minimum
size of 2x2 for Bayer images and 3x3 for X-Trans images so that there is at
least one pixel in each Bayer channel within the selection, to ensure that
it is possible to generate statistics.
Возвращает статистику текущего изображения. По умолчанию выводится базовая статистика; если передан аргумент main, то выводится расширенная статистика. При наличии выделения, выводится статистика для выделенной области. Если передан аргумент -cfa и изображение является изображением CFA, статистика выводится для каждого фильтра
Среднее арифметическое, также известное как среднее. Оно вычисляется путем деления суммы значений пикселей на количество пикселей в канале изображения.
Медиана — это значение, разделяющее верхнюю половину набора данных от нижней. Как правило, оно представляет собой значение фона астрономического изображения.
Так же известная как стандартное отклонение, обозначается \(\sigma\), это мера дисперсии значений пикселей изображения, основанная на квадратичных отклонениях от среднего. Значение сигмы для области изображения, содержащей только фон, будет представлять шум изображения.
This estimator is available by the GUI from the menu
Tools ‣ Image Analysis ‣ Noise estimation, and is also displayed
at the end of stacking.
Это показатель предполагаемого уровня шума фона изображения для пикселей, имеющих достаточно низкое значение, чтобы считаться фоновыми. Это итеративный процесс, основанный на k.сигма (коэффициент стандартного отклонения выше медианы), поэтому нет фиксированного порога для достаточно низкого уровня.
Командная строка Siril
bgnoise
Возвращает значение уровня фонового шума изображения, загруженного в память
Так же известное как `среднее абсолютное отклонение <https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5>`_или среднее абсолютное отклонение. Чтобы понять, что такое среднее отклонение, нужно понять, что такое термин абсолютное отклонение. Абсолютное отклонение — это расстояние между каждым значением в наборе данных и средним значением этого набора данных (в данном случае) или медианой (для Медианное абсолютного отклонения ниже). На основе всех этих абсолютных отклонений определяется среднее значение, и вычисляется среднее отклонение. Для упрощения, если стандартное отклонение — это квадрат отклонения от среднего значения, то это его линейная версия.
Медианное абсолютное отклонение — это надежная мера того, насколько разбросан набор данных. Абсолютное отклонение и стандартное отклонение также являются мерами дисперсии, но на них больше влияют чрезвычайно высокие или чрезвычайно низкие значения. Оно похоже на абсолютное отклонение, описанное выше, но измеряется относительно медианы, а не среднего значения.
Двухвесовая средняя дисперсия (BiWeighted MidVarianve) — это еще один инструмент для измерения дисперсии набора данных, который даже более устойчив к выбросам, чем другие, упомянутые выше. Он отбрасывает точки данных, расположенные слишком далеко от медианы, и вычисляет взвешенную дисперсию, вес которой уменьшается по мере удаления точек данных от медианы. Оценкой дисперсии является квадратный корень (обозначенный как :math: sqrt{B WMV}) из этого значения.
Эти параметры, часто в разговорной речи называемые масштабом и смещением, не отображаются в пользовательских интерфейсах, а вычисляются внутри Siril. Чтобы выровнять гистограммы разных изображений для нормализации перед наложением, необходимо вычислить, где они находятся с точки зрения уровня и насколько они широки с точки зрения разброса. В качестве достоверной оценку местоположения можно было бы использовать медиану, в то время как медианное абсолютное отклонение (MAD) или \(\sqrt{BWMV}\) могут использоваться для масштаба. Однако для обеспечения большей надежности измерениям пиксели, удаленные от медианы более чем на \(6\times \text{MAD}\), отбрасываются. В этом обрезанном наборе данных медиана и \(\sqrt{BWMV}\) пересчитываются и используются в качестве оценок местоположения и масштаба соответственно. Они вычисляются относительно эталонного изображения последовательности в Siril.
For years Siril has been a great tool for amateur astronomers. With its
capability to produce light curves, query online catalogues, run operations on
image sequences, and many other recent additions, it has also become a great
tool for scientific analysis. This page is a quick reference for scientists who
want to learn quickly about Siril, in form of a list of Q&A.
Siril's default file format is FITS files, containing either a single image or
several (see the FITS cubes question below). Siril has always been developed
with data accuracy in mind. Displaying an image can be done in various ways
without destroying input data.
Siril has many tools that can help scientific observations: star detection,
elaborate plate solving, registration of an image sequence using stars or using
astrometric solutions, aperture photometry with magnitude calibration using
catalogues, automated light curve creation, object lookup from online
catalogues (stars, galaxies, solar system objects). Many of those operations
can be done from the GUI or from text inputs (commands or scripts), some
operations produce comma-separated values (CSV) files for results, some can
produce graphs directly in Siril.
Siril follows an even/odd versioning system, e.g. 1.2.x was a stable series
whereas 1.3.x was a development series. For scientific use it is recommended to
install the latest version of the latest stable series: download links can be
found at siril.org. Beta versions, those distributed on
the website, can also be considered quite stable for general use.
The official forum is on pixls.us. If you
want to contact us privately you can send us a direct message there or on
gitlab. Our email addresses can also
be found in the AUTHORS file. If you speak French you can find us on Astrosurf
or Webastro. Feel free to reach out if you have specific needs for your
research.
Many algorithms in Siril rely on peer-reviewed published algorithms which can
be found in the documentation page of the features. We are testing Siril often,
sometimes comparing results with other tools, but we don't have the resources
to have a automated tests on all pieces of the software, so data comes with no
warranty. We know some things could be improved, for example error computation
on magnitudes, which depend on camera gain, not always available in the FITS
header.
Astrometric data is as good as any and supports the WCS FITS convention.
Richard, C., et al. (2024). Siril: An Advanced Tool for Astronomical Image Processing.
Journal of Open Source Software, 9(102), 7242.
https://doi.org/10.21105/joss.07242
BibTeX format:
@article{Richard2024,title={Siril: An Advanced Tool for Astronomical Image Processing},author={Richard, Cyril and others},journal={Journal of Open Source Software},volume={9},number={102},pages={7242},year={2024},publisher={The Open Journal},doi={10.21105/joss.07242}}
those that contain several images of the same size and format, we call those
FITS sequences or fitseq for short, and use them as an alternate file
representation of image sequences;
those that contain several images of changing properties, or even tables and
other data formats. Siril will only read image data, but is able to work on
each image of such FITS cubes if an option is
enabled in settings (named Allow FITS cubes to have images of different sizes
in FITS Options). Most sequence
operations will not be available on this kind of file.
Siril can also extract images from FITS cubes to individual FITS files or to other
formats if needed.
Siril can give you the FWHM of a single star if you draw a selection around it
in the GUI, then right click and select PSF, or for the stars in an area of the
image or the full image. You can also use the quick PSF button in
the main toolbar.
More generally: open your image and open the Dynamic PSF tool
(from the Tools menu). From there clicking on the first button will start the
star detection, within the selected area if you drew one. Clicking on the Sigma
icon will give mean values for all detected stars. See also the next question.
Siril's source extractor can be found in the GUI in the
Dynamic PSF tool, it is also available as the findstar
command. It is normally only able to detect stars and will struggle if two
stars are too close from each other, or if stars have asymmetrical or very
non-Gaussian shapes, but there are many settings that you could adjust to your
needs, including brightness, amplitude, roundness thresholds or star shape
(Gaussian or Moffat).
The GUI will display the found stars by clicking on the button on the left of
the lower bar, giving quick feedback on the detection settings. The GUI and the
command can produce a CSV file that can then be used to check extracted sources
in an image or in a sequence of images (command only).
The list of stars can be sorted by property, clicking on a row will highlight
the star in the image.
Siril has now a very high quality astrometric solver (plate solver) and tools
that interact with the astrometric solution. All is based on the FITS WCS
convention and on WCSLIB. Here is a list of tools related to astrometry:
Plate solving with local Gaia DR3 catalogue extract or with remote full Gaia
DR3, PPMXL or APASS.
Display stars from the catalogue on image, to have a visual feedback of the
accuracy of the astrometric solution, using the conesearch command.
Query online catalogues for an object using its
name and the image time.
Get centroid equatorial J2000 coordinates for any detected object.
Show a mark on image for user provided J2000 coordinates (show
command).
Align images on the celestial grid, possibly creating a mosaic (an image
bigger than the original).
Correct for geometrical aberration of images, using a master correction image
based on astrometry.
Siril can query IMCCE services to find a solar system
object coordinates and display the expected position on images. It can also
display the known solar system objects in an image. Observer location will be
required for those uses and can be configured with MPC codes in the settings.
See the annotations
documentation page.
Soon, Siril will be able to do synthetic tracking of known solar system
objects, making them appear on stacking if they are too faint to be seen on
single exposures.
But Siril is not made to process closeup view of planets with multi-point
stacking like other tools such as PlanetarySystemStacker (PSS) does.
Siril was not designed to handle spectrometry data. An
Создание профиля интенсивности tool that shows the graph of
pixel intensities can be used for preview of a spectrum. FITS tables
are not displayed in any way.
This section explains the different scripting and automation
methods available in Siril.
Совет
Python scripting was introduced in the 1.3.5 development version. It is
currently marked as EXPERIMENTAL. This doesn't mean it will eat your
data: the interface itself is robust and has been tested through
development: the present experimental nature of it is more to do with the
fact that we don't yet know what users will do with this new capability
and whether there may be issues or limitations that we have not foreseen,
perhaps due to the constraints of packaging or consistency across the
different operating systems.
Please try it out, either as a user by using scripts published on the
scripts repository, or as a script writer. We welcome all your feedback
and will aim to refine the interface throughout the 1.4 stable series and
1.5 development series.
If you want to debug your Python scripts at runtime, tick the box next to
Enable Python debug mode. A tutorial detailing the steps to attach
to the Python process is shown in Siril tutorial page.
Siril scripts are a list of commands, either from the graphical user interface
or from the command line interface. In general, commands that modify a single
image work on the currently loaded image, so the use of the load
command is required in scripts, and commands that work on a sequence of images
take the name of the sequence as argument. If files are not named in a way that
Siril detects as a sequence, the command convert will help.
Совет
The Space character is the delimiter between arguments. If you need
to have spaces inside the arguments you can use the quote or double quote,
just like in a shell.
Команды можно вводить в командной строке в нижней части главного окна Siril. Другой способ — поместить команды в файл и запустить его в виде сценария. Чтобы запустить сценарий из графического интерфейса пользователя, добавьте его в одну из директорий, указанных в Настройках на вкладке Сценарии, или в командной строке Siril, используя символ @ следующим образом:
@file_name
Some commands (calibrate, stack, and all
save commands) can use file names containing variables coming from the FITS
header. The format of the expression is explained in details
here and can be tested using the
parse command.
из командной строки Siril, используя ключевое слово @, за которым следует имя сценария в текущем рабочем каталоге,
из графического интерфейса пользователя используя меню Сценарии,
from the graphical user interface, using the Script Editor
dialog which can be used to write, save and execute your own scripts or to
open and edit an existing script file,
из командной строки операционной системы (приложение siril-cli), используя аргумент -s, за которым следует путь к сценарию (для дополнительной информации см. руководство).
When a script is running, the user interface becomes non-interactive with the
exception of the Stop button.
При установке Siril по умолчанию автоматически устанавливается ряд сценариев. Эти встроенные сценарии — официальные сценарии. Они разрабатываются командой разработчиков и будут гарантированно работать: они предназначены для определённых случаев использования.
You can, of course, write your own and tell
Siril where to find them:
Нажмите на значок Главное меню, а затем на Настройки (или нажмите Ctrl+P).
Нажмите на вкладку :guilabel: "Сценарии".
Скопируйте в новую строку путь к месту хранения ваших сценариев (при необходимости создайте директорию на своем компьютере или укажите на существующую).
Нажмите на значок Обновить чуть ниже.
Нажмите Применить.
У вас может быть столько пользовательских директорий, сколько вы пожелаете, просто добавьте их в список.
Если вы только что добавили новый скрипт в одну из директорий и хотите обновить меню, введите команду reloadscripts в командной строке или откройте раздел Настройки ‣ Сценарии и используйте значок Обновить. Это просканирует все директории из списка и найдет в них все файлы с расширением *.ssf.
Предупреждение
Настоятельно рекомендуется не хранить пользовательские скрипты в той же директории, что и встроенные скрипты Siril. В Windows они могут быть удалены при установке новой версии или помешать корректному удалению. В MacOS это сломает пакет и вообще не позволит использовать Siri.
Не волнуйтесь, поскольку список расположений сценариев хранится в вашем конфигурационном файле, вы обязательно их обнаружите при установке более новой версии.
Siril supports a git repository at https://gitlab.com/free-astro/siril-scripts
This is set to auto update at startup by default, so you will always have access
to the latest scripts (auto update can be disabled in preferences). To add scripts
from the repository to the Scripts menu, pick the ones you want from the list
available in Preferences ‣ Scripts or via the
Scripts -> Get Scripts menu entry. See below for full details of
the git repository.
Script files can also be run directly from the hard disk using the
Run Script Files... script menu entry. The filechooser shown by this
menu defaults to showing recently used scripts, but you can navigate to choose
scripts from anywhere accessible on the filesystem.
For different reasons, it is possible that the Scripts menu is empty.
This means that the scripts have not been found. If this is the case,
please use the following procedure.
Нажмите на значок Главное меню, а затем на Настройки.
Нажмите на вкладку :guilabel: "Сценарии".
Удалите все строки в поле Директории хранения сценариев, как показано на рисунке ниже.
If you are using the scripts repository, deselect the Fetch and update scripts...
check box, then reselect it and select the scripts you want to use.
Нажмите Применить.
Закрыть и перезапустить Siril.
Страница настроек сценариев. Сценарии загружаются по путям, указанным в разделе Директории хранения сценариев.
Все встроенные сценарии требуют соблюдения следующей файловой структуры:
Mono_Preprocessing.ssf: сценарий для предварительной обработки монохромных изображений, полученных с помощью DSLR или астрокамер. Использует кадры тока считывания (biases), кадры плоского поля (flats) и кадры темнового тока (darks), выравнивает и складывает изображения (lights). Чтобы использовать этот сценарий: поместите ваши файлы (RAW или FITs) в директории с именами lights, darks, flats и biases (в текущей рабочей директории Siril), затем запустите сценарий.
OSC_Preprocessing.ssf: такой же сценарий, что и выше, но для цветных (One-Shot Color (OSC) DSLR или астрокамер. Чтобы использовать этот сценарий: поместите ваши файлы (RAW или FITS) в директории с именами lights, darks, flats и biases (в текущей рабочей директории Siril), затем запустите сценарий.
OSC_Preprocessing_BayerDrizzle.ssf: same script as above but using Bayer
Drizzle to retrieve colors. To use it: put your files (RAW or FITS) in the
folders named lights, darks, flats and biases (in the Siril
default working folder), then run the script. A large amount of data is
strongly recommended to take advantage of the benefits of Bayer Drizzle and
avoid unsightly artifacts.
OSC_Extract_Ha.ssf: сценарий для предварительной обработки изображений, полученных с использованием цветных (OSC) DSLR или астрокамер, при использовании двухполосного или Ha фильтра. Этот скрипт извлекает Ha-слой цветного изображения. Чтобы использовать этот сценарий: поместите ваши файлы (RAW или FITs) в директории с именами lights, darks, flats и biases (в текущей рабочей директории Siril), затем запустите сценарий.
OSC_Extract_HaOIII.ssf: такой же сценарий, что и выше, но извлекает из цветного изображения Ha и OIII слои. Чтобы использовать этот сценарий: поместите ваши файлы (RAW или FITs) в директории с именами lights, darks, flats и biases (в текущей рабочей директории Siril), затем запустите сценарий. Вы также можете использовать меню Обработка, затем Совмещение в RGB и поместить результат Ha в красный канал, а результат OIII в зелёный и синий слои, чтобы получить изображение в палитре HOO.
Совет
Для владельцев SII или двухполосных SII-OIII фильтров применяются те же сценарии. Фактически, для цветного датчика невозможно увидеть разницу между Ha (656,3 нм) и SII (671,6 нм), оба из которых красные.
RGB_Composition.ssf: Этот сценарий, добавленный в версии 1.2, делает глобальное выравнивание монохромных изображений, кадрирует их до области, общей для всех изображений, и берет первые три изображения для создания цветного изображения. Входные изображения должны быть помещены в отдельную директорию и названы R.fit (или с настроенным расширением), G.fit и B.fit. В результате будет получен файл с названием rgb.fit. Обязательно удаляйте директорию process перед каждым запуском сценария.
Some .ssf script files contain instructions to edit them, for example the
Seestar_Preprocessing script instructs the user that if they find too many
images are discarded before stacking, they should "increase the value after
-filter-round= in the seqapplyreg command, line 47".
The scripts repository directory is not intended as a user-editable directory:
at each update it is forcibly reset to match the state of the remote, so files
saved in it are not safe. So how to make such changes?
Find the script in the list in Preferences->Scripts and double click
it. This will open it in the Script Editor so that you can make the necessary
changes and save it in a suitable location (one of the Scripts Storage Directories
set at the top of Preferences->Scripts is ideal, but it is recommended
to give it a different name so you can recognise it in your scripts menu).
Совет
You can also double click scripts in the list simply in order to examine the
code.
Язык сценариев
В начале работы над скриптами, благодаря вкладу пользователей, скрипты существовали в двух версиях (английской и французской). Когда был выпущен Siril 1.2.0, для простоты обслуживания было решено оставить только английские скрипты. Мы призываем пользователей распространять переводы официальных скриптов в своих сообществах, если они сочтут это необходимым.
Существует целая куча сценариев, которые не поставляются с установкой Siril. Однако мы создали для них репозиторий на gitlab. Каждый может зарегистрироваться и предложить новые сценарии. Мы примем их в зависимости от их актуальности: используемый язык должен быть английским.
Siril features git integration which means that it can download and synchronise
a local copy of the repository. You can enable this by selecting the
Enable use of the siril-scripts online repository check box in the
Scripts tab of the Preferences dialog.
Selecting the check box will fetch scripts from the repository and show a list
of the available scripts, categorised as either "Preprocessing" or "Processing"
scripts. As there may eventually be a substantial number of scripts in the
repository you need to select the ones you wish to have available in the
Scripts menu. Click the check box next to the name of each script
you wish to use and then press the Apply button.
The contents of any script can be viewed by double-clicking on its row in the
list. It is always useful to do this to check what requirements the script may
have in terms of pre-prepared directories. If you wish to modify a script,
you can also use this to copy the script and paste it into your favourite
text editor software. (You will need to save it in one of your local script
directories.)
When the scripts repository is enabled, Siril can synchronise the local repository
with the remote, either manually or automatically. If automatic updates are
selected, updating will take place at application startup. Manual update is also
available using the Manual update button. This will fetch any changes
from the online repository and will show a list of the commit messages describing
the changes, which the user must confirm to apply the update.
Если вы не хотите использовать интеграцию с git, вы можете использовать ссылку ниже для просмотра и загрузки сценариев вручную. В этом случае необходимо поместить скачанный скрипт в директорию, известную Siril: https://gitlab.com/free-astro/siril-scripts.
Предупреждение
Однако имейте в виду, что эти сценарии не обязательно поддерживаются пользователями, которые их загрузили, и могут быть неактуальными. Тем не менее, получайте удовольствие.
Файл сценария — это простой текстовый файл с расширением *.ssf.
Writing a script is not difficult. It is a succession of calls to commands
that will be executed sequentially. Each command must be executed without
returning an error, otherwise the script stops. It is therefore strongly
recommended to use the list of commands to know the
syntax and the number of parameters needed. Also, some commands are not
scriptable and are indicated with the icon. It can also be
useful to test each script line in the Siril command line. You may wish to read
the provided scripts or view (or even modify) scripts from the repository as
examples.
Each script should contain a comment header containing information about the
script. An example of this is provided below.
############################################
#
# Script for Siril 1.0
# July 2020
# (C) Cyril Richard
# Mono_Preprocessing_WithoutDark v1.0
#
########### PREPROCESSING SCRIPT ###########
#
# Script for mono camera preprocessing
#
# Needs 3 sets of RAW images in the working
# directory, within 4 directories:
# biases/
# flats/
# lights/
#
############################################
Below the comment header the first command should be requires. This specifies
the minimum version of Siril required to use the script. For example:
requires 0.99.4
After this you can start the actual script. Commands go on a line of their own,
and you can comment your script using lines starting with #.
Each new script created in this way should be placed in a
user-defined folder for Siril to
find them. If you believe your script is of benefit to the wider Siril
community you may submit it to the script repository. Instructions on doing
so are found in the repository README.
New to Siril 1.4, it is possible to write more advanced scripts using python.
This page is a documentation for script developers. If you want more
information about what scripts are available as a user, see
the list of scripts.
Совет
Python scripting is still EXPERIMENTAL and the API is expected to
become more advanced during the 1.5 development cycle.
In its current form, python scripting allows you to:
Execute any siril command with the added benefit of using a proper programming
language so that variables passed to commands can be the result of
calculations.
Access key Siril variables and data structures to aid in scriptwriting.
Access python extensions.
Using the 1.4 scripting interface it is possible to write a plugin that
saves the current image, opens it using astropy and applies processing
techniques provided by astropy, then saves the result and reopens it as
the Siril main image.
The tk python extension can be used to create graphical user interfaces
for your scripts so that user input can be obtained directly.
Предупреждение
Run-time Dependencies
To support installation and configuration of
the siril python module and its dependencies, a Python venv ("virtual
environment") is configured.
Linux
This requires that there is a functional
Python installation on the system _including the pip and venv
modules. These are available by default as part of the flatpak and
appimage distributions, but you will need to install them yourself if
building Siril from source. On Debian-based systems you need the
python3-pip and python3-venv packages installed; the
installation requirements on other systems may vary.
Windows
If you have a Python installation in your system, the script will use that as
default. If you don't, don't panic. Siril installed through the official installer
also comes with a light-weight Python installation and all the required modules.
That is for the official releases.
If you build the development version from sources, you will need to have
Python installed in your system.
macOS
The necessary dependencies are included in the official MacOS package. We
do not provide support for homebrew building, but if you do build yourself on
Mac then you will need to ensure you have a functional system python
installation.
pySiril is a separate module, published by a separate development team: it is
an established product and is already used to implement important helper apps
such as Sirilic.
Philosophically, pySiril and the built-in Siril python module are quite different:
whereas the built-in module is intended to be called from an already-running Siril
to provide scripting functionality and spawns a python3 process to run the script,
pySiril is intended for buildin applications that need to call on Siril
functionality, and it spawns a Siril process from within its host Python app.
These use cases are quite different, and there is no plan to merge the two modules.
Siril will take care of setting up a venv (new style python virtual environment)
and installing the module in it. In your script you import it using importsirilpy.
For convenience, you can abbreviate it as importsirilpyass.
To execute a Siril command, once the interface is established, you use the
siril.cmd() function. The command and its arguments are provided as a list,
for example:
siril.cmd("findstar","-maxstars=1000")
will run the findstar command, setting a limit of maximum 1000 stars.
The real power of using python to script commands is that you can use python
variables in the command using the formatted string notation:
x=1000siril.cmd("findstar",f"-maxstars={x}")
This is a simple example, but the ability to define parameters to pass to image
processing functions is a giant leap for Siril scripting compared with legacy
Siril script files.
Совет
Most Siril commands execute an action (register, stack, asinh etc).
These will function exactly the same when called from python.
However some simply print information to the Siril log, such as stat. Note
that these commands do not behave any differently when called from python using
siril.cmd("stat") or similar: they will still just print information to the
Siril log and do not return any useful data to the python script.
In order to access the values from python you need to use a method that gets
information about the image or sequence. So in this example, you would call
img=siril.get_image() and then the statistics would be available in
img.stats.
Предупреждение
The cmd() method does not have a return value but will raise an exception
if the command fails. This provides safe default behaviour - the script will
stop on failure of a command and print an exception error message to the
Siril console. If you want to handle failure more gracefully, for example by
showing an error messagebox, you will need to use an exception handler like this:
try:siril.cmd("requires","1.5.0")except:siril.error_messagebox("This script is not compatible with this version of Siril")quit()
For debug purposes you may wish to have commands return a bool. This can be
done using a simple wrapper such as the following:
defcmd_with_check(*args):try:siril.cmd(*args)exceptExceptionase:err_msg=' '.join(list(args))print(f'Exception caught: {e}',)print(f"Command failed with arguments: {err_msg} but continuing...")returnFalsereturnTrue
The siril module provides access to key Siril variables. The available data
is as follows:
Current Siril working directory
Siril user config directory (for storing script-specific config)
Current Siril image filename
Current Siril image:
Image pixel data
Image ICC profile (as bytes: you will need to use a module such as pillow
to convert this raw data to something useful)
Image metadata: all the metadata that Siril uses internally, including
relevant keywords and image statistics. The full FITS header and a string
containing keywords not recognized by Siril are also available.
Текущая последовательность Siril:
Sequence frame pixel data
Sequence metadata: all the metadata for the currently loaded sequence
is available, with the exception of some that relates to details of the
sequence format that are abstracted away by the python interface and some
relating to photometry series that is not implemented yet. This includes
statistics for every channel of every frame, registration data for channels
for which it is available of every frame and image quality data for every
frame.
Sequence frame ICC profiles are not available as these are not generally
relevant until after the sequence processing stage. If a convincing use case
emerges this could be revisited as an update to the API in the 1.5
development cycle.
Sequence frame HISTORY and FITS header strings are not available as they
are not considered useful for sequence operations, however the keywords
for a sequence frame are available using the siril.get_seq_frame()
method, which returns a FFit object with the keywords member populated. This
provides enough metadata to support any currently identified use case.
Star modelling data. When stars have been detected in an image the modelling
data is available as a list of star parameters for every detected star in
the image.
This data is stored in the key data structures FFit representing the Siril
fits data structure and Sequence representing the Siril sequence data
structure.
# Get the current imageimg=siril.get_image()# Get its dimensionssiril.log(f"Current image dimensions: {img.shape[1]} x {img.shape[0]}, {img.shape[2]} channels.")
Note that the image shape is stored in a typical python order: shape[0] = height,
shape[1] = width, shape[2] = channels. The width, height and channels are also
directly accessible using the properties img.width, img.height and
img.channels once img=get_image() has been called.
When the current image is obtained using siril.get_image(), the pixel
data can be accessed as a numpy array, allowing directly operating on pixel
data.
importsirilimportnumpyasnp# Set up the interface as above# ...# Try to get the current image, do something to it and update it in Sirilwithsiril.image_lock():img=siril.get_image()img.data[:]*=2siril.set_image_pixeldata(img.data)exceptExceptionase:raiseSirilException(f"Error changing pixel data: {e}")
We just accessed the pixel array and multiplied every pixel value by 2! Note
that we have to call the siril.set_image_pixeldata() function to update the
data back to Siril. Using siril.set_image_pixeldata() you can even update
the image to a different size or shape, or change from 16-bit unsigned data to
32-bit floating point or vice versa.
Совет
In order for siril.set_image_pixeldata() to succeed you must claim a
lock on the image. This ensures that nothing else can try to update the
image at the same time as you are doing, and also ensures that you can't
update the image while something else is already doing so. Note that the
example above uses the context handler siril.image_lock()before
getting the image from Siril, not just before updating it. This ensures the
image is locked throughout the time it is being processed until it is
updated back in Siril and the lock is finally released.
In a similar way you can access image statistics, FITS header information,
bit depth and so on. You can also access sequence information, for example
whether the n th image in a sequence is included, what its stats
are and so on.
You might have noticed we are using NumPy in the previous examples. This is
a dependency of the siril module and will be pulled in during initial setup
of the venv. Other python modules can be imported using the standard
import command, for example importastropyasap. However, for
ease of ensuring that dependencies are installed if a user doesn't already
have them, the module also provides the ensure_installed()
method. This is used as follows:
s.ensure_installed("astropy")importastropy
(or, for another example,
s.ensure_installed("tifffile")importtifffile
First a check is done to try importing the module (in this case, astropy or
tifffile). If the module is not available for import, an attempt is made to
install it. If the install fails, an exception is raised and the script will
halt.
Совет
If a module requires installation this may take a short time, however the
delay only occurs on the first run of a script. On subsequent runs the
model is already installed, so the ensure_installed() check is almost
instantaneous. A message in the log notifies the user that module installation
is occurring.
If the check succeeds, the module can be imported as normal using import.
Совет
All other non-core modules except for numpy should be checked withensure_installed()as this automates the installationprocess for users who don't already have the required modules installed.
Предупреждение
All Siril python scripts share the same venv. When importing modules, it
is important to avoid overconstraining the version requirements in order
to avoid clashes between the modules required by different scripts. Only
">=" version constraints should be used, never "==" or "<=".
The siril.FFit object type is not the
same as astropy.io.fits. Whereas
astropy.io.fits provides a general file-based interface to all FITS files,
siril.FFit provides an interface to the data structure Siril uses to
represent FITS images. The two are not directly interchangeable! Either
method can be used to obtain the pixel data as a NumPy array.
Whether you obtain the pixel data directly from the
siril.FFit object or using
astropy.io.fits, siril modules such as astropy, photutils and matplotlib
provide building blocks for a huge range of image analysis including source
detection, image segmentation, source deblending and visualisation, and the
ecosystem of python modules provides limitless capability.
Note that the API is
very new. While we will try very hard to avoid script-breaking changes to the
API released with 1.4.0 throughout the stable 1.4 series, some parts of the
API may evolve during the 1.5 development cycle.
End users should take care to obtain scripts from reputable sources.
A few fundamentally important scripts are distributed as part of the core Siril package
and can be found installed in the system data directory. These are tested to the
same degree as the rest of Siril and the development team will treat bug reports
on these scripts in exactly the same way as bug reports on any other part of Siril.
1.4.0 introduces the Scripts repository. We try to keep a list of the scripts with a
short description here. Anyone may submit scripts to this repository by making an account on
gitlab and submitting a merge request. The Siril team will provide a basic level of
scrutiny that the scripts are not attempting to do anything malicious, but we do not
accept any responsibility for the correct functionality of scripts written by other
people and will not provide support for them - the author should be contacted directly.
Script authors may choose to distribute scripts independently, as has been done in
the past. This is fine: scripts can be downloaded and added to a script directory or
run via the script editor from anywhere on the filesystem. In this case the Siril
team have nothing at all to do with the scripts and cannot even assure you that they
will do no harm, so ensure you trust the author.
Siril does not support automatic verification of signed scripts. This is because script
signing can provide a false sense o security ("the script is signed so it can't do
anything bad"). This is false: all a script signature says is that the script was
signed by a particular person and hasn't been changed since. In other words, it
verifies the origin of a script, but says nothing about whether it functions correctly
or is safe. A signed and verified script could still destroy your data if that iswhat it is written to do!
In the current implementation of python scripting, the majority of scripts are distributed
through the centralised script repository in which case the origin is known and scripts
have been through a basic level of scrutiny by the development team prior to being merged.
Some scripts may be distributed through other channels and downloaded manually, and there
is nothing preventing an author providing a sha256sum or a .gpg signature for scripts
distributed in this way - you will just need to verify them manually after downloading.
Siril's python script system is quite complex: a lot goes on under the hood, and this is
all coordinated by clever use of a Python venv ("virtual environment") which ensures that
the python used by Siril is separated from the system Python installation and potentially
from other venvs that may be in use by other software. However there are a few things to
be aware of:
venvs are tied to a specific version of python. This means that if your system updates
from (e.g.) Python-3.12 to Python-3.13 the venv will no longer point to the right Python
program or the right bytecode libraries for compiled modules. When you upgrade to a newversion of Python you must reset the Siril venv.
script dependencies are controlled using pip and the pypi archive. This is very good but
not 100% foolproof, and in rare cases you may find a dependency issue has arisen that
causes a problem of some kind. If you find an unexplained problem with a script thatothers aren't experiencing, resetting the venv may solve it. (And if you find a
combination of scripts that can repeatably cause a dependency issue like this, please
report it as an issue on the siril-scripts gitlab site as it will help us to improve
advice to script authors.)
Resetting the venv is easy: click the Get Scripts menu item in the Scripts menu
and scroll down to the bottom. Here you will find a "Reset venv" button: clicking it will
reset the venv and create a new one. After doing this, the next time you run a script it
will need to reinstall its dependencies so the first startup will be a bit slower than ususal
(depending on network speed and whether any of the required modules are locally cached).
We welcome all script authors who wish to write scripts for Siril. However supporting
Siril, while fun, takes a lot of time and we have neither the time nor the desire to
support other people's work as well as the core Siril software. There are therefore
some guidelines to ensure that the division of responsibility is clear.
All scripts should feature the author's name or handle, as well as a means of
contact (website, YouTube channel, forum etc.) where they can be reached with
comments or bug reports. For authors publishing independently this is of course
guidance, however for authors wishing to publish their scripts via the siril-scripts
repository this is mandatory. Scripts will not be accepted unless these details
are included.
Only open-source scripts will be accepted in the Siril scripts repository.
Closed source scripts (including ones that feature a source code wrapper that calls
a closed source program) must be independently published.
Authors should also follow the script programming guidelines on the API page.
These guidelines ensure that scripts can be used by end-users with minimal
friction.
As a script author you can write whatever scripts you like for your own use. However
for scripts to be published to the siril-scripts repository we need to require some
coding standards in order to ensure that they work with the standard Siril packages
on each of the three supported operating systems. The requirements are:
Scripts should work with versions of Python >= 3.9. This version matches the oldest
Python version in our binary packages, and will be adjusted over time to match the
packages.
Scripts should be single-file scripts. The repository was originally designed for
legacy .SSF scripts and the assumption of one file per script remains. We understand
that it can be good for code readability to develop complex python programs by
splitting them into multiple files. This is fine when working locally, however the
multiple files would need to be combined into a single file for submission to the
scripts repository.
If you want to implement a GUI in your script you should use the pyQt6 toolkit.
pyQt6 uses the well known Qt framework and it has now been verified as installing
correctly from pypi on all the supported platforms. Qt6 is much faster than Tkinter
for scripts that themselves have to do significant graphics manipulation, such as
pan-and-zoom previews, and it has a nice GUI designer application available in
Qt Creator.
Предупреждение
tkinter is now deprecated: new Siril scripts should not use it and should be
written using pyQt6 instead. Although tkinter is a core Python module it is
outdated, very slow and has issues with Wayland desktops on Linux. tkinter scripts
will continue to work throughout the 1.4 stable series, but there is a
considerable amount of added complexity in the sirilpy code to support tkinter.
Since pyQt6 provides a much better alternative has now been confirmed to work on
all the platforms Siril supports, the tkinter support code (the tksiril and
tkfilebrowser submodules) will be removed during the 1.5 development cycle and will
be removed before 1.6.0.
Предупреждение
Scripts using GTK GUIs will not be accepted into the scripts repository.
This GUI framework requires substantial system dependencies. Although
Siril itself is coded in GTK, unfortunately the python gi packages required to
use it in python scripts are broken on Windows and we are unable to bundle them.
If you wish, you can install the dependencies yourself and write scripts using
GTK and they may work fine on your own machine, but this is not supported. We
will not provide help in getting the prebuilt packages to work with unsupported
packages; if you are determined to try this, you will likely need to build Siril
from source.
Avoid import version specifications that specify a package version using "<", "<="
or "==". These constraints will result in conflicts between scripts, which all
share the same venv. Specifying a package version using ">=" is fine. Remember to
use sirilpy.ensure_installed() before importing non-core python module
dependencies, to automate the process of installing them.
Avoid importing packages that require system packages (i.e. ones that cannot be
installed using python3-mpipinstall)
Ideally, check that your script imports will install on all three target operating
systems. If not then the development team will check them after submission, and
you will need to fix any issues that occur.
A list of "known good" packages that we have checked will import without problem, and
with all their dependencies, on all the target operating systems, is provided below:
astropy
astropy-healpix
astroquery
ccdproc
GaiaXPy
matplotlib
numpy
opencv-python
pandas
photutils
pillow
pyfftw
pygaia
pyQt6
scipy
tk
ttkthemes
Совет
For machine learning / AI scripts, onnxruntime is very strongly recommended. It is
cross-platform, it is hardware-agnostic and it falls back gracefully to CPU support if
a GPU or GPU system libraries are unavailable. The sirilpy.utility submodule
provides an ONNXHelper class to ensure the correct hardware- and OS-specific
version of onnxruntime is installed.
A variety of machine learning modules exist which can be used to write "AI" scripts.
However the state of support for heterogenous computing (i.e. GPU use) is patchy and
often requires system libraries such as CUDA or ROCm to be installed. The following
modules are regarded as key for GPU acceleration and either are supported with helper
classes or have helper classes in development.
onnxruntime - used in GraXpert and Riccardo's AberrationRemover.py script, this
package is available for all the target OSes. There are different backends to support
different GPUs, but in some cases these are fragile. A helper class ONNXHelper()
is available to help with identification and installation of the optimum package as
well as ensuring correct runtime fallback to CPU. Note that currently on Windows the
ONNXHelper will select the DirectML runtime for all supported GPUs. Even though in
theory the CUDA-based onnxruntime-gpu package might be a bit faster, it unfortunately
depends heavily on system libraries being installed and configured correctly and the
installation is considered too fragile to be reliable in the kind of automated
python environment used by Siril. If users wish to use it and are confident they can
get it to work on their system they can install it manually using
sirilpy.ensure_installed("onnxruntime-gpu") but this is not supported and related
issues will be closed.
torch - This is a heavyweight among ML frameworks and where GPU support was once
very much CUDA-based it is now broadening its coverage: support for NVidia and Apple
Silicon GPUs is good, and support for AMD GPUs (using ROCm) and Intel GPUs is in
development (ROCm is supposedly stable enough to use on Linux, not yet on Windows).
Unfortunately torch has some dependency issues (it is excessively strict about the
version of CuDNN it requires) which causes problems using it in the same venv as some
other modules (including jax - see below) that pull in the nvidia-cudnn package. A
TorchHelper() class is available which manages this by first installing torch,
then reinstalling it with the --no-deps flag, which prevents it complaining if another
package updates the dependencies to a higher version number. This is really ugly and
it's unfortunate that it's necessary, but it works. If you envisage using CUDA versions
of both torch and jax, it is better to install torch first and then jax.
jax - Not a dedicated ML framework as such but a means of offloading computation
to the GPU. jax provides a mostly numpy-compatible module called jax.numpy which can
greatly accelerate many mathematical array processing operations by offloading them
to the GPU and also provides functions for gradient computation that numpy does not.
Bearing in mind that the slow part of GPU processing is the data transfer between
system memory and GPU memory, jax provides a jit compiler to precompile its offloaded
workloads but it still requires careful algorithm design to keep data on the GPU for
as long as possible, only returning the final result. Jax has good GPU support on
Linux but only CPU support on Apple and Windows, although experimental Metal support
and Windows GPU support is in progress. This is therefore not recommended for actual
scripts at present, but is highlighted as an interesting framework to develop against
in the (hopefully) near future when its support broadens. A JaxHelper() class is
under development that will help with selection of the correct jax package to install
and testing to confirm it works properly.
Dependencies Note that both torch and jax use GPU library pypi packages, so
installation of them may pull in very large chains of dependencies - the full set of
NVIDIA packages (CUDA, CuDNN etc.) is around 1GB. So when using these in scripts be
sure to warn users that they may incur a large and potentially slow download on first
use!
The following modules require installation of system packages which cannot be automated
using pip, and therefore should not be directly used in Siril scripts:
gi (pygtk etc - requires system package installation)
Предупреждение
We cannot emphasise enough that such packages are not supported. If they work for
you locally, that's a lucky bonus for you. They generally won't work with any of
the prebuilt binary packages (AppImage, flatpak, Windows, MacOS). These kind of
packages are specifically not supported and we will not provide help with getting
them to work. All tickets relating to this kind of question will be closed as a
duplicate of #1527.
Yes, we know it's a shame. In fact we would have liked to use GTK as the toolkit for
writing sirilpy scripts, but unfortunately the binary wheel has been broken on
Windows for a long time and doesn't show any sign of being fixed. We can't release
core functionality that doesn't work on one of the target OSes.
It may still be possible to write projects that use these kind of packages, but you will
need to package them with their dependencies and distribute them independently of
Siril or the scripts repository, and the sirilpy module can still be used to achieve
integration with Siril. If you want to, you can provide a wrapper script that can be
distributed in the scripts repository and just initializes your main program. We will
not help with any of that. As stated above, use of these packages in Siril scripts is
not supported.
The python interface will happily run precompiled .pyc files. Siril is a Free and
Open-Source software, and we therefore do not encourage development of closed-source
scripts, however we don't forbid it either. Practically we can't, because even
stringent interpretations of the GNU Public License allow for writing an open source
shim that sits between Siril and a closed source application. Moreover we are in
favour of freedom, and while we choose to release Siril under the GPL to provide
freedom to our users, we also respect the freedom of developers to choose how they
release their own work.
There is some history here, too: Siril has since 1.2.0 provided a built-in interface
to Starnet, however Starnet was originally open source and only closed its doors
later on.
However, if an author chooses to release a Siril script as a closed-source .pyc then
they need to arrange all matters to do with distributing it: as we are unable to
inspect the code ourselves to perform even the most cursory checks, we cannot
host it in the Siril-scripts git repository. And of course, responsibility for
supporting such products is entirely a matter for the author - the Siril team will
offer no advice on such products.
Note that scripts must be compiled separately for each version of python: helloworld.py
would be compiled with python3-mcompileallhelloworld.py which would
generate helloworld.cpython-<version>.pyc, where <version> would be 312 for Python
3.12, 313 for Python 3.13 and so on depending on the version of python used to compile
the script. This is an inherent inconvenience to closed source scripts.
Siril contains a script editor, accessible via the Scripts menu. This provides
a feature rich code editor tailored for writing both Siril Script Files and
Python scripts. The theme (light / dark) of the script editor follows that set
in the main Preferences dialog. The main editor window is shown
below:
For most of the functionality shortcuts exist, which are as standardised as
possible.
New: begins a new file. If there is unsaved text in the buffer a confirmation
dialog will be presented to give the user a chance to save their previous
work.
Open: open a file from disk. If If there is unsaved text in the buffer a
confirmation dialog will be presented to give the user a chance to save their
previous work.
Recent files: provides quick access to open recent files.
Save: saves the current file with its existing filename. If the file is
not yet saved then this behaves in the same way as Save as, prompting for a
filename.
Save as: saves the current file, prompting for the filename to save it with.
Close: closes the file and the script editor window. If there is unsaved text
in the buffer a dialog will be presented to give the user a chance to save
their work.
Unsaved files are indicated by an asterisk (*) next to the filename in the
titlebar. When changes are saved, the asterisk will disappear.
The edit menu provides the following functionality:
Undo: undoes the most recent change in the script. The script editor has an
unlimited undo / redo buffer.
Redo: redoes the most recent undo in the script.
Cut: cuts the current selection to the clipboard. If no selection is made, the
entire current line is cut.
Copy: copies the current selection to the clipboard.
Paste: pastes the current clipboard content to the cursor position.
Find: Presents the Find overlay which provides an active search
capability. The editor will scroll to the first occurrence of the search term
as you type. All occurrences are highlighted in the editor view and in the
minimap, if enabled.
The script menu provides the following functionality:
Run: runs the current script. Note that this obeys the current script type
selection (Siril Script File / Python Script) and this must be correct for the
script you are editing. The script type is automatically set based on the
file extension when loading a file, but you must set it here if you have not
yet saved your script. At startup it defaults to Python Script. Note that
owing to a shortcut clash in some desktop environments, as well as the listed
F5, Ctrl-R also works to run the current script.
Python scripts: sets the current script mode to Python scripts. This affects
the syntax highlighting as well as the manner in which the script is run.
Siril Script Files: sets the current script mode to Siril Script Files. This
affects the syntax highlighting as well as the manner in which the script is
run.
Enable test arguments: Shows an entry below the main script view. This can
be used to enter arguments that will be passed to the script when run from the
editor. Python scripts can take arguments to set parameters: this provides an
alternative to using a GUI to set parameters. Even if a GUI is provided in a
script, the ability to pass arguments means that it can be used as a Siril
command via the pyscript command, and can therefore itself be used from
within scripts.
Enable python debug mode: This toggle changes the behaviour of the sirilpy
module to support debugging. When the SirilInterface is created at the start of
the script, a modal information box will appear showing the process ID of the
python interpreter, which can be used to connect a debugger. Also, all
interface timeouts will be set to None, to allow for prolonged inspection of
the state of a running script.
Note that the test arguments have no effect on Siril Script File scripts, as these
have no ability to handle arguments.
The preferences menu provides the following options:
Highlight syntax: when enabled, Siril will use language-aware syntax
highlighting to highlight aspects of your script.
Enable right margin indicator: when enabled, Siril will show a right margin
indicator at a set column number. This is useful for helping to avoid
excessively long lines of code and maintain readability.
Right margin position: this will present a small dialog allowing the user to
set the column number of the right margin indicator discussed above. This
defaults to 80.
Enable bracket matching: when enabled, if the cursor is on a bracket the
editor will highlight the matching bracket. This can be useful to avoid
bracket mismatches.
Show line numbers: when enabled, line numbers are shown to the left of the
editor view. This can help with debugging and navigating code.
Show line markers: when enabled, line markers are shown to the left of the
editor view. No functionality currently uses line marks, but the ability to
view them is provided to support future developments.
Highlight current line: when enabled, the current line is highlighted in the
editor view.
Enable auto-indentation: when enabled, on pressing Enter the new line will
begin at the same level of indentation as the previous line.
Indent on tab: when enabled, pressing tab with a selection made that covers
multiple lines will cause all the selected lines to be indented a level, and
pressing shift-tab will cause them to be unindented a level.
Enable smart backspace: when enabled, pressing backspace with whitespace to
the left of the cursor will delete whitespace back to the previous indentation
level.
Smart Home / End: when enabled, Home and End will move the cursor to the first
or last non-whitespace character of the line respectively, rather than the
absolute first or last character of the line.
Show spaces and tabs: when selected, spaces and tabs will be shown with
visible characters (central dots for spaces, right-facing arrows for tab
characters).
Show newlines: when selected, newlines will be shown with visible characters
(down-and-left bent arrows).
Show minimap: when selected, a minimap will be shown to the side of the editor
view, supporting navigation and location of Find occurrences.
The help menu provides API help for both Siril Script Files and Python scripts.
Python API Reference: this opens the Python API page of the online manual in
the default browser.
Commands Reference: this opens the Commands Reference page of the online
manual in the default browser, which is essentially the API for Siril Script
Files.
This section highlights examples of python scripting. These are
simple examples intended to provide an introduction to the API,
and are explained with commentary.
For a more complete example of a script using a TKinter interface
to provide a full-featured interface to an external program, see
the CosmicClarity_denoise.py and CosmicClarity_sharpen.py scripts
which are available in the Siril scripts repository.
That's it. All siril python scripts should import the siril module: this
is automatically provided by Siril and does not require installation.
It allows connection to Siril through the SirilInterface class and
gives access to Siril methods: in this case the log() function does a
tiny bit of adjustment (adding a \n newline character) and calls the
internal function siril_log_message() to display the result in Siril's
log tab. Note that log() can take an optional argument specifying the
color: if you wanted "Hello, Siril!" to print in green you would change the
line to siril.log("Hello,Siril!",s.LogColor.GREEN).
Note that there is generally no need to call siril.disconnect() call,
as it is not really necessary: at the end of a script the method will be
called automatically in an onexit handler.
Also note that although you can initialize more than one SirilInterface()
object, a script can only connect via one at a time (though multiple scripts
can be connected to Siril simultaneously). There is generally no need to
create more than one SirilInterface().
This script shows how to save a temporary working copy, open it using
astropy.io.fits and modify it before saving the file and reopening it
in Siril.
importsirilpyassimporttempfileimportosimportgcimportnumpyasnp# numpy is a dependency of the siril module and# will always be available, so no need to use s.ensure_installed() heres.ensure_installed("astropy")importastropyfromastropy.ioimportfitssiril=s.SirilInterface()try:siril.connect():print("Connected successfully!")exceptSirilConnectionErrorase:print(f"Connection failed: {e}")quit()defhello_astropy():siril.log("Starting the process...")temp_filename=Nonetry:# Create a temporary filewithtempfile.NamedTemporaryFile(suffix=".fits",delete=False)astemp_file:temp_filename=temp_file.namesiril.log(f"Temporary file created: {temp_filename}")# Save current filesiril.cmd("save",temp_filename)siril.log(f"FITS file saved: {temp_filename}")# Open and modify FITS file using Astropywithfits.open(temp_filename,mode='update')asimage:siril.log("Opened FITS file with Astropy")# Modify the FITS file dataifisinstance(image[0].data,np.ndarray):image[0].data*=2siril.log("Modified FITS file data using Astropy (multiplied pixel values by 2)")image[0].header['COMMENT']="Modified by Astropy"siril.log("Added COMMENT to FITS file header")image.flush()# Ensure changes are writtensiril.log(f"Changes saved to FITS file: {temp_filename}")# Load back into Sirilsiril.cmd("load",temp_filename)siril.log(f"FITS file loaded: {temp_filename}")siril.log("Process completed successfully")exceptExceptionase:siril.log(f"An error occurred: {str(e)}")raise# Optionally re-raise if needed for further handlingfinally:# Clean up: delete the temporary fileiftemp_filenameandos.path.exists(temp_filename):try:os.remove(temp_filename)siril.log(f"Temporary file deleted: {temp_filename}")exceptOSErrorase:siril.log(f"Failed to delete temporary file: {str(e)}")# Garbage collection using gc.collect() is not required at the end# of a script as it gets run automatically just after the script# hands back to the interpreter# Run the functionif__name__=="__main__":hello_astropy()
Note the use of error handling in this example, using the try: and
except: blocks, and the cleanup in the finally: block.
The sirilpy python module offers direct access to a wide range of data.
importsirilpyassimportnumpyasnpsiril=s.SirilInterface()try:siril.connect():print("Connected successfully!")exceptSirilConnectionErrorase:print(f"Connection failed: {e}")quit()defsiril_module_example():try:# Lock the main image to prevent anything else altering it while we# are working on itwithsiril.image_lock():# Get the global fits objectfit=siril.get_image()siril.log(f"The value of the first pixel is: {fit.data.flat[0]}")fit.data[:]*=2siril.set_image_pixeldata(fit.data)siril.log(f"The value of the first pixel is now: {fit.data.flat[0]}")siril.log(f"Data type: {fit.data.dtype}")siril.log(f"Array shape: {fit.data.shape}")history=fit.historysiril.log(f"History: {history}")exceptAttributeErrorase:siril.log(f"Error: {e}")fit=None# Ensure the FFit object is released# Run the functionif__name__=="__main__":siril_module_example()
As before, we import the siril module: we now also import numpy,
which we will use to operate on the pixel data in the image loaded in Siril.
Note that there is no need to use the import_or_install() method, as
numpy is a dependency of the siril python module and will have been
preinstalled in the venv.
Next, we demonstrate various ways of interacting with the image data and
metadata:
# Get the global fits objectwithsiril.image_lock():fit=siril.get_image(True)# True indicates that we want the pixel data# not just the metadata. It is not required as this is the default, but# if you only want the metadata you can specify False here to save a bit# of memory.siril.log(f"The value of the first pixel is: {fit.data.flat[0]}")fit.data[:]*=2siril.set_image_pixeldata(fit.data)siril.log(f"The value of the first pixel is now: {fit.data.flat[0]}")
We get the current image using siril.get_image()
Совет
Note that siril.fits is not at all the same as astropy.io.fits.
While astropy.io.fits provides a general-purpose interface to all FITS
files, siril.fits provides an interface matching the fits data structure
used in Siril.
We then access the pixel data as a NumPy array and carry out operations on
this array to modify the image data. In this case we multiply all the pixel
values by 2.
After we have finished modifying the image, we call siril.set_image_pixeldata(fit.data)
to update the pixel data in Siril and trigger the Siril GUI to redraw to show
the updated image. Along the way we use siril.log() to highlight the change
to the first pixel.
Next we show how we can access the image history. This is provided as a
list of individual HISTORY FITS headers, so we join them together and add
newline characters before logging.
Full details of the API can be obtained by importing the Siril module and
calling the help(sirilpy) command, or more specifically by calling help()
for the particular part of the API you want to know about, e.g.
help(sirilpy.FFit).
As docstrings are not translatable, for translations of the API help you
will need to consult the API documentation page in this online manual.
This script shows how to use the siril.plot submodule to create
a simple plot with three series. The first is a simple x-y plot
with lines; the second is an x-y plot with error bars; and the
third is another simple x-y plot but shows use of numpy arrays
as well as how a SeriesData object can be created and added
directly to the PlotData object using add_series_obj.
importsirilpyassimportnumpyasnpsiril=s.SirilInterface()try:siril.connect()exceptSirilConnectionErrorase:print(f"Error: failed to connect to Siril: {e}")quit()# Series data using lists of floatsplot_data=s.PlotData("Example Plot","X Axis","Y Axis","example_plot_lists",True,datamin=[0.0,0.0])plot_data.add_series([1.0,2.0,3.0],[4.0,5.0,6.0],"Series 1 (Lists)")plot_data.add_series([4.0,5.0,6.0],[7.0,8.0,9.0],"Series 2 (Lists with errors)",s.PlotType.MARKS,[0.35,0.4,0.45],[0.35,0.4,0.45])x_arr=np.array([1.0,2.0,3.0,4.0],dtype=np.float32)y_arr=np.array([1.0,4.0,9.0,16.0],dtype=np.float32)series3=s.SeriesData(x_arr,y_arr,"Series 3 (np.arrays)")plot_data.add_series_obj(series3)# Serialize using listssiril.xy_plot(plot_data)
1# Template for Siril script with GUI only (no CLI) 2# SPDX-License-Identifier: # insert license identifier here 3# insert author's name and details here 4 5""" 6This script template provides an exemplar for use in constructing sirilpy 7scripts that provide a Tkinter GUI. Such scripts are only usable via the GUI. 8This is a simplified version without command-line argument support. 9""" 10 11# Core module imports 12importos 13importsys 14importmath 15importtkinterastk 16fromtkinterimportttk,filedialog,messagebox 17importnumpyasnp 18 19importsirilpyass 20fromsirilpyimporttksiril,SirilError 21s.ensure_installed("ttkthemes") 22# Add other calls to ensure_installed() here to ensure that any non-core 23# modules that are required by the script are installed and available 24# to be imported. 25 26# Note: pylint will complain that the following imports are not at the 27# top of the module. This deviation from python style is required in order 28# to run ensure_installed() to ensure that any non-core modules are 29# available before attempting to import them. 30fromttkthemesimportThemedTk 31# Add any additional imports here 32 33VERSION="1.0.0" 34 35deftemplate_algorithm(fit, 36example_float_var, 37example_bool_var, 38example_file_path_var): 39""" 40 Template processing function, insert your algorithm here. 41 This is the non-GUI part of the script and is entirely up to you to write. 42 Although presented in the template as a single method it may comprise 43 classes, methods and anything else. 44 """ 45print(f"Argument: {example_float_var}") 46print(f"Bool var: {example_bool_var}") 47print(f"File path: {example_file_path_var}") 48returnfit 49 50classTemplateScriptInterface: 51""" This class provides the GUI and related callbacks """ 52def__init__(self,root): 53self.root=root 54self.root.title(f"Template Script Interface - v{VERSION}") 55self.root.resizable(False,False) 56self.style=tksiril.standard_style() 57 58# Initialize Siril connection 59self.siril=s.SirilInterface() 60 61try: 62self.siril.connect() 63excepts.SirilConnectionError: 64self.siril.error_messagebox("Failed to connect to Siril") 65return 66 67# Initial checks: example - check if an image is loaded 68ifnotself.siril.is_image_loaded(): 69self.siril.error_messagebox("No image is loaded") 70return 71 72# Check if the version of Siril is high enough 73try: 74self.siril.cmd("requires","1.3.6") 75excepts.CommandError: 76return 77 78# Create the UI and match its theme to Siril 79self.create_widgets() 80tksiril.match_theme_to_siril(self.root,self.siril) 81 82# This function is used to round values to n decimal places, it is 83# always useful if you have sliders in your UI. 84def_floor_value(self,value,decimals=2): 85"""Floor a value to the specified number of decimal places""" 86factor=10**decimals 87returnmath.floor(value*factor)/factor 88 89# Here is an example function to round the displayed value of a 90# variable to 2 decimal places. You will need one of these for each 91# slider control you have. 92def_update_example_float_variable_display(self,*args):# pylint: disable=unused-argument 93"""Update the displayed template variable value with floor rounding""" 94value=self.example_float_var.get() 95rounded_value=self._floor_value(value) 96self.example_float_var_display_var.set(f"{rounded_value:.2f}") 97 98def_browse_file(self): 99"""100 Use a TK filedialog to browse for a file. Note that this callback is101 specific to the variable being updated; you might need to have several102 similar callbacks if you have more than one file selection widget.103 """104filename=filedialog.askopenfilename(105title="Select File",106initialdir=os.path.expanduser("~")107)108iffilename:109self.example_file_path_var.set(filename)110111defcreate_widgets(self):112"""Create the GUI's widgets, connect signals etc. """113# Main frame with no padding114main_frame=ttk.Frame(self.root)115main_frame.pack(fill=tk.BOTH,expand=True,padx=0,pady=0)116117# Title118title_label=ttk.Label(119main_frame,120text="Template Script",121style="Header.TLabel"122)123title_label.pack(pady=(0,20))124125# Parameters frame126params_frame=ttk.LabelFrame(main_frame,text="Parameters",padding=10)127params_frame.pack(fill=tk.X,padx=5,pady=5)128129############################################################130# Example control with an embedded variable in its own frame131############################################################132133template_variable_frame=ttk.Frame(params_frame)134template_variable_frame.pack(fill=tk.X,pady=5)135136ttk.Label(template_variable_frame,137text="Template example_float_var:").pack(side=tk.LEFT)138139# Initialize variables with default values140self.example_float_var=tk.DoubleVar(self.root,value=1.0)141self.example_float_var_display_var=tk.StringVar(self.root,value="1.00")142143# Add trace to update display when slider changes144self.example_float_var.trace_add("write",145self._update_example_float_variable_display)146147example_float_var_scale=ttk.Scale(148template_variable_frame,149from_=0.0,# set your range minimum here150to=1.0,# set your range maximum here151orient=tk.HORIZONTAL,# oriented horizontally152variable=self.example_float_var,# the tk variable the widget controls153length=200154)155example_float_var_scale.pack(side=tk.LEFT,padx=10,expand=True)156ttk.Label(157template_variable_frame,158textvariable=self.example_float_var_display_var,# var truncated to 2 d.p.159width=5,160style="Value.TLabel"161).pack(side=tk.LEFT)162tksiril.create_tooltip(example_float_var_scale,163"Adjusts the template variable.")164165###############################166# Add frame for other variables167###############################168options_frame=ttk.LabelFrame(main_frame,text="Options",padding=10)169options_frame.pack(fill=tk.X,padx=5,pady=10)170171##################172# Example checkbox173##################174self.example_bool_var=tk.BooleanVar(self.root,value=False)175example_checkbox=ttk.Checkbutton(176options_frame,177text="Example checkbox variable",178variable=self.example_bool_var,179style="TCheckbutton"180)181example_checkbox.pack(anchor=tk.W,pady=2)182tksiril.create_tooltip(example_checkbox,"Example checkbox.")183184##########################################################185# Example file selection186# using an entry and a callback that triggers a filedialog187# These file selector widgets have their own frame188##########################################################189file_frame=ttk.Frame(options_frame)190file_frame.pack(fill=tk.X,pady=5)191192ttk.Label(file_frame,text="File:").pack(side=tk.LEFT)193194self.example_file_path_var=tk.StringVar(self.root,value="")195example_file_entry=ttk.Entry(196file_frame,197textvariable=self.example_file_path_var,198width=40199)200example_file_entry.pack(side=tk.LEFT,padx=(5,5),expand=True)201202ttk.Button(203file_frame,204text="Browse",205command=self._browse_file,206style="TButton"207).pack(side=tk.LEFT)208209# The template shows examples of sliders and checkboxes210# however you can add other sorts of TKinter widgets here211212# Buttons frame213button_frame=ttk.Frame(main_frame)214button_frame.pack(pady=20)215216close_btn=ttk.Button(217button_frame,218text="Close",219command=self.close_dialog,220style="TButton"221)222close_btn.pack(side=tk.LEFT,padx=5)223tksiril.create_tooltip(close_btn,224"Close the interface and disconnect from Siril. "225"No changes will be made to the current image.")226227apply_btn=ttk.Button(228button_frame,229text="Apply",230command=self.apply_changes,231style="TButton"232)233apply_btn.pack(side=tk.LEFT,padx=5)234tksiril.create_tooltip(apply_btn,235"Apply the script function with the set parameters "236"to the current image. Changes can be undone using "237"Siril's undo function.")238239defapply_changes(self):240""" Get the necessary variables from the GUI and call the algorithm """241try:242# Get the thread243withself.siril.image_lock():244# Get values from the GUI widgets245example_float_var=self.example_float_var.get()246example_bool_var=self.example_bool_var.get()247example_file_path_var=self.example_file_path_var.get()248249# Get current image250fit=self.siril.get_image()251fit.ensure_data_type(np.float32)252253# Save original image for undo254self.siril.undo_save_state(f"Script algorithm: "255"arg={example_float_var:.2f}")256257# Apply script algorithm258# Your image processing functions go here259result=template_algorithm(fit,example_float_var,example_bool_var,260example_file_path_var)261262# Clip and update image data263fit.data[:]=np.clip(result,0,1)264self.siril.set_image_pixeldata(fit.data)265266exceptSirilErrorase:267messagebox.showerror("Error",str(e))268269defclose_dialog(self):270""" Close dialog """271self.root.quit()272self.root.destroy()273274defmain():275""" Main entry point """276try:277# Create the GUI interface278root=ThemedTk()279TemplateScriptInterface(root)280root.mainloop()281exceptSirilErrorase:282print(f"Error initializing script: {str(e)}",file=sys.stderr)283sys.exit(1)284285if__name__=="__main__":286main()287288language="ru"289locale_dirs=["../../translated/"]290gettext_compact="siril-documentation"
The second template is very similar, but provides an alternative interface using
a command-line argument vector. This allows the script to be called with arguments
using the pyscript Siril command: it is useful for scripting algorithms that you might wish to use as part of a bigger scripted workflow.
1# Template for Siril script with a GUI 2# SPDX-License-Identifier: # insert license identifier here 3# insert author's name and details here 4 5""" 6This script template provides an exemplar for use in constructing sirilpy 7scripts that provide a Tkinter GUI but which can also be called using an 8argument vector (i.e. so that they can be scripted for use with the Siril 9pyscript command). A similar template exists for pure GUI scripts, which 10is slightly simpler owing to not having to accommodate command-line 11arguments. 12""" 13 14# Core module imports 15importos 16importsys 17importmath 18importargparse 19importtkinterastk 20fromtkinterimportttk,filedialog,messagebox 21importnumpyasnp 22 23importsirilpyass 24fromsirilpyimporttksiril,SirilError 25s.ensure_installed("ttkthemes") 26# Add other calls to ensure_installed() here to ensure that any non-core 27# modules that are required by the script are installed and available 28# to be imported. 29 30# Note: pylint will complain that the following imports are not at the 31# top of the module. This deviation from python style is required in order 32# to run ensure_installed() to ensure that any non-core modules are 33# available before attempting to import them. 34fromttkthemesimportThemedTk 35# Add any additional imports here 36 37VERSION="1.0.0" 38 39deftemplate_algorithm(fit,example_float_var, 40example_bool_var, 41example_file_path_var): 42""" 43 Template processing function, insert your algorithm here. 44 This is the non-GUI part of the script and is entirely up to you to write. 45 Although presented in the template as a single method it may comprise 46 classes, methods and anything else. 47 """ 48print(f"Argument: {example_float_var}") 49print(f"Bool var: {example_bool_var}") 50print(f"Bool var: {example_file_path_var}") 51returnfit 52 53classTemplateScriptInterface: 54""" This class provides the GUI and related callbacks """ 55def__init__(self,root=None,cli_args=None): 56# If no CLI args, create a default namespace with defaults 57ifcli_argsisNone: 58parser=argparse.ArgumentParser() 59parser.add_argument("-example_float_var",type=float,default=1.0) 60parser.add_argument("-example_bool_var",type=bool,default=False) 61parser.add_argument("-example_file_path_var",type=str,default="") 62# add other arguments to match the ones in main() 63cli_args=parser.parse_args([]) 64 65self.cli_args=cli_args 66self.root=root 67 68ifroot: 69self.root.title(f"Template Script Interface - v{VERSION}") 70self.root.resizable(False,False) 71self.style=tksiril.standard_style() 72 73# Initialize Siril connection 74self.siril=s.SirilInterface() 75 76try: 77self.siril.connect() 78excepts.SirilConnectionError: 79ifroot: 80self.siril.error_messagebox("Failed to connect to Siril") 81else: 82print("Failed to connect to Siril") 83return 84 85# Initial checks: example - check if an image is loaded 86ifnotself.siril.is_image_loaded(): 87ifroot: 88self.siril.error_messagebox("No image is loaded") 89else: 90print("No image is loaded") 91return 92 93# Check if the version of Siril is high enough 94# 1.3.6 is the baseline when python scripting became available but in time 95# you may need to check for a higher version number in order to use newer 96# features. 97try: 98self.siril.cmd("requires","1.3.6") 99excepts.CommandError:100return101102# Create the UI and match its theme to Siril103ifroot:104self.create_widgets()105tksiril.match_theme_to_siril(self.root,self.siril)106107# Only apply changes if CLI arguments are non-default108ifcli_argsand(cli_args.example_float_var!=1.0):109self.apply_changes(from_cli=True)110111# This function is used to round values to n decimal places, it is112# always useful if you have sliders in your UI.113def_floor_value(self,value,decimals=2):114"""Floor a value to the specified number of decimal places"""115factor=10**decimals116returnmath.floor(value*factor)/factor117118# Here is an example function to round the displayed value of a119# variable to 2 decimal places. You will need one of these for each120# slider control you have.121122def_update_example_float_variable_display(self,*args):# pylint: disable=unused-argument123"""Update the displayed template variable value with floor rounding"""124value=self.example_float_var.get()125rounded_value=self._floor_value(value)126self.example_float_var_display_var.set(f"{rounded_value:.2f}")127128def_browse_file(self):129"""130 Use a TK filedialog to browse for a file. Note that this callback is131 specific to the variable being updated; you might need to have several132 similar callbacks if you have more than one file selection widget.133 """134filename=filedialog.askopenfilename(135title="Select File",136initialdir=os.path.expanduser("~")137)138iffilename:139self.example_file_path_var.set(filename)140141defcreate_widgets(self):142"""Create the GUI's widgets, connect signals etc. """143# Main frame with no padding144main_frame=ttk.Frame(self.root)145main_frame.pack(fill=tk.BOTH,expand=True,padx=0,pady=0)146147# Title148title_label=ttk.Label(149main_frame,150text="Template Script",151style="Header.TLabel"152)153title_label.pack(pady=(0,20))154155# Parameters frame156params_frame=ttk.LabelFrame(main_frame,text="Parameters",padding=10)157params_frame.pack(fill=tk.X,padx=5,pady=5)158159############################################################160# Example control with an embedded variable in its own frame161############################################################162163template_variable_frame=ttk.Frame(params_frame)164template_variable_frame.pack(fill=tk.X,pady=5)165166ttk.Label(template_variable_frame,167text="Example floting point parameter:").pack(side=tk.LEFT)168# This is the actual float variable169self.example_float_var=tk.DoubleVar(self.root,170value=self.cli_args.example_float_var)171# This is a string representation of the float var limited to 2 decimal places172# It is used in the scale label173self.example_float_var_display_var=tk.StringVar(174self.root,175value=f"{self._floor_value(self.cli_args.example_float_var):.2f}")176# Add trace to update display when slider changes177self.example_float_var.trace_add("write",178self._update_example_float_variable_display)179180example_float_var_scale=ttk.Scale(181template_variable_frame,182from_=0.0,# set your range minimum here183to=1.0,# set your range maximum here184orient=tk.HORIZONTAL,# oriented horizontally185variable=self.example_float_var,# the tk variable the widget controls186length=200187)188example_float_var_scale.pack(side=tk.LEFT,padx=10,expand=True)189ttk.Label(190template_variable_frame,191textvariable=self.example_float_var_display_var,# var truncated to 2 d.p.192width=5,193style="Value.TLabel"194).pack(side=tk.LEFT)195tksiril.create_tooltip(example_float_var_scale,196"Adjusts the template variable.")197198###############################199# Add frame for other variables200###############################201options_frame=ttk.LabelFrame(main_frame,text="Options",padding=10)202options_frame.pack(fill=tk.X,padx=5,pady=10)203204##################205# Example checkbox206##################207self.example_bool_var=tk.BooleanVar(self.root,208value=self.cli_args.example_bool_var209)210example_checkbox=ttk.Checkbutton(211options_frame,212text="Example checkbox variable",213variable=self.example_bool_var,214style="TCheckbutton"215)216example_checkbox.pack(anchor=tk.W,pady=2)217tksiril.create_tooltip(example_checkbox,"Example checkbox.")218219##########################################################220# Example file selection221# using an entry and a callback that triggers a filedialog222##########################################################223file_frame=ttk.Frame(options_frame)224file_frame.pack(fill=tk.X,pady=5)225226self.example_file_path_var=tk.StringVar(self.root,227value=self.cli_args.example_file_path_var)228example_file_entry=ttk.Entry(229file_frame,230textvariable=self.example_file_path_var,231width=40232)233example_file_entry.pack(side=tk.LEFT,padx=(0,5),expand=True)234235ttk.Button(236file_frame,237text="Browse",238command=self._browse_file,239style="TButton"240).pack(side=tk.LEFT)241242# The template shows examples of sliders and checkboxes243# however you can add other sorts of TKinter widgets here244245# Buttons frame246button_frame=ttk.Frame(main_frame)247button_frame.pack(pady=20)248249close_btn=ttk.Button(250button_frame,251text="Close",252command=self.close_dialog,253style="TButton"254)255close_btn.pack(side=tk.LEFT,padx=5)256tksiril.create_tooltip(close_btn,257"Close the interface and disconnect from Siril. No "258"changes will be made to the current image.")259260apply_btn=ttk.Button(261button_frame,262text="Apply",263command=self.apply_changes,264style="TButton"265)266apply_btn.pack(side=tk.LEFT,padx=5)267tksiril.create_tooltip(apply_btn,268"Apply the script function with the set parameters "269"to the current image. Changes can be undone using "270"Siril's undo function.")271272defapply_changes(self,from_cli=False):273"""274 Get the necessary variables from CLI args or the GUI and call the algorithm275 """276try:277# Get the thread278withself.siril.image_lock():279# Determine parameters: prefer CLI args if provided,280# else use GUI values281iffrom_cliandself.cli_args:282example_float_var=self.cli_args.example_float_var283example_bool_var=self.cli_args.example_bool_var284example_file_path_var=self.cli_args.example_file_path_var285else:286example_float_var=self.example_float_var.get()287example_bool_var=self.example_bool_var.get()288example_file_path_var=self.example_file_path_var.get()289290# Get current image291fit=self.siril.get_image()292fit.ensure_data_type(np.float32)293294# Save original image for undo295self.siril.undo_save_state(f"Script algorithm: "296"arg={example_float_var:.2f}")297298# Apply script algorithm299# Your image processing functions go here300result=template_algorithm(fit,example_float_var,301example_bool_var,302example_file_path_var)303304# Clip and update image data305fit.data[:]=np.clip(result,0,1)306self.siril.set_image_pixeldata(fit.data)307308iffrom_cli:309print("Script algorithm applied successfully.")310311exceptSirilErrorase:312iffrom_cli:313print(f"Error: {str(e)}")314else:315messagebox.showerror("Error",str(e))316317defclose_dialog(self):318""" Close dialog """319ifhasattr(self,'root'):320self.root.quit()321self.root.destroy()322323defmain():324""" Main entry point """325parser=argparse.ArgumentParser(description="Template python script")326parser.add_argument("-example_float_var",type=float,default=1.0,327help="Describe the variable here (0.0 to 1.0)")328parser.add_argument("-example_bool_var",type=bool,default=False,329help="Describe the variable here (bool, default is False)")330parser.add_argument("-example_file_path_var",type=str,default="",331help="Describe the variable here (example file path)")332333args=parser.parse_args()334335try:336ifany([args.example_float_var!=1.0,args.example_bool_varisnotFalse]):337# CLI mode338TemplateScriptInterface(cli_args=args)339else:340# GUI mode341root=ThemedTk()342TemplateScriptInterface(root)343root.mainloop()344exceptSirilErrorase:345print(f"Error initializing script: {str(e)}",file=sys.stderr)346sys.exit(1)347348if__name__=="__main__":349main()350351language="ru"352locale_dirs=["../../translated/"]353gettext_compact="siril-documentation"
This page is the first shot at getting a list of Python scripts that is
somewhat intelligible and searchable. It was done manually and has only a very
succinct description for each script, but will be improved with more words for
each with time.
Scripts that provide some tool for data analysis or other non-processing related tasks.
core/Siril_Catalog_Installer.py
Siril Catalog Installer
core/GPU_Manager.py
A GUI tool for managing ONNX, PyTorch, and JAX installations
utility/Selected_Star_Spectrum.py
Plots the Gaia DR3 continuous spectrum for any selected Gaia DR3 source
utility/RegistrationInspector.py
Displays the frames of selected images to check framing
utility/SuperStack.py
Performs superstacking (moving average)
utility/plot3D.py
Plots the current image or selection in 3D using matplotlib
utility/Sequence_Statistics_Analyzer.py
Analyze frames and plot key statistics
utility/Workflow_Companion.py
Deep Space Astro drag-and-drop workflow companion: queue, reorder and launch
scripts and Siril functions
utility/Workflow_Summarizer.py
Uses Google Gemini to summarize the Siril log into readable workflow documentation
utility/Blink_Browse_Filter_Sort.py
Image browser / filter / sorter with adaptive caching
utility/Svenesis-GradientAnalyzer.py
Gradient Analyzer
utility/Svenesis-MultipleHistogramViewer.py
Multiple Histogram Viewer
utility/Svenesis-CosmicDepth3D.py
CosmicDepth 3D
utility/Patch_Inpainting_Tool.py
Corrects defects and creates a star mask
utility/Svenesis-AnnotateImage.py
Full size image annotation
utility/AF_Multi_Crop.py
Multi-crop script
utility/Svenesis-BlinkComparator.py
Blink Comparator
utility/Satellite_Trail_Removal.py
Remove satellite trails
utility/Sequence_Deleter.py
GUI to delete sequences
utility/ImageWindow.py
Pseudo-MDI GUI for storing and swapping images
utility/Dwarfium_Archive_Selector.py
Prepare sessions from Dwarf telescopes
utility/AstroT3kFetch.py
Fetch and classify astrophotography frames
utility/Diffraction_Spike_Overlay.py
Add diffraction spikes
utility/Flat_On_Flat_Analyzer.py
Analyze flat field effectiveness
utility/Distortion3D.py
Plot 3D distortion map
utility/Autocrop.py
Autocrop stacked images
utility/Signature_Tool.py
Insert a signature/logo
utility/Galaxy_Annotations.py
Create galaxy annotations from Simbad queries
utility/Asteroid_Comet_Finder.py
Search for asteroids and comets
utility/AutoStretch_Preview.py
Interactive AutoStretch preview
utility/HertzsprungRussell.py
Create a Hertzsprung-Russell diagram
Предупреждение
Not all scripts are written by, or the responsibility of, the Siril development team!
With the introduction of Python scripting the power available to Siril script
writers has increased enormously. With great power comes great responsibility!
You, as the user, need to ensure you trust the authors of scripts you use.
1.4.0 introduces the script repository. Some of the scripts there have been
written by the Siril development team but others have been written by
third party contributors. Please read the Key Info section regarding guidance for
script authors, end users and the rules for the script repository.
A small number of basic script files come packaged with Siril, however you can add more
from the script repository. To do so, go to the Scripts menu -> Get Scripts.
This will open the Scripts tab of the Preferences dialog. Here, below
the list of local script directories, you will find a list of scripts in the repository.
The scripts can be sorted by category, script name, type or by whether or not they are
selected.
As there may eventually be a large number of scripts, not all of which will be relevant to
your workflow, you can configure the scripts you want to appear in the Scripts
menu. Simply select the checkbox next to them and click Apply to update the menu.
Совет
You don't need to select scripts to appear in the menu for them to be usable with the
pyscript command: this will search all the local script directories as well as the
whole of the local scripts repository.
Предупреждение
Script authors may submit updates. Occasionally, inevitably, there may be a bad update that
breaks the script for you. Bugs need to be reported to the script author: for scripts
written by the Siril team you can report them at the scripts GitLab repository
and for those written by third party contributors you should report them at the contact
details in the script.
The script can be opened in the script editor by double clicking on it in the list. This
is important for several reasons:
It allows you to find the details of the script author for bug reporting.
When you double click the script there is an option to revert to previous versions.
This means that if an update broke the script, you can open the previous version and save
a local copy in one of your local script folders for use until the script author fixes the
bad update. (The version saved in a local folder will take priority over a repository
version with the same name, but it will appear in a different subfolder in the menu with
the name of your local scripts folder.)
Siril может работать как с графическим интерфейсом пользователя (GUI), так и с интерфейсом командной строки (CLI), который даже не требует наличия дисплея. Он может обрабатывать изображения для других программ на удаленных или встроенных компьютерах, используя либо сценарии, либо генерируемые в реальном времени операции, называемые командами. Возможности автономного режима Siril на самом деле такие же, как и у доступных команд. Их более сотни, что позволяет автоматически выполнять предварительную обработку и фотометрический анализ.
Команды также можно использовать в графической пользовательском интерфейсе Siril, либо из встроенной командной строки в нижней части панели управления, либо с помощью сценариев. Сценарий — это просто текстовый файл, содержащий список команд. Перед тем, как двигаться дальше, рекомендуется прочитать страницу сценарии.
В автономном режиме команды можно выполнять либо путем передачи скрипта для запуска, либо с помощью параметра командной строки ``-s -``использовать в качестве сценария стандартный ввод программы и записывать в него команды, или используя другие именованные каналы.
Вот пример кода bash, вызывающего Siril в автономном режиме, который создает мастер-кадр шума считывания и возвращает значение уровня его шума на консоль красным цветом:
#!/bin/bash# bash commands to prepare filesinitdir=$(pwd)######## Set your own variables #############SCRIPTS_DIRECTORY=$initdirSIRIL_PATH=siril-cli
############################################## Removing process folder if exists #
rm-rf$SCRIPTS_DIRECTORY/process
echo"Running siril bash script in $initdir"output=$($SIRIL_PATH-d$SCRIPTS_DIRECTORY-s-<<ENDSIRIL############################################## Example of script that create a master-bias# and print in red the noise of the image#############################################requires 1.0.0# Convert Bias Frames to .fit filescd biasesconvert bias -out=../processcd ../process# Stack Bias Frames to bias_stacked.fitstack bias rej 3 3 -nonorm -out=master-biascd ../..closeENDSIRIL)log_line=$(echo"$output"|grep-o"log: Background noise value.*")echo-e"\e[31m$log_line\e[0m"echodoneSirilpart
Этот режим был введен в Siril 0.9.10. Команды можно отправлять через именованный канал, а журналы и статус можно получать через другой. Режим активируется с помощью аргумента командной строки -p.
Протокол довольно прост: Siril получает команды и выводит некоторые обновления. Только команды, помеченные как скриптовые, могут использоваться с этой системой. Всякий раз, когда закрывается канал ввода команд или дается команда отмены, выполняемая команда останавливается, как если бы была нажата кнопка остановки в графическом интерфейсе. Каналы называются siril_command.in и siril_command.out и доступны в /tmp в системах на базе Unix. Начиная с версии 1.2.0, пути каналов можно настраивать с помощью опций -r и -w, что позволяет внешним программам создавать их перед запуском Siril, обычно с помощью команды mkfifo. Также в 1.2.0 появилась новая команда ping, которая просто возвращает статус, указывающий, готов ли siril обработать команду или ещё занят.
Выходные данные Siril на канале представляют собой поток текста в одну строку, отформатированный следующим образом:
ready выводится при запуске, указывая на то, что siril готов обрабатывать команды
log:, за которым следует сообщение журнала
status: verb [subject], где verb (действие) может быть либо starting (запуск), successful (успешное завершение), error (произошла ошибка) или exit (выход) (сообщение о выходе пока не реализовано). Subject — это текущее имя команды, за исключением exit, которое указывает на то, что Siril пережил фатальную ошибку и должен выйти.
progress:value% является эквивалентом индикатора выполнения, он периодически отправляет проценты, а иногда и 0% в конце обработки в качестве информации о простое.
Синтаксический анализ - это способность разбирать информацию, то есть записывать строки на основе данных, содержащихся в заголовке FITS. Синтаксический анализ путей, введенный в Siril 1.2.0, направлен на придание большей гибкости сценариям за счет использования данных заголовка для записи/чтения имен файлов или путей. На данный момент это используется со следующими командами:
Для начала возьмем простой пример. Допустим, у вас есть файл с именем light_00001.fit, и вы хотите найти темновой мастер-кадр из вашей библиотеки мастер-кадров, который соответствует характеристикам указанного снимка. Поскольку вы выбрали соглашение для именования своих темновых мастер-кадров, вы знаете, что правильный темновой кадр должен называться примерно так:
с терминами в кавычках, замененными на значения, считанные из заголовка вашего снимка. Для экспозиции 120с, температуры -10°C, усиления/смещения 120/30 и биннинга 1, темновой мастер-кадр будет называться:
DARK_120s_G120_O30_T-10C_bin1.fit
Что ж, это именно то, что позволяет делать эта функция. Если вы укажете имя темновому кадру с описанными ниже соглашениями, вы можете сказать Siril открыть снимок, прочитать его заголовок и использовать его значения для записи такой строки (а затем использовать ее для калибровки вашего снимка).
Вы можете прочитать информацию, содержащуюся в заголовке, либо с помощью команды dumpheader, либо через меню Инструменты, Инструменты ‣ Заголовок FITS... Обычно вывод будет выглядеть следующим образом (некоторые ключи удалены для краткости):
SIMPLE = T / C# FITS
BITPIX = 16 /
NAXIS = 2 / Dimensionality
NAXIS1 = 4144 /
NAXIS2 = 2822 /
BZERO = 32768 /
EXTEND = T / Extensions are permitted
IMAGETYP= 'LIGHT' / Type of exposure
EXPOSURE= 120.0 / [s] Exposure duration
DATE-OBS= '2022-01-24T01:03:34.729' / Time of observation (UTC)
XBINNING= 1 / X axis binning factor
YBINNING= 1 / Y axis binning factor
GAIN = 120 / Sensor gain
OFFSET = 30 / Sensor gain offset
INSTRUME= 'ZWO ASI294MC Pro' / Imaging instrument name
SET-TEMP= -10.0 / [degC] CCD temperature setpoint
CCD-TEMP= -10.0 / [degC] CCD temperature
BAYERPAT= 'RGGB' / Sensor Bayer pattern
TELESCOP= '61EDPH' / Name of telescope
FILTER = 'DualBand' / Active filter name
OBJECT = 'Rosette Nebula '/ Name of the object of interest
OBJCTRA = '06 30 36' / [H M S] RA of imaged object
OBJCTDEC= '+04 58 51' / [D M S] Declination of imaged object
RA = 97.6960081674312 / [deg] RA of telescope
DEC = 4.99212765957446 / [deg] Declination of telescope
END
Тогда формат, используемый для указания имени темнового кадра, будет следующим:
Например, $EXPTIME:%d$ будет преобразовано в 120, если снимок был экспонирован в течение 120с. Но будет преобразовано в 120.0, если вы укажете $EXPTIME:%0.1f$, благодаря спецификатору формата %x.yf.
Таким образом, полное выражение написанное выше будет иметь вид:
В этом первом примере мы использовали преобразование только в целые числа с %d. Но есть и другие общепринятые средства форматирования, которые вы можете использовать:
%x.yf для десятичных дробей
%s для строк
Примечание
Для строк начальные и конечные пробелы всегда удаляются, а пробелы внутри строк заменяются знаками _. Пример: $OBJECT:%s$ будет преобразовано в Rosette_Nebula.
Вы также можете использовать некоторые менее традиционные спецификаторы формата:
Чтобы преобразовать дату из ключа заголовка дата-время, можно использовать специальный нестандартный спецификатор формата dm12, который означает дату минус 12 часов. В заголовке выше строка DATE-OBS имеет значение 2022-01-24T01:03:34.729. $DATE-OBS:dm12$ преобразуется в 2022-01-23, что является датой в начале ночи. Можно также использовать спецификатор формата dm0, который просто преобразует дату, не вычитая 12 часов.
Чтобы преобразовать дату-время из строки заголовка даты-времени, можно использовать нестандартный спецификатор формата dt, который просто означает дату-время. В заголовке выше строка DATE-OBS имеет значение 2022-01-24T01:03:34.729. $DATE-OBS:dt$ будет преобразована в 2022-01-24_01-03-34.
Для преобразования информации RA и DEC из строк заголовка OBJCTRA и OBJCTDEC можно использовать нестандартные спецификаторы формата ra и dec. В заголовке выше строки OBJCTRA и OBJCTDEC имеют значения 063036 и +045851 соответственно. $OBJCTRA:ra$_$OBJCTDEC:dec$ преобразуется в 06h30m36s_+04d58m51s.
Чтобы проанализировать информацию RA и DEC из строк заголовка RA и DEC, когда они в десятичном формате, вы можете использовать нестандартные спецификаторы формата ran и decn. В заголовке выше строки RA и DEC имеют значения 97.6960081674312 и 4.99212765957446 соответственно. $RA:ran$_$DEC:decn$ будет преобразовано в 06h30m47s_+04d59m32s.
Хорошим примером имени файла для результата сложения является приведённое далее выражение:
Чтобы проверить синтаксис, вы можете загрузить изображение и использовать команду parser, как указано ниже.
Командная строка Siril
parse str [-r]
Разбирает строку str, используя информацию из заголовка загруженного в данный момент изображения. Основная цель этой команды — отладка синтаксического анализа путей ключей заголовка, которые могут использоваться другими командами.
Опция -r указывает, что строку необходимо интерпретировать в режиме чтения. В этом режиме все подстановочные знаки (wildcards), определённые в строке str, используются для поиска файла, чьё название соответствует шаблону. В противном случае режимом по умолчанию является режим записи, и подстановочные знаки, при наличии, удаляются из анализируемой строки.
Если строка str начинается с префикса $def, он будет распознан как зарезервированное ключевое слово и будет выполнен его поиск в строках, сохранённых в gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib или gui_prepro.stack_default для $defdark, $defflat, $defbias или $defstack, соответственно.
Когда загружена последовательность, можно так же использовать ключевое слово $seqname$
В примере выше мы увидели, что можем найти имя темнового мастер-кадра на основе информации, содержащейся в заголовке калибруемого изображения. Это то, что называется в команде parse, режимчтения.
Это поведение в основном используется в сочетании с командой/вкладкой calibrate и для поиска мастер-файлов дисторсии. В параметре -dark= команды или в поле Dark графического интерфейса можно использовать описанную выше синтаксическую конструкцию. Таким образом, вы можете быть уверены, что соответствующий темновой кадр будет выбран для калибровки изображения. То же самое в равной степени применимо к Bias и Flat. Конечно, вы также можете указать полный (или относительный) путь к файлу. При этом путь также может содержать выражения подобного рода.
Например, для кадров плоского поля вы можете указать путь к библиотеке, которая может содержать информацию о фильтре или телескопе, поскольку у вас может быть несколько настроек. Такой путь:
и является допустимым значением для поля Мастер-кадрплоскогополя.
Конечно, если бы вы каждый раз при калибровке писали это как команду в своих скриптах или в поле Мастер-кадрплоскогополя графического пользовательского интерфейса, это могло бы стать немного утомительным. Вот тогда на помощь приходят зарезервированные ключевые слова. Для мастер-кадров есть 3 зарезервированных ключевых слова:
$defdark
$defflat
$defbias
$defdisto
Их значения указываются в разделеPreferences ‣ Pre-processing. Вы также можете задать их через скрипт с помощью команды set. Они соответствуют значениям gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib и gui_prepro.disto_lib.
Когда их значения установлены и вы решили использовать их в качестве значений по умолчанию, они будут отображаться в полях вкладки Калибровка. Вы также можете начать писать свои скрипты, используя эти ключевые слова. Шаг калибровки нового универсального скрипта для цветной камеры может выглядеть так:
Теперь, когда удобно иметь возможность находить файлы, было бы столь же полезно использовать этот синтаксис для сохранения ваших файлов при укладке изображений. Именно это и есть режимзаписи. Синтаксис можно использовать в поле -out= команд stack и stackall или в соответствующем поле в графическом интерфейсе пользователя.
Допустим, вы хотите написать общий скрипт, который подготавливает вам темновые мастер-кадры каждый раз, когда вы обновляете свою библиотеку. В строке stack скрипта вы можете написать:
stack dark rej 3 3 -nonorm -out=$defdark
Эта строка гарантирует, что полученный темновой мастер-кадр будет сохранен в правильном месте с правильным именем, который затем можно будет извлечь для калибровки вашего освещения.
Чтобы обеспечить еще большую гибкость при использовании команд stack, есть еще два зарезервированных ключевых слова:
$defstack
$sequencename$
Что касается настроек по умолчанию, $def stack настраивается в том же разделе Настроек или с помощью команды set в gui_prepro.stack_default. Например, давайте предположим, что вы определили $def stack как:
Начиная с Siril 1.2.0, имя по умолчанию для результата укладки определяется как $sequencename$stacked (знак _ добавляется, если его не указали). Это похоже на поведение в предыдущих версиях, за исключением того, что теперь явно указано, что используется разбор пути.
Возможно, вы хотите использовать какое-то ключевое значение в имени вашего мастера, которое не соответствует ключевому значению в кадрах, которые нужно откалибровать. На примере это может быть немного понятнее. Допустим, вы хотите, чтобы в названиях ваших мастер-кадров плоского поля был указан срок их хранения. Что-то вроде:
FLAT_1.32s_Halpha_G120_O30_bin1.fit
Если вы поместите поле $EXPTIME:%0.2f$ в $defflat, это приведет к ошибке на этапе калибровки. Просто потому, что ключ EXPTIME будет считываться из калибруемого изображения, а не из кадра плоского поля.
Чтобы справиться с этой ситуацией, можно использовать подстановочные знаки в выражениях для разбора:
Обратите внимание на символ *, расположенный непосредственно перед EXPTIME.
Этот символ означает следующее:
В режимезаписи, то есть, по сути, при укладке вашего мастер-кадра плоского поля, значение строки EXPOSURE будет использоваться для формирования имени сохраняемого файла. В приведенном выше примере вы бы тогда фактически сохранили в FLAT_1.32s_Halpha_G120_O30_bin1.fit.
В режимечтения, когда калибруются ваши изображения, значение строки EXPOSURE будет заменено на *. При поиске такого файла Siril извлечет все файлы, которые соответствуют шаблону FLAT_*_Halpha_G120_O30_bin1.fit. Надеюсь, ваше соглашение об именовании достаточно продумано, чтобы найти только один соответствующий файл и использовать его для калибровки.
Это также может быть полезно для указания мастер-файлов дисторсии. Например, вы могли бы использовать:
Обратите внимание на символ * прямо перед DATE-LOC.
Когда символ подстановки используется перед ключом заголовка DATE, в режиме чтения возвращается файл с датой, наиболее близкой и не превышающей дату файла, чей заголовок анализируется.
Предупреждение
В случае, если Siril обнаружит более одного файла в режимечтения, он выдаст предупреждение в консоли и выберет самый последний файл. Поскольку это может не дать желаемого результата, вам следует пересмотреть соглашение об именовании файлов, если это произойдет.
В некоторых случаях для одного и того же значения могут существовать несколько ключевых слов. Это происходит потому, что разработчики программного обеспечения могут использовать существующие ключевые слова или создавать новые. Поэтому Siril пытается распознавать и управлять дубликатами. Вот таблица, суммирующая известные дубли. Если файл содержит так называемые “альтернативные” ключевые слова, то Siril будет сохранять значение в “основной” версии.
Укладка на лету это техника астрофотографии, которая позволяет в реальном времени сложить серии изображений для получения изображения более высокого качества. В отличие от традиционного сложения изображений, которое включает объединение многих изображений после того, как они были получены, при укладке на лету изображения объединяются по мере их получения. Благодаря этому возможен мгновенный предпросмотр окончательного изображения, что позволяет астрофотографу внести поправки в съёмочный процесс для улучшения окончательного результата.
Siril 1.2.0 имеет эту возможность, которая, на данный момент, является экспериментальной. Укладка на лету позволяет отслеживать файл в реальном времени и складывать изображения по мере их появления. Укладка возможна как с использованием калибровочных кадров (темновых кадров, кадров шума считывания и кадров плоского поля), так и без них. Калибровочные кадры должны быть сделаны заранее, если планируется их использовать.
Укладка на лету возможна только с использованием файлов в формате FITS или "сырых" (RAW) изображений с камеры.
Для начала укладки на лету необходимо:
Указать рабочий каталог при помощи кнопки Домой, в котором будут сохраняться изображения по мере съёмки.
Нажать кнопку, обведённую рамкой на изображении ниже.
Появится новое окно.
В этом окне есть несколько кнопок и настроек. Кнопка Пуск, которая после нажатия становится кнопкой Пауза, и кнопка Стоп. Первая кнопка запускает или приостанавливает наблюдение за рабочим каталогом, а вторая кнопка — останавливает наблюдение.
Все остальные настройки стандартны для предобработки астрономических изображений:
дебайеризация: Шаблон Байера определяется в файлах и дебайеризация включается автоматически. Это более индикатор, чем настройка.
использовать 32 бита: Для обработки изображений будет использована 32-битная глубина цвета. Это медленнее и, в общем, в терминах качества, для укладки на лету бесполезно.
регистрация по сдвигу: При регистрации изображения только сдвигаются, без использования вращения, что сильно ускоряет обработку изображений. Для альт-азимутальных монтировок или монтировок с большим дрейфом эту настройку необходимо отключить.
Ниже приведены 3 раздела, в которых отображается информация, необходимая для оценки процесса укладки.
Статистка: В этом разделе приводится информация об изменении уровня шума в ADU и времени обработки изображения.
Укладка: В этом разделе приводится информация о количестве сложенных кадров и общем времени экспозиции.
Конфигурация: по умолчанию этот раздел не раскрыт. Когда это сделано, здесь приводится информация, проведена ли предобработка с использованием мастер-файлов, типе регистрации и укладки.
Примечание
Для использования мастер-файлов в ходе сессии укладки на лету, сначала необходимо уложить мастер-файлы. Когда это сделано, перед началом сессии, загрузите мастер-файлы на вкладке Калибровка. В последующем эти файлы будут приняты во внимание в ходе укладки на лету и будут показаны в диалоге Конфигурация.
Возможно использование укладки на лету из командной строки. Для этого необходимы всего 3 команды, которые объяснены ниже.
Первая, start_ls, запускает сессию укладки на лету. Возможно указать этой команде темновые кадры и кадры плоского поля для калибровки изображений в ходе сессии.
Запускает сессию укладки на лету, опционально используя калибровочные файлы и ожидает входящие файлы от команды LIVESTACK пока не будет вызвана команда STOP_LS. По умолчанию используется регистрация по сдвигу и 16-битная обработка, поскольку это быстрее. Данные настройки могут быть изменены с помощью аргументов -rotate и -32bits
Необходимо отметить, что команды укладки на лету переводят Siril в состояние, когда программа не может выполнять другие команды. После команды START_LS, могут быть переданы только команды LIVESTACK, STOP_LS и EXIT. Вызов STOP_LS переводит Siril в его нормальное состояние, когда укладка на лету не выполняется
Команда livestack будет применена к каждому изображению, которое вы желаете сложить.
Командная строка Siril
livestack filename
Обрабатывает предоставленное изображение для укладки на лету. Возможна только после START_LS. Обработка включает калибровку входящего изображения (если так была сконфигурирована START_LS), дебайеризацию (если это полноцветное изображение), регистрацию и укладку. Временный результат будет сохранён в файле live_stack_00001.fit до тех пор, пока для изменения этого не будет добавлена новая опция
На этой страницы содержится список всех команд, доступных в Siril 1.4.4.
Доступ к списку доступен по нажатию иконки .
Команды, обозначенные иконкой , могут использоваться в сценариях, а обозначенные иконкой — не могут.
Совет
Для всех команд, работающих с последовательностями, при вызове из командной строки графического интерфейса возможно заменить название последовательности sequencename на точку ., если последовательность, которую необходимо обработать, уже загружена.
Совет
Если вы хотите передать аргумент, содержащий строку с пробелами, например название файла, вам необходимо заключить в кавычки весь аргумент, а не только саму строку. Например, необходимо использовать команда"-filename=MyFile.fits", вместокоманда-filename="MyFile.fits".
addmax
addmax filename
Вычисляет новое изображение, объединяя изображение, загруженное в память, с изображением filename. Значение каждого пикселя в новом изображении определяется как максимальное значение в текущем изображении и в filename
asinh
asinh [-human] stretch { [offset] [-clipmode=] }
Преобразует изображение, используя функцию arcsin, благодаря чему становятся видны тусклые объекты. Обязательный аргумент команды — stretch, обычно в диапазоне от 1 до 1000, определяет интенсивность растягивания. Точка чёрного может быть смещена с помощью аргумента offset в нормализованном значении пикселя в диапазоне [0, 1]. Наконец, аргумент -human позволяет использовать веса на основе относительной чувствительности человеческого глаза для вычисления светимости, применяемой при расчёте растягивания для каждого пикселя, а не просто средние значения пикселей каналов. Этот метод растягивания сохраняет светимость в цветовом пространстве L*a*b*. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
Применение обобщённого гиперболического растягивания с точкой симметрии SP, определяемой как k.σ из медианы каждого канала (здесь значение shadowsclip является k и может быть отрицательным). По умолчанию точка симметрии и растягивание вычисляются поканально. Точка симметрии может быть рассчитана как среднее значение каналов при помощи опции -linked. Интенсивность растягивания D передаётся во втором обязательном аргументе.
Используются следующие неявные значения: 13 для B, фокусирующее на диапазон яркости точки симметрии SP; 0.7 для HP и 0 для LP. Все значения могут быть изменены при помощи опций с соответствующими названиями. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
autostretch
autostretch [-linked] [shadowsclip [targetbg]]
Автоматически растягивает текущее загруженное изображение с различными параметрами для каждого канала (если каналы несвязаны), если только не передан аргумент -linked. Необязательные аргументы: shadowclip — точка обрезки теней, выраженная в значениях σ от основного пика гистограммы (по умолчанию -2.8); targetbg — целевое значение фона, в диапазоне [0, 1] (по умолчанию 0.25), определяющее окончательную яркость изображения. Значениями по умолчанию являются используемые при визуализации авторастягивания в графическом интерфейсе пользователя.
Не используйте несвязанную версию после калибровки цвета, поскольку это повлияет на баланс белого
bg
bg
Возвращает значение уровня фона изображения, загруженного в память
bgnoise
bgnoise
Возвращает значение уровня фонового шума изображения, загруженного в память
Вычисляет числовой биннинг изображения, находящегося в памяти (сумма пикселей 2×2, 3×3..., подобно аналоговому биннингу у CCD-камеры). Если передан необязательный аргумент -sum, то вычисляется сумма пикселей, в то время как при отсутствии необязательного аргумента вычисляется среднее значение
boxselect
boxselect [-clear] [x y width height]
Создаёт выделенную область на загруженном память изображении с аргументами x, y, width и height, где x и y — координаты верхнего левого угла, начинающиеся с (0, 0), а width и height — размер выделения. Аргумент -clear удаляет любую выделенную область. Если аргумент не передан, выводится текущее выделение
Калибрует последовательность sequencename, используя кадры шума считывания, темновые кадры и кадры плоского поля, указанные в аргументе.
Вместо изображения, можно указать однородный уровень шума считывания, введя в кавычках выражение, начинающееся со знака =. Например, -bias="=256" или -bias="=64*$OFFSET".
Косметическая коррекция по умолчанию отключена. Если вы хотите применить коррекцию, это необходимо указать с помощью опции -cc=.
Вы можете использовать -cc=dark для определения горячих и холодных пикселей по темновому мастер-кадру, который должен быть указан с помощью опции -dark=. Опционально можно указать значения холодных и горячих пикселей с помощью siglo и sighi, соответственно. Значение 0 отключает коррекцию. Если значения σ не указаны, то будет применено только определение горячих пикселей со значением σ равным 3.
В качестве альтернативы, для указания пикселей, которые необходимо скорректировать, можно использовать опцию -cc=bpm за которой следует путь к вашей карте дефектных пикселей. Пример файла может быть получен с помощью команды find_hot, применённой к темновому мастер-кадру.
К цветным изображениям в формате CFA применимы три опции: -cfa для целей косметической коррекции, -debayer для дебайеризации изображений перед их сохранением и -equalize_cfa для выравнивания средней интенсивности слоёв RGB в мастер-кадре плоского поля, чтобы избежать тонирования откалиброванного изображения.
Опция -fix_xtrans используется при работе с файлами X-Trans, применяя коррекцию к темновым кадрам и кадрам шума считывания для удаления квадратного рисунка в зоне автофокуса.
Так же можно оптимизировать вычитание темнового кадра с помощью -opt, которая требует указания мастер-кадра шума считывания и темнового мастер-кадра, и автоматически вычисляет коэффициент, применяемый к темновому кадру, либо вычисляет этот коэффициент благодаря ключевому слову exposure, переданному с помощью -opt=exp.
По умолчанию, кадры, отмеченные как исключённые, не обрабатываются. С помощью аргумента -all можно принудительно обработать все кадры, даже отмеченные как исключённые.
Название итоговой последовательности будет начинаться с префикса "pp_", если не указан иной с помощью опции -prefix=.
Если передана опция -fitseq, итоговая последовательность будет последовательностью FITS (одиночный файл)
Калибрует изображение imagename, используя кадры шума считывания, темновые кадры и кадры плоского поля, указанные в аргументе.
Вместо изображения, можно указать однородный уровень шума считывания, введя в кавычках выражение, начинающееся со знака =. Например, -bias="=256" или -bias="=64*$OFFSET".
Косметическая коррекция по умолчанию отключена. Если вы хотите применить коррекцию, это необходимо указать с помощью опции -cc=.
Вы можете использовать -cc=dark для определения горячих и холодных пикселей по темновому мастер-кадру, который должен быть указан с помощью опции -dark=. Опционально можно указать значения холодных и горячих пикселей с помощью siglo и sighi, соответственно. Значение 0 отключает коррекцию. Если значения σ не указаны, то будет применено только определение горячих пикселей со значением σ равным 3.
В качестве альтернативы, для указания пикселей, которые необходимо скорректировать, можно использовать опцию -cc=bpm за которой следует путь к вашей карте дефектных пикселей. Пример файла может быть получен с помощью команды find_hot, применённой к темновому мастер-кадру.
К цветным изображениям в формате CFA применимы три опции: -cfa для целей косметической коррекции, -debayer для дебайеризации изображений перед их сохранением и -equalize_cfa для выравнивания средней интенсивности слоёв RGB в мастер-кадре плоского поля, чтобы избежать тонирования откалиброванного изображения.
Опция -fix_xtrans используется при работе с файлами X-Trans, применяя коррекцию к темновым кадрам и кадрам шума считывания для удаления квадратного рисунка в зоне автофокуса.
Так же можно оптимизировать вычитание темнового кадра с помощью -opt, которая требует указания мастер-кадра шума считывания и темнового мастер-кадра, и автоматически вычисляет коэффициент, применяемый к темновому кадру, либо вычисляет этот коэффициент благодаря ключевому слову exposure, переданному с помощью -opt=exp
Название итоговой последовательности будет начинаться с префикса "pp_", если не указан иной с помощью опции -prefix=
capabilities
capabilities
Отображает список возможностей Siril на основе опций компиляции и среде, в которой исполняется программа
catsearch
catsearch name
Ищет объект по названию (name) и добавляет его в каталог пользовательских аннотаций. В первую очередь поиск производится в каталоге аннотаций. Если объект не найден, то делается запрос к удалённому серверу SIMBAD.
Объектом может быть тело Солнечной системы. В этом случае перед названием объекта необходим префикс 'a:' для астероида, 'p:' для планеты, 'c:' для кометы, 'dp:' для карликовой планеты или 's:' для естественного спутника. Поиск выполняется для даты и местоположению Земли, указанным в заголовке файла, с помощью сервиса Miriade от Института небесной механики и вычисления эфемерид (IMCCE)
ccm
ccm m00 m01 m02 m10 m11 m12 m20 m21 m22 [gamma]
Применяет матрицу преобразования цвета к текущему изображению.
Имеются 9 обязательных аргументов, соответствующих девяти элементам матрицы:
m00, m01, m02
m10, m11, m12
m20, m21, m22
Может быть передан дополнительный, десятый, аргумент [gamma]. Если он опущен, используется значение по умолчанию 1.0.
Аргументы применяются к каждому пикселю в соответствии со следующими формулами:
r' = (m00 * r + m01 * g + m02 * b)^(-1/gamma)
g' = (m10 * r + m11 * g + m12 * b)^(-1/gamma)
b' = (m20 * r + m21 * g + m22 * b)^(-1/gamma)
cd
cd directory
Устанавливает новую текущую рабочую директорию.
Аргумент directory может содержать символ ~ (тильда), расширяемый как домашняя директория. Директории с пробелами в названии могут быть защищены одинарными или двойными кавычками
cdg
cdg
Возвращает координаты центра тяжести изображения. Для его вычисления используются только пиксели со значением выше 15.7% от максимального ADU и имеющие четыре соседних пикселя, удовлетворяющих этому условию. Центр тяжести вычисляется если имеется по крайней мере 50 таких пикселей
clahe
clahe cliplimit tileSize
Выравнивает гистограмму изображения используя ограниченное контрастом адаптивное выравнивание гистограммы.
cliplimit устанавливает порог для ограничения контраста.
tilesize устанавливает размер ячейки для выравнивания гистограммы. Входящее изображение будет разделено на прямоугольные ячейки одинакового размера
clear
clear
Очищает содержимое журнала
clearstar
clearstar
Очищает все звёзды, сохранённые в памяти и отображённые на экране
close
close
Корректно закрывает открытое изображение и открытую последовательность, если имеются
Отображает звёзды из локального каталога по умолчанию для загруженного изображения, имеющего астрономическое решение, вплоть до заданного значения limit_magnitude (для большинства каталогов по умолчанию — 13, за исключением 14.5 для aavso_chart, 20 для solsys и пропущено для pgc).
Альтернативный удалённый каталог можно указать с помощью аргумента -cat=, принимающего значения
- for solar system objects: solsys (closest IAU observatory code can be passed with the argument -obscode= for better position accuracy)
Для каталогов, содержащих данные фотометрии, будут сохранены звёзды без информации B-V; их можно исключить, передав аргумент -phot
Вместо каталога можно передать аргумент -trix=, за которым следует число от 0 до 511, для отображения трикселей 3-го уровня, содержащих звёзды, из локальных каталогов (в основном для использования разработчиками)
Ряд каталогов (bsc, gcvs, pgc, exo, aavso_chart, varisum and solsys) показывают названия объектов рядом с маркерами (только графический интерфейс) и выводят их в журнал. Для каталогов с большим количеством объектов, а именно vsx и simbad, эта информация также может отображаться, но, поскольку она может загромождать экран, по умолчанию её показ отключен. Это поведение можно включить / выключить с помощью аргументов -tag=on|off (для показа названий рядом с маркерами) и -log=on|off (для вывода списка объектов в журнал)
Список элементов, присутствующих на изображении, при желании можно сохранить в файле csv, передав аргумент -out=
Конвертирует все изображения, находящиеся в текущей рабочей директории, из форматов, поддерживаемых Siril, в последовательность изображений FITS (несколько файлов), либо в последовательности FITS или SER (одиночный файл), если переданы аргументы -fitseq или -ser, соответственно. Аргумент basename указывает базовое название новой последовательность, за которым будут добавлены порядковый номер и расширение.
Для изображений FITS Siril будет пытаться создать символическую ссылку; если это невозможно, то файлы будут скопированы. Опция -debayer применяет дебайеризацию к входящим изображениям CFA. В этом случае символические ссылки не создаются.
Опция -start=index устанавливает порядковый номер, с которого начинается нумерация. Это удобно для продолжения существующей последовательности (не используется с -fitseq or -ser. В этом случае убедитесь, что вы очистили или удалили целевой файл .seq, если он существует).
Опция -out= изменяет целевую директорию на указанную в аргументе.
Применяет локальное среднее к набору пикселей на изображении, находящемся в памяти (косметическая коррекция). Координаты этих пикселей находятся в текстовом файле [файл .lst]. Команда FIND_HOT может так же создать его для отдельных горячих пикселей, но необходимо вручную удалить строки или столбцы. COSME адаптирована для коррекции остаточных горячих и холодных пикселей, сохранившихся после калибровки.
Вместо предоставления списка дефектных пикселей, можно также обнаружить их на текущем изображении с помощью команды FIND_COSME
Формат файла со списком дефектных пикселей: * Строки типа P x y исправляют пиксель с координатами (x, y), чей тип это необязательный символ (C или H), указывающий Siril холодный данный пиксель или горячий. Такая строка создаётся командой FIND_HOT, но вы можете вручную добавить два следующих типа строк *Строки C x 0 исправляют дефектную колонку с координатами x. * Строки L y 0 исправляют дефектную строку с координатами y.
cosme_cfa
cosme_cfa [filename].lst
Аналогична функции COSME, но применяемая к RAW-изображениям CFA
Кадрирует до выбранной области загруженного изображения.
Если выделение активно, то другие аргументы не требуются. В противном случае, или в сценариях, необходимо передать следующие аргументы: x и y — координаты верхнего левого угла, а width и height — размер выделения. Выделение может быть сделано с помощью команды BOXSELECT
Выполняет DDP (digital development processing/процесс цифровой проявки) на загруженном изображении, как впервые описано Кунихико Окано (Kunihiko Okano). Эта реализация описана в IRIS.
Она сочетает линейное распределение на низких уровнях (ниже level) и нелинейное — на высоких.
Она использует Гауссов фильтр со стандартным отклонением sigma и умножает итоговое изображение на коэффициент coef. Типичные значения sigma находятся в диапазоне 0.7–2. Аргумент level должен быть в диапазоне [0, 65535] для 16-битных изображений и может быть указан в диапазоне [0, 1] или [0, 65535] для 32-битных изображений; в этом случае он будет масштабирован автоматически
Подавляет шум на изображении, используя нелокальный Байесовский (НЛ Байесовский) алгоритм описанный Лебраном, Буадесом и Морелом.
Перед шумоподавлением настоятельно рекомендуется применить косметическую коррекцию для удаления шума типа соль и перец. По умолчанию эта команда автоматически применяет косметическую коррекцию. Однако, если косметическая коррекция была выполнена в ходе рабочего процесса раннее, она может быть отключена с помощью опции -nocosmetic.
Может быть указан необязательный аргумент -mod=m, где 0 <= m <= 1. Итоговое значение пикселя вычисляется как out=m × d + (1 − m) × in, где d это значение пикселя после шумопдавления. Модуляция не применяется при значении 1. Если этот параметр не указан, по умолчанию он равен 1.
Необязательный аргумент -vst можно использовать для применения перед НЛ Байесовским шумоподавлением стабилизирующего дисперсию обобщённого преобразования Анскомба. Это полезно для изображений, например, одиночные субэкспозиции, где шум имеет Пуассоновское или смесь Пуассоновского и Гауссова распределений, а не главным образом Гауссово распределение. Нельзя использовать вместе с DA3D или SOS. Для шумоподавления уже уложенных изображений обычно не даёт выигрыша.
Необязательный аргумент -da3d можно использовать для включения адаптивного двухдоменного подавления шума (DA3D) в качестве заключительного алгоритма подавления шума. Результат алгоритма сопоставления блоков и 3D трансформации (BM3D) используется как эталонное изображение для улучшения шумоподавления. DA3D улучшает детали и уменьшает ступенчатые артефакты.
Необязательный аргумент -sos=n можно использовать для включения итеративного улучшения шумоподавления с помощью алгоритма усиление-подавление-вычитание (SOS). Количество повторов указывается с помощью n. В частности, SOS может давать лучшие результаты, если неулучшенный НЛ Байесовский алгоритм оставляет артефакты в областях фона. Если одновременно переданы -da3d и -sos=n, то будет применён последний из переданных.
Может быть передан необязательный аргумент -rho=r, где 0 < r < 1. Он используется алгоритмом SOS для указания доли зашумлённого изображения, подмешиваемой к промежуточному результату между каждым повтором. Если -sos=n не указан, этот параметр игнорируется.
По умолчанию DA3D или SOS не применяются, поскольку обычно улучшение в подавлении шума относительно невелико, а эти методы требуют дополнительного вычислительного времени.
В очень редких случаях, при подавлении шума на цветных изображениях могут появляться цветные артефакты. Для предотвращения этого можно использовать необязательный аргумент -indep, благодаря чему подавление шума в каждом канале выполняется отдельно. Это медленнее, но удаляет артефакты
dir
dir
Отображает список файлов и директорий в рабочей директории
Эта команда доступна только для Microsoft Windows. Эквивалентная команда для Linux и MacOS, описана по ссылке ls.
disto
disto [clear]
Показывает поле дисторсии на изображении, имеющем астрономическое решение с включёнными данными о дисторсии
Чтобы отключить, передайте аргумент clear
dumpheader
dumpheader
Выводит заголовок FITS загруженного изображения в журнал
entropy
entropy
Вычисляет энтропию загруженного изображения на отображаемом слое. При наличии выделения, энтропия вычисляется только для выделенной области или же для всего изображения, если выделение отсутствует. Энтропия это один из способов измерения шума или деталей на изображении
Применяет фильтр сохранения краёв. По умолчанию применяется билатеральный фильтр; фильтр с учителем можно применить с помощью аргумента -guided. Диаметр фильтра по умолчанию равен 3 и может быть установлен с помощью аргумента -d=. Будьте осторожны со значениями d, превышающими 20, так как алгоритм может потребовать большого количества вычислений.
Значение σ (интенсивность) можно задать с помощью -si=, а значение σ (пространственное) — с помощью -ss=. Значения σ представляют собой разницу в значениях пикселей, на которые сильно воздействует фильтр: для 32-битных изображений значение должно быть от 0 до 1.0, тогда как для 16-битных изображений оно должно быть от 0 до 65535. Значения по умолчанию, если они не указаны, должны быть равны 11. Если указано значение -d=0, диаметр фильтра будет установлен автоматически на основе значения -ss. Обратите внимание, что при применении фильтра с учителем применяется только-sc.
При указании фильтра с учителем эталонное изображение может быть задано с помощью -guideimage=. По умолчанию, если эталонное изображение не указано, применяется самообучающийся фильтр. Примечание: эталонное изображение должно иметь те же размеры, что и обрабатываемое!
Силу фильтра можно регулировать с помощью аргумента -mod=. Если mod = 1.0, то фильтр будет применён в полную силу; при mod менее 1.0 часть исходного изображения будет смешана с результатом, а при mod = 0.0 фильтрация применяться не будет
exit
exit
Выход из приложения
extract
extract NbPlans
Извлекает NbPlans слоёв вейвлетного домена из загруженного изображения.
См. так же WAVELET и WRECONS. Для извлечения цвета см. SPLIT
Извлекает зелёный сигнал из загруженного изображения CFA. Считывает информацию о шаблоне Байера из изображения или настроек и экспортирует только усреднённые данные зелёного фильтра как новый файл FITS половинного размера. Создаётся новый файл, его имя начинается с "Green_"
extract_Ha
extract_Ha [-upscale]
Извлекает сигнал H-альфа из загруженного изображения CFA. Информация о шаблоне Байера читается из изображения или настроек, после чего экспортируются усреднённые данные красного фильтра как новое изображение FITS, имеющее половинный размер. Если передан аргумент -upscale, итоговое изображение будет увеличено в 2 раза, чтобы соответствовать полному разрешению сенсора, например, для соответствия другим изображениям, полученным с помощью того же семейства сенсоров. В результате будет создан новый файл, чьё название начинается с префикса "Ha_"
extract_HaOIII
extract_HaOIII [-resample=]
Извлекает сигналы H-Alpha и O-III из загруженного изображения CFA. Он считывает информацию о шаблоне Байера из изображения или настроек и экспортирует только данные красного фильтра для H-Alpha в виде нового файла FITS половинного размера (как EXTRACTHA) и сохраняет информацию из трёх других пикселей для O-III с интерполированной заменой красного пикселя. Имена исходящих файлов начинаются с префиксов "Ha_" и "OIII_"
Необязательный аргумент -resample={ha|oiii} устанавливает, следует ли повышать разрешение изображения Ha или понижать разрешение изображения OIII, для получения изображений одинакового размера. Если этот аргумент не указан, передискретизация не будет выполнена, а изображение OIII будет иметь в два раза бо́льшую высоту и ширину, чем изображение Ha
fdiv
fdiv filename scalar
Делит загруженное изображение на изображение, указанное в аргументе. Полученное изображение умножается на значение скалярного аргумента. См. также IDIV
Аналогична команде FILL, но выполняет симметричную заливку области, определённой с помощью мыши или команды BOXSELECT. Используется для обработки изображения в домене Фурье (FFT)
Применяет быстрое преобразование Фурье к загруженному в память изображению. Амплитуда (modulus) и фаза (phase), указанные в аргументе, являются именами сохраняемых файлов FITS
ffti
ffti modulus phase
Извлекает исправленное изображение, применяя обратное преобразование. Аргументы modulus и phase — это имена входящих файлов, Результатом будет новое загруженное изображение
fill
fill value [x y width height]
Заполняет загруженное изображение полностью или только выделенную область, если она есть, пикселями со значением интенсивности value, выраженным в ADU
find_cosme
find_cosme cold_sigma hot_sigma
Применяет автоматическое определение и замену холодных и горячих пикселей на загруженном изображении с использованием порогов (в значениях σ), указанных в аргументах
find_cosme_cfa
find_cosme_cfa cold_sigma hot_sigma
Аналогична команде FIND_COSME, но для изображений CFA
Сохраняет в рабочей директории файл filename (текстовый формат), содержащий координаты пикселей, с интенсивностью в hot_sigma раз выше и cold_sigma ниже стандартного отклонения, извлечённые из загруженного изображения. Обычно мы используем эту команду для темнового мастер-кадра. Команда COSME может применить этот список дефектных пикселей к загруженному изображению. См. также SEQCOSME для применения его к последовательности
Строки вида Pxyтип исправляют пиксель с координатами x, y. Тип это произвольный символ (C или H), указывающий Siril холодный данный пиксель или горячий. Эта строка создаётся командой FIND_HOT, но вы так же можете добавить строки вручную:
Строки Cx0тип исправляют дефектный столбец с координатами x.
Строки Ly0тип исправляют дефектную строку с координатами y.
Автоматически находит звёзды сравнения в поле загруженного изображения с астрономическим решением для фотометрического анализа кривой блеска звезды согласно
- the provided name of the star
- the field of view of the image, reduced to a diameter of its height if -narrow is passed, avoiding stars in the corners
- the chosen catalog (APASS by default), can be changed with -catalog={NOMAD|APASS}
- the difference in visual magnitude from the variable star, in the range [0, 6] with a default of 3, changed with -dvmag=
- the difference in color with the variable star, in the range [0.0, 0.7] of their B-V indices with a default of 0.5, changed with -dbv=
- the maximum allowed error on Vmag in the range [0.0, 0.1] with a default of 0.03, changed with -emag=.
При передаче необязательного опции -out=, этот список может быть сохранён как файл CSV, совместимый со списком звёзд сравнения NINA. Если указанное название является специальным значением auto, оно генерируется с использованием входящих параметров
Определяет звёзды на текущем загруженном изображении, чей уровень превышает пороговое значение, вычисленное Siril.
После этого применяется PSF и Siril выбраковывает все найденные структуры, которые не удовлетворяют набору ранее определённых критериев, указанных с помощью команды SETFINDSTAR.
Наконец, вокруг обнаруженных звёзд рисуется эллипс.
Необязательный параметр -out= позволяет сохранить результат по указанному пути.
Опция -layer= указывает слой, на котором будет происходить определение звёзд (только для цветных изображений).
Вы также можете ограничить максимальное количество обнаруженных звёзд, указав значение параметра -maxstars=.
Исправляет пиксели системы автофокусироваки Fujifilm X-Trans на загруженном изображении.
Действительно, из-за особенностей фазовой системы автофокуса, области, используемые для автофокусировки, получают немного меньше света, что соседние участки. Камера компенсирует это и увеличивает значения в этих областях, что приводит к заметному квадрату в центре темновых кадров и кадров шума считывания
fixbanding
fixbanding amount sigma [-vertical]
Пытается удалить горизонтальное или вертикальное полошение на загруженном изображении.
Аргумент amount указывает силу коррекции, в диапазоне между 0 и 4.
Аргумент sigma определяет уровень защиты светов алгоритмом. Бо́льшие значения σ дают бо́льшую защиту, между 0 и 5. Значения 1 и 1 часто достаточны.
Аргумент -vertical включает удаление вертикального полошения. По умолчанию предполагается, что полошение горизонтальное
fmedian
fmedian ksize modulation
Применяет медианный фильтр, размером ksize × ksize (ksize ДОЛЖЕН быть нечётным), к загруженному изображению с параметром модуляции modulation.
Значения итоговых пикселей вычисляются как : out=mod × m + (1 − mod) × in, где m это значение пикселя после применения медианного фильтра. При значении модуляции равном 1, модуляция не применяется
fmul
fmul scalar
Умножает загруженное изображение на значение scalar, переданное в аргументе
gauss
gauss sigma
Применяет к загруженному изображению размытие по Гауссу с заданным значением sigma.
См. также UNSHARP, с таким же параметром смешивания
Обобщённое гиперболическое растягивание, основанное на работе группы ghsastro.co.uk.
Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
B определяет интенсивность растягивания вблизи точки фокуса (focal point); принимает значения между -5 и 15;
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не даны, используются значения по умолчанию для B, LP и SP — 0.0, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
grey_flat
grey_flat
Выравнивает среднюю интенсивность слоёв RGB в загруженном изображении CFA. Этот же процесс применяется к кадрам плоского поля во время калибровки, когда используется опция «Выровнять CFA»
help
help [command]
Отображает список доступных команд или помощь для одной команды
Вычисляет гистограмму для указанного слоя (layer) загруженного изображения и создаёт файл histo_[channel name].dat в рабочей директории.
layer = 0, 1 или 2 где 0=красный, 1=зелёный и 2=синий
iadd
iadd filename
Выполняет сложение изображения filename с изображением, находящимся в памяти.
Если позволяют настройки, результат будет иметь разрядность 32 бита на канал
icc_assign
icc_assign profile
Назначает текущему изображению указанный в аргументе ICC-профиль.
Для использования соответствующих встроенных профилей может быть передан один из следующих специальных аргументов: sRGB, вRGBlinear, Rec2020, Rec2020linear, working для установки рабочего монохромного или RGB цветового профиля, (для монохромных изображений) linear или может быть указан путь к файлу с профилем ICC. Если указан встроенный профиль при загруженном монохромном изображении, будет использован Ч/Б профиль с соответствующей TRC
icc_convert_to
icc_convert_to profile [intent]
Преобразует текущее изображение в указанный ICC-профиль.
Для использования соответствующих встроенных профилей может быть передан один из следующих специальных аргументов: sRGB, sRGBlinear, Rec2020, Rec2020linear, graysrgb, grayrec2020, graylinear или working для установки рабочего монохромного или RGB цветового профиля, (для монохромных изображений) linear или может быть указан путь к файлу с профилем ICC. Если указан встроенный профиль при загруженном монохромном изображении, будет использован Ч/Б профиль с соответствующей TRC.
Может быть передан второй аргумент для указания цветопередачи при преобразовании: доступны perceptual, relative (относительная колориметрическая), saturation или absolute (абсолютная колориметрическая)
icc_remove
icc_remove
Удаляет ICC-профиль из текущего изображения если оно уже имеет таковой
idiv
idiv filename
Выполняет деление загруженного изображения на изображение filename.
Если позволяют настройки, результат будет иметь разрядность 32 бита на канал.
Выполняет умножение изображения filename на загруженное изображение.
Если позволяют настройки, результат будет иметь разрядность 32 бита на канал
inspector
inspector
Создаёт из текущего изображения мозаику из 9 изображений, отображающую углы и центр изображения для более тщательного изучения (только графический интерфейс)
Инвертирует обобщённое гиперболическое растягивание. Предоставляет обратное преобразование GHT с теми же параметрами (если указаны), отменяет команду GHT, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и GHT, но для негативных изображений
Инвертирует модифицированное преобразование по arcsinh. Предоставляет обратное преобразование MODASINH с теми же параметрами (если указаны), отменяет команду MODASINH, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и MODASINH, но для негативных изображений
Инвертирует функцию передачи полутонов. Предоставляет обратное преобразование MTF с теми же параметрами (если указаны), отменяет команду MTF, возможно возвращаясь к линейному изображению. Может работать таким же образом, как и MTF, но для негативных изображений
Вычитает из загруженного изображения изображение filename.
Результат будет в 32-х битах на канал, если разрешено в настройках, поэтому возможно сохранение отрицательных значений. Чтобы отсечь отрицательные значения, используйте 16-битный режим или команду THRESHLO
Сохраняет метаданные и статистику текущего загруженного изображения в формате JSON. Название файла необходимо, даже если изображение уже загружено. Данные изображения могут быть не прочитаны из файла, если это текущее загруженное изображение и если передана опция -stats_from_loaded. Статистику можно отключить, передав опцию -nostats. Файл, содержащий данные JSON, создается с именем файла по умолчанию '$(FITS_file_without_ext).json' и может быть изменен с помощью опции -out=
Анализирует несколько звёзд с помощью апертурной фотометрии в последовательности изображений и создаёт для одной из них кривую блеска, откалиброванную по другим. Первые координаты относятся к звезде, свет которой будет нанесен на график, остальные — к звёздам сравнения. Координаты задаются в пикселях, если используется -at=, или в градусах, если используется -wcs=.
В качестве альтернативы, список целевых и опорных звёзд может быть передан в формате списка звёзд для плагина экзопланет NINA при помощи опции -ninastars=. Siril проверит, что все опорные звёзды могут быть использованы, прежде чем приступить к их фактическому использованию. Файл с данными (light_curve.dat) будет создан в текущей директории и Siril, при возможности, преобразует результат в изображение PNG
Радиусы колец для апертурной фотометрии могут быть установлены в настройках, или указаны как коэффициент от FWHM опорного изображения, если передан аргумент -autoring. Эти размеры в 4,2 и 6,3 раза превышают FWHM для внутреннего и внешнего радиусов соответственно.
Чтобы аналогичным образом установить размер радиуса апертуры, см. команду setphot.
Ограничивает значения пикселей в 32-битных изображениях диапазоном от 0.0 до 1.0. Эта команда неприменима к 16-битным изображениям, поскольку не может быть значений, выходящих за пределы диапазона. Диапазон можно ограничить одним из следующих способов:
-clip: этот аргумент просто обрезает все пиксели с отрицательными значениями до 0.0 и все пиксели со значением > 1.0 до 1.0.
-posrescale: этот аргумент масштабирует все положительные значения пикселей так, чтобы максимальное значение было равно 1.0, обрезая все отрицательные значения до 0.0. Для 3-канальных изображений ко всем каналам применяется одинаковый коэффициент масштабирования. Если максимальное значение пикселей уже <= 1.0, отрицательные значения всё равно будут обрезаны, но коэффициент масштабирования к пикселям с положительными значениями применяться не будет.
-rescale: при использовании этого аргумента, если имеются какие-либо пиксели с отрицательными значениями, ко всем значениям пикселей изображения будет добавлено постоянное значение, так что минимальное значение будет равно 0.0. Затем, если максимальное значение пикселей > 1.0, применяется коэффициент масштабирования, чтобы максимальное значение пикселей было масштабировано до 1.0.
Обратите внимание, что при наличии одного или нескольких экстремальных выбросов (например, из-за дефектных пикселей) аргументы -rescale и -posrescale могут привести к неожиданному результату. Это можно смягчить, предварительно применив косметическую коррекцию к изображению
linear_match
linear_match reference low high
Вычисляет и применяет линейную функцию между опорным (reference) изображением и загруженным изображением.
Алгоритм будет игнорировать все опорные пиксели, значения которых выходят за пределы диапазона [low, high]
link
link basename [-date] [-start=index] [-out=]
Аналогична команде CONVERT, но конвертирует только изображения FITS, найденные в текущей рабочей директории. Это удобно, чтобы избежать конвертации файлов JPEG или других файлов, которые могут находиться в директории. Дополнительный аргумент -date позволяет сортировать файлы по значению DATE-OBS вместо сортировки их названий в буквенно-цифровом виде
Выполняет линейное растягивание изображения к новой точке чёрного BP.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам.
Необязательный параметр -sat может быть использован для применения линейного растягивания к каналу насыщенности (saturation channel) изображения. Этот аргумент работает только если выбраны все каналы. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
livestack
livestack filename
Обрабатывает предоставленное изображение для укладки на лету. Возможна только после START_LS. Обработка включает калибровку входящего изображения (если так была сконфигурирована START_LS), дебайеризацию (если это полноцветное изображение), регистрацию и укладку. Временный результат будет сохранён в файле live_stack_00001.fit до тех пор, пока для изменения этого не будет добавлена новая опция
Необходимо отметить, что команды укладки на лету переводят Siril в состояние, когда программа не может выполнять другие команды. После команды START_LS, могут быть переданы только команды LIVESTACK, STOP_LS и EXIT. Вызов STOP_LS переводит Siril в его нормальное состояние, когда укладка на лету не выполняется.
load
load filename[.ext]
Загружает изображение filename из текущей рабочей директории, которое становится «текущим загруженным изображением», используемым во многих командах для работы с одним изображением.
Команда сначала пытается загрузить filename, затем filename.fit, filename.fits и, наконец, все поддерживаемые форматы.
Эта схема применима к каждой команде Siril, связанной со чтением файлов
load_seq
load_seq sequencename[.ext]
Загружает последовательность sequencename из текущей рабочей директории. Эта последовательность станет «последовательностью, загруженной в данный момент». Если команды Siril для работы с последовательностями требуют указания названия последовательности, то для чтения метаданных последовательности, используя сценарии Python, последовательность необходимо загрузить
log
log
Вычисляет и применяет логарифмический масштаб к загруженном изображению, используя формулу: log(1 - (value - min) / (max - min)), где min и max это, соответственно, минимальное и максимальное значения пикселя в канале
ls
ls
Отображает список файлов и директорий в рабочей директории
Эта команда доступна только на Unix-подобных системах. Эквивалентная команда для Microsoft Windows описана по ссылке dir.
Генерирует PSF для реконструкции любым из трех методов предоставляемых командами RL, SB или WIENER. В качестве первого аргумента должно быть указано одно из следующих ключевых слов: clear (очищает существующую PSF), load (загружает PSF из файла), save (сохраняет текущую PSF), blind (реконструкция вслепую), stars (генерирует PSF на основе измеренных на изображении параметров звезд) или manual (генерирует PSF на основе заданных вручную параметров функции).
При использовании аргумента clear дополнительные аргументы не требуются.
Для загрузки раннее сохранённой PSF аргументу load требуется второй аргумент filename с названием файла, содержащим PSF. Это может быть любой формат, с поддержкой которого был скомпилирован Siril, но файл должен быть квадратным и, в идеале, иметь нечётный размер.
Для сохранения ранее созданной PSF используется аргумент save. По выбору может быть указано имя файла, которое должно иметь расширение ".fit", ".fits", ".fts" или ".tif". Если имя файла не указано, PSF будет названа на основе имени открытого файла или последовательности.
Вместе с аргументом blind, могут быть указаны следующие необязательные аргументы: -l0 использует метод спуска l0, -si использует метод неравномерности спектра, -multiscale указывает методу l0 выполнить многоступенчатую оценку PSF, -lambda= предоставляет постоянную регуляризации.
Для PSF, рассчитанной по звёздам (stars) может быть передан единственный необязательный аргумент -sym, указывающий, что PSF должна быть симметричной.
Для PSF, рассчитанной вручную (manual), может быть передан необязательный аргумент -gaussian, -moffat, -disc или -airy (значение по умолчанию — Гауссов). Для PSF по Гауссу или Моффату могут переданы необязательные аргументы -fwhm=, -angle= и -ratio=. Необязательный аргумент -beta= может быть передан, если используется PSF по Моффату. Если эти значения не переданы, по умолчанию используются соответствующие значения, указанные в диалоге реконструкции. PSF по диску требует единственного аргумента -fwhm=, который в этой функции используется для установки диаметра PSF. Для PSF по диску Эйри могут быть переданы следующие аргументы: -dia= (устанавливает диаметр телескопа), -fl= (устанавливает фокусное расстояние телескопа), -wl= (устанавливает длину волны, для которой вычисляется дифракционная картина Эйри), -pixelsize= (устанавливает размер пикселя сенсора), -obstruct= (устанавливает размер центрального экранирования, как процент от общей площади апертуры). Если эти параметры отсутствуют, по умолчанию используются длина волны 525 нм и центральное экранирование в 0%. Siril попытается получить оставшиеся из открытого изображения, но некоторые программы захвата изображений могут не предоставлять всю необходимую информацию и в этом случае результаты будут плохими. Имейте ввиду, что видео в формате SER могут иметь незаполненные метаданные. Какие из аргументов можно не указывать для конкретного оборудования вы можете определить опытным путём.
Для любого из приведённых выше аргументов, могут быть указаны необязательные аргументы -ks= для установки размера PSF и -savepsf= filename для сохранения созданной PSF: название файла должно быть указано; требования к расширению файла такие же, как для makepsf save filename
Сливает несколько последовательностей, имеющих один тип (изображения FITS, последовательность FITS или SER) и одинаковые параметры в новую последовательность с базовым названием newseq, которая будет иметь те же параметры и будет создана в текущей рабочей директории. Входящие последовательности могут располагаться в разных директориях. Последовательности могут быть указаны с помощью абсолютных или относительных путей с точным названием последовательности (.seq) или только с базовым названием вместе или без завершающего знака нижнего подчёркивания '_'
Создаёт цветное изображение с шаблоном Байера из 4 отдельных изображений, содержащих данные из подканалов шаблона Байера CFA0, CFA1, CFA2 и CFA3 (Соответствующая команда для разбиения шаблона CFA на подканалы — split_cfa). Эта функция может использоваться как часть рабочего процесса для применения некоторой предобработки к отдельным подканалам шаблона Байера перед дебайеризацией. Пятый параметр, bayerpattern, указывает шаблон Байера, который необходимо восстановить. bayerpattern должен быть 'RGGB', 'BGGR', 'GRBG' или 'GBRG'
mirrorx
mirrorx [-bottomup]
Переворачивает загруженное изображение по горизонтальной оси. Опция -bottomup переворачивает изображение только в том случае, если оно ещё не находится в ориентации снизу вверх
mirrorx_single
mirrorx_single image
Переворачивает изображение по горизонтальной оси только при необходимости (если изображение уже не находится в ориентации снизу вверх). Принимает название файла как аргумент, позволяя не читать полностью данные изображения, если необходимость переворота отсутствует. После переворота изображение будет перезаписано
Модифицированное растягивание по arcsinh, основанное на работе группы ghsastro.co.uk.
Аргумент -D= определяет силу растягивания. Принимает значения между 0 и 10. Это единственный обязательный аргумент. Последующие необязательные аргументы дополнительно настраивают растягивание:
LP определяет диапазон сохранения теней между 0 и SP, где растягивание будет линейным, сохраняя детали в тенях;
SP определяет точку симметрии растягивания, между 0 и 1, т.е. точку, где растягивание будет наиболее интенсивным;
HP определяет область между HP и 1, где растягивание линейно, сохраняя детали в светах и предотвращая распухание звёзд.
Если аргументы не указаны, используются значения по умолчанию 0.0 для LP и SP, и 1.0 для HP.
Для цветового растягивания может быть передан необязательный аргумент -human, -even или -independent, позволяющий выбрать модель относительной чувствительности глаза, равновзвешенной светимости или независимые значения канала. Для монохромных изображений этот аргумент игнорируется. В качестве альтернативы, аргумент -sat указывает, что растягивание применяется к насыщенности изображения — для этого изображение должно быть цветным и должны быть выбраны все каналы.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам. С помощью аргумента -clipmode= можно установить режим обрезки в одно из следующих значений: clip, rescale, rgbblend или globalrescale. По умолчанию используется rgbblend
mtf
mtf low mid high [channels]
Применяет передаточную функцию полутонов к изображению, загруженному в настоящий момент.
Необходимы три параметра low, midtones и high, где параметр баланса полутонов (midtones) определяет нелинейное растяжение гистограммы в диапазоне [0,1]. Для автоматического определения параметром см. AUTOSTRECH.
Для указания каналов, к которым применить растягивание, можно использовать необязательный параметр [channels], принимающий значения R, G, B, RG, RB или GB. По умолчанию растягивание применяется ко всем каналам
Изменяет значения пикселей загруженного в настоящий момент изображения на отрицательное представление, например, 1-значение для 32-х бит, 65535-значение для 16-ти бит. Режим просмотра при этом не изменяется
new
new width height nb_channel [filename]
Создаёт новое изображение, заполненное нулями с размером width × height.
Для указания названия нового файла можно использовать необязательный параметр [filename].
Изображение имеет 32-битный формат и содержит nb_channel каналов, nb_channel может быть 1 или 3. Оно не сохраняется, но становится загруженным изображением, отображается и впоследствии может быть сохранено
nozero
nozero level
Заменяет пустые (null) значения значениями level. Полезно перед операциями idiv или fdiv, главным образом для 16-битных изображений
offline
offline
Переводит Siril в режим без доступа к сети. В этом режиме недоступны такие функции, как запросы к удалённым каталогам или обновление репозиториев git. Данные из кэша при этом остаются доступными
offset
offset value
Добавляет постоянное значение value (указанное в ADU) к текущему изображению. Эта константа может принимать отрицательное значение.
В 16-битном режиме значения пикселей, выходящие за приделы [0, 65535], обрезаются. В 32-битном режиме обрезки не происходит
удалённый
online
Переводит Siril в режим с доступом к сети. В этом режиме доступны такие функции, как запросы к удалённым каталогам, обновление репозиториев git и другие
parse
parse str [-r]
Разбирает строку str, используя информацию из заголовка загруженного в данный момент изображения. Основная цель этой команды — отладка синтаксического анализа путей ключей заголовка, которые могут использоваться другими командами.
Опция -r указывает, что строку необходимо интерпретировать в режиме чтения. В этом режиме все подстановочные знаки (wildcards), определённые в строке str, используются для поиска файла, чьё название соответствует шаблону. В противном случае режимом по умолчанию является режим записи, и подстановочные знаки, при наличии, удаляются из анализируемой строки.
Если строка str начинается с префикса $def, он будет распознан как зарезервированное ключевое слово и будет выполнен его поиск в строках, сохранённых в gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib или gui_prepro.stack_default для $defdark, $defflat, $defbias или $defstack, соответственно.
Когда загружена последовательность, можно так же использовать ключевое слово $seqname$
Запускает фотометрическую коррекцию цвета на загруженном изображении, имеющем астрономическое решение.
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений смещения (+offset или -offset) ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
По умолчанию используется каталог звёзд NOMAD. Используемый каталог можно изменить, указав -catalog=apass, -catalog=localgaia или -catalog=gaia. Если доступна локальная версия полного каталога NOMAD, можно использовать её с помощью -catalog=nomad
Допустимое отклонение от значения фона может быть указано в единицах σ с помощью -bgtol=lower,upper: значения по умолчанию равны -2.8 и +2.0, соответственно
Если решение для изображения уже существует, ничего не будет делаться, если только не передан аргумент -force для повторного поиска решения. Если данные WCS или другие метаданные изображения ошибочны или отсутствуют, то должны быть переданы аргументы:
приблизительные координаты центра изображения могут быть представлены в виде десятичных градусов или градус/час минута секунда (J2000, разделённые двоеточием) и значениями прямого восхождения и склонения, разделённые запятой или пробелом (для astrometry.net — необязательно).
фокусное расстояние и размер пикселя могут быть переданы с помощью -focal= (в миллиметрах) и -pixelsize= (в микрометрах), переопределяя значения, полученные из изображения и настроек. См. также опции для решения вслепую с помощью локальной установки Astrometry.net
Если не указан аргумент -noflip, в том случае, если будет определено, что изображение находится в ориентации вверх ногами, оно будет перевёрнуто.
Для более быстрого поиска звёзд на больших изображениях, возможно уменьшить масштаб изображения с помощью -downscale.
Решение может учитывать искажения, используя соглашение SIP с полиномами до пятой степени. Значение по умолчанию берётся из настроек астрометрии. Его можно изменить с помощью параметра -order=, который задаёт значение от 1 до 5.
При использовании локальных каталогов решателя Siril или локальной установки Astrometry.net, если первоначальное решение не удалось, решатель будет искать решение в пределах радиуса, указанного с помощью опции -radius=. Если значение не указано, радиус поиска берётся из настроек астрометрии. Поиск поблизости Siril можно отключить, указав значение 0. (для Astrometry.net отключить нельзя).
Текущее решение можно сохранить как файл с данными о дисторсии с помощью аргумента -disto=.
Астрономическое решение изображений может быть получено с помощью Siril, используя каталог звёзд и алгоритм регистрации всего звёздного неба или с помощью локальной команды solve-field из пакета astrometry.net (включается с помощью -localasnet).
Настройки решателя Siril:
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений положительного или отрицательного смещения ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
Каталог звёзд выбирается автоматически, если только не передан аргумент -catalog=: если установлены локальные каталоги, то используются они. В противном случае выбор основывается на размере поля зрения и пределе звёздной величины. Если этот аргумент передан, будет принудительно использован удалённый каталог. Возможные значения аргумента: tycho2, nomad, localgaia, gaia, ppmxl, brightstars, apass.
Если рассчитанное поле зрения больше 5 градусов, обнаружение звёзд будет ограничено областью вокруг центра изображения, если не только не передан аргумент -nocrop.
Настройки решателя Astrometry.net:
Передача аргументов -blindpos и/или -blindres позволяет выполнять поиск вслепую для определения позиции и разрешения, соответственно. Вы можете использовать эти опции при решении изображений с неизвестными положением и разрешением
pm
pm "expression" [-rescale [low] [high]] [-nosum]
Эта команда вычисляет выражение, заданное в аргументе, как в инструменте математических операций над пикселями. Всё выражение должно быть заключено в двойные кавычки, а переменные (которые в этом случае являются именами изображений без расширения, расположенными в рабочей директории) должны быть окружены символами $, например "$image1$ * 0.5 + $image2$ * 0.5". В выражении может быть использовано максимум 10 изображений.
Изображение можно масштабировать с помощью аргумента -rescale, за которым следуют значения low и high в диапазоне [0, 1]. Если эти значения не указаны, значения по умолчанию они устанавливаются равными 0 и 1. Другой необязательный аргумент, -nosum, указывает Siril не суммировать длительность экспозиции. Это влияет ключевые слова FITS, такие, как LIVETIME и STACKCNT
Создаёт профиль интенсивности между двумя точками на изображении — cut (разрез). Аргументы могут быть переданы в любом порядке. Обязательные аргументы — -to=x,y и -from=x,y.
Аргумент -layer={red | green | blue | lum | col} определяет какой канал (либо светимость или цвет) отобразить на графике, если изображение цветное. Его можно использовать в сочетании с аргументом -tri, создающим 3 параллельных равноудалённых профиля, разделённых -spacing= пикселей. Следует отметить, что для трёхпрофильного типа, аргумент col обрабатывается так же, как lum.
Аргумент -cfa выбирает режим CFA, создающий 4 профиля, по одному для каждого канала CFA, для изображения с шаблоном Байера. Он не может быть использован со цветными или монохромными изображениями без шаблона Байера, но и не может использоваться вместе с аргументом -tri.
Аргумент -arcsec позволяет отобразить расстояние по оси x в угловых секундах, если доступны необходимые метаданные. Если необходимые метаданные не указаны или отсутствуют, расстояние отображается в пикселях.
Аргумент -savedat может быть передан в случае, если необходимо сохранить файлы данных; название файла будет выведено в журнал. В качестве альтернативы, для указания названия файла, в котором будут сохранены данные, можно использовать опцию -filename= (Аргумент -filename= подразумевает **-savedat)
Выполняет PSF (функция рассеяния точки) для выбранной звезды и отображает результат. Для автономной работы, выделение (в пикселях) может быть указано с помощью BOXSELECT. Если передан аргумент channel, это позволяет выбрать канал, в котором будет проанализирована звезда. Он может не указываться для монохромных изображений или, при запуске из графического интерфейса, с одним из активных каналов в отображении
Название сценария должно быть указано в качестве первого аргумента. Если он не найден в текущей рабочей директории, будет выполнен поиск по пользовательским путям к сценариям, указанным в настройках, и в локальном репозитории siril-scripts. Остальные аргументы будут рассматриваться как аргументы сценария и передаваться в сценарий как его вектор аргументов. Обратите внимание, что конкретный сценарий должен поддерживать чтение входящих данных из вектора аргументов
Находит и, опционально, выполняет геометрическую трансформацию изображений последовательности, переданной в аргументе, таким образом, чтобы изображения могли быть наложены на опорное изображение. Поскольку для регистрации используются звёзды, этот алгоритм работает только с изображениями глубокого космоса. Настройки определения звёзд могут быть изменены с помощью команды SETFINDSTAR или диалога Динамическая PSF.
Будут зарегистрированы все изображения в последовательности, если только не передана опция -selected. В этом случае исключённые изображения не будут обработаны.
Опция -2pass только вычисляет преобразования, но не создаёт преобразованных изображений. -2pass добавляет предварительный шаг к алгоритму для поиска хорошего опорного изображения перед вычислением преобразований на основе качества и кадрирования. Для создания преобразованных изображений после этого шага используйте SEQAPPLYREG.
В случае создания, название итоговой последовательности будет начинаться с префикса "r_", если с помощью опции -prefix= не указан иной. Итоговые изображения могут быть масштабированы путём передачи значения с плавающей точкой в диапазоне от 0.1 до 3 аргументу -scale=.
Опции преобразования изображений:
Для цветных изображений определение выполняется на зелёном слое, если не указан иной слой с помощью опции -layer=, принимающей значения от 0 до 2 (от красного до синего).
-transf= указывает вид преобразования; может быть shift, similarity, affine или homography (значение по умолчанию).
-minpairs= указывает минимальное количество пар звёзд, которое должно между кадром и опорным кадром. В противном случае этот кадр будет отброшен и исключён из последовательности.
-maxstars= указывает максимальное количество пар звёзд для поиска на каждом кадре (должно быть от 100 до 2000). С бо́льшим количеством звёзд регистрация будет более точной, но это потребует больше времени для вычислений.
-nostarlist отключает сохранение списка звёзд на диск.
-disto= использует полученные раннее в ходе астрономического решения данные дисторсии (со степенью SIP > 1). В качестве параметра используется либо image, чтобы использовать решение, содержащееся в загруженном в данный момент изображении, file, за которым следует путь к изображению, содержащему решение, либо master, чтобы автоматически загрузить соответствующий мастер-фaйл дисторсии, соответствующий каждому изображению. При использовании этой опции полиномы используются как для коррекции положения звёзд перед вычислением преобразования, так и для устранения дисторсии в изображениях при экспорте итоговых изображений.
Интерполяция изображений:
По умолчанию преобразования применяются к изображениям с использованием интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции по умолчанию используется фиксация (clamping), предотвращающая артефакты, но она может быть отключена с помощью аргумента -noclamp.
Сверхразрешение:
В противном случае изображения можно экспортировать с помощью алгоритма сверхразрешения HST, передав аргумент -drizzle, который может принимать дополнительные параметры:
-pixfrac= устанавливает долю пикселей (по умолчанию = 1.0).
-kernel= устанавливает ядро и обязательно принимает одно из следующих значений point (точка), turbo (турбо), square (квадрат), gaussian (Гаусс), lanczos2 (Ланцош-2) или lanczos3 (Ланцош-3). Значение по умолчанию — square.
-flat= указывает использовать ли мастер-кадр плоского поля для присвоения веса входящим пикселям при использовании сверхразрешения (по умолчанию — кадры плоского поля не используются).
Замечание: при использовании -drizzle для изображений, полученных на цветную камеру, входящие изображения не должны быть дебайеризованы. В этом случае определение звёзд всегда выполняется по зелёным пикселям
Выполняет повторное сканирование директорий со сценариями и обновляет меню Сценарии. Обратите внимание, что эта команда не работает в автономном режиме, т.е. через siril-cli, и что обновление происходит асинхронно, т.е. программа запускает обновление, но не дожидается окончания процесса
requires
requires min_version [obsolete_version]
Возвращает ошибку, если версия Siril старше минимальной требуемой версии, указанной в первом аргументе. Принимает второй, необязательный, аргумент для версии Siril, при которой сценарий считается устаревшим и возвращает ошибку, если версия Siril новее или равна версии, переданной во втором аргументе.
Пример: requires 1.2.0 1.4.0 позволяет запускать сценарий для всех версий серий 1.2.x и 1.3.x, но сценарий не будет выполняться ни для какой из версий, более ранних, чем 1.2.0, или для версии 1.4.0 и более поздних
Масштабирует изображение либо на коэффициент factor, либо к целевой ширине или высоте, указанной с помощью -width=, -height= или -maxdim=. Обычно это используется для изменения размера изображения: коэффициент 0.5 уменьшает размер вдвое. Аргумент -maxdim= можно использовать для изменения размера наибольшего измерения изображения к определённому размеру, что удобно для оптимизации изображений для определённых сайтов, например, для социальных сетей.
Можно отметить, что в графическом интерфейсе доступны несколько алгоритмов интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=, за которым следует один из методов, указанных в списке *no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.
При интерполяции методом Ланцош-4 или бикубической интерполяции используется фиксация по умолчанию для предотвращения артефактов, но она может быть отключена с помощью аргумента -noclamp
rgbcomp
rgbcomp red green blue [-out=result_filename] [-nosum]
rgbcomp -lum=image { rgb_image | red green blue } [-out=result_filename] [-nosum]
Создаёт композитное RGB изображение, используя три независимых изображения, или композитное изображение LRGB, используя дополнительное яркостное изображение и три монохромных или одно цветное изображение. Итоговое изображение будет иметь название composed_rgb.fit или composed_lrgb.fit, если в необязательном аргументе не указано другое название. Другой необязательный аргумент, -nosum, указывает Siril не складывать время эскпозиций. Это влияет на ключевые слова FITS, такие, как LIVETIME и STACKCNT
rgradient
rgradient xc yc dR dalpha
Создаёт два изображения с радиальным (dR пикселей) и вращательным (dalpha градусов) сдвигом по отношению к точке (xc, yc).
Сдвиги между этими изображениями имеют одинаковую амплитуду, но противоположенный знак. Далее изображения суммируются для создания итогового изображения. Этот процесс также называет фильтром Ларсона Секанина
Восстанавливает изображение с помощью метода Ричардсона-Люси.
PSF может быть загружена с помощью необязательного аргумента -loadpsf=filename (создан с помощью MAKEPSF).
Количество повторов устанавливается с помощью -iters (по умолчанию — 10).
Тип регуляризации может быть установлен с помощью -tv для полной вариации или -fh для нормы Фробнеуса для матрицы Гессе (по умолчанию — регуляризация отключена) и параметра -alpha=, устанавливающего силу регуляризации (меньшее значение = бо́льшая регуляризация, по умолчанию = 3000).
По умолчанию используется метод градиентного спуска с шагом 0.0005, однако с помощью -mul может быть использован мультипликативный метод.
Критерий остановки можно включить, указав предел остановки с помощью -stop=
Применяет фильтр подавления хроматического шума, удаляющий зелёный оттенок на текущем изображении. Этот фильтр основан на SCNR из PixInsight и этот же фильтр используется плагином HLVG в Photoshop.
По умолчанию светлота сохраняется, но это может быть отключено с помощью -nopreserve.
Аргумент type может принимать значения 0 для средний нейтральный, 1 для максимальный нейтральный, 2 для максимальная маска и 3 для аддитивная маска. По умолчанию — 0. Последние два могут принимать аргумент amount со значением между 0 и 1. Значение по умолчанию — 1
rotate
rotate degree [-nocrop] [-interp=] [-noclamp]
Вращает загруженное изображение на угол degree. Чтобы избежать обрезки изображения, может быть использована опция -nocrop. При этом к изображению будут добавлены чёрные границы.
Замечание: если имеется активное выделение, например, если перед командой `rotate` использовалась команда `boxselect`, итоговое изображение будет кадрировано перед вращением. В данном случае аргумент -nocrop, если передан, будет проигнорирован.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции используется фиксация по умолчанию для предотвращения артефактов, но она может быть отключена с помощью аргумента -noclamp
rotatePi
rotatePi
Вращает загруженное изображение на 180° вокруг центра. Это эквивалентно команде "ROTATE 180" или "ROTATE -180"
Улучшает насыщенность цвета загруженного изображения. Для получения наилучших результатов используйте итеративно.
amount положительное значение увеличивает насыщенность цвета, отрицательное — уменьшает, 0 — ничего не делает, 1 — увеличивает насыщенность на 100%
background_factor это коэффициент (медиана + σ), используемый для установки порога, выше которого будет происходить изменение пикселей. При правильном подборе, это позволяет не увеличивать насыщенность цвета фонового шума. Значение по умолчанию — 1. При установке 0 порог отключается.
hue_range_index может быть [0, 6], что означает: 0 от розового до оранжевого, 1 от оранжевого до жёлтого, 2 от жёлтого до голубого, 3 для голубого, 4 от голубого до пурпурного, 5 от пурпурного до розового, 6 все цвета (значение по умолчанию)
save
save filename [-chksum]
Сохраняет текущее изображение в файл filename.fit (или .fits, в зависимости от ваших настроек, см. SETEXT), расположенный в текущей рабочей директории. Изображение при этом остаётся загруженным. filename может содержать путь, если каталог уже существует. Опция -chksum сохраняет ключевые слова контрольной суммы (CHECKSUM и DATASUM) в заголовке FITS
Сохраняет текущее изображение в форме битовой карты с 8-ю битами на канал: filename.bmp (BMP 24 бита)
savejpg
savejpg filename [quality]
Сохраняет текущее изображение в файл JPG: filename.jpg.
Вы имеете возможность установить качество сжатия. Значение параметра quality равное 100 обеспечивает наилучшую точность воспроизведения, в то время как более низкое значение увеличивает степень сжатия. Если значение не указано, применяется значение по умолчанию, равное 100
savejxl
savejxl filename [-effort=] [-quality=] [-8bit]
Сохраняет текущее изображение в файл JPG XL: filename.jxl.
Все остальные параметры необязательны. Параметр качество (quality) определяет максимально допустимое расстояние между оригиналом и сжатым изображением: может быть указан параметр -quality=, который должен быть указан в виде числа с плавающей точкой в диапазоне от 0.0 до 10.0. Более высокое качество означает лучшее качество, но бо́льший размер файла. Качество 10.0 математически не имеет потерь, качество 9.0 визуально не имеет потерь, а качество 0 даёт визуально низкое качество изображения, но получается очень маленький размер файла. Значение по умолчанию равно 9,0; типичные значения варьируют от 7.0 до 10.0. Усилие сжатия (compression effort) можно регулировать с помощью дополнительного значения -effort=, где 9 — это максимальное усилие, но очень медленное, в то время как меньшее значение увеличивает степень сжатия. Значения выше 7 не рекомендуются, так как они могут работать очень медленно и практически не влияют на размер файла. Более того, иногда значение усилия 9 может привести к созданию файлов бо́льшего размера. Если этот аргумент опущен, используется значение по умолчанию 7. Опция -8bit, принудительно устанавливает результат до 8-ми бит на пиксель
savepng
savepng filename
Сохраняет текущее изображение в файл PNG: filename.png с разрядностью 16 бит, если загружено 16- или 32-битное изображение, или 8 бит на канал, если загружено 8-битное изображение
savepnm
savepnm filename
Сохраняет текущее изображение в формате NetPBM с 16 битами на канал.
Расширение итогового файла будет filename.ppm для RGB-изображений и filename.pgm для изображений в градациях серого
savetif
savetif filename [-astro] [-deflate]
Сохраняет текущее изображение в виде несжатого 16-битного файла TIFF filename.tif. Опция -astro позволяет сохранить в формате Astro-TIFF, а -deflate включает сжатие.
См. также SAVETIF32 и SAVETIF8
savetif32
savetif32 filename [-astro] [-deflate]
Аналогична команде SAVETIF, но итоговый файл сохраняется в файле filename.tif с разрядностью 32 бита на канал. Аргумент -astro сохранение в формате Astro-tiff, а аргумент -deflate включает сжатие
Аналогична команде SAVETIF, но итоговый файл сохраняется в файле filename.tif с разрядностью 32 бита на канал. Аргумент -astro сохранение в формате Astro-tiff, а аргумент -deflate включает сжатие
Эта команда позволяет выполнить массовый выбор изображений в последовательности sequencename (начиная с from и заканчивая to включительно). Это выделение для дальнейшей обработки.
Используя ранее вычисленные данные регистрации (см. REGISTER), выполняет геометрическое преобразование изображений последовательности, указанной в аргументе таким образом, чтобы они могли быть наложены на опорное изображение.
Название итоговой последовательности начинается с префикса "r_", если с помощью опции -prefix= не указан иной.
Для RGB-изображений регистрация выполняется на первом слое, для которого существуют данные, если не указан иной слой с помощью опции -layer= (0, 1 или 2 для R, G и B, соответственно).
Итоговые изображения могут быть масштабированы с помощью аргумента -scale=, являющимся дробным значением в диапазоне от 0,1 до 3.
Автоматическое кадрирование итоговой последовательности может быть сделано с помощью опции -framing= и указанием метода кадрирования из списка { current | min | max | cog } :
-framing=max (ограничивающая рамка) проецирует каждое изображение и вычисляет его сдвиг относительно опорного. Итоговая последовательность может быть уложена с помощью опции -maximize команды STACK, которая создаёт полное изображение, включающее все изображения последовательности.
-framing=min (общая область) обрезает каждое изображение до области, общей с всеми остальными изображениями в последовательности.
-framing=cog определяет лучшее кадрирование как центр тяжести (center of gravity — cog) всех изображений.
Интерполяция изображений:
По умолчанию преобразования применяются к изображениям с использованием интерполяции.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=. Доступны следующие методы: no[ne] (нет), ne[arest] (ближайший сосед), cu[bic] (бикубическая), la[nczos4] (Ланцош-4), li[near] (линейная), ar[ea] (отношение площади пикселя). Если передан аргумент none, принудительно выполняется сдвиг и к каждому изображению применяется попиксельный сдвиг без интерполяции.
При интерполяции методом Ланцош-4 или бикубической интерполяции по умолчанию используется фиксация (clamping), предотвращающая артефакты, но она может быть отключена с помощью аргумента -noclamp.
Сверхразрешение:
В противном случае изображения можно экспортировать с помощью алгоритма сверхразрешения HST, передав аргумент -drizzle, который может принимать дополнительные параметры:
-pixfrac= устанавливает долю пикселей (по умолчанию = 1.0).
-kernel= устанавливает ядро и обязательно принимает одно из следующих значений point (точка), turbo (турбо), square (квадрат), gaussian (Гаусс), lanczos2 (Ланцош-2) или lanczos3 (Ланцош-3). Значение по умолчанию — square.
-flat= указывает использовать ли мастер-кадр плоского поля для присвоения веса входящим пикселям при использовании сверхразрешения (по умолчанию — кадры плоского поля не используются).
Фильтрация изображений:
Изображения для регистрации могут быть отфильтрованы с помощью некоторых фильтров, например, выбранные или с лучшей FWHM, используя опции -filter-*.
Лучшие изображения из последовательности могут быть уложены с использованием аргументов фильтрации. Каждый из этих аргументов может удалить некачественные изображения, основываясь на отличительных чертах в их названиях, взятых из данных регистрации с любым из трёх значений аргумента:
- a numeric value for the worse image to keep depending on the type of data used (between 0 and 1 for roundness and quality, absolute values otherwise),
- a percentage of best images to keep if the number is followed by a % sign,
- or a k value for the k.sigma of the worse image to keep if the number is followed by a k sign.
Так же можно выбрать изображения вручную либо раннее с помощью графического интерфейса или с помощью команд select или unselect, используя аргумент -filter-included.
seqccm
seqccm sequencename [-prefix=]
Аналогична команде CCM, но применяется к последовательности sequencename. Обрабатываются только выбранные изображения из последовательности.
Название итоговой последовательности будет начинаться с префикса "ccm", если не указан иной с помощью аргумента -prefix=
Эта команда очищает выделение, данные регистрации и/или статистику, сохранённые для последовательности sequencename.
Вы можете очистить только данные выделения, регистрации и/или статистику, используя опции -sel, -reg или -stat, соответственно. Если никакой опции не передано, очищаются все данные
seqcosme
seqcosme sequencename [filename].lst [-prefix=]
Аналогична команде COSME, но применяется к последовательности sequencename. Обрабатываются только выбранные изображения из последовательности.
Название итоговой последовательности будет начинаться с префикса "cosme_", если не указан иной с помощью аргумента -prefix=
Аналогична команде GHT, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Для всех изображений в последовательности выводит значение заголовка FITS, соответствующее указанным ключам. Можно указать несколько ключей подряд, разделив их пробелом. Аргумент -out=, за которым следует название файла, позволяет сохранить данные в файл csv. Аргумент -sel ограничивает вывод только выбранными изображениями последовательности
Аналогична команде INVGHT, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде INVMODASINH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Аналогична команде LINSTRETCH, но название последовательности должно быть указано в первом аргументе. Необязательный аргумент -prefix= может быть использован для указания пользовательского префикса
Сливает 4 последовательности изображений для восстановления шаблона Байера. Последовательности указываются в аргументах sequencename0, sequencename1, sequencename2 и sequencename3.
Вариант восстанавливаемого шаблона Байера (RGGB, BGGR, GBRG или GRBG) должен быть указан в качестве второго аргумента. Порядок каналов в шаблоне Байера должен совпадать с порядком указанных последовательностей.
Замечание: все 4 входящих последовательности должны присутствовать и иметь одинаковые размер, разрядность и количество изображений.
Название итоговой последовательности будет начинаться с префикса "mCFA_", если не указан иной с помощью аргумента -prefixout=
Аналогична команде MODASINH, но имя последовательности должно быть указано в первом аргументе. Пользовательский префикс может быть передан с помощью необязательного аргумента -prefix=
Создаёт профиль интенсивность между двумя точками на каждом изображении последовательности. После обязательного первого аргумента, указывающего название последовательности, которую необходимо обработать, остальные аргументы аналогичны аргументам команды profile. Если обрабатывается последовательность и желательно, что номер текущего изображения и общее количество изображений отображались в формате "Моя последовательность (1/5)", заголовок должен заканчиваться (), например, "Моя последовательность ()" и данные будут заполнены автоматически
Аналогична команде PSF, но применяемая к последовательностям. Это сходно с регистрацией по одной звезде, за исключением того, что результаты могут быть использованы для фотометрического анализа, а не для выравнивания изображений, и координаты звезды могут быть указаны с помощью опций.
Эта команда вызывается из выпадающего меню при щелчке правой кнопкой мыши на изображении, в пункте PSF для последовательности. Если для последовательности уже существуют данные регистрации, они будут использованы для смещения области поиска на каждом изображении. Если данные регистрации отсутствуют и если между изображениями в последовательности имеется значительный сдвиг, настройки по умолчанию не позволят найти звёзды в исходном положении области поиска.
The follow star option can then be activated with the argument -followstar.
Результаты будут отображены на вкладке "График", откуда их можно экспортировать в файл CSV для внешнего анализа.
При создании кривой блеска первая звезда, для которой была запущена seqpsf, отмеченная на экране буквой «V», будет рассматриваться как переменная звезда. Все остальные усредняются для создания эталонной световой кривой, вычитаемой из кривой блеска переменной звезды.
В данный момент при работе в автономном режиме эта команда выводит некоторые проанализированные данные в журнал, другая команда позволяет проанализировать несколько звёзд и построить график в виде кривой блеска: LIGHT_CURVE. В автономном режиме аргументы обязательны: необходимо указать название последовательности (можно использовать «.» для указания последовательности, загруженной в настоящий момент); -at= позволяет указать координаты целевой звезды в пикселях, а -wcs= — экваториальные координаты J2000
Ищет астрономическое решение последовательности. Результатом будет новая последовательность с префиксом «ps_», если входящая последовательность в формате SER, иначе обновляются заголовки изображений. Ввод метаданных для последовательностей в формате SER обязателен. Итоговая последовательность будет иметь вид куба FITS, поскольку формат SER не хранит данные WCS.
Если данные WCS или другие метаданные ошибочны или отсутствуют, то должны быть переданы:
приблизительные координаты центра изображения могут быть представлены в виде десятичных градусов или градус/час минута секунда (J2000, разделённые двоеточием) и значениями прямого восхождения и склонения, разделённые запятой или пробелом (для astrometry.net — необязательно).
фокусное расстояние и размер пикселя могут быть указаны с помощью -focal= (в миллиметрах) и -pixelsize= (в микрометрах), переопределяя значения, полученные из изображения и настроек. См. также настройки для поиска решения вслепую с помощью локальной установки Astrometry.net
Для более быстрого поиска звёзд на больших изображениях, возможно уменьшить масштаб изображения с помощью -downscale.
Решение может учитывать искажения, используя соглашение SIP с полиномами до пятой степени. Значение по умолчанию берётся из настроек астрометрии. Его можно изменить с помощью параметра -order=, который задаёт значение от 1 до 5.
При использовании локальных каталогов решателя Siril или локальной установки Astrometry.net, если первоначальное решение не удалось, решатель будет искать решение в пределах радиуса, указанного с помощью опции -radius=. Если значение не указано, радиус поиска берётся из настроек астрометрии. Поиск поблизости Siril можно отключить, указав значение 0. (для Astrometry.net отключить нельзя).
Уже решённые изображения по умолчанию пропускаются. Это можно изменить, передав опцию -force.
Данные регистрации будут обновлены, если не передан аргумент -noreg.
Текущее решение можно сохранить как файл с данными о дисторсии с помощью аргумента -disto=.
Астрономическое решение изображений может быть получено с помощью Siril, используя каталог звёзд и алгоритм регистрации всего звёздного неба или с помощью локальной команды solve-field из пакета astrometry.net (включается с помощью -localasnet).
Настройки решателя Siril:
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений положительного или отрицательного смещения ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
Каталог звёзд выбирается автоматически, если только не передан ключ -catalog=: если установлены локальные каталоги, то используются они. В противном случае выбор основывается на размере поля зрения и пределе звёздной величины. Если этот аргумент передан, будет принудительно использован удалённый каталог. Возможные значения аргумента: tycho2, nomad, gaia, ppmxl, brightstars, apass.
Если рассчитанное поле зрения больше 5 градусов, обнаружение звёзд будет ограничено областью вокруг центра изображения, если не только не передан аргумент -nocrop.
При использовании удалённых каталогов для всей последовательности выполняется однократное извлечение из каталога. При наличии большого дрейфа или разницы в масштабе, не все изображения могут быть решены. Аргумент -nocache отключает такое поведение и в этом случае используются метаданные каждого изображения (исключая принудительные значения, как координаты центра, размер пикселя и/или фокусное расстояние).
Настройки решателя Astrometry.net:
Передача аргументов -blindpos и/или -blindres позволяет выполнять поиск вслепую для определения позиции и разрешения, соответственно. Вы можете использовать эти опции при решении изображений с неизвестными положением и разрешением
Масштабирует последовательность, указанную в аргументе sequencename. Обрабатываются только выбранные изображения из последовательности.
Коэффициент масштаба указывается либо аргументом -scale=, либо указанием итоговых ширины, высоты или максимального измерения с помощью -width=, -height= или -maxdim=, соответственно.
Метод интерполяции пикселей может быть указан с помощью аргумента -interp=, за которым следует один из методов, указанных в списке ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.. Фиксация применяется для методов интерполяции cubic и lanczos.
Название итоговой последовательности начинается с префикса "scaled_", если с помощью опции -prefix= не указан иной
Аналогична команде SETMAG, но для загруженной последовательности.
Эта команда применима только после выполнения команды SEQPSF или её графического аналога (выберете область вокруг звезды и запустите анализ PSF для последовательности, она появится на графиках).
Эта команда имеет ту же цель, что и SETMAG, но повторно вычисляет опорную звездную величину для каждого изображения последовательности, на котором была найдена опорная звезда.
При запуске команды, последняя проанализированная звезда будет рассматриваться как опорная. Отображение графика блеска перед вводом команды упрощает её понимание.
Чтобы сбросить смещение опорной звезды и звёздной величины, см. SEQUNSETMAG
Аналогична команде STAT для последовательности sequencename.
Данные будут сохранены в файле csv (output_file).
Необязательный параметр определяет количество вычисляемых статистических параметров: basic, main (по умолчанию) или full (больше деталей, но вычисляется дольше).
\tbasic (базовая статистика) включает среднее значение, медиану, стандартное отклонение (σ), шум фона (bgnoise), минимальное и максимальное значения
\tmain (расширенная статистика) в дополнение к базовой статистике включает абсолютное отклонение (avgDev), абсолютное отклонение медианы (MAD) and квадратный корень из BWMV
\tfull (полная статистика) в дополнение к расширенной статистике включает положение и масштаб.
Если передан аргумент -cfa и изображение является изображением CFA, статистика выводится для каждого фильтра
Аналогична команде SUBSKY, но применяется к последовательности sequencename.
Подмешивание шума (dithering), необходимое для изображений с низкими динамическими градиентами может быть отключено с помощью -nodither. Обратите внимание, что аргумент -existing недоступен для удаления фона в последовательности, так как кадры последовательности не обязательно всегда выровнены.
Название итоговой последовательности начинается с префикса "CFA_", если с помощью опции -prefix= не указан иной. В последовательности будут обработаны только выбранные изображения
Обновляет значение настройки, используя имя её переменной с заданным значением или набором значений, используя существующий ini-файл с опцией -import=.
См. GET для получения списка переменных или их значений
Запрещает сохранение изображений с разрядность 32 бита на канал при обработке. Вместо этого используются 16 бит
set32bits
set32bits
Позволяет сохранение изображений с 32 битами на канал при обработке
setcompress
setcompress 0/1 [-type=] [q]
Определяет, сжимать изображения или нет.
0 означает, что сжатие выключено, а 1 включает сжатие.
Если сжатие включено, его тип должен быть явно указан опцией -type= ("rice", "gzip1", "gzip2").
Связанное со сжатием значение квантования должно быть в диапазоне [0, 256].
Например, "set compress 1 -type=rice 16" устанавливает тип сжатия (rice) со значением квантования 16
setcpu
setcpu number
Определяет количество потоков, используемых для вычисления.
Может быть равно числу виртуальных потоков, присутствующих в системе, т.е. числу ядер процессора или вдвое превышать это значение, если доступна технология гиперпоточности (Intel hyperthreading). Значение по умолчанию - максимально доступное число потоков, поэтому в основном это следует использовать для ограничения вычислительной мощности. Значение сбрасывается при каждом запуске Siril. См. также SETMEM
Определяет параметры определения звёзд для команд FINDSTAR и REGISTER.
При отсутствии параметра выводит список текущих значений.
Передача reset сбрасывает все значения к значениям по умолчанию. Вы всё ещё можете передавать значения после этого ключевого слова.
Настраиваемые значения:
-radius= определяет радиус первоначального поискового окна и должно быть между 3 и 50.
-sigma= определяет пороговое значение превышения уровня шума и должно быть больше или равно 0.05.
-roundness= определяет минимальное значение округлости звёзд и должно быть между 0 и 0.95. -maxR позволяет установить верхнюю границу округлости для визуализации только тех областей, где звёзды значительно вытянуты. Не меняйте для регистрации.
-minA и -maxA определяют пределы минимальной и максимальной сохраняемых амплитуд звёзд, нормализованные между 0 и 1.
-focal= определяет фокусное расстояние телескопа.
-pixelsize= определяет размер пикселя сенсора.
-gaussian и -moffat настраивает используемую модель решателя (по умолчанию - Гауссова).
Если выбрана модель Моффата, аргумент -minbeta= определяет минимальное значение параметра β для которого будут приняты кандидаты в звёзды и должно быть больше или равно 0.0 и меньше чем 10.0.
-convergence= определяет количество выполняемых повторов для подгонки PSF и должно быть установлено между 1 и 3 (более толерантное).
-relax= ослабляет проверки, выполняемые для кандидатов в звёзды, чтобы определить, являются ли они звёздами или нет, и позволяет по-прежнему принимать объекты, не имеющие форму звёзд (по умолчанию отключено)
Пороговое значение для обнаружения звезд вычисляется как медиана изображения (которая в целом отражает уровень фона) плюс k × σ, где σ является стандартным отклонением изображения (что является хорошим показателем амплитуды шума). Если на изображениях много звёзд и хорошее соотношение сигнал/шум, возможно, стоит увеличить это значение, чтобы ускорить обнаружение и избежать ложных срабатываний.
Рекомендуется проверить значения, используемые для последовательности, с помощью графического интерфейса Siril, доступного в меню «Анализ изображений», «Динамическая PSF...». Увеличение параметров может улучшить качество регистрации, но также важно иметь возможность обнаруживать несколько десятков звёзд на каждом изображении.
После этого все вычисления PSF будут возвращать откалиброванную видимую звёздную величину вместо видимой величины относительно значений ADU. Следует отметить, что для того, чтобы быть осмысленным, указанное значение звёздной величины должно совпадать с наблюдательным фильтром.
Чтобы сбросить константу звёздной величины см. UNSETMAG
Устанавливает новое отношение свободной памяти к памяти, использованной для укладки.
Значение ratio должно быть между 0.05 и 2, в зависимости от загруженности машины. Бо́льшее соотношение должно позволить siril выполнять укладку быстрее. Однако установка доли памяти, используемой для укладки, больше 1 потребует использования памяти на диске, что очень медленно и не рекомендуется (иногда даже не поддерживается), что приводит к сбою систему. Также может быть установлен фиксированный объём памяти в общих настройках с помощью SET, вместо указания соотношения
Получает или устанавливает настройки фотометрии, используемые, главным образом, командой SEQPSF. Если указаны аргументы, то настройки обновляются. Ни один из аргументов не является обязательным, могут быть указаны любые. Значения по умолчанию отображаются в синтаксисе команды. После выполнения команды выводится текущая конфигурация.
Используется динамическое значение апертуры, если только её значение не установлено принудительно. В последнем случае используется значение aperture, указанное в настройках. При использовании динамической апертуры, радиус апертуры определяется указанным динамическим отношением («радиус/половина FWHM»).
Допустимые значения аргумента -dyn_ratio находятся в диапазоне [1.0, 5.0]. Значения за приделами этого диапазона будут автоматически установлены в фиксированное значение -aperture.
Усиление (gain) используется только если его значение недоступно из заголовка FITS
Устанавливает опорное изображения для последовательности, указанной в первом аргументе. image_number это порядковый номер изображения в последовательности (начинающийся с 1), а не номер в названии файла
show
show [-clear] [{ -list=file.csv | [name] RA Dec }] [-nolog] [-notag]
На основании экваториальных координат показывает точку на загруженном изображении, имеющем астрономическое решение, используя временный каталог с пользовательскими аннотациями. Аргумент -clear сначала очищает этот каталог и может использоваться отдельно.
С помощью аргумента -list= можно передать несколько точек, используя файл в формате CSV, содержащий по крайней мере столбцы с данными о прямом восхождении и склонении. Если указанный файл так же также содержит столбец с названием, эти названия будут использованы как метки на изображении и отображены в журнале, если только не отключены с помощью опций -notag и -nolog.
Это доступно только через графический интерфейс Siril
Запускает спектрофотометрическую коррекцию цвета на загруженном изображении, имеющем астрономическое решение.
Предел звёздной величины, используемый при поиске решения, автоматически вычисляется из размера поля зрения, но он может быть указан с помощью значений смещения (+offset или -offset) ключа -limitmag=, или просто через абсолютное положительное значение для ограничения звёздной величины.
Для SPCC всегда используется каталог звёзд Gaia DR3. Если доступен, то по умолчанию используется локальный каталог Gaia DR3 xp_sampled. Это поведение может быть изменено с помощью аргумента -catalog={gaia | localgaia}.
Названия сенсоров и фильтров можно задать с помощью: -monosensor=, -rfilter=, -gfilter=, -bfilter= или -oscsensor=, -oscfilter=, -osclpf=; название точки белого можно указать с помощью -whiteref=. Во всех случаях название должно быть указано точно так, как оно указано в диалоге инструмента SPCC. Обратите внимание, что названия сенсоров, фильтров и точек белого могут содержать пробелы: в этом случае при использовании их в качестве аргументов команды spcc весь аргумент должен быть заключен в кавычки, например "-whiteref=Average Spiral Galaxy".
Узкополосный режим может быть выбран с помощью аргумента -narrowband, в этом случае предыдущие аргументы фильтра игнорируются, и длины волн и полосы пропускания узкополосного фильтра могут быть заданы с помощью -rwl=, -rbw=, -gwl=, -gbw=, -bwl= и -bbw=.
Если один из аргументов со спектральными данными опущен, то будет использоваться ранее использованное значение.
Допустимое отклонение от значения фона может быть указано в единицах σ с помощью -bgtol=lower,upper: значения по умолчанию равны -2.8 и +2.0, соответственно.
Атмосферная коррекция может быть применена с помощью -atmos. В этом случае применяются следующие необязательные аргументы: -obsheight= определяет высоту наблюдателя над уровнем моря в метрах (по умолчанию 10), -pressure= определяет местное атмосферное давление в месте наблюдения в гПа, или -slp= определяет атмосферное давление на уровне моря в гПа (давление по умолчанию равно 1013.25 гПа на уровне моря)
Выводит в журнал список названий SPCC для сенсоров, фильтров или точек белого, доступных при использовании команды spcc. Для этой команды необходим аргумент, для указания, какой список будет выведен: oscsensor, monosensor, redfilter, greenfilter, bluefilter, oscfilter, osclpf или whiteref.
Обратите внимание, что названия сенсоров, фильтров и точек белого могут содержать пробелы: в этом случае при использовании их в качестве аргументов команды spcc весь аргумент должен быть заключен в кавычки, например "-whiteref=Average Spiral Galaxy"
Разделяет цветное изображение на три отдельных файла (по одному для каждого цвета) и сохраняет их как file1.fit, file2.fit и file3.fit. Последний необязательный аргумент, -hsl, -hsv или lab, указывает применять ли извлечение HSL, HSV или CieLAB. Если никакой опции не указано, извлекаются RGB изображения, что означает, что преобразование не выполняется
split_cfa
split_cfa
Разделяет изображение CFA на четыре отдельных файла (по одному для каждого канала) и сохраняет их в файлы
stack
stack seqfilename
stack seqfilename { sum | min | max } [-output_norm] [-out=filename] [-maximize] [-upscale] [-32b]
stack seqfilename { med | median } [-nonorm, -norm=] [-fastnorm] [-rgb_equal] [-output_norm] [-out=filename] [-32b]
stack seqfilename { rej | mean } [rejection type] [sigma_low sigma_high] [-rejmap[s]] [-nonorm, -norm=] [-fastnorm] [-overlap_norm] [-weight={noise|wfwhm|nbstars|nbstack}] [-feather=] [-rgb_equal] [-output_norm] [-out=filename] [-maximize] [-upscale] [-32b]
Укладывает последовательность sequencename, используя опции.
Тип выбраковки:
Допустимы: sum, max, min, med (или median) и rej (или mean). Если не указано никаких аргументов, кроме названия последовательности, то подразумевается укладка с помощью сложения (sum).
Укладка с выбраковкой:
Способам rej или mean необходимы дополнительные аргументы для способа выбраковки и значения. Способ выбраковки один из следующих n[one], p[ercentile], s[igma], m[edian], w[insorized], l[inear], g[eneralized], [m]a[d] для укладки без выбраковки, обрезки по процентилям, обрезки по σ, медианной обрезки, винсоризованной обрезки, линейной обрезки, GESDT или k-MAD обрезки, соответственно. Если аргумент не указан, по умолчанию используется винсоризованная обрезка.
Параметры выбраковки sigma low и sigma high обязательны, если только не выбран способ none.
Опционально могут быть созданы карты выбраковки, показывающие, где были выбракованы пиксели на одном (-rejmap) или двух (-rejmaps, выбраковка низов и верхов) вновь созданных изображениях.
Нормализация входящих изображений:
Для способов укладки med (или median) и rej (или mean) допустимы различные способы нормализации: -norm=add для аддитивной, -norm=mul для мультипликативной. Опции -norm=addscale и -norm=mulscale применяют такую же нормализацию, но с операциями масштабирования. Опция -nonorm отключает нормализацию. В противном случае по умолчанию применяется аддитивная нормализация с масштабированием.
Опция -fastnorm включает использование более быстрых оценок для положения и масштаба, чем используемые по умолчанию IKSS.
-overlap_norm вычисляем коэффициенты нормализации для перекрывающихся участков, а не изображений целиком (допускается только вместе с -maximize).
Другие опции для укладки с выбраковкой:
Присвоение веса изображениям в последовательности осуществляется с помощью -weight= и:
noise присваивает бо́льший вес кадрам с меньшим шумом фона.
nbstack присваивает вес входящим изображениям по числу изображений, использованных для их создания. Полезно для укладки на лету.
nbstars и wfwhm присваивают вес входящим изображениям по количеству звёзд или wFWHM, вычисленных в ходе регистрации.
-feather= применяет маску для размывания границ каждого изображения с указанием дистанции (в пикселях).
Результат укладки:
Название итогового изображения может быть установлено с помощью опции -out=, в противном случает оно будет названо sequencename_stacked.fit.
Опция -output_norm применяет нормализацию, что масштабировать результат в диапазон [0, 1] (только для укладки по медиане и по средней).
-maximize использует данные регистрации, чтобы уложенное изображение охватывало все изображения последовательности (неприменимо к укладке по медиане).
-upscale используя данные регистрации, вдвое увеличивает последовательность перед укладкой (неприменимо к укладке по медиане).
-rgb_equal использует нормализацию для выравнивания фона цветных изображений. Полезно если фотометрическая или спектрофотометрическая калибровка цвета или несвязанное авторастягивание (unlinked AUTOSTRETCH) не будут использоваться в дальнейшем.
-32b игнорировать разрядность, указанную в настройках, и сохранить уложенное изображение как 32-битное.
Фильтрация изображений:
Изображения могут быть уложены на основе фильтров, например, выбор вручную или с лучшей FWHM, а так же с некоторыми опциями -filter-*.
Лучшие изображения из последовательности могут быть уложены с использованием аргументов фильтрации. Каждый из этих аргументов может удалить некачественные изображения, основываясь на отличительных чертах в их названиях, взятых из данных регистрации с любым из трёх значений аргумента:
- a numeric value for the worse image to keep depending on the type of data used (between 0 and 1 for roundness and quality, absolute values otherwise),
- a percentage of best images to keep if the number is followed by a % sign,
- or a k value for the k.sigma of the worse image to keep if the number is followed by a k sign.
Так же можно выбрать изображения вручную либо раннее с помощью графического интерфейса или с помощью команд select или unselect, используя аргумент -filter-included.
stackall
stackall
stackall { sum | min | max } [-maximize] [-upscale] [-32b]
stackall { med | median } [-nonorm, norm=] [-32b]
stackall { rej | mean } [rejection type] [sigma_low sigma_high] [-nonorm, norm=] [-overlap_norm] [-weight={noise|wfwhm|nbstars|nbstack}] [-feather=] [-rgb_equal] [-out=filename] [-maximize] [-upscale] [-32b]
Открывает все последовательности в текущей директории и укладывает их с помощью опционально указанных типов укладки или фильтрации или с помощью суммирования. Для описания опций см. STACK
Эта команда вызывает StarNet для удаления звёзд с загруженного изображения.
Предварительные условия: StarNet это внешняя программа, не связанная с Siril, которая должна быть корректно установлена перед первым использованием этой команды. Путь к директории с установленной версией StarNet для командной строки должен быть указан в разделе настроек Разное.
По завершении работы загружается изображение без звёзд, а в рабочей директории создаётся изображение с маской звёзд, если только не указан необязательный параметр -nostarmask.
Необязательные параметры, которые могут быть переданы команде:
- The option -stretch is for use with linear images and will apply a pre-stretch before running StarNet and the inverse stretch to the generated starless and starmask images.
- To improve star removal on images with very tight stars, the parameter -upscale may be provided. This will upsample the image by a factor of 2 prior to StarNet processing and rescale it to the original size afterwards, at the expense of more processing time.
- The optional parameter -stride=value may be provided, however the author of StarNet strongly recommends that the default stride of 256 be used
Запускает сессию укладки на лету, опционально используя калибровочные файлы и ожидает входящие файлы от команды LIVESTACK пока не будет вызвана команда STOP_LS. По умолчанию используется регистрация по сдвигу и 16-битная обработка, поскольку это быстрее. Данные настройки могут быть изменены с помощью аргументов -rotate и -32bits
Необходимо отметить, что команды укладки на лету переводят Siril в состояние, когда программа не может выполнять другие команды. После команды START_LS, могут быть переданы только команды LIVESTACK, STOP_LS и EXIT. Вызов STOP_LS переводит Siril в его нормальное состояние, когда укладка на лету не выполняется
Возвращает статистику текущего изображения. По умолчанию выводится базовая статистика; если передан аргумент main, то выводится расширенная статистика. При наличии выделения, выводится статистика для выделенной области. Если передан аргумент -cfa и изображение является изображением CFA, статистика выводится для каждого фильтра
stop_ls
stop_ls
Останавливает сессию укладки на лету. Возможно только после START_LS
Вычисляет синтетический градиент фона, используя либо полиномиальную функцию степени degree или радиально-базисную функцию (RBF), если указан аргумент -rbf, и вычитает градиент из изображения.
Количество и плотность образцов в горизонтальной строке и допуск для исключения ярких областей могут быть указаны опционально с помощью соответствующих аргументов. Допуск указывается в единицах медианного абсолютного отклонения (MAD): медиана + допуск * mad.
Шум, необходимый для низких динамических градиентов, может быть подмешан с помощью аргумента -dither.
Для радиально-базисной функции также доступен дополнительный параметр сглаживания. Для использования уже существующих образцов (например, если образцы фона были указаны с помощью сценария на Python), необходимо применить аргумент -existing
synthstar
synthstar
Исправляет плохие звёзды на загруженном изображении. Неважно насколько велика кома, ошибка ведения или другие искажения звёзд, если процедура поиска звёзд Siril может найти звёзды, synthstar исправит их. Для исправления значительных недостатков, вы можете вручную выбрать те звёзды, которые хотите исправить. Это можно сделать используя консольную команду findstar или диалог «Динамическая PSF». Если поиск звёзд не был выполнен, он будет автоматически запущен с настройками по умолчанию.
Для наилучших результатов, команда synthstar должна быть выполнена перед растягиванием.
Итогом работы synthstar будет полностью скорректированная синтетическая маска звёзд, состоящая из идеально круглых PSF звёзд (с профилем Гаусса или Моффата в зависимости от насыщенности звезды), вычисленных в соответствии с интенсивностью, FWHM, оттенком и насыщенностью, измеренными для каждой звезды, обнаруженной на входящем изображении. Затем результат можно повторно объединить с изображением без звёзд, чтобы получить изображение с идеальными звёздами.
Заменяет значения ниже level на загруженном изображении значением level
threshhi
threshi level
Заменяет значения выше level на загруженном изображении значением level
thresh
thresh lo hi
Заменяет значения ниже level на загруженном изображении значением level
наклон
tilt [clear]
Вычисляет наклон сенсора как разницу в FWHM между наилучшим и наихудшим усечёнными средними значениями угла. Аргумент clear позволяет очистить диаграмму наклона
trixel
trixel [-p]
Для разработчиков.
Без каких-либо аргументов выводит список всех трикселей уровня 3, видимых на изображении, имеющем астрономическое решение. Звёзды из каждого трикселя можно отобразить с помощью команды CONESEARCH используя -trix=, за которой следует номер видимого трикселя
С аргументом -p выводит все допустимые звёзды из всех 512 трикселей 3-го уровня в файл "trixels.csv"
Применяет косметический фильтр для уменьшения фиолетовых ореолов вокруг звёзд.
Если передан аргумент -starmask, то для определения областей изображения, на которые необходимо воздействовать, будет использована маска звёзд. Если «Динамическая PSF» уже запущена, она будет использоваться для создания маски, в противном случае она будет создана автоматически. Параметру -mod= следует присвоить значение около 0.14, чтобы уменьшить количество фиолетового цвета. Параметр -thresh= задает модификатор размера для каждой звезды в маске звёзд и должен быть достаточно большим, чтобы звёзды были полностью обработаны без остатков фиолетового ореола. Значение должно быть от 0 до 1, обычно около 0.5.
Если параметр -starmask не указан, уменьшение фиолетового цвета будет применено ко всему изображению для любых фиолетовых пикселей со значением светимости, превышающим заданное значение -thresh=. В этом случае значение -thresh= должно быть достаточно низким. Этот режим полезен для масок звёзд или других изображений без туманностей или галактик
Применяет нерезкую маску, фактически отфильтрованное по Гауссу изображение со значением σ sigma и смешением (blend) с параметром amount, используемое как: out = in * (1 + amount) + filtered * (-amount).
Обновляет ключевое слово FITS. Пожалуйста, обратите внимание, что валидность значения value не проверяется. За это ответственен пользователь. Также можно удалить ключ, указав аргумент -delete перед названием удаляемого ключа, или изменить ключ с помощью аргумента -modify. За последним должны следовать ключ, который нужно изменить, и название нового ключа. Наконец, аргумент -comment, за которым следует текст, добавляет комментарий к заголовку FITS. Пожалуйста, обратите внимание, что любой текст, содержащий пробелы, должен быть заключен в двойные кавычки
visu
visu low high
Демонстрирует загруженное изображение, используя low и high как нижний и верхний пороги. Только графический интерфейс пользователя
wavelet
wavelet nbr_layers type
Вычисляет вейвлетное преобразование для nbr_layers=1...n слоёв загруженного изображения, используя линейную (type=1) или В-сплайн (type=2) версию алгоритма. Результат сохраняется в файле как структура, содержащая слои, готовые к реконструкции с использованием весов с помощью WRECONS.
Восстанавливает текущее изображение из слоёв, раннее вычисленных с помощью вейвлетов и с присвоенными весами с помощью коэффициентов c1, c2, ..., cn в соответствии с количеством слоёв, использованных для вейвлет-преобразования после использования WAVELET
Справочник по программному интерфейсу (API) модуля Sirilpy 1.0.25 языка Python
Модуль sirilpy языка Python поддерживает взаимодействие с запущенным экземпляром Siril. Он может запрашивать представления текущего загруженного изображения вместе с его метаданными, включая информацию о детектированных звездах, а также текущую загруженную последовательность и большинство метаданных кадров.
Данная документация сгенерирована автоматически из кода python-модуля версии 1.0.25.
Он также может выполнять команды Siril с помощью метода SirilInterface.cmd(), и его целью является предоставление надежного интерфейса для написания продвинутых скриптов для Siril, которые невозможно реализовать с использованием предыдущих простых файлов сценариев.
Например, теперь сценарии могут иметь графические интерфейсы на базе PyQt6 или TKinter с использованием модулей PyQt6 или tkinter и ttkthemes, а также они могут использовать множество модулей из экосистемы Python, включая numpy, scipy, pillow и многие другие.
Примечание
Существуют некоторые ограничения относительно модулей, которым для работы требуется установка системных бинарных пакетов.
В первоначальном выпуске модуля большинство методов, связанных с изображением или последовательностью, загруженными в Siril, доступны только для чтения. Цель заключается в том, чтобы параметры загруженного изображения или последовательности могли быть получены и использованы в качестве входных данных для сценариев, например, для вычислений или ввода условий, но в большинстве случаев для работы с загруженным изображением следует использовать существующий набор команд Siril. Таким образом, ключевые слова заголовка можно задать с помощью cmd("update_key","ключ","значение"), а большинство встроенных операций с изображениями можно выполнить с помощью соответствующей команды Siril. Основным исключением из правила методов python, предоставляющих доступ только для чтения, является метод set_image_pixeldata(), который позволяет устанавливать пиксельные данные в загруженном изображении из массива numpy. Это означает, что с помощью python можно добавлять новые алгоритмы обработки пикселей, изначально получая пиксельные данные из загруженного изображения с помощью get_image_pixeldata() и устанавливая их по завершении с помощью set_image_pixeldata(). Аналогичные функции доступны для получения и настройки пиксельных данных из кадров последовательности.
В отличие от большинства сред Python, скрипты Siril запускаются непосредственно из самой программы Siril, и обычный пользователь обычно не знает, как получить доступ или как использовать виртуальное окружение Python за пределами Siril. Это означает, что некоторые задачи, которые довольно тривиальны в типичных сценариях Python, такие как установка пакетов, становятся более сложными. Нельзя ожидать, что пользователь будет получать доступ к командной строке и устанавливать пакеты самостоятельно с помощью команды python3-mpipinstall.
Поэтому модуль предоставляет метод ensure_installed(). Этот метод использует pip для того чтобы убедиться, что необходимые модули установлены и могут быть импортированы.
Скрипты Siril всегда должны содержать имя автора, информацию о правах на копирование / лицензионные сведения и контактные данные, такие как канал YouTube, веб-сайт или форум, где с ним можно связаться по вопросам, связанным со скриптом. Это является рекомендацией для независимо распространяемых скриптов и обязательным требованием для всех скриптов, отправляемых в репозиторий скриптов. Если вы пишете скрипт, вы несете ответственность за его поддержку.
По мере роста репозитория и развития API не все опубликованные скрипты обязательно будут совместимы со всеми версиями Siril, которые будут использоваться:
Если ваш скрипт использует команды Siril, вы должны использовать команду requires. Её можно вызвать непосредственно в файле скрипта Siril, либо её можно вызвать из Python-скрипта с помощью SirilInterface.cmd("requires","min_version",{"max_version"}) (параметр max_version является необязательным), но ее можно использовать для того, чтобы скрипты, разработанные для старых версий Siril, больше не отображались как применимые к новым версиям, если синтаксис команды изменился.
Если ваш скрипт использует какие-либо функции python-модуля Siril, добавленные после первоначального выпуска, вам следует вызвать метод sirilpy.check_module_version(), чтобы убедиться, что установленная версия соответствует требованиям вашего скрипта. Версии, в которых были добавлены функции, будут перечислены в документации API для всех функций, добавленных после первоначального публичного выпуска.
Код, заполняющий представление репозитория скриптов Siril, автоматически будет фильтровать скрипты, чьи требования к версии Siril или версии модуля Python не соблюдаются.
Если в модуль после начального публичного релиза будут добавлены новые классы или методы, версия, в которой они были введены, будет отмечена в строке документации и в онлайн-документации, сгенерированной на её основе.
Siril нацелен на работу под Linux, Windows и MacOS. Авторам скриптов рекомендуется, где это возможно, гарантировать, что их скрипты будут работать правильно на всех трех ОС.
Этот подмодуль предоставляет основной класс SirilInterface, используемый для обмена данными между Siril и python-скриптом. Все его элементы доступны на корневом уровне модуля, поэтому нет необходимости импортировать подключение отдельно.
Модуль подключения для Siril предоставляет возможность подключаться к запущенному экземпляру Siril и взаимодействовать с ним. Включает широкий спектр методов, которые можно использовать для получения и установки данных из/в Siril.
SirilInterface — это основной класс, предоставляющий интерфейс для запущенного экземпляра Siril и доступ к методам для взаимодействия с ним через встроенную систему команд Siril, а также доступ к данным изображений и последовательностей.
Request Siril to load an image from a file and analyse it. This
method does not change the image currently loaded in Siril. Any image format
supported by Siril is supported. An ImageAnalysis object is returned, containing
parameters that may be used to assess the quality of an image for use in culling.
Параметры:
filepath (str) -- String specifying the path to the image file to load.
Отправляет команду в Siril для выполнения. Перечень доступных команд можно найти в онлайн-документации. Команда и её аргументы предоставляются в виде списка строк.
Параметры:
*args (str) -- Переменное количество строковых аргументов, объединяемых в команду
Исключение:
DataError -- будет возвращено, если не был получен ответ (или получен некорректный ответ)
CommandError -- Если команда возвращает код состояния ошибки,
SirilError -- Если во время выполнения происходит любая другая ошибка.
Creates a new .seq file with all images named seq_rootXXXXX.ext located in
the current home folder. If a sequence with the same name is already loaded
in Siril, it will not be recreated. This only works for FITS files, not FITSEQ nor SER.
The newly created sequence is not loaded in Siril.
Параметры:
seq_root (str) -- Корневое название создаваемой последовательности.
Результат:
True, если последовательность была успешно создана, и False в противном случае
Закрывает установленное соединение через сокет или именованный канал. Обратите внимание, что обычно нет необходимости закрывать это соединение, за исключением случаев, когда по какой-то причине требуется закрыть одно соединение и затем открыть другое. Этот метод автоматически вызывается при завершении скрипта с помощью обработчика atexit, поэтому нет необходимости делать это вручную. Вызов этого метода сбросит индикатор прогресса.
Отправляет сообщение об ошибке в Siril. Максимальная длина сообщения составляет 1022 байта: более длинные сообщения будут обрезаны (однако этого достаточно для окна сообщения об ошибке). Обратите внимание, что окно сообщения об ошибке по умолчанию не является модальным: оно предназначено для более заметного отображения сообщения об ошибке по сравнению с использованием журнала Siril перед закрытием приложения.
Параметры:
my_string (str) -- Сообщение для отображения в окне сообщения об ошибке
modal (Optional[bool]) -- Устанавливает, должно ли окно сообщения быть модальным и ожидать завершения, или немодальным, позволяя скрипту продолжить выполнение. Обратите внимание, что хотя модальное окно сообщения будет блокировать выполнение скрипта, если запущен основной цикл TKinter, события будут продолжать накапливаться, поэтому, если окно сообщения вызвано нажатием кнопки, пользователь может нажать её снова, пока отображается окно сообщения, и вызвать второе окно сообщения, которое отобразится сразу после закрытия первого.
Результат:
True, если сообщение об ошибке было успешно отображено, и False в противном случае
Request a copy of the current image open in Siril. Requires a single
image to be loaded.
Параметры:
with_pixels (Optional[bool]) -- необязательный логический параметр, указывающий, следует ли получать данные пикселей в виде массива NumPy или только метаданные изображения. По умолчанию установлено значение True
preview (Optional[bool]) -- необязательный логический параметр, указывающий, следует ли получать данные пикселей для предпросмотра, т.е. 8-битные данные с автоматическим растягиванием. По умолчанию — False, т.е. реальные данные изображения
Retrieve the full FITS header of the current image loaded in Siril.
Requires a single image to be loaded.
Параметры:
return_as -- Optional string specifying the format of the returned header.
Can be 'str' for a string or 'dict' for a dictionary.
Результат:
The image FITS header as a string, or None if there is no header.
dict: The image FITS header as a dictionary, or None if there is no header.
None: If the header is empty or not available.
Тип результата:
str
Исключение:
NoImageError -- Если в данный момент изображение не загружено,
SirilError -- При других ошибках во время извлечения данных,
Извлекает пиксельные данные из изображения, загруженного в данный момент в Siril.
Параметры:
shape (Optional[list[int]]) -- Необязательный список [x, y, w, h], определяющий регион для извлечения. Если указан, получает данные пикселей только для этого региона. Если None, получает данные пикселей для всего изображения.
preview (Optional[bool]) -- необязательный логический параметр, указывающий, следует ли получать данные пикселей для предпросмотра, т.е. 8-битные данные с автоматическим растягиванием. По умолчанию — False, т.е. реальные данные изображения
linked (Optional[bool]) -- optional bool specifying whether the autostretch preview should
be linked or unlinked. If preview == False then this option is
ignored.
Результат:
Данные изображения в виде массива numpy
Тип результата:
numpy.ndarray
Исключение:
NoImageError -- Если в данный момент изображение не загружено,
ValueError -- Если предоставлена недопустимая форма,
DataError -- если массив невозможно преобразовать к правильным размерностям,
SirilError -- При других ошибках во время извлечения пиксельных данных,
channel (Optional[int]) -- Optional int specifying the channel to retrieve from.
If provided 0 = Red / Mono, 1 = Green, 2 = Blue. If the
channel is omitted the default behavior will be used:
channel 0 for mono images, channel 1 (green) for color images.
channel requires sirilpy v1.0.8 or higher.
Список объектов PSFStar, содержащий данные о звёздах, или None, если звёзды не были обнаружены. Если звёзды уже были найдены командой findstar, тогда будет возращён этот список, в противном случае будет предпринята попытка автоматического поиск звёзд с использованием текущих настроек.
Исключение:
NoImageError -- Если в данный момент изображение не загружено,
ValueError -- If an invalid channel is provided,
SirilError -- При других ошибках во время извлечения данных,
Retrieves a PSFStar star model from the current selection in Siril.
Only a single PSFStar is returned: if there are more than one in the
selection, the first one identified by Siril's internal star detection
algorithm is returned.
Update: from sirilpy 1.0.4 this method uses Siril's photometry functions to
try to provide photometrically accurate values for PSFStar.mag, PSFStar.s_mag
and PSFStar.SNR. If photometry succeeded and no saturated pixels were detected
then PSFStar.phot_is_valid will be True, otherwise it will be False.
:type shape: Optional[list[int]]
:param shape: Optional list of [x, y, w, h] specifying the selection to
retrieve from. w x h must not exceed 300 px x 300 px.
If provided, looks for a star in the specified selection
If None, looks for a star in the selection already made in
Siril, if one is made.
Параметры:
channel (Optional[int]) -- Необязательное целое число, определяющее канал для получения данных. Если указан: 0 = Красный/Моно, 1 = Зеленый, 2 = Синий. Если канал не указан, то в режиме GUI будет использовано текущее окно просмотра, а если режима GUI нет, метод вернется к каналу 0
assume_centred (bool) -- Optional bool specifying whether to assume the star
is already centred in the selection. Defaults to False.
Результат:
the PSFStar object representing the star model, or None if
Retrieves statistics for the current selection in Siril. Requires a single
image or a sequence to be loaded.
Параметры:
shape (Optional[list[int]]) -- Необязательный список [x, y, w, h], определяющий выделение для получения данных. Если указан, ищется звезда в указанном выделении. Если None, ищется звезда в уже сделанном в Siril выделении, если оно есть.
channel (Optional[int]) -- Необязательное целое число, определяющее канал для получения данных. Если указан: 0 = Красный/Моно, 1 = Зеленый, 2 = Синий. Если канал не указан, то в режиме GUI будет использовано текущее окно просмотра, а если режима GUI нет, метод вернется к каналу 0
Результат:
the ImageStats object representing the selection statistics.
Request sequence frame as a FFit from Siril. The keywords, statistics, header and
other metadata are always returned: if an ICC profile is present, this will also
be populated in the resulting FFit, and optionally the pixel data can also be
returned.
Параметры:
frame (int) -- Integer specifying which frame in the sequence to retrieve data for
(between 0 and Sequence.number - 1). This uses a 0-based indexing scheme,
i.e. the first frame is frame number 0, not frame numer 1.
with_pixels (Optional[bool]) -- необязательный логический параметр, указывающий, следует ли возвращать данные пикселей для кадра. По умолчанию True
preview (Optional[bool]) -- bool specifying whether or not to return the real pixel data or an
autostretched uint8_t preview version. Only has an effect in
conjunction with with_pixels = True
Retrieve the full FITS header of an image from the sequence loaded in Siril.
Параметры:
frame (int) -- Integer specifying which frame in the sequence to retrieve data for
(between 0 and Sequence.number - 1). This uses a 0-based indexing scheme, i.e.
the first frame is frame number 0, not frame numer 1.
return_as -- Optional string specifying the format of the returned header.
Can be 'str' for a string or 'dict' for a dictionary.
Результат:
The image FITS header as a string, or None if there is no header.
dict: The image FITS header as a dictionary, or None if there is no header.
None: If the header is empty or not available.
Retrieves the pixel data from a frame in the sequence currently loaded in Siril.
Параметры:
frame (int) -- selects the frame to retrieve pixel data from. This
uses a 0-based indexing scheme, i.e. the first frame is frame
number 0, not frame numer 1.
shape (Optional[List[int]]) -- Необязательный список [x, y, w, h], определяющий регион для извлечения. Если указан, получает данные пикселей только для этого региона. Если None, получает данные пикселей для всего изображения.
preview (Optional[bool]) -- optional bool specifying whether to get pixeldata as a preview
(i.e. 8-bit autostretched data) or as real image data. Defaults
to False (i.e. real image data).
linked (Optional[bool]) -- optional bool specifying whether the autostretched preview should
be linked or unlinked. This option is ignored if preview is not True
Результат:
Данные изображения в виде массива numpy
Тип результата:
numpy.ndarray
Исключение:
ValueError -- Если предоставлена недопустимая форма,
DataError -- если массив невозможно преобразовать к правильным размерностям,
SirilError -- For other errors during pixel data retrieval.
frame (int) -- Integer specifying which frame in the sequence to get image
metadata for (between 0 and Sequence.number). This
uses a 0-based indexing scheme, i.e. the first frame is frame
number 0, not frame numer 1.
Request sequence frame registration data from Siril.
Параметры:
frame (int) -- Integer specifying which frame in the sequence to get registration
data for (between 0 and Sequence.number). This
uses a 0-based indexing scheme, i.e. the first frame is frame
number 0, not frame numer 1.
channel (int) -- Integer specifying which channel to get registration data
for (typically 0, 1, or 2)
frame (int) -- Integer specifying which frame in the sequence to get statistics
data for (between 0 and Sequence.number). This
uses a 0-based indexing scheme, i.e. the first frame is frame
number 0, not frame numer 1.
channel (int) -- Целое число, указывающее, для какого канала требуется получить статистику (обычно 0, 1 или 2)
Note that RED and MONO share the
same IntEnum value, so there is no difference between a test for
one and the other; the two enum labels are provided solely to aid
code legibility.
Тип результата:
A SirilVport representing the active vport
Исключение:
DataError -- if no response or an invalid response is received,
A context manager that handles claiming and releasing the processing thread.
This method is designed to be used with a with statement to ensure that
the thread is properly claimed before processing and released after processing,
even if an exception occurs during processing. It is preferable to use this
context manager rather than manually calling claim_thread() and
release_thread() as the context manager will ensure correct cleanup if an
exception occurs.
Note that the image_lock() context should only be entered when the script itself
is operating on the Siril image data. If the script is calling a Siril command
to alter the Siril image then the context must not be entered or the Siril
command will be unable to acquire the processing thread and will fail.
Example:
try:withsiril.image_lock():# Get image dataimage_data=self.get_image_pixeldata()# Process image dataprocessed_data=some_processing_function(image_data)# Set the processed image datasiril.set_image_pixeldata(processed_data)exceptProcessingThreadBusyError:# Handle busy thread casepassexceptImageDialogOpenError:# Handle open dialog casepass
Send an information message to Siril. The maximum message length is
1022 bytes: longer messages will be truncated. This is intended for
displaying informational messages more prominently than using the Siril log.
Параметры:
my_string (str) -- The message to display in the info message box
modal (Optional[bool]) -- Устанавливает, должно ли окно сообщения быть модальным и ожидать завершения, или немодальным, позволяя скрипту продолжить выполнение. Обратите внимание, что хотя модальное окно сообщения будет блокировать выполнение скрипта, если запущен основной цикл TKinter, события будут продолжать накапливаться, поэтому, если окно сообщения вызвано нажатием кнопки, пользователь может нажать её снова, пока отображается окно сообщения, и вызвать второе окно сообщения, которое отобразится сразу после закрытия первого.
Результат:
True if the info was successfully displayed, False otherwise
Check if the current instance is running in CLI mode. This method is useful
to detect how the script was invoked and whether to show or not a GUI.
This is False when the script is called by clicking in the Script menu,
True otherwise.
Request Siril to load an image from a file and transfer it to sirilpy. This
method does not change the image currently loaded in Siril. Any image format
supported by Siril is supported. This may be used as an alternative to loading
an image using astropy.io.fits, however perhaps the main benefit to using it
is that it supports the preview option which can be used to obtain an 8-bit
autostretched rendering of the image more quickly than is possible using astropy
and applying an autostretch using numpy.
Параметры:
filepath (str) -- String specifying the path to the image file to load.
with_pixels (Optional[bool]) -- bool specifying whether or not to return the pixel data for the
image (default is True).
preview (Optional[bool]) -- bool specifying whether or not to return the real pixel data or an
autostretched uint8_t preview version. Only has an effect in
conjunction with with_pixels = True
linked (Optional[bool]) -- bool specifying whether the autostretch preview should be linked or
not. Has no effect unless preview is True.
Enters a mode where the user can draw a Polygon in the Siril window
by clicking the main mouse button and dragging. Releasing the mouse
button finalises and closes the polygon.
Converts a pair of pixel coordinates into RA and dec coordinates using the
WCS of the image loaded in Siril. This requires that an image is loaded in
Siril and that it has been platesolved (i.e. it has a WCS solution).
Параметры:
x (float) -- float: provides the x coordinate to be converted
y (float) -- float: provides the y coordinate to be converted
Результат:
(RA, Dec) as a Tuple of two floats.
Тип результата:
Tuple[float, float]
Исключение:
NoImageError -- If no image or sequence is loaded,
ValueError -- If the image or loaded sequence frame is not plate solved,
SirilError -- For errors during pix2radec execution.
Converts a pair of RA,dec coordinates into image pixel coordinates using the
WCS of the image loaded in Siril. This requires that an image is loaded in
Siril and that it has been platesolved (i.e. it has a WCS solution).
Параметры:
ra (float) -- float: provides the RA coordinate to be converted
dec (float) -- float: provides the dec coordinate to be converted
Результат:
[x, y] as a Tuple of two floats.
Тип результата:
Tuple[float, float]
Исключение:
NoImageError -- If no image or sequence is loaded,
ValueError -- If the image or loaded sequence frame is not plate solved,
SirilError -- For errors during radec2pix execution.
Save image pixeldata and metadata to a FITS file. This uses Siril to
save the image and can therefore be used to avoid a script dependency on
astropy if it is only required for saving an image. This allows images to
be saved directly from python without having to use set_image_pixeldata()
and set_image_metadata_from_header_string() and saving the Siril image. It
support processing multiple images without affecting the image currently
loaded in Siril.
Параметры:
data -- Either a numpy.ndarray containing the image data (must be 2D or 3D
array with dtype float32 or uint16), OR a FFit object containing
both data and header.
header -- string containing the FITS header data. Required if data is a
numpy array, ignored if data is a FFit object.
filename -- string containing the path where the file should be saved.
Required if data is a numpy array. If data is a FFit object
and filename is None, will use fit.filename.
Результат:
True if successful, False otherwise
Тип результата:
bool
Исключение:
ValueError -- if the input array or header is invalid,
TypeError -- if invalid parameter types are provided,
SirilError -- if there was an error in handling the command.
Примеры
# Using numpy array and header string
siril.save_image_file(data_array, header_string, "output.fit")
# Using FFit object
siril.save_image_file(fit, filename="output.fit")
# Using FFit object with its own filename
siril.save_image_file(fit)
Serialize a set of background sample points and send via shared memory.
Points can be provided either as:
- List of (x,y) Tuples: BGSamples are created with these positions and Siril
will automatically compute the statistics.
- List of BGSample objects: The complete sample data is sent to Siril.
By default Siril will recalculate statistics for the sample points
on receipt, but this can be overridden with the argument recalculate=False
Параметры:
points (Union[List[Tuple[float, float]], List[BGSample]]) -- List of sample points, either as (x,y) tuples or BGSample objects
show_samples (bool) -- Whether to show the sample points in Siril
recalculate -- Whether to recalculate the sample points once set. This only
applies if the sample points are provided as a List of
BGSamples, in which case it defaults to True. If the sample
points are provided as a List of (x,y) Tuples then the
parameter has no effect. Setting recalculate=False is usually
a bad idea but the option is provided to support potential
advanced uses where the values are adjusted in python code to
manipulate the background fit.
Returns: True if the command succeeded, otherwise False
Send image metadata to Siril from a FITS header. The header can be
obtained from a sirilpy FFit.header or alternatively from a FITS file
obened from disk using astropy.fits.
Example:
hdul=fits.open('your_fits_file.fits')# Get the header from the primary HDU (or any other HDU you want)header=hdul[0].header# Convert the header to stringheader_string=header.tostring(sep='\\n')# Send the metadata to Sirilsiril.set_image_metadata_from_header_string(header_string)
Параметры:
header (str) -- string containing the FITS header data
image_data (ndarray) -- numpy.ndarray containing the image data.
Must be 2D (single channel) or 3D (multi-channel) array
with dtype either np.float32 or np.uint16.
Set whether given frame(s) are included in the currently loaded sequence
in Siril. This method is intended for use in creating custom sequence
filters.
Параметры:
index (Union[int, List[int]]) -- integer or list of integers specifying which frame(s) to set the
inclusion status for. This uses a 0-based indexing scheme, i.e. the
first frame is frame number 0, not frame number 1.
Passing a list is available since sirilpy 1.0.17
incl (bool) -- bool specifying whether the frame(s) are included or not.
Исключение:
NoSequenceError -- если в Siril не загружена последовательность,
TypeError -- if index is not an int or list of ints,
Send sequence frame image data to Siril using shared memory. Note that this
method only works with sequences of FITS images: it does not work with
FITSEQ, SER or AVI single-file sequences. The image_lock() context manager
is not required in order to use this method.
Параметры:
index (int) -- integer specifying which frame to set the pixeldata for. This
uses a 0-based indexing scheme, i.e. the first frame is frame
number 0, not frame numer 1.
image_data (ndarray) -- numpy.ndarray containing the image data.
Must be 2D (single channel) or 3D (multi-channel) array
with dtype either np.float32 or np.uint16.
prefix (str) -- String prefix to use when saving the file to make a
new sequence. Note that saving sequence frames with a new prefix
does not by itself create a new sequence: once all the frames have
been saved with the new sequence prefix,
sirilpy.SirilInterface.create_new_seq() must be called to create
the actual sequence file. Note that while it is permitted to pass
prefix=None, this will overwrite the existing sequence and is not
typically what is wanted, therefore the parameter is not optional
and must be passed explicitly.
Исключение:
NoSequenceError -- если в Siril не загружена последовательность,
ValueError -- if the input array is invalid,
SirilError -- if there was an error in handling the command.
Set the slider values in Siril using the provided lo and hi values.
If the sliders mode is not already set to USER, it is set to that mode
as setting slider values is only relevant in that mode.
:type lo: Union[float, int]
:param lo: Low value for the slider (float [0,1] or uint16)
:type hi: Union[float, int]
:param hi: High value for the slider (float [0,1] or uint16)
Send a progress update to Siril with a message and completion percentage.
Параметры:
message (str) -- Status message to display,
progress (float) -- Progress value in the range 0.0 to 1.0. The following special
values can be used: -1.0 will pulsate the progress bar, and
-2.0 will update the progress bar text but will not update
the progress shown in the bar.
Исключение:
ValueError -- If the progress argument is out of range,
Send a warning message to Siril. The maximum message length is
1022 bytes: longer messages will be truncated. This is intended for
displaying warning messages more prominently than using the Siril log.
Параметры:
my_string (str) -- The message to display in the warning message box
modal (Optional[bool]) -- Устанавливает, должно ли окно сообщения быть модальным и ожидать завершения, или немодальным, позволяя скрипту продолжить выполнение. Обратите внимание, что хотя модальное окно сообщения будет блокировать выполнение скрипта, если запущен основной цикл TKinter, события будут продолжать накапливаться, поэтому, если окно сообщения вызвано нажатием кнопки, пользователь может нажать её снова, пока отображается окно сообщения, и вызвать второе окно сообщения, которое отобразится сразу после закрытия первого.
Результат:
True if the warning was successfully displayed, False otherwise
Serialize plot data and send via shared memory. See the sirilpy.plot submodule
documentation for how to configure a PlotData object for use with SirilInterface.xy_plot()
This submodule provides dataclasses to represent the main Siril data structures. Most dataclasses have corresponding deserialization methods
that are used by the SirilInterface methods.
All its members are made available at the module root level, there is
no need to import models separately.
Python equivalent of the Siril background_sample struct. Used to hold
background sample data obtained from Siril, or to generate or modify
background sample data to set in Siril.
A BGSample can be constructed as:
- s1 = BGSample(x=1.0, y=2.0)
- s2 = BGSample(position=(1.0, 2.0))
- s3 = BGSample(x=1.0, y=2.0, mean=0.5, size=31)
Allocate memory for image data with appropriate type. self.width, self.height,
self.naxis, self.naxes and self.dtype must be set before calling this
method.
Исключение:
ValueError -- if self.bitpix is not set to BitpixType.USHORT_IMG or BitpixType.FLOAT_IMG
Get a specific channel of the pixel data. Note that this does
not pull pixel data directly from the image loaded in Siril: that must
previously have been obtained using get_image_pixeldata() or get_image()
Update image statistics for all channels. Note that this only
updates the statistics based on the NumPy array representing pixel data
in the python FFit object, it does not update the statistics of the
image in Siril.
The naxes tuple holds the image dimensions as width x height x channels. Note that the axis ordering differs between Siril representation as held in naxes and numpy representation as held in _data.shape (which is channels x height x width)
Specifies the ROWORDER for this image. The FITS specification directs that FITS should be stored bottom-up, but many CMOS sensors are natively TOP_DOWN and capture software tends to save FITS images captured by these sensors as TOP_DOWN.
Deserialize binary keyword-block (the block produced by keywords_to_py())
into an FKeywords object. Raises ValueError on size mismatch and SirilError
for other unpacking issues.
Python equivalent of the Siril Homography structure. Contains coefficients
for the Homography matrix that maps a sequence frame onto the reference
frame.
Represents a user-defined polygon. These can be filled or outline-only, and
can have any color and transparency (alpha) value. They can also have an optional
label which is displayed centred on the polygon.
Note that Polygons should be considered transitory if used with the overlay -
they can be used to display information to the user but they may be cleared
at any time if the user toggles the overlay button in the main Siril interface
to clear the overlay.
Determine if a point is inside the polygon using Dan Sunday's optimized winding number algorithm.
This algorithm is more robust than ray casting for complex polygons and handles
edge cases better, including points on edges and self-intersecting polygons.
Параметры:
x (float) -- X coordinate of the point to test.
y (float) -- Y coordinate of the point to test.
Результат:
True if the point is inside the polygon, False otherwise.
Mimics the Siril bitpix enum. Note that although Siril can
handle opening FITS files of any data type, internally it processes
images only as USHORT_IMG (uint16) or FLOAT_IMG (float32).
Contains Siril command status codes, matching the values
returned internally within Siril. These can be used for
error handling. CMD_OK and CMD_NO_WAIT are no-error codes;
all the other codes represent command errors. These are
available through the CommandError exception and may
generally be handled without being regarded as fatal to
the script.
Defines colors available for use with SirilInterface.log()
For consistency LogColor.Default should be used for normal messages,
LogColor.Red should be used for error messages, LogColor.Salmon
should be used for warning messages, LogColor.Green should be used
for completion notifications, and LogColor.Blue should be used for
technical messages such as equations, coefficients etc.
Python equivalent of the Siril starprofile enum. Used to identify the type
of fit used to model a star in the image. Note that MOFFAT_FIXED is currently
not used in Siril, but is reserved for future use for Moffat stars modelled
with a fixed beta parameter
This submodule provides classes and method to access the native Siril plotting
functionality. Of course, you can also use matplotlib but this submodule
provides access to the same plotting capabilities as used internally within
Siril for a more seamless result. All its members are made available at the
module root level, there is no need to import models separately.
Once populated, the PlotData object can be plotted using SirilInterface.xy_plot().
Plot submodule for Siril, providing classes for plot data representation and serialization.
This submodule enables users to create and configure various types of plots with customizable
appearance and error bars.
Metadata container for plot configuration. The actual series data are
held in SeriesData objects and can be added using the Class methods
add_series or add_series_obj after initialization of the PlotData.
Members:
title: Plot title
xlabel: X-axis label
ylabel: Y-axis label
savename: Save filename (extension is added automatically)
show_legend: bool indicating whether to show legend
datamin: List [xmin, ymin] forcing the bottom left coordinate to show.
If omitted, the range is set to the data range.
datamax: List [xmax, ymax] forcing the top right coordinate to show.
If omitted, the range is set to the data range.
This submodule provides utility methods for use in Siril python scripts.
The most important is ensure_installed() but there are also methods
such as download_with_progress() which provides a highly robust method
for downloading large files with good error recovery through a retries and
resume mechanism.
Utility module for Siril Python interface providing helper functions for file operations,
package management, and standard I/O control to support Siril's scripting capabilities.
This context manager allows suppression of the script's stderr, which
can be useful if you are using module functions that are known to
produce warnings that you want to avoid distracting the user with,
such as FutureWarnings of features that have become deprecated but
are in a dependency rather than your own code. The class should
be used sparingly and should not be used to hide evidence of
bad code.
This context manager allows suppression of the script's stdout,
which can be useful to avoid flooding the log with stdout messages
from an excessively verbose module used in the script.
Пример
importsirilpyasssiril=s.SirilInterface()print("This message will appear in the Siril log")withs.SuppressedStdout():print("This message will not appear")print("This message will appear again")
Check the version of the Siril module is sufficient to support the
script. This is not mandatory if you are only using classes,
methods etc. that are provided in the initial public release, but
if you rely on methods that are noted int he API documentation as
having been added at a particular version of the module then you
must check the running sirilpy module supports your script by
calling this function.
Siril will not show scripts with unsatisfied check_module_version()
calls in the repository list in 'Get Scripts', so if you want a
function that enables different code paths for different versions
you should use needs_module_version() instead.
Параметры:
requires (str) -- A version format specifier string following the
same format used by pip, i.e. it may contain
'==1.2', '!=3.4', '>5.6', '>=7.8', or a
combination such as '>=1.2,<3.4'
Результат:
True if requires = None or if the available sirilpy module version
satisfies the version specifier, otherwise False
Исключение:
ValueError -- if requires is an invalid version specifier.
Ensures that the specified package(s) are installed and meet optional version constraints.
Параметры:
*packages (str or List[str]) -- Name(s) of the package(s) to ensure are installed.
version_constraints (str or List[str], optional) -- Version constraint string(s) (e.g. ">=1.5", "==2.0").
Can be a single constraint or a list matching packages.
reinstall (bool, optional) -- Forces reinstallation. Defaults to False.
Результат:
True if all packages are successfully installed or already meet constraints.
Check the version of the Siril module is sufficient to support a
feature. This allows writing optional code paths for different sirilpy
API levels. The function works the same as check_module_version() but
the presence of an unsatisfied needs_module_version() call will not
prevent a script from showing up in the list in 'Get Scripts'
Параметры:
requires (str) -- A version format specifier string following the
same format used by pip, i.e. it may contain
'==1.2', '!=3.4', '>5.6', '>=7.8', or a
combination such as '>=1.2,<3.4'
Результат:
True if requires = None or if the available sirilpy module version
satisfies the version specifier, otherwise False
Исключение:
ValueError -- if requires is an invalid version specifier.
Parse FITS header from text content into a dictionary with support for HIERARCH and CONTINUE keywords.
Handles Siril's newline-separated FITS header format and converts it to a dictionary
compatible with astropy.wcs.WCS. Supports extended FITS keywords via HIERARCH and
long string values via CONTINUE.
Параметры:
header_text (str) -- Raw header string with header cards separated by newlines.
Expected format: "KEYWORD = value / comment"
include_comments (bool) -- If True, includes COMMENT and HISTORY cards in the output.
If False (default), these cards are skipped.
Тип результата:
Dict[str, Union[str, int, float, bool]]
Результат:
Dictionary mapping FITS header keywords (str) to their parsed values.
Values are converted to appropriate Python types:
- 'T'/'F' -> bool
- Quoted strings -> str (quotes removed, with CONTINUE support for long strings)
- Numeric strings -> int or float
- Everything else -> str
- COMMENT/HISTORY cards -> str (content after keyword, if include_comments=True)
- HIERARCH keywords -> str (full hierarchical keyword preserved)
Заметки
Filters out warning messages, tracebacks, and other non-header content
By default ignores COMMENT and HISTORY cards (set include_comments=True to include)
Skips malformed cards or invalid keywords
Standard keywords must be ≤8 characters and alphanumeric (plus underscore/hyphen)
HIERARCH keywords can be longer and contain spaces/dots
CONTINUE cards are automatically merged with the previous string value
Comments after '/' are ignored for regular cards
Пример
>>> header_str='''SIMPLE = T / file conforms to FITS standard... BITPIX = -32 / bits per pixel... HIERARCH ESO DET CHIP1 NAME = 'CCD #1' / detector name... LONGSTR = 'This is a very long string that needs to be '... CONTINUE 'continued on the next line'... COMMENT Test comment'''>>> result=parse_fits_header(header_str)>>> result['SIMPLE']True>>> result['BITPIX']-32>>> result['HIERARCH ESO DET CHIP1 NAME']'CCD #1'>>> result['LONGSTR']'This is a very long string that needs to be continued on the next line'
Provides a safe alternative to subprocess.Popen, accounting for the fact that a subprocess
command line may be run from a flatpak environment and require use of flatpak-spawn to ensure
it runs outside the sandbox, avoiding issues with subprocesses that rely on environment
variables and so on. safe_subprocess_Popen is a drop-in replacement for subprocess.Popen
for use in Siril scripts.
Provides a safe alternative to subprocess.Popen, accounting for the fact that a subprocess
command line may be run from a flatpak environment and require use of flatpak-spawn to ensure
it runs outside the sandbox, avoiding issues with subprocesses that rely on environment
variables and so on. safe_subprocess_run is a drop-in replacement for subprocess.run
for use in Siril scripts.
This submodule provides helper classes to make it easier to manage GPU
framework packages such as ONNX, Torch etc. for use in Siril python scripts.
The landscape of these frameworks' support for different GPU architectures
on different OSes is rapidly developing and the helpers aim to suggest
reliable packages / configurations. This means that the proposed
configurations may in some cases be conservative: the aim is to provide
a good and robust level of GPU support for as many users as possible in
an automated python environment rather than the absolute best, but perhaps
fragile, optimisation.
GPU helper module for Siril Python interface providing helper functions for detection,
installation and testing of GPU-related modules.
Initial scope is ONNX, torch and jax
Determine the recommended JAX backend and installation parameters.
When multiple GPUs are present, uses priority system to choose the best one.
JAX has limited platform support:
- NVIDIA: CUDA on Linux (Windows support experimental/limited)
- AMD ROCm: Linux only
- Apple Silicon: Metal backend
- Intel: Experimental plugin with dependency issues
Тип результата:
Dict[str, Any]
Результат:
Dict with 'backend', 'packages', 'extra_index_url' keys
Install JAX with the appropriate variant for the detected hardware. Use this instead of
ensure_installed() to ensure that jax is installed correctly for the given hardware / OS
Параметры:
force_variant (Optional[str]) -- Override auto-detection with specific variant (e.g., 'jax[cpu]')
version_constraint (Optional[str]) -- Version constraint string (e.g., '>=0.4.0')
Prints the current status of the Jax Helper class in regard to its support for different
OSes, GPUs. The world of heterogenous computing is developing rapidly and while support
for some of the frameworks for which helpers are available is not yet universally
available, hopefully it will improve in the future.
Get execution providers ordered by priority.
This function returns a list of available ONNX Runtime execution providers
in a reasonable order of priority, covering major GPU platforms:
The CPU provider is always included as the final fallback option.
Параметры:
ai_gpu_acceleration (bool) -- Whether to include GPU acceleration providers.
Defaults to True.
force_check (bool) -- Whether to force re-checking even if a cached config exists.
Defaults to False.
Determine the recommended ONNX Runtime backend based on hardware.
When multiple GPUs are present, uses priority system to choose the best one.
Note: ONNX Runtime has platform-specific backend support:
- Windows: DirectML for all GPUs (NVIDIA, AMD, Intel) - more reliable, no driver dependencies
- Linux: CUDA for NVIDIA, CPU for AMD (no ROCm support yet), OpenVINO for Intel
Import onnxruntime, add it to the global dict, test if it's built against
CUDA and if so preload the CUDA and CUDNN libraries to improve the chances
of finding them if Torch[CUDA] happens to be installed.
Prints the current status of the ONNX Helper class in regard to its support for different
OSes, GPUs. The world of heterogenous computing is developing rapidly and while support
for some of the frameworks for which helpers are available is not yet universally
available, hopefully it will improve in the future.
Determine the recommended PyTorch backend and installation parameters.
When multiple GPUs are present, uses priority system to choose the best one.
PyTorch has good cross-platform support:
- NVIDIA: CUDA on all platforms
- AMD ROCm-compatible: ROCm on Linux AND Windows
- Intel Arc: XPU backend
- Apple Silicon: MPS backend
Тип результата:
Dict[str, Any]
Результат:
Dict with 'backend', 'cuda_version', 'extra_index_url', 'packages' keys
Obtains a suitable torch device based on the capabilities of the installed
torch package. if use_gpu is False, torch.device("cpu") will be returned.
This function is available since sirilpy 1.0.17
Prints the current status of the Torch Helper class in regard to its support for different
OSes, GPUs. The world of heterogenous computing is developing rapidly and while support
for some of the frameworks for which helpers are available is not yet universally
available, hopefully it will improve in the future.
This submodule is now deprecated. There are no longer any scripts in the
repository that use tksiril and submissions to the siril-scripts repository
will no longer be accepted if they use tksiril. You should migrate any
personal scripts to use PyQt6 instead. The tksiril submodule will be removed in a future version of Siril.
This submodule provides some helper functions to support consistent
GUI implementation using tkinter. It must be explicitly imported in
order to be used. Note that when writing TKinter GUIs you should import
ThemedTK from the ttkthemes module, because the bare TKinter UI shows up
poorly on MacOS. ThemedTK and the methods available in the tksiril
module help to provide a consistent look for Siril script GUIs on all
platforms.
Предупреждение
Linux users running a Wayland desktop should note that Tkinter does not
yet have support for pure Wayland. In order to use python scripts
utilising Tkinter GUIs you must have the XWayland compatibility package
installed. If you don't, you will see errors about DISPLAY being
unavailable.
fromsirilpyimporttksiril
TKsiril submodule for Siril, providing utility methods to achieve consistent
script GUI appearance using the TKinter toolkit.
DEPRECATION WARNING: the tksiril submodule is deprecated from Siril 1.4.3.
It will remain part of sirilpy throughout the stable 1.4 series but has been
removed from master and will therefore disappear with the release of Siril 1.6.0.
No new scripts will be accepted in the siril-scripts repository if they use
the tksiril submodule.
A scrollable frame widget that can contain other widgets.
This class creates a frame with vertical scrolling capability using a Canvas
widget and Scrollbar. It supports both scrollbar and mouse wheel scrolling
across all platforms (Windows, Mac, Linux).
Add mouse wheel scrolling support to a widget and its children.
This method recursively binds mouse wheel events to the specified widget
and all its child widgets. It uses platform detection to apply the
appropriate event bindings for each operating system.
Параметры:
widget -- The tkinter widget to bind mouse wheel events to.
The binding will be applied recursively to all children.
If no widget is specified it will default to the ScrollableFrame
itself.
Пример
# Add a complex widget to the scrollable frame
frame = ttk.Frame(scrollable.scrollable_frame)
label = ttk.Label(frame, text="Hello")
button = ttk.Button(frame, text="Click me")
# Bind mouse wheel to the entire widget hierarchy
scrollable.add_mousewheel_binding(frame)
Raises the Tk root window to the top of the window stack. Useful after
calls to sirilpy methods that present child windows of the main Siril
window such as info_messagebox().
NOTE: For this to work on KDE desktops, focus-stealing prevention must
be disabled.
Match the Tkinter theme to the Siril configuration and set the script dialog
to have topmost status, meaning that it will remain in front of other
non-topmost windows.
Параметры:
s (SirilInterface) -- sirilpy.SirilInterface class to provide the
Siril theme (light or dark) to match
themed_tk (ThemedTk) -- ThemedTk instance to apply the theme to
on_top -- whether the script window should be always on top of other windows
Исключение:
TypeError -- If input arguments are of incorrect type
ValueError -- If the theme configuration is not 0 or 1
AttributeError -- If required methods are not available
RuntimeError -- If there are errors installing or setting the theme
This submodule is now deprecated. There are no longer any scripts in the
repository that use tkfilebrowser and submissions to the siril-scripts repository
will no longer be accepted if they use tkfilebrowser. You should migrate any
personal scripts to use PyQt6 instead. The tkfilebrowser submodule will be removed in a future version of Siril.
This submodule is a fork of tkfilebrowser.
The fork addresses a bug in the original code where duplicate device
entries could cause errors in generating the filebrowser, and ensures
the code can be mantained as the upstream package was last updated
several years ago.
Documentation for tkfilebrowser can be found
here. Note that some
compatibility improvements have been made in the version included in sirilpy:
sirilpy.tkfilebrowser.askdirectory() has been added as an alias for
tkfilebrowser.askopendirname() to maintain compatibility with
tk.filedialog.askdirectory().
In filefilter specifications tkfilebrowser requires multiple extensions
to be provided separated by | whereas filedialog requires space-separated
extensions: sirilpy.tkfilebrowser has been adapted to accept either
format.
This submodule serves the sole purpose of being a drop-in replacement for
the standard Tk filedialog on Linux, as the standard Tk filedialog is
horrible on Linux. It can be used as a replacement like this:
This submodule provides some customized exceptions to support Siril-specific
error handling. All its members are made available at the module root level,
there is no need to import it separately.
The sirilpy exceptions policy is as follows:
At a low level within sirilpy methods a variety of exception types may
be raised (those shown below as well as exceptions raised from other
modules such as struct.error). Internal exception types are all descended
from SirilError and may therefore be caught using except SirilError.
Other exception types are re-raised as a SirilError to show the method
where they were generated, but the underlying error can still be seen either
in a traceback or using the Exception __cause__ property.
Some error types are recoverable errors such as NoImageError, NoSequenceError
and CommandError. These exception types can be handled at script level (for
example by showing a warning dialog reminding the user to load an image).
Other error types are typically not recoverable, such as SharedMemoryError
or SirilConnectionError.
Exceptions submodule for Siril, providing exception classes for use
in exception raising within the sirilpy module.
Raised when a command sent to Siril fails to execute properly.
(Note: 'command' in this case refers to internal commands sent
from the python module to the Siril python handler, not Siril
commands of the type that might be entered in the Siril command
entry.) The full set of command status codes is shown in the
CommandStatus enum. These exceptions are often recoverable and
should therefore be handled before generically handling other
SirilError types that are considered fatal.
(CommandStatus) Indicates the status code returned
by the Siril command. This may be used in error
handlers to allow scripts to handle some types of
command error and continue (e.g. by prompting
a user intervention).
Raised when a method requires an image to be loaded
but no image is loaded. These exceptions are often recoverable and
should therefore be handled before generically handling other
SirilError types that are considered fatal.
Raised when a method requires a sequence to be loaded
but no sequence is loaded. These exceptions are often recoverable
and should therefore be handled before generically handling other
SirilError types that are considered fatal.
Raised when there are problems connecting to or
communicating with Siril using shared memory.
SharedMemoryError is not raised directly but will be wrapped in
a SirilError. It should generally be regarded as fatal and the
script should shut down gracefully if possible or just stop.
Raised when there are problems connecting to or
communicating with Siril.
This includes cases like:
Siril not running
Socket connection failures
Communication protocol errors
Unexpected disconnections
SirilConnectionError is not raised directly but will be wrapped in
a SirilError. It should generally be regarded as fatal and the
script should shut down gracefully if possible or just stop.
Если, несмотря на изучение документации и руководств, вы столкнулись со странным поведением, эта страница подскажет вам, как действовать дальше. Имейте в виду, что если что-то не работает, это не обязательно означает, что есть ошибка. Чаще всего проблемы возникают из-за неправильного использования. В таких случаях крайне важно предоставить точную информацию о проблеме, которая поможет нам определить, является ли это ошибкой или недоразумением. Обратитесь за рекомендациями к разделу о том, как отправить нам полезную информацию. Действительно, простое заявление, что это не работает, не поможет нам найти решение. Мы не предсказатели, и нам нужна информация, чтобы определить проблему и найти решение. Поэтому важно, чтобы вы рассказали нам, что вы делали в момент возникновения проблемы, какую операционную систему вы используете, какую версию Siril вы используете и, самое главное, журнал выполнения программы!
Проверьте журналы изменений и системы отслеживания ошибок
Прежде всего, если вы думаете, что нашли ошибку в Siril, о ней уже могли сообщить (иногда буквально десятки раз). Поэтому мы просим вас сначала проверить, например, просмотрев журналы изменений или замечания <https://gitlab.com/free-astro/siril/-/issues>, которые уже были открыты и даже закрыты.
Как уже упоминалось во введении, нам нужна полезная информация, которая поможет решить проблему:
Какую операционную систему вы используете? Поскольку Siril может вести себя по-разному в Windows, Linux или macOS, нам необходимо знать эту информацию. Пожалуйста, будьте максимально точны.
Какую версию Siril вы используете? И как вы ее получили? Пакет скачали на сайте? Через третье лицо? Скомпилировали сами? И здесь, пожалуйста, будьте максимально точны.
Иногда полезно делиться скриншотами. Однако, пожалуйста, НЕ ДЕЛАЙТЕ СВОИ СКРИНШОТЫ НА СМАРТФОН — это неразборчиво. Ваша операционная система умеет делать скриншоты очень легко (Google поможет вам в этом), и Siril также предлагает такую функцию (кнопка с камерой). Наконец, желаемые форматы — это форматы изображений: jpg, bmp или png, но ни в коем случае не pdf.
Отправьте нам журналы выполнения программы (логи). В идеале мы предпочитаем логи на английском языке! Просто перейдите в настройки Siril и измените язык на английский на вкладке Интерфейс. Кроме того, существует два типа журналов: один отображается в консоли Siril, который описывает шаги, выполняемые программным обеспечением, и может помочь нам в отладке, и внутренние журналы, которые видны при запуске Siril из командной строки:
Первые очень полезны в большинстве случаев и могут быть экспортированы очень легко с помощью кнопки в правом нижнем углу. Это создает файл, который можно легко отправить нам.
Однако, когда программное обеспечение зависает (т.е. внезапно закрывается без предупреждения), вам нужно запустить Siril из командной строки, пытаясь воспроизвести сбой и получить журналы. В этом случае метод зависит от операционной системы.
Microsoft Windows: Откройте окно cmd (введите cmd в строке поиска Windows) и введите следующее:
Это сохранит файл output.log в папке, в которой был запущено окно командной строки (в большинстве случаев в папке %USERPROFILE%).
macOS: Если вы установили Siril в папку Applications, как это рекомендуется, то для начала откройте приложение Terminal из папки Utilities в разделе Applications, затем скопируйте и вставьте следующую строку:
После сбоя журнал выполнения программы будет доступен на рабочем столе в файле output.log.
GNU/Linux: Просто запустите Siril в терминале. Обычно файл программы находится в переменной $PATH, в этом случае введите:
siril > output.log 2>&1
это все, что вам нужно, чтобы перенаправить логи в файл output.log. Это сохранит файл output.log в папке, где был запущен терминал
Отправьте нам свою фотографию. Если вы находите свое изображение странным, не стесняйтесь поделиться им с нами, обычно в формате FITS. Это всегда интереснее, чем скриншот. Для этого вам нужно воспользоваться большим файлообменным сервисом. Их много, и мы можем предложить WeTransfer, например. В этом случае загрузите свои данные на WeTransfer и получите ссылку для скачивания, чтобы поделиться ею.
Связаться с нами и сообщить об ошибке можно несколькими способами. Самый простой — найти нас на форуме. Но также можно открыть запрос в нашем репозитарии gitlab. В этом случае сначала проверьте, не был ли открыт такой же запрос. Возможно, он даже был закрыт, так как проблема была решена, в этом случае в Changelog будет показано краткое описание с номером запроса. Чтобы просмотреть запрос (даже закрытый) и убедиться, что вы столкнулись с той же проблемой, перейдите по адресу https://gitlab.com/free-astro/siril/-/issues/XXXX, указав вместо XXXX номера запроса.
Совет
Поскольку пользователи и разработчики Siril принадлежат к разным национальностям, языком, используемым для сообщения об ошибке, должен быть английский.