Bienvenue dans la documentation Siril !

https://joss.theoj.org/papers/10.21105/joss.07242/status.svg

Il s'agit de la documentation de la version 1.4.4.

Siril est un outil de traitement d'images astronomiques du ciel profond.

Siril

Siril peut calibrer, aligner, empiler et améliorer des images à partir de différents formats de fichiers, y compris des fichiers de séquences d'images (cube FITS, films et fichiers SER). Siril peut également analyser les images avec des outils d'astrométrie et de photométrie.

Le langage de programmation est le C, avec des parties en C++. Le développement principal est effectué avec les versions les plus récentes des bibliothèques partagées sur GNU/Linux. Les contributeurs sont les bienvenus.

Il s'agit de la documentation, qui tente de décrire toutes les fonctions de Siril. Si l'équivalent d'une fonction de l'interface graphique existe sur la ligne de commande, il est donné dans un encart. D'autres ressources utiles peuvent être trouvées sur notre site web principal siril.org.

Astuce

Cette documentation comprend également divers encadrés conseil et avertissement qui mettent en évidence des informations importantes. En outre, des encadrés théoriques ne sont pas indispensables à la compréhension du contenu, mais sont à la disposition des personnes ayant des connaissances en mathématiques et désireuses d'approfondir certains concepts.

Vous pouvez trouvez ici un index des commandes Siril.

Pour signaler tout problème dans la documentation, veuillez ouvrir un ticket à l'adresse suivante : https://gitlab.com/free-astro/siril-doc.

Un problème dans la traduction de la documentation est à signaler ici : https://gitlab.com/free-astro/siril-localized-doc.

Installation

Chaque version de Siril est distribuée pour les 3 plateformes les plus courantes (Windows, MacOS, GNU / Linux) et peut être téléchargée sur le site de Siril. Mais bien sûr, comme Siril est un logiciel libre vous pouvez compiler l'application à partir des sources.

Astuce

Il peut être utile de vérifier l'intégrité du binaire ou paquet que l'on vient de télécharger. La liste des sommes de contrôle SHA est disponible à cette page, au format json.

À la fin de l'installation, vous pouvez essayer la commande capabilities pour en savoir plus sur votre installation.

Ligne de commande Siril

capabilities
Affiche les fonctionnalités de Siril, en fonction de la compilation et de l'exécution

Comprendre les numéros de version de Siril

À partir de la version 1.0, les versions stables de Siril (telles que 1.0, 1.2, etc.) sont indiquées par des numéros pairs et sont conçues pour une utilisation quotidienne. Les versions de développement, indiquées par des numéros impairs (comme 0.99.0, 1.1.0, etc.), ne sont généralement pas disponibles sous forme de paquets ou d'exécutables binaires, et doivent être compilées par l'utilisateur. Le troisième et dernier chiffre, appelé micro numérotation, correspond au nombre de versions qui ont apporté des corrections de bugs et d'autres petites contributions (telles que 1.0.1, 1.0.2, 1.0.3, etc.).

Configuration minimale requise

Pour garantir des performances optimales, il est recommandé que votre système réponde aux spécifications minimales suivantes :

  • RAM : Il est recommandé d'avoir au moins 8 Go de mémoire vive pour tous les systèmes afin d'assurer un bon fonctionnement. Une capacité de mémoire vive plus élevée est bénéfique, car Siril utilise largement la mémoire vive disponible pour les tâches de traitement.

  • Stockage : Un disque SSD (Solid State Drive) est fortement recommandé pour des vitesses de lecture et d'écriture plus rapides, ce qui se traduit par des performances un ordre de grandeur plus rapides que les disques durs traditionnels

Les exigences spécifiques plateforme dépendante sont les suivantes :

  • Windows : Windows 8.1 ou supérieur.

  • macOS: macOS 13 Ventura or later.

  • GNU/Linux : Aucune exigence minimale spécifique n'est indiquée. En général, n'importe quelle distribution moderne devrait suffire.

Installation spécifique aux OS

Les pages suivantes expliquent la procédure d'installation pour différents OS.

Installation sur GNU/Linux

Installation sur Debian

Le paquet binaire est disponible sur Debian testing et une ancienne version pour stable. Il peut être installé via apt, avec les privilèges du superutilisateur :

Installation sur Ubuntu ou Linux Mint
Dépôts officiels

Pour debian, Siril est disponible dans les dépôts, mais la version peut être obsolète :

sudo apt install siril
Dépôts PPA

La nouvelle version est donc disponible dans notre PPA, ce qui est la meilleure façon d'installer Siril sur Ubuntu ou Linux Mint :

sudo add-apt-repository ppa:lock042/siril
sudo apt-get update
sudo apt-get install siril
Installation du binaire AppImage

Pour les systèmes GNU/Linux, nous avons décidé de fournir des binaires AppImage (x86_64) et flatpak qui fonctionnent sur les systèmes GNU/Linux. Pour exécuter le binaire AppImage, il suffit de le télécharger et de permettre son exécution à l'aide de la commande :

chmod +x Path/To/Application/Siril-x.y.z-x86_64.AppImage

En remplaçant par le chemin correct et x,y et z par les numéros de version. Ensuite, un simple double-clic sur l'AppImage lance Siril.

Installation du flatpak

Un autre moyen d'installer la version stable de Siril est d'utiliser le flatpak, l'utilitaire de déploiement de logiciels et de gestion des paquets pour Linux. Pour installer le flatpak, tapez la commande suivante :

flatpak install flathub org.siril.Siril

Ensuite, pour exécuter l'application :

flatpak run org.siril.Siril

Installation sur Microsoft Windows

Installation avec l'installeur

La méthode recommandée pour installer Siril est d'utiliser le programme d'installation fourni qui vous guidera pas à pas.

installer_start

Premier écran du programme d'installation, vous devez accepter les termes du contrat de licence pour continuer.

installer_end

Dernier écran de l'installateur. Vous pouvez choisir de lancer Siril immédiatement après l'installation, et d'ouvrir le tutoriel expliquant les premières étapes.

L'assistant d'installation de Siril installera tous les fichiers nécessaires au bon endroit et à la fin vous aurez le choix de créer ou non un raccourci sur le bureau.

Note

Siril sera installé dans C:\Program Files\Siril. Si vous n'avez pas les droits pour installer dans ce dossier, veuillez utiliser la version portable à la place (voir Installation de la version binaire portable.)

Installation de la version binaire portable

Si vous souhaitez utiliser Siril sans installer toutes sortes de fichiers sur votre ordinateur (par exemple si vous n'avez pas les droits d'administrateur sur la machine), il est recommandé d'utiliser la version portable. Elle se présente sous la forme d'un fichier zip, qu'il vous suffit d'extraire à l'endroit de votre choix, puis d'aller dans le dossier bin pour lancer siril.exe. Vous pouvez également créer un raccourci sur votre bureau pour faciliter le lancement de l'application.

Avertissement

Attention, en aucun cas vous ne devez déplacer le fichier exe , ou tout autre fichier. Sinon Siril ne fonctionnera pas.

Compiler sur Windows avec Msys2

Ces instructions sont destinées à la compilation sous Windows avec MSYS2 en utilisant la chaîne d'outils UCRT64. MSYS2 nécessite Windows 10 64 bits ou plus récent, et ne fonctionne pas avec les systèmes de fichiers FAT.

Note

À partir de Siril 1.4.2, UCRT64 est le seul environnement de compilation pris en charge sous Windows. L'environnement MinGW64, auparavant pris en charge comme alternative, a été déprécié par le projet MSYS2 le 15 mars 2025. Plusieurs dépendances de Siril ont déjà été retirées de l'index des paquets MinGW64, et d'autres devraient suivre. Toutes les futures versions de Siril seront compilées exclusivement avec UCRT64.

Si vous utilisez l'installateur ou les binaires portables fournis sur le site web de Siril, ce changement est transparent pour vous. Si vous compilez Siril à partir des sources, vous devez utiliser l'environnement UCRT64.

L'utilisation d'UCRT64 augmente également le nombre de fichiers pouvant être gérés dans une séquence, jusqu'à 8192.

Téléchargez MSYS2 64bit, une plateforme de distribution et de construction de logiciels pour Windows, et exécutez le programme d'installation x86_64 pour 64 bits. Lorsque cela vous est demandé, indiquez le répertoire dans lequel MSYS2 sera installé.

Exécutez MSYS2 directement à partir du programme d'installation, ou plus tard urcrt64-logo MSYS2 MinGW UCRT x64 à partir du menu Démarrer ou d'un raccourci.

Avertissement

Assurez-vous de lancer le shell UCRT x64 (l'icône en haut de la fenêtre du terminal doit être jaune).

Tout d'abord, mettez à jour la base de données des paquets et les paquets du système de base en tapant (pour plus d'informations sur pacman, voir cette page) :

pacman -Syu
Installation des dépendances

Pour installer les dépendances, entrez la commande suivante :

curl -s -o siril-deps.sh https://gitlab.com/free-astro/siril/-/raw/master/build/windows/native-gitlab-ci/siril-deps.sh
bash siril-deps.sh

Note

Le lien ci-dessus pointe vers la dernière version du script d'installation des dépendances. Nous avons eu par le passé tendance à ne retirer aucune dépendance (plutôt à en ajouter), donc même si vous souhaitez compiler la branche stable, vous devriez pouvoir utiliser sans problème le dernier script de dépendances. Si une dépendance venait à manquer pour une version spécifique, vous pouvez toujours consulter le script correspondant au tag concerné dans le dépôt GitLab.

Construire à partir de la source

Le code source est hébergé sur GitLab. Téléchargez-le à l'aide de la commande suivante :

git clone https://gitlab.com/free-astro/siril.git
cd siril
git submodule update --init

Générez le système de construction et compilez le code :

meson setup _build --buildtype release
ninja -C _build install

Pour lancer votre version de Siril, ouvrez un shell MSYS2 UCRT64 et tapez :

siril

Vous pouvez également créer un raccourci vers siril.exe, l'emplacement par défaut est C:\msys2\ucrt64\bin\.

Pour mettre à jour votre version, ouvrez un shell MSYS2 UCRT64, puis :

pacman -Syu
cd siril
git pull --recurse-submodules
meson setup _build --reconfigure
ninja -C _build && ninja -C _build install

Si git pull ne montre aucun changement, il n'est pas nécessaire de reconstruire. Sinon, les commandes ci-dessus mettront à jour votre version. Puis lancez Siril avec :

siril

Avertissement

À partir de Siril 1.3.6, vous devrez avoir Python installé sur votre système si vous compilez à partir des sources. La première fois que vous lancez un Siril auto-compilé, vous devez le faire depuis un environnement Windows natif, et non depuis le shell MSYS2, afin que Siril détecte l'installation Python de Windows plutôt que celle de MSYS2 (une notification apparaîtra dans la console si cette étape est ignorée, et le module sirilpy ne sera pas initialisé). Il s'agit d'une exigence ponctuelle. Une fois l'environnement virtuel configuré, vous pouvez démarrer Siril depuis le shell MSYS2 comme d'habitude.

Pour lancer Siril dans un environnement Windows, ouvrez soit un terminal Windows et exécutez C:\msys2\ucrt64\bin\siril.exe, soit repérez ce fichier dans l'Explorateur et double-cliquez dessus.

Installation sur MacOS

Installation de l'application

L'application macOS est fournie par architecture :

  • Intel (macOS 13 Ventura+)

  • Apple Silicon (macOS 13 Ventura+)

Choisissez le lien correspondant à l'architecture de votre processeur et téléchargez l'image disque. Une fois téléchargée, double-cliquez pour l'ouvrir.

macos-dmg

Une nouvelle fenêtre s'ouvre. Glissez l'icône Siril et déposez-la sur celle des Applications.

macos-dmg

Félicitation, Siril est maintenant installé.

Installation à partir de Homebrew

Homebrew est similaire à MacPorts et fournit des paquets (aka formulae) à installer, soit en les compilant à partir des sources, soit en utilisant des binaires précompilés (aka bottles). Pour installer Homebrew, cliquez ici. Siril peut être installé avec :

brew install siril

Note

Veuillez noter qu'il a été annoncé que Homebrew utilise des outils d'analyse. Pour désactiver cela, exécutez : brew analytics off Vous pouvez en savoir plus sur Brew Analytics.

Installation depuis les sources

L'installation à partir du code source est nécessaire si vous souhaitez bénéficier des dernières fonctionnalités, si la version précédente est devenue obsolète, si vous souhaitez participer à l'amélioration de Siril ou ne pas utiliser toutes les dépendances.

Récupérer les sources

Les sources sont stockées sur un dépôt git, que vous pouvez télécharger avec cette commande la première fois :

git clone --recurse-submodules https://gitlab.com/free-astro/siril.git

Et mettez-le à jour les fois suivantes à l'aide de ces commandes dans le répertoire de base de siril :

git pull
git submodule update --recursive
Dépendances

Siril dépend d'un certain nombre de bibliothèques, dont la plupart devraient être disponibles dans votre distribution Linux ou dans le gestionnaire de paquets de votre choix. Les noms des paquets spécifiques aux systèmes d'exploitation sont indiqués dans chaque section ci-dessous. Les dépendances obligatoires sont :

  • gtk+3 (bibliothèque d'interface utilisateur graphique), au moins la version 3.20.

  • adwaita-icon-theme (icônes) pour supporter l'apparence de gtk.

  • cfitsio (support des images FITS).

  • fftw (Bibliothèque de Transformée de Fourier Discrète).

  • gsl (The GNU Scientific Library), version 1 ou 2 à partir de la version 0.9.1 ou révision SVN 1040.

  • OpenCV et un compilateur C++ pour certaines opérations sur les images.

  • Little CMS un système de gestion des couleurs open source

  • wcslib pour la gestion du système de coordonnées mondiales, les annotations et l'étalonnage photométrique des couleurs.

  • gtksourceview4 pour l'édition de texte multiligne. GtkSourceView ajoute la prise en charge de la coloration syntaxique, de l'annulation/rétablissement, du chargement et de l'enregistrement de fichiers, de la recherche et du remplacement, d'un système de complétion, de l'impression, de l'affichage des numéros de ligne, et d'autres fonctionnalités typiques d'un éditeur de code source.

Note

Même si Siril peut fonctionner en console depuis la version 0.9.9, il est toujours lié aux bibliothèques graphiques, donc vous avez toujours besoin de GTK+ pour le compiler et le faire fonctionner.

Les dépendances optionnelles sont :

  • openmp pour le multithreading. Bien qu'optionnelle, cette dépendance est fortement recommandée car les performances seront bien meilleures. Le drapeau de cette option est mis à true par défaut. Cela signifie que si openmp n'est pas installé sur votre machine, vous devez ajouter -Dopenmp=false dans la configuration de 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 pour le support natif des films en tant que séquences d'images. Il permet également d'extraire des images de nombreux types de films, à d'autres fins que l'astronomie. Les versions < 2.20 ont un bug gênant. Il est recommandé d'installer la dernière version.

  • ffmpeg (ou libav), fournissant libavformat, libavutil (>= 55.20), libavcodec, libswscale et libswresample pour l'exportation de séquences mp4.

  • wcslib pour la gestion du système de coordonnées mondiales, les annotations et l'étalonnage photométrique des couleurs.

  • Exiv2 pour gérer les métadonnées des images.

  • libcurl pour les requêtes d'astrométrie et de photométrie.

  • libgit2 pour maintenir un clone local du dépôt siril-scripts.

Dépendances de la compilation

Pour l'installer à partir du code source, vous devrez installer les paquets de développement de base :

git, autoconf, automake, libtool, intltool, pkg-tools, make, cmake, gcc, g++

Les compilateurs gcc et g++ de cette liste peuvent être remplacés par clang et clang++ (nous les utilisons pour le développement), et probablement d'autres aussi.

Les packages autotools (autoconf, automake, probablement d'autres) peuvent être remplacés par meson.

Processus de compilation général

Siril peut être compilé à l'aide d'autotools ou de meson.

Meson

La méthode recommandée est d'utiliser meson et ninja :

meson setup _build --buildtype release

cd _build
ninja
ninja install

Pour désactiver certaines dépendances ou fonctionnalités, utilisez les options meson -Dfeature=false ou -Denable-feature=yes en fonction des cas.

Le tableau ci-dessous énumère toutes les options configurables.

Option

Type

Valeur

Choix

Description

relocatable-bundle

combo

platform-default

[ 'yes', 'no', 'platform-default' ]

construire avec les ressources considérées comme regroupées sous le même préfixe

openmp

booléen

vrai

N/A

construire avec le support OpenMP

exiv2

booléen

vrai

N/A

construire avec le support exiv2

libgit2

booléen

vrai

N/A

construire avec l'intégration de git libgit2

libraw

booléen

vrai

N/A

construire avec le support LibRaw

libtiff

booléen

vrai

N/A

construire avec le support TIFF

libjpeg

booléen

vrai

N/A

construire avec le support JPEG

libjxl

booléen

vrai

N/A

avec prise en charge de JPEG XL

libpng

booléen

vrai

N/A

construire avec le support PNG

libheif

booléen

vrai

N/A

construire avec le support HEIF

libXISF

booléen

vrai

N/A

construire avec le support XISF

ffms2

booléen

vrai

N/A

construire avec le support FFMS2

ffmpeg

booléen

vrai

N/A

construire avec le support FFmpeg

libcurl

booléen

vrai

N/A

Utiliser libcurl pour l'accès au web

criterion

booléen

faux

N/A

construire avec le support criterion

flatpak-id

chaîne de caractères

N/A

défini par flatpak-builder en cas de compilation d'un flatpak

Autotools

La méthode autotools est bien connue dans le monde unix, une fois que les sources ont été téléchargées et que les prérequis ont été installés, la façon générale de compiler le logiciel est la suivante :

./autogen.sh
make
make install

éventuellement avec des privilèges de superutilisateur pour la dernière ligne.

Vous pouvez vouloir passer des options spécifiques au compilateur, par exemple si vous voulez que l'optimisation et l'installation se fassent dans /opt au lieu du /usr/local par défaut :

CFLAGS='-mtune=native -O3' ./autogen.sh --prefix=/opt

Pour lancer Siril, le nom de la commande est siril ou siril-cli.

Installation sur les systèmes de type Debian

Vous pouvez vouloir construire un paquet .deb au lieu d'utiliser une version non empaquetée, dans ce cas voir cette help. En particulier, pour installer des dépendances, vous pouvez utiliser la commande :

apt build-dep siril

Sinon, voici la liste des paquets pour la version actuelle :

  • Paquets nécessaires au système de compilation :

autoconf automake make gcc g++ libtool intltool pkg-config cmake
  • Liste des paquets pour les dépendances obligatoires :

libgtk-3-dev libcfitsio-dev libfftw3-dev libgsl-dev libopencv-dev
liblcms2-dev wcslib-dev libgtksourceview-4-dev
  • Liste des paquets pour les dépendances optionnelles :

libcurl4-gnutls-dev libpng-dev libjpeg-dev libtiff5-dev
libraw-dev gnome-icon-theme libavformat-dev libavutil-dev libavcodec-dev
libswscale-dev libswresample-dev libgit2-dev libheif-dev
libexiv2-dev libjxl-dev liblz4-dev libpugixml-dev libxisf-dev

pour la prise en charge des films (AVI et autres) :

libffms2-dev
Installation sous Arch Linux

Deux paquets sont disponibles sur AUR : siril et siril-git. Téléchargez le PKGBUILD ou le dépôt, installez les dépendances, exécutez makepkg pour construire le paquet et pacman -U pour l'installer.

Dépendances (obligatoires et quelques unes optionnelles) :

pacman -S base-devel cmake git intltool gtk3 fftw cfitsio gsl opencv
exiv2 libraw wcslib gtksourceview4
version de LittleCMS

Siril nécessite lcms2 >= 2.14 pour être compilé. Cette version est nécessaire afin d'assurer l'optimisation du code de gestion des couleurs. Une version suffisante est disponible dans les tests Debian et Ubuntu 23.04, mais la version actuelle d'Ubuntu LTS fournit une version plus ancienne, et d'autres distributions de système d'exploitation peuvent également le faire. Si vous vous trouvez sur un système d'exploitation plus ancien qui ne fournit pas lcms2 >= 2.14, vous pouvez soit installer manuellement les packages à partir d'une version plus récente de votre distribution, soit créer et installer lcms2 à partir du code source. La source lcms2 est disponible sur leur dépôt git.

Échecs de compilation

Chaque commit sur le git de Siril est automatiquement construit dans un environnement de construction standard pour Linux, Windows et MacOS en utilisant l'infrastructure gitlab CI. Cela signifie que nous avons une grande confiance dans le fait que la branche master, ainsi que les versions taguées, se construiront avec succès dans un environnement de construction correctement configuré avec les dépendances nécessaires installées.

Si vous rencontrez un échec de compilation, il est probable que cela indique un problème avec votre environnement de construction ou des dépendances mal installées - rappelez-vous que de nombreuses distributions nécessitent l'installation séparée de paquets de développement qui contiennent les fichiers d'en-tête nécessaires. Vérifiez le rapport du CI pour le commit git que vous essayez de compiler. Dans le cas improbable où un échec de compilation est affiché, soyez assuré que l'équipe travaille à le corriger. Dans le cas contraire, si le pipeline CI affiche des coches vertes, vous devrez examiner et corriger les problèmes dans votre propre environnement de construction.

Si vous pensez toujours avoir trouvé un problème de compilation qui n'a pas été signalé par le pipeline CI - par exemple si vous construisez sur une plateforme différente, comme BSD, que les développeurs n'utilisent pas régulièrement - alors n'hésitez pas à soulever un problème sur gitlab.

Notez que les problèmes ne doivent être soulevés que pour la branche principale (master) ou les versions taguées. Si vous testez de nouvelles fonctionnalités dans le cadre de demandes de fusion, veuillez fournir un retour d'information dans les commentaires de la demande de fusion concernée.

Système Python

Si vous compilez Siril vous-même, vous devez vous assurer de disposer d'une installation Python système fonctionnelle incluant pip et venv. Notez ce dernier point, car sur certains systèmes (au moins les systèmes basés sur Debian / Ubuntu, et peut-être d'autres), Python est réparti en de nombreux paquets et vous devez vous assurer que les paquets fournissant pip et venv sont installés.

Interface Graphique Utilisateur

L'interface graphique utilisateur (GUI) vous permet de traiter vos images manuellement, ainsi que d'utiliser des scripts ou de taper des commandes. Pour apprendre à utiliser Siril en mode console, veuillez vous référer à cette section.

L'interface graphique de Siril est écrite en utilisant GTK, une boîte à outils multiplateforme libre et gratuite pour la création d'interfaces graphiques. Actuellement, la version utilisée est la version 3.

Les sous-sections suivantes vous guideront à travers la fenêtre de l'interface principale et les menus utiles.

Interface principale

Au lancement de Siril, l'interface principale s'ouvre.

Note

Cliquez n'importe où sur l'image ci-dessous pour afficher ses fonctions.

Interface principale

Zone d'image

Cette zone affiche l'image actuellement chargé. Cliquez sur Rouge, Vert ou Bleu pour passer d'une couche à l'autre (image couleur seulement, un seul onglet NB est disponible pour les images mono).

Cliquez avec le bouton droit de la souris sur l'image pour afficher un menu contextuel :

Clique droit

Astuce

Si aucune image n'est chargée, un double-clic sur la zone d'image fait apparaître la boîte de dialogue Ouvrir.

Annuler

Annule l'opération la plus récente.

Rétablir

Rétabli l'opération la plus récemment annulée.

PSF

Calcule une PSF pour la sélection actuelle et effectue une photométrie rapide.

PSF de la séquence

Calcule une PSF de la sélection pour toutes les images de la séquence chargée.

Sélectionner une étoile

Applique la détection d'étoiles à la sélection actuelle. Le résultat est ouvert dans la boîte de dialogue PSF dynamique. Notez que cette opération est plus souple que la routine de recherche d'étoiles sur l'image complète car elle suppose que vous avez choisi une sélection contenant une étoile : elle peut donc être utilisée pour sélectionner des étoiles qui ont été manquées par la fonction de recherche d'étoiles sur l'image complète.

Sélection

Applique des contraintes à la boîte de sélection.

Recadrer

Fournit une interface aux fonctions Recadrer et Recadrer & rotation.

Astuce

Si une image CFA est chargée, le recadrage sera contraint à une limite CFA afin que le motif CFA effectif reste inchangé pour les opérations futures. Pour les motifs Bayer CFA, cela signifie que la sélection de recadrage s'alignera sur un multiple de 2x2 et pourra se décaler jusqu'à 1 pixel dans les directions x et y afin de s'aligner sur le début du motif Bayer. Pour les motifs X-Trans, la sélection de recadrage s'alignera sur un multiple de 6x6 et pourra se décaler jusqu'à 5 pixels dans chaque direction.

Avertissement

Faire pivoter une image CFA selon des angles arbitraires détruira le motif CFA : vous devriez faire progresser votre flux de travail jusqu'au point où le motif CFA a été dématricé ou drizzlé en Bayer avant d'effectuer toute opération appliquant une rotation ou une mise à l'échelle.

ROI

Fournit une interface permettant de définir ou d'effacer la région d'intérêt pour le traitement ROI. Remarque : cette entrée de menu n'est pas disponible si le mode ROI est réglé sur "Automatique à partir de la sélection" dans les préférences.

Aligner RVB

Aligne les canaux RVB de l'image. Cette méthode prend en charge une série de méthodes pour l'alignement :

  • Alignement global des étoiles en 2 passes Cette méthode utilise la routine d'alignement global des étoiles en 2 passes avec un cadrage COG (par centre de gravité, afin que les dimensions de l'image soient préservées). Cet algorithme s'ajuste avec 8 degrés de liberté, ce qui lui permet de corriger le décalage, la rotation et l'obliquité de l'image. C'est l'algorithme recommandé pour les images contenant des étoiles. Cet algorithme est global et ne nécessite pas de sélection.

  • Alignement KOMBAT Cette méthode utilise la méthode d'alignement KOMBAT. Elle est principalement destinée à l'alignement planétaire, mais peut également fonctionner pour les images de ciel profond. Elle ne permet qu'un alignement par décalage, mais est rapide. Cet algorithme nécessite une sélection.

  • Alignement sur une étoile Il s'agit d'un ancien algorithme qui fournit un alignement par décalage uniquement, basé sur le mouvement d'une seule étoile. Il est très rapide, mais l'alignement ne peut pas prendre en compte autant de degrés de liberté que l'alignement global en deux passes. Il peut convenir si vous êtes certain de ne devoir corriger que le décalage de l'image. Cet algorithme nécessite la sélection d'une seule étoile.

  • Alignement par motif de l'image Cette méthode effectue l'alignement en utilisant les transformées de Fourier de l'image. Elle fonctionne pour les images de ciel profond et les images planétaires, mais ne fournit qu'un alignement de décalage et est assez lente. Cet algorithme utilise une sélection carrée : une sélection doit être effectuée et les sélections non carrées seront corrigées pour être carrées.

Avertissement

Il s'agit d'un outil d'alignement RVB. Il n'est pas destiné à aligner des compositions LRGB non alignées et ne fonctionnera pas pour cela. Pour ce faire, vous devez soit aligner les calques à composer avant la composition, soit aligner à l'aide de l'outil d'alignement RVB.

Retour à la figure

Ouvrir

Cliquez sur ces icônes (de gauche à droite) pour :

Retour à la figure

Livestack

Cliquer sur ce bouton pour démarrer une session Live stacking (empilement en direct).

Retour à la figure

Annuler/Rétablir

Utilisez ces boutons pour annuler/rétablir les dernières actions. Cette fonction n'est disponible que si la dernière action a été effectuée via l'interface graphique, et non en tapant une commande.

Retour à la figure

Traitement de l'image

Cliquez sur ce bouton pour afficher le menu Traitement.

Retour à la figure

Outils

Cliquez sur ce bouton pour afficher le menu Outils.

Retour à la figure

Scripts

Cliquez sur ce bouton pour afficher et lancer les scripts.

Retour à la figure

Barre d'information

Cette barre affiche la version actuelle de Siril et le chemin d'accès au répertoire de travail actuel.

  • A droite, les information sur la quantité disponible de RAM et d'espace disque sont également données.

  • Vous pouvez changer le nombre de fils d'exécution disponible utilisés par Siril en utilisant les signes +/-.

Retour à la figure

Sauvegarder

Ces boutons sont utilisés pour sauvegarder vos résultats :

  • sauvegarde (écrase) l'image courante.

  • sauvegarde avec un différent nom et/ou extension.

    Boîte de dialogue StarNet

    Boite de dialogue de sauvegarde.

    La liste déroulante en bas à droite permet de choisir le type d'image enregistrée. Elle ajoute automatiquement l'extension au nom de fichier. Cependant, en restant en mode Fichiers d'images pris en charge, il est possible d'ajouter manuellement n'importe quelle extension prise en charge par Siril et elle sera enregistrée dans le format de fichier correct.

  • prendre un instantané de la vue actuelle (telle qu'elle apparaît à l'écran, ce qui signifie que l'étirement de la prévisualisation, le cas échéant, est appliqué). Deux options sont possibles. Soit l'instantané est sauvegardé dans le presse-papiers, soit il est directement copié sur le disque dans le répertoire de travail.

  • change la profondeur de bit de l'image actuelle. Le choix est entre 16 bits et 32 bits.

Retour à la figure

Menu burger

Ouvre le menu principal, également appelé menu burger. Donne accès à Préférences, la documentation et bien plus encore.

Retour à la figure

Onglets

Sélectionne un des onglets. Vous pouvez aussi passer d'un onglet à l'autre en utilisant les raccourcis clavier F1 à F7.

Plus de détails peuvent être trouvés ici :

Onglets

Clés

Conversion

F1

Séquence

F2

Calibration

F3

Alignement

F4

Graphique

F5

Empilement

F6

Console

F7

Retour à la figure

Fenêtre de l'onglet

Affiche les spécificités de l'onglet actuellement sélectionné.

Retour à la figure

Comportement de la souris

Siril utilise les boutons primaire, secondaire et central de la souris. Ces boutons correspondent généralement aux boutons gauche, droit et central (défilement de la molette) de la souris physique, mais ils peuvent être affectés différemment dans certaines configurations (par exemple, les gauchers peuvent avoir configuré des boutons gauche et droit inversés).

  1. Bouton primaire de la souris

    Le bouton primaire de la souris est utilisé à plusieurs fins :

    • Pour sélectionner des zones de l'image

    • En appuyant sur Ctrl (ou Cmd sur MacOS), pour effectuer un déplacement sur l'image

    • Lorsque l'outil de profilage d'intensité est actif, pour faire glisser la ligne le long de laquelle le profil d'intensité doit être dessiné, et pour sélectionner des points correspondant à des longueurs d'onde / nombres d'onde connues dans le réglage de la spectroscopie

    • Dans l'outil de composition RVB, pour sélectionner le centre de rotation lors de l'utilisation de l'alignement manuel

    • Dans l'outil de suppression des gradients, pour dessiner des échantillons

    • En mode photométrie, pour effectuer une photométrie sur une étoile

    • Pour sélectionner les positions des aperçus de l'alignement manuel

    • Un double clic sur le bouton principal de la souris, alors qu'aucune image n'est chargée, fait apparaître la boîte de dialogue Ouvrir.

  2. Bouton secondaire de la souris

    Le bouton secondaire de la souris est utilisé à plusieurs fins :

    • Pour faire apparaître le menu contextuel de l'image (sauf en mode photométrie)

    • Dans l'outil de suppression de gradient, pour supprimer des échantillons

    • En mode photométrie, pour effectuer une photométrie sur l'étoile sélectionnée pour toutes les images de la séquence actuellement chargée (si aucune séquence n'est chargée, cela n'a pas d'effet)

  3. Bouton central de la souris

    Le bouton du milieu de la souris est utilisé dans les cas suivants :

    • Pour effectuer un déplacement de l'image au niveau de zoom actuel

    • En appuyant sur Ctrl (ou Cmd sur MacOS), pour faire une sélection carrée de taille convenable pour la photométrie

    • Un double clic ajuste le niveau de zoom à une valeur prédéfinie. Ce comportement est configurable dans l'onglet Interface utilisateur de la boîte de dialogue Préférences. Les choix sont :

      • Toujours zoomer pour ajuster

      • Zoom toujours à 100% centré sur le curseur de la souris

      • Basculer entre le zoom pour s'adapter et le zoom à 100 % centré sur le curseur de la souris

  4. Molette de défilement

    • La molette de défilement permet de régler le niveau de zoom.

Ligne de commande

Tapez une commande et appuyez sur Entrer.

  • Vous pouvez appuyer sur le bouton au bout de la ligne pour obtenir de l'aide sur l'utilisation.

  • Vous pouvez également interrompre le processus en cours d'exécution en cliquant sur le bouton Arrêter.

Retour à la figure

Développer

Cliquez sur cette barre pour développer/rétracter toute la zone onglet/fenêtre d'onglet.

Retour à la figure

Curseurs d'image

Utilisez les curseurs supérieur et inférieur pour régler les points blancs et noirs de l'image prévisualisée (en mode linéaire).

Astuce

Cliquez sur le nom de l'Image ou de la Séquence chargée pour copier son nom dans le presse-papiers (utile pour le coller dans une commande).

Retour à la figure

Mode prévisualisation

Sélectionne le mode d'aperçu de l'image chargée, parmi les choix suivants :

  • Linéaire

  • Logarithme

  • Racine carrée

  • Carré

  • Asinh

  • Auto ajustement (cocher la case Haute définition pour utiliser une profondeur de 24 bits au lieu de celle de 16 bits par défaut)

  • Histogramme

En mode Auto ajustement avec des images en couleur, le bouton à bascule situé à droite active/désactive la liaison des canaux. Lorsqu'il est désactivé, les 3 couches sont étirées de manière indépendante afin de donner une image plus équilibrée.

Avertissement

Il s'agit juste d'un aperçu de l'image, et non des données réelles (sauf si le mode linéaire est sélectionné). N'oubliez pas d'étirer vos images avant de les enregistrer.

Retour à la figure

Vues spéciales

Utilisez ces boutons pour afficher les images prévisualisées :

  • en couleur inversées

  • en fausses couleurs

Retour à la figure

Outils d'astrométrie

Utilisez ces boutons pour afficher :

Avertissement

L'image chargé doit avoir été résolue astrométriquement pour que ces boutons soient actifs.

Retour à la figure

Photométrie rapide

Utilisez ce bouton pour déclencher le mode photométrie rapide.

Retour à la figure

Profil d'intensité

Cette option permet de déclencher le mode intensity profile.

Retour à la figure

Zoom

Utilisez ces bouton pour :

  • Zoom arrière

  • Zoom avant

  • Zoom pour s'adapter à l'espace disponible dans la fenêtre

  • Zoom à la taille réelle

Astuce

Ctrl+clic gauche permet de naviguer dans l'image

Astuce

Ctrl+défilement de la souris fera un zoom avant/arrière et Ctrl + 0 / 1 fera un zoom pour s'adapter à 100 %.

Astuce

Ctrl+Maj et glisser avec le bouton principal de la souris mesurera la distance entre deux points. Si des métadonnées suffisantes sont disponibles, la mesure sera donnée en degrés, minutes et secondes d'arc, sinon elle sera donnée en pixels.

Retour à la figure

Transformations géométriques

Utilisez ces bouton pour :

  • Rotation vers la gauche

  • Rotation vers la droite

  • Miroir autour de l'axe horizontal

  • Miroir autour de l'axe vertical

Retour à la figure

Sélecteur d'image

Cliquez sur ce bouton pour ouvrir le sélecteur d'images.

Retour à la figure

Barre d'outils principale

La barre d'outils principale se trouve au bas de la fenêtre principale de Siril. Elle permet d'accéder rapidement aux commandes d'affichage, aux outils d'analyse et aux commandes de base pour la transformation des images.

Barre d'outils principale de Siril

Barre d'outils principale de Siril.

Note

La barre d'outils n'est active que lorsqu'une image est chargée en mémoire.

Groupe d'affichage

Mode d'affichage

Le premier contrôle est un bouton de menu déroulant affichant le mode d'affichage actuel (Linéaire par défaut). En cliquant dessus, vous ouvrez la liste de tous les modes visuels disponibles dans Siril :

  • Linéaire — rendu direct des valeurs de pixels. Il s'agit du mode de référence.

  • Logarithme — applique une fonction de transfert logarithmique, compressant les zones lumineuses et faisant ressortir les détails faibles.

  • Racine carrée — applique une fonction de transfert racine carrée, une alternative plus douce au logarithme.

  • Carré — applique une fonction de transfert quadratique, amplifiant les zones claires au détriment des ombres.

  • Asinh — applique une fonction de transfert sinus hyperbolique inverse, offrant un étirement fluide et naturel.

  • Auto Ajustement — calcule et applique automatiquement un étirement pour un résultat visuellement agréable. Une sous-option Haute définition est disponible pour augmenter la précision du calcul de l'étirement.

  • Histogramme — applique un étirement basé sur l'histogramme de l'image pour un affichage équilibré.

Avertissement

Seul le mode Linéaire (avec les deux curseurs de visualisation réglés sur leurs positions minimale et maximale) reflète les valeurs réelles des pixels. Tous les autres modes sont purement visuels. Étirez l'histogramme avant de l'exporter vers un outil externe.

Liaison de canaux

Immédiatement à droite du sélecteur de mode se trouve un bouton à bascule affichant une icône en forme de maillon de chaîne.

  • Chaîne fermée — les canaux R, G et B sont liés en mode Auto Ajustement.

  • Chaîne cassée — les canaux sont étirés indépendamment les uns des autres.

Groupe de rendu visuel

Vue négative

Permet de basculer entre l'affichage normal et l'affichage négatif de l'image. Utile pour détecter les artefacts subtils ou les dégradés légers.

Fausse couleur / palette de couleurs arc-en-ciel

Permet de basculer entre l'affichage normal et un rendu en fausses couleurs (palette arc-en-ciel). Ce mode permet de visualiser plus clairement les variations d'intensité à travers l'image.

Groupe d'astrométrie

Annotation d'objet
  • Clic gauche — affiche les noms des objets célestes si les informations WCS (World Coordinate System) sont disponibles dans l'image.

  • Clic droit — ouvre la liste des catalogues astrométriques disponibles pour sélectionner la source d'annotation.

Grille céleste

Affiche ou masque la grille de coordonnées célestes (ascension droite / déclinaison) si les informations WCS sont disponibles dans l'image.

Groupe d'analyse

Photométrie / PSF

Passe en mode photometry / PSF mode. Dans ce mode :

  • Un clic sur une étoile effectue un ajustement PSF (Point Spread Function) et affiche les paramètres photométriques.

  • Si une séquence est chargée, un clic droit sur l'image affichée applique l'analyse PSF/photométrie à l'ensemble de la séquence.

Coupe du profil d'intensité

Active l'outil de découpe du profil d'intensité intensity profile cut tool : tracez un segment entre deux points de l'image pour afficher un graphique des valeurs de pixels le long de cette ligne.

Groupe Zoom

Zoom arrière

Réduit le facteur de zoom (réduit l'image affichée). Raccourci clavier habituel : -.

Zoom avant

Augmente le facteur de zoom (agrandit l'image affichée). Raccourci clavier habituel : +.

Ajuster à la fenêtre

Lorsque le bouton est activé, l'image est automatiquement redimensionnée pour remplir la zone disponible de la fenêtre.

Taille réelle — 1:1

Affiche l'image à sa taille réelle (1 pixel de l'image = 1 pixel de l'écran).

Groupe des transformations géométriques

Tourner de 90° dans le sens inverse des aiguilles d'une montre

Applique une rotation de 90° dans le sens inverse des aiguilles d'une montre à l'image.

Tourner de 90° dans le sens des aiguilles d'une montre

Applique une rotation de 90° dans le sens des aiguilles d'une montre à l'image.

Miroir horizontal

Applique un retournement horizontal (réflexion par rapport à l'axe vertical).

Miroir vertical

Applique un retournement vertical (réflexion par rapport à l'axe horizontal).

Groupe de séquences

Liste des images de la séquence

Affiche ou masque le panneau latéral répertoriant les images de la séquence actuelle, ainsi que les données d'enregistrement associées à chaque image.

Menu Burger

Page Menu Principal 1

Préférences

Ouvre le menu Préférences.

Documentation

Ouvre la documentation en ligne.

Vérifier les mises à jour

Vérifier si une version plus récente est disponible.

Raccourcis clavier

Ouvre un panneau rappelant tous les Raccourcis disponibles.

À propos de Siril

Ouvre une boîte de dialogue affichant les informations de version et les crédits.

Menu Outils

menu outils

Menu Outils

Introduit avec la version 1.4, ce menu regroupe les différents outils de Siril, tels que l'analyse d'images, l'astrométrie, la photométrie, etc.

Il se compose de plusieurs menus et sous-menus imbriqués, organisés comme suit :

Pour obtenir des informations détaillées sur chaque élément, cliquez sur l'entrée correspondante.

Menu traitement d'image

Ce menu est expliqué en détail dans la page suivante.

Traitement des régions d'intérêt (ROI)

Siril propose le traitement des régions d'intérêt (ROI) pour certaines fonctions. Le traitement des ROI a deux objectifs :

  • Pour les opérations sur les images qui sont lentes à calculer, comme la déconvolution, il permet de ne traiter qu'une petite partie de l'image tout en expérimentant afin de trouver les paramètres idéaux. Cela signifie que l'opération se termine beaucoup plus rapidement sur la petite région d'intérêt et permet de choisir les paramètres souhaités beaucoup plus rapidement.

  • Pour les opérations d'image qui affectent l'aspect de l'image, telles que les étirements, les outils de saturation, etc., il peut être pratique d'utiliser le traitement ROI pour comparer côte à côte une zone non traitée et une zone traitée.

Le traitement des ROI n'est pas universel pour toutes les opérations sur les images dans Siril. En fait, il y a beaucoup de cas où cela n'aurait pas de sens, par exemple les opérations géométriques où le contenu de la ROI serait mappé sur une partie différente de l'image. Le traitement des ROI n'est pas supporté pour les opérations d'image qui prennent plusieurs images en entrée, c'est-à-dire Recomposition des étoiles, Composition RVB ou Pixel Math.

Opérations supportant les traitements avec ROI

Les opérations d'image suivantes prennent en charge le traitement des ROI :

  • La déconvolution La déconvolution peut être très lente, alors le traitement par ROI permet de tester plus rapidement les options sur une petite partie de l'image afin de trouver les meilleurs paramètres.

  • Réduction du bruit La réduction du bruit peut également être lente à traiter, de sorte que le traitement par ROI permet de tester plus rapidement les options.

  • Étirement asinh Un utilisateur peut souhaiter examiner l'effet de l'étirement asinh, ou de l'une des opérations d'image suivantes, côte à côte avec une zone non traitée. Le traitement par ROI le permet.

  • Étirement hyperbolique généralisée

  • Étirement de l'histogramme

  • Transformation par courbes

  • Saturation des couleurs

  • Filtre Médian

  • Suppression du bruit vert (SCNR)

  • Filtres préservant les contours

  • Filtre anti-violet

Aucun autre processus de traitement ne supporte les ROI.

Note

Le traitement avec ROI n'est généralement pas conçu comme un moyen de traiter une partie seulement d'une image.

Dans les opérations sur les images avec un aperçu mis à jour automatiquement, l'aperçu s'appliquera au xROI, mais lorsque Appliquer est cliqué, l'image entière est mise à jour.

Dans les opérations d'image qui n'ont pas de prévisualisation automatique, lorsqu'une ROI est défini, un bouton Prévisualisation (ROI) devient disponible. Il s'agit d'un bouton de prévisualisation manuelle, qui vous permet de prévisualiser une série de paramètres dans la ROI jusqu'à ce que vous soyez satisfait. Une fois les paramètres définis, cliquez sur Appliquer pour appliquer l'opération à l'ensemble de l'image.

Définition de la ROI

Il existe deux options pour définir la ROI :

  • Manuelle Cette option exige que la ROI soit défini et effacé manuellement à l'aide du menu du bouton droit de la souris, dans le sous-menu ROI ‣ Définir la ROI sur la sélection.

  • Automatique à partir de la sélection Cette option synchronise automatiquement la ROI avec la sélection en cours et l'efface lorsque la sélection est supprimée.

Ces options sont mutuellement exclusives et l'option préférée peut être configurée dans l'onglet Interface utilisateur de la boîte de dialogue Préférences.

Effacer la ROI

En mode de réglage manuel de la ROI, l'option permettant d'effacer la ROI se trouve dans le menu du bouton droit de la souris, dans le sous-menu ROI ‣ Effacer ROI.

En mode de réglage automatique de la zone d'intérêt, il suffit d'effacer la sélection en cours pour que la ROI s'efface.

La ROI s'efface également automatiquement dans les cas suivants :

  • Lorsque l'image en cours est fermée,

  • Lorsqu'une nouvelle image est ouverte,

  • Lorsqu'une nouvelle image est ouverte, lorsqu'une séquence est ouverte et que l'image affichée est modifiée.

Visualisation

Lorsqu'une zone d'intérêt est définie, elle est affichée dans la fenêtre d'image sous la forme d'une boîte rouge en pointillés, dans le même style que la boîte de sélection. Toutefois, lorsqu'une fenêtre de dialogue d'opération d'image est ouverte et que l'opération d'image prend en charge le traitement des ROI (ou si une ROI est défini alors qu'une telle boîte de dialogue est déjà ouverte), le contour de la ROI change de couleur et devient vert, indiquant que le traitement des ROI est activé pour l'opération en cours.

Ligne de commande

Les commandes Siril ignorent la ROI, même si elles sont exécutées en mode GUI à partir de la ligne de commande, et même si la même opération sur l'image prend en charge le traitement de la ROI lorsqu'elle est appelée à partir de l'interface graphique. Le ROI est destiné à donner un aperçu rapide, alors que les commandes sont destinées à opérer sur l'ensemble de l'image. Si une ROI est en place lors de l'exécution d'une commande, elle sera ignorée, mais pas effacée, de sorte qu'il sera toujours disponible pour les opérations ultérieures qui prennent en charge le traitement des ROI.

Transformations de l'espace colorimétrique

Toute opération visant à supprimer, attribuer ou convertir le profil ICC de l'image effacera la ROI, s'il est défini.

Fenêtre d'information sur l'image

Information sur l'image

Cette fenêtre fournit des informations sur ce qui est connu sur l'échantillonnage de l'image ouverte. L'échantillonnage, parfois appelé résolution ou échelle, indique combien d'angle du ciel est vu dans un pixel, tel que vu à travers l'instrument. Cela dépend de deux choses : la longueur focale de l'instrument et la taille de pixel du capteur, elle-même dépendant du mode de binning.

Les en-têtes FITS peuvent contenir ces informations si elles ont été donnés au logiciel d'acquisition. Dans ce cas, ce sont les valeurs qui sont affichées dans cette fenêtre. Si ces informations ne sont pas disponibles dans les métadonnées de l'image, car elles étaient inconnues du logiciel d'acquisition, ou simplement parce que le format de fichier ne le prend pas en charge, cette boîte de dialogue sera toujours disponible et remplie de valeurs par défaut. Elles peuvent être modifiées et utilisées pour diverses opérations de Siril qui nécessitent des informations d'échantillonnage, par exemple pour afficher la FWHM en secondes d'arc au lieu de pixels.

Les valeurs par défaut sont sans binning (1x1), avec une longueur focale et une taille de pixel stockées dans les paramètres. Les valeurs stockées dans les paramètres peuvent être définies à partir de cette boîte de dialogue en activant le bouton Enregistrer comme valeurs par défaut avant de cliquer sur Fermer. Elles peuvent également être définies en effectuant une résolution astrométrique sur l'image, également appelée plate solving, si l'option de mise à jour des valeurs par défaut lorsqu'un résultat est trouvé est activée dans les préférences.

Les valeurs affichées dans cette fenêtre seront stockées dans l'image actuellement chargée et si cette image est enregistrée au format FITS, elles seront stockées dans l'en-tête FITS.

La gestion du binning peut prendre deux formes selon le logiciel d'acquisition : la taille réelle du pixel est donnée mais doit être multipliée par le binning (lorsque Taille réelle des pixels est cochée), ou bien la taille du pixel déjà multipliée est donnée (lorsque non cochée).

Raccourcis

Siril utilise plusieurs raccourcis pour accéder aux outils de traitement ou pour manipuler l'application et/ou les images. Ces raccourcis sont détaillés dans la boite de dialogue Raccourcis accessible via la le menu burger menu-burger.

Page de raccourcie 1 Page de raccourci 2

Répertoire de travail

Le répertoire de travail (wd en anglais), également appelé répertoire de travail courant (cwd), est le répertoire dans lequel Siril travaille. Son choix est une étape cruciale, surtout lors de l'utilisation de scripts. Un mauvais choix de cwd est responsable de 90% des échecs de script. Ce dossier est sélectionné en cliquant sur le bouton Dossier personnel, en forme de maison : bouton cwd. C'est le répertoire dans lequel Siril enregistre les images par défaut (si aucun autre chemin n'est spécifié) et aussi le répertoire dans lequel il recherche les séquences.

Une fois le répertoire sélectionné, son chemin d'accès peut être facilement vérifié dans la barre de titre de la fenêtre de l'application, sous la version utilisée, comme illustré dans la figure ci-dessous.

Le CWD apparaît dans la barre de titre

Chemin d'accès au répertoire de travail indiqué dans la barre de titre. Ici, il s'agit d'un chemin sous Linux.

Préférences

Les préférences sont des paramètres qui sont persistants pour toutes les sessions de Siril, et qui définissent vos choix préférés pour plusieurs des outils.

Depuis la version 1.2.0, elles sont accessibles à la fois depuis l'interface utilisateur ou par programme, en utilisant les commandes set/get.

Par défaut, le fichier de préférences se trouve à la position suivante :

  • ~/.config/siril/configX.Y.ini (Linux)

  • %LOCALAPPADATA%\siril\configX.Y.ini (Windows)

  • ~/Library/Application Support/org.free-astro.Siril/siril/configX.Y.ini (MacOS)

X et Y sont les numéros de version majeure et mineure.

Si vous souhaitez avoir plusieurs fichiers de configuration, vous pouvez choisir celui à partir duquel démarrer en ouvrant un terminal et en tapant :

siril -i path/to/my_other_config.ini

Avertissement

Siril doit être dans votre chemin pour utiliser siril comme dans la ligne ci-dessus. Sinon, utilisez le chemin complet du binaire Siril.

Préférence (GUI)

Les préférences sont accessibles depuis le menu Burger menu-burger ou avec le raccourci Ctrl + P. Il y a 10 pages et chaque page représente un thème. Les préférences permettent aux utilisateurs plus ou moins avancés d'optimiser Siril pour qu'il réponde au mieux à leurs besoins. Certains réglages peuvent avoir un impact négatif sur les performances du Siril, il est donc conseillé de ne modifier les réglages que lorsque l'on sait ce que l'on fait. Il y a trois boutons en bas de la boîte de dialogue des préférences : Réinitialiser restaure tous les paramètres à leur valeur par défaut, Annuler annule les changements en cours et Appliquer ferme la boîte de dialogue et enregistre les paramètres.

Dématriçage FITS/SER

dialogue

Page 1 de la boite de dialogue préférences

L'onglet Débayer FITS/SER permet à l'utilisateur de définir les paramètres de dématriçage pour les fichiers FITS, SER ou TIFF. Par conséquent, cet onglet n'est utilisable que pour un utilisateur disposant d'une caméra OSC. Il est conseillé de laisser les paramètres par défaut car Siril définira automatiquement les paramètres corrects à utiliser. Cependant, dans le cas d'un fichier TIFF qui n'est pas un AstroTIFF, ou d'un fichier qui n'a pas tous les mots-clés requis, il peut être nécessaire d'ajuster les paramètres manuellement.

  • Préférence d'ordre des lignes : vous pouvez choisir d'utiliser le mot-clé d'en-tête ROW-ORDER s'il est présent, et vous replier sur Top-Down ou Bottom-Up s'il ne l'est pas. Ou vous pouvez forcer une orientation préférée. Plus d'explications sur ce mot-clé se trouvent ici.

  • Motif Bayer/mosaïque : ce menu déroulant vous permet de choisir le type de matrice de Bayer utilisé par l'appareil photo. Il est généralement indiqué dans les informations du fabricant. Si Informations Bayer depuis l'en-tête du fichier si disponibles est coché, la valeur spécifiée dans ce menu déroulant ne sera utilisée que si l'information n'est pas présente dans l'en-tête. Si l'option est décochée, elle est toujours utilisée.

  • Décalage X : dans de rares cas, les fichiers sont enregistrés avec un décalage du motif de Bayer. Nous pouvons définir un décalage de 1 sur l'axe X, et un décalage de 1 sur l'axe Y. Ici, la valeur définit s'il y a un décalage en X. Notez que ceci n'est utilisé que lorsque Informations Bayer depuis l'en-tête du fichier si disponibles est décoché ou lorsque l'en-tête ne contient pas cette information.

  • Décalage en Y : Décalage en Y de la matrice de Bayer.

La modification de ces paramètres entraînera un dématriçage différent à chaque fois. C'est pourquoi il est fortement conseillé de laisser les paramètres par défaut, à moins d'être vraiment sûr de ce que vous faites.

Une autre option qui a moins d'impact sur le résultat final est le choix de l'algorithme de dématriçage proposé dans Interpolation de dématriçage. Les choix sont les suivants :

  • La Débayérisation rapide est l'algorithme le plus rapide disponible dans Siril. Toutefois, les autres algorithmes énumérés ci-dessous sont souvent bien meilleurs.

  • VNG4, Threshold-Based Variable Number of Gradients (nombre variable de dégradés basé sur un seuil), travaille sur un voisinage de 5x5 pixels autour de chaque pixel source. C'est un très bon algorithme pour les zones uniformes de l'image (comme le fond du ciel), mais il produit des artefacts dans les zones à fort contraste (comme les étoiles).

  • AHD, Adaptive Homogeneity-Directed, est un autre algorithme de débayérisation bien connu. Cependant, il présente généralement des artefacts en arrière-plan et de mauvaises formes d'étoiles.

  • AMaZE, Aliasing Minimization and Zipper Elimination, est un algorithme qui donne de bons résultats, en particulier sur les captures à faible bruit.

  • DCB, Double Corrected Bilinear, un algorithme plus récent, peut présenter des artefacts en arrière-plan comme l'AHD.

  • HPHD, Heterogeneity-Projection Hard-Decision, est un vieil algorithme qui donne de bons résultats mais qui est assez lent.

  • IGV et LMMSE sont très efficaces lorsqu'ils travaillent avec des images très bruitées. Cependant, IGV a tendance à perdre certaines informations chromatiques, tandis que LMMSE est l'un des algorithme de dématriçage les plus coûteux en termes de calcul et nécessite beaucoup de mémoire.

  • RCD, Ratio Corrected Demosaicing, vise à atténuer les erreurs de correction des couleurs qui sont courantes dans de nombreuses autres méthodes d'interpolation. Il donne d'excellents résultats pour les bords arrondis, par exemple les étoiles, et c'est donc l'algorithme par défaut utilisé dans Siril.

Pour le capteur X-Trans, un algorithme spécial appelé Markesteijn est utilisé quelle que soit la méthode sélectionnée dans les préférences. Pour ce dernier, il est possible de définir la qualité demandée avec l'option Qualité de dématriçage X-Trans. Elle définit le nombre de passes pour l'algorithme de dématriçage X-Trans Markesteijn, 1 est la valeur par défaut, 3 peut être légèrement meilleur mais plus lent.

Avertissement

Pour le dématriçage à la volée des fichiers SER, l'algorithme RCD est toujours utilisé, quel que soit le choix effectué dans le menu déroulant. Cela permet à Siril d'être plus efficace en termes de vitesse d'exécution et d'offrir une bonne qualité.

Options FITS

dialogue

Page 2 de la boite de dialogue préférences

La page Options FITS regroupe tous les paramètres relatifs au format natif utilisé par Siril.

  • Extension FITS : Par défaut, la valeur est fixée à .fit. Cependant, de nombreux programmes de capture utilisent l'extension .fits. Dans ce cas, nous vous conseillons de mettre à jour la valeur. Tous les fichiers créés par Siril auront l'extension définie ici. De plus, seules les séquences ayant l'extension définie dans les préférences peuvent être chargées. Il n'est donc pas possible d'ouvrir une séquence .fits et une séquence .fit sans mettre à jour cette valeur. Les extensions supportées sont :

    • .fit

    • .fits

    • .fts

    Toutes peuvent être accompagnées de l'extension .fz si les fichiers sont compressés.

    Ligne de commande Siril

    setext extension
    
    Définit l'extension utilisée et reconnue par les séquences.

    L'argument extension peut être "fit", "fts" ou "fits"
  • Type par défaut : Par défaut, Siril travaille avec des flottants 32 bits dans l'intervalle [0, 1]. C'est la meilleure façon de conserver une grande précision. Cependant, pour des raisons d'espace disque, un utilisateur peut décider de travailler en 16 bits non signés (dans l'intervalle [0, 65535]). Attention cependant, un empilement de 16 bits peut perdre beaucoup d'informations.

  • Autoriser les FITS cubes à avoir des images de tailles différentes : Cette option peut être utile pour ouvrir des fichiers FITS scientifiques qui n'ont pas été créés par Siril et qui contiennent plusieurs images de dimensions différentes, qui seraient autrement considérés comme des fichiers Siril FITSEQ invalides. Les images du JWST sont un bon exemple de l'utilisation de cette option. Un exemple est donné ici.

  • Activer la compatibilité avec Aladin (CTYPE3 = 'RGB ') : Aladin considère un cube 3D FITS comme une image RVB (composantes Rouge, Bleue et Verte) si le mot-clé FITS CTYPE3 = 'RGB' est spécifié dans l'en-tête. Dans ce cas, toutes les valeurs BITPIX sont supportées. Sans le mot-clé FITS CTYPE3 = 'RGB', seuls les cube FITS avec 3 images partageant la même dimension et avec un BITPIX=8 seront automatiquement détectés comme des FITS RGB.

Avertissement

Cette option peut entrer en conflit avec la fonction d'astrométrie et ne doit être activée que si elle est vraiment nécessaire.

  • Mise à jour de la taille des pixels des images binées : Utilisée pour le calcul de l'échantillonnage de l'image, la taille du pixel peut être donnée de deux manières différentes : la taille réelle du pixel est donnée mais doit être multipliée par le binning (lorsque la case est cochée), la taille du pixel déjà multipliée est donnée (lorsque la case n'est pas cochée). Cela dépend du logiciel d'acquisition utilisé pour créer le FITS.

  • Intégrer les profils ICC dans les fichiers FITS enregistrés : cette option doit généralement rester activée, sauf si vous avez besoin d'interopérabilité avec un programme incapable de gérer les fichiers FITS avec profils ICC intégrés (aucun n'est actuellement connu).

  • Vérifier les sommes de contrôle des fichiers dans l'en-tête FITS (DATASUM et CHECKSUM) : vérifie les sommes de contrôle des fichiers si elles existent. La vérification a lieu à chaque lecture du fichier, ce qui peut affecter significativement les performances de Siril lors de l'utilisation d'une séquence.

  • Compression FITS : La compression peut être intéressante dans certains cas où l'espace disque est un élément clé du traitement. Vous trouverez plus d'informations dans la section dédiée au format FITS, ici.

    La compression ajoute l'extension .fz aux fichiers créés. Siril est capable d'ouvrir une séquence avec l'extension fz sans avoir à changer de valeur dans les préférences.

Ligne de commande Siril

setcompress 0/1 [-type=] [q]
Définie si les images sont compressé ou pas.

0 signifie qu'il n'y a pas de compression tandis que 1 active la compression.
Si la compression est activée, le type doit être explicitement écrit avec l'option -type= ("rice", "gzip1", "gzip2").
Associée à la compression, la valeur de quantification doit être comprise dans la plage [0, 256].

Par exemple, "setcompress 1 -type=rice 16" définit la compression rice avec une quantification de 16

Astrométrie

dialogue

Page 3 de la boite de dialogue préférences

Astuce

N'oubliez pas que vous pouvez faire défiler la fenêtre, car il y a des options situées en bas.

Cet onglet contient toutes les options relatives à l'astrométrie. L'astrométrie est une fonctionnalité fortement implémentée dans Siril. Lorsque l'image est résolue (c'est-à-dire lorsque l'astrométrie a réussi), il est possible d'afficher les noms des objets connus. En particulier ceux listés dans les grands catalogues astronomiques. La partie annotation permet de définir quels catalogues peuvent être utilisés pour l'affichage des noms d'objets. Actuellement, il y en a 8, et ils peuvent être désélectionnés pour être ignorés :

  • Catalogue de Messier

  • New General Catalogue (NGC)

  • Catalogue Index (IC)

  • Catalogue Lynds des nébuleuses sombres (LdN)

  • Catalogue Sharpless

  • Catalogue des étoiles les plus brillantes

  • Lignes des constellations de l'UAI

  • Noms des constellations par l'UAI (coordonnées tirées de cette page)

En plus de cette liste, il y a deux autres catalogues qui sont remplis par l'utilisateur. L'un concerne les objets du ciel profond, l'autre le système solaire. Ils sont mieux décrits dans la section annotations de cette documentation.

Sous la liste des catalogues astronomiques se trouve une option permettant de définir un code d'observatoire UAI préféré. Il s'agit d'un code à 3 caractères qui peut être utilisé pour spécifier un observatoire de l'UAI proche afin d'améliorer la précision de la localisation lors de l'exécution de conesearch -cat=solsys. Si l'option -obscode= n'est pas fournie, cette valeur par défaut est utilisée de préférence à la valeur géocentrique par défaut qui est utilisée autrement. Le texte de l'option fournit un lien hypertexte vers le site web du Minor Planets Center qui maintient une liste à jour des codes des observatoires de l'UAI, afin que vous puissiez facilement trouver le code le plus proche de votre position.

En cliquant sur le bouton Afficher les noms d'objets icone astrométrie (seulement si l'image a été résolue astrométriquement), les annotations sont affichées sur l'image. Il est également possible de cliquer sur le bouton qui affiche la grille céleste wcs-grid-icon. Cette dernière ajoute, par défaut, une boussole au centre de l'image. La section Boussole permet de définir l'emplacement souhaité pour l'affichage de la boussole.

La section World Coordinate System vous permet de choisir

  • Formalisme 1 : Dans le formalisme PC i_j, les éléments de la matrice \(m_{ij}\) (matrice de transformation linéaire) sont encodés dans des cartes d'en-tête PC i_j (à valeurs flottantes), et si comme CDELT i. Les indices i et j sont utilisés sans les zéros initiaux, par exemple PC 1_1 et CDELT 1. Les valeurs par défaut de PC i_j sont 1.0 pour \(i = j\) et 0.0 sinon. La matrice PC i_j ne doit pas être singulière ; elle doit avoir un inverse. De plus, tous les CDELT i doivent être non nuls.

  • Formalisme 2 : Les mots-clés CD i_j (à valeur flottante) encodent le produit \(s_i m_{ij}\). Les indices i et j sont utilisés sans les zéros initiaux, par exemple CD 1_1. La matrice CD i_j ne doit pas être singulière ; elle doit avoir un inverse. CDELT i et CROTA i sont autorisés à coexister avec CD i_j pour aider les anciens interprètes de FITS, mais doivent être ignorés par les nouveaux lecteurs.

La partie Catalogues d'étoiles locaux de la fenêtre de dialogue concerne l'utilisation des catalogues locaux pour la résolution astrométrique des images. Cette fonctionnalité est décrite en détail dans la section catalogues d'étoiles locaux de cette documentation.

Dans la section Astrométrie générale, un certain nombre d'options sont disponibles pour contrôler à la fois le solveur interne Siril et astrometry.net.

Préférences supplémentaires en matière d'astrométrie

Bas de la page 3 de la boîte de dialogue des préférences

  • la première option détermine si la distance focale calculée et la taille du pixel d'entrée sont stockées dans les paramètres comme valeurs par défaut pour les images qui n'ont pas les métadonnées correspondantes, lorsqu'une solution astrométrique est trouvée.

  • Tolérance d'échantillonnage : pourcentage en dessous et au-dessus de l'échantillonnage prévu à autoriser. L'échantillonnage donné est multiplié ou divisé par 1 + ceci / 100.

  • Degrés de la correction polynomiale : les solveurs peuvent utiliser une correction polynomiale (SIP) pour travailler avec les aberrations optiques, c'est l'ordre du modèle polynomial. 0 le désactive.

  • Rayon de la cible : rayon de recherche autorisé autour des coordonnées de la cible pour la résolution (degrés). Non utilisé pour les résolutions à l'aveugle (aucune cible n'est passée).

  • Maximum de secondes pour essayer de résoudre l'image : temps autorisé pour la résolution de chaque fichier du catalogue. Il ne peut être utilisé comme temps total de résolution seulement si l'astrométrie est configurée pour cela dans le fichier de configuration.

La dernière section est consacrée à la résolution astrométrique par la suite astrometry.net.

  • Ne pas supprimer les tables FITS .xyls : la liste des étoiles est transmise pour la résolution astrométrique sous la forme d'une table FITS, cochez cette case pour conserver le fichier dans le répertoire de travail.

  • Ne pas supprimer les fichier de résultat .wcs : le résultat de la résolution astrométrique est stocké dans une en-tête FITS avec un nom finissant par .wcs. Cocher cette case pour ne pas supprimer ce fichier.

  • Emplacement du solveur local astrometry.net : Pour utiliser Astrometry.net localement dans Siril, il peut être nécessaire d'indiquer à Siril le chemin où il se trouve. Sur les systèmes UNIX, ce chemin se trouve généralement dans la variable PATH et n'est pas nécessaire. Pour Windows, si vous n'avez pas modifié le répertoire d'installation par défaut, c'est-à-dire %LOCALAPPDATA%\cygwin_ansvr, Siril le cherchera sans configuration supplémentaire. Si vous avez cygwin et que vous avez compilé astrometry.net à partir des sources, vous devez spécifier l'emplacement de la racine de cygwin ici.

  • Afficher la sortie de la commande solve-field : imprime la sortie de la résolution astrométrique dans la fenêtre principale de Siril, sinon, seul le résultat sera donné.

Pré-traitement

dialogue

Page 4 de la boite de dialogue préférences

L'onglet de pré-traitement contient tous les éléments liés aux étapes qui sont exécutées jusqu'à l'empilement. Ici, il est possible de gérer une bibliothèque d'offsets, de darks, de flats et de distorsions, le nom de sortie du fichier empilé ou des corrections spécifiques pour les caméras qui utilisent le capteur X-Trans.

  • Bibliothèques Dark/Bias/Flat/distortion : dans cette section, il est possible de charger un offset, un dark, un flat et une distorsion qui seront utilisés par défaut dans le pré-traitement si le bouton à droite de la boîte de texte, Utiliser par défaut, est coché. Chaque chemin sera également stocké dans les mots-clés réservés $defbias, $defdark, $defflat et $defdisto (un jeton $) qui peuvent être utilisés lors de l'enregistrement d'un résultat d'empilement/de résolution astrométrique. En ce qui concerne le bias, il est possible d'utiliser plus qu'un simple chemin de fichier. En effet, dans l'équipe Siril, nous encourageons les utilisateurs à utiliser un bias synthétique comme expliqué dans ce tutoriel. Plusieurs valeurs sont alors possibles à condition que le premier caractère saisi soit le signe =. Il est possible d'utiliser une valeur entière fixe comme =500 ou une multiplication impliquant le mot-clé $OFFSET (un jeton $) tant que ce dernier est effectivement enregistré dans l'en-tête du fichier FITS, comme 10*$OFFSET. Plus de détails sont donnés dans le tutoriel.

  • Empilement par défaut : Nous définissons ici le nom par défaut que nous voulons donner aux résultats de l'empilement. Il est possible d'utiliser n'importe quelle valeur donnée dans l'en-tête FITS comme mot-clé et de l'entourer de jetons $. Si le mot-clé n'existe pas, c'est la variable qui sera utilisée, sinon c'est sa valeur. Un autre mot-clé réservé qui peut être utilisé est $seqname$. Il contient le nom de la séquence chargée. Par exemple, le nom par défaut suivant, $seqname$stacked_$LIVETIME:%d$s avec un nom de séquence r_pp_light_ et l'en-tête suivant :

    ...
    DATE    = '2022-12-08T22:21:14' / UTC date that FITS file was created
    DATE-OBS= '2015-08-21T22:18:25' / YYYY-MM-DDThh:mm:ss observation start, UT
    STACKCNT=                   13 / Stack frames
    EXPTIME =                 300. / Exposure time [s]
    LIVETIME=                3900. / Exposure time after deadtime correction
    EXPSTART=     2457256.42945602 / Exposure start time (standard Julian date)
    EXPEND  =     2457256.51666667 / Exposure end time (standard Julian date)
    ...
    

produira r_pp_light_stacked_3900s.fit.

Note

Les chemins de bibliothèque et le nom par défaut d'empilement prennent tous deux en charge l'analyse de chemin.

  • Corriger les fichiers Xtrans : Ce champ de réglage est très spécifique et ne concerne que les détenteurs de certains capteurs X-Trans. En effet, certaines images de ces caméras montrent un grand carré au centre des dark et des offsets en raison de la position de la mise au point automatique (AF). Siril dispose d'un algorithme pour l'éliminer pour les caméras suivantes :

    • Fujifilm X-T1

    • Fujifilm X-T2

    • Fujifilm X-T20

    • Fujifilm X-Pro2

    • Fujifilm X-E3

    • Fujifilm X-H1

Correction X-Trans

Artéfact X-Trans corrigé par l'algorithme de Siril

Dans le cas peu probable où votre appareil photo contient cet artefact et n'est pas pris en charge, il est alors possible de définir la correction à appliquer ici. Le mieux à faire est de contacter l'équipe de développement afin d'obtenir les valeurs à entrer qui correspondraient à votre appareil photo.

Photométrie

dialogue

Page 5 de la boite de dialogue préférences

La photométrie, qui est l'étude de la lumière, est une autre fonctionnalité très présente dans Siril. Cette section des préférences vous permet de définir les paramètres associés à cet outil.

dialogue

Cercle de la photométrie d'ouverture

Le principe de base de la photométrie d'ouverture consiste à additionner le flux observé dans un rayon donné à partir du centre d'un objet, puis à soustraire la contribution totale du fond de ciel dans la même région (calculée dans l'anneau entre le rayon interne et le rayon externe), ne laissant que le flux de l'objet pour calculer une magnitude instrumentale. Cela est décrit plus en détail dans la section Photométrie de cette documentation.

  • Il est alors possible de modifier le rayon interne et le rayon externe pour définir une taille qui optimise la valeur du ciel calculée, en essayant d'éviter les étoiles à l'intérieur de l'anneau. Le rayon extérieur doit toujours être plus grand que le rayon intérieur. Par défaut, le rayon d'ouverture du flux est fixé à deux fois la FWHM de la PSF, mais il est possible de désactiver cette fonction et de définir manuellement une valeur fixe.

  • Plage de valeurs des pixels permet aux utilisateurs de fixer une limite à partir de laquelle le pixel est considéré comme mauvais pour la photométrie. En effet, faire de la photométrie sur des données saturées ne donnera jamais de bons résultats, mais même s'approcher de valeurs élevées peut ne pas être approprié car cela peut être dans le régime non linéaire des capteurs. Une valeur par défaut de 50 000 ADU est fixée pour éviter cette région, mais elle peut varier d'un capteur à l'autre. Les valeurs négatives sont également autorisées, car le bruit peut se rapprocher d'une valeur positive tout en produisant quelques pixels avec des valeurs négatives.

  • Enfin, si elle est connue, il est fortement recommandé d'indiquer la valeur du gain du convertisseur A/N en électrons par ADU : elle est utilisée dans les calculs d'incertitudes, si elle n'est pas déjà fournie dans les en-têtes des images traitées.

Outils d'analyse

dialogue

Page 6 de la boite de dialogue préférences

Pour le moment, un seul outil d'analyse d'image nécessite des paramètres. Il s'agit de l'outil inspecteur d'aberrations. Dans cet onglet, vous pouvez ajuster :

  • La taille du panneau, en pixel, qui définit la taille des images qui seront dans les panneaux. Plus la valeur est élevée, plus la taille de l'image dans le panneau est importante. Une valeur trop élevée peut empêcher de voir les défauts des étoiles.

  • La taille de la fenêtre, également en pixels, définit la taille de la boîte de dialogue. Il est généralement conseillé d'augmenter cette valeur lorsque l'on utilise un écran 4K.

dialogue

Fenêtre de l'inspecteur d'aberration

Interface utilisateur

dialogue

Page 7 de la boite de dialogue préférences

Dans cet onglet sont répertoriés tous les ajustements liés à l'interface utilisateur. Il ne s'agit pas de paramètres ayant un impact sur les processus, mais sur l'aspect et les besoins de l'utilisateur.

Astuce

N'oubliez pas que vous pouvez faire défiler la fenêtre, car il y a des options situées en bas.

  • Par défaut, le langage de Siril est définie en fonction de la langue du système. Il est cependant possible de changer la langue et de la définir selon vos besoins, pour autant qu'elle existe. Cependant, gardez à l'esprit que le Siril est développé en anglais.

  • Deux thèmes sont disponibles :

    • Le thème sombre (par défaut)

    • Le thème clair

    Le changement de le thème nécessite un redémarrage de l'application pour être complètement opérationnel.

  • Il est possible d'ajuster l'échelle de la police pour les utilisateurs disposant d'un écran 4K Ultra-HD, ou d'utiliser des icônes symboliques pour certaines icônes. Ces réglages nécessitent également un redémarrage de l'application.

  • Par défaut, Siril se souvient de la taille et de la position de la fenêtre de l'application à chaque fois que vous la fermez. En cochant le bouton Se souvenir de la position et la taille des fenêtres vous pouvez désactiver ce comportement.

  • Les miniatures des images sont généralement visibles dans les boîtes de dialogue d'ouverture. Les préférences vous permettent de ne pas les afficher si l'ordinateur a des performances limitées et que l'utilisateur n'en voit pas la nécessité. Vous pouvez également changer la taille de l'affichage des miniatures avec la liste déroulante.

  • La fonction de transfert d'écran par défaut est le paramètre qui permet d'afficher les images selon les préférences de l'utilisateur. Par défaut, ce paramètre est défini sur Linéaire. Comme cela représente réellement l'image, il est recommandé aux débutants de laisser ce paramètre par défaut. Il est facile d'oublier que vous êtes en visualisation auto-ajustée et de ne pas comprendre pourquoi les images sauvegardées ne sont pas telles qu'elles apparaissent à l'écran. Cependant, vous pouvez toujours ajuster la visualisation dans la fenêtre principale.

  • Selon le même principe, les histogrammes peuvent être affichés selon deux modes avec Mode d'affichage par défaut. Soit le mode Linéaire, soit le mode Logarithme. Ce dernier peut être très utile avec l'outil d'étirement hyperbolique généralisé. Vous pouvez cependant changer le mode dans chaque fenêtre avec un histogramme. Dans les préférences, il s'agit de définir le comportement par défaut.

  • Région d'intérêt est le paramètre qui permet de choisir le type de sélection que vous souhaitez appliquer à la ROI : Manuel ou Automatique à partir de la sélection. Ces options sont décrites en détail dans la section dédiée Définition de la ROI.

  • Comportement de la souris permet de configurer le comportement de la souris. Depuis la version 1.3.0, elle permet de configurer le comportement du double clic du milieu pour définir un niveau de zoom prédéfini. Le niveau de zoom prédéfini peut être réglé soit pour un zoom ajusté, soit pour un zoom à 100 % centré sur le curseur de la souris, soit pour alterner entre un zoom ajusté et un zoom à 100 % centré sur le curseur de la souris. Avec les autres améliorations apportées au contrôle du déplacement sur l'image et du zoom à l'aide du bouton central de la souris, Siril est plus facile à utiliser d'une seule main.

  • Le bouton Configuration de la souris ouvre la boîte de dialogue de configuration de la souris. Cela vous permet de personnaliser entièrement le comportement de votre souris pour Siril en modifiant le comportement par défaut de la souris ou en ajoutant ou supprimant des fonctions de souris. Ceci peut être particulièrement utile pour les utilisateurs en situation de handicap afin de réaffecter les fonctions existantes de la souris à d'autres boutons, ou pour qu'ils n'aient pas besoin de touches de modification, et cela peut être utile pour tout utilisateur disposant d'une souris avec de nombreux boutons (ou des molettes de défilement bidirectionnelles) pour attribuer de nouvelles actions (comme enregistrer, annuler, faire défiler la séquence active) aux boutons de la souris ou aux axes de défilement d'une manière qui n'était pas possible auparavant, ou avec des molettes de défilement bidirectionnelles.

    Vous devez valider un rappel indiquant que cet outil peut supprimer ou modifier le comportement de la souris, de sorte que vos paramètres ne correspondent plus à la documentation. L'outil intègre un certain nombre de vérifications de cohérence (il rejettera les affectations en double, il exigera que l'action principale de la souris utilisée pour interagir avec l'image soit incluse, et il vérifiera les conflits entre les actions de clic simple et de double clic affectées au même bouton et modificateur. Si vous mettez vraiment votre configuration en désordre, un bouton de réinitialisation permet de rétablir le comportement par défaut de la souris.

    La numérotation des boutons de la souris n'est pas toujours évidente, en particulier avec les souris comportant de nombreux boutons, car les directions de la molette de défilement sont prises en compte dans la numérotation des boutons ; une zone de test est donc fournie à droite de la boîte de dialogue. Si vous cliquez sur un bouton de la souris ici, son numéro s'affichera dans l'étiquette. C'est ce même numéro que vous devez utiliser lors de l'affectation de fonctions à ce bouton de la souris.

    Boîte de dialogue de configuration de la souris

    Astuce

    Notez que cette configuration s'applique uniquement aux événements de la souris dans la zone de dessin principale (où l'image est affichée). Quelles que soient les actions de souris configurées ici, le comportement de la souris restera le même ailleurs dans l'application. Ainsi, par exemple, si vous souhaitez échanger universellement les boutons gauche et droit de la souris, vous ne pouvez pas le faire ici, mais vous pourrez peut-être le faire dans les paramètres de votre système d'exploitation ou dans la configuration du pilote de la souris.

  • Vous pouvez configurer certaines couleurs de textes et de dessins à afficher sur l'image dans la section Couleurs. Pour ce faire, il suffit de cliquer sur le bouton de couleur et de choisir la couleur de votre choix. Ce choix porte sur 5 éléments :

    • Échantillons de l'extraction de gradient

    • Annotations standards

    • Annotations des objets du ciel profond

    • Annotation des objets du système solaire

    • Annotation des objets temporaires

Gestion des couleurs

Préférences de gestion des couleurs
Espaces de travail des couleurs
Espace colorimétrique préféré

Cette option sélectionne l'ensemble des espaces couleur de travail, à savoir un espace de travail RVB linéaire, un espace de travail RVB non linéaire avec la courbe de réponse aux tons (CRT) standard de l'espace couleur, et un espace de travail gris avec une CRT adaptée à l'espace de travail RVB. Les options sont sRGB, qui convient le mieux pour travailler avec des images destinées au WWW ; Rec2020, qui est l'espace colorimétrique à large gamut recommandé par Siril ; et Custom, qui vous permet de définir votre propre ensemble de profils à l'aide des sélecteurs de fichiers.

Profils de couleur externes

Ces sélecteurs de fichiers ne sont utiles qu'en combinaison avec l'option "À partir de fichiers" sélectionnée ci-dessus pour votre espace colorimétrique préféré.

  • Profil ICC RVB : Ce sélecteur de fichiers vous permet de choisir le profil ICC RVB correspondant à votre espace colorimétrique préféré.

  • Profil ICC de gris : Ce sélecteur de fichiers vous permet de choisir un profil ICC de gris. Ce profil doit avoir une courbe de réponse des tons (CRT) correspondant à celle de l'espace colorimétrique RVB que vous avez choisi.

Un exemple de définition d'un gamut RVB personnalisée correspondant à Pro Photo RGB est disponible sur la page des profils de couleur.

Visualisation Gamut

Ce bouton ouvre une image de référence comparant les gamuts offerts par les espaces colorimétriques sRGB et Rec2020 intégrés avec les gamuts de certains autres espaces colorimétriques RVB bien connus.

Profils personnalisés
  • Profil de moniteur personnalisé : Cette option vous permet de choisir un profil de moniteur personnalisé, par exemple si vous avez étalonné votre moniteur ou si vous utilisez un moniteur à large gammut. Un bouton permet d'effacer la sélection actuelle et une case à cocher permet de définir si le profil de moniteur personnalisé est actif ou non. S'il n'est pas actif, la transformation de l'affichage ciblera un affichage sRGB standard.

  • Intention de rendu : Cette option vous permet de choisir votre intention de rendu ICC préférée, qui est utilisée pour la transformation des couleurs de l'espace de travail vers le profil de l'écran. Une description des intentions disponibles est disponible sur la page Théorie. Un bouton à cocher est également fourni pour définir si la compensation du point noir doit être utilisée ou non.

  • Profil d'épreuvage du dispositif de sortie Cette option vous permet de choisir un profil d'épreuvage à l'écran pour un périphérique de sortie. Si aucun profil n'est défini ici, l'épreuvage à l'écran se fera avec le profil d'affichage. Un bouton permet d'effacer la sélection actuelle et une case à cocher permet d'activer ou non le profil d'épreuvage à l'écran. S'il n'est pas activé, le mode d'affichage de l'épreuvage à l'écran ne sera pas disponible.

Options d'importation/exportation de fichiers
  • Traiter les fichiers non gérés en couleur comme sRGB pour l'exportation vers les formats pris en charge : Cette option concerne les images auxquelles aucun profil de couleur n'a été attribué. Si l'option est cochée, lorsqu'une image sans profil ICC est exportée vers un format qui prend en charge les profils ICC, elle sera enregistrée avec un profil ICC sRGB ou un profil Gris avec une CRT qui correspond au sRGB TRC standard. C'est essentiellement le comportement des versions précédentes de Siril. Il fonctionne souvent bien, mais ne représente pas un flux de travail correctement géré par la couleur. L'option est activée par défaut, mais il est préférable d'éviter ce problème en utilisant les options de conversion/assignation automatique pour s'assurer que les images auront un profil ICC assigné et qu'elles seront correctement gérées au moment où vous souhaitez les enregistrer.

  • Exporter les images 8 bits en utilisant : Cette option définit l'espace colorimétrique à utiliser pour exporter les images 8 bits qui prennent en charge l'intégration des profils ICC : vous avez le choix entre sRGB et votre espace colorimétrique de travail tel qu'il a été choisi avec l'option Gamut RVB de travail ci-dessus.

  • Exporter des images 8 bits en utilisant : Cette option définit l'espace colorimétrique pour l'exportation d'images 16 bits qui prennent en charge l'intégration de profils ICC : vous avez le choix entre sRGB et votre espace colorimétrique de travail tel que choisi avec l’option Espace colorimétrique préféré ci-dessus.

  • Intention d'exportation : cela définit l'intention de transformation des images de leur espace colorimétrique attribué vers l'espace colorimétrique dans lequel elles doivent être enregistrées. Laissez ce paramètre sur Colorimétrie relative pour garantir que vos images enregistrées sont cohérentes avec la façon dont vous les avez enregistrées. D'autres intentions ne devraient probablement être choisies ici qu'à des fins de débogage et similaires.

Une préférence se trouve dans l'onglet Options FITS :

  • Intégrer les profils ICC dans les images FITS et les séquences FITSEQ : Cette option permet l'intégration de profils ICC dans les fichiers FITS : les profils sont intégrés dans un HDU supplémentaire à l'intérieur du fichier FITS, avec le nom "ICCProfile", qui correspond à la méthode d'intégration utilisée par d'autres logiciels d'astrophotographie majeurs. Il est fortement recommandé de laisser cette option activée.

Astuce

L'exportation d'images vers des formats 8 bits et 16 bits qui ne prennent pas en charge les profils ICC intégrés se fera toujours dans l'espace colorimétrique sRGB.

Conversion automatique / Options d'affectation
Attribution automatique de l'espace colorimétrique de travail

Cet ensemble de cases à cocher définit les occasions au cours desquelles une image se verra automatiquement attribuer l'espace colorimétrique de travail. Les possibilités sont : au chargement, à l'empilement, à l'étirement et en sortie d'outil de composition (pixelmath / composition RVB).

La valeur par défaut consiste à attribuer l'espace colorimétrique de travail lors de l'étirement, car c'est à ce moment-là que vous passez généralement le mode de visualisation sur Linéaire et commencez à étirer votre image pour qu'elle ressemble à ce que vous souhaitez. C’est à ce moment-là que la gestion des couleurs commence à avoir de l’importance.

Cependant, vous pouvez également attribuer l'espace colorimétrique à des étapes antérieures du traitement si vous le souhaitez. Cela présente peu d'avantages ou d'inconvénients dans la plupart des cas, mais si vous prévoyez d'exporter des images avant de les étirer, cocher les autres cases garantira qu'un profil de couleur est toujours attribué.

Astuce

Un profil de couleur ne sera jamais automatiquement attribué si Siril pense qu'il s'agit d'un seul canal extrait d'une image tricolore en utilisant l'extraction RVB, TSV, TSL, CIE L*a*b* ou Vert. Il n’existe pas de profil ICC raisonnablement attribué dans ce cas. Vous devez considérer le fichier comme des données brutes jusqu'à ce que vous soyez prêt à le recomposer avec d'autres données ou à le traiter pour qu'il ait une belle apparence, auquel cas, vous devez attribuer votre espace colorimétrique de travail préféré.

Les canaux CFA séparés, Ha et OIII peuvent se voir attribuer en toute sécurité une version linéaire de l'espace de travail, et cela sera fait si l'option rigoureuse décrite ci-dessous est active.

Si vous souhaitez éviter complètement les profils de couleur, vous pouvez sélectionner « Jamais », mais cela entraînera un flux de travail non géré par les couleurs et vos images risquent de ne pas paraître cohérentes lorsqu'elles sont visualisées dans d'autres logiciels ou lorsqu'elles sont sorties sur différents périphériques de sortie.

Attribuer de manière rigoureuse des profils ICC linéaires

Lors de l'attribution automatique de profils ICC à :

  • des images chargées qui n'ont pas de profil ICC et ne montrent aucune preuve d'étirement précédent,

  • images nouvellement empilées,

  • images nouvellement composées

Siril attribuera un profil ICC linéaire. Ceci est généralement techniquement correct, car ces images contiennent toujours des données de lumière linéaire. L'option est disponible si vous le souhaitez, mais elle est souvent inutile : consultez la page profiles pour une explication de pourquoi. Vous souhaiterez peut-être l'utiliser afin de bénéficier de la transformation d'affichage en appliquant vos étirements aux données linéaires d'origine tout en prévisualisant l'effet en sRGB (ou votre profil de moniteur personnalisé) : dans ce cas, vous devez décocher la case de conversion automatique suivante, afin que le profil reste linéaire pendant l'étirement, puis convertissez manuellement les données en votre profil de travail une fois l'étirement terminé.

Convertir d'autres profils de couleur en profil de travail ?

Cette liste déroulante définit le comportement de Siril si une image est chargée avec un profil ICC différent du profil de travail sélectionné. Les options sont : Jamais, Toujours et Demander à chaque fois. La valeur par défaut est Jamais, car cela évite toute modification non demandée de l'image. Cependant, pour un flux de travail cohérent, vous souhaiterez peut-être sélectionner Toujours, afin de toujours modifier dans votre espace colorimétrique préféré. Demander à chaque fois est une option, mais cela peut être ennuyeux, surtout si l'on considère les profils d'exportation v2 comme étant différents des profils de travail intégrés v4, donc bien que cela soit prévu pour les utilisateurs qui souhaitent gérer chaque détail, ce n'est pas particulièrement recommandé.

Profils intégrés
Exporter les profils intégrés

Siril utilise des profils de la collection de profils de couleurs d'Elle Stone pour fournir ses profils intégrés. Comme ceux-ci sont distribués sous une licence Creative Commons BY-SA-3.0 qui nécessite le partage des profils, un bouton est prévu pour exporter tous les profils intégrés vers le répertoire de travail.

Afin de fournir un profil capable de l'intention Perceptuelle sRGB, le profil ICC Preference avec des tables de recherche perceptuelles est fourni. Pour l'exporter, vous devrez accepter les mêmes termes et conditions que pour le télécharger à partir du site Web de l'ICC.

Scripts

dialogue

Page 8 de la boite de dialogue préférences

  • L'onglet Scripts contient essentiellement les emplacements où Siril doit chercher les scripts. En effet, par défaut et en fonction du système d'exploitation utilisé, les scripts sont installés à un endroit spécifique :

    • /usr/local/share/siril/scripts ou /usr/share/siril/scripts sur GNU/Linux.

    • C:\Program Files\Siril\scripts sur Windows.

    • /Applications/Siril.app/Contents/Resources/share/siril/scripts sur MacOS, si l'application a été installée dans le dossier Applications.

    Avertissement

    Sur macOS, comme l'application est signée et notariée, il est impossible de modifier les scripts à l'intérieur du paquet. Sinon, l'application ne démarrera pas. Il faut donc définir un autre chemin pointant vers un dossier où vous avez les droits d'écriture.

  • Le champ Répertoire des scripts permet de définir l'emplacement des dossier où ce trouvent les scripts que vous avez créé et/ou modifié. En cliquant sur le bouton juste en dessous, les dossiers seront à nouveau analysés et la liste des scripts dans le menu dédié sera mise à jour.

  • La section Avertissements propose de désactiver :

    1. Le texte d'avertissement qui s'affiche avant l'exécution d'un script.

    2. La vérification du mot clé requires qui doit se trouver au tout début du script afin de vérifier si le script est compatible avec la version de Siril. Nous recommandons de ne pas décocher cette option.

  • Le champ Dépôt de scripts Siril est l'endroit où les scripts validés par l'équipe Siril sont automatiquement téléversés. Cependant, ceux-ci peuvent avoir été écrits par des développeurs tiers. Vous pouvez activer/désactiver cette fonctionnalité avec le bouton Activer l'utilisation du dépôt en ligne siril-scripts, et définir des mises à jour automatiques ou manuelles avec Mises à jour automatiques et Mise à jour manuelle. Pour afficher un script dans le menu des scripts, il suffit de le sélectionner.

  • Réinitialiser le venv python tuera tous les scripts Python en cours d'exécution et réinitialisera le répertoire de l'environnement virtuel « venv » à un état comme neuf. Tous les modules installés par des scripts devront être réinstallés. Ceci n'est normalement pas nécessaire mais est fourni en dernier recours pour restaurer le venv à un état vierge, afin de faciliter le dépannage.

Performances

dialogue

Page 9 de la boite de dialogue de préférences

Les logiciels de traitement d'images astronomiques, tels que Siril, utilisent beaucoup de ressources et nécessitent généralement des ordinateurs assez puissants. Il n'est pas impossible, lorsque l'ordinateur est très occupé, qu'il se bloque complètement. Il n'est pas du tout recommandé de faire quoi que ce soit d'autre sur l'ordinateur pendant le traitement, notamment de naviguer sur Internet, car les navigateurs sont très gourmands en mémoire vive. Il est cependant possible de gérer le pourcentage maximum de RAM que Siril peut utiliser.

  • Ratio de disponible : Siril se limitera à un ratio de la quantité de mémoire physique libre et diminuera la taille des tâches si nécessaire. Une valeur supérieure à 1 signifie qu'une partie de la mémoire paginée sur une mémoire configurée sera utilisée, que le processus global sera plus lent et que le système ne répondra probablement pas pendant certaines opérations. Si vous n'avez pas configuré de mémoire paginée sur certains supports, une valeur de 1 ou plus entraînera probablement un blocage de siril ou du système d'exploitation.

  • Montant fixe (Go) : Siril se limitera à une quantité fixe de mémoire et réduira la taille des tâches si nécessaire. La configuration d'une quantité de mémoire supérieure à celle disponible sur votre système peut entraîner un crache de Siril ou du système d'exploitation.

  • L'option Profondeur de bit par défaut pour l'auto-ajustement HD définit la profondeur de bits par défaut pour le mode d'affichage Auto ajustement HD. Des profondeurs de bits plus élevées nécessitent exponentiellement plus de mémoire pour la LUT et prennent plus de temps pour la recalculer, mais permettent de mieux lisser les artefacts de quantification lors de l'affichage d'images avec des pics d'histogramme très étroits. La profondeur de bits par défaut s'appliquera à partir du prochain changement de mode de visualisation, et peut être appliquée maintenant en utilisant le bouton à droite. Cliquez sur le bouton Appliquer la profondeur de bit pour définir la profondeur de bit de l'auto ajustement HD sélectionnée.

  • FFTW multithreadée : ce bouton permet à FFTW (librairie de transformé de Fourier) d'utiliser plusieurs threads. Cela peut être plus rapide (bien que les performances n'augmentent pas linéairement avec le nombre de processeurs, en raison de la surcharge de synchronisation), mais la phase de planification de la FFTW prend plus de temps pour les systèmes multithreads, de sorte que la première FFTW pour une taille d'image donnée peut être considérablement plus lente en utilisant plusieurs threads.

  • Stratégie de planification FFTW : cette liste déroulante définit la stratégie de planification de la FFTW. La librairie FFTW dispose de plusieurs algorithmes pour calculer une FFT et planifie une FFT donnée pour optimiser la vitesse. Elle enregistre les résultats de ces plans pour une réutilisation ultérieure dans un fichier cache appelé "Sagesse", de sorte qu'un peu de temps supplémentaire passé à planifier en amont peut être récompensé si vous calculez beaucoup de FFTs de la même taille. Notez que la sagesse est spécifique à une machine donnée : elle ne doit pas être partagée entre les machines et doit être supprimée et régénérée à partir de zéro après une mise à niveau de la mémoire ou du processeur ou un changement majeur de l'environnement logiciel (changements majeurs du système d'exploitation, changements majeurs de la version de Siril). Par ordre de rapidité, Estimer est la méthode la plus rapide : cette stratégie n'effectue aucune mesure mais planifie sur la base d'un ensemble d'heuristiques. Mesure est la deuxième méthode la plus rapide : cette méthode compare la vitesse des différentes méthodes internes de FFTW pour calculer la FFT et choisit la plus rapide. En conséquence, l'étape de planification prend plus de temps. Patient envisage encore plus de plans possibles, et Exhaustif en envisage encore plus. Si vous traitez toujours des images d'une taille spécifique, les stratégies de planification les plus coûteuses peuvent être intéressantes en raison de la sagesse, mais si vous travaillez avec des images de tailles différentes, un algorithme de planification moins coûteux peut s'avérer plus approprié.

  • Limite de temps de planification FFTW : cette limite de temps arrête la planification FFTW après la limite de temps spécifiée. Ce délai est prioritaire sur la stratégie de planification. Notez que la limite de temps n'est pas strictement appliquée : La FFTW terminera tout calcul non interruptible qu'elle effectue au moment où la limite est atteinte, et si elle est fixée à zéro, la FFTW effectuera toujours au minimum la planification Estimate.

  • Drizzle : fichiers de poids Drizzle haute résolution : lorsque ce bouton est activé, les fichiers de poids produits par l'algorithme drizzle auront la même profondeur de bits que les images. Cela peut être important lorsque l'on cherche à obtenir la meilleure FWHM possible sur l'image empilée, mais cela consomme beaucoup d'espace. Par défaut, cette option est décochée et les fichiers de poids sont enregistrés en 8 bits.

Divers

dialogue

Page 10 de la boite de dialogue de préférences

Le dernier onglet contient tout ce qui n'entre pas dans les autres catégories.

  • L'utilisation des boutons Annuler/Rétablir nécessite de l'espace disque. Beaucoup d'espace dans certains cas. Le dossier contenant les fichiers d'échange (qui sont les fichiers nécessaires au bon fonctionnement de la paire undo/redo) peut être défini dans la section Répertoire swap. L'espace disque est indiqué à droite du sélecteur de fichiers. Nous vous conseillons de ne pas modifier les paramètres par défaut, sauf si vous avez une bonne raison de le faire. Comme le choix d'un bon dossier est critique, il est possible de revenir au dossier par défaut en cliquant sur Restaurer.

  • La partie Avertissement permet de désactiver certaines fenêtres d'avertissement qui sont là pour aider les débutants.

  • Astuces de l'introduction : Au tout premier démarrage de Siril, il est possible de voir une petite animation montrant les nouveautés de l'application. Cette animation peut être rejouée en cliquant sur Jouer l'introduction.

  • Emplacement de l'exécutable StarNet : pour utiliser StarNet dans Siril, il est nécessaire d'indiquer à Siril le chemin où se trouve l'exécutable StarNet. Pour les anciennes installations de StarNet++ v1 qui utilisent des exécutables séparés pour traiter les fichiers mono et RVB, l'un ou l'autre peut être choisi - Siril détectera automatiquement l'autre si les deux sont installés. Notez que pour ces anciennes installations, les noms originaux des exécutables rgb_starnet++ et mono_starnet++ DOIVENT être conservés. Pour toutes les versions mono-exécutables plus récentes de StarNet, Siril déterminera la version de manière heuristique et s'interfacera avec elle en conséquence.

  • Emplacement des poids de StarNet : Les nouvelles versions de StarNet basées sur Torch offrent la possibilité d'indiquer l'emplacement d'un fichier de poids de réseau neuronal : il n'est pas nécessaire qu'il se trouve dans le même répertoire que l'exécutable. Cette préférence peut être utilisée pour définir l'emplacement d'un fichier de poids à transmettre à StarNet, et elle peut être réinitialisée à l'aide du bouton associé. Remarque : cette option ne fonctionne qu'avec les installations StarNet basées sur Torch. Avec les installations StarNet plus anciennes, le fichier de poids doit se trouver dans le même répertoire que l'exécutable.

Avertissement

Il s'agit de l'emplacement de la version de StarNet en ligne de commande qui doit être fournie, et non de la version graphique.

Avertissement

Sur macOS, il peut être difficile de trouver le chemin du répertoire car Apple ne facilite pas la navigation pour certains dossiers. Une astuce consiste à taper Shift + Cmd + g dans la boîte de dialogue de choix de fichier, puis d'entrer directement le chemin d'installation, qui est généralement celui défini par Homebrew. Habituellement, c'est /usr/local/bin sur les ordinateurs intel et /opt/homebrew/bin/ sur les versions Apple Silicon.

  • Emplacement de l'exécutable GraXpert : pour utiliser GraXpert dans Siril, il est nécessaire d'indiquer à Siril le chemin où se trouve l'exécutable GraXpert. Si vous rencontrez des difficultés à faire fonctionner GraXpert avec Siril, vérifiez qu'il fonctionne seul avant de soumettre un rapport de bogue : Siril se contente d'exécuter le logiciel tiers, donc s'il ne fonctionne pas seul, il ne fonctionnera pas non plus lorsqu'il est appelé depuis Siril.

  • Copyright TIFF : Lors de l'enregistrement de fichiers TIFF, il est possible de personnaliser le copyright dans les métadonnées EXIF dédiées.

  • Mise à jour : Par défaut, Siril vérifie les mises à jour au démarrage. Vous êtes libre de désactiver ce comportement si vous ne souhaitez pas que l'application interroge notre site web.

Préférences (commandes)

À partir de la v1.2, la plupart des préférences peuvent également être définies par le biais de commandes, c'est-à-dire soit à partir d'une entrée directe dans la ligne de commande, soit par le biais de scripts ou en mode console.

Pour obtenir une liste de toutes les variables disponibles, utilisez la ligne de commande siril :

get -A

Ceci imprimera une liste de toutes les variables sur la console, avec leur valeur actuelle et une courte description (utilisez l'option minuscule -a pour omettre la description).

Le tableau ci-dessous en dresse la liste :

Variable

Défaut ([Plage])

Type

Commentaire

core.wd

(non défini)

répertoire

répertoire de travail actuel

core.extension

.fit

chaîne de caractères

extension du fichier FITS

core.force_16bit

faux

booléen

n'utilise pas 32 bits pour la profondeur de pixel

core.fits_save_icc

vrai

booléen

intégrer les profils ICC dans les fichiers FITS lors de l'enregistrement

core.allow_heterogeneous_fitseq

faux

booléen

permettre aux FITS cubes d'avoir des tailles différentes

core.mem_mode

0 [0, 1]

entier

mode mémoire (0 rapport, 1 montant)

core.mem_ratio

0.9 [0.05, 4]

double

ratio de la mémoire disponible

core.mem_amount

10 [0.1, 1e+06]

double

quantité de mémoire en GB

core.hd_bitdepth

20 [17, 24]

entier

Profondeur de bit de l'auto-ajustement HD

core.script_check_requires

vrai

booléen

la commande requires est nécessaire dans les scripts

core.pipe_check_requires

faux

booléen

besoin de la commande requires dans le tube nommé

core.check_updates

faux

booléen

vérifier les mise à jour au démarrage

core.lang

(non défini)

chaîne de caractères

langue de siril active

core.swap_dir

Dépendant de l'os

répertoire

répertoire d'échange

core.binning_update

vrai

booléen

mettre à jour la taille des pixels des images en binning

core.wcs_formalism

1 [0,1]

entier

formalisme WCS utilisé dans l'en-tête FITS

core.catalogue_namedstars

~/.local/share/kstars/namedstars.dat

chaîne de caractères

Chemin d'accès du catalogue namedstars.dat

core.catalogue_unnamedstars

~/.local/share/kstars/unnamedstars.dat

chaîne de caractères

Chemin d'accès du catalogue unnamedstars.dat

core.catalogue_tycho2

~/.local/share/kstars/deepstars.dat

chaîne de caractères

Chemin d'accès du catalogue deepstars.dat

core.catalogue_nomad

~/.local/share/kstars/deepstars.dat

chaîne de caractères

Chemin d'accès du catalogue USNO-NOMAD-1e8.dat

core.catalogue_gaia_astro

~/.local/share/siril/gaia_astrometric.dat

chaîne de caractères

Chemin du catalogue astrométrique local Gaia

core.catalogue_gaia_photo

~/.local/share/siril/gaia_photometric.dat

chaîne de caractères

Chemin du catalogue photométrique local Gaia

core.rgb_aladin

faux

booléen

ajouter CTYPE3='RGB' dans l'en-tête FITS

core.use_checksum

faux

booléen

Vérifier les sommes de contrôle si elles existent

core.copyright

(non défini)

chaîne de caractères

copyright utilisateur à mettre dans l'en-tête du fichier

core.starnet_exe

(non défini)

chaîne de caractères

emplacement de l'exécutable StarNet

core.starnet_weights

(non défini)

chaîne de caractères

emplacement du fichier des poids de StarNet-torch

core.graxpert_path

(non défini)

chaîne de caractères

emplacement de l'exécutable GraXpert

core.asnet_dir

(non défini)

chaîne de caractères

répertoire de l'installation asnet_ansvr

core.fftw_timelimit

60

double

Délai de planification FFTW

core.fftw_conv_fft_cutoff

15

entier

Taille minimal du kernel de convolution pour utiliser FFTW

core.fftwf_strategy

0

entier

Stratégie de planification de la FFTW

core.fftw_multithreaded

vrai

booléen

FFTW multithreadée

core.max_slice_size

32769 [512, 32769]

entier

Taille maximale de tranche pour le traitement automatisé par tranches

starfinder.focal_length

0 [0, 999999]

double

longueur focale en mm pour le réglage du rayon

starfinder.pixel_size

0 [0, 99]

double

taille du pixel en µm pour le réglage du rayon

debayer.use_bayer_header

vrai

booléen

utiliser le motif de Bayer de l'en-tête du fichier

debayer.pattern

0 [0, 7]

entier

indice du motif Bayer

debayer.interpolation

8 [0, 9]

entier

type d'interpolation

debayer.orientation

0 [0, 3]

entier

préférence d'ordre des lignes

debayer.offset_x

0 [0, 1]

entier

Décalage en X de la matrice de Bayer

debayer.offset_y

0 [0, 1]

entier

Décalage en Y de la matrice de Bayer

debayer.xtrans_passes

1 [1, 4]

entier

Nombre de passes pour l'algorithme X-Trans Markesteijn

photometry.gain

2.3 [0, 10]

double

électrons par ADU pour l'estimation du bruit

photometry.inner

20 [2, 100]

double

rayon interne de l'anneau de fond de ciel

photometry.outer

30 [3, 200]

double

rayon externe de l'anneau de fond de ciel

photometry.inner_factor

4.2 [2, 50]

double

facteur de calcul automatique du rayon intérieur

photometry.outer_factor

6.3 [2, 50]

double

facteur de calcul automatique du rayon extérieur

photometry.force_radius

vrai

booléen

fixer la valeur d'ouverture du flux

photometry.auto_aperture_factor

4 [1, 5]

double

Rapport rayon/demi-FWHM

photometry.aperture

10 [1, 100]

double

ouverture fixe pour le calcul du flux

photometry.minval

-1500 [-65536, 65534]

double

valeur minimale valide du pixel pour la photométrie

photometry.maxval

60000 [1, 65535]

double

valeur maximale valide du pixel pour la photométrie

photometry.discard_var_catalogues

4 [0, 7]

entier

les catalogues à utiliser pour écarter les étoiles variables de la liste des étoiles de comparaison

photometry.redpref

(non défini)

chaîne de caractères

filtre rouge préféré pour SPCC

photometry.greenpref

(non défini)

chaîne de caractères

filtre vert préféré pour SPCC

photometry.bluepref

(non défini)

chaîne de caractères

filtre bleu préféré pour SPCC

photometry.lpfpref

(non défini)

chaîne de caractères

filtre LPF d'APN préféré pour SPCC

photometry.oscfilterpref

Aucun filtre

chaîne de caractères

filtre couleur préféré pour SPCC

photometry.monosensorpref

(non défini)

chaîne de caractères

capteur mono préféré pour SPCC

photometry.oscsensorpref

(non défini)

chaîne de caractères

capteur couleur préféré pour SPCC

photometry.is_mono

vrai

booléen

est-ce que le capteur pour SPCC est mono ?

photometry.is_dslr

faux

booléen

est-ce que le capteur couleur pour SPCC est d'APN ?

photometry.nb_mode

faux

booléen

sommes-nous en mode bande étroite ?

photometry.r_wl

656.28

double

longueur d'onde du filtre rouge

photometry.r_bw

6

double

largeur de bande du filtre rouge

photometry.g_wl

500.7

double

longueur d'onde du filtre vert

photometry.g_bw

6

double

largeur de bande du filtre vert

photometry.b_wl

500.7

double

longueur d'onde du filtre bleu

photometry.b_bw

6

double

largeur de bande du filtre bleu

astrometry.asnet_keep_xyls

faux

booléen

ne pas supprimer la table FITS .xyls

astrometry.asnet_keep_wcs

faux

booléen

ne pas supprimer le fichier de résultat .wcs

astrometry.asnet_show_output

faux

booléen

montrer la sortie de solve-field dans le log principal

astrometry.sip_order

3 [1, 5]

entier

degrés de la correction polynomiale

astrometry.radius

10 [0.01, 30]

double

rayon autour des coordonnées de la cible (degrés

astrometry.max_seconds_run

30 [0, 100000]

entier

maximum de secondes pour essayer de résoudre

astrometry.update_default_scale

vrai

booléen

mettre à jour la longueur focale et la taille de pixel par défaut à partir du résultat

astrometry.percent_scale_range

20 [1, 50]

entier

pourcentage en dessous et au-dessus de l'échantillonnage prévu

astrometry.default_obscode

(non défini)

chaîne de caractères

code de l'observatoire de l'UAI par défaut

analysis.panel

256 [127, 1024]

entier

taille du panneau de l'inspecteur d'aberration

analysis.window

381 [300, 1600]

entier

taille de la fenêtre de l'inspecteur d'aberration

compression.enabled

faux

booléen

Compression FITS activée

compression.method

0 [0, 3]

entier

méthode de compression FITS

compression.quantization

16 [8, 256]

double

facteur de quantification pour nombres flottants 32 bits

compression.hcompress_scale

4 [0, 256]

double

Facteur d'échelle HCompress

gui_prepro.cfa

faux

booléen

type de capteur pour la correction cosmétique

gui_prepro.equalize_cfa

vrai

booléen

égaliser les canaux du flat

gui_prepro.fix_xtrans

faux

booléen

activer la correction pour le capteur X-Trans

gui_prepro.xtrans_af_x

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_af_y

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_af_w

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_af_h

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_sample_x

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_sample_y

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_sample_w

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.xtrans_sample_h

0

entier

si aucun modèle X-Trans n'est trouvé, utilisez ceci

gui_prepro.bias_lib

(non défini)

chaîne de caractères

bias maître par défaut

gui_prepro.use_bias_lib

faux

booléen

utiliser le bias maître par défaut

gui_prepro.dark_lib

(non défini)

chaîne de caractères

master-dark par défaut

gui_prepro.use_dark_lib

faux

booléen

utiliser le dark maître par défaut

gui_prepro.flat_lib

(non défini)

chaîne de caractères

flat maître par défaut

gui_prepro.use_flat_lib

faux

booléen

utiliser le flat maître par défaut

gui_prepro.disto_lib

(non défini)

chaîne de caractères

master-distorsion par défaut

gui_prepro.use_disto_lib

faux

booléen

utiliser le fichier distorsion maître par défaut

gui_prepro.stack_default

$seqname$stacked

chaîne de caractères

nom d'empilement par défaut

gui_prepro.use_stack_default

vrai

booléen

utiliser le nom de fichier empilé préféré

gui_registration.method

0 [0, 7]

entier

indice de la méthode d'alignement sélectionnée

gui_registration.interpolation

4 [0, 5]

entier

indice de la méthode d'interpolation sélectionnée

gui_registration.clamping

vrai

booléen

utiliser la méthode de contrainte avec les interpolations Lanczos et Cubique

gui_registration.drizz_weight_match_bitpix

faux

booléen

Faire correspondre le bitpix des poids Drizzle à la séquence

gui_stack.method

0 [0, 4]

entier

indice de la méthode sélectionnée

gui_stack.normalization

3 [0, 4]

entier

indice de la méthode de normalisation

gui_stack.rejection

5 [0, 7]

entier

indice de la méthode de rejet

gui_stack.weighting

0 [0, 4]

entier

indice de la méthode de pondération

gui_stack.sigma_low

3 [0, 20]

double

valeur sigma bas pour le rejet

gui_stack.sigma_high

3 [0, 20]

double

sigma valeur haute pour le rejet

gui_stack.linear_low

5 [0, 20]

double

valeur linéaire basse pour le rejet

gui_stack.linear_high

5 [0, 20]

double

valeur linéaire haute pour le rejet

gui_stack.percentile_low

3 [0, 100]

double

pourcentage valeur basse pour le rejet

gui_stack.percentile_high

3 [0, 100]

double

pourcentage valeur haute pour le rejet

gui.first_start

(non défini)

chaîne de caractères

premier démarrage de siril

gui.silent_quit

faux

booléen

ne pas confirmer la sortie en quittant

gui.silent_linear

faux

booléen

ne pas confirmer la sauvegarde en mode non linéaire

gui.remember_windows

vrai

booléen

se souvenir de la position de la fenêtre

gui.main_win_pos_x

0

entier

position principal de la fenêtre

gui.main_win_pos_y

0

entier

position principal de la fenêtre

gui.main_win_pos_w

0

entier

position principal de la fenêtre

gui.main_win_pos_h

0

entier

position principal de la fenêtre

gui.pan_position

-1

entier

position du séparateur des deux côtés

gui.extended

vrai

booléen

la fenêtre principale est étendue

gui.maximized

faux

booléen

la fenêtre principale est maximisée

gui.theme

0 [0, 1]

entier

indice du thème sélectionné

gui.font_scale

100

double

taille de la police en pourcentage

gui.icon_symbolic

faux

booléen

style d'icône

gui.script_path

liste des chaines

liste des répertoires de scripts

gui.use_scripts_repository

vrai

booléen

utiliser et synchroniser le dépôt de scripts en ligne

gui.use_spcc_repository

vrai

booléen

utiliser et synchroniser le dépôt de la base de données spcc

gui.auto_update_scripts

vrai

booléen

synchroniser automatiquement les dépôts de scripts en ligne

gui.auto_update_spcc

vrai

booléen

synchroniser automatiquement les dépôts de la base de données spcc

gui.selected_scripts

liste des chaines

liste des scripts sélectionnés dans le dépôt

gui.warn_scripts_run

vrai

booléen

avertissement lors de l'exécution d'un script

gui.show_thumbnails

vrai

booléen

montrer la vignette dans le sélecteur de fichiers

gui.thumbnail_size

256

entier

Taille des vignettes

gui.selection_guides

0

entier

nombre d'éléments des guides de la grille

gui.show_deciasec

faux

booléen

afficher les dixièmes d'arcsecondes au survol de l'écran

gui.default_rendering_mode

0 [0, 6]

entier

mode d'affichage par défaut

gui.display_histogram_mode

0 [0, 1]

entier

mode d'affichage de l'histogramme par défaut

gui.roi_mode

0

entier

Mode de sélection des ROI

gui.roi_warning

vrai

booléen

activer l'avertissement de la boîte de dialogue des ROI

gui.mmb_zoom_action

0

entier

Double clic sur le bouton du milieu de la souris pour zoomer

gui.mouse_speed_limit

0

double

Limite de vitesse du défilement fluide de la souris

gui.color_bkg_samples

rgba(255, 51, 26, 1.0)

chaîne de caractères

configurer la couleur des échantillons de l'extraction de gradient

gui.color_std_annotations

rgba(128, 255, 77, 0.9)

chaîne de caractères

configurer la couleur standard des annotations

gui.color_dso_annotations

rgba(255, 128, 0, 0.9)

chaîne de caractères

configurer la couleur des annotations du ciel profond

gui.color_sso_annotations

rgba(255, 255, 0, 0.9)

chaîne de caractères

configurer la couleur des annotations du système solaire

gui.color_tmp_annotations

rgba(255, 0, 0, 0.9)

chaîne de caractères

configurer la couleur des annotations temporaires

gui.custom_monitor_profile

(non défini)

chaîne de caractères

chemin d'accès au profil ICC du moniteur personnalisé

gui.soft_proofing_profile

(non défini)

chaîne de caractères

chemin vers l'épreuvage en douceur Profil de la CCI

gui.icc_custom_monitor_active

faux

booléen

profil de moniteur personnalisé actif

gui.icc_soft_proofing_active

faux

booléen

profil d'épreuvage de sortie actif

gui.custom_RGB_ICC_profile

(non défini)

chaîne de caractères

chemin d'accès au profil ICC RVB personnalisé

gui.custom_gray_ICC_profile

(non défini)

chaîne de caractères

chemin d'accès au profil ICC gris personnalisé

gui.rendering_intent

1

entier

intention de rendu de la gestion des couleurs

gui.proofing_intent

1

entier

intention de l'épreuvage de la gestion des couleurs

gui.export_intent

1

entier

intention d'exportation de la gestion des couleurs

gui.default_to_srgb

vrai

booléen

la valeur par défaut est sRGB lors de l'exportation d'images non gérées colorimétriquement

gui.working_gamut

0

entier

gamut de travail de la gestion des couleurs

gui.export_8bit_method

0

entier

profil d'exportation de la gestion des couleurs pour les fichiers 8bit

gui.export_16bit_method

1

entier

profil d'exportation de la gestion des couleurs pour les fichiers 16bit

gui.icc_autoconversion

0

entier

autoconvertir les images avec un profil ICC dans l'espace colorimétrique de travail

gui.icc_autoassignment

4

entier

encode les options d'attribution automatique des profils ICC

gui.icc_rendering_bpc

vrai

booléen

active le rendu BPC

gui.icc_pedantic_linear

faux

booléen

attribue de manière rigoureuse des profils ICC linéaires

gui.mouse_actions

liste des chaines

configuration des actions de la souris. Structure de données opaque, à éditer à l'aide de l'interface graphique

gui.scroll_actions

liste des chaines

configuration des actions de défilement. Structure de données opaque, à éditer à l'aide de l'interface graphique

gui_astrometry.compass_position

1 [0,5]

entier

indice de la position de la boussole sur la grille

gui_astrometry.cat_messier

vrai

booléen

montrer les objets Messier dans les annotations

gui_astrometry.cat_ngc

vrai

booléen

Affiche les objets NGC dans les annotations

gui_astrometry.cat_ic

vrai

booléen

montrer les objets IC dans les annotations

gui_astrometry.cat_ldn

vrai

booléen

Affiche les objets LDN dans les annotations

gui_astrometry.cat_sh2

vrai

booléen

Affiche les objets SH2 dans les annotations

gui_astrometry.cat_stars

vrai

booléen

afficher les étoiles dans les annotations

gui_astrometry.cat_const

vrai

booléen

afficher les constellations dans les annotations

gui_astrometry.cat_const_names

vrai

booléen

afficher les noms des constellations dans les annotations

gui_astrometry.cat_user_dso

vrai

booléen

afficher les objets ciel profond de l'utilisateur dans les annotations

gui_astrometry.cat_user_sso

vrai

booléen

afficher les objets du système solaire de l'utilisateur dans les annotations

gui_pixelmath.pm_presets

liste des chaines

liste des préréglages du pixel math

script_editor.highlight_syntax

vrai

booléen

coloriser la syntaxe dans l'éditeur de script

script_editor.highlight_bracketmatch

vrai

booléen

mettre en évidence les parenthèses correspondantes dans l'éditeur de script

script_editor.rmargin

vrai

booléen

afficher la marge de droite dans l'éditeur de script

script_editor.rmargin_pos

80

entier

position de la marge droite dans l'éditeur de script

script_editor.show_linenums

vrai

booléen

afficher les numéros de ligne dans l'éditeur de script

script_editor.show_linemarks

faux

booléen

afficher les marqueurs de ligne dans l'éditeur de script

script_editor.highlight_currentline

vrai

booléen

met en évidence la ligne en cours dans l'éditeur de script

script_editor.autoindent

vrai

booléen

indenter automatiquement les nouvelles lignes

script_editor.indentontab

vrai

booléen

indenter les blocs de lignes sélectionnés dans l'éditeur de script à l'aide de la touche de tabulation

script_editor.smartbs

vrai

booléen

Comportement intelligent du retour arrière dans l'éditeur de scripts

script_editor.smarthomeend

vrai

booléen

Smart Home / Comportement final dans l'éditeur de script

script_editor.showspaces

faux

booléen

Afficher les caractères d'espacement et de tabulation visibles dans l'éditeur de script

script_editor.shownewlines

faux

booléen

Afficher les caractères de retour à la ligne dans l'éditeur de script

script_editor.minimap

faux

booléen

Afficher une minimap dans l'éditeur de script

(*). Pour les catalogues kstars, il s'agit par défaut de ~/.local/share/kstars/, quel que soit votre système d'exploitation.
Dans tous les cas, vous devrez les télécharger et définir le répertoire que vous avez choisi.

Les valeurs peuvent être récupérées avec la commande get :

Ligne de commande Siril

get { -a | -A | variable }
Obtient une valeur des paramètres en utilisant son nom, ou liste tout avec -a (liste de noms et de valeurs) ou avec -A (liste détaillée)

Voir aussi SET pour mettre à jour les valeurs

Liens : set

Les valeurs peuvent être modifiées avec la commande set :

Ligne de commande Siril

set { -import=inifilepath | variable=value }
Met à jour une valeur de paramètre, en utilisant son nom de variable, avec la valeur donnée, ou un ensemble de valeurs en utilisant un fichier ini existant avec l'option -import=.
Voir GET pour obtenir des valeurs ou la liste des variables

Liens : get

Formats de fichier

Il existe plusieurs formats de fichiers que Siril peut ouvrir et avec lesquels il peut travailler. Cependant, seuls deux sont lus nativement et permettent de construire des séquences : les formats FITS et SER.

Nous examinerons ici les différents formats de fichiers lus par Siril et comprendrons les limites de certains et les points forts d'autres.

Profondeur de bits

La profondeur de bits définie la nombre de bits utiliser pour coder la couleur d'un seul pixel, ou le nombre de bits utilisé par chaque composante de couleur pour un seul pixel.

Pour les images de la vie quotidienne, 8 bits suffisent amplement. Cela signifie qu'un pixel est codé sur des valeurs comprises dans l'intervalle [0, 255]. Toutefois, la photographie d'objets astronomiques est plus exigeante et nécessite généralement de travailler sur des images d'une profondeur de bits d'au moins 16 bits : c'est-à-dire dans la plage [0, 65535]. Mieux encore, une précision de 32 bits permet de conserver les informations les plus subtiles. Sur ce dernier type, les pixels sont soit encodés dans l'intervalle [0, 4294967295], soit, comme utilisé dans Siril, entre les valeurs flottantes [0, 1]. Il est possible de trouver des formats codant les pixels sur 64 bits (dans l'intervalle [0, 1], mais ils sont rares et ont une utilisation très spécifique. Le format FITS notamment le permet.

Cependant, tous les formats de fichiers d'images ne supportent pas le 16 bits, et encore moins le 32 bits. Il faut donc en tenir compte lors du choix du format.

image 16-bit

Image linéaire sauvegardée en 16 bits

image 8-bit

La même image linéaire sauvegardée en 8 bits. Presque toutes les données ont été perdues

Format de fichier commun

Les formats de fichiers d'images présentés ici sont des formats standard, lisibles par tous les logiciels de traitement d'images. Ces formats ont été conçus pour répondre à des besoins anciens et peuvent être obsolètes. De plus, aucun de ces formats n'a été conçu pour traiter des données astronomiques. Ils doivent donc généralement être utilisés en fin de chaîne de traitement.

Format AVIF

AVIF est un format d'image moderne basé sur le codec vidéo AV1. Ce format utilise le format de conteneur HEIC. Siril supporte la lecture d'images AVIF jusqu'à une profondeur de 12 bits. Un support sans perte peut être disponible en fonction des codecs compilés dans la librairie libheif installée. AVIF supporte les profils de couleur utilisant à la fois les profils ICC intégrés et les identifiants NCLX : les profils ICC intégrés sont entièrement supportés, et il y a un support partiel pour les identifiants NCLX (ils sont convertis en profil ICC équivalent, bien qu'actuellement seuls les profils NCLX les plus probables soient supportés).

Les extensions de nom de fichier pour ce format sont .avif.

Format BMP

Les fichiers portant l'extension .bmp sont des fichiers d'images bitmap utilisés pour stocker des images bitmap numériques. Ces images sont indépendantes de la carte graphique et sont également appelées format de fichier DIB (Device Independent Bitmap). Cette indépendance permet au fichier d'être ouvert sur de multiples plateformes telles que Microsoft Windows et Mac. Le format de fichier BMP permet de stocker des données sous forme d'images numériques bidimensionnelles, à la fois en monochrome et en couleur, avec différentes profondeurs de couleur.

Aujourd'hui, ce format n'est plus vraiment utilisé et d'autres types de fichiers sont préférés.

Format HEIF

HEIF est un format d'image moderne basé sur le codec vidéo x265. Ce format utilise le format de conteneur HEIC. Siril supporte la lecture d'images HEIC jusqu'à une profondeur de 12 bits. Un support sans perte peut être disponible en fonction des codecs compilés dans la libheif installée. HEIC supporte les profils de couleur utilisant à la fois les profils ICC intégrés et les identifiants NCLX : les profils ICC intégrés sont entièrement supportés, et il y a un support partiel pour les identifiants NCLX (ils sont convertis en profil ICC équivalent, bien qu'actuellement seuls les profils NCLX les plus probables soient supportés).

Les extensions de nom de fichier pour ce format sont .heic et .heif.

Format JPEG

Probablement le format de fichier le plus utilisé pour le partage d'images sur les forums, par e-mail ou sur des clés usb. Ce format permet une compression plus ou moins forte (destructive) qui donne des tailles de fichiers idéales pour les échanges. L'extension de ce type de fichier est .jpg ou .jpeg.

Le format JPEG n'est cependant codé qu'en 8 bits. Avec la compression qui produit des artefacts, ce format n'est pas très adapté aux images d'astronomie et on lui préfère généralement le format PNG.

Format JPEG XL

Après plusieurs mises à jour du format JPEG (JPEG 2000, JPEG XR...), JPEG XL représente un saut majeur dans les capacités avec l'intention déclarée de remplacer tous les formats matriciels. Qu'il y parvienne ou non, il présente plusieurs caractéristiques qui le rendent intéressant pour l'astrophotographie et Siril a donc ajouté la prise en charge de la lecture et de l'écriture. Il prend en charge des profondeurs de bits élevées, jusqu'à 32 bits flottants. Il prend en charge la compression avec et sans perte : pour la compression avec perte, il permet d'obtenir des taux de compression bien supérieurs à ceux du JPEG pour le même paramètre de qualité, et pour la compression sans perte, il permet d'obtenir des taux de compression bien supérieurs à ceux du PNG. Notez que les métadonnées FITS ne seront pas préservées lors de l'enregistrement en JPEG XL : son utilisation principale dans Siril sera probablement un format d'archivage pour les rendus finaux d'images. Il peut également être utile pour l'exportation vers le web : le format n'est pas encore largement supporté par les navigateurs, mais Safari le supporte nativement et le support est disponible expérimentalement ou à l'aide de modules complémentaires dans Firefox et Chrome, de sorte que nous pourrions voir le support se généraliser à l'avenir.

JPEG XL prend entièrement en charge les profils ICC intégrés, mais pour améliorer la compression, il enregistre les profils qu'il reconnaît avec un identifiant codé au lieu du profil complet. Cela signifie que la description du profil ICC que vous voyez après avoir ouvert un fichier JPEG XL sauvegardé peut ne pas être la même qu'à l'origine, mais le profil ICC sera fonctionnellement identique.

L'extension du nom de fichier pour ce format est .jxl.

Format PNG

Portable Network Graphics est un format de fichier graphique matriciel qui prend en charge la compression des données sans perte. L'extension du format est .png. Les images PNG en niveaux de gris prennent en charge la plus large gamme de profondeurs de pixels de tous les types d'images. Les profondeurs de 1, 2, 4, 8 et 16 bits sont prises en charge, couvrant tout des simples scans en noir et blanc aux images médicales en profondeur et aux images astronomiques brutes.

Les données d'images astronomiques calibrées sont généralement stockées sous forme de valeurs à virgule flottante de 32 ou 64 bits, et certaines données brutes sont représentées sous forme d'entiers de 32 bits. Aucun des deux formats n'est directement pris en charge par PNG.

Néanmoins, ce format est un excellent choix pour sauvegarder l'image finale, après traitement.

Format TIFF

Le format TIFF ou TIF (Tagged Image File Format) représente des images matricielles destinées à être utilisées sur divers appareils conformes à cette norme de format de fichier. Il est capable de décrire des données d'image à deux niveaux, en niveaux de gris, en couleurs de palette et en couleurs complètes dans plusieurs espaces colorimétriques. Il prend en charge les schémas de compression avec et sans perte pour permettre aux applications qui utilisent ce format de choisir entre l'espace et le temps. L'extension est soit .tiff, soit .tif.

Les avantages du format TIFF sont multiples. Il supporte un encodage jusqu'à 32 bits par pixels et offre une grande variété de champs possibles dans les métadonnées, ce qui en fait un bon candidat pour le stockage des données astronomiques.

En utilisant le format TIFF, et en collaboration avec d'autres développeurs, nous avons mis en place une pseudo norme, Astro-TIFF.

Format NetPBM

Plusieurs formats graphiques sont utilisés et définis par le projet Netpbm. Les formats portable pixmap (PPM), portable graymap (PGM) et portable bitmap (PBM) sont des formats de fichiers d'images conçus pour être facilement échangés entre plates-formes. Les extensions de fichiers possibles sont .pbm, .pgm (pour les fichiers en niveaux de gris) et .ppm.

Ces formats, qui prennent en charge jusqu'à 16 bits par canal, sont peu utilisés et ne devraient être utilisés que pour le stockage final des images.

Format AVI

Il s'agit d'un format de film, capable de contenir des données avec différents codecs audio et vidéo. Il existe des codecs vidéo sans perte qui ont été utilisés dans le passé pour l'imagerie astronomique, mais il s'agit d'un format qui ne contient pas de métadonnées utilisables pour l'astronomie, qui est limité aux images 8 bits et qui ne garantit pas que les données qu'il contient soient brutes.

Avertissement

Ce format de fichier d'entrée est maintenant déprécié. Nous vous recommandons d'utiliser le format SER à la place.

FITS

Spécification

FITS signifie Flexible Image Transport System et est un standard de format de données astronomiques utilisé par les scientifiques professionnels tel que la NASA. FITS est bien plus qu'un format d'image (comme JPG ou TIFF) et est principalement conçu pour stocker des données scientifique dans des tableaux multidimensionnels.

Un fichier FITS se compose d'une ou plusieurs unités d'en-tête et de données (HDU), le premier HDU étant appelé "HDU primaire" ou "tableau primaire". Cinq types de données primaires sont pris en charge : octets non signés de 8 bits, entiers signés de 16 et 32 bits et réels flottants de 32 et 64 bits en simple et double précision. Le format FITS peut également stocker des entiers non signés de 16 et 32 bits.

Chaque unité d'en-tête est constituée d'un nombre quelconque de mots-clés enregistrés de 80 caractères qui ont la forme générale suivante :

KEYNAME = value / comment string

Les noms de mots-clés peuvent comporter jusqu'à 8 caractères et ne peuvent contenir que des lettres majuscules, des chiffres de 0 à 9, trait d'union et caractère de soulignement. Le nom du mot-clé est (généralement) suivi d'un signe égal et d'un espace (= ) dans les colonnes 9 et 10 de l'en-tête, puis de la valeur du mot-clé, qui peut être un nombre entier, un nombre à virgule flottante, une chaîne de caractères (entre guillemets simples) ou une valeur booléenne (la lettre T ou F).

Le dernier mot-clé de l'en-tête est toujours le mot-clé END qui n'a pas de champ de valeur ou de commentaire.

Chaque unité d'en-tête commence par une série de mots-clés obligatoires qui spécifient la taille et le format de l'unité de données qui suit. L'en-tête principale d'une images à deux dimensions, par exemple, commence par les mots-clés suivants :

SIMPLE  =                    T / file does conform to FITS standard
BITPIX  =                   16 / number of bits per data pixel
NAXIS   =                    2 / number of data axes
NAXIS1  =                  440 / length of data axis 1
NAXIS2  =                  300 / length of data axis 2

Note

Dans Siril, les fichiers FITS 64 bits ne sont pas supportés. Siril les lit mais les convertit en fichiers 32 bits.

Nom de fichier

Les fichiers FITS doivent avoir une extension ".fit", ".fits" ou ".fts" ; les variantes en majuscules sont acceptées mais non recommandées. Il est possible de sélectionner votre extension préférée dans la boîte de dialogue Préférences, celle-ci sera alors utilisée pour l'enregistrement des fichiers FITS, mais toutes les extensions autorisées seront acceptées pour la lecture des images FITS ou des images de séquence.

Avertissement

La bibliothèque de fichiers FITS cfitsio interprète les crochets dans les noms de fichiers comme fournissant des options de filtrage. Par conséquent, que les caractères crochets soient autorisés ou non dans les noms de fichiers par votre système d'exploitation, ils ne doivent pas être utilisés dans les fichiers FITS.

Compression

La compression est le moyen de réduire la taille de l'image. Il existe de nombreuses méthodes de compression en fonction du type d'images utilisées. Cette compression peut être destructive, comme avec le JPEG, ou sans perte comme le propose le PNG.

Il est possible de travailler avec des fichiers FITS compressés. Au prix d'un temps de calcul plus long, la taille des images peut être considérablement réduite. Siril propose plusieurs algorithmes de compression qui sont les suivants :

  • Rice : L'algorithme Rice est simple et très rapide

  • GZIP 1 : L'algorithme gzip est utilisé pour compresser et décompresser les pixels de l'image. Gzip est l'algorithme de compression utilisé dans le logiciel libre GNU du même nom.

  • GZIP 2 : Les octets du tableau des valeurs des pixels de l'image sont mélangés par ordre décroissant de signification avant d'être compressés à l'aide de l'algorithme gzip. Cette méthode est particulièrement efficace lors de la compression de tableaux à virgule flottante.

Une option est associée à ces algorithmes, le Niveau de quantification :

Bien que les images en virgule flottante puissent être compressées sans perte (à l'aide de gzip, puisque Rice ne compresse que les tableaux d'entiers), ces images ne se compressent souvent pas très bien parce que les valeurs des pixels sont trop bruitées ; les bits de poids faible de la mantisse des valeurs des pixels contiennent en effet des motifs de bits aléatoires incompressibles. Pour obtenir une meilleure compression, il faut supprimer une partie de ce bruit, mais sans perdre l'information utile qu'il contient. Si elle est trop grande, on sous-échantillonne les valeurs des pixels, ce qui entraîne une perte d'informations dans l'image. En revanche, s'il est trop petit, il préserve une trop grande partie du bruit (voire l'amplifie) dans les valeurs des pixels, ce qui se traduit par une mauvaise compression.

Note

Les algorithmes de compression d'image supportés sont tous sans perte lorsqu'ils sont appliqués à des images FITS entières ; les valeurs des pixels sont préservées exactement sans perte d'information pendant le processus de compression et de décompression. Les images FITS à virgule flottante (qui ont BITPIX = -32 ou -64) sont d'abord quantifiées en valeurs de pixels entiers mis à l'échelle avant d'être compressées. Cette technique permet d'obtenir des facteurs de compression beaucoup plus élevés qu'en utilisant simplement GZIP pour compresser l'image, mais cela signifie également que les valeurs flottantes originales des pixels peuvent ne pas être restituées avec précision lorsque l'image est décompressée. Lorsque cette technique est utilisée correctement, elle ne fait qu'éliminer le "bruit" des valeurs à virgule flottante sans perdre d'informations significatives.

Cas particuliers des fichiers scientifiques FITS

Les fichiers FITS produits par les grandes missions astronomiques telles que celles du télescope spatial Hubble (HST) de la NASA ou du télescope spatial James Webb (JWST) sont souvent plus complexes que les fichiers FITS typiques utilisés par les astronomes amateurs. Ces fichiers sont généralement structurés comme des séquences FITS (également appelées cubes FITS), mais avec une différence importante : les images individuelles à l'intérieur de ces séquences peuvent avoir des dimensions différentes.

Cette fonction permet de stocker des données multidimensionnelles collectées dans des conditions variables, où chaque image de la séquence peut ne pas avoir la même résolution ou la même taille. Par exemple, les données du JWST comportent souvent des ensembles de données hétérogènes en raison de la nature de ses instruments et de ses modes d'observation.

Dans Siril, lors du traitement de ces types de fichiers FITS scientifiques, il est crucial d'activer l'option qui permet de traiter des images de dimensions différentes dans un cube FITS. Ceci peut être fait en sélectionnant l'option Autoriser les cubes FITS à avoir des images de tailles différentes dans l'onglet Options FITS des préférences.

Avertissement

Actuellement, Siril est incapable de traiter les fichiers FITS avec NAXES[2] > 3. Cette fonctionnalité est prévue pour de futures versions du logiciel, donc les cubes FITS à plus de trois axes ne sont pas pris en charge pour le moment.

Image du JWST chargée dans Siril

Exemple d'une image du JWST chargée dans Siril

Orientation des images FITS

Le standard FITS est un conteneur qui décrit comment stocker des données d'image et des métadonnées. Les outils professionnels, depuis les débuts du format FITS, comme ds9 (Harvard Smithsonian Center for Astrophysics), fv (FITS viewer de la NASA), stockent les images de bas en haut. Nous pourrions être tentés de dire que cela n'a pas vraiment d'importance, mais lorsque le dématriçage ou l'astrométrie sont impliqués, des problèmes se posent. Par exemple, le motif de Bayer RVVB habituel devient VBRV si l'image est à l'envers.

Aujourd'hui, malgré cela, la plupart des pilotes des caméras écrivent les données dans l'ordre descendant et nous devons nous en accommoder.

Pour ces raisons, nous avons récemment introduit, avec P. Chevalley de CCDCiel, un nouveau mot-clé FITS. Nous encourageons tous les producteurs de données, les développeurs INDI et ASCOM, à l'utiliser afin de faciliter les choses pour tout le monde.

Ce mot clé est ROWORDER de type TSTRING. Il peut prendre deux valeurs : BOTTOM-UP et TOP-DOWN.

Siril lit et affiche toujours les images dans l'ordre ascendant, mais si l'information descendante est spécifiée dans le mot-clé, alors Siril dématrice l'image avec le motif corrigé.

Pourquoi certains programmes écrivent-ils les images de manière ascendante ?

La raison en est la suivante : les mathématiques le font de cette façon.

De plus, la spécification FITS précise :

5.1. Conventions d'affichage des images

Il est très utile d'adopter une convention pour l'affichage des images transférées via le format FITS. De nombreux systèmes actuels de traitement d'images ont convergé vers une telle convention. Nous recommandons donc aux auteurs de FITS d'ordonner les pixels de manière à ce que le premier pixel du fichier FITS (pour chaque plan d'image) soit celui qui serait affiché dans le coin inférieur gauche (avec le premier axe croissant vers la droite et le deuxième axe croissant vers le haut) par le système d'imagerie de l'auteur de FITS. Cette convention est clairement utile en l'absence d'une description des coordonnées mondiales. Elle n'empêche pas un programme de consulter les descriptions des axes et d'outrepasser cette convention, ni l'utilisateur de demander un affichage différent. Cette convention ne dispense pas non plus les auteurs de FITS de fournir des descriptions complètes et correctes des coordonnées de l'image, permettant ainsi à l'utilisateur de déterminer la signification de l'image. L'ordre d'affichage de l'image est simplement une convention de commodité, alors que les coordonnées des pixels font partie de la physique de l'observation.

Avertissement

Le mot-clé ROWORDER peut être utilisé pour :

  1. Affichage de l'image avec l'orientation prévue ( afficher une image non inversée).

  2. Retourner le motif de matrice de Bayer. Le motif de Bayer peut donc être celui spécifié conforme par le fournisseur du capteur.

MAIS

  1. ROWORDER ne doit pas être utilisé pour déplier les données de l'image pour l'empilement. Sinon, les nouvelles images deviendraient incompatibles avec les anciennes images darks et flats.

  2. ROWORDER ne doit pas être utilisé pour déplier les données de l'image pour la résolution astrométrique. Cela rendrait la solution astrométrique incompatible avec d'autres programmes.

Logiciel utilisant le mot-clé ROWORDER

Récupérer la matrice de Bayer

L'ordre des lignes de l'image change la façon dont la matrice de Bayer doit être lue, mais il y a aussi deux mots-clés optionnels dans l'en-tête FITS qui ont un effet sur cela : XBAYROFF et YBAYROFF. Ils spécifient un décalage par rapport à la matrice de Bayer, pour commencer à la lire sur la première colonne ou la première ligne.

Pour aider les développeurs à intégrer les mots-clés ROWORDER, XBAYROFF et YBAYROFF dans leurs logiciels, Han Kleijn de hnsky.org a créé des images de test, une pour chaque combinaison des trois mots-clés. Téléchargez-les ici : Bayer_test_pattern_v6.tar.gz.

Liste des mots-clés FITS

Siril peut lire et interpréter un large éventail de mots-clés. La liste suivante illustre les mots-clés non standard que le Siril enregistre si nécessaire. Certains mots-clés lus par le Siril peuvent ne pas apparaître dans cette liste. Par exemple, les mots-clés CCDTEMP ou TEMPERAT, qui indiquent la température du capteur, sont correctement lus, mais sont propagés sous le mot-clé CCD-TEMP.

Astuce

Siril est capable de lire et de comparer les sommes de contrôle si elles sont présentes dans l'en-tête FITS. Cependant, par défaut et pour des raisons de performance logicielle, les cartes CHECKSUM et DATASUM sont automatiquement supprimées des en-têtes HDU lors de l'ouverture d'un fichier, et toute carte CHECKSUM ou DATASUM est retirée des en-têtes lors de l'écriture d'un HDU dans un fichier. Elles peuvent néanmoins être enregistrées à la demande de l'utilisateur, à l'aide de l'option -chksum de la commande save, ou via l'interface graphique.

Mots-clés FITS enregistrés par Siril. Pour des raisons de clarté, les mots-clés SIP de l'astrométrie ne sont pas listés.

Mots clés FITS

Type

Commentaire

BZERO

Double

Décalage de la plage de données par rapport à celle d'une valeur non signée (unsigned short)

BSCALE

Double

Facteur d'échelle par défaut

MIPS-HI

Unsigned short

Coupure supérieure de visualisation

MIPS-LO

Unsigned short

Coupure inférieure de visualisation

MIPS-FHI

Float

Coupure supérieure de visualisation

MIPS-FLO

Float

Coupure inférieure de visualisation

PROGRAM

String

Logiciel qui a créé ce HDU

FILENAME

String

Nom de fichier d'origine

DATE

String

Date UTC de création du fichier FITS

DATE-OBS

String

YYYY-MM-DDTh:mm:ss début de l'observation, UT

IMAGETYP

String

Types d'image

ROWORDER

String

Ordre des lignes dans le tableau d'images

EXPTIME

Double

[s] Durée du temps d'exposition

TELESCOP

String

Télescope utilisé pour acquérir cette image

OBSERVER

String

Nom de l'observateur

FILTER

String

Nom du filtre actif

APERTURE

Double

Ouverture de l'instrument

ISOSPEED

Double

Réglage ISO de l'appareil photo

FOCALLEN

Double

[mm] Longueur focale

CENTALT

Double

[deg] Altitude du télescope

CENTAZ

Double

[deg] Azimut du télescope

XBINNING

Unsigned int

Mode de binning de la caméra

YBINNING

Unsigned int

Mode de binning de la caméra

XPIXSZ

Double

[um] Taille du pixel en X

YPIXSZ

Double

[um] Taille du pixel en Y

INSTRUME

String

Nom de l'instrument

CCD-TEMP

Double

[degC] température CCD

SET-TEMP

Double

[decC] Température de consigne du CCD

GAIN

Unsigned short

Gain du capteur

OFFSET

Unsigned short

Offset du gain du capteur

CVF

Double

[e-/ADU] Électrons par unité A/D

BAYERPAT

String

Matrice de Bayer

XBAYROFF

Int

Décalage X de la matrice de Bayer

YBAYROFF

Int

Décalage Y de la matrice de Bayer

FOCNAME

String

Nom de l'équipement de mise au point

FOCPOS

Int

[pas] Position du focuseur

FOCUSSZ

Int

[um] Taille du pas du focuseur

FOCTEMP

Double

[degC] Température du focuseur

STACKCNT

Unsigned int

Images d'empilement

LIVETIME

Double

[s] Temps d'exposition après correction du temps mort

EXPSTART

Double

[JD] Heure de début de l'exposition (date julienne standard)

EXPEND

Double

[JD] Heure de fin d'exposition (date julienne standard)

OBJECT

String

Nom de l'objet d'intérêt

AIRMASS

Double

Masse d'air au centre du cadre (Gueymard 1993)

SITELAT

Double

[deg] Latitude du site d'observation

SITELONG

Double

[deg] Longitude du site d'observation

SITEELEV

Double

[m] Élévation du site d'observation

DFTTYPE

String

Module/phase d'une transformée de Fourier discrète

DFTORD

String

Les fréquences spatiales basses/hautes sont situées au centre de l'image

DFTNORM1

Double

Valeur de normalisation pour le canal #1

DFTNORM2

Double

Valeur de normalisation pour le canal #2

DFTNORM3

Double

Valeur de normalisation pour le canal #3

CTYPE3

String

Image RGB

OBJCTRA

String

Ascension droite du centre de l'image (hms)

OBJCTDEC

String

Déclinaison du centre de l'image (dms)

RA

Double

Ascension droite du centre de l'image (deg)

DEC

Double

Déclinaison du centre de l'image (deg)

CTYPE1

String

Projection TAN (gnomique)

CTYPE2

String

Projection TAN (gnomique)

CUNIT1

String

Projection TAN (gnomique) + distorsions SIP

CUNIT2

String

Projection TAN (gnomique) + distorsions SIP

EQUINOX

Double

Equinoxe équatorial

CRPIX1

Double

Pixel de référence de l'axe 1

CRPIX2

Double

Pixel de référence de l'axe 2

CRVAL1

Double

Valeur de référence de l'axe 1 (deg)

CRVAL2

Double

Valeur de référence de l'axe 2 (deg)

LONPOLE

Double

Longitude native du pôle céleste

CDELT1

Double

Taille du pixel en X (deg)

CDELT2

Double

Taille du pixel en Y (deg)

PC1_1

Double

Matrice de transformation linéaire (1, 1)

PC1_2

Double

Matrice de transformation linéaire (1, 2)

PC2_1

Double

Matrice de transformation linéaire (2, 1)

PC2_2

Double

Matrice de transformation linéaire (2, 2)

CD1_1

Double

Matrice d'échelle (1, 1)

CD1_2

Double

Matrice d'échelle (1, 2)

CD2_1

Double

Matrice d'échelle (2, 1)

CD2_2

Double

Matrice d'échelle (2, 2)

PLTSOLVD

Logique

Solver Siril

Astro-TIFF

En 2022, Han Kleijn, développeur du logiciel ASTAP, a proposé de contribuer au développement d'un nouveau pseudo-standard utilisant le format TIFF et tirant parti de la puissance des en-têtes de fichiers FITS. C'est ainsi qu'est né le format Astro-TIFF.

Pourquoi un nouveau standard parmi tous les autres ?

Actuellement, le format le plus utilisé pour l'astrophotographie est le format FITS. Celui-ci, développé par des scientifiques professionnels, répond à toutes les attentes des amateurs. Et bien que sa grande flexibilité pose quelques problèmes de compatibilité, il reste le format à privilégier.

D'autres formats spécialisés existent mais sont généralement associés à un logiciel spécifique. C'est le cas du format XISF développé par l'équipe PixInsight. Ce dernier format, bien que souvent demandé dans Siril, est un format dédié à PixInsight, un logiciel propriétaire. L'intérêt de développer une compatibilité avec Siril est donc minime et nous l'avons fait seulement en lecture pour le cyle de version 1.4.x.

Le développement d'Astro-TIFF apparaît alors comme une bonne alternative, car basé sur le format TIFF, il est possible d'ouvrir les fichiers sur n'importe quel logiciel de traitement d'images.

Enfin, le format TIFF supporte la compression (tout comme le format FITS), ce qui permet de réduire la taille des images.

Spécification 1.0

Daté du 2022-06-21

  • Les fichiers sont conformes à la spécification TIFF 6.0, y compris le supplément 2.

  • L'en-tête FITS est écrit dans la balise de base TIFF Description de l'image. Code 270, Hex 010E.

  • L'en-tête est conforme à la spécification FITS, sauf que les lignes peuvent être inférieures à 80 caractères et que les lignes se terminent par CR+LF (0D0A) ou LF (0A).

  • La première ligne de la description est la première ligne de l'en-tête et commence par SIMPLE. La dernière ligne de l'en-tête commence par END.

Recommandations

  • TIFFtag_orientation=1 (left-top) L'orientation suit les conventions. Le pixel FITS_image[1,1] est en bas à gauche. Le pixel TIFF_image[0,0] est en haut à gauche. Ces pixels sont d'abord écrits ou lus dans le fichier. Ainsi, lors de l'écriture d'une image FITS en TIFF en préservant l'orientation pour l'utilisateur, le premier pixel à écrire est FITS_image[1,NAXIS2].

  • TIFFtag_compression=8 (Deflate) ou 5 (LZW).

  • Pour les images en niveaux de gris, TIFFtag_PhotometricInterpretation = 1 (la valeur minimale est le noir, la valeur maximale est le blanc).

  • Indique tous les mots-clés d'en-tête disponibles.

Notes

  • Cette utilisation du format TIFF est prévue pour les brutes, les darks, les flats et les darks de flat en 16 bits (images astronomiques), mais peut également être utilisée dans le format 32 bits. Il est possible de convertir FITS en TIFF et inversement, mais le programmeur de l'application peut décider d'exporter uniquement (écriture) ou d'importer uniquement (lecture) au format Astro-TIFF.

  • Si une solution astrométrique est incluse, elle doit correspondre à l'orientation de l'image.

  • Certains mots-clés d'en-tête sont redondants comme NAXIS1, NAXIS2, BZERO et BITPIX et ne sont pas nécessaires. Les dimensions et le type d'image TIFF sont prépondérants.

  • Le modèle de dématriçage spécifié dans l'en-tête doit correspondre à l'orientation de l'image.

  • L'en-tête est visible dans de nombreux programmes de manipulation d'images.

Exemple d'un en-tête Astro-TIFF qui ressemble à un en-tête de fichier 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

Sauvegarder un Astro-TIFF dans Siril

Dans Siril, vous pouvez enregistrer des fichiers Astro-TIFF en choisissant le format TIFF dans la boîte de dialogue d'enregistrement lorsque vous cliquez sur Enregistrer sous. La liste déroulante de la boîte de dialogue TIFF vous permet de choisir entre l'enregistrement au format TIFF standard ou au format Astro-TIFF. Ce dernier est le format par défaut.

Boite de dialogue Astro-TIFF

Boîte de dialogue d'enregistrement avec l'option Astro-TIFF

Ligne de commande Siril

savetif filename [-astro] [-deflate]
Enregistre l'image actuelle sous la forme d'un fichier TIFF non compressé de 16 bits par canal : filename.tif. L'option -astro permet d'enregistrer au format Astro-TIFF, tandis que -deflate active la compression.

Voir aussi SAVETIF32 et SAVETIF8

Exemples de fichiers

SER

Le format de fichier SER est un format de séquence d'images simple, similaire aux films non compressés. La documentation se trouve sur la page officielle. Le dernier document PDF est en miroir sur free-astro également.

Avec les améliorations des versions 2 et 3, SER gère les images en couleur, ce qui le rend parfait pour remplacer le format AVI ou d'autres formats de films produits par les anciens programmes de capture dans toutes les situations d'astronomie. Les images compressées ne doivent pas être utilisées pour l'astronomie, mais peuvent être converties en SER, ce qui rendra les fichiers plus volumineux pour la même qualité, mais plus faciles à travailler.

Siril peut convertir n'importe quelle séquence d'images et de nombreux formats de films en fichiers SER. Ser-player est un outil formidable qui permet de visualiser les fichiers SER comme n'importe quel film, avec de nombreuses options et qui fonctionne sur la plupart des systèmes d'exploitation.

Le principal problème avec AVI et d'autres conteneurs de films est qu'ils sont conçus pour fonctionner avec de nombreux codecs et formats de pixels, ce qui est une bonne chose pour les films d'usage général, mais exige que les logiciels d'astronomie gèrent un large éventail de formats de fichiers réellement différents. Les logiciels de cinéma général ne sont souvent pas bien équipés pour gérer des valeurs de 16 bits par pixel ou certains formats de données non compressées. Avec SER, un seul format de fichier permet de tout gérer, c'est pourquoi Siril, par exemple, développe maintenant un traitement uniquement pour SER.

Structure de fichier

Un fichier SER est composé de trois parties :

  • Une en-tête de 178 bytes contenant les informations sur les images et l'observation

  • les données d'image, les données de pixels brutes

  • un trailer facultatif contenant les dates de toutes les images de la séquence

Traitement des couleurs

Dans la version 3 (2014), il y a deux façons de traiter les images colorées dans SER. Si les données proviennent directement d'un capteur, la méthode préférée est probablement d'utiliser des images à un plan et d'interpoler les données du réseau de filtres de couleur (de manière similaire aux formats de fichiers CFA utilisés dans les logiciels d'astronomie).

L'autre méthode, ajoutée dans la version 3, consiste à utiliser trois plans pour représenter les données de l'image RVB. SER v3 prend en charge les données RVB/BGR 8/16 bits. Cela peut être utile si les données sont converties à partir d'une source dont la matrice de filtres de couleur est inconnue ou pour une conversion générale.

Problème de spécification avec l'endianness

Étant donné que les fichiers SER peuvent contenir des images d'une précision de 16 bits, le boutisme doit être bien spécifiée. La spécification autorise le boutisme à être soit gros-boutiste, soit petit-boutiste, pour faciliter la création de fichiers sur différents systèmes, à condition que le boutisme utilisé soit documenté dans l'en-tête du fichier.

Pour une raison inconnue, plusieurs des premiers programmes à supporter SER ne respectent pas la spécification concernant l'indicateur de boutisme. La spécification indique qu'une valeur booléenne est utilisée pour l'en-tête petit-boutiste, et ils l'utilisent comme un en-tête gros boutiste, avec 0 pour petit-boutiste et 1 pour gros-boutiste. Par conséquent, pour ne pas rompre la compatibilité avec ces premières implémentations, des programmes ultérieurs, comme Siril, GoQat, Ser-player et bien d'autres, ont également décidé d'implémenter cet en-tête dans le sens opposé à la spécification.

IRIS PIC

Le format PIC est un format d'image propriétaire créer pour le logiciel IRIS de Christian Buil. Dans un soucis de compatibilité avec ce dernier, Siril est capable de lire ce type de fichiers. Cependant, du fait que le format est propriétaire et que les spécifications ne soient pas connues, toutes les informations contenues dans l'entête ne seront pas sauvegardées lors de la conversion en FITS.

Siril ne peut pas enregistrer au format PIC.

PixInsight XISF

PixInsight a introduit une structure de fichier appelée Extensible Image Serialization Format ou XISF. Ce format a été écrit pour remplacer le format FITS, couramment utilisé en astrophotographie. Cependant, ce format a été essentiellement conçu par et pour le logiciel PixInsight, et de nombreuses métadonnées importantes sont stockés dans des espaces de noms privés qui, selon l'avis des développeurs mêmes de Pixinsight, ne sont pas fiables et peuvent changer arbitrairement d'une version de spécification XISF à l'autre. De plus, la façon dont un mot clé est utilisé pour décrire telle ou telle caractéristique peut s'avérer très opaque. Par conséquent, les avantages qu'il pourrait apporter pour une utilisation dans Pixinsight sont généralement nuls pour d'autres logiciels. En outre, le format de fichier FITS est un format reconnu et largement utilisé par la communauté. La NASA elle-même l'utilise pour ses propres images. Il est très flexible et puissant, et contient toutes les fonctionnalités nécessaires au traitement astrophotographique moderne.

Nous avons donc décidé de permettre à Siril de lire ce type de fichier, mais en mode lecture seule. La sauvegarde au format XISF n'est pas et ne sera pas implémentée.

Gestion des couleurs

Siril offre maintenant un flux de travail de gestion de couleurs utilisant les profils ICC. En assurant une reproduction précise et cohérente des couleurs sur différents appareils, Siril vous permet d'éditer vos images en toute confiance, en sachant que les couleurs que vous voyez sur votre écran se traduiront fidèlement sur des tirages ou d'autres écrans. Vous pouvez éditer vos images dans des espaces colorimétriques mieux adaptés aux capacités d'une imprimante photo professionnelle à large gamme, permettant ainsi la production de tirages avec des couleurs plus riches que ce qui est possible en travaillant dans l'espace colorimétrique standard sRGB, et vous pouvez produire des images que votre public sera en mesure de visualiser de manière cohérente avec la façon dont vous les voyez pendant l'édition, quel que soit leur périphérique d'affichage.

Il y a plusieurs pages dans cette section de la documentation : elles visent à fournir un aperçu de ce que fait la gestion des couleurs, comment elle peut vous aider et comment elle fonctionne dans Siril.

Pour commencer

Bienvenue dans le nouveau système de gestion des couleurs de Siril ! La gestion de la couleur peut sembler complexe, c'est pourquoi cette page a pour but de fournir les bases absolues que vous devez connaître pour commencer. Elle couvre deux configurations pour vous faciliter la vie.

Configuration par défaut

Les paramètres par défaut offrent un comportement similaire à celui des versions précédentes de Siril.

Le moniteur est défini comme sRGB et l'espace colorimétrique par défaut est également défini comme sRGB. Cela signifie qu'aucune transformation n'est nécessaire entre les deux et qu'il n'y a donc pas de surcharge de traitement pour les images utilisant le profil par défaut.

Lorsque les images sont chargées, si elles ont un profil de couleur associé, ce profil sera préservé. Cela signifie qu'une transformation d'affichage est nécessaire et entraîne donc un léger surcoût de traitement, mais minimise les changements apportés au fichier chargé.

Si les images n'ont pas de profil de couleurs, l'espace colorimétrique par défaut (sRGB) leur est attribué lors du premier étirement. C'est à ce moment-là que vous devez utiliser le mode de visualisation linéaire pour que l'image apparaisse à l'écran comme vous le souhaitez, et c'est donc à ce moment-là que la gestion des couleurs devient importante.

Les images seront exportées dans tous les formats 8 bits et 16 bits en utilisant l'espace colorimétrique sRGB.

Cette configuration par défaut convient parfaitement si votre objectif principal est la production d'images pour le web ou la visualisation sur les écrans d'ordinateur les plus courants.

Préférences par défaut de la gestion des couleurs

Configuration de l'impression photo

Si vous avez l'intention de produire des tirages photo de votre travail, envisagez la configuration suivante.

Préférences de gestion des couleurs pour un flux de travail à large gamut

Le moniteur reste sRGB dans la capture d'écran, car aucun profil de moniteur personnalisé n'est défini, mais si vous avez accès au matériel nécessaire pour calibrer votre moniteur, vous pouvez définir un profil de moniteur personnalisé adapté à votre affichage. (La manière de procéder sort du cadre du Siril, mais vous pouvez consulter le logiciel libre ArgyllCMS.)

L'espace colorimétrique préféré est Rec2020. Cet espace colorimétrique à large gamut est mieux adapté à un flux de travail destiné à l'impression, car la conversion RVB-CMJN effectuée par l'imprimeur est moins susceptible d'altérer le profil CMJN.

Lorsque les images sont chargées, si elles ont un profil de couleur associé, elles sont converties en Rec2020. Si les images n'ont pas de profil de couleur, le profil préféré (Rec2020) leur est attribué lors du premier étirement.

Intention du rendu

Dans les deux configurations proposées, l'intention du rendu est réglée sur Colorimétrie relative. C'est ce que vous devriez toujours utiliser pour éditer votre image, car avec ceci, les couleurs dans le gamut restent vraies et cela donne la vision la plus précise de ce à quoi ressemble votre image dans son ensemble.

Cependant, l'intention Colorimétrique Relative permet d'écrêter les couleurs hors gamut. Vous ne verrez pas les détails de la coloration qui sont hors gamut.

Il peut donc arriver que vous souhaitiez changer le mode de rendu en mode perceptuel. Les couleurs seront alors transférées en douceur de l'espace de travail à l'écran. Tous les détails de la coloration sont affichés, mais au prix d'une perte de saturation globale. Cette perte est inévitable, car le gamut plus large est écrasé pour s'adapter au gamut plus petit. Par conséquent, le mode perceptuel ne fournit pas une véritable visualisation de votre image : il ne devrait pas être utilisé pour l'édition, uniquement pour explorer les détails de vos images qui se situent en dehors du gamut sRGB. Voir la discussion ici.

Les images seront exportées vers des formats 8 bits comme sRGB, mais vers des formats à grande profondeur de bits comme Rec2020 (et vous devriez enregistrer votre version finale dans un format 16 bits standard de l'industrie de l'imprimerie, c'est-à-dire probablement TIFF).

État de la gestion des couleurs

L'état de la gestion des couleurs de l'image chargée est indiqué par l'icône d'état de la gestion des couleurs dans le coin inférieur gauche de la fenêtre. L'icône est entièrement saturée lorsque l'image est gérée en couleur, et désaturée lorsque l'image n'est pas gérée en couleur. L'infobulle fournit des informations d'état plus détaillées si l'image est gérée en couleur : elle montre l'espace de travail et les profils de moniteur.

Un clic gauche sur le bouton d'état permet d'accéder à la boîte de dialogue de gestion des couleurs. Un clic droit sur l'outil permet de basculer vers le mode d'affichage de l'évaluation des couleurs ISO 12646. Ces deux modes sont décrits plus en détail ci-dessous.

Juste au-dessus du bouton d'état de la gestion des couleurs se trouve un nouveau menu pour les contrôles d'image. Il inclut le contrôle de coupe existant, qui met en évidence les pixels qui dépassent le curseur "haut" de l'interface utilisateur, et ajoute un nouveau contrôle de gamut, qui met en évidence les pixels qui sont hors gamut pour le profil d'épreuvage doux en magenta vif.

outil de gestion des couleurs dans le menu

Boîte de dialogue de gestion des couleurs

L'outil de gestion des couleurs est accessible en cliquant sur l'icône d'état Gestion des couleurs. (Il est également possible d'y accéder par le menu Outils.)

outil de gestion des couleurs dans le menu

L'outil lui-même est présenté ci-dessous.

dialogue

La partie supérieure de l'outil affiche des informations sur le profil ICC actuel attribué à l'image. La description, les détails du fabricant et l'avis de copyright sont affichés.

En dessous, des sélecteurs vous permettent de choisir un profil différent, soit l'un des profils intégrés à l'aide du menu déroulant de gauche, soit un profil ICC que vous souhaitez charger à partir d'un fichier à l'aide du sélecteur de fichiers de droite.

Avertissement

Lors du chargement d'un profil à partir d'un fichier, le type de profil doit être soit RVB soit Gris pour correspondre à l'image chargée. L'affectation ou la conversion d'images à d'autres espaces colorimétriques tels que XYZ, CIE La*b* ou CMYK n'est pas prise en charge. Toutefois, des espaces colorimétriques tels que CIE La*b* peuvent être utilisés en interne par certaines opérations d'image, le cas échéant.

Astuce

Vous pouvez convertir une image RVB en un profil Gris. Il en résultera une image mono avec la transformation de la courbe de réponse tonale (CRT) appropriée et les contributions des 3 canaux R, V et B déterminées par les points blancs des deux profils. La conversion d'une image grise en profil RVB donnera une image à 3 canaux avec la transformation CRT appropriée et toutes les composantes des pixels égales.

En bas de la fenêtre, l'outil affiche le même type d'informations pour le profil cible que pour le profil original en haut de la fenêtre. Cela permet de vérifier que vous avez chargé le bon profil.

Barre d'outils

  • Le bouton Exporter exporte simplement le profil de l'image courante dans un fichier du répertoire de travail.

  • Le bouton Supprimer supprime le profil ICC d'une image.

  • Le bouton Assigner assigne le profil ICC sélectionné à l'image, sans effectuer de conversion d'espace couleur. Ceci est utile si l'image contient un profil de couleur incorrect.

  • Le bouton Convertir convertit l'image au profil ICC sélectionné et assigne le profil à l'image. Ceci est utile si vous souhaitez transformer l'image de son espace colorimétrique actuel vers un autre espace colorimétrique.

Avertissement

L'utilisation des boutons Supprimer, Assigner ou Convertir (ou des commandes Siril icc_remove, icc_assign ou icc_convert_to) efface toute ROI définie.

Mode d'évaluation des images ISO 12646

La norme ISO 12646 définit les conditions d'observation optimales pour l'évaluation des couleurs. En résumé, pour obtenir la meilleure évaluation des couleurs de votre image, les meilleures conditions d'observation sont fournies par un fond gris neutre uniforme appelé D50. Techniquement, cela devrait même s'étendre aux murs de votre pièce, mais Siril ne peut pas contrôler cela ! Siril propose cependant un mode d'évaluation de l'image qui se rapproche des recommandations de la norme ISO 12646. Il est disponible par un clic droit sur le bouton de gestion des couleurs en bas à gauche de l'écran, et ne nécessite pas que l'image soit gérée en couleur pour l'utiliser.

dialogue

Ce mode est destiné à la vérification finale des couleurs de l'image. Il règle donc le mode de prévisualisation sur linéaire avec les curseurs à 0 et 65535 (dynamique complète). Il masque également le panneau et règle le zoom de manière à ce que l'image complète soit visible et centrée avec un large bord autour d'elle, et définit un bord blanc modéré autour de l'image pour fournir une référence visuelle blanche, entourée d'un arrière-plan de gris D50.

Idéalement, vous devriez également choisir un thème GTK gris neutre, tel que l'excellent thème Equilux.

Ce mode se désactive automatiquement si le zoom est modifié ou si le panneau est à nouveau visible. Il peut être désactivé en cliquant une seconde fois avec le bouton droit de la souris sur le bouton de gestion des couleurs. La vue reprendra ses paramètres de zoom et son état de panneau précédents.

Commandes

La plupart des commandes Siril n'interviennent pas dans la gestion des couleurs, sauf qu'elles n'empêchent pas la préservation des profils de couleurs existants dans une image.

Les exceptions sont trois commandes spécifiques de gestion des couleurs qui peuvent être utilisées pour attribuer, convertir ou supprimer le profil ICC dans une image.

Ligne de commande Siril

icc_assign profile
Affecte le profil ICC spécifié dans l'argument à l'image actuelle.
L'un des arguments spéciaux suivants peut être fourni pour utiliser les profils intégrés respectifs : sRGB, sRGBlinear, Rec2020, Rec2020linear, working pour définir le profil de couleur de travail monochrome ou RVB, (pour les images monochromes uniquement) linear, ou le chemin d'accès à un fichier de profil ICC peut être fourni. Si un profil intégré est spécifié avec une image monochrome chargée, le profil Gray avec la CRT correspondant sera utilisé

Ligne de commande Siril

icc_convert_to profile [intent]
Convertit l'image actuelle au profil ICC spécifié.
L'un des arguments spéciaux suivants peut être fourni pour utiliser les profils intégrés respectifs : sRGB, sRGBlinear, Rec2020, Rec2020linear, graysrgb, grayrec2020, graylinear ou working pour définir le profil de travail de couleur monochrome ou RVB, (pour les images monochromes uniquement) linear, ou le chemin d'accès à un fichier de profil ICC peut être fourni. Si un profil intégré est spécifié avec une image monochrome chargée, le profil Gray avec la CRT correspondant sera utilisé.

Un deuxième argument peut être fourni pour spécifier l'intention de transformation de la couleur : il doit s'agir d'un des éléments suivants : perceptual, relative (pour la colorimétrie relative), saturation ou absolute (pour la colorimétrie absolue)

Ligne de commande Siril

icc_remove
Supprime le profil ICC de l'image actuelle, si elle en possède un

Matrices de conversion des couleurs

Introduction

Les profils ICC ne couvrent pas tout ce qu'un utilisateur peut souhaiter faire en termes de manipulation des couleurs, c'est pourquoi des outils supplémentaires sont également fournis. Bien sûr, PixelMath est un outil général puissant pour manipuler les pixels, mais un cas d'utilisation courant est l'application d'une matrice de correction des couleurs aux données, par exemple pour la conversion manuelle des chromatismes de l'appareil photo.

Avertissement

L'application des matrices de conversion des couleurs (CCM) est une technique avancée. La description des techniques impliquant l'utilisation des CCM sort du cadre de la documentation Siril. Pour utiliser cet outil avec succès, vous devez comprendre le fonctionnement des CCM et la manière de les appliquer dans votre flux de travail.

dialogue ccm

Fenêtre des matrices de conversion des couleurs.

Outil de matrice de conversion des couleurs

L'outil Outils ‣ Matrice de conversion des couleurs permet d'appliquer directement une matrice de conversion des couleurs (CCM) aux pixels. La CCM est spécifiée par 9 éléments :

\[\begin{split}\begin{pmatrix} m_{00} & m_{01} & m_{02} \\ m_{10} & m_{11} & m_{12} \\ m_{20} & m_{21} & m_{22} \end{pmatrix}\end{split}\]

Plusieurs préréglages courants sont proposés dans un menu déroulant. L'outil offre en outre la possibilité de mettre l'image à l'échelle à l'aide facteur \(\gamma\).

Elle s'applique aux pixels de la manière suivante :

\[\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}\]

Avertissement

Si un CCM est appliqué à une image qui a un profil ICC intégré, le profil ICC ne sera plus une description valide des données de l'image. Le profil est donc temporairement désactivé et l'icône de gestion des couleurs apparaît comme inactive. On suppose que votre flux de travail implique des transformations d'espace colorimétrique de bas niveau et des opérations sur l'image et qu'à un moment donné, vous finirez par retransformer les données dans l'espace colorimétrique décrit par le profil ICC. À ce stade, le profil ICC peut être réactivé en utilisant la partie inférieure de la boîte de dialogue. Si toutefois votre flux de travail implique une conversion manuelle de l'image vers un espace colorimétrique final différent, vous devrez appliquer le profil ICC cible en utilisant la boîte de dialogue Gestion des couleurs.

Notez que ceci ne s'applique pas à la commande ccm en ligne de commande. Par principe, les commandes Siril n'interagissent pas avec les profils ICC, donc la commande ccm ne désactivera pas un profil ICC attaché à une image : il est de votre responsabilité de le faire en utilisant la commande icc_remove si nécessaire.

Cette opération peut être appliquée à des séquences. Ouvrez une séquence et préparez les paramètres que vous voulez utiliser, puis cochez le bouton Appliquer à la séquence et définissez le préfixe de sortie de la nouvelle séquence (ccm_ par défaut).

Ligne de commande Siril

ccm m00 m01 m02 m10 m11 m12 m20 m21 m22 [gamma]
Applique une matrice de conversion des couleurs à l'image en cours.

Il y a 9 arguments obligatoires correspondant aux 9 éléments de la matrice :

m00, m01, m02
m10, m11, m12
m20, m21, m22

Un dixième argument supplémentaire [gamma] peut être fourni : s'il est omis, la valeur par défaut est 1,0.

Ceux-ci sont appliqués à chaque pixel selon les formules suivantes :

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)

Ligne de commande Siril

seqccm sequencename [-prefix=]
Même commande que CCM mais pour la séquence sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le nom de la séquence de sortie commence par le préfixe "ccm_", sauf indication contraire avec l'option -prefix=

Liens : ccm

Théorie de la gestion des couleurs

Introduction

La gestion des couleurs est la méthode utilisée pour s'assurer que les couleurs d'une image sont toujours cohérentes, quelle que soit la manière dont l'image est visualisée. Pour ce faire, on utilise des profils de couleurs (profils ICC, du nom de l'International Color Consortium). Chaque type d'écran et chaque combinaison imprimante/papier possède son propre profil de couleurs. L'image a également un espace colorimétrique défini et, en transformant l'image entre différents espaces colorimétriques lorsqu'elle est visualisée sur deux types d'écrans différents ou lorsqu'elle est imprimée, nous nous assurons qu'elle a toujours la même apparence (ou du moins qu'elle s'en rapproche le plus possible).

Espace colorimétriqueCIE 1931

L'espace colorimétrique CIE 1931 (CIE 1931) cartographie toutes les couleurs perceptibles par l'œil humain. Comme l'œil humain possède trois types de cellules coniques (récepteurs de couleurs), la CIE 1931 a trois paramètres (X, Y et Z). Notez que les paramètres X, Y et Z ne correspondent pas directement à la réponse de chaque type de cellule conique, mais ils permettent trois degrés de liberté. Pour plus de détails sur cet espace colorimétrique, voir ici : https://en.wikipedia.org/wiki/CIE_1931_color_space

Il ne s'agit pas d'un espace couleur qui est utilisé pour stocker des données d'image la plupart du temps, mais il est important parce qu'il est utilisé comme espace couleur intermédiaire et parce qu'il définit les "vraies" couleurs (celles qui sont visibles par l'œil humain) et les "imaginaires" (celles que l'on ne peut pas voir). La CIE 1931 peut être visualisée sous la forme d'un fer à cheval.

Espace colorimétriqueCIE 1931

Par BenRG - CIExy1931.svg, Domaine public, https://commons.wikimedia.org/w/index.php?curid=7889658

Notez que l'extérieur du fer à cheval définit la couleur des lignes spectrales monochromatiques pures. Ce point sera important par la suite.

Espaces colorimétriques RGB

Nos espaces colorimétriques de travail sont généralement basés sur les axes de couleur rouge, vert et bleu. Cela correspond à peu près au fonctionnement de nos yeux ainsi qu'aux phosphores des émetteurs d'un écran. Il existe cependant un grand nombre d'espaces colorimétriques RVB, chacun convenant à des usages différents et présentant des avantages et des inconvénients. Vous pouvez voir la variété des espaces colorimétriques dans ce diagramme, qui les définit par rapport à la CIE 1931.

Comparaison de l'espace couleur CIE 1931 avec d'autres espaces couleur RVB

Par Myndex - Travail personnel, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=116654642

Les canaux R, V et B d'une image sont définis en termes d'espace colorimétrique formé par trois couleurs primaires situées dans cet espace CIE 1931, plus un point blanc, plus une courbe de réponse tonale (CRT) pour chaque canal qui définit le gamma de chaque canal. (En fait, les CRT peuvent être plus complexes qu'une simple courbe gamma, mais la plupart sont au moins approximativement une courbe gamma.) Le diagramme ci-dessus montre que certains espaces colorimétriques sont considérablement plus grands que d'autres : c'est-à-dire qu'ils peuvent représenter une plus grande partie des couleurs visibles.

Espaces de couleur de gris

En astrophotographie, nous avons souvent affaire à des images monochromes. Celles-ci ne peuvent manifestement pas avoir un profil de couleur RVB. Au lieu de cela, elles reçoivent un profil de couleur de Gris. Celui-ci définit la courbe de réponse tonale (CRT) de l'image exactement de la même manière que les profils de couleur RVB définissent la CRT de chaque canal. Ainsi, quel que soit le type d'écran ou d'imprimante utilisé, les images monochromes peuvent toujours être reproduites fidèlement et avoir le même aspect (ou un aspect aussi proche que possible) sur différents supports de sortie.

Espace couleur de l'affichage

L'espace colorimétrique "standard" utilisé pour les images informatiques est traditionnellement le sRGB. Il a été créé par HP et Microsoft en 1996, puis normalisé sous la forme de la norme IEC 6166-2-1:1999. Cet espace colorimétrique codifie le gamut des couleurs réalisables par les écrans de l'époque. Comme le montre la figure, il ne peut représenter qu'une petite partie de l'espace colorimétrique visible total défini par la CIE 1931. Cependant, de nombreux moniteurs actuels ne peuvent guère faire mieux que sRGB et c'est l'espace colorimétrique standard actuel pour le World Wide Web (WWW). Par conséquent, même si vous ne souhaitez pas l'utiliser à d'autres fins, il est nécessaire de l'utiliser comme profil d'exportation pour toute image que vous souhaitez afficher de manière cohérente dans les navigateurs web. C'est également l'espace colorimétrique supposé pour tout format d'image qui ne prend pas en charge les profils de couleur, et pour toute application qui ne dispose pas de gestion des couleurs.

Cependant, il est évident qu'il existe d'autres espaces de couleurs RVB avec des gamuts beaucoup plus larges, par exemple Adobe RVB, Adobe ProPhoto, Rec2020. Ces espaces peuvent représenter une part beaucoup plus importante des couleurs réelles définies dans la CIE1931. Ils peuvent également représenter un gamut de couleurs beaucoup plus large que celui de la plupart des moniteurs. Pourquoi ces couleurs sont-elles intéressantes ?

Tout d'abord, les moniteurs s'améliorent. Les moniteurs à large gamut ne sont pas encore très répandus, mais ils sont de moins en moins rares et de plus en plus abordables. Si vous éditez et visualisez vos images sur un moniteur à large gamme, vous bénéficierez de couleurs plus riches en utilisant un espace colorimétrique avec une gamme plus large. Certains téléphones modernes peuvent afficher l'ensemble du gamut P3, qui est considérablement plus grand que le sRGB et permet d'afficher une gamme de couleurs plus riche.

Transformations

L'intérêt des espaces colorimétriques est qu'une image apparaîtra souvent dans des sorties avec différents espaces colorimétriques à différents moments de sa vie. Elle peut être créée sur un moniteur à gamut élevé de qualité professionnelle, elle peut être visualisée par le public sur des moniteurs sRGB de base et elle peut être imprimée sur toute une série d'imprimantes différentes. Chacun de ces appareils est capable de reproduire des gamuts de couleurs différents, mais nous voulons que l'image, dans la mesure du possible, soit cohérente sur tous ces appareils. Pour ce faire, nous utilisons des transformations d'espace colorimétrique. Malheureusement, comme les espaces colorimétriques sont différents, nous devons résoudre le problème de la représentation, dans un espace colorimétrique, des couleurs qui sont "hors gamut" après avoir été transformées à partir d'un espace colorimétrique différent.

Intentions de transformation des couleurs

La réponse au problème ci-dessus est "intentions". Chaque fois que vous visualisez une image sur un appareil ou un papier dont l'espace colorimétrique est différent de votre profil de travail, une transformation de l'espace colorimétrique lui est appliquée. Ce n'est pas aussi simple qu'une correspondance arbitraire entre deux ensembles de coordonnées. Supposons que vous travailliez en Rec2020. Considérons la transformation du profil de couleur de votre moniteur. Rappelez-vous que votre moniteur (supposons qu'il s'agisse approximativement d'un écran sRGB) ne peut pas afficher autant de couleurs que celles qui sont représentables dans Rec2020. L'espace colorimétrique doit donc faire correspondre toutes les couleurs de la norme Rec2020 aux couleurs de la norme sRGB. La manière dont il le fait est déterminée par l'intention de rendu.

Vous pouvez choisir une intention pour le rendu de votre image pour l'affichage et une intention différente pour d'autres usages. Les différentes intentions définies par l'ICC et disponibles dans Siril sont décrites ci-dessous.

Astuce

  • Perceptuelle L'intention perceptuelle met à l'échelle le gamut de couleurs d'entrée dans le gamut de couleurs de sortie. Toutes les couleurs sont modifiées, mais les relations entre les couleurs sont maintenues. En général, la couleur est moins saturée dans l'espace colorimétrique de sortie, mais la saturation par rapport aux autres couleurs est maintenue.

  • Saturation L'intention de saturation met également à l'échelle le gamut de couleurs d'entrée dans le gamut de sortie, mais elle le fait d'une manière qui donne la priorité à la saturation. Elle convient généralement mieux aux images "éclatantes" qu'à la photographie.

  • Colorimétrie relative L'intention colorimétrique relative reproduit fidèlement les couleurs dans le gamut, mais clippe les couleurs hors gamut sur le point le plus proche du triangle représentant les limites du profil de couleur cible.

  • Colorimétrie absolue L'intention colorimétrique absolue n'est vraiment utile que dans le cadre de l'épreuvage avant impression.

Profils de couleur ICC et disponibilité des intentions

L'ICC définit les quatre intentions énumérées ci-dessus (ainsi que d'autres utilisées principalement pour le contrôle de l'encre dans les applications d'impression), mais tous les profils ICC ne prennent pas en charge toutes les intentions. La plupart des profils de couleur intégrés dans Siril sont des profils de mise en forme de la matrice. Ils sont très bons comme profils d'espace colorimétrique de travail, mais la plupart du temps, ils ne prennent en charge que l'intention colorimétrique relative. Ce n'est pas grave, car c'est la plupart du temps l'intention que nous voulons utiliser lors de la conversion entre les espaces colorimétriques. (Si vous définissez dans les préférences une intention que votre profil ICC ne supporte pas, Siril se rabattra sur une intention qui est supportée - généralement Colorimétrie Relative.

Affichage

Pour l'affichage, il est généralement préférable d'utiliser la méthode de colorimétrie relative. L'affichage de l'image est ainsi aussi cohérent que possible avec ce que verront les autres personnes disposant d'un écran à gestion des couleurs, ou avec ce à quoi l'image ressemblera lorsqu'elle sera imprimée dans un flux de production de gestion des couleurs.

Il se peut que vous souhaitiez parfois passer à l'option Perceptuelle. Vous n'obtiendrez pas une représentation précise des couleurs, mais vous verrez les différences relatives de couleur qui sont supprimées lorsque l'image est affichée sur votre écran. Vous pouvez vérifier quelles parties de l'image sont en dehors de votre gamut d'affichage en utilisant l'outil de vérification du gamut dans le menu de vérification de l'image - les pixels qui sont en dehors du gamut d'affichage sont affichés en magenta vif. Siril fournit un profil sRGB intégré prenant en charge l'intention perceptuelle et l'utilisera automatiquement si l'intention perceptuelle est sélectionnée dans l'onglet Préférences (et si aucun profil de moniteur personnalisé n'est actif). Si vous souhaitez utiliser un profil de moniteur personnalisé et l'intention perceptuelle, c'est à vous de vous assurer que votre profil le supporte.

Conversion et sauvegarde

Pour convertir les fichiers et les enregistrer, vous devez presque toujours utiliser la méthode de colorimétrie relative. Cette méthode préserve correctement les couleurs. La Colorimétrie relative coupe typiquement les couleurs dans le gamut de l'espace couleur vers lequel il est converti, mais vous obtenez un résultat cohérent. En fait, lorsqu'il s'agit d'images en 32 bits à virgule flottante, Siril utilise une transformation non bornée, c'est-à-dire qu'au lieu d'écrêter les couleurs, il autorise les valeurs négatives. Elles auront besoin d'être écrêtées à un moment donné - lors de l'affichage, par exemple - mais elles peuvent être sauvegardées, et l'application d'une transformation de couleur dans le sens inverse permet de retrouver les données d'origine. Rien n'est perdu.

L'épreuvage en douceur

Pour l'épreuvage à l'écran, il est préférable d'utiliser la colorimétrie relative. La colorimétrie absolue peut être utile pour simuler exactement l'aspect de votre image sur un support imprimé donné, car elle simule le point blanc d'un support sur un autre (ainsi, si vous testez l'aspect d'une image sur le blanc jaunâtre et terne du papier journal, la colorimétrie absolue tentera de simuler cet aspect sur votre moniteur), mais pour l'épreuvage à froid d'un espace colorimétrique à gamut plus large par rapport à votre profil d'affichage, vous aurez probablement besoin de la colorimétrie relative.

Flux de travail

Etape linéaire

Presque tous les flux de travail astrophotographiques commencent par une étape linéaire. En effet, nos capteurs photographiques sont des compteurs de photons et fournissent essentiellement une réponse linéaire aux photons entrants. Doublez le nombre de photons entrants lors d'une exposition et la valeur des pixels double (en négligeant le biais du capteur, qui sera calibré).

De nombreux flux de travail photographiques standard passent directement aux espaces colorimétriques avec une "courbe de réponse tonale" non linéaire, par exemple la CRT de sRGB est approximativement une fonction gamma \(f(x) = x ^{1/g}\), où \(g = 2.2\).

Cependant, l’astrophotographie est différente. Représenter ces données linéaires sous forme de valeurs linéaires dans un espace colorimétrique linéaire est vital pour plusieurs raisons. Plus important encore, certaines fonctions reposent sur la linéarité des données : la détection d'étoiles correspond aux profils d'étoiles gaussiens, et si les données ont fait l'objet d'une CRT non linéaire, les profils ne seront plus gaussiens et l'algorithme de recherche d'étoiles donnera de moins bons résultats. StarNet a été formé sur des données linéaires avec une transformation spécifique (étirement de l'histogramme avec des paramètres automatiques) et encore une fois, lui fournir des données auxquelles une fonction gamma a déjà été appliquée aggravera les résultats. Déconvolution, réduction du bruit… De nombreuses fonctions que nous appliquons à nos données reposent sur leur linéarité.

Si vous le souhaitez, vous pouvez appliquer un profil linéaire à ce stade. Siril peut le faire automatiquement pour vous lorsqu'une image est ouverte, si vous définissez les préférences d'attribution automatique et cochez le bouton Attribuer de manière rigoureuse des profils ICC linéaires. Pour les images monochromes, le profil gris linéaire sera appliqué. Pour les images RVB (ou lors de la composition d'images monochromes linéaires en une image couleur), le profil sélectionné sera le profil linéaire de l'ensemble préféré de profils d'espace colorimétrique que vous avez défini dans Préférences.

Par exemple, si vous avez choisi l'espace colorimétrique Rec2020, Siril attribuera le profil ICC Rec2020-V4-g10 à votre image. « Rec2020 » est le nom du gamut ; « V4 » indique qu'il s'agit d'un profil ICC version 4 ; et "g10" indique que le profil a une CRT qui est une fonction gamma avec \(g = 1.0\) (c'est-à-dire une réponse linéaire).

Astuce

L'attribution d'un profil d'espace de travail de base est suffisante pour la plupart des utilisateurs. La balance des couleurs peut être réglée ultérieurement à l’aide des outils d’étalonnage des couleurs. Cependant, si vous disposez d'une caméra calibrée, vous souhaiterez peut-être appliquer un profil d'entrée. L'étalonnage de l'appareil photo et la création de profils d'appareil photo sont un sujet avancé et ne relèvent pas de Siril, mais vous pouvez trouver des conseils dans les articles de la section D de cette page d'utilisation. La manière la plus simple d'appliquer un profil d'entrée consiste à utiliser la boîte de dialogue Gestion des couleurs. Sélectionnez votre profil de caméra dans le sélecteur de fichiers et cliquez sur Assigner. C'est en fait suffisant : Siril se fera un plaisir de modifier votre image dans le profil de l'appareil photo, mais vous pouvez également sélectionner votre profil de travail et cliquer sur Convertir pour convertir les données dans votre espace colorimétrique préféré.

Une autre approche pour calibrer votre entrée consiste à utiliser des matrices de conversion de couleurs (CCM). Cela demande plus de travail : comme pour les profils de caméra, les CCM doivent être produits en dehors de Siril, et ils peuvent ensuite être appliqués à vos données linéaires à l'aide de PixelMath.

Ce que vous venez de faire, c'est attribuer les primaires de l'espace colorimétrique dans l'espace CIE 1931 XYZ, en fonction des points du triangle représentant le gamut Rec2020. Bien que les données soient linéaires, lorsque vous voyez l'image sur votre écran, la transformation de l'espace colorimétrique d'affichage lui est appliquée, en utilisant l'intention de rendu que vous avez choisie.

Cela dit, il n’est pas vraiment nécessaire d’attribuer un profil de couleur à ce stade. Vous utiliserez très probablement le mode de visualisation Auto-ajustement lorsque vous travaillerez avec des données linéaires, ce qui ne nécessite de toute façon pas de gestion des couleurs.

Maintenant que c'est expliqué, vous pouvez poursuivre tranquillement le reste de votre flux de travail linéaire. Calibrage, alignement, empilement, suppression d'étoiles, réduction de bruit... Faites-vous plaisir !

Étape non linéaire

Lorsque vous êtes prêt à étirer votre image, il est temps de repenser à votre espace colorimétrique. L'étirement transforme les données linéaires en données non linéaires afin que l'image soit agréable à l'œil humain. Vous allez maintenant rendre vos données non linéaires, donc avant l'étirement, c'est le bon moment pour convertir l'image dans l'espace colorimétrique non linéaire de votre choix, que ce soit sRGB ou Rec2020 ou un autre espace colorimétrique de votre préférence. Vous pouvez soit le faire vous-même manuellement, soit définir une préférence pour Siril, soit pour vous inviter à convertir l'espace colorimétrique de l'image en votre espace colorimétrique préféré, soit pour le faire automatiquement.

Vous pouvez maintenant poursuivre et terminer toute retouche post-étirement de votre image.

Sauvegarde et exportation d'images

Lorsque vient le temps de sauvegarder votre image, vous avez le choix entre plusieurs formats :

  • Le format FITS est le format d'image natif de Siril et les profils ICC peuvent être intégrés dans les fichiers FITS. Cela se fait de la même manière que les autres logiciels d'astrophotographie, de sorte que les images enregistrées avec des profils ICC intégrés seront interopérables entre Siril et PixInsight (et probablement d'autres logiciels prenant en charge l'intégration de profils ICC dans les fichiers FITS).

  • TIFF et PNG sont de bons formats à choisir pour l'exportation d'images de haute qualité et offrent une plus grande compatibilité avec d'autres logiciels que le format FITS. Les deux prennent en charge l’intégration de profils ICC. Les options de la boîte de dialogue Préférences permettent de définir si les images TIFF et PNG d'une profondeur de 8 bits et plus, sont enregistrées au format sRGB, enregistrées dans le profil ICC actuel de l'image ou enregistrées dans l'espace colorimétrique préféré défini dans les préférences.

  • La norme de facto pour les images hautement compressées pour le WWW est JPEG. La prise en charge des profils ICC dans les images JPEG varie en fonction de votre bibliothèque JPEG, mais si vous utilisez libjpegturbo version 2.0.0 ou supérieure, les profils ICC seront intégrés. Pourtant, de nombreux programmes tiers ne prennent pas du tout en charge la gestion des couleurs et supposeront que les fichiers JPEG représentent une image dans l'espace colorimétrique sRGB avec la norme sRGB TRC. Il s'agit de l'espace colorimétrique d'exportation par défaut pour les fichiers JPEG et vous devez y réfléchir attentivement avant de les enregistrer avec un profil de couleur différent.

  • Siril prend également en charge d'autres formats d'image : PNM/PGM, BMP etc. Ces formats sont regroupés sous la catégorie « ne supportent pas les profils ICC ». Lors de l'exportation vers ces formats, les images seront toujours converties en sRGB.

Siril fournit un paramètre de préférence pour l'intention d'exportation/conversion. Dans presque tous les cas, vous devez laisser cela comme « Colorimétrie relative ».

Profils d'espace couleur

Profils de couleurs intégrés

Siril contient un ensemble de profils d'espace colorimétrique de base. Ceux-ci sont tirés de l'excellent dépôt d'Elle L. Stone de profils de couleurs libres et bien conçus. Son site web contient une mine d'informations techniques sur la théorie et la pratique des espaces colorimétriques, et une grande source d'inspiration pour l'application du traitement des couleurs aux images. Tous les profils qui s'y trouvent sont publiés sous la licence Creative Commons Attribution-Share-Alike Unported, version 3.0.

Les profils intégrés sont destinés à fournir un ensemble suffisant d'espaces colorimétriques pour la plupart des usages : sRGB pour l'exportation vers le web et comme profil d'affichage par défaut, Rec2020 comme profil à large gamut qui semble pouvoir devenir la prochaine norme pour les moniteurs à large gamut de haute qualité, et bien sûr une gamme de profils de Gris pour correspondre aux profils RVB.

  • sRGB

    • Profile linéaire sRGB_elle_V4_g10

    • Profile CRT sRGB sRGB_elle_V4_srgbtrc

    • Profil ICC sRGB de préférence avec tables de référence perceptuelles (pour l'affichage uniquement)

    • Profile sRGB TRC sRGB_elle_V2_srgbtrc (pour exporter)

  • Rec2020

    • Profile linéaire Rec2020_elle_V4_g10

    • Profile Rec709 TRC Rec2020_elle_V4_rec709

    • Profile Rec709 TRC Rec2020_elle_V2_rec709 (for export)

  • Gris

    • Profile linéaire Gray_elle_V4_g10

    • Profile TRC sRGB Gray_elle_V4_srgbtrc

    • Profile sRGB TRC Gray_elle_V2_srgbtrc (pour exporter)

    • Profile Rec709 TRC Gray_elle_V4_rec709

    • Profile Rec709 TRC Gray_elle_V2_rec709 (pour exporter)

Notez que les versions CRT natives des profils sont fournies en deux versions (version 4 et version 2). La version 4 offre de meilleures fonctionnalités (en particulier pour les images à grande profondeur de bits), notamment des CRT paramétriques qui évitent la quantification. Cependant, les profils de la version 4 ne sont pas encore universellement supportés. Par conséquent, lorsque vous exportez un fichier pour l'utiliser dans un autre logiciel, il est plus sûr d'incorporer un profil V2.

Le profil Gris est disponible avec des CRT correspondant aux deux espaces colorimétriques RVB intégrés, ainsi qu'avec une CRT linéaire.

Profiles CRT linéaires

Les données du capteur sont au départ une représentation linéaire de la lumière, alors pourquoi n'attribuons-nous pas un profil de couleur linéaire à des images non étirées telles qu'une image nouvellement empilée ? Techniquement, nous devrions peut-être le faire. Il est certain que si vous souhaitez le faire, vous pouvez le faire, et rien de mal ne se produira. Vous pouvez le faire en utilisant la boîte de dialogue de gestion des couleurs, et il existe également une préférence (Attribution rigoureuse de profils ICC linéaires) qui attribue une version linéarisée du profil ICC de travail lorsqu'un profil est attribué automatiquement à une image nouvellement chargée (si elle ne présente aucun signe d'étirement préalable), à une image empilée ou à une image nouvellement composée. Cependant, il n'y a généralement aucun avantage à procéder de la sorte. Pour comprendre pourquoi, nous devons comprendre une différence fondamentale entre l'astrophotographie et le traitement photographique normal.

En photographie normale, l'ensemble de l'image est bien exposé, avec des zones d'ombre plus sombres et des zones de lumière plus claires. Au stade brut, l'image est convertie de linéaire à un profil de travail, mais cette opération est réversible et, en fait, fréquemment inversée, car de nombreuses opérations d'édition (mélange des couleurs, réduction du bruit, etc.) sont mieux réalisées en mode linéaire.

Cependant, en astrophotographie, tous les détails sont profondément ancrés dans les ombres et nous devons appliquer un étirement très fort pour produire une image agréable à regarder. Cet étirement est beaucoup plus extrême que le léger changement de gamma de 1.0 à 2.2 pour passer de la lumière linéaire à sRGB, et il n'est pas facilement réversible - en particulier si plusieurs étirements sont appliqués. Nous devons donc toujours effectuer le même type d'opérations (correction des couleurs, réduction du bruit, déconvolution, etc.) sur la lumière linéaire (et beaucoup d'autres choses qui n'existent même pas dans la photographie normale devraient également être effectuées sur les images linéaires : modélisation des étoiles, élimination des étoiles, etc.)

Il n'est pas nécessaire de définir un profil de couleur linéaire pour effectuer ces opérations - les algorithmes tels que la réduction du bruit, etc. ne sont même pas conscients des profils de couleur. Ils s'appliquent simplement aux données fournies.

Il est donc possible d'assigner le profil de couleur à une image à n'importe quel stade de l'édition, bien qu'il soit généralement plus judicieux de le faire juste avant l'étirement. Ce qu'il faut retenir, c'est qu'en astrophotographie, toutes les opérations à effectuer sur les images linéaires doivent être faites avant l'étirement. En général, l'étirement et les derniers réglages de la balance des couleurs, de la saturation, etc. devraient être la dernière opération d'édition d'une image. Et à ce stade, vous devez éditer l'image dans l'espace colorimétrique que vous avez choisi, ce qui donnera un aspect aussi cohérent que possible à l'image lorsqu'elle sera visualisée dans n'importe quelle application de gestion des couleurs ou sur n'importe quel périphérique de sortie.

Recommandations en matière d'espace colorimétrique

Cette section explique un peu plus en détail pourquoi Siril propose les espaces colorimétriques intégrés qu'il propose.

sRGB est la norme de facto pour le web. Comme mentionné ci-dessus, si vous voulez vous assurer que vos images sont bonnes dans tous les navigateurs web, ainsi que dans toutes les applications tierces qui peuvent ou non prendre en charge la gestion des couleurs, vous devez vraiment exporter en sRVB. C'est une bonne solution pour la plupart des moniteurs SDR, et en l'absence d'une gestion des couleurs appropriée, les images qui ont un aspect correct dans les versions précédentes de Siril doivent être considérées comme étant en sRVB.

Cependant, considérons à nouveau l'espace colorimétrique CIE 1931. La forme en fer à cheval qui forme la limite de l'espace colorimétrique représente les teintes spectrales pures. Si vous disposez d'une source lumineuse parfaitement monochromatique, comme un laser ou un de ces lampadaires jaunes au sodium, vous regardez la limite de la CIE 1931. En tant qu'astrophotographes, ces sources monochromatiques pures sont en fait très importantes pour nous, surtout si vous faites de l'imagerie à bande étroite. Ces couleurs ne peuvent pas être représentées avec précision dans le système sRGB. La proportion des couleurs visibles qui peuvent être représentées dans sRGB est en fait assez faible. Nous pouvons faire mieux.

Alors, si un gamut étendu est meilleur, pourquoi l'espace colorimétrique à large gamme intégré dans la norme Siril est Rec2020 plutôt qu'un espace colorimétrique encore plus étendu ? AllColorsRGB, ACES 2065 et ProPhoto RGB sont tous beaucoup plus grands - ACES 2065 peut représenter toutes les parties du spectre visible.

Le problème est qu'ils y parviennent en fixant leurs couleurs primaires - les valeurs "100 % rouge", "100 % vert" et "100 % bleu" - en dehors de la gamme du visible. Cela pose un problème, en particulier pour les imageurs à bande étroite qui souhaitent attribuer des filtres aux couleurs primaires : vous vous retrouvez avec des couleurs imaginaires dans votre image et vous devez toujours compter sur l'intention d'une transformation de l'espace colorimétrique pour faire ce qu'il faut en les transformant en quelque chose de visible. Certains de ces espaces colorimétriques sont également linéaires, comme l'ACES 2065. C'est une bonne chose pour les artistes CGI, mais pas pour nous, en raison de la lenteur des transformations d'affichage lorsque l'on travaille avec des espaces linéaires. Siril peut optimiser certaines transformations à partir d'espaces colorimétriques linéaires en plus de ce que fait lcms2, mais seulement si les primaires RVB sont les mêmes, par exemple si l'on transforme un sRGB linéaire en sRGB g22). La norme Rec2020 a donc été choisie car elle fournit un espace colorimétrique non linéaire avec le gamut le plus large sans avoir de primaires imaginaires.

Si vous n'êtes pas encore convaincu par un espace colorimétrique particulier, je vous recommande d'essayer Rec2020 comme espace colorimétrique pour l'édition, ainsi que pour l'envoi d'images à des services d'impression de haute qualité qui peuvent gérer les images en couleur, et sRGB pour l'exportation vers le web. Mais il existe aussi d'autres bons choix disponibles dans les fichiers de profil ICC que vous pouvez utiliser à la place, comme Adobe RGB et ProPhoto RGB (ROMM), si vous préférez.

Profils de couleurs tiers

Profils de moniteur Siril inclut le profil de moniteur sRGB v4 de l'ICC avec la prise en charge des tables de correspondances de rendu perceptuel et l'utilise par défaut. Un autre profil de moniteur peut être utilisé à la place, mais notez que seules les intentions supportées par un profil donné seront disponibles - de nombreux profils sRGB largement disponibles ne supportent que l'intention Colorimétrique Relative.

Profils d'épreuvage en douceur Il existe une grande variété de normes de presse et de papiers dans le monde et chaque combinaison nécessite son propre profil ICC. Siril ne peut pas fournir tous ces profils. Par conséquent, pour utiliser le mode d'affichage de l'épreuvage à l'écran, vous devez fournir le profil ICC d'épreuvage à l'écran approprié dans la fenêtre Préférences.

Il se peut que vous souhaitiez travailler dans un espace colorimétrique autre que ceux intégrés, par exemple ProPhoto RGB. Cela est possible, mais vous devrez fournir vous-même les profils ICC. La fenêtre des préférences propose des contrôles pour définir un profil RVB et un profil gris avec une CRT correspondant (essentiellement, avec le même gamma). Si vous avez l'intention d'exporter des fichiers dans l'espace colorimétrique que vous avez choisi, il est recommandé que le profil que vous fournissiez soit un profil ICC V2, pour une compatibilité maximale avec d'autres logiciels.

Profils ICC requis pour l'utilisation de ProPhoto

L'image montre comment configurer un espace de travail ProPhoto en utilisant les profils d'Elle Stone. Le gamma standard de ProPhoto RGB (ROMM) est de 1,8, donc en plus du profil ProPhotoRGB, nous ajoutons le profil d'Elle Stone Gris avec gamma = 1,8. Vous pouvez télécharger tous les profils d'Elle Stone ici. Si vous n'avez pas le profil ProPhotoRGB, vous pouvez également utiliser le profil "LargeRGB-elle-v2-g18" d'Elle Stone, qui est exactement le même, sauf qu'elle a évité d'utiliser le terme "ProPhoto RGB" pour d'éventuelles raisons de droits d'auteur.

Limites de l'affichage HDR

Les espaces colorimétriques d'affichage à large gamut tels que Rec2100 avec HLG ou PQ TRC peuvent nécessiter des tampons de pixels de plus de 8 bits pour s'afficher de manière fluide. Malheureusement, Siril utilise la bibliothèque graphique Cairo pour l'affichage et Cairo ne peut pas encore traiter les tampons de pixels de plus de 8 bits. L'impact de ce problème est probablement négligeable pour la plupart des utilisateurs. Cependant, si vous avez la chance d'utiliser un écran HDR >1000nit capable d'afficher des espaces colorimétriques étendus et que vous utilisez certaines combinaisons d'images tierces et de profils de moniteur personnalisés, vous pourrez alors constater des artefacts mineurs de montée en escalier des couleurs pour certaines images. Il s'agit uniquement d'un problème d'affichage qui n'affectera pas l'aspect imprimé de votre image, ni même son aspect lorsqu'elle est transformée en un espace colorimétrique plus étroit ou visualisée sur des systèmes d'exploitation qui prennent en charge les tampons de pixels à grande profondeur de bits.

Pour l'instant, il n'y a rien à faire, mais si Cairo ajoute à l'avenir la prise en charge de la profondeur de bits élevée, il sera possible d'améliorer la situation.

L'épreuvage en douceur

Épreuve d'affichage en douceur

Siril prend en charge l'épreuvage numérique. Cela permet de visualiser, dans l'espace couleur de votre moniteur, l'aspect de votre image lorsqu'elle sera imprimée via un standard spécifiée. Pour utiliser l'épreuvage à l'écran, vous devez spécifier un profil d'épreuvage à l'écran dans la boîte de dialogue Paramètres.

Si aucun profil de périphérique de sortie n'est spécifié, ou s'il est rendu inactif en utilisant la case à cocher des préférences, l'épreuvage écran utilisera le profil d'affichage comme cible d'épreuvage. Ceci active la vérification de l'image gamut dans le menu Vérifications de l'image, qui montre les pixels qui sont en dehors du gamut de couleurs de votre écran. Lorsque la vérification du gamut est active, les pixels en dehors du gamut sont affichés en magenta vif.

Exportation pour impression

Siril ne permet pas d'exporter en format CMJN à des fins d'impression. La plupart des services d'impression de photos s'attendent à ce que les images soient fournies au format RVB et les pilotes d'imprimante font un bien meilleur travail de conversion RVB en un mélange des encres spécifiques utilisées par chaque imprimante qu'une simple conversion RVB vers CMJN au niveau de l'application. Si vous ne savez pas exactement pourquoi vous devez convertir une image en CMJN, il est presque certain que vous n'avez pas besoin de le faire. Cependant, afin de minimiser l'écrêtage du gamut lorsque votre service d'impression convertit l'image en un profil CMJN, il vaut la peine d'utiliser un profil RVB à large gamut tel que le Rec2020 intégré.

Changements dus à l'introduction de la gestion des couleurs

Siril gère désormais correctement les couleurs.

Cela signifie qu'il ne le faisait pas vraiment correctement dans le passé. Siril n'était pas une exception à cet égard : de nombreux programmes ne fournissent pas de gestion des couleurs, mais partent du principe que tout est fait dans un espace colorimétrique sRGB. Cela convient la plupart du temps, mais des problèmes ont été signalés lors de l'échange d'images entre Siril et des applications graphiques gérant correctement les couleurs.

Certains utilisateurs ont signalé que dans certaines circonstances, les images sauvegardées par Siril avaient un aspect différent dans d'autres logiciels. Pour les images exportées à partir du nouveau Siril avec gestion des couleurs, cela devrait cesser. Les images auront un aspect cohérent dans tous les logiciels avec une mise en œuvre correcte de la gestion des couleurs.

Cependant, si vous avez des images étirées enregistrées en FITS dans une version précédente de Siril et que vous les ouvrez dans Siril avec gestion des couleurs, elles peuvent dans certains cas paraître pâles et délavées. Pas de panique ! Voici une explication de la raison pour laquelle cela se produit, et comment cela peut très facilement être évité / corrigé.

Pourquoi cela se produit-il ?

Lorsque Siril lit une image FITS sans profil ICC intégré, si les préférences "Attribution automatique du profil ICC" sont activées, il essaie de déterminer si l'image a été étirée ou non. Il ne peut le faire qu'en vérifiant les entrées HISTORY dans l'en-tête FITS. S'il détecte que des fonctions d'étirement ont été appliquées, il suppose que l'image a été étirée sur un moniteur sRGB et applique le profil correspondant. Cependant, les anciennes versions de Siril n'ajoutaient pas toujours l'historique pour chaque commande, et d'autres logiciels peuvent ou non ajouter l'historique, mais Siril ne peut pas reconnaître tous les mots-clés d'étirement qui peuvent être utilisés par d'autres logiciels, de sorte qu'il peut être incapable de détecter qu'une image a été étirée. L'hypothèse de secours que nous choisissons de faire est qu'une image FITS sans profil ICC intégré est une image linéaire.

Cependant, votre FITS étiré n'est pas vraiment une image linéaire. Les données ont été étirées, et vous les avez en fait étirées pour qu'elles aient l'air correctes dans l'espace colorimétrique de votre moniteur, qui est probablement approximativement sRGB.

Lorsqu'un profil ICC linéaire lui est attribué, les routines d'affichage appliquent alors une transformation de l'espace colorimétrique de l'espace linéaire au profil d'affichage, ce qui a pour effet de l'étirer une seconde fois.

Comment l'éviter ?

Ce problème ne se produit que si l'option "Attribution automatique de l'espace colorimétrique préféré au chargement" est activée. Si cette option est désactivée, Siril n'attribuera aucun profil de couleur lors du chargement du fichier. Vous pouvez alors en assigner un manuellement à l'aide de la boîte de dialogue Gestion des couleurs.

Comment régler le problème ?

Si vous avez chargé une image avec l'option Assignation automatique activée et que le mauvais profil est assigné (ou si le mauvais profil est assigné pour toute autre raison, par exemple si vous avez chargé un fichier sauvegardé par un autre logiciel qui a assigné un mauvais profil), il est également très facile de résoudre le problème. Il suffit d'ouvrir l'image, d'aller dans la boîte de dialogue Gestion des couleurs et de sélectionner "sRGB (standard sRGB TRC)" dans la liste déroulante (ou "Gray (sRGB TRC)" si l'image est mono). Cliquez sur le bouton Assigner (pas Convertir vers) et Siril assignera le profil de couleur sélectionné à votre image.

Le tour est joué. L'affichage sera désormais correct et lorsque vous enregistrerez l'image, le profil de couleur approprié sera incorporé.

Séquences

Les séquences sont ce que Siril utilise pour représenter un ensemble de fichiers manipulés, par exemple l'ensemble des images darks que nous allons transformer en master dark. C'est un outil très utile pour manipuler un grand nombre de fichiers qui doivent être liés les uns aux autres.

Un ensemble de deux fichiers FITS ou plus

Siril utilise nativement des données en virgule flottante 32 bits ou des données entières non signées 16 bits pour les images FITS, les autres formats sont automatiquement convertis. Pour être reconnus et détectés comme une séquence, les noms de fichiers des images FITS doivent respecter un modèle particulier qui est :

basename$i.[ext]
  • basename peut être n'importe quoi en utilisant des caractères ascii. Il est généralement pratique, mais pas obligatoire, qu'il se termine par le caractère _. Il sera utilisé comme nom de séquence.

  • $i est l'index de l'image. Cela doit être un nombre positif et peut commencer par plusieurs zéros.

  • [ext] est l'extension supportée comme expliqué dans les références, fit par défaut.

Note

L'extension utilisée pour détecter les séquences FITS dans le répertoire de travail actuel sera la même que celle configurée dans les paramètres et que celle des fichiers créés par Siril.

Avertissement

Certains systèmes d'exploitation limitent le nombre d'images qui peuvent être ouvertes en même temps, ce qui est nécessaire pour les méthodes d'empilement médian ou moyen. Pour Windows, la limite est de 2048 images. Si vous avez beaucoup d'images, vous devez utiliser un autre type de séquence, décrit ci-dessous.

Un seul fichier SER

Le SER est un format destiné à contenir une séquence d'acquisition de plusieurs images contiguës dans un seul fichier. C'est un format assez simple qui ne peut pas contenir autant de métadonnées que FITS, mais plus que de simples films et les données ne sont pas compressées. Les fichiers SER ne peuvent contenir que des images de 8 ou 16 bits par canal. Il existe trois types de fichiers SER, en fonction du contenu en pixels : monochrome, CFA ou couleur (3 canaux).

Note

Un fichier SER peut être ouvert soit via Fichier et Ouvrir, soit avec le bouton Chercher séquences.

Voir ici pour plus d'informations sur le format SER et pourquoi les formats de film comme AVI non compressé ne devraient pas être utilisés pour l'astronomie.

Avertissement

Dans une certaine mesure, un fichier de film ordinaire tel que AVI ou tout autre conteneur est également pris en charge. Le support des fichiers film est abandonné au profit de SER, mais il peut toujours être utile d'ouvrir un film dans Siril, pour explorer son contenu, extraire quelques images ou les convertir. Quelques opérations peuvent encore être effectuées, mais de manière plus lente qu'avec d'autres séquences, comme l'empilement par somme. Pour un traitement complet, vous serez confronté à des limitations et des incompatibilités.

Un seul fichier FITS

Note

Également appelés cubes FITS ou séquences FITS, ou FITSEQ en abrégé dans Siril.

Le format FITS est un conteneur d'images et de données scientifiques, il peut en contenir plusieurs dans un seul fichier. Nous pouvons l'utiliser pour stocker une séquence entière d'images FITS dans un seul fichier tout en préservant l'en-tête FITS de chaque image. Il s'agit du format de fichier utilisé par les astronomes professionnels.

Il est plus simple de gérer un seul fichier sur le disque que 2000, mais comme il s'agit d'un seul fichier, certaines opérations sur les images uniques de la séquence peuvent ne pas être possibles. En particulier, Siril ne permet pas actuellement de modifier l'en-tête d'une seule image.

Ce format est une alternative au SER pour une séquence à fichier unique, avec 32 bits par canal et un support complet de l'en-tête.

Charger un séquence

Chargement de la séquence

Recherche et nettoyage de séquences.

Lorsque le répertoire de travail est placé au bon endroit, que les FITS suivent la bonne nomenclature, et que l'extension des fichiers FITS est également correctement définie, cliquez alors sur le bouton Chercher séquences de l'onglet Sequence. Une liste déroulante s'ouvre avec toutes les séquences disponibles dans le dossier. Si une seule est trouvée, elle est automatiquement sélectionnée et chargée.

Sélecteur d'image

Une grande force de Siril est qu'il permet de manipuler facilement des séquences d'images. Lorsqu'une séquence est ouverte, l'image de référence (voir ci-dessous) s'affiche, par défaut il s'agit de la première image. Cependant, il peut parfois être utile d'inspecter les images individuelles d'une séquence. Ceci est possible avec le sélecteur d'images, disponible via la barre d'outils avec le bouton Sélecteur d'images ou via l'onglet de la séquence avec le bouton Ouvrir la liste des images.

sélecteur d'image

Sélecteur d'images qui vous permet de choisir une image dans la séquence et de l'afficher, de la définir comme référence ou de l'exclure.

Astuce

En survolant une image dans le sélecteur d'image, le nom du fichier d'origine s'affiche, s'il a été enregistré.

En cliquant sur une image dans la liste, celle-ci sera chargée et affichée dans la zone principale, tout en conservant la séquence comme objet actif pour le traitement. Plus qu'un simple sélecteur d'affichage d'images, l'outil peut également être utilisé pour exclure manuellement des images de la séquence, ou visualiser celles qui sont encore incluses, visualiser les valeurs de qualité d'image et de décalage entre les images si elles ont été calculées, et changer l'image de référence. Notez que plus d'informations sur la qualité de l'image peuvent être visualisées dans l'onglet Plot.

L'exclusion d'une image de la séquence ne signifie pas que ses données seront définitivement supprimées, mais simplement qu'elle ne sera pas utilisée pour les opérations de traitement ultérieures, si on le lui demande. Dans la plupart des cas, l'option à rechercher s'appelle Traiter uniquement les images incluses.

L'image de référence est l'image de la séquence qui servira de cible pour l'alignement et la normalisation. Les autres images seront transformées pour ressembler à l'image de référence, elle doit donc être choisie avec soin. Heureusement, depuis Siril 1.2, un nouvel algorithme d'alignement en deux passes permet de sélectionner automatiquement la meilleure image de la séquence comme image de référence avant de procéder à la transformation de l'image.

La barre d'en-tête de la fenêtre fournit de nombreux contrôles pour ces propriétés de séquence :

  • Le menu déroulant permet de modifier le canal pour lequel les données d'alignement (qualité, décalages) sont affichées, si elles existent pour d'autres canaux.

  • Le premier bouton de la barre d'outils définit toutes les images de la séquence comme étant exclues manuellement.

  • Le second, les définit tous comme inclus.

  • La troisième inclut ou exclut les images sélectionnées dans la liste (les sélections multiples peuvent être faites avec Ctrl ou Shift) de la séquence.

  • Le dernier bouton peut être désactivé pour masquer l'indicateur de cadrage sur les images aligné.

sélecteur d'image

Indicateur d'image

Le cadre rouge montre la trace de l'image de référence sur chaque image de la séquence. Le cercle plein dans un coin indique la position du coin supérieur gauche de l'image de référence. Par exemple, pour l'image de droite ci-dessus, le cercle indicateur de cadrage se trouve en bas à droite, ce qui montre qu'il y a eu un retournement méridien entre cette image et la référence affichée à gauche.

Le cercle rouge / la croix verte proches du centre montrent respectivement la position du centre de l'image de référence et de l'image actuelle. Cela permet de visualiser le décalage entre les deux images.

Note

Depuis Siril 1.3.1, la couleur de l'indicateur de cadrage diffère selon que les informations d'alignement sont un simple décalage (en bleu) ou des transformations plus complexes (en rouge pour les transformations linéaires, en vert lorsque des distorsions sont incluses). Pour les versions précédentes, elle était toujours rouge, quelle que soit la transformation.

  • Le bouton Image de référence est utilisé pour sélectionner l'image de référence pour la séquence. Toutes les séquences doivent en avoir une, ce sera la première image si elle n'est pas définie ou par défaut.

  • Enfin, le champ de recherche vous permet de trouver les images par leur nom.

Il est également possible de trier toutes les images en cliquant sur les en-têtes de colonne. Vous pouvez ainsi trier les images en fonction de leur nombre ou de leur FWHM. Cette dernière option est très utile pour voir les meilleures et les pires images.

Commandes de manipulation des séquences

Ligne de commande Siril

setref sequencename image_number
Définit l'image de référence de la séquence donnée en premier argument. image_number est le numéro séquentiel de l'image dans la séquence, et non le numéro dans le nom de fichier, commençant à 1

Ligne de commande Siril

select sequencename from to
Cette commande permet de sélectionner facilement en masse des images dans la séquence sequencename (de from à to inclus). Il s'agit d'une sélection en vue d'un traitement ultérieur.
Voir aussi UNSELECT

Liens : unselect

Ligne de commande Siril

unselect sequencename from to
Permet une sélection en masse des images dans la séquence sequencename (de from à to inclue). Voir SELECT

Liens : select

Exportation de la séquence

exportation de la séquence

Donnez un nom et spécifiez le format de sortie pour exporter une séquence.

L'outil Exportation de la séquence vous permet d'exporter une séquence d'images dans différents formats. Il est particulièrement utile si vous souhaitez exporter les images en tenant compte des informations d'alignement contenues dans le fichier seq, avec un recadrage et une normalisation optionnels.

Avec la fonction d'exportation de séquence, vous pouvez sélectionner une séquence à exporter, choisir le format de fichier et le niveau de compression pour les formats vidéo. La fonction d'exportation de séquences de Siril prend en charge un large éventail de formats de fichiers d'images, notamment FITS (fichier FITS unique ou fichier FITS de séquence), TIFF, SER , AVI, MP4 et WEBM et peut s'avérer pratique lors de la construction de timelapse.

Le bouton Normaliser les images permet de normaliser les images par rapport à l'image de référence. La normalisation est la même que celle effectuée pendant l'empilement, avec les paramètres suivants : Additif avec mise à l'échelle, Normalisation plus rapide désactivée.

De plus, il est possible de jouer avec les critères de filtrage des images pour exclure ou non les images en fonction de leur qualité. Un bouton Aller à l'onglet Empilement a été ajouté ici, pour aller facilement à l'onglet qui les expose.

Informations sur la séquence

Toutes les informations sur les séquences, transformation d'alignement, les statistiques et la sélection des images sont stockées dans un fichier .seq enregistré à côté des fichiers de séquences. Il est fortement recommandé de ne jamais éditer ce fichier manuellement car Siril y écrit continuellement et un seul caractère erroné pourrait corrompre la lecture de la séquence.

Une façon de nettoyer le contenu de ce fichier de séquence est d'aller dans l'onglet Séquence et de cliquer sur Nettoyer Séquence. Le choix de ce qui sera nettoyé peut être défini en cliquant sur la petite flèche à côté.

Séquence de nettoyage

Menu pour nettoyer le fichier de séquence.

Ligne de commande Siril

seqclean sequencename [-reg] [-stat] [-sel]
Cette commande efface les données de sélection, d'alignement et/ou de statistiques stockées pour la séquence sequencename.

Vous pouvez préciser de n'effacer que l'alignement, les statistiques et/ou la sélection avec les options -reg, -stat et -sel, respectivement. Tout est effacé si aucune option n'est passée

Définitions et déroulement des opérations

L'astrophotographie est le processus de capture des images d'objets célestes. Elle comporte plusieurs étapes, dont le prétraitement et le traitement, qui sont distinctes mais liées.

Le Prétraitement est l'étape initiale du travail avec des données astrophotographiques brutes. Il s'agit de préparer ces données en vue d'un traitement ultérieur. Cette étape comprend généralement la soustraction du dark, la correction du flat et la correction d'autres problèmes de base tels que l'élimination des pixels chauds et froids.

Le Traitement désigne le post-traitement des données prétraitées, généralement après l'empilement. C'est là que l'astrophotographe applique diverses techniques pour améliorer l'image finale et faire ressortir les détails et les caractéristiques. Il peut s'agir d'un renforcement de la netteté (déconvolution), d'un étalonnage des couleurs, d'une réduction du bruit et d'un étirement de l'image afin d'accroître la visibilité des détails peu visibles.

En résumé, le prétraitement prépare le terrain pour le traitement en s'assurant que les données sont sous une forme appropriée et débarrassées des signaux indésirables, tandis que le traitement consiste à faire ressortir le meilleur du signal pour créer l'image finale. Les deux étapes sont importantes dans le processus d'astrophotographie, et la qualité du résultat dépend des compétences et des techniques appliquées à ces deux stades.

Dans Siril, le prétraitement principal est effectué en suivant l'ordre des onglets du panneau de droite et nécessite l'utilisation de fichiers maîtres. C'est un processus qui peut être automatisé assez facilement et les scripts fournis dans Siril effectuent cette tâche. Le traitement des images se fait via le menu dédié Traitement de l'image. Ce processus est plus difficile à automatiser car il est spécifique à chaque image et consiste en un travail itératif.

Prétraitement

Cette section vous présente les différentes étapes du prétraitement de vos images, de l'importation dans Siril à l'obtention d'une image empilée.

Le volet de droite contient les onglets qui sont utiles pendant le prétraitement. Ils ont été conçus pour être utilisés de gauche à droite tout au long du processus, avec quelques exceptions pour la création de masters. Ces onglets sont également accessibles via les touches F1 à F7.

Le prétraitement est l'étape avant l'alignement et l'empilement des images. L'objectif est de supprimer tous les signaux indésirables et de réduire le bruit présent sur toutes les sous images.

schéma de prétraitement

L'image 1 montre le résultat de la conversion d'une image brute d'un appareil photo numérique. Vous pouvez voir des poussières visibles, semblables à des taches sombres. L'image 2, après l'étalonnage des images par les master darks, bias et flats, montre la suppression complète de ces taches et un signal plus propre. L'image 3 est la même après dématriçage, montrant la couleur et une très grande dominante verte due à la plus grande sensibilité des photosites verts sur les capteurs. Enfin, l'image 4 est la sortie de l'empilement, avec équilibrage des canaux.

Conversion

Siril supporte le format FITS 32bits ainsi que le format SER de manière native. Par conséquent, tout autre format de fichier doit d'abord être converti dans ces formats pour être pris en charge et générer une séquence. Le type de fichiers pris en charge est indiqué dans l'onglet et dépend de la manière dont Siril a été compilé.

Siril présente un onglet de conversion qui est divisé en 2 panneaux. Le panneau supérieur vous permet de charger les fichiers source que vous souhaitez convertir.

source de conversion

Panneau Source de l'onglet conversion.

La gestion de ces fichiers se fait à partir de la mini barre d'outils conv-toolbar.

  • Le premier bouton, le bouton +, est celui qui permet de charger les fichier sources. Il ouvre une fenêtre de dialogue vous permettant de choisir tous les fichiers à convertir présent sur votre ordinateur. Seuls les formats supportés par Siril sont visibles.

    Astuce

    Il est possible de glisser et déposer des fichiers directement dans la zone sources. La zone de dépôt est mise en évidence lorsque les fichiers sont au-dessus d'elle.

  • Le second bouton, le bouton -, permet de supprimer les fichiers sélectionnés. Plusieurs fichiers peuvent être supprimés en même temps. Ils ne sont pas supprimés du disque dur, mais seulement de la zone de conversion.

  • Le dernier bouton vous permet de supprimer tous les fichiers chargés en une seule fois.

Le nombre de fichiers chargés et sélectionnés est indiqué dans la barre d'état, à droite de la barre d'outils.

Dans la section destination il est possible de choisir le nom de la séquence qui sera générée après la conversion des fichiers.

destination de conversion

Panneau Destination de l'onglet conversion.

Ainsi pour un nom de séquence basename, les fichiers convertis seront de la forme

basenameXXXXX.[ext]

L'extension est tel que définie dans les préférences. L'indice XXXXX commence par défaut à 00001 avec la première image, mais il est possible de définir un indice de départ différent. Cela peut être utile dans le cas d'une multisession qui partage les mêmes fichiers maîtres. Trois types de sorties sont possibles, à choisir dans le menu déroulant :

  • images FITS

  • séquence SER

  • séquence Fits

Ces formats de fichiers sont expliqués dans la section séquence de cette documentation.

Techniquement, lorsque les fichiers d'entrée sont au format FITS, il n'est pas nécessaire de les convertir. Cependant, on peut vouloir le faire pour que les fichiers soient renommés pour créer une séquence et puissent être traités dans Siril. Afin de ne pas remplir inutilement le disque dur, il est alors possible de choisir l'option Lien symbolique. Cette option crée un lien symbolique pour les fichiers FITS au lieu de les copier. Cette option n'est donc disponible que lorsque les fichiers de sortie sont des images FITS.

Note

Lorsque les liens symboliques sont activés, cela désactive la compression.

Avertissement

Pour Microsoft Windows, pour utiliser les liens symbolique il faut activer le mode développeur de Windows.

Avertissement

Si sous GNU/Linux vous voyez l'erreur Symbolic link Error : Fonction non implémentée, c'est peut-être parce que vous essayez de créer une séquence de liens symboliques dans un répertoire d'un système de fichiers qui n'autorise pas les liens symboliques.

Lorsque les formats de sortie sont des séquences SER ou FITS, l'option Séquences multiples devient visible. Cochez cette option pour créer plusieurs fichiers de séquences au lieu d'un seul fichier SER ou FITS pour tous les éléments d'entrée. Utilisez cette option si les éléments d'entrée (fichiers de séquence tels que les films, les SER ou FITS cubes) ne partagent pas la même taille d'image ou ne doivent pas être traités ensemble.

La dernière option Dématricer permet à l'utilisateur de dématricer les images pendant la conversion. Cette option ne devrait généralement pas être utilisée si les images sont des offsets, des darks, des flats, ou des images destinées à être prétraitées. En effet, en raison de la prise en compte de la matrice de Bayer, le résultat RVB de votre image RAW est une image interpolée. Par conséquent, le prétraitement de données interpolées donnera des résultats erronés. La conversion des fichiers RAW d'un capteur couleur donne des images FITS monochromes Color Filter Array (Matrice de filtres colorés) (CFA). Contrairement aux images RVB, les images CFA représentent l'ensemble des données du capteur avec le motif de Bayer. L'image suivante montre un recadrage d'une image CFA. Notez que le motif de Bayer (RGGB sur cet exemple) est visible.

Matrice de Bayer

Modèle de Bayer montré sur une image CFA (Color Filter Array, Matrice de filtres colorés).

Enfin, le bouton Convertir, permet, comme son nom l'indique, de lancer la conversion des fichiers.

Note

Les images brutes des reflex numériques dépendent du fabricant et sont généralement des formats fermés. Par conséquent, le décodage de ces fichiers est une tâche complexe qui doit être effectuée par un code dédié. Pour Siril, la tâche de conversion des fichiers bruts est effectuée par LibRaw. En fait, si un format de fichier, généralement récent, n'est pas lu, il faut regarder sur le site de LibRaw s'il est supporté. Si ce n'est pas le cas, le fait de leur fournir un fichier brut peut aider l'équipe de développement à le faire. Cependant, il est également possible que la version de LibRaw intégrée dans le paquet Siril ne soit pas la plus récente. Dans ce cas, vous devez soit attendre une nouvelle version, soit compiler les sources directement.

Fichier de correspondance

Après chaque conversion, un fichier se terminant par _conversion.txt est créé. Il contient les correspondances entre images d'entrée et images de la sequence obtenue lors de la conversion.

Ligne de commande Siril

convert basename [-debayer] [-fitseq] [-ser] [-start=index] [-out=]
Convertit toutes les images du répertoire de travail actuel qui sont dans un format supporté en séquence d'images FITS de Siril (plusieurs fichiers) ou en séquence FITS (un seul fichier) si -fitseq est fourni ou en séquence SER (un seul fichier) si -ser est fourni. L'argument basename est le nom de base de la nouvelle séquence, les nombres et l'extension seront mis derrière.
Pour les images FITS, Siril essaiera de faire un lien symbolique ; si ce n'est pas possible, les fichiers seront copiés. L'option -debayer applique le dématriçage aux images d'entrée CFA ; dans ce cas, aucun lien symbolique n'est effectué.
-start=index définit le numéro d'index de départ, utile pour continuer une séquence existante (non utilisé avec -fitseq ou -ser ; assurez-vous de supprimer ou d'effacer le .seq cible s'il existe dans ce cas).
L'option -out= modifie le répertoire de sortie en fonction de l'argument fourni.

Voir aussi CONVERTRAW et LINK

Liens : convertraw, link

Ligne de commande Siril

convertraw basename [-debayer] [-fitseq] [-ser] [-start=index] [-out=]
Identique à CONVERT mais ne convertit que les fichiers RAW des reflex numériques se trouvant dans le répertoire de travail actuel

Liens : convert

Calibration

Une fois la séquence chargée, les images peuvent être calibrées, alignées et empilées. La calibration est une étape facultative, mais importante, qui implique des images de bias, des images darks et des images flats. L'étalonnage d'une séquence dans Siril ne peut se faire qu'avec un bias maître, un dark maître et un flat maître, qui doivent d'abord être créés à partir de leurs séquences.

Fichiers maîtres

Maîtres

Paramètres des fichiers maîtres de l'onglet Calibration

Bias

Citons A Glossary of CCD terminology pour expliquer ce qu'est une image bias :

Le niveau d'offset d'une image CCD est un décalage électronique induit artificiellement qui garantit que le convertisseur analogique-numérique (ADC) reçoit toujours un signal positif. Toutes les données CCD présentent un tel décalage qui doit être supprimé si l'on veut que les valeurs des données soient réellement représentatives des comptes enregistrés par pixel.

Pour utiliser les bias maîtres dans Siril, cliquez sur le bouton à droite de l'entrée de texte et parcourez vos fichiers pour sélectionner le bon maître. Vous pouvez même utiliser le master-bias d'une bibliothèque telle que définie dans les préférences.

Astuce

Les bias doivent être pris avec l'obturateur fermé et le temps d'exposition le plus court possible. En principe, cela correspond à une exposition de 1/4000 s sur les appareils photos numériques modernes.

Bias

Exemple d'un bias pris avec un Canon EOS 1100D. Ne vous fiez pas au signal du bias légèrement visible, l'image est auto-étirée et les différences d'amplitudes des signaux sont très exagérées.

Bias synthétique

Comme le signal d'offset est très uniforme sur les capteurs modernes, nous recommandons de le traiter comme une image à niveau constant. Cela présente l'avantage d'économiser de l'espace disque et de minimiser le bruit dans l'image finale. À cette fin, Siril dispose d'une fonctionnalité qui rend la chose très facile.

Lors du prétraitement de vos flats, au lieu de spécifier un masterbias, vous pouvez directement taper des expressions dans le sélecteur de dossier telles que :

=2048

ou si l'en-tête FITS contient le mot clé OFFSET,

=64*$OFFSET

Les signes = et $ sont obligatoires. Le niveau doit être donné en ADU (et non en flottant, même si vous travaillez en 32 bits).

Traduit dans le langage de script, cela s'écrit :

preprocess flat -bias="=64*$OFFSET"

La valeur 2048 est ici un exemple pris pour les caméras dont le master-bias a une valeur médiane de 2048 .En général, pour les appareils photos numériques, la valeur est proportionnelle à une puissance de 2. Dans notre exemple, \(2048 = 2^{11}\).

Pour plus de détails, veuillez vous référer au tutoriel sur les offsets synthétiques.

Dark

Les images darks contiennent le bruit thermique associé au capteur, le bruit étant proportionnel à la température et au temps d'exposition. Par conséquent, elles doivent être réalisées à peu près à la même température que les images lights. C'est la raison pour laquelle nous réalisons les images darks à la fin ou au milieu de la session d'imagerie.

Pour utiliser les dark maîtres dans Siril, cliquez sur le bouton à droite de l'entrée de texte et parcourez vos fichiers pour sélectionner le bon maître. Vous pouvez même utiliser le master-dark d'une bibliothèque telle que définie dans les préférences.

Astuce

Les darks sont réalisés au même temps d'exposition et ISO/Gain que les lights mais avec l'obturateur fermé.

Bias

Exemple d'une image dark prise avec un Canon EOS 1100D avec 300s d'exposition et à ISO 800.

Exemple de calibration

Une animation montrant la suppression du signal thermique grâce à la soustraction du dark.

Optimisation des dark

L'option d'optimisation de l'obscurité est utile lorsque les images darks n'ont pas été prises dans des conditions optimales. Siril propose deux méthodes avec des approches différentes, accessibles via une liste déroulante.

  1. Avec l'option Auto-évaluation, la soustraction du dark peut être optimisée de façon à ce que le bruit de l'image résultante (image claire moins image sombre) soit minimisé en appliquant un coefficient à l'image dark.

  2. La seconde option, Utiliser exposition, est basée sur les temps d'exposition des images si elles ont été enregistrées dans les mots-clés FITS.

Voici un exemple de situation où l'utilisation de cette option est nécessaire. Les images ont été prises avec une caméra FLI ProLine 4240. Le master-dark utilisé provient d'une bibliothèque et a été réalisé avec une exposition de 600s. Les images individuelles, quant à elles, ont des expositions de 60s. Le master-dark présente une signature de signal très particulière et assez disgracieuse : la présence de 4 préamplificateurs dans la caméra est à l'origine d'un tel signal. Ce défaut est évidemment aussi présent dans l'image de la galaxie, et la calibration par les darks doit être méticuleusement effectuée pour obtenir une image exempte de tout défaut.

Master Dark et image

Il s'agit d'une image et du master-dark de la caméra FLI ProLine 4240. Vous pouvez voir 4 bandes très distinctes causées par les préamplificateurs, visible sur les deux types de fichiers. Les images sont affichées en mode égalisation d'histogramme, pour mettre en évidence les défauts.

Cependant, dans ce cas, si nous utilisons le flux de travail habituel, le résultat de la calibration sera très médiocre. En effet, le master dark n'a pas été pris dans les mêmes conditions d'exposition.

Mauvaise Calibration

Avec le flux de travail classique, la calibration est médiocre et les défauts ne sont pas corrigés. L'image est affichée en mode d'égalisation d'histogramme, afin de mettre en évidence les défauts.

La solution est donc de soustraire le bias au dark, puis d'intégrer la soustraction du bias à celles des images, et de cocher la case d'optimisation des darks. Siril calculera automatiquement un coefficient à appliquer au fichier master-dark. Ici, il calcule 0.110, ce qui est très cohérent, puisqu'il correspond à la différence d'un facteur 10 entre les darks et les images (\(60 / 600 = 0.1\)).

Onglet Calibration

L'onglet calibration doit être complété comme il se doit dans un tel cas. Les master-flat et master-dark ont été calibrés par les bias.

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
Calibration correcte

Grâce à l'optimisation des darks, la calibration est correcte. Le seul résidu visible est la frange du CCD dans le proche IR, qui ne peut être supprimée par la calibration. L'image est affichée en mode d'égalisation d'histogramme, afin de mettre en évidence les éventuels défauts.

Flat

Les télescopes n'éclairent généralement pas le détecteur de manière uniforme. En outre, la poussière sur les surfaces optiques et le capteur provoque des motifs plus sombres dans l'image résultante, et le capteur lui-même réagit différemment au nombre de photons qui frappent les différents photosites. Pour corriger ces effets, chaque image lumineuse doit être divisée par le master flat, qui devrait être la médiane des expositions individuelles d'une zone homogène et non saturée.

Pour utiliser les flates maîtres dans Siril, cliquez sur le bouton à droite de l'entrée de texte et parcourez vos fichiers pour sélectionner le bon maître. Vous pouvez même utiliser le master-flat d'une bibliothèque telle que définie dans les préférences.

Bias

Exemple d'une image flat prise avec un Canon EOS 1100D. Les poussières présentes sur le chemin optique, et surtout sur le capteur, sont clairement visibles. Le vignettage (assombrissement des coins de l'image) est également très visible. Les défauts sont exagérés par le mode de visualisation. De plus, la commande grey_flat a été utilisée sur cette image pour faire disparaître le motif de Bayer.

Égalisation CFA

L'option Égaliser CFA égalise l'intensité moyenne des couches RGB d'une image flat CFA. Ceci est équivalent à l'utilisation de la commande grey_flat.

Ligne de commande Siril

grey_flat
Égalise l'intensité moyenne des couches RVB dans l'image CFA chargée. Il s'agit du même processus que celui utilisé sur les images flats lors de la calibration, lorsque l'option "equalize CFA" est utilisée

Auto-évaluation de la valeur de normalisation

Si l'option Auto-évaluation de la valeur de normalisation est cochée, Siril évaluera automatiquement la valeur de normalisation. Cette valeur est la moyenne du master-flat étalonné avec le master-bias. Sinon, c'est la valeur indiquée dans la zone de texte qui sera prise en compte.

Calibration des images lights

La calibration des images light consiste à appliquer le maître biais , dark et flat aux images astronomiques afin d'éliminer le signal indésirable.

Avertissement

En aucun cas l'étalonnage ne réduit le bruit des images. Au contraire, il l'augmente. C'est pourquoi il est important de prendre autant d'images d'étalonnage que possible, telles que des darks, afin de minimiser la quantité de bruit dans les images.

Corrige les artefacts des fichiers X-Trans

Cette option Corrige les artefacts des fichiers X-Trans permet de corriger les pixels de l'Auto Focus Fujifilm X-Trans. En effet, en raison du système de mise au point automatique à détection de phase, les photosites utilisés pour la mise au point automatique reçoivent un peu moins de lumière que les photosites environnants. L'appareil photo compense ce phénomène et augmente les valeurs de ces photosites spécifiques, ce qui donne un carré visible au milieu des images darks/offsets. Cette option n'a aucun effet sur les images de type Bayer. L'option n'est activée que si un master-bias ou un master-dark est chargé et utilisé.

Correction X-Trans

Artéfact X-Trans corrigé par l'algorithme de Siril

Correction cosmétique

La correction cosmétique est la technique utilisée pour corriger les pixels défectueux dans les images. En effet, tout capteur de caméra possède des photosites qui ne réagissent pas correctement à la réception des photons. Cela se traduit dans l'image par des pixels dont les valeurs sont très différentes de celles de leurs voisins les plus proches. Ces pixels sont appelés pixels chauds, si la valeur est beaucoup plus élevée, ou pixels froids lorsqu'elle est beaucoup plus faible. Siril propose deux algorithmes pour corriger ces pixels défectueux si l'option Activer la correction cosmétique est cochée.

Utiliser le Master-Dark

Cette méthode requière la présence d'un master-dark. Siril recherchera les pixels dont l'écart par rapport à la médiane dépasse x fois l'écart-type \(\sigma\). Cette valeur est ajustable pour les pixels chauds et froids.

Correction cosmétique avec un dark maître

Il est possible d'estimer le nombre de pixels qui seront corrigés dans l'image calibrée en appuyant sur le bouton Estimer. Si la valeur du pixel corrigé est affichée en rouge, cela signifie que ce nombre dépasse 1% du nombre total de pixels de l'image. Dans ce cas, vous devez augmenter la valeur du coefficient ou décocher la correction correspondante. Si les images proviennent d'un capteur de couleur, il est nécessaire de cocher l'option CFA.

Utiliser la Carte des Mauvais Pixels

Cette autre méthode utilise un fichier qui contient les coordonnées des pixels défectueux. Ce fichier est un simple fichier texte qui peut initialement être créé avec la commande find_hot. La dernière ligne a été ajoutée à la main et corrige une colonne endommagée située à la position \(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

Ligne de commande Siril

find_hot filename cold_sigma hot_sigma
Enregistre dans le répertoire de travail un fichier liste filename (format texte) contenant les coordonnées des pixels dont l'intensité hot_sigma fois supérieure et cold_sigma fois inférieure à l'écart-type, extraits de l'image chargée. Nous utilisons généralement cette commande sur un fichier dark maître. La commande COSME permet d'appliquer cette liste de mauvais pixels à une image chargée, voir aussi SEQCOSME pour l'appliquer à une séquence

Liens : cosme, seqcosme

Les lignes P x y type vont fixer le pixel aux coordonnées (x, y), où "type" est un caractère optionnel (C ou H) spécifiant à Siril si le pixel actuel est froid ou chaud. Cette ligne est créée par la commande FIND_HOT, mais vous pouvez également ajouter manuellement quelques lignes :
Les lignes C x 0 type vont fixer la colonne défectueuse aux coordonnées x.
Les lignes L y 0 type vont fixer la ligne défectueuse aux coordonnées y.

Ce fichier, qui peut être modifié à la main, doit être chargé comme une carte de mauvais pixels.

Correction cométique avec la carte des mauvais pixels

Enfin, si les images proviennent d'un capteur de couleur, il est nécessaire de cocher l'option CFA.

Séquence de sortie

Cette section regroupe les options qui peuvent être appliquées à la sortie.

Séquence de sortie
  • La zone de saisie Préfixe de sortie ajoute un préfixe aux images de sortie, afin de les identifier facilement. Par défaut, le préfixe est pp_, ce qui signifie pre-processed (pré-traitée).

  • La liste déroulante définit le type de séquence de destination.

    • Images FITS : une image FITS par image.

    • Séquence SER : un fichier SER pour toute la séquence (limité à 16 bits par canal).

    • Séquence FITS : un fichier FITS pour toute la séquence.

  • Dernière option, Dématricer avant sauvegarde. Cochez cette option si vous voulez appliquer un algorithme de dématriçage à vos images juste après qu'elles aient été calibrées. En faisant cela, vous sautez une étape manuelle qui peut prendre du temps.

Ligne de commande

Ligne de commande Siril

calibrate sequencename [-bias=filename] [-dark=filename] [-flat=filename] [-cc=dark [siglo sighi] || -cc=bpm bpmfile] [-cfa] [-debayer] [-fix_xtrans] [-equalize_cfa] [-opt[=exp]] [-all] [-prefix=] [-fitseq]
Calibre la séquence sequencename en utilisant les bias, dark et flat donnés en argument.

Pour les bias, un niveau uniforme peux être spécifié à la place d'une image, en entrant une expression entre guillemet commençant par le signe = tel que -bias="=256" ou -bias="=64*$OFSFSET".

Par défaut, la correction cosmétique n'est pas activée. Si vous voulez en appliquer une, vous devez le spécifier avec l'option -cc=.
Vous pouvez utiliser l'option -cc=dark pour détecter les pixels chauds et froids à partir du master dark (un master dark doit être fourni avec l'option -dark=), éventuellement suivi de siglo et sighi pour les pixels froids et chauds respectivement. Une valeur de 0 désactive la correction. Si les sigmas ne sont pas fournis, seule la détection des pixels chauds avec un sigma de 3 sera appliquée.
Alternativement, vous pouvez utiliser l'option -cc=bpm suivie du chemin vers votre carte de mauvais pixels pour spécifier quels pixels doivent être corrigés. Un fichier d'exemple peut être obtenu avec la commande find_hot sur un master dark.

Trois options s'appliquent aux images couleur (au format CFA) : -cfa pour les corrections cosmétiques, -debayer pour dématricer les images avant de les enregistrer, et -equalize_cfa pour égaliser l'intensité moyenne des couches RVB du flat maître, afin d'éviter de teinter l'image calibrée.
L'option -fix_xtrans est dédiée aux fichiers X-Trans en appliquant une correction sur les Darks et les Biais/offset pour supprimer un vilain motif carrée.
Il est également possible d'optimiser la soustraction des darks avec -opt, qui nécessite la fourniture de masters de bias et de dark, et calcule automatiquement le coefficient à appliquer au dark, ou calcule le coefficient grâce au mot-clé "exposure" avec -opt=exp.
Par défaut, les images marquées comme exclues ne sont pas traitées. L'argument -all peut être utilisé pour forcer le traitement de toutes les images même si elles sont marquées comme exclues.
Le nom de la séquence de sortie comme par le préfixe "pp_" sauf indication contraire spécifié avec l'option -prefix=.
Si -fitseq est fourni, la séquence de sortie sera une séquence FITS (fichier unique)

Ligne de commande Siril

calibrate_single imagename [-bias=filename] [-dark=filename] [-flat=filename] [-cc=dark [siglo sighi] || -cc=bpm bpmfile] [-cfa] [-debayer] [-fix_xtrans] [-equalize_cfa] [-opt[=exp]] [-prefix=]
Calibre l'image imagename en utilisant les bias, dark et flat donnés en argument.

Pour les bias, un niveau uniforme peux être spécifié à la place d'une image, en entrant une expression entre guillemet commençant par le signe = tel que -bias="=256" ou -bias="=64*$OFSFSET".

Par défaut, la correction cosmétique n'est pas activée. Si vous voulez en appliquer une, vous devez le spécifier avec l'option -cc=.
Vous pouvez utiliser l'option -cc=dark pour détecter les pixels chauds et froids à partir du master dark (un master dark doit être fourni avec l'option -dark=), éventuellement suivi de siglo et sighi pour les pixels froids et chauds respectivement. Une valeur de 0 désactive la correction. Si les sigmas ne sont pas fournis, seule la détection des pixels chauds avec un sigma de 3 sera appliquée.
Alternativement, vous pouvez utiliser l'option -cc=bpm suivie du chemin vers votre carte de mauvais pixels pour spécifier quels pixels doivent être corrigés. Un fichier d'exemple peut être obtenu avec la commande find_hot sur un master dark.

Trois options s'appliquent aux images couleur (au format CFA) : -cfa pour les corrections cosmétiques, -debayer pour dématricer les images avant de les enregistrer, et -equalize_cfa pour égaliser l'intensité moyenne des couches RVB du flat maître, afin d'éviter de teinter l'image calibrée.
L'option -fix_xtrans est dédiée aux fichiers X-Trans en appliquant une correction sur les Darks et les Biais/offset pour supprimer un vilain motif carrée.
Il est également possible d'optimiser la soustraction des darks avec -opt, qui nécessite la fourniture de masters de bias et de dark, et calcule automatiquement le coefficient à appliquer au dark, ou calcule le coefficient grâce au mot-clé "exposure" avec -opt=exp
Le nom du fichier de sortie comme par le préfixe "pp_" sauf indication contraire spécifié avec l'option -prefix=

Comprendre comment les flats corrigent les lights

Le but de cette section est de donner un peu plus de détails sur la façon dont les différents niveaux jouent un rôle dans la correction des lights par les flats.

Nous ne tiendrons pas compte ici des considérations relatives au bruit (encore une fois, le bruit ne disparaît pas avec la soustraction ou la division des maîtres, il diminue en calculant la moyenne de plusieurs réalisations du même processus aléatoire). Nous ne tiendrons pas compte non plus des configurations spatiales particulières telles que l'ampglow ou les poussières.

Si nous essayons de quantifier l'intensité des pixels d'arrière-plan dans les différentes images dont nous disposons, nous pouvons écrire les expressions suivantes :

\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}

avec, \(L\) pour Lights, \(D\) pour Darks, \(F\) pour Flats et \(O\) pout Bias.

Pour les images \(L\), la première partie est une composante d'illumination spatiale, c'est-à-dire \(a - b(x-\frac{W}{2})^2\). Nous avons choisi ici une variation quadratique avec une valeur maximale \(a\) au milieu du cadre de largeur \(W\), même autour du centre du capteur. Ce n'est pas la forme spatiale exacte du vignettage, mais c'est une assez bonne approximation pour comprendre comment il fonctionne. En plus de ce terme d'illumination spatiale, il existe un terme variant avec le temps d'exposition qui est généralement appelé courant d'obscurité (\(d_\text{rate} \times t_\text{lights}\)) mais qui ne dépend pas de la position du pixel sur le capteur. Enfin, il y a un pedestal, c'est-à-dire l'offset. Cet offset est présent dans toute image qui est prise, de sorte qu'on le retrouve dans toutes les expressions.

Les darks \(D\) n'étant pas éclairés, ils ne portent que le terme de courant d'obscurité, avec la même intensité que les images puisqu'ils sont tous les deux capturés avec la même durée, et le terme d'offset.

Les flats \(F\) ont également un terme spatial, proportionnel au terme trouvé dans les images "light". Le facteur \(K\), plus grand que 1, indique simplement que leur intensité est plus grande. Pour écrire cela, il suffit de supposer que les pixels répondent linéairement au nombre de photons qu'ils recueillent, ce qui est raisonnable. Nous aurions également pu écrire un terme de courant d'obscurité, proportionnel au temps d'exposition des flats. Mais si ce temps n'est pas important, nous pouvons supposer qu'il est négligeable. Si ce n'est pas le cas, cela signifie qu'il faut prendre des darks de flat ou au moins évaluer leur niveau.

Et enfin l'offset \(O\) mesure seulement le niveau de l'offset.

Pour visualiser ces niveaux, nous avons représenté ci-dessous ces expressions sous forme de courbes en fonction de la position sur une image et nous vous encourageons à faire de même et à jouer avec les entrées.

  • \(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]}\)

Les valeurs \(L\), \(D\) et \(O\) en ADU sont données sur l'échelle de gauche tandis que \(F\) est sur l'échelle reporté à droite.

DOF

Qu'est-ce que l'étalonnage des butes ? Lorsque vous étalonnez vos brutes, vous effectuez l'opération suivante :

\[L_c = \dfrac{L -D}{F-O}.\]

Le terme \(F-O\) désigne un flat dont vous avez soustrait le niveau d'offset (qu'il s'agisse d'un masterbias ou simplement d'un niveau). Il s'agit de l'opération effectuée avant l'empilement de votre masterflat. Et le terme \(L-D\) représente une image dont vous avez soustrait le niveau du courant de dark et l'offset, c'est-à-dire un masterdark. Si vous remplacez par les expressions ci-dessus, vous obtenez ce qui suit :

\[L_c = \dfrac{1}{K}.\]

Il n'y a plus de terme de variation spatiale, vous avez mis vos "aplati" vos images ! Obtenir une valeur raisonnable en ADU (et non pas \(1/K\)) est ce que Siril fait lorsque vous cochez Evaluer automatiquement la valeur de normalisation dans l'onglet Calibration.

Et vous pouvez essayer avec n'importe quelle autre combinaison, aucune autre ne vous débarrassera des variations spatiales.

Pour illustrer cela, nous avons tracé ci-dessous le résultat de différentes combinaisons. Pour mettre tout sur la même échelle, tous les résultats sont normalisés pour avoir la même intensité de 1 au milieu du cadre. Les tests suivants sont présentés :

  • \(L-D\) : vous avez réalisé que les darks.

  • \(L/F\) : vous avez réalisé que les flats.

  • \(L/(F-O)\) : vous avez juste réalisé des flats et les avez corrigé d'un offset (un maître ou un synthétique).

  • \((L-O)/(F-O)\) : vous avez juste des flats corrigé par un offset. Mais vous avez aussi soustrait l'offset des light.

  • \((L-D)/F\) : vous avez réalisé des flats et des darks mais pas d'offsets.

  • \((L-D)/(F-O)\) : vous avez tout fait dans les règles de l'art.

Calibration des Lights

Il est intéressant de noter que :

  • \(L-D\) ne montre évidemment aucune correction pour le vignettage.

  • Les images \(L/F\) et \(L/(F-O)\) présentent une sur-correction ou un vignettage inverse.

  • Pour se rapprocher du résultat optimal, \((L-D)/F\) et \((L-O)/(F-O)\) montrent un champ presque plat. Cela dépend bien sûr de l'intensité du courant d'obscurité de votre capteur et du vignettage de votre train optique.

  • La calibration de référence donne un champ plat.

Les conclusions que nous pouvons tirer de ce qui précède sont les suivantes :

  • Il est préférable de corriger vos lights avec un offset (masterbias ou simplement un niveau) si vous n'avez pas réalisé de darks.

  • Mieux encore, si vous n'avez pas le temps de prendre une série de darks, cela vaut probablement la peine de prendre au moins un dark, de mesurer sa médiane, et de soustraire ce dark (synthétique) de vos lights. Bien sûr, cela ne corrigera pas l'ampglow ou ne permettra pas de corriger les pixels chauds, mais vos lights seront au moins plats !

Maintenant, qu'en est-il de la poussière... ?

Pour que vos flats corrigent aussi ces vilaines taches, la triste nouvelle est que vous devez aussi inclure toutes les images d'étalonnage dans l'équation. Nous avons ajouté un petit déficit ADU local dans les lights et les flats pour illustrer cet effet.

LDOF Dust

Comme vous pouvez le constater, seule la combinaison \((L-D)/(F-O)\) permet de s'en débarrasser.

LightsCalibration_dust

Pour mieux illustrer les équations et les courbes ci-dessus, rien ne vaut un exemple concret. Toutes les photos ci-dessous sont reproduites avec l'aimable autorisation de G. Attard.

LightsCalibration_dust

\(L-D\)

LightsCalibration_dust

\(L/F\)

LightsCalibration_dust

\(L/(F-O)\)

LightsCalibration_dust

\((L-O)/(F-O)\)

LightsCalibration_dust

\((L-D)/(F-O)\)

Résolution des problèmes de calibration

La calibration est une étape arithmétiquement très simple, qui ne peut échouer si les données d'entrée sont conformes à ce que l'on attend des images astronomiques.

Cependant, les utilisateurs sont régulièrement confrontés à des situations où les images calibrées ne sont pas correctes. Dans cette section, nous vous donnerons un aperçu des problèmes rencontrés et de la manière de les éviter.

Tout d'abord, l'outil statistique est une aide précieuse pour comprendre les problèmes, et est utilisé dans la majorité des cas pour les résoudre.

  • Lors de l'analyse des statistiques d'un dark maître, celui-ci doit d'abord être noir. En effet, ces images sont prises avec le bouchon fermé et il n'y a pas de raison que l'un des photosites soit privilégié. L'image doit donner l'impression d'avoir été prise par un capteur monochrome, la matrice de Bayer n'étant alors pas visible. Ci-dessous, voici un exemple où le master-dark a subi une balance des couleurs non souhaitée pour ce type d'image. En conséquence, il n'est plus noir et la matrice de Bayer est visible. Un tel dark est impropre à l'utilisation et doit être refait.

    Mauvais Master Dark

    Un examen attentif des statistiques montre que la valeur médiane de chaque canal est différente, alors qu'elle devrait être identique (ou presque). En outre, le motif de Bayer est clairement visible.

  • Pendant la session de nuit, il est très important de régler la valeur OFFSET sur la même valeur pour toutes les images. En particulier, il est obligatoire d'avoir le même réglage pour les paires darks/lights et bias/flats. Si la première condition n'est pas respectée, des données importantes peuvent être perdues (écrêtage des pixels sur le côté gauche de l'histogramme). Si les deux conditions ne sont pas remplies, il est très probable que vos images ne pourront pas être correctement traitées avec le flat (voir la section ci-dessus).

  • Vérifier les niveaux des darks et des images : la valeur médiane des images doit être suffisamment élevée par rapport à celle du master-dark pour éviter de générer des images pleines de pixels avec des valeurs négatives.

  • Si vous avez utilisé les mêmes réglages pour les darks et bias, leurs valeurs médianes devraient être très proches les unes des autres (du moins avec une caméra refroidie). Dans le cas contraire, cela peut signifier que vous avez une fuite de lumière qui a affecté vos darks (les bias sont moins sensibles car ils sont exposées pendant un temps beaucoup plus court). Inspectez donc toujours votre master-dark pour voir s'il y a un gradient ou une zone plus claire au centre. Ce phénomène ne doit pas être confondu avec l'ampglow qui est normal pour certaines caméras.

  • Nous vous recommandons vivement de réaliser vos images de la même manière : même logiciel / même ordinateur ou astrobox / même format d'image. En effet, chaque logiciel peut utiliser ses propres conventions d'écriture, et les images peuvent ne plus être compatibles entre elles. On entend souvent parler d'utilisateurs qui font toutes leurs images avec une astrobox, et qui font les flats le lendemain directement avec leur reflex numérique. Dans ce cas, les images sont souvent de tailles différentes, ce qui rend la calibration impossible.

  • Une erreur souvent rencontrée lors de l'exécution d'un script est la présence d'images JPG dans l'un des dossiers d'entrée (darks/biases/flats/lights), le plus souvent des instantanés sauvegardés par le logiciel d'acquisition pour une navigation plus rapide. La conséquence de ce type d'erreur est que la calibration échoue et s'arrête, se plaignant que les images ne sont pas de la même taille. En fait, les images JPG étant déjà dématricées, elles possèdent trois canaux, alors que les images RAW n'en ont qu'un. Supprimez toutes les images JPG des dossiers d'entrée pour résoudre ce problème.

  • Vérifiez que le flat n'est pas surexposé. Les flats sont utilisés pour corriger les variations de sensibilité d'un pixel à l'autre dans le capteur. Si certains pixels sont surexposés, leur sensibilité réelle risque de ne pas être représentée avec précision, ce qui entraînera des corrections incorrectes au cours du processus d'étalonnage. Un flat surexposé est la garantie d'une calibration ratée.

    Pour vérifier la présence de pixels surexposés, vous pouvez charger un flat et utiliser l'option Traitement de l'image ‣ Transformation de l'histogramme... pour afficher l'histogramme de l'image. L'image ci-dessous montre que l'un des pics est écrêté à droite. Par prudence, vous devriez toujours vérifier que la queue droite du pic le plus à droite n'est pas supérieure à 80 %, afin d'éviter d'entrer dans une zone où votre capteur pourrait devenir non linéaire.

    Mauvais Flat

    Saturation d'un flat. Lorsque cela se produit, cela signifie qu'il faut réduire le gain ou le temps d'exposition.

Alignement

La registration ou alignement est essentiellement le processus d'alignement des images d'une séquence pour pouvoir les traiter par la suite. Tous les processus décrits ci-après calculent la transformation à appliquer à chaque image afin d'être alignée avec l'image de référence de la séquence.

La force de Siril réside dans la grande variété d'algorithmes d'alignement proposés. Chaque méthode est expliquée ci-dessous. L'appui sur le bouton Aligner lance l'alignement de la séquence.

Il est possible de choisir le canal d'alignement. Le vert est le canal par défaut pour les images en couleur, la luminance pour les monochromes. Le signe (*) apparaissant après le nom du canal signifie que des données d'alignement sont déjà disponibles pour ce canal. Lors du traitement des images, les données d'alignement sont extraites du canal par défaut s'il est disponible (pour les images RVB : Vert, sinon retour au Bleu puis au Rouge).

Théorie

Processus d'alignement

Ce que nous appelons Alignement est en fait un processus en trois étapes :

  1. Détecter les caractéristiques à faire correspondre dans toutes les images

  2. Calculer les transformations entre chaque image et l'image de référence

  3. Appliquer la transformation calculée à chaque image pour obtenir de nouvelles images

Selon la méthode d'alignement choisie, les 3 étapes se déroulent (ou non) en un seul processus. Siril utilise les valeurs par défaut les plus raisonnables (choisir d'appliquer ou non la transformation calculée) en fonction de la méthode d'alignement sélectionnée, mais la compréhension de la machinerie interne peut vous aider à modifier ce comportement pour mieux répondre à vos besoins.

Algorithmes

Le tableau ci-dessous détaille les différents algorithmes utilisés pour les 2 premières étapes (détection et calcul de la transformation).

Méthode d'alignement

Détection des caractéristiques

Calcul de la transformation

Nouvelle séquence

Global

PSF Dynamique

Correspondance des triangles + RANSAC

Y

Global avec 2 passe

N

1-2-3 étoiles

PSF minimisation dans la boîte de sélection

Décomposition en valeur singulière (2-3 étoiles) Différence (1 étoile)

N

Alignement par motif de l'image

correlation croisée avec boîte de sélection

N

KOMBAT

Max de convolution dans le domaine spatial dans la boîte de sélection

N

Comète

PSF minimisation dans la boîte de sélection

Décalages du vecteur vitesse à l'aide d'horodatages

Y(*)

Manuelle

Vos yeux

Vos mains

N

Astrométrie

PSF Dynamique

À partir de la solution astrométrique

N

Note

(*) L'alignement de comète crée un nouveau fichier de séquence (avec le préfixe comet_ par défaut) et crée de « nouvelles » images. Si des données d'alignement étaient présentes dans la séquence d'entrée, les décalages de la comète sont composés avec ces données d'alignement préexistantes. Les « nouvelles » images créées sont simplement des liens symboliques vers les images d'entrée, afin de ne pas consommer d'espace de stockage supplémentaire. Ce changement introduit dans la version 1.4 a été effectué pour clarifier si une séquence contenant des données d'alignement n'avait qu'un alignement sur les étoiles ou un alignement étoiles+décalage de comète. L'exportation d'une nouvelle séquence rend désormais évident le fait que des décalages supplémentaires sont inclus. Cela permet également d'utiliser la même séquence d'entrée et de générer plusieurs séquences alignées sur différents objets en mouvement.

Le tableau ci-dessous répertorie les transformations compatibles avec chaque méthode, ainsi que la disponibilité de la correction de distorsion.

Méthode d'alignement

Translation

Euclidien

Similarité

Affine

Homographie

Annuler la distorsion

Global

sous-pixel

x

x

x

x

2 passes

sous-pixel

x

x

x

x

1-2-3 étoiles

sous-pixel (1-2-3)

(2-3)

Alignement par motif de l'image

pixel

KOMBAT

pixel

Comète

sous-pixel

Manuelle

pixel

Astrométrie

x

x

Il est également important de garder à l'esprit comment la séquence alignée est introduite dans le processus d'empilement qui est généralement utilisé juste après l'alignement :

  • si la transformation consiste uniquement en des décalages de pixels, l'algorithme d'empilement peut utiliser ces décalages à la volée lors de la lecture des images. Cela signifie qu'il n'est pas nécessaire de générer des "images alignées". Cela permet de gagner de l'espace de stockage et d'éviter l'interpolation. C'est, bien sûr, au détriment d'un alignement moins précis (c'est-à-dire d'une précision inférieure au pixel) mais c'est généralement utilisé sur des images planétaires/de chance où l'échantillonnage est faible. Cette méthode peut également être appliquée avec une méthode d'alignement qui calcule les décalages sous-pixel. Au cours du processus d'empilement, les décalages seront arrondis à la précision du pixel. Dans tout autre cas, c'est-à-dire lorsque l'empilement est alimenté par une séquence où l'alignement a calculé des transformations plus complexes que de simples décalages mais que les images alignées n'ont pas été sauvegardées, Siril émettra un avertissement vous invitant à exporter les images alignées avant de procéder à l'empilement.

  • Dans tous les autres cas, une fois les transformations calculées, les images transformées doivent être sauvegardées avant de procéder à l'empilement, généralement nommées avec le préfixe r_.

Transformations de l'image
Transformation linéaire

Siril utilise des transformations linéaires, avec différents degrés de liberté, pour mettre en correspondance une image avec l'image de référence :

  • Translation est un mapping rigide à 2 degrés de liberté (décalages x/y), bien adapté aux images sans distorsion, sans mise à l'échelle et sans rotation de champ. Il ne nécessite qu'une seule paire d'étoiles (ou de caractéristiques) à faire correspondre pour définir la transformation.

  • Euclidien est un mapping rigide à 3 degrés de liberté (déplacements x/y + une rotation), pour des images sans distorsion, sans mise à l'échelle. Il faut qu'au moins 2 paires d'étoiles soient appariées pour définir la transformation.

  • Similarité est un mapping à 4 degrés de liberté (une échelle, une rotation et des décalages x/y) plus rigide que l'homographie, bien adaptée aux images sans distorsion. Il faut qu'au moins 2 paires d'étoiles soient appariées pour définir la transformation.

  • Affine est un mapping à 6 degrés de liberté (deux échelles, un cisaillement, une rotation et des décalages x/y) plus rigide que l'homographie, bien adapté aux images avec peu de distorsion. Elle nécessite la mise en correspondance d'au moins 3 paires d'étoiles pour définir la transformation.

  • Homographie est la transformation par défaut qui utilise une transformation à 8 degrés de liberté pour déformer les images sur le cadre de référence. Cette transformation est bien adaptée au cas général et fortement recommandée pour les images à grand champ. Elle nécessite la mise en correspondance d'au moins 4 paires d'étoiles pour définir la transformation.

Transformation de l'alignement global
Distorsions

Depuis la version 1.3, Siril peut également tenir compte des distorsions, pour certaines des méthodes d'alignement listées dans ce tableau. Les coefficients de distorsion gérés par Siril suivent la convention SIP. Cette convention suppose que les coordonnées de pixels doivent être corrigées AVANT d'essayer de les projeter via une transformation linéaire. Dans le jargon WCS, on appelle cela une distorsion a priori (par opposition à une distorsion séquente).

Ces coefficients sont utilisés deux fois pendant le processus d'alignement :

  • les positions des étoiles détectées en conditions « distordues » sont d'abord corrigées, à la fois dans l'image à aligner et dans l'image de référence (ou les positions projetées des étoiles pour l'alignement astrométrique). La transformation linéaire qui projette les étoiles de l'image actuelle sur la référence est ensuite calculée.

  • Lors de l'exportation de l'image alignée, celle-ci est d'abord corrigée de sa distorsion puis projetée linéairement pour être alignée sur l'image de référence. Notez que cela se produit en réalité en une seule opération (la projection des pixels est calculée comme la composition de cette correction non linéaire suivie de la projection linéaire) afin d'éviter d'interpoler les valeurs de pixels deux fois. L'image de référence subit également cette correction, sans la projection linéaire.

Image de référence

C'est l'image qui est utilisée comme référence commune pour calculer les transformations qui envoient toutes les images de la séquence sur cette image particulière.

Si elle n'est pas définie manuellement, l'image de référence est choisie selon les critères suivants :

  • si la séquence a déjà été alignée, il s'agit de la meilleure image, en termes de FWHM la plus faible ou de qualité la plus élevée selon le type d'alignement

  • Sinon, c'est la première image de la séquence qui n'est pas exclue.

Pour spécifier une image comme référence, vous pouvez :

  • Ouvrir le sélecteur d'images, sélectionner l'image à définir comme nouvelle référence et cliquer sur le bouton Image de référence.

  • Utiliser la commande setref. Par exemple, si vous voulez définir l'image n°10 comme référence :

    setref 10
    

Ligne de commande Siril

setref sequencename image_number
Définit l'image de référence de la séquence donnée en premier argument. image_number est le numéro séquentiel de l'image dans la séquence, et non le numéro dans le nom de fichier, commençant à 1
Panneau de la liste d'images

La boîte de dialogue de la liste des images. Vous pouvez parcourir toutes les images de la séquence.

Pendant l'empilement, l'image de référence est également utilisée comme référence de normalisation, si la normalisation est activée.

Méthodes d'alignement

Alignement global

Il s'agit de l'algorithme préféré pour aligner les images du ciel profond avec un recouvrement suffisant.

L'alignement global est basé sur la méthode de similarité des triangles pour identifier automatiquement les étoiles communes dans chaque image [Valdes1995]. Notre implémentation est basée sur le programme match de Michael Richmond. Ensuite, l'algorithme RANSAC [Fischler1981] est utilisé sur les listes d'étoiles pour rejeter les aberrations et déterminer la matrice de projection. La robustesse de l'algorithme dépend de la capacité à détecter les étoiles tout en évitant les fausses détections. Siril dispose d'un algorithme de détection des étoiles très élaboré qui évite autant que possible de sélectionner des objets qui ne sont pas des étoiles dans le temps le plus court possible. La détection des étoiles les plus brillantes est généralement la plus importante. Cependant, s'il est nécessaire de détecter des étoiles moins brillantes, alors la fenêtre PSF Dynamique peut être utilisée pour ajuster les paramètres de détection.

Star finder

Détection automatique des étoiles dans une image unique

Il existe certaines options associées à cette méthode d'alignement.

Alignement global

Options d'alignement global

Le menu déroulant Transformation permet de choisir entre différentes transformations.

Avertissement

La mise en correspondance initiale des étoiles utilise l'algorithme de similarité des triangles, en conséquence le minimum de paires d'étoiles doit être au moins de 3 pour Translation, Similarité et Affine et de 4 pour Homographie.

Les autres options d'alignement sont :

  • Le bouton Min. paires d'étoiles définit le nombre minimum de paires d'étoiles qu'une image donnée peut avoir par rapport à l'image de référence. Si une image donnée a moins de paires d'étoiles, elle ne sera pas alignée. A droite de cette option se trouve un bouton qui ouvre l'outil PSF Dynamique.

  • L'option Maximum d'étoiles ajustées définit le nombre maximum d'étoiles à rechercher dans chaque image (par défaut 2000). Plus cette valeur est grande, plus il y aura d'étoiles potentiellement détectées, résultant en une détection plus longue mais un alignement plus précis.

  • Utilisez l'option Aligner les étoiles dans la sélection si vous voulez exécuter l'algorithme d'alignement global des étoiles dans la zone sélectionnée dans l'image de référence. Si aucune sélection n'est effectuée, cette option est ignorée.

  • Le menu déroulant Correction de distorsion permet de choisir entre différentes corrections :

    • Aucun

    • À partir de l'image

    • À partir d'un fichier FITS/WCS

    • A partir des maîtres

Depuis l'image utilise la solution astrométrique de l'image actuellement chargée.
Depuis un fichier FITS/WCS ouvrira un sélecteur de fichier pour choisir une image FITS ou un fichier *.wcs contenant des coefficients de distorsion.
Depuis les maîtres récupérera le fichier de distorsion maître correspondant à chaque image. Cette option peut être utile si vous alignez des images provenant de deux sessions ou plus et que le capteur a été déplacé par rapport à l'optique, auquel cas les coefficients de distorsion peuvent ne pas être les mêmes.

Astuce

Pour que cette dernière option, Depuis les maîtres, fonctionne, vous devrez avoir défini un chemin de distorsion maître dans les préférences. Pour créer un fichier maître, rendez-vous ici.

Les options en bas vous permettent de :

  • Éliminez les images qui ont été désélectionnées de la séquence.

  • Choisir entre interpolation et drizzle pour l'exportation des images. Ce sont les mêmes que dans la section Sortie d'alignement, elles ne sont pas expliquées davantage ici.

Ligne de commande Siril

register sequencename [-2pass] [-selected] [-prefix=] [-scale=]
register sequencename ... [-layer=] [-transf=] [-minpairs=] [-maxstars=] [-nostarlist] [-disto=]
register sequencename ... [-interp=] [-noclamp]
register sequencename ... [-drizzle [-pixfrac=] [-kernel=] [-flat=]]
Trouve et effectue éventuellement des transformations géométriques sur les images de la séquence donnée en argument afin qu'elles puissent être superposées à l'image de référence. En utilisant des étoiles pour l'alignement, cet algorithme ne fonctionne qu'avec des images de ciel profond. Les options de détection des étoiles peuvent être modifiées en utilisant SETFINDSTAR ou la boîte de dialogue Dynamic PSF.

Toutes les images de la séquence seront alignées sauf si l'option -selected est passée, dans ce cas les images exclues ne seront pas traitées.
L'option -2pass calcule uniquement les transformations sans générer les images transformées, -2pass ajoute une passe préliminaire à l'algorithme pour trouver une bonne image de référence avant de calculer les transformations, en se basant sur la qualité de l'image et le cadrage. Pour générer des images transformées après cette passe, utilisez SEQAPPLYREG.
Si elle est créée, le nom de la séquence de sortie commencera par le préfixe "r_" sauf indication contraire avec l'option -prefix=. Les images de sortie peuvent être redimensionnées en passant un argument -scale= avec une valeur flottante comprise entre 0.1 et 3.

Options de transformation d'image :

La détection est effectuée sur la couche verte pour les images en couleur, sauf si spécifié par l'option -layer= avec un argument allant de 0 à 2 pour le rouge au bleu.
-transf= spécifie l'utilisation des transformations shift, similarity, affine ou homography (par défaut) respectivement.
-minpairs= spécifie le nombre minimum de paires d'étoiles qu'une image doit avoir en commun avec l'image de référence, sinon l'image sera abandonnée et exclue de la séquence.
-maxstars= spécifie le nombre maximum d'étoiles à trouver dans chaque image (doit être compris entre 100 et 2000). Avec plus d'étoiles, un alignement plus précis peut être calculé, mais l'exécution prendra plus de temps.
-nostarlist désactive la sauvegarde de la liste d'étoiles sur le disque.
-disto= utilise les termes de distorsion d'une solution de résolution astrométrique précédente (avec un ordre SIP > 1). Il prend en paramètre soit image pour utiliser la solution contenue dans l'image actuellement chargée, soit file suivi du chemin vers l'image contenant la solution, soit master pour charger automatiquement le maître de distorsion correspondant à chaque image. Lors de l'utilisation de cette option, les polynômes sont utilisés à la fois pour corriger les positions des étoiles avant de calculer la transformation et pour corriger la distorsion des images lors de l'exportation des images de sortie.

Option d’interpolation de l'image :

Par défaut, les transformations sont appliquées pour aligner les images à l'aide de l'interpolation.
La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp.

Options de drizzle pour les images :

Sinon, les images peuvent être exportées à l'aide de l'algorithme HST drizzle en passant l'argument -drizzle qui peut prendre les options supplémentaires suivantes :
-pixfrac= défini la fraction de pixel (par défaut =1.0).
L'argument -kernel= défini le noyau de drizzle et doit être suivi par l'un des arguments suivant : point, turbo, square, gaussian, lanczos2 or lanczos3. La valeur par défaut est square.
L'argument -flat= spécifie un flat maître pour pondérer les pixels d'entrée drizzlés (la valeur par défaut est sans flat).

Remarque : lorsque vous utilisez -drizzle sur des images prises avec un capteur couleur, les images d'entrée ne doivent pas être débayerisées. Dans ce cas, la détection des étoiles se fera toujours sur les pixels verts

Alignement 2 passes

Pour activer cette option, cochez simplement la case correspondante après avoir choisi Alignement global dans le menu déroulant des méthodes.

Ceci n'effectue que la première (des 2 passes), ce qui permet de choisir l'image de référence à partir des informations sur les étoiles détectées au lieu de choisir automatiquement la première image de la séquence. Les options proposées sont similaires à l'algorithme d'Alignement global mais cette méthode ne crée aucune séquence et toutes les informations d'alignement sont enregistrées dans le fichier seq.

Pendant la détection des étoiles, Siril fixe un maximum de 2000 étoiles à trouver (ceci peut aussi être changé avec l'option appropriée). Dans le cas où plus d'une image a atteint les limites maximales d'étoiles, les listes d'étoiles de toutes les images sont examinées à nouveau. Un nouveau seuil de détection minimum est défini pour pouvoir trier les images à la fois par nombre d'étoiles détectées et par FWHM.

Les listes d'étoiles de toutes les images sont sauvegardées, l'extension .fit(s) étant remplacée par .lst. Ceci permet de ré-exécuter l'algorithme 2pass très rapidement avec des paramètres différents, par exemple une transformation différente. Dans le cas où la détection des étoiles a été modifiée, le processus détecte ces changements et relance l'analyse si nécessaire.

Cet alignement doit généralement être suivi par Appliquer l'alignement existant afin d'appliquer la transformation et de construire une nouvelle séquence, à moins que vous n'ayez choisi de calculer le Translation.

Ces lignes effectuent un alignement en deux passes sur une séquence nommée pp_light et l'appliquent. La sortie est une séquence pp_light.

# Align lights in 2 passes
register pp_light -2pass
seqapplyreg pp_light

Ces lignes effectuent un alignement en deux passes sur une séquence nommée colors et l'appliquent tout en recadrant les images de sortie à la surface commune minimale. La sortie est une séquence pp_colors. Ceci peut être utile avant de composer des images mono (les zones qui ne sont pas communes à toutes les images sont recadrées).

# Align layers in 2 passes and crop away borders
register colors -2pass
seqapplyreg colors -framing=min
Alignement sur 1-2-3 étoiles

Lorsque les images contiennent peu d'étoiles, par exemple dans le cas des images de ciel profond rapide où le temps d'exposition est inférieur à une seconde. Il est possible que l'algorithme d'alignement global échoue, même si vous modifiez les paramètres de détection dans la fenêtre PSF Dynamique. Il peut alors être intéressant de faire une détection manuelle des étoiles que l'on veut aligner. C'est l'intérêt de l'algorithme d'alignement de 1, 2 ou 3 étoiles.

Alignement sur 1-2-3 étoiles

Option d'alignement sur 1-2-3 étoiles

Le principe de cette méthode est de dessiner une zone de sélection autour d'une étoile et de cliquer sur le bouton Pointer l'étoile 1, et ainsi de suite.

  • Si une seul étoile est sélectionnée, seul la translation entre les images sera calculé. En conséquence, le bouton Translation seulement est automatiquement sélectionné. Les valeurs de translation sont alors stockées dans le fichier seq.

  • Si deux ou trois étoiles sont sélectionnées, la rotation peut être calculée et appliquée pour créer une nouvelle séquence. Cependant, si l'option Translation seulement est sélectionnée, ce qui n'est pas obligatoire, seuls les décalages seront calculés.

L'option Suivre le mouvement de l'étoile utilise la position des étoiles trouvées dans l'image précédente comme nouveau centre pour l'alignement de l'image actuelle. Cela permet de réduire la zone de sélection, d'accélérer l'alignement et de tenir compte de la dérive ou des images comportant un grand nombre d'étoiles.

Avertissement

L'activation de cette option implique que l'alignement n'est pas parallélisé et qu'il s'exécute sur un seul cœur du processeur.

Alignement par motif de l'image (planétaire - disque entier)

Il s'agit d'un simple alignement par translation en utilisant la méthode de corrélation croisée dans le domaine spatial.

Cette méthode est rapide et est utilisée pour aligner les films planétaires, dans lesquels des informations contrastées peuvent être observées sur de grandes zones de l'image. Elle peut également être utilisée pour l'alignement d'images du ciel profond. Néanmoins, il faut garder à l'esprit qu'il s'agit d'une méthode d'alignement en un seul point, ce qui la rend peu adaptée à l'alignement de planètes en haute définition. Mais elle permet d'ancrer efficacement les images pour stabiliser la séquence. Il suffit de faire une sélection autour de l'objet (la planète par exemple) et de s'assurer que son mouvement pendant la séquence est contenu dans la sélection. Seule la translation peut être calculée avec cette méthode.

Alignement par motif

Option d'alignement par motif

KOMBAT

Cette méthode provient de la bibliothèque OpenCV, une bibliothèque largement utilisée dans Siril. Ils expliquent :

Il suffit de faire glisser l'image modèle sur l'image d'entrée (comme dans la convolution 2D) et de comparer le modèle et le patch de l'image d'entrée sous l'image modèle. Plusieurs méthodes de comparaison sont implémentées dans OpenCV. (Vous pouvez consulter la documentation pour plus de détails). Il renvoie une image en niveaux de gris, où chaque pixel indique dans quelle mesure le voisinage de ce pixel correspond au modèle.

En pratique, il suffit de tracer une sélection autour de l'objet (la planète par exemple) et de s'assurer que son mouvement au cours de la séquence est contenu dans la sélection. Seule la translation peut être calculée avec cette méthode.

Alignement Comète/Astéroïdes

L'outil d'alignement cométaire fonctionne d'une façon très simple, en deux étapes.

  1. Dans le sélecteur d'image, sélectionnez la première image de la séquence, entourer le noyau cométaire, ensuite cliquer sur le bouton Pointer objet dans #1.

  2. Ensuite sélectionnez la dernière image de la séquence, entourez le noyau cométaire, ensuite cliquez sur le bouton Pointer objet dans #2.

La vitesse de la comète \(\Delta x\) et \(\Delta y\) est calculé en pixel par heure si tout est ok.

Avertissement

L'alignement de la comète doit se faire sur des images dont les étoiles ont été préalablement alignées. Soit via une nouvelle séquence, avec l'alignement global, soit en ayant sauvegardé les informations d'alignement dans le fichier seq, via un alignement 2-pass ou astrométrique.

Note

Pour fonctionner pleinement, les images doivent être horodatées.

Alignement d'une comète

Options d'alignement pour une comète

Astuce

Si la détection PSF échoue à détecter un objet, elle renverra le centre de la boîte qui a été dessinée. Cela peut être pratique si vous souhaitez aligner sur un objet non visible sur vos subs. Utilisez les annotations d'objets du système solaire pour tracer la position d'un astéroïde et dessinez une boîte autour du marqueur pour capturer sa position.

Cette méthode produira un nouveau fichier de séquence, avec le nom de séquence précédé du préfixe défini (comet_ par défaut). Cela ne crée cependant pas de nouvelles images, mais des liens symboliques vers les images d'origine. Pour les utilisateurs Windows, veuillez vous assurer d'avoir activé le mode développeur, sinon, des copies complètes seront créées. Voir aussi la remarque sous ce tableau.

Alignement manuel

Cette dernière méthode d'alignement est très particulière, ce qui explique sa position à part, et permet d'aligner les images manuellement. Bien entendu, seule la translation entre les images est autorisée.

La première chose à faire est de définir deux aperçus dans l'image. En cliquant sur le bouton Définir 1er aperçu (Définir la première prévisualisation), vous initialiserez la première prévisualisation. Il faut alors cliquer sur une zone de l'image, idéalement une étoile à proximité d'un bord de l'image pour définir la zone de prévisualisation. Un clic sur le second bouton Définir 2d aperçu permet de faire de même sur un second point.

Alignement manuel

Il est très important d'avoir une image de référence déjà définie avec le Sélecteur d'image. Par défaut, il s'agit de la première image. L'utilisateur est libre de choisir celle qu'il veut. Elle servira d'image de référence, vu par transparence, pour aligner les images manuellement avec les boutons numériques. Ensuite, parcourez les images une à une pour appliquer la même méthode à l'ensemble de la séquence.

Prévisualisation de l'alignement manuel

Le décalage en Y est trop important, les mêmes étoiles sur des images différentes ne se chevauchent pas.

Prévisualisation de l'alignement manuel

Les décalages X et Y semblent corrects. L'image actuelle est alignée sur l'image de référence.

Alignement astrométrique

Introduit dans la version 1.3, c'est le mode préféré pour assembler des mosaïques ou des images avec peu de chevauchement. Il peut également être utile pour aligner des empilements issus de configurations différentes (optiques différentes, caméras différentes, champs de vision différents, etc.).

Elle n'a pas d'entrée dans le menu déroulant des méthodes d'alignement, car les informations nécessaires pour exporter les images alignées ont déjà été calculées lors de la résolution astrométrique de la séquence. Il vous suffit d'appliquer l'alignement existant.

La correction de distorsion sera appliquée telle que définie lors de la résolution astrométrique de la séquence, ce qui signifie que si les images ont été résolues en utilisant un ordre SIP supérieur à 1, la correction de distorsion sera automatiquement incluse. À moins de disposer d'un champ parfaitement plat optiquement, il est généralement conseillé de faire la résolution astrométrique avec SIP, comme illustré ci-dessous, avec et sans correction de distorsion.

Effet de correction de la distorsion

Effet de la suppression de la distorsion sur deux panneaux superposés après alignement

Appliquer Alignement Existant

Il ne s'agit pas d'un algorithme, mais plutôt d'une commodité pour appliquer les données d'alignement précédemment calculées et stockées dans le fichier de séquence. La méthode d'interpolation peut être sélectionnée dans la section Sortie d'alignement. Vous pouvez également utiliser le filtrage d'image pour éviter d'aligner des images inutiles, comme dans l'empilement Rejet des images. Il y a aussi une option Drizzle pour appliquer l'alignement en utilisant le drizzle au lieu de l'interpolation. Voir la section Drizzle pour plus de détails.

Quatre méthodes de cadrage sont disponibles :

  • current-icon : Actuelle utilise l'image actuelle comme image de référence. Il s'agit du comportement par défaut.

  • max-icon : maximum (zone de délimitation) ajoute un bord noir autour de chaque image si besoins affin qu'aucune partie de l'image soit recadré lors de l'alignement.

  • min-icon : minimum (zone commune) recadre chaque image sur la zone qu'elle a en commun avec toute les images de la séquence.

  • cog-icon : centre de gravité détermine la meilleur position de cadrage en tant que centrer de gravité (cog) de toutes les images.

Astuce

Introduit dans Siril 1.3, le mode max n'exporte pas les images avec des bordures noires englobant l'image résultante complète. Les images sont exportées avec la projection nécessaire, et les décalages relatifs requis pour composer l'image finale sont conservés dans le fichier seq résultant.

Le bouton Estimer lancera le calcul du cadrage, sans exporter les images. Cette information peut être intéressante pour connaître à l'avance la taille des images exportées. Cela tient compte de la méthode de cadrage sélectionnée et du facteur d'échelle choisi dans la Sortie d'alignement.

En appuyant sur Estimer, la console affichera une sortie comme celle-ci :

Output image: 7893 x 5254 pixels (assuming a scaling factor of 1.30)
Appliquer Alignement Existant

Option d'Appliquer Alignement Existant

Ligne de commande Siril

seqapplyreg sequencename [-prefix=] [-scale=] [-layer=] [-framing=]
seqapplyreg sequencename ... [-interp=] [-noclamp]
seqapplyreg sequencename ... [-drizzle [-pixfrac=] [-kernel=] [-flat=]]
seqapplyreg sequencename ... [-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]] [-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Applique des transformations géométriques aux images de la séquence donnée en argument afin qu'elles puissent être superposées à l'image de référence, en utilisant les données d'alignement précédemment calculées (voir REGISTER).
Le nom de la séquence de sortie commence par le préfixe "r_" sauf indication contraire spécifié par l'option -prefix=.
L'alignement est réalisé sur la première couche pour laquelle les données existe pour une image RVB sauf si spécifié par l'option -layer= (0, 1 ou 2 pour R, V et B respectivement).
Les images de sortie peuvent être redimensionnées en passant un argument -scale= avec une valeur flottante comprise entre 0.1 et 3.

Le cadrage automatique de la séquence de sortie peut être spécifié en utilisant le mot-clé -framing= suivi de l'une des méthodes de la liste { current | min | max | cog } :
-framing=max (zone de délimitation) projettera chaque image et calculera son décalage par rapport à l'image de référence. La séquence résultante peut ensuite être empilée en utilisant l'option -maximize de la commande STACK, qui créera l'image complète englobant toutes les images de la séquence.
-framing=min (zone commune) recadre chaque image dans la zone qu'elle a en commun avec toutes les images de la séquence.
-framing=cog détermine la meilleur position de cadrage comme centre de gravité (cog) de toutes les images.

Option d’interpolation de l'image :
Par défaut, les transformations sont appliquées pour aligner les images à l'aide de l'interpolation.
La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp.

Options de drizzle pour les images :
Sinon, les images peuvent être exportées à l'aide de l'algorithme HST drizzle en passant l'argument -drizzle qui peut prendre les options supplémentaires suivantes :
-pixfrac= défini la fraction de pixel (par défaut =1.0).
L'argument -kernel= défini le noyau de drizzle et doit être suivi par l'un des arguments suivant : point, turbo, square, gaussian, lanczos2 or lanczos3. La valeur par défaut est square.
L'argument -flat= spécifie un flat maître pour pondérer les pixels d'entrée drizzlés (la valeur par défaut est sans flat).

Filtrage des images :
Les images qui vont être aligner peuvent être sélectionnées en utilisant des filtres, tel que celles sélectionné ou avec la meilleur FWHM, avec l'une des option -filter-*.


Links: registerstack

Avec le filtrage étant l'un de ceux-ci, sans ordre ni nombre particulier :
[-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]]
[-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Les meilleurs images de la séquence peuvent être empilées en utilisant les arguments de filtrage. Chacun de ces argument peu supprimer les mauvaises images sur la base des propriétés que leur nom contient, récupéré depuis les données d'alignement, avec l'un des trois types de valeur d'argument :
- 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.
Il est également possible d'utiliser des images sélectionnées manuellement, soit précédemment à partir de l'interface graphique utilisateur (GUI), soit avec les commandes select ou unselect, en utilisant l'argument -filter-included.

Sortie d'alignement

Ce cadre contient tous les éléments de sortie de la séquence. Vous pouvez choisir entre Interpolation et Drizzle pour exporter les images.

Avertissement

Elles peuvent ne pas être toutes deux disponibles selon la nature de la séquence d'entrée :

  • pour les séquences mono, interpolation et Drizzle peuvent être sélectionné

  • pour les séquences CFA (image couleur non débayerisé), seul Drizzle est disponible

  • pour les séquences RGB (images couleurs débayerisé), seul l'interpolation est disponible

Les deux méthodes partagent les mêmes options :

  • Échelle, une valeur comprise entre 0.1 et 2, utilisée pour redimensionner les images de sortie.

  • Préfixe, le préfixe qui sera ajouté au début pour former le nom de la séquence exportée (par défaut r_).

Interpolation

Les pixels des images résultantes sont interpolés par un algorithme laissé au choix de l'utilisateur. Il existe 5 algorithmes d'interpolation possibles, plus une option Aucun :

  • Plus Proches Voisins

  • Bilinéaire

  • Bicubique

  • Zone de relation des pixels

  • Lanczos-4

  • Aucun

Les méthodes d'interpolation les plus efficaces sont généralement bicubique et Lanczos-4 (utilisée par défaut). Cependant, elles nécessitent généralement que l'option Contrainte de l'interpolation soit activée pour éviter les artefacts en anneau autour des étoiles, ce qui rend l'opération d'interpolation deux fois plus lente. Nous l'activons tout de même par défaut car elle apporte une amélioration significative de la résolution, avec souvent une FWHM inférieure de 8 % par rapport à la méthode par défaut de Siril 1.0 (aire de pixel). Il est possible que la contrainte ne soit pas utile pour vos images, nous vous recommandons de comparer les résultats avec vos propres images.

Le cas particulier de Aucun est réservé au cas de l'alignement global et de l'application de l'alignement existant. Si vous souhaitez exporter ou sauvegarder une séquence qui ne contient que de la translation, sans utiliser d'interpolation (afin de ne pas modifier les valeurs des pixels), vous devez sélectionner Aucun.

Sortie d'alignement (interpolation)

Options de sortie pour l'interpolation

Drizzle

Le bouton Drizzle active l'algorithme drizzle pour le traitement de cette séquence. Voir la section Drizzle pour plus de détails.

Avertissement

La contrepartie de cette technique est que la quantité de mémoire et d'espace disque nécessaire à la création et au traitement des images drizzle est multipliée par le carré du facteur d'échelle du drizzle.

Sortie d'alignement (drizzle)

Options de sortie pour drizzle

Solution astrométrique des images alignées

Lorsque les images alignées sont exportées, elles héritent de la solution astrométrique de l'image de référence, le cas échéant. Sinon, leur solution précédente est effacée. Bien évidemment, la nouvelle solution de chaque image tient compte des transformations qu'elle a subies au cours du processus d'alignement.

Si une solution de distorsion est trouvée dans l'image de référence mais qu'aucune correction de distorsion n'a été appliquée lors du calcul des transformations - par exemple si vous n'avez sélectionné aucune Distortion dans le menu déroulant des méthodes globale ou 2-pass, un avertissement s'affichera dans la Console. Les informations de distorsion seront conservées dans les images alignées. Si elles sont significatives, vous pourrez en voir l'effet lors de l'empilement. Dans ce cas, vous devrez refaire l'alignement en utilisant une spécification de distorsion.

Références

[Fischler1981]

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.

[Valdes1995]

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.

Drizzle

La reconstruction linéaire à pixels variables, plus communément appelée Drizzle, a été développée pour le télescope spatial Hubble (HST) par Andy Fruchter et Richard Hook [FruchterHook1997], initialement dans le but de combiner des images avec dithering du Hubble Deep Field North (HDF-N). Cet algorithme peut être considéré comme un ensemble continu de fonctions linéaires qui varient doucement entre la technique de combinaison linéaire optimale (entrelacement) et la technique standard. Cela permet souvent d'améliorer la résolution et de réduire le bruit corrélé, par rapport aux images produites, en utilisant uniquement la technique standard.

Il existe une excellente page qui résume la technique et fournit une bonne représentation graphique de la manière dont les données des pixels "descendent" de la grille de pixels d'entrée grossière vers une grille de pixels de sortie plus fine ici.

La mesure dans laquelle l'algorithme s'écarte de l'entrelacement et se rapproche de l'empilement standard dépend de la qualité du sous-échantillonnage de la PSF par les décalages des images d'entrée. En pratique, le comportement de l'algorithme Drizzle est contrôlé par l'utilisation d'un paramètre appelé fraction de pixel, qui représente la quantité de pixels d'entrée qui sont réduits avant d'être mappés sur le plan de l'image de sortie. À une fraction de pixel de 0, l'algorithme Drizzle est équivalent à un entrelacement pur ; à une fraction de pixel de 1, il est équivalent à un empilement standard.

Pour comprendre la différence entre les méthodes d'alignement par drizzle et par interpolation, examinons tout d'abord le fonctionnement de la méthode d'interpolation standard. Les données d'alignement prennent la forme d'une matrice d'homographie 3x3, qui code une transformation linéaire à 8 degrés de liberté d'un ensemble de coordonnées à un autre (c'est-à-dire de chaque image à l'image de référence). Cette transformation est utilisée pour faire correspondre les valeurs de chaque pixel de chaque image d'entrée à l'endroit correct de l'image de sortie, en alignant cette dernière sur l'image de référence. L'alignement réel utilise une méthode d'interpolation, qui peut être sélectionnée dans les options d'alignement. L'interpolation entraîne un étalement de la fonction d'étalement du point, en particulier lors de la mise à l'échelle des images. Elle peut également donner lieu à des artefacts, bien que Siril mette en œuvre un mécanisme pour minimiser ce phénomène.

Le drizzle, en revanche, transforme chaque pixel de l'image d'entrée en une "gouttelette" et la projette à travers une grille sur l'image de référence de sortie. Chaque gouttelette a une taille, et en choisissant une grille de pixels de sortie plus grande mais une taille de gouttelettes plus petite, vous pouvez obtenir une meilleure résolution si votre jeu d'images est sous-échantillonné. (Si votre échantillonnage est correct pour le pouvoir de résolution de votre télescope, le drizzle ne peut pas produire de détails au-delà de la limite de diffraction). Cela se fait au prix d'une augmentation du bruit de l'image : comme chaque gouttelette "peint" une zone plus petite dans l'image de sortie, la couverture moyenne des gouttelettes par pixel de sortie dans la pile finale est réduite.

Notez que le drizzle ne remplace pas l'ensemble du processus d'alignement : vous pouvez toujours utiliser l'alignement global des étoiles, l'alignement 1-2-3 des étoiles, l'alignement des comètes ou toute autre méthode d'alignement de votre choix avant le drizzle : il s'agit uniquement d'une alternative à la méthode d'interpolation utilisée lors de l'application de l'alignement.

Avertissement

Le processus Drizzle consiste à prendre plusieurs images et à les combiner (« drizzler ») dans une image de sortie. L'entrée est l'ensemble des images et de leurs solutions WCS, et la sortie est l'image drizzlée unique. Dans Siril, le processus est divisé en un alignement Drizzle puis un empilement ultérieur, mais l'artefact intermédiaire (l'ensemble des images représentant les images individuelles drizzlées sur la grille de sortie commune mais pas encore empilées) n'a pas de signification en soi. Les images individuelles de la séquence drizzlée peuvent et vont paraître étranges : l'image de référence a souvent un aspect différent des autres, en particulier lors du drizzle de données CFA, en raison de sa propriété particulière d'avoir un décalage nul par rapport à l'image de sortie, et d'autres images peuvent présenter des motifs de moiré. Pas de panique ! Il ne s'agit que d'une étape intermédiaire du processus Drizzle global, et toutes ces bizarreries apparentes seront résolues à l'étape d'empilement.

Utilisation du drizzle

Il y a trois raisons principales pour lesquelles vous pouvez préférer le drizzle à une méthode d'interpolation pour appliquer l'alignement.

  • Amélioration de la résolution Si votre image est significativement sous-échantillonnée, vous pouvez obtenir une amélioration de la résolution avec le drizzle que vous ne pourriez pas obtenir avec l'option d'alignement Interpolation, mise à l'échelle x2.

  • Imagerie couleur Si vos images présentent un motif CFA (c'est-à-dire si vous utilisez une caméra couleur ou un reflex numérique), le drizzle apporte une amélioration significative par rapport au dématriçage par interpolation. Ce procédé est parfois appelé Bayer Drizzle, mais il s'agit en fait exactement du même processus. Lors du drizzle d'une image CFA, la couleur CFA de la gouttelette détermine le canal de l'image de sortie sur lequel elle atterrit, alors que lors du drizzle d'une image mono, toutes les gouttelettes atterrissent dans le (seul) canal de sortie mono. Le drizzle d'images CFA évite les artefacts qui se produisent avec tous les algorithmes de dématriçage, ce qui améliore les caractéristiques du bruit lorsque les images sont fortement étirées. Cela permet d'améliorer la réduction du bruit et la déconvolution pour les séquences CFA drizzle par rapport aux images CFA dématricées et alignées, et améliore l'aspect du fond de ciel.

  • Éviter les artefacts Il est possible d'effectuer un drizzle sur une séquence en utilisant l'échelle = 1, la fraction de pixel = 1 et d'obtenir essentiellement le même résultat qu'en appliquant l'alignement avec l'une des méthodes interpolées. Vous pouvez envisager cette solution si vous constatez des artefacts d'interpolation avec la méthode d'interpolation standard (bien que ces artefacts soient généralement supprimés de manière efficace par la fonction de clamping). Notez que le drizzle peut produire des artefacts différents (voir le titre "Quelques problèmes communs" ci-dessous), mais ceux-ci peuvent être complètement évités en choisissant le noyau de drizzle ou en ayant un plus grand nombre d'images d'entrée, et sont habituellement parfaitement gérés par l'empilement.

Limitations du drizzle

  • Le drizzle est un peu plus lent que l'interpolation, en particulier en utilisant le noyau carré qui est le noyau par défaut. Si vous utilisez du matériel plus ancien ou plus lent, vous préférerez peut-être l'ancienne méthode.

  • Lorsqu'elle est utilisée pour le suréchantillonnage, la méthode Drizzle permet d'améliorer la résolution au prix d'une augmentation du bruit de l'image. Par conséquent, vous pouvez souhaiter collecter plus de temps d'intégration lorsque vous utilisez la technique du Drizzle que lorsque vous utilisez une méthode de suréchantillonnage basée sur l'interpolation.

  • Le problème ci-dessus est particulièrement vrai pour les images CFA. Considérons que seulement 1 pixel sur 2 est vert, et que seulement 1 pixel sur 4 est rouge ou bleu. Par conséquent, pour les canaux rouges ou bleus, le drizzle CFA implique déjà le même niveau de réduction de la couverture des gouttelettes qu'un drizzle à échelle 2 fois supérieure. Si vous augmentez l'échelle en plus, vous avez besoin d'autant de gouttelettes que pour un drizzle à x4 ! C'est pourquoi il est généralement recommandé de faire un drizzle des images CFA à l'échelle = 1.

Comparaison

L'image suivante montre une comparaison entre le drizzle et l'ancienne méthode de suréchantillonnage. L'image est une image Ha extraite d'une session dapteur couleur avec un filtre double bande. À gauche, vous pouvez voir le résultat du script OSC_Extract_HaOIII, qui extrait les données Ha capturées par les pixels rouges dans la matrice de Bayer du capteur couleur en tant qu'image de demi-taille et utilise la mise à l'échelle d'OpenCV avec l'interpolation lanczos4 pour produire une image qui correspond à la taille de l'image OIII.

Sur la droite, vous pouvez voir le résultat du script mis à jour (disponible dans le dépôt siril-scripts), qui extrait les données Ha capturées par les pixels rouges dans la matrice de Bayer de l'OSC sous forme d'une image de demi-taille et la traite avec un drizzle en utilisant l'échelle = 2.0, la fraction de pixel = 0.5, pour produire une image qui correspond à la taille de l'image OIII.

En l'observant à l'échelle de 100 %, il est clair que le stack drizzle restaure une grande partie de la résolution du système optique qui est sous-échantillonnée par les pixels rouges espacés dans la matrice de Bayer : elle semble beaucoup plus nette, et les chiffres le confirment : la fwhm moyenne dans l'image de gauche est de 3,59, tandis que dans l'image de droite, elle est de 3,25.

Comparaison entre l'interpolation, le suréchantillonnage et le drizzle

Comparaison entre l'interpolation, le suréchantillonnage et le drizzle

Flux de travail et interface utilisateur

Flux de travail mono

Calibration

Pour les images mono, rien ne change dans l'onglet de calibration. Calibrez comme vous le feriez normalement.

Alignement
Paramètres de drizzle

Onglet d'alignement montrant les paramètres du drizzle

Drizzle
Échelle

L'échelle définit l'échelle de l'image de sortie du drizzle par rapport à l'image d'entrée. Une échelle typique pour une image mono sous-échantillonnée est de 2,0. Cela signifie que l'image d'entrée sera appliquée sur une grille de pixels de sortie dont la résolution est deux fois plus élevée. (Si votre image de référence en entrée est de 1024 x 512 pixels, votre image de sortie sera de 2048 x 1024 pixels). Remarque : étant donné que l'image représente la même zone du ciel, bien qu'il y ait deux fois plus de pixels le long de chaque axe dans l'image de sortie, chaque pixel de sortie est en fait moitié moins large et moitié moins haut.

Astuce

Plus l'échelle est grande, plus l'image de sortie est clairsemée et moins il y a de pixels empilés dans chaque pixel de sortie. Il en résulte une image plus bruitée : le gain de résolution apporté par le drizzle se fait au détriment du bruit. Ce phénomène doit être atténué par l'utilisation d'un temps d'intégration global plus important que celui dont vous auriez besoin sans l'application de la méthode drizzle à une plus grande résolution.

Fraction de pixel

La fraction de pixel définit la taille de la « gouttelette » prise dans la grille d'entrée. Considérons une échelle de drizzle de 2,0 : les pixels de sortie étant deux fois moins larges et deux fois moins hauts, cela signifie que pour que chaque « gouttelette » d'un pixel d'entrée ait la même taille qu'un pixel de sortie, elle doit être réduite de moitié par rapport aux dimensions linéaires. Cela correspond à une fraction de pixel de 0,5. En règle générale, la fraction de pixel doit être à peu près égale à la réciproque de l'échelle du drizzle (avec certains noyaux, il est utile de la fixer un peu plus haut que cela, afin de réduire le nombre de pixels qui reçoivent une entrée nulle de la part des gouttelettes).

Il est possible d'expérimenter avec la fraction de pixel : une fraction de pixel plus importante signifie que chaque gouttelette d'entrée influencera plus de pixels de sortie. À l'inverse, une fraction de pixels plus petite signifie que chaque gouttelette d'entrée influencera moins de pixels de sortie. Le noyau "point" est un cas particulier où la fraction de pixel est nulle (et avec ce noyau sélectionné, le réglage de la fraction de pixel n'a pas d'effet).

Modèle de la gouttelette

L'implémentation du drizzle de Siril fournit plusieurs modèles de gouttelettes :

  • Carré. La gouttelette est modélisée comme une gouttelette carrée alignée exactement sur le pixel d'entrée. Elle est correctement mappée dans l'image de référence en sortie, et fonctionne bien à toute échelle et fraction de pixel. C'est le noyau par défaut.

    Astuce

    Le noyau Carré préserve mathématiquement le flux par construction : le flux de chaque pixel d'entrée est distribué dans les pixels de sortie exactement proportionnellement au chevauchement de surface. Le nombre total de coups est préservé à l'identique. Cela le rend à la fois robuste et idéal pour les applications nécessitant une conservation stricte de la brillance de surface (par exemple les structures diffuses ou les sources étendues).

  • Point. Ceci modélise la gouttelette comme un point au centre du pixel d'entrée. C'est la limite du noyau carré avec une fraction de pixel très petite. Cela produira le bruit corrélé le plus faible, mais est sujet à laisser des trous à moins de disposer d'un très grand nombre d'images bien ditherées. Si vous trouvez des trous ou des artefacts dans votre empilement final, utilisez plutôt le noyau Carré. Ce noyau est très rapide.

  • Turbo. Il s'agit d'une simplification du noyau carré. Il suppose que la rotation entre la référence d'entrée et la référence de sortie est négligeable. Il en résulte un calcul beaucoup plus rapide, mais approximatif. C'est un noyau « rapide et sale » conçu à l'origine pour générer des produits intermédiaires dans le flux de travail du HST, mais il peut être utile en imagerie lucky en raison de sa rapidité par rapport à Carré.

  • Gaussien. Ceci modélise la gouttelette comme une gaussienne centrée sur le centre du pixel d'entrée, avec une FWHM égale à pixfrac. Les gouttelettes du modèle gaussien sont rondes et sont recommandées lorsqu'une meilleure préservation des PSF (formes des étoiles) est importante.

    Astuce

    [Avila2015] recommande le noyau gaussien pour les applications impliquant la photométrie de sources ponctuelles. Bien qu'il ne préserve pas mathématiquement le flux, le noyau gaussien réduit l'effet de blocs typique des noyaux carrés (et évite le ringing haute fréquence caractéristique des noyaux Lanczos), produisant des PSF lisses à pic central plus proches des formes analytiques utilisées en photométrie. Bien que les gaussiennes ne préservent pas parfaitement le flux, le compromis se traduit par des PSF au comportement bien meilleur, ce qui est plus important pour extraire une photométrie stellaire précise. Cela peut également être plus esthétique dans une image finale.

  • Lanczos2 et Lanczos3. Ces noyaux modélisent la gouttelette comme une fonction de Lanczos centrée sur le centre du pixel d'entrée.

    Avertissement

    Les noyaux Lanczos sont spécialement conçus pour rééchantillonner une image d'un système de coordonnées mondiales (WCS) vers un autre à la même échelle. Ils ne devraient être utilisés qu'avec scale == pixfrac == 1.0.

    Les noyaux Lanczos constituent une bonne option pour l'alignement d'une image unique à l'échelle native : Lanczos3 produit une FWHM moyenne plus resserrée que tout autre noyau ou interpolation OpenCV, mais il est nettement plus lent que les autres noyaux.

Pondération initiale des pixels

Lorsqu'une gouttelette atterrit sur la grille des pixels de sortie, elle peut couvrir plus d'un pixel de sortie. En fait, un pixel de sortie peut être couvert par plusieurs gouttelettes, par une fraction seulement d'une gouttelette ou même par aucune gouttelette. La contribution de chaque pixel d'entrée peut être pondérée par le master flat, de sorte que les pixels provenant de zones ayant un Rapport Signal / Bruit plus élevé (moins de vignettage) soient plus fortement pondérés. À moins que vous ne disposiez de flats particuliers, cela ne fait qu'une très petite différence.

Pour activer le master flat, cochez la case Inclure le master flat dans la pondération initiale des pixels.

Avertissement

Le master flat doit être défini dans l'onglet Calibration !

C'est parti pour le drizzle !

Une fois toutes les options définies, cliquez sur le bouton Aligner.

Empilement

Vous pouvez maintenant empiler votre séquence en drizzle comme d'habitude. Notez que pour certaines combinaisons d'échelle de drizzle et de taille de gouttelettes, certains modèles de rejet fonctionneront mieux que d'autres. En particulier, si vous avez un nombre important de pixels "zéro" ou nuls, il y aura moins de valeurs à utiliser pour le rejet. MAD peut être une bonne solution à essayer si votre méthode de rejet habituelle ne fonctionne pas.

Le GIF ci-dessous montre une comparaison d'un stack de 37 images, dans un cas avec alignement appliqué par interpolation et dans l'autre cas avec alignement appliqué à l'aide de drizzle. Il est clair que le stack réalisé avec les données "drizzle" est nettement plus nette que celles utilisant les données alignées par interpolation.

Recadrage de deux images empilées, montrant une amélioration significative de la netteté dans l'empilement avec drizzle.

Comparaison de l'alignement appliqué avec le drizzle et avec l'interpolation. Cliquez sur l'image pour l'agrandir.

Flux de travail CFA

Calibration CFA

Pour les images couleur, décochez la case Dématricer avant sauvegarde. Cela représente un changement par rapport aux flux de travail précédents, mais pour le drizzle, il est essentiel que le motif CFA soit préservé dans la séquence d'entrée.

Alignement CFA avec drizzling

Vous pouvez utiliser le drizzle directement après un alignement global ou en appliquant un alignement existant pour toutes les autres méthodes d'alignement qui n'exportent pas directement les images.

Échelle CFA

L'échelle définit l'échelle de l'image de sortie du drizzle par rapport à l'image d'entrée. Dans les images des caméras couleur, chaque pixel n'enregistre qu'une seule couleur : rouge, vert ou bleu. Une matrice de filtres de couleur (CFA) est appliquée aux pixels et détermine quels pixels répondent aux longueurs d'onde rouges, vertes et bleues. Ainsi, tous les pixels sont répartis de manière éparse par rapport à un capteur mono, dans lequel tous les pixels sont sensibles à la lumière qui passe à travers le filtre. Dans les cas Bayer CFA et CFA X-Trans, les pixels rouges et bleus sont particulièrement peu nombreux dans les images d'entrée. Par conséquent, si l'on augmente l'échelle du drizzle au-delà de 1,0, il faudra encore plus d'images pour obtenir une couverture suffisante du drizzle et atteindre un niveau de bruit acceptable.

Pour une application typique de capteur couleur où le seeing correspond bien à l'échantillonnage nominal du capteur, il est recommandé d'appliquer le drizzle CFA avec échelle = 1.0 et fraction de pixel = 1.0. Cela rétablira la résolution dans chaque canal de couleur (qui est effectivement sous-échantillonné en raison de l'espacement des pixels colorés) et évitera les artefacts de dématriçage conventionnels. Si vous souhaitez également suréchantillonner l'image en utilisant l'échelle > 1.0, sachez que les pixels disponibles dans chaque canal deviendront encore plus rares et que vous aurez besoin d'encore plus de données pour assurer une couverture adéquate et contenir le bruit à un niveau acceptable.

Astuce

Pour le drizzle CFA, commencez par l'échelle = fraction de pixel = 1,0.

Fraction de pixel CFA

La fraction de pixel définit la taille de la gouttelette prélevée sur la grille d'entrée. Les mêmes commentaires s'appliquent ici que ceux décrits ci-dessus pour le flux de travail mono.

Modèle de gouttelettes CFA

Le choix des noyaux de drizzle est le même pour le drizzle CFA que pour le drizzle mono. Notez que les noyaux qui sont particulièrement enclins à générer des pixels nuls peuvent s'avérer délicats lorsqu'ils sont utilisés pour le drizzle CFA. Si vous avez des dizaines de milliers d'images comme dans une vidéo planétaire, turbo peut fonctionner correctement (et sera rapide !), mais pour des séquences de ciel profond avec un plus petit nombre d'images, il est recommandé de s'en tenir aux noyaux carré ou Gaussien (et gardez à l'esprit, comme mentionné ci-dessus, que Gaussian ne préserve pas le flux, donc si vous avez l'intention de faire quoi que ce soit impliquant des techniques photométriques, carré est préférable).

Pondération initiale des pixels CFA

Comme pour le drizzle mono, un master flat peut être spécifié. Pour activer le master flat, cochez la case Inclure le master flatdans la pondération initiale des pixels.

Avertissement

Le master flat doit être défini dans l'onglet Calibration !

C'est parti pour le Bayer Drizzle !

Une fois toutes les options définies, cliquez sur le bouton Aligner.

Empilez vos données CFA

Vous pouvez maintenant empiler votre séquence drizzle comme d'habitude, en notant les mêmes commentaires sur le rejet que pour le drizzle mono (ceux-ci peuvent être plus apparents avec le drizzle CFA si vous avez une couverture inadéquate pour soutenir certains des algorithmes de rejet des valeurs aberrantes, en raison de la plus grande rareté des pixels d'entrée dans chaque canal).

Astuce

Si vous utilisez le drizzle pour améliorer la résolution de vos données CFA, il est possible que vous soyez déçu lorsque vous comparez les résultats avec des images dématricées empilées. Il y a généralement un gain, mais il peut être marginal (par exemple, une amélioration de quelques pour cent de la fwhm) et ne sera généralement pas aussi impressionnant que le gain en résolution obtenu avec le drizzle des données mono sous-échantillonnées.

La raison en est que le dématriçage rétablit déjà une partie de la résolution perdue. Les divers algorithmes de dématriçage fonctionnent différemment, mais ils s'appuient généralement tous sur les principes de corrélation spatiale et spectrale pour déduire une partie de la résolution manquante dans un canal sur la base des informations obtenues dans les autres canaux. [Losson2010]

La véritable raison d'appliquer un Drizzle CFA est que le résultat a un bruit plus propre. Il semble moins "granuleux" (c'est-à-dire qu'il n'a pas la structure que l'on peut voir dans l'arrière-plan d'un empilement CFA dématricé typique) et est donc plus facile à réduire à l'aide de techniques de réduction du bruit et donne des données plus cohérentes pour les applications photométriques telles que l'étalonnage des couleurs. Lorsqu'on l'étire fortement pour faire ressortir des éléments peu visibles juste au-dessus du niveau du fond de ciel, le fond de ciel obtenu parait plus naturel.

Comparaison du Bayer Drizzle

L'animation ci-dessous montre une comparaison entre le drizzle CFA avec deux fractions de pixels différentes et deux des algorithmes classiques de dématriçage.

Comparaison des algorithmes VNG, RCD et du drizzle CFA avec deux fractions de pixels différentes

Comparaison de l'algorithme CFA drizzle (appelé ici Bayer Drizzle) avec les algorithmes classiques de dématriçage

  • VNG est fourni comme référence de base : notez l'artefact de couleur autour des étoiles les plus brillantes.

  • RCD est très efficace pour les objets ronds tels que les étoiles.

  • Bayer Drizzle 1.0 donne des résultats très proches de RCD mais avec un meilleur bruit et un meilleur fond de ciel

  • Bayer Drizzle 0.5 offre une meilleure résolution au prix d'un bruit plus important. Le compromis que la fraction de pixel permet d'obtenir entre la résolution et le bruit est évident. Avec une fraction de pixels plus petite, le drizzle CFA a besoin de plus de données pour obtenir la même performance en matière de bruit.

Quelques problèmes courants

Astuce

NE PANIQUEZ PAS — les résultats suivants peuvent sembler un peu bizarres lorsque vous regardez une image drizzle individuelle, mais ce n'est pas un bug — l'algorithme fonctionne comme prévu. Dans la plupart des cas, cela se résout naturellement lors de l'empilement. Dans les autres cas, ils peuvent être résolus en modifiant les paramètres du drizzle ou en incluant plus d'images.

Motifs moirés

En raison de la nature de l'algorithme de drizzle, lors de la mise à l'échelle, certains pixels de sortie peuvent ne pas recevoir de valeur. Ces pixels sont appelés "pixels nuls" et ont une valeur nulle. Certains noyaux compensent ce phénomène en limitant la fraction de pixel, de sorte que tous les pixels de sortie reçoivent une entrée, mais d'autres ne le font pas.

Les pixels de sortie qui ne reçoivent pas de valeurs sont noirs : comme ils se produisent généralement dans des motifs basés sur la géométrie de la transformation de l'image d'entrée, ils ressemblent typiquement à des motifs moirés, comme illustré ci-dessous :

Représentation des motifs des pixels à pondération zéro avec le noyau turbo

Représentation des motifs résultant de pixels nuls dans une image drizzle

Ne vous inquiétez pas pour cela ! Siril ignore les pixels qui sont exactement à 0 dans l'empilement, donc tant que vous avez suffisamment d'images en entrée et que les positions des pixels sont convenablement dispersées, tous les pixels recevront une couverture de suffisamment de pixels et la pile de sortie sera correcte. Cependant, si vous empilez avec un nombre inférieur d'images en entrée et que cela pose des problèmes, essayez un autre noyau de drizzle. Voici précisément la même image drizzle avec exactement la même échelle et la même fraction de pixel, mais avec le noyau carré au lieu du noyau turbo. Le résultat est différent et les motifs ne sont plus évidents.

L'utilisation du noyau carré permet d'obtenir une image sans motifs étranges

L'utilisation d'un noyau de drizzle différent permet d'éliminer les motifs de pixels nuls

Stacks de patchs

Lors de l'empilement de données "drizzle", si le nombre de pixels nuls est trop élevé, le résultat final peut présenter un aspect irrégulier :

Montrant un résultat en forme de patch dû à un trop grand nombre de pixels nuls

Aspect disparate typique d'un empilement déformé avec trop de pixels nuls / pas assez d'images

Cela se produit généralement avec les noyaux ponctuels, turbo ou Lanczos. Vous pouvez y remédier en utilisant les noyaux carrés ou gaussiens ou en ayant plus d'images d'entrée.

Commandes

Ligne de commande Siril

seqapplyreg sequencename [-prefix=] [-scale=] [-layer=] [-framing=]
seqapplyreg sequencename ... [-interp=] [-noclamp]
seqapplyreg sequencename ... [-drizzle [-pixfrac=] [-kernel=] [-flat=]]
seqapplyreg sequencename ... [-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]] [-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Applique des transformations géométriques aux images de la séquence donnée en argument afin qu'elles puissent être superposées à l'image de référence, en utilisant les données d'alignement précédemment calculées (voir REGISTER).
Le nom de la séquence de sortie commence par le préfixe "r_" sauf indication contraire spécifié par l'option -prefix=.
L'alignement est réalisé sur la première couche pour laquelle les données existe pour une image RVB sauf si spécifié par l'option -layer= (0, 1 ou 2 pour R, V et B respectivement).
Les images de sortie peuvent être redimensionnées en passant un argument -scale= avec une valeur flottante comprise entre 0.1 et 3.

Le cadrage automatique de la séquence de sortie peut être spécifié en utilisant le mot-clé -framing= suivi de l'une des méthodes de la liste { current | min | max | cog } :
-framing=max (zone de délimitation) projettera chaque image et calculera son décalage par rapport à l'image de référence. La séquence résultante peut ensuite être empilée en utilisant l'option -maximize de la commande STACK, qui créera l'image complète englobant toutes les images de la séquence.
-framing=min (zone commune) recadre chaque image dans la zone qu'elle a en commun avec toutes les images de la séquence.
-framing=cog détermine la meilleur position de cadrage comme centre de gravité (cog) de toutes les images.

Option d’interpolation de l'image :
Par défaut, les transformations sont appliquées pour aligner les images à l'aide de l'interpolation.
La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp.

Options de drizzle pour les images :
Sinon, les images peuvent être exportées à l'aide de l'algorithme HST drizzle en passant l'argument -drizzle qui peut prendre les options supplémentaires suivantes :
-pixfrac= défini la fraction de pixel (par défaut =1.0).
L'argument -kernel= défini le noyau de drizzle et doit être suivi par l'un des arguments suivant : point, turbo, square, gaussian, lanczos2 or lanczos3. La valeur par défaut est square.
L'argument -flat= spécifie un flat maître pour pondérer les pixels d'entrée drizzlés (la valeur par défaut est sans flat).

Filtrage des images :
Les images qui vont être aligner peuvent être sélectionnées en utilisant des filtres, tel que celles sélectionné ou avec la meilleur FWHM, avec l'une des option -filter-*.


Links: registerstack

Notez que l'introduction du véritable drizzle a nécessité quelques modifications des arguments de commande existants, par souci de clarté.

register et seqapplyreg ont un nouvel argument -drizzle qui, avec quelques arguments connexes, active le vrai drizzle.

Références
[Losson2010]

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

[FruchterHook1997]

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

[Avila2015]

R. J. Avila, A. Koekemoer, J. Mack, A. Fruchter. (2015) Optimizing pixfrac in Astrodrizzle: An Example from the Hubble Frontier Fields. https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/wfc3/documentation/instrument-science-reports-isrs/_documents/2015/WFC3-2015-04.pdf

Empilement

La dernière étape de prétraitement à effectuer avec Siril consiste à empiler les images. L'empilement d'images est une technique utilisée en astrophotographie pour améliorer la qualité et le détail d'une image en combinant plusieurs photographies en une seule image composite. Le processus consiste à prendre plusieurs images du même objet, puis à les aligner et à en faire la moyenne afin de réduire le bruit et d'augmenter le rapport signal/bruit. Il en résulte une image finale moins bruitée, plus détaillée et avec une plus grande plage dynamique qu'une simple exposition.

Méthodes d'empilement

Empilement par somme

Il s'agit de l'algorithme le plus simple : chaque pixel de la pile est additionné. L'augmentation du rapport signal/bruit (RSB) est proportionnelle à \(\sqrt{N}\), où \(N\) est le nombre d'images. En raison de l'absence de normalisation et de rejet, cette méthode ne doit être utilisée que pour le traitement des planètes.

Pour les images d'entrée à 8 ou 16 bits par canal, la somme est effectuée dans un entier de 64 bits avant d'être normalisée à la valeur maximale du pixel et sauvegardée comme un entier non signé de 16 bits ou dans un nombre à virgule flottante de 32 bits.

Cette méthode d'empilement devrait être utilisée pour les images d'entrée de 8 bits, car elle augmente la dynamique des images tout en les empilant, ce qui permet de discerner les caractéristiques. L'empilement avec une méthode moyenne ou médiane d'une telle séquence ne ferait que diminuer le bruit mais n'améliorerait pas la dynamique de l'image, le résultat étant toujours d'une profondeur de 8 bits.

Empilement par moyenne avec rejet des pixels déviants

Cette méthode d'empilement calcule une moyenne des pixels d'une pile après avoir exclu les pixels déviants et une effectue une normalisation facultative des images par rapport à l'image de référence. Comme pour l'empilement par somme, l'amélioration du rapport signal/bruit est proportionnelle à \(\sqrt{N}\). Il existe plusieurs façons de normaliser les images et plusieurs façons de détecter et de remplacer ou d'exclure les pixels déviants, comme expliqué ci-dessous.

Avertissement

Certains systèmes d'exploitation limitent le nombre d'images pouvant être ouvertes simultanément, ce qui est nécessaire pour les méthodes d'emnepilement par médiane ou moyen. Pour Windows, la limite est de 2048 images. Si vous avez beaucoup d'images, vous devez utiliser un autre type de séquence, décrit ici.

dialogue

Panneau d'empilement par rejet de pixel

Méthodes de rejet
  • Percentile Clipping : C'est un algorithme de rejet de pixels en une étape, idéal pour les petits ensemble d'images (jusqu'à 6 images).

  • Sigma Clipping : Il s'agit d'un algorithme itératif qui rejette les pixels dont la distance par rapport à la médiane est supérieure à deux valeurs données en unités sigma (\(sigma\) low, \(\sigma\) high).

  • MAD Clipping : Il s'agit d'un algorithme itératif qui fonctionne comme le Sigma Clipping, sauf que l'estimateur utilisé est l'écart absolu médian (MAD). Cet algorithme est généralement utilisé pour le traitement d'images infrarouges bruitées.

  • Sigma Clipping Médian : Il s'agit du même algorithme que le Sigma Clipping, sauf que les pixels rejetés sont remplacés par la valeur médiane de la pile.

  • Winsorized Sigma Clipping : Cette méthode est très similaire à la méthode Sigma Clipping, sauf qu'elle est censée être plus robuste pour la détection des valeurs aberrantes, voir le travail de Huber [Peter2009].

  • Test de déviation extrême généralisé de Student [Rosner1983] : Il s'agit d'une généralisation du test de Grubbs qui est utilisé pour détecter une ou plusieurs valeurs aberrantes dans un ensemble de données univariées qui suit une distribution approximativement normale. Cet algorithme montre d'excellentes performances avec un grand ensemble de données de plus de 50 images.

  • Linear Fit Clipping [ConejeroPI] : Il ajuste la meilleure ligne droite (\(y=ax+b\)) de la pile de pixels et rejette les valeurs aberrantes. Cet algorithme fonctionne très bien avec les grandes piles et les images contenant des gradients de ciel avec des distributions spatiales et des orientations différentes.

Notez que pour les images CFA drizzle, vous pouvez avoir des difficultés à obtenir un rejet satisfaisant dans les canaux rouge et bleu avec certaines méthodes. Dans ce cas, la méthode de clipping MAD semble être la plus efficace.

Carte de rejet

L'option Créer cartes de rejet calcule et crée des cartes de rejet pendant l'empilement. Ce sont des images montrant combien d'images ont été rejetées pour chaque pixel de l'image résultat, divisé par le nombre d'images empilées. Si Fusionner L+H est coché, Siril ne crée qu'une seule carte de rejet qui sera la somme des cartes basse et haute.

carte de rejet

Exemple de carte de rejet (L+H). On voit très clairement la trace d'un satellite qui a été retiré.

Filtrage/poids des images

La pondération permet d'attribuer un poids statistique à chaque image. Ainsi, les images considérées comme les meilleures contribueront davantage que celles considérées comme les moins bonnes. Quatre méthodes de pondération sont disponibles :

  • Nombre d'étoiles donne des poids aux images individuelles en fonction du nombre d'étoiles calculé lors de l'étape d'alignement.

  • Weighted FWHM pondère les images individuelles sur la base de la wFWHM calculée lors de l'étape d'alignement. Il s'agit d'une FWHM pondérée par le nombre d'étoiles dans l'image. Pour une même mesure de FWHM, une image avec plus d'étoiles aura une meilleure wFWHM qu'une image avec moins d'étoiles.

  • Bruit pondère les images individuelles en fonction des valeurs de bruit de fond.

  • Nombre d'images pondère les images individuelles en fonction de leur temps d'intégration.

Assemblage d'images

Disponible depuis Siril 1.3, ce sous-menu permet d'effectuer un assemblage plus fluide entre des images avec peu de chevauchement. C'est la première étape de l'assemblage de mosaïques que nous prévoyons de développer davantage dans les prochaines versions.

Assemblage d'empilements

Panneau d'assemblage d'empilements

  • Chevauchement des contours applique un masque de lissage à chaque image lors de l'empilement. Le lissage s'effectue sur une distance de X pixels, X correspondant à la valeur que vous définissez via cette interface. Les masques sont mis en cache dans le sous-dossier ./cache.

empilement sans chevauchement

Effet de chevauchement des contours appliqué à une mosaïque 3x2 (négatif). Images par G. Attard

  • Normalisation sur les chevauchements calculera les facteurs de normalisation sur les zones de chevauchement des images plutôt que sur les images entières. Ceci est utile lorsque les images ont peu de chevauchement et que la nature des données dans chaque tuile est très différente d'une image à l'autre (certaines images étant principalement de la nébulosité et d'autres principalement du ciel noir). Comme ce calcul est plus long que la normalisation classique, vous devriez d'abord essayer sans cocher cette option. Cette fonctionnalité est destinée à l'assemblage de tuiles de mosaïque empilées, elle générera donc un avertissement si vous essayez de la calculer pour une longue séquence (c'est-à-dire pour des subs acquis avec un télescope intelligent en mode mosaïque). Elle n'est disponible que si maximiser le cadrage est activé.

Assemblage normalisation global
Assemblage normalisation chevauchement

Normalisation globale vs par chevauchement sur une mosaïque 2x1. Images gracieuseté de D. Huber

Théorie

La normalisation sur les chevauchements a été dérivée de l'algorithme de compensation de gain de [Brown2007]. La description complète des modifications est décrite dans la documentation des contributeurs.

Empilement médian

Cette méthode est principalement utilisée pour l'empilement des darks/flats/offsets. La valeur médiane des pixels de la pile est calculée pour chaque pixel.

L'augmentation du rapport signal/bruit est proportionnelle à \(0.8\sqrt{N}\) et est donc moins bonne que l'empilement par moyenne qui est généralement préféré.

Empilement par pixel maximum

Cet algorithme est principalement utilisé pour construire des images de traînées d'étoiles à longue exposition. Les pixels de l'image sont remplacés par des pixels aux mêmes coordonnées si l'intensité est plus grande.

Empilement du pixel minimum

Cet algorithme est principalement utilisé pour recadrer une séquence en supprimant les bordures noires. Les pixels de l'image sont remplacés par des pixels aux mêmes coordonnées si l'intensité est plus faible.

Méthodes de normalisation en entrée

La normalisation ajuste les niveaux de chaque image par rapport à l'image de référence. Cette opération est particulièrement utile pour l'empilement par moyenne avec rejet des pixels déviants, car il n'est pas très utile de rejeter des pixels si les images présentent des différences de niveau. Ces différences peuvent être dues à la nébulosité, au gradient de lumière causé par la lune ou les lumières de la ville, à la variation de la température du capteur, etc.

Cela tend à améliorer le rapport signal/bruit et c'est donc l'option utilisée par défaut avec la normalisation additive.

dialogue

Panneau de normalisation des entrées d'empilement

Si l'un de ces cinq éléments est sélectionné, un processus de normalisation sera appliqué à toutes les images d'entrée avant l'empilement.

  • La normalisation fait correspondre l'arrière-plan moyen de toutes les images d'entrée, et la normalisation est appliquée par multiplication ou addition. Il faut garder à l'esprit que les deux processus aboutissent généralement à des résultats similaires, mais que la normalisation multiplicative est préférable pour les images qui seront utilisées pour la multiplication ou la division en tant qu'images flats.

  • La mise à l'échelle gère la dispersion en pondérant toutes les images. Cette opération tend à améliorer le rapport signal/bruit et par conséquent cette option est active par défaut avec a normalisation additive.

Normalisation

Opération

Cas pratique

Aucun

Aucune normalisation n'est appliquée.

images dark/bias

Additive

Les valeurs moyennes du fond de ciel seront alignées par l'application d'opérations additives.

Multiplicative

La division sera utilisée pour aligner les valeurs moyennes du fond de ciel.

images flat

Additive + Mise à l'échelle

En combinaison avec la correspondance additive du fond de ciel, les images seront mises à l'échelle pour obtenir la correspondance de la dispersion.

Images cible

Multiplicative + Mise à l'échelle

En combinaison avec la correspondance du fond de ciel par division, les images seront mises à l'échelle pour obtenir la correspondance de la dispersion.

Note

Les masters offset et dark ne doivent pas être traités avec la normalisation. Cependant, la normalisation multiplicative est recommandée pour les images flats.

Gardez à l'esprit que les deux processus aboutissent généralement à des résultats similaires, mais que la normalisation multiplicative est préférable pour les images qui seront utilisées pour la multiplication ou la division en tant qu'images flats.

Comme l'étape de calcul de la normalisation est généralement longue, puisqu'elle nécessite de déterminer toutes les statistiques de l'image, les résultats sont stockés dans le fichier seq. De cette façon, si l'utilisateur veut faire un autre empilement en changeant les paramètres de rejet, il sera exécuté plus rapidement. L'option Recalculer permet de forcer le recalcul de la normalisation.

Par défaut, Siril utilise des estimateurs IKSS de la position et de l'échelle pour calculer la normalisation. Pour les longues séquences, le calcul de ces estimateurs peut être assez intensif. Pour de tels cas, vous pouvez opter pour des estimateurs plus rapides (basés sur la médiane et l'écart absolu à la médiane) avec l'option Normalisation plus rapide. Bien qu'ils soient moins résistants aux valeurs aberrantes dans chaque image, ils peuvent tout de même donner un résultat satisfaisant par rapport à l'absence de normalisation.

Rejet des images

Il est également possible de rejeter un certain nombre d'images afin de ne sélectionner que les meilleures. Cela peut être très utile pour les techniques Lucky DSO où le nombre d'images dans une séquence est très élevé. On peut choisir entre % et k-\(\sigma\) pour soit conserver un pourcentage donné d'images, soit calculer le seuil admissible en utilisant le rejet k-\(\sigma\).

dialogue

Panneau de rejet des images de l'empilement

Plusieurs critères sont disponibles :

  • toutes : toutes les images de la séquence sont utilisées pour l'empilement.

  • sélectionnées : utilise seulement les images qui n'ont pas été désélectionnées dans la séquence.

  • FWHM : images avec le meilleur calcul FWHM (alignement basé sur les étoiles seulement).

  • FWHM pondérée : c'est une amélioration de la simple FWHM. Cela permet d'exclure plus d'images suspectes en utilisant le nombre d'étoiles détectées par rapport à l'image de référence (alignement basé sur les étoiles seulement).

  • rondeur : images avec la meilleure rondeur en étoile (alignement basé sur les étoiles seulement).

  • fond de ciel : images avec les valeurs de fond du ciel les plus faibles (alignement basé sur les étoiles seulement).

  • nb étoiles : images avec le meilleur nombres d'étoiles détectées alignement basé sur les étoiles seulement).

  • qualité : images avec les meilleurs qualités (alignements planétaires DFT ou Kombat).

Résultat d'empilement

  • Si l'option Normalisation en sortie est cochée, l'image finale sera normalisée dans l'intervalle [0, 1] si vous travaillez en précision 32 bits, ou dans l'intervalle [0, 65535] sinon.

    Avertissement

    Cette option ne doit pas être cochée pour l'empilement des maîtres.

  • Si l'option Égalisation RVB est cochée, les canaux de l'image finale seront égalisés (uniquement pour les images en couleur).

  • Si Maximiser le cadrage est coché, l'image de sortie englobera toutes les images. Notez que cette option est forcée si les images ont des tailles différentes.

  • Si Interpolation, mise à l'échelle x2 est cochée, les images seront suréchantillonnées pendant l'empilement. Notez que cette option n'est pas toujours disponible.

  • Sélectionner Forcer 32 bits force l'image empilée à être enregistrée en tant qu'image flottante, quelle que soit la profondeur de bits définie dans les Préférences.

  • Le résultat de l'empilement est enregistré sous le nom donné dans le champ texte. Il est possible d'utiliser l'interprétation d'entêtes pour construire le nom de fichier. Cocher la case Écraser permet au nouveau fichier créé d'écraser l'ancien s'il existe. Si ce dernier n'est pas coché mais qu'une image portant le même nom existe déjà, alors aucun nouveau fichier n'est créé.

Références

[Peter2009]

Peter J. Huber and E. Ronchetti (2009), Robust Statistics, 2nd Ed., Wiley

[ConejeroPI]

Juan Conejero, ImageIntegration, Tutoriel Pixinsight

[Rosner1983]

Rosner, B. (1983). Percentage points for a generalized ESD many-outlier procedure. Technometrics, 25(2), 165-172.

[Brown2007]

Brown, M., & Lowe, D. G. (2007). Automatic panoramic image stitching using invariant features. International journal of computer vision, 74, 59-73.

Traitement

Cette section vous présente les différentes étapes du traitement de vos images. Le menu déroulant est accessible depuis la barre d'en-tête à l'aide du bouton Traitement de l'image. Les outils sont regroupés dans les menus et sous-menus, et dans cette documentation également, par thème.

menu traitement

Menu traitement d'image

Étirement de l'image

Les images sont stockées sous forme de valeurs de pixels qui proviennent de l'appareil photo selon une loi quasi-linéaire, ce qui signifie que pour les zones du ciel qui ne présentent aucune caractéristique visible, la valeur du pixel sera proche de zéro, mais pour les objets brillants comme les étoiles, elle sera proche d'une valeur maximale en fonction de l'exposition et du gain. Entre les deux, si une nébuleuse a une magnitude de surface égale à la moitié de celle d'une étoile, elle aura des valeurs de pixels égales à la moitié de celles de l'étoile, et ainsi de suite. C'est ce que nous appelons le mode linéaire des pixels.

L'œil humain ne voit pas les photons de cette manière. Il amplifie les zones sombres, de sorte qu'un objet dix fois moins lumineux qu'un autre semble deux fois moins lumineux. Pour les images d'astronomie, nous affichons généralement les images avec une mise à l'échelle similaire des valeurs de pixels (voir les modes d'affichage de l'interface graphique).

Mais ce n'est qu'une astuce d'affichage, utilisant une fonction de transfert d'écran, pour rendre les valeurs de pixels de l'image intacte en images de meilleure qualité.

L'étirement d'image consiste à faire quelque chose de similaire, mais en modifiant les valeurs des pixels des images au lieu de simplement modifier leur rendu. Siril dispose de trois outils principaux pour y parvenir.

Transformation asinh

La transformation asinh, ou sinus hyperbolique inverse, modifie les valeurs des pixels de l'image d'une manière similaire à ce que l'on peut voir avec la fonction asinh de mise à l'échelle des pixels de l'écran, qui est paramétrée par les curseurs de coupure des valeurs basses et hautes. Ici, les paramètres sont le facteur d'étirement et la valeur du point noir.

Asinh sur une image mono

Boite de dialogue de la transformation asinh

Pour les images monochromes, la valeurs des pixels est modifiée en utilisant la fonction suivante :

\[\text{pixel} = \frac{(\text{original} - \text{blackpoint})\times\text{asinh}(\text{original}\times\text{stretch})}{\text{original}\times\text{asinh}(\text{stretch})}\]

Pour les images en couleur, la fonction devient :

\[\text{pixel} = \frac{(\text{original} - \text{blackpoint})\times\text{asinh}(\text{rgb}\_\text{original}\times\text{stretch})}{\text{rgb}\_\text{original}\times\text{asinh}(\text{stretch})}\]

où rgb_original est calculé en utilisant les valeurs des pixels des trois canaux.

Il est également possible de sélectionner un mode de clipping.

Théorie

Comme rgb_original est une moyenne des 3 canaux, les valeurs d'un ou deux canaux seront supérieures à rgb_original et peuvent donc s'écrêter. Cela peut provoquer des artefacts de couleur lorsque des régions claires et fortement colorées sont étirées. Afin d'éviter ce problème, l'algorithme d'écrêtage par mélange RVB a été développé par les auteurs de l'outil original GHSastro : les mêmes algorithmes sont disponibles dans l'implémentation de Siril, et il s'agit du mode d'écrêtage par défaut pour les étirements nécessitant une gestion de l'écrêtage. Les valeurs \((r, g, b)\) sont d'abord étirées sur la base de la valeur de luminance rgb_original pour donner \((r', g', b')\). Ensuite, les valeurs \((r, g, b)\) originales sont étirées indépendamment pour donner \((r'', g'', b'')\). Enfin, on identifie la plus grande valeur de \(k\) telle que

\(k \times r' + ( 1 - k ) \times r'' ≤ 1\);

\(k \times g' + ( 1 - k ) \times g'' ≤ 1\);

et

\(k \times b' + ( 1 - k ) \times b'' ≤ 1\)

Les valeurs transformées sont ensuite calculées comme suit

\(( k \times r' + ( 1 - k ) \times r'', k \times g' + ( 1 - k ) \times g'', k \times b' + ( 1 - k ) \times b'')\)

Cet algorithme d'écrêtage des mélanges RVB est également utilisé pour les transformations d'étirement hyperbolique généralisé décrites ci-dessous.

D'autres choix d'algorithme d'écrêtage sont disponibles :

  • Écrêter - ce mode d'écrêtage laisse simplement s'écrêter toute composante de couleur qui s'écrête, mais restreint les valeurs à la plage 0,0 à 1,0. Cela peut souffrir d'artefacts colorés tels que des franges autour des étoiles presque saturées, mais c'est extrêmement rapide à calculer.

  • Rééchelonner - ce mode d'écrêtage vérifie les composantes R, V et B de chaque pixel et, si l'une d'entre elles est > 1,0, redimensionne le pixel de sorte qu'aucune composante ne soit écrêtée. Cette méthode est sujette aux artefacts et est principalement incluse pour une équivalence fonctionnelle avec le plugin GHSastro. Elle est rapide à calculer.

  • Rééchelonnement global - ce mode d'écrêtage se comporte de manière similaire à Rééchelonner, sauf que la mise à l'échelle est calculée globalement au lieu de pixel par pixel. Cela évite le type d'artefacts que Rééchelonner peut produire, mais a un impact plus important sur la luminosité globale de l'image. C'est plus rapide à calculer que Mélange RVB, mais plus lent que Écrêter ou Rééchelonner.

Lorsque l'option Utiliser la luminance à pondération humaine n'est pas cochée, rgb_original est la moyenne des trois valeurs de pixels ; lorsqu'elle est cochée, la pondération passe à 0,2126 pour la valeur rouge, 0,7152 pour la valeur verte et 0,0722 pour la valeur bleue, ce qui permet d'obtenir des résultats plus proches de l'équilibre des couleurs perceptuel humain.

Ligne de commande Siril

asinh [-human] stretch { [offset] [-clipmode=] }
Etire l'image pour montrer les objets peu lumineux en utilisant une transformation hyperbolique arcsin. L'argument obligatoire stretch, généralement compris entre 1 et 1000, indique l'intensité de l'étirement. Le point noir peut être décalé en fournissant un argument optionnel offset dans la valeur normalisée du pixel [0, 1]. Enfin, l'option -human permet d'utiliser les facteurs d'efficacité lumineuse de l'œil humain pour déterminer la luminance utilisée pour calculer la valeur d'étirement pour chaque pixel, au lieu de la simple moyenne des valeurs de pixel des canaux. Cette méthode d'étirement préserve la luminosité de l'espace colorimétrique La*b*. Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

Transformation de la fonction de transfert de la tonalité moyenne (MTF)

La MTF est l'un des outils les plus puissants pour étirer l'image. Elle peut être facilement automatisée et c'est pourquoi la vue auto-étirée l'utilise.

MTF d'une image mono

Boite de dialogue de la transformation de l'histogramme

L'outil se présente sous la forme d'un histogramme avec 3 curseurs (en forme de triangle placé en dessous) qu'il faut déplacer pour transformer l'image. Le triangle de gauche représente le signal des ombres, celui de droite les hautes lumières et enfin, celui du milieu le paramètre de balance des tons moyens. Les valeurs de ces curseurs sont affichées sous l'histogramme, à gauche, et peuvent être modifiées directement à la main. Ci-contre, le pourcentage de pixels écrêtés par la transformation : il est important de ne pas écrêter trop de pixels. Si seul le paramètre des tons moyens est modifié, aucun pixel ne peut être écrêté.

Théorie

La nouvelle valeur de pixel est calculé grâce à la fonction :

(1)\[\begin{split}\text{MTF}(x_p) = \frac{(m - 1)x_p}{(2m - 1)x_p - m}. \\\end{split}\]
  • Pour \(x_p=0\), \(\text{MTF} = 0\),

  • pour \(x_p=m\), \(\text{MTF} = 0.5\),

  • pour \(x_p=1\), \(\text{MTF} = 1\),

\(x_p\) est la valeur du pixel défini comme

(2)\[x_p=\frac{\text{original}-\text{shadows}}{\text{highlights}-\text{shadows}}.\]

Note

Il n'est généralement pas recommandé de modifier la valeur des hautes lumières, sinon elles seront saturées et l'information sera perdue.

La barre d'outils contient de nombreux boutons qui affectent la visualisation de l'histogramme. Vous pouvez choisir d'afficher l'histogramme d'entrée, l'histogramme de sortie, la courbe de transfert et la grille. Le bouton bouton auto-stretch permet d'appliquer la même transformation que l'algorithme d'auto ajustement. Il est rarement conseillé d'utiliser ce bouton tel quel. Des ajustements sont généralement nécessaires pour éviter de perdre des informations.

Astuce

Lorsque le bouton bouton auto-stretch est enfoncé, les curseurs ainsi que les champs lo, mid et hi deviendront temporairement inactifs. Vous devez appliquer l'auto ajustement avec le bouton Appliquer pour que les contrôles se réactivent. Vous pouvez alors appliquer des ajustements comme un second étirement de suivi. Ce comportement évite les problèmes lorsque le profil ICC du moniteur diffère du profil ICC de l'image.

En haut de l'histogramme, il est également possible de choisir d'afficher l'histogramme en mode logarithmique, comme dans l'illustration. Ce comportement peut être rendu par défaut comme expliqué ici. Enfin, un zoom en X est disponible. Ceci est très utile lorsque tout le signal est concentré sur la gauche de l'histogramme.

Astuce

Si une ROI est définie, l'aperçu de l'histogramme MTF ne se mettra pas à jour pour montrer l'impact de l'étirement sur la ROI. En effet, ce comportement pourrait être trompeur : si la ROI n'est pas représentative de l'image dans son ensemble, ajuster l'histogramme de la ROI à un niveau approprié entraînerait un histogramme mal ajusté pour l'image globale, et potentiellement un résultat brûlé ou excessivement sombre. En mode ROI, les paramètres d'étirement doivent être ajustés à l'œil. Si vous souhaitez vérifier l'histogramme de l'étirement tel qu'appliqué à l'image dans son ensemble, la ROI doit être effacée.

Ligne de commande Siril

mtf low mid high [channels]
Applique la fonction de transfert des demi-tons à l'image actuellement chargée.

Trois paramètres sont nécessaires, low, midtones et high où le paramètre de balance des tons moyens définit un étirement non linéaire de l'histogramme dans la plage [0,1]. Pour une détermination automatique des paramètres, voir AUTOSTRETCH.
Le paramètre optionnel [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, G, B, RG, RB ou GB. La valeur par défaut est tous les canaux

Liens : autostretch

Note

mtf est également une fonction qui peut être utilisée dans l'outil PixelMath.

Ligne de commande Siril

autostretch [-linked] [shadowsclip [targetbg]]
Etire automatiquement l'image actuellement chargée, avec des paramètres différents pour chaque canal (non lié) à moins que -linked ne soit fourni. Les arguments sont optionnels, shadowclip est le point d'écrêtage des ombres, mesuré en unités sigma à partir du pic de l'histogramme principal (la valeur par défaut est -2.8), targetbg est la valeur cible de l'arrière-plan, donnant une luminosité finale à l'image, plage [0, 1], la valeur par défaut est 0.25. Les valeurs par défaut sont celles utilisées dans le rendu Auto-Ajustement à partir de l'interface graphique.

N'utilisez pas la version non liée après l'étalonnage des couleurs, car elle modifierait la balance des blancs

Appliquer la transformation à la séquence

Cette transformation peut facilement être appliquée à une séquence. Il suffit de définir la transformation sur l'image chargée (avec une séquence déjà chargée), puis de cocher le bouton Appliquer à la séquence et de définir le préfixe de sortie de la nouvelle séquence (stretch_ par défaut), ou d'utiliser la commande suivante :

Ligne de commande Siril

seqmtf sequencename low mid high [channels] [-prefix=]
Même commande que pour MTF mais pour la séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "mtf_", sauf indication contraire avec l'option -prefix=

Liens : mtf

Transformations hyperboliques généralisées (GHS)

Il s'agit de l'outil le plus performant et le plus moderne de Siril, mais aussi le plus complexe à apprendre. Un tutoriel très détaillé pour cet outil dans Siril a été écrit par les auteurs de cet algorithme : https://siril.org/tutorials/ghs. Nous nous contenterons ici de résumer le fonctionnement de base de cet outil.

GHS d'une image mono

Boite de dialogue de la transformé hyperbolique généralisée

En d'autres termes, le SGH est capable d'améliorer le contraste d'une gamme de niveaux de luminosité dans une image. Par exemple, si l'on souhaite mieux voir les détails dans la partie de luminosité moyenne à élevée d'une nébuleuse (qui est en général très faible dans une image d'astronomie), il est possible de ne sélectionner que cette plage pour l'étirement. L'outil est très efficace pour améliorer le contraste des objets principaux sans rendre les étoiles trop grosses. L'outil est basé sur une utilisation itérative, c'est-à-dire qu'il étire toutes les plages de luminosité de l'image l'une après l'autre, par petites touches.

Pour ce faire, l'outil s'appuie fortement sur l'affichage et l'interaction de l'histogramme, pour chaque canal de couleur. La fonction de transformation, en forme d'hyperbole ou de 'S', peut être modifiée en déplaçant son centre (le paramètre SP - point de symétrie), en aplatissant l'une ou l'autre de ses extrémités (avec les protections ombre et haute lumière), et bien sûr sa torsion (facteurs d'étirement D et d'étirement local b). La manipulation de ces paramètres sur une petite image (pour aller vite) avec une valeur SP de 0,5 vous aidera à comprendre leur effet.

Il y a deux opérations principales à effectuer à chaque itération : sélectionner la plage de lumières à modifier, et la modifier effectivement. La sélection de la plage est assez facile, il s'agit de trouver une valeur représentative (SP) et de définir la largeur de la plage (b). La définition de SP peut se faire de trois manières :

  • en sélectionnant une zone de luminosité identique dans l'image et en cliquant sur le bouton du sélecteur

  • cliquer directement sur l'histogramme avec un clic gauche (il est possible de zoomer dans l'histogramme en utilisant le bouton + en haut à gauche)

  • en utilisant le curseur ou les boutons plus et moins qui lui sont associés ou directement la valeur.

La largeur de la plage dépend de l'étirement local. Une valeur élevée de b créera une petite plage et augmentera le contraste sur une petite plage de luminosité dans l'image.

La modification de l'histogramme une fois que l'emplacement du changement a été fixé est une opération plus complexe. L'un des objectifs fixés par les auteurs de l'algorithme est de faire en sorte que la vue logarithmique de l'histogramme (activée en cochant la case) soit aussi proche que possible d'une ligne décroissante. Pour ce faire, des bosses doivent être creusées et des vallées comblées. Voici un guide rapide des valeurs à utiliser en fonction de ce que l'on souhaite obtenir :

  • Étirement initial à partir de linéaire : réglez SP légèrement à gauche du pic principal, modérez b à partir de 6, augmentez D légèrement pour commencer à voir l'objet principal. Ne pas trop étirer à ce stade comme le ferait un auto ajustement, sinon les étoiles deviendraient trop grosses (principale section du tutoriel pour cela).

  • Amélioration du contraste d'une plage ou remplissage d'une vallée : réglez SP au centre de la vallée dans l'histogramme, réglez b aussi haut que la plage ou la vallée est étroite, diminuez HP pour préserver les étoiles, augmentez D lentement jusqu'à ce que l'amélioration apparaisse.

  • Diminuer le contraste d'une plage ou aplanir un pic : La diminution d'un pic n'est pas facile à réaliser, mais elle est un effet secondaire du remplissage des vallées. Par exemple, la création d'un pic, ou le remplissage d'une vallée, diminuera ce qui se trouve à gauche de SP. Une autre possibilité consiste à utiliser la transformation inverse, à partir de la liste déroulante Type d'étirement, et une valeur LP élevée, et HP à 1.

  • déplacer la courbe vers la gauche, rendant l'image plus sombre : souvent, si l'on étire tout l'histogramme, le pic se déplace vers la droite, rendant l'arrière-plan trop lumineux. Il existe un moyen simple de tout déplacer vers la gauche, en sélectionnant dans la liste déroulante Type d'étirement la dernière entrée, Étirement linéaire (décalage BP). Il n'y a plus qu'un seul curseur à déplacer, contrôlant l'ampleur du déplacement.

Astuce

Si une ROI est définie, l'aperçu de l'histogramme GHT ne se mettra pas à jour pour montrer l'impact de l'étirement sur la ROI. En effet, ce comportement pourrait être trompeur : si la ROI n'est pas représentative de l'image dans son ensemble, ajuster l'histogramme de la ROI à un niveau approprié entraînerait un histogramme mal ajusté pour l'image globale, et potentiellement un résultat brûlé ou excessivement sombre. En mode ROI, les paramètres d'étirement doivent être ajustés à l'œil. Si vous souhaitez vérifier l'histogramme de l'étirement tel qu'appliqué à l'image dans son ensemble, la ROI doit être effacée.

Certaines opérations sont également courantes pour les images couleurs, où l'on souhaite souvent obtenir une forme de courbe similaire pour les trois canaux, en travaillant sur chaque canal indépendamment en les désélectionnant à l'aide des trois cercles colorés situés sous la vue de l'histogramme :

GHS d'une image couleur

La transformation hyperbolique généralisée sur une image couleur

  • déplacement du pic vers la droite : un simple étirement avec une valeur SP à gauche du pic le fera en général, donc cela devrait être fait dans le cadre d'un étirement.

  • étaler un pic : pour étirer un peu plus un canal et lui donner plus d'importance dans le résultat final, sans trop changer l'emplacement du pic, réglez SP près du pic ou légèrement à sa droite, réglez b en fonction de la contribution attendue sur l'ensemble du canal, entrez une valeur négative si l'impact doit se faire sentir jusqu'au niveau des étoiles (pour changer leur couleur) et une valeur élevée si cela ne concerne qu'une nébuleuse, augmentez D pour obtenir la largeur cible du pic, puis décalez le pic vers la gauche en diminuant HP.

  • bouger tous les canaux ensemble : une alternative d'étirement de la luminance existe, voir la combo box Modèle d'étirement de couleur en haut à droite de la fenêtre GHS, en utilisant l'une ou l'autre des valeurs d'étirement de la luminance permet d'étirer la luminance et de réappliquer les couleurs sur celle-ci au lieu d'étirer directement les trois canaux. Les modes de luminance permettent de mieux préserver les couleurs de l'image. Ces modes utilisent le même mode d'écrêtage du mélange RVB décrit ci-dessus pour éviter les artefacts d'écrêtage des canaux de couleur.

  • Saturation de l'image : ** Les transformations GHS peuvent être appliquées au canal de saturation de l'image en sélectionnant l'option Saturation dans la liste déroulante *Modèle d'étirement des couleurs*. Lorsque ce mode est sélectionné, les histogrammes de saturation avant et après l'étirement sont affichés en jaune. Toutes les options du GHS sont disponibles et ce mode permet un ajustement très ciblé du canal de saturation de l'image. Une méthode simple pour augmenter la saturation dans les régions relativement non saturées tout en évitant la sursaturation consiste à utiliser un étirement par **transformation hyperbolique généralisée inverse avec SP fixé à environ 0,5 et HP abaissé suffisamment pour aplatir l'extrémité supérieure de l'histogramme de saturation.

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.

Application de l'étirement hyperbolique généralisé au canal de saturation pour créer une "lune minérale"

L'image ci-dessus montre comment l'application de l'outil GHS au canal de saturation permet de renforcer fortement la saturation d'une image à faible saturation tout en conservant le contrôle de la partie supérieure de l'histogramme de saturation. Cette image a été utilisée pour créer une image "Lune minérale" mettant en évidence les différentes compositions minérales des différentes régions de la surface lunaire.

Ligne de commande Siril

ght -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Étirement hyperbolique généralisé basé sur le travail de l'équipe ghsastro.co.uk.

L'argument -D= définit la force de l'étirement, entre 0 et 10. C'est le seul argument obligatoire. Les arguments facultatifs suivants permettent de mieux adapter l'étirement :
B définit l'intensité de l'étirement près du point focal, entre -5 et 15 ;
LP définit une plage de préservation des ombres entre 0 et SP où l'étirement sera linéaire, préservant les détails d'ombre ;
SP définit le point de symétrie de l'étirement, entre 0 et 1, qui est le point auquel l'étirement est le plus intense ;
HP définit une région entre HP et 1 où l'étirement est linéaire, préservant les détails de la mise en évidence et évitant le gonflement des étoiles.
Si elle est omise, B, LP et SP ont une valeur par défaut de 0.0 et HP a une valeur par défaut de 1.0.
Un argument facultatif (soit -human, -even ou -independent, peut être passé pour sélectionner la luminance pondérée humaine ou pondérée paire ou les canaux de couleur indépendants pour les étirements de couleur). L'argument est ignoré pour les images mono. Alternativement, l'argument -sat spécifie que l'étirement est effectué sur la saturation de l'image - l'image doit être en couleur et tous les canaux doivent être sélectionnés pour que cela fonctionne.
En option, le paramètre [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, V, B, RV, RB ou VB. La valeur par défaut est « tous les canaux ». Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

Ligne de commande Siril

invght -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Inverse un étirement hyperbolique généralisé. Il s'agit de la transformation inverse de l'étirement hyperbolique généralisé. S'il est fourni avec les mêmes paramètres, il annule une commande d'étirement hyperbolique généralisé, ce qui permet de revenir à une image linéaire. Il peut également fonctionner de la même manière que le GHT, mais pour des images en négatif

Liens : ght

Ligne de commande Siril

modasinh -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Étirement arcsinh modifié basé sur le travail de l'équipe ghsastro.co.uk.

L'argument -D= définit la force de l'étirement, entre 0 et 10. C'est le seul argument obligatoire. Les arguments facultatifs suivants permettent de mieux adapter l'étirement :
LP définit une plage de préservation des ombres entre 0 et SP où l'étirement sera linéaire, préservant les détails d'ombre ;
SP définit le point de symétrie de l'étirement, entre 0 et 1, qui est le point auquel l'étirement est le plus intense ;
HP définit une région entre HP et 1 où l'étirement est linéaire, préservant les détails de la mise en évidence et évitant le gonflement des étoiles.
Si elle est omise, LP et SP ont une valeur par défaut de 0.0 et HP a une valeur par défaut de 1.0.
Un argument facultatif (soit -human, -even ou -independent, peut être passé pour sélectionner la luminance pondérée humaine ou pondérée paire ou les canaux de couleur indépendants pour les étirements de couleur). L'argument est ignoré pour les images mono. Alternativement, l'argument -sat spécifie que l'étirement est effectué sur la saturation de l'image - l'image doit être en couleur et tous les canaux doivent être sélectionnés pour que cela fonctionne.
En option, le paramètre [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, V, B, RV, RB ou VB. La valeur par défaut est « tous les canaux ». Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

Ligne de commande Siril

invmodasinh -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Inverse un étirement arcsinh modifié. Il fournit la transformation inverse de MODASINH et, s'il est fourni avec les mêmes paramètres, il annule une commande MODASINH, ce qui permet de revenir à une image linéaire. Il peut également fonctionner de la même manière que MODASINH, mais pour des images en négatif

Liens : modasinh

Ligne de commande Siril

linstretch -BP= [-sat] [-clipmode=] [channels] [-clipmode=]
Étire linéairement l'image jusqu'à un nouveau point noir BP.
Le paramètre optionnel [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, G, B, RG, RB ou GB. La valeur par défaut est tous les canaux.
En option, le paramètre -sat peut être utilisé pour appliquer l'étirement linéaire au canal de saturation de l'image. Cet argument ne fonctionne que si tous les canaux sont sélectionnés. Le mode d'écrêtage peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées, la valeur par défaut étant rgbblend

Appliquer la transformation à la séquence

Cette transformation peut facilement être appliquée à une séquence. Il suffit de définir la transformation sur l'image chargée (avec une séquence déjà chargée), puis de cocher le bouton Appliquer à la séquence et de définir le préfixe de sortie de la nouvelle séquence (stretch_ par défaut). Toutes les commandes ont également une version de traitement en séquence. Chaque commande d'étirement de séquence commence par seq et le premier argument doit être le nom de la séquence, mais ils sinon elles sont les mêmes.

Ligne de commande Siril

seqght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Même commande que GHT, mais la séquence doit être spécifiée comme premier argument. En outre, l'argument optionnel -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : ght

Ligne de commande Siril

seqinvght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Identique à la commande INVGHT, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : invght

Ligne de commande Siril

seqmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Même commande que MODASINH, mais la séquence doit être spécifiée comme premier argument. En outre, l'argument optionnel -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : modasinh

Ligne de commande Siril

seqinvmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Identique à la commande INVMODASINH, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : invmodasinh

Ligne de commande Siril

seqlinstretch sequence -BP= [channels] [-sat] [-prefix=]
Identique à la commande INVGHT, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : linstretch

Transformation par courbes

La transformation par courbes est un outil très polyvalent utilisé pour ajuster le contraste et la luminosité d'une image en modifiant les valeurs de pixels selon une courbe définie sur mesure. Cela permet un contrôle précis de l'étirement de l'image.

La courbe est définie par une série de points, chacun pouvant être déplacé pour ajuster la courbe. La courbe est interpolée entre ces points, et les valeurs de pixels sont transformées en fonction de celle-ci. Cela permet d'appliquer un large éventail de transformations à l'image, allant des simples étirements linéaires aux ajustements non linéaires complexes.

Courbes sur une image en couleur

Boîte de dialogue de la transformation par courbes

Deux algorithmes d'interpolation sont disponibles dans la boîte de dialogue de la transformation par courbes : linéaire et spline cubique.

Théorie

  • L'interpolation linéaire est une interpolation simple qui relie les points par des lignes droites. Pour chaque paire de points, la pente de la ligne reliant les points est calculée :

    (3)\[\begin{split}\text{slope} = \frac{y_2 - y_1}{x_2 - x_1}. \\\end{split}\]

    Les valeurs de pixels sont ensuite transformées en évaluant la ligne à la valeur de pixel d'origine :

(4)\[\text{pixel} = \text{slope} \times (\text{original} - x_1) + y_1.\]
  • Les courbes spline cubiques sont des courbes plus complexes définies par une série de points de contrôle. Pour une valeur de pixel \(x\) comprise entre deux points de contrôle \(x_i\) et \(x_{i+1}\), la courbe est définie par l'équation suivante :

(5)\[S_i(x) = a_i + b_i (x - x_i) + c_i (x - x_i)^2 + d_i (x - x_i)^3\]

Pour \(x_i < x < x_{i+1}\), les coefficients \(a_i, b_i, c_i\) et \(d_i\) sont calculés en résolvant un système d'équations dérivées des conditions de continuité et de lissage en chaque point interne. Ces conditions sont :

  • La spline doit être continue en chaque point interne,

  • La dérivée première de la spline doit être continue en chaque point interne,

  • La dérivée seconde de la spline doit être continue en chaque point interne

  • Comme la transformation par courbes utilise des splines cubiques naturelles, la dérivée seconde aux deux extrémités est 0.

Avertissement

La transformation par courbes n'est disponible que comme outil de l'interface graphique et ne peut pas être utilisée depuis la ligne de commande.

La transformation par courbes peut afficher l'histogramme de l'image selon deux modes : linéaire et logarithmique. Vous pouvez basculer entre ces modes en cliquant sur la case à cocher Échelle logarithmique en haut de l'histogramme. L'échelle logarithmique est utile pour les images à large plage dynamique, car elle permet de voir plus clairement l'histogramme dans les ombres et les hautes lumières.

Astuce

Si une ROI est définie, l'aperçu de l'histogramme ne se mettra pas à jour pour montrer l'impact de l'étirement sur la ROI. En effet, ce comportement pourrait être trompeur : si la ROI n'est pas représentative de l'image dans son ensemble, ajuster l'histogramme de la ROI à un niveau approprié entraînerait un histogramme mal ajusté pour l'image globale, et potentiellement un résultat brûlé ou excessivement sombre. En mode ROI, les paramètres d'étirement doivent être ajustés à l'œil. Si vous souhaitez vérifier l'histogramme de l'étirement tel qu'appliqué à l'image dans son ensemble, la ROI doit être effacée.

Voici quelques utilisations courantes de l'outil Transformation par courbes :

  • Courbe en "S" : Cette courbe sert à augmenter le contraste d'une image. En accentuant la pente de la courbe au milieu de l'histogramme, le contraste est augmenté.

    exemple de courbe en s

    Un exemple d'une courbe en "S"

  • Ajustements PN et PB : le point noir (PN) et le point blanc (PB) d'une image peuvent être ajustés en déplaçant les premier et dernier points de contrôle de la courbe. Cela permet d'ajuster indépendamment les ombres et les hautes lumières de l'image.

    ajustement du point blanc et point noir

    Exemple de réglage du point noir et du point blanc d'une image

  • Ajustements ciblés : en ajoutant des points de contrôle à des emplacements spécifiques de l'histogramme, des ajustements ciblés peuvent être apportés à l'image. Par exemple, les ombres peuvent être assombries sans affecter les autres parties de l'image.

    Ajustement ciblé

    Un exemple d'ajustement ciblé sur une image

Astuce

L'outil de transformation par courbes est préférable à utiliser sur une image déjà étirée dans une certaine mesure. Cela permet un contrôle plus précis du contraste et de la luminosité de l'image.

Cette transformation peut facilement être appliquée à une séquence. Il suffit de définir la transformation sur l'image chargée (avec une séquence déjà chargée), puis de cocher le bouton Appliquer à la séquence et de définir le préfixe de sortie de la nouvelle séquence (curve_ par défaut).

Étalonnage des couleurs

Siril propose trois façons de récupérer les couleurs de votre image :

Ici, "récupérer" signifie rééquilibrer les canaux RVB pour se rapprocher le plus possible des vraies couleurs de l'objet photographié.

Astuce

PCC et SPCC sont deux méthodes qui nécessitent une image résolue par astrométrie. Il n'est pas possible d'accéder à ces outils sans ce prérequis.

Étalonnage manuel des couleurs

Avertissement

L'étalonnage des couleurs doit être effectué sur une image linéaire dont l'histogramme n'a pas encore été étiré. Dans le cas contraire, les couleurs obtenues ne sont pas garanties comme étant correctes.

La méthode manuelle utilise la fenêtre suivante :

dialogue

Fenêtre de dialogue d'étalonnage manuel des couleurs.

La première étape concerne le fond de votre image. L'objectif est d'égaliser les couches RVB afin que l'arrière-plan apparaisse avec une couleur grise neutre.

Après avoir effectué une sélection dans votre image (dans une zone peu étoilée), la zone est prise en compte en cliquant sur le bouton Utiliser la sélection actuelle. Les coordonnées du rectangle sont affichées. Ensuite, Neutralisation de fond de ciel va calculer la médiane de chaque canal et les égaliser.

La deuxième étape concerne les objets lumineux de l'image. Vous pouvez à nouveau modifier l'histogramme de deux manières :

  • Manuellement, avec Référence des blancs et les 3 coefficients R, G et B, selon votre propre goût.

  • Automatiquement, en sélectionnant une zone rectangulaire avec des objets contrastés (de la même manière que précédemment)

Deux curseurs vous permettent de modifier la limite de rejet des pixels trop sombres et trop clairs de la sélection.

Comme il s'agit d'un processus d'essai et d'erreur, vous pouvez annuler le résultat avec le bouton Annuler (en haut à gauche) et ensuite essayer avec d'autres sélections ou coefficients jusqu'à ce que vous soyez satisfait.

Étalonnage des couleurs par photométrie

Avertissement

L'étalonnage des couleurs par photométrie doit impérativement être effectué sur une image linéaire dont l'histogramme n'a pas encore été étiré. Sinon, les mesures photométriques seront fausses et les couleurs obtenues sans garantie d'être correctes.

Une autre façon de récupérer les couleurs est de comparer la couleur des étoiles dans l'image avec leur couleur dans les catalogues, pour obtenir la couleur la plus naturelle de façon automatique et non subjective. C'est l'outil PCC (Photometric Color Calibration) (Ctrl + Shift + P). Il ne peut fonctionner que pour des images prises avec un ensemble de filtres rouges, verts et bleus pour les couleurs, ou avec la couleur du capteur. Pour identifier les étoiles de l'image avec celles du catalogue, une solution astrométrique est nécessaire. Veuillez consulter la documentation du module de résolution astrométrique.

Cette méthode est moins précise que l'étalonnage des couleurs par spectrophotométrie expliqué ci-dessous, mais elle peut être réalisée à l'aide de catalogues locaux et constitue donc la meilleure option lorsqu'une connexion Internet n'est pas disponible.

Note

Cette technique dépend fortement du type de filtre utilisé. L'utilisation de différents types de filtres R, V, B ne fera pas une grande différence, mais l'utilisation d'un filtre contre la pollution lumineuse ou l'absence de filtres bloquant les IR fera dévier la solution de manière significative et ne donnera pas les couleurs attendues.

Depuis la version 1.4, les deux outils fonctionnent indépendamment : il est possible d'exécuter l'analyse photométrique et la correction des couleurs de l'image seulement si l'image a déjà été résolue astrométriquement. Cela signifie également que des catalogues différents peuvent être utilisés pour PCC et l'astrométrie. L'outil est aussi disponible sous la forme de la commande pcc, ce qui permet de l'intégrer dans des scripts de post-traitement d'images.

dialogue

Fenêtre de dialogue Étalonnage des couleurs par photométrie.

Si l'image a été précédemment résolue astrométriquement, activez la fonction annotations pour vérifier que les catalogues sont alignés avec l'image. Si la solution astrométrique n'est pas assez bonne, veuillez refaire une astrométrie.

  • La section Paramètres du catalogue vous permet de choisir le catalogue photométrique à utiliser, NOMAD, APASS ou Gaia DR3, ainsi que la magnitude limite.

    Astuce

    Les catalogues NOMAD et GAIA peuvent être installés localement, tandis que le catalogue APASS nécessite un accès à Internet pour obtenir son contenu.

    Le catalogue Gaia local utilisé pour PCC est le catalogue astrométrique, qui est un téléchargement beaucoup plus petit que le catalogue SPCC complet. S'il est disponible, il sera affiché par défaut.

    Note

    Alors que les catalogues NOMAD et APASS utilisent l'indice B-V catalogué et estiment la température effective à partir de cette valeur, Gaia fournit une température effective modélisée avec précision ; par conséquent, lorsque ce catalogue est utilisé, le champ Teff est utilisé directement, donnant des résultats plus précis.

  • La section Détection d'étoiles vous permet de sélectionner manuellement les étoiles qui seront utilisées pour l'analyse photométrique. Il est préférable d'en avoir des centaines au moins, la sélection individuelle n'est donc pas idéale.

    PCC détection d'étoile
  • Si vous le souhaitez, la référence de fond de ciel peut être sélectionnée manuellement comme décrit dans Étalonnage manuel des couleurs. Cela peut être utile dans le cas d'images de nébuleuses où les parties du ciel en arrière-plan sont petites.

    PCC fond du ciel

Lorsque suffisamment d'étoiles sont trouvées et que la solution astrométrique est correcte, le PCC affiche ce type de texte dans l'onglet Console :

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

On peut comprendre que 433 étoiles ont été sélectionnées dans le catalogue et l'image pour l'analyse photométrique, mais étrangement, seules 363 ont été réellement utilisées, 70 ayant été exclues. La ligne Distribution des erreurs explique la raison de leur exclusion : 18 n'ont pas été trouvées à la position attendue, 48 étaient trop grandes et 4 étaient probablement saturées. Il est très courant que de nombreuses étoiles soient rejetées car elles ne répondent pas aux exigences strictes d'une analyse photométrique valide.

Nous pouvons également voir que le PCC a trouvé trois coefficients à appliquer aux canaux de couleur pour corriger l'équilibre des blancs. La déviation ici, qui est l'écart absolu moyen de la correction des couleurs pour chacune des étoiles de l'ensemble photométrique, est modérément élevée. Sur des images bien calibrées, sans gradient, avec des filtres corrects et sans nébuleuse de couleur recouvrant toute l'image, la déviation se rapprocherait de 0.

Ligne de commande Siril

pcc [-limitmag=[+-]] [-catalog=] [-bgtol=lower,upper]
Exécute la Correction de Couleur par Photométrie sur l'image chargée et résolue astrométriquement.

La magnitude limite des étoiles est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement une valeur positive absolue pour la magnitude limite.
Le catalogue d'étoiles utilisé est NOMAD par défaut, il peut être modifié en fournissant -catalog=apass, -catalog=localgaia ou -catalog=gaia. S'il est installé localement, le catalogue NOMAD distant (la version complète) peut être forcé en fournissant -catalog=nomad
La tolérance aux valeurs aberrantes de la référence de fond de ciel peut être spécifiée en unités sigma en utilisant -bgtol=lower,upper : ces valeurs sont par défaut de -2,8 et +2,0

Étalonnage des couleurs par spectrophotométrie

Avertissement

L'étalonnage des couleurs par photométrie doit impérativement être effectué sur une image linéaire dont l'histogramme n'a pas encore été étiré. Sinon, les mesures photométriques seront fausses et les couleurs obtenues sans garantie d'être correctes.

L'étalonnage des couleurs par spectrophotométrie (CtrlShiftC) est la méthode d'étalonnage des couleurs la plus récente disponible dans Siril. Cette méthode utilise les nombreuses données spectrales disponibles dans le catalogue en ligne Gaia DR3 [GaiaDR3]. Il est possible d'y accéder soit en interrogeant directement le catalogue en ligne, soit en téléchargeant un extrait local et en interrogeant le catalogue local.

Avertissement

Notez que lorsque les archives Gaia sont hors ligne pour maintenance ou en raison d'une panne, la fonctionnalité SPCC de Siril ne sera pas disponible via le catalogue en ligne. Heureusement, les archives sont normalement très fiables, mais un indicateur d'état est intégré dans la boîte de dialogue SPCC. L'état des archives est vérifié au démarrage de la boîte de dialogue et peut être revérifié en cliquant sur le bouton d'état.

Le catalogue Gaia SPCC hors ligne fonctionnera toujours si l'archive Gaia est hors ligne.

dialogue

Fenêtre de dialogue Étalonnage des couleurs par spectrophotométrie.

Astuce

Quelle est la différence entre SPCC et PCC ? Quand devrais-je utiliser l'un plutôt que l'autre? SPCC est une version plus précise de PCC et rend ce dernier obsolète. SPCC prend en compte le capteur et les filtres de votre matériel. Par conséquent, la couleur produite est plus proche de la "réalité". L'exemple de l'image ci-dessous illustre la différence de résultats.

Comparaison de PCC

Comparaison entre PCC (à gauche) et SPCC (à droite) : cliquer pour agrandir. (Avec l'aimable autorisation de Ian Cass)

Catalogue local SPCC

À partir de la version 1.4.0, un catalogue SPCC hors ligne est disponible utilisant les données de Gaia DR3. Notez que le catalogue est divisé en 48 fichiers couvrant chaque HEALpixel de niveau 1.

Théorie

HEALpix (Hierarchical Equal Area isoLatitude Pixelisation) est un algorithme pour pixelliser une sphère basé sur la subdivision d'un dodécaèdre rhombique déformé. Les détails mathématiques peuvent être trouvés sur Wikipedia [Wiki_HEALPIX]. Les sources Gaia utilisent un schéma HEALpix NESTED de niveau 12, et le numéro du HEALpixel est encodé dans le source_id. Les spécifications des extraits du catalogue Gaia DR3 et leur format de fichier sont documentés ici (PDF).

La nature imbriquée du schéma signifie que les HEALpixels qui sont proches les uns des autres dans le ciel ont des numéros qui sont également proches. La propriété hiérarchique signifie également qu'il est possible d'indexer les sources dans les HEALpixels à un niveau HEALpixel profond et de diviser le catalogue en morceaux à un niveau moins profond, tout en continuant à prendre en charge un algorithme de recherche de catalogue hautement efficace.

Il est possible de télécharger le catalogue entier ou seulement les blocs dont vous avez besoin. L'emplacement du dossier où stocker les fichiers du catalogue est défini dans Préférences->Astrométrie.

Scripts Sirilpy

La façon la plus simple d'installer le catalogue est d'utiliser le script Python intégré Siril_Catalog_Installer.py dans le menu Scripts->Scripts Python.

interface de l'installateur de catalogue

Cela fournit une interface qui vous permet d'installer soit le catalogue entier, soit uniquement les morceaux qui sont visibles depuis votre latitude d'observation au-dessus d'une certaine élévation, soit uniquement des ensembles de morceaux correspondant à certains thèmes (Voie LactéeTriangle d'ÉtéSaison des Galaxies etc.) Sélectionnez la latitude / élévation ou la zone d'intérêt si vous le souhaitez, puis sélectionnez la méthode de sélection (ToutVisible depuis la Latitude ou Zone d'Intérêt).

Vous pouvez prévisualiser la couverture en utilisant le bouton Prévisualiser la couverture.

prévisualisation du catalogue

Enfin, en cliquant sur Installer, vous téléchargerez, vérifierez, décompresserez et installerez les morceaux sélectionnés et paramétrerez également le chemin du catalogue dans les préférences de Siril. Un chemin de catalogue par défaut est suggéré dans le widget de saisie de texte, mais peut être modifié pour un emplacement différent si vous préférez.

Si vous souhaitez installer manuellement les fichiers du catalogue SPCC hors ligne, ils peuvent être téléchargés depuis Zenodo. Il est possible de télécharger soit des HEALpixels individuels de niveau 1, soit l'ensemble du catalogue sous forme d'archive.

Astuce

Lorsque vous téléchargez "Tous les fichiers" à partir de l'enregistrement Zenodo, le téléchargement est une archive zip que vous devrez extraire, cependant l'archive zip est juste un moyen pratique de regrouper tous les fichiers individuels ; les fichiers de données à l'intérieur de l'archive zip sont eux-mêmes compressés avec la compression bzip2, et vous devrez décompresser les fichiers .bz2 individuels avant que Siril ne puisse les utiliser. La prise en charge de ce format de compression est disponible par défaut sous Linux et MacOS, et est assurée sous Windows par divers programmes d'archivage, dont 7-Zip et Pea-Zip, qui sont tous deux des logiciels libres et open source.

Tous les fichiers compressés sont accompagnés de sha256sums et il y a un fichier contenant tous les sha256sums des fichiers non compressés, pour une validation supplémentaire. L'enregistrement Zenodo fournit également une référence DOI qui peut être utilisée pour citer l'ensemble de données si vous l'utilisez dans un travail universitaire.

Siril utilise un extrait optimisé du produit datalink xp_sampled de Gaia DR3. Comme pour l'extrait astrométrique, le catalogue hors ligne est limité aux 127 sources les plus brillantes par HEALpixel de niveau 8. Le catalogue contient moins de sources que l'extrait astrométrique car les spectres xp_sampled ne sont généralement fournis que pour les sources plus brillantes que la magnitude 17,6. Par conséquent, davantage de HEALpixels dans les zones moins peuplées du ciel contiennent moins de 127 sources par rapport à l'extrait astrométrique (c'est-à-dire que ces HEALpixels contiennent toutes les sources Gaia DR3 disponibles avec des données xp_sampled). Cependant, cette approche évite toujours la surpopulation du catalogue dans les parties extrêmement denses du ciel tout en fournissant le meilleur rapport signal/bruit. Dans les HEALpixels avec moins de 127 sources xp_sampled, le catalogue local est aussi complet que si l'on utilisait directement l'archive Gaia en ligne.

Le xp_sampled est converti de données float32 en float16 avec un octet supplémentaire définissant l'exposant à appliquer aux données xp_sampled pour la source, afin de surmonter les limitations des exposants exprimables en float16. Cette approche est entièrement justifiable compte tenu des marges d'erreur sur les données xp_sampled et ne fait aucune différence pratique sur la précision des résultats. Cela signifie que nous pouvons fournir un catalogue SPCC local hautement efficace et optimisé pour son usage spécifique, dans moins de 21 Go de données.

Comment cela marche

SPCC nécessite la connaissance de votre capteur et des filtres RVB que vous utilisez. Ceux-ci sont fournis par un dépôt en ligne que Siril synchronisera, soit automatiquement au démarrage, soit manuellement lorsque cela est nécessaire. Les informations sur les capteurs et les filtres sont mises à jour par la même méthode de synchronisation que celle utilisée pour le dépôt de scripts en ligne. (Cela signifie que lorsque des données sur de nouveaux filtres ou capteurs sont disponibles, elles peuvent être ajoutées au dépôt sans nécessiter de mise à jour de l'application.)

Dans l'interface graphique, vous sélectionnez vos capteurs et filtres à partir des widgets de la boîte de dialogue SPCC. Ne vous inquiétez pas s'il n'y a pas de correspondance exacte pour votre équipement, choisissez simplement l'option la plus proche ou l'option par défaut appropriée. Vous devez également sélectionner une référence de blanc. La référence par défaut est celle de la moyenne des galaxies spirales, qui convient à un large éventail de scènes astrophotographiques, mais il existe une vaste gamme de galaxies et de types d'étoiles parmi lesquels choisir. Le type spectral du Soleil est G2(v), donc si vous voulez équilibrer votre image en utilisant la lumière du Soleil comme référence de blanc, vous choisiriez Étoile, type G2(v) dans la liste.

SPCC utilise ensuite les spectres stellaires de Gaia DR3 et la connaissance de votre capteur d'imagerie et de vos filtres pour calculer pour chaque étoile du catalogue qui correspond à une étoile détectée dans l'image par Siril, le flux attendu dans chaque canal de couleur. Il compare ensuite ce flux avec le flux réel mesuré dans chaque canal en utilisant les capacités photométriques de Siril.

Compte tenu de la connaissance du capteur et du filtre, SPCC calcule le flux attendu dans chaque canal pour la référence des blancs spécifiée. Un ajustement linéaire robuste est obtenu pour donner le meilleur ajustement des rapports de flux R/V et B/V du catalogue à l'image pour chaque étoile et pour la référence des blancs. Cet ajustement est utilisé pour dériver des coefficients de correction qui sont appliqués de manière multiplicative à chaque canal, ce qui permet d'obtenir des canaux de couleur spectrophotométriquement exacts.

Votre image doit être résolue pour que SPCC fonctionne : si ce n'est pas le cas, vous devez le faire à l'aide de l'outil prévu à cet effet. Il est important de s'assurer que les informations relatives à la résolution astrométrique sont correctes, car certains logiciels sont connus pour ajouter des données WCS inexactes aux images.

Interface Graphique
  • Sélection du capteur Pour sélectionner votre capteur, assurez-vous que le bouton mono / couleur est correctement réglé. Vous verrez alors le menu déroulant approprié pour choisir parmi les capteurs disponibles.

  • Sélection de filtres SPCC peut fonctionner selon deux modes.

    • Le mode par défaut est le mode large bande. Dans ce mode, la case mode bande étroite doit être décochée. Vous pouvez choisir des filtres rouge, vert et bleu (pour les images composées réalisées avec un capteur mono) ou des filtres couleur, par exemple des filtres de pollution lumineuse, pour les images réalisées avec un capteur couleur.

      Avertissement

      Si vous sélectionnez un capteur APN couleur (par exemple, un Canon EOS 600D), un widget supplémentaire deviendra visible pour sélectionner un filtre passe-bas. Cela vous permet de préciser si votre appareil photo a été modifié pour l'astronomie ou non. Vous devez sélectionner une option ici ou le processus se plaindra que vous n'avez pas défini tous les filtres nécessaires !

      Des options existent pour les filtres passe-bas d'origine Canon et Nikon, ainsi que pour le populaire filtre de modification astronomique Baader BCF qui laisse passer le Ha et Sii mais bloque toujours les longueurs d'onde IR plus longues, et "Full spectrum" qui est modélisé comme un filtre parfaitement transparent.

      Si vous avez un appareil photo non modifié d'un modèle ou d'une marque différente, sélectionnez n'importe lequel des filtres passe-bas Canon ou Nikon : l'effet est très mineur car ces longueurs d'onde sont de toute façon à la limite de la perception visuelle humaine.

    • En cochant la case Mode bande étroite, vous activez le mode bande étroite. Celui-ci est destiné soit aux images composées à partir de filtres à bande étroite utilisés avec un capteur mono, soit aux images réalisées à l'aide d'un capteur couleur avec un filtre à bande étroite duo, tri-bande ou quadri-bande. Dans ce mode, les commandes disponibles changent et, pour chaque canal de couleur, vous entrez la longueur d'onde nominale et la largeur de bande de la bande passante du filtre. Pour les filtres mono bande ultra étroits, la bande passante peut être de 3 nm seulement ; pour un filtre OSC quadribande comme l'Altair QuadBand V2, les bandes passantes peuvent atteindre 35 nm. Notez que pour une composition HOO où deux canaux sont réglés sur les mêmes données, la longueur d'onde nominale et la largeur de bande doivent également être égales dans l'interface de SPCC.

      dialogue

      Image HOO calibrée. Image de Cyril Richard.

      Astuce

      Certains fabricants spécifient une longueur d'onde centrale et une FWHM. Il n'y a pas de problème à utiliser la FWHM comme largeur de bande : ces filtres ont des coupures très nettes.

      Avertissement

      Ne vous attendez pas à récupérer la palette Hubble pour l'imagerie SHO en utilisant les longueurs d'onde des filtres SII, \(\mathrm{H}\alpha\) et OIII respectivement. Le résultat sera une image avec une énorme dominante verte. Cela s'explique facilement par le fait que la raie d'émission SII est beaucoup plus faible que celle de l'hydrogène, et que SPCC donne une représentation des intensités réelles. Mais ce n'est pas le cas dans la palette Hubble. En fait, l'étalonnage manuel des couleurs donnera de meilleurs résultats.

      dialogue

      Image SHO étalonnée par SPCC comparée à la même image étalonnée manuellement. La nébuleuse entière a été prise comme référence des blancs lors de l'étalonnage manuel. Image de Cyril Richard.

  • Sélection du filtre passe-bas (LPF) Les reflex numériques contiennent un filtre passe-bas (parfois aussi appelé "miroir chaud"). Ces filtres réduisent la transmittance aux longueurs d'onde qui intéressent les astronomes (Ha à 656nm et S-II à 674nm). Si le capteur couleur sélectionné est un APN, un menu déroulant vous permet de sélectionner le profil LPF approprié. Il existe des options pour les filtres LPF standard ainsi que pour les filtres LPF astro-modifiés et un modèle de filtre Spectre complet idéal pour les cas où le filtre LPF a été complètement supprimé.

  • Sélection de la référence de blanc SPCC nécessite un spectre de référence de blanc absolu. La valeur par défaut est Moyenne des galaxies spirales et les spectres sources utilisés pour créer cette référence de blanc sont extraits des modèles SWIRE [SWIRE] de manière cohérente avec les autres logiciels d'astrophotographie fournissant la même référence de blanc. Une large gamme d'autres références de blanc est disponible, couvrant toute la gamme des classifications de galaxies et d'étoiles [Stellar]. Si vous souhaitez utiliser la lumière du Soleil comme référence de blanc, vous choisiriez la référence Étoile, type G2(v) car le Soleil est une étoile de type G2(v).

    dialogue

    Graphiques montrant les données de la référence de blanc des galaxies spirales. À environ 350 nm, les données des galaxies spirales moyennes deviennent identiques à celles des galaxies Sc, qui sont également une bonne représentation de la référence de blanc.

    dialogue

    NGC 4414 est un excellent exemple de galaxie de type Sc, le type le plus proche de la galaxie spirale moyenne utilisée comme référence de blanc par défaut. Crédit image : NASA, ESA, W. Freedman (U. Chicago) et al, & the Hubble Heritage Team (AURA/STScI), SDSS ; Processing : Judy Schmidt.

    Astuce

    Résumé des classifications spectrales stellaires Les classifications stellaires se composent de deux parties, un type Morgan-Keenan et un indice de luminosité.

    La première partie de la classification spectrale (G2 dans le cas du Soleil) prend l'une des lettres suivantes : O, B, A, F, G, K, M. O représente les étoiles bleues extrêmement chaudes, tandis que M représente les étoiles rouges froides : Le soleil se situe à peu près au milieu du spectre. Le nombre représente des cas intermédiaires, par exemple une étoile B5 est à mi-chemin entre le type B et le type A.

    La deuxième partie de la classification spectrale est l'indice de luminosité, qui va de i à v. Les étoiles ayant un indice de luminosité i sont des supergéantes, tandis que les étoiles ayant un indice de luminosité v sont des naines. Les étoiles de la séquence principale, comme le soleil, ont un indice de luminosité iv.

    dialogue

    Graphiques montrant les données de référence de blanc pour un ensemble de deux classes d'étoiles différentes, G et K.

    dialogue

    Différence d'étalonnage des couleurs en fonction du choix de la référence de blanc. À gauche, une étoile de type M, à droite la galaxie spirale moyenne. Veuillez noter que les données sont linéaires, et que seul un autoajustement a été appliqué à la visualisation.

  • Correction atmosphérique La SPCC de Siril prend en charge la correction atmosphérique. Lorsque nous prenons des images depuis la Terre, nous les prenons à travers l'atmosphère. Celle-ci n'a pas une transmittance parfaite et agit donc comme un autre filtre, non optionnel, dans la chaîne d'imagerie entre le capteur et l'objet astronomique. La correction de cette atmosphère est un choix artistique que chaque astrophotographe doit faire, mais l'option est fournie.

    Théorie

    L'extinction atmosphérique a plusieurs origines. Les plus importantes sont les suivantes :

    • Diffusion de Rayleigh. Il s'agit de la diffusion élastique de la lumière par des particules qui sont petites par rapport à la longueur d'onde de la lumière. La forte dépendance de la diffusion de Rayleigh par rapport à la longueur d'onde (\(\approx λ^{-4}\)) signifie que les courtes longueurs d'onde (bleues) sont diffusées plus fortement que les grandes longueurs d'onde (rouges).

    • Diffusion des aérosols. Il s'agit de la diffusion de la lumière par des particules plus grandes que la longueur d'onde de la lumière. Ce phénomène est très variable mais (en l'absence d'effets significatifs à court terme de la poussière ou de la fumée) relativement plat sur le plan spectral et moins important que la diffusion de Rayleigh.

    • Raies d'absorption moléculaire.

    Siril ne modélise que la diffusion de Rayleigh. Il s'agit de la contribution la plus importante dans la plupart des conditions atmosphériques, et elle est hautement prévisible, ce qui la rend facile à modéliser sans exiger de l'utilisateur qu'il fournisse des données complexes.

    La formule de la transmittance de Rayleigh de l'atmosphère en fonction de la longueur d'onde \(lambda\) nm, de la hauteur de l'observateur \(H\) m et de la pression \(p\) hPa est la suivante :

    \(\tau_R(\lambda, H, p) = \left( \frac{p}{1013.25} \right) \left( 0.00864 + 6.5 \times 10^{-6} \cdot H \right) \lambda^{-(3.916 + 0.074 \lambda + \frac{0.050}{\lambda})}\).

    Dans des circonstances normales, la diffusion des aérosols a une réponse à peu près plate dans le domaine visible. Cela change dans des conditions spécifiques, par exemple lorsque la concentration de particules de fumée dans l'atmosphère est élevée après des incendies de forêt ou, dans certaines parties de l'Europe, lorsque la poussière du Sahara est transportée dans l'atmosphère. Toutefois, ces effets sont très difficiles à modéliser avec précision, car ils dépendent de la concentration de sable ou de particules de fumée dans l'atmosphère à ce moment-là. Siril ne modélise donc pas cet effet.

    Les principales raies d'absorption moléculaire dans le spectre visible sont les bandes d'ozone stratosphérique de Chappuis et la raie d'absorption de l'oxygène moléculaire de Fraunhofer B. Cependant, la raie Fraunhofer B est très étroite et n'a pas d'effet significatif sur l'étalonnage global. Les bandes de Chappuis sont larges mais avec un faible pic d'absorption, ce qui a un impact global beaucoup plus faible que la diffusion de Rayleigh. Les bandes d'absorption moléculaires ne sont pas modélisées dans Siril.

    Lorsque vous cochez la case Correction atmosphérique, les options suivantes sont disponibles :

    • Hauteur de l'observateur. Cette option permet de définir la hauteur de l'observateur, qui est utilisée dans le calcul de l'extinction de Rayleigh. Réglez-la à l'altitude de votre observatoire au-dessus du niveau de la mer. Certains logiciels de capture définissent le mot clé SITEELEV dans l'en-tête FITS : si elle est présente, la hauteur de cette carte sera utilisée, sinon la valeur est modifiable et fixée par défaut à 10 m.

    • Pression atmosphérique. Cette fonction permet de définir la pression atmosphérique au moment de l'observation. Pour plus de commodité, elle peut être spécifiée en tant que pression au niveau de la mer (telle que fournie par les prévisions météorologiques) ou en tant que pression locale (telle que mesurée par un baromètre à l'observatoire). En cas de doute, la valeur par défaut est la pression atmosphérique standard au niveau de la mer (1013,25 hPa).

      Théorie

      Si la pression est fournie en tant que mesure de la pression au niveau de la mer, la pression locale à la hauteur de l'observateur est calculée selon la formule barométrique :

      \(P(h) = P_0 \left( 1 - \frac{L h}{T_0} \right)^{\frac{g M}{R L}}\),

      où :

      • \(L = 0.0065~\text{K}/\text{m}\) (Gradient thermique vertical),

      • \(T_0 = 288.15~\text{K}\) (température standard au niveau de la mer),

      • \(g = 9.80665~\text{m}/\text{s²}\) (Accélération de la gravité),

      • \(M = 0.0289644~\text{kg}/\text{mol}\) (masse molaire de l'air terrestre),

      • \(R = 8.3144598~\text{J}/(\text{mol}·\text{K})\) (Constante universelle des gaz).

    • Airmass. Ce paramètre n'est pas modifiable, mais il indique la masse d'air qui sera utilisée dans les calculs. Elle est obtenue, par ordre de préférence, à partir du mot clé d'en-tête FITS AIRMASS, par calcul en utilisant le mot clé d'en-tête FITS CENTALT ou, en dernier recours, en utilisant l'angle zénithal moyen de toutes les parties du mot clé d'en-tête FITS situées à plus de 30° au-dessus de l'horizon. L'infobulle indique la source sur laquelle est basée la valeur utilisée.

      Théorie

      Si le mot clé AIRMASS n'est pas disponible, le calcul utilisé pour dériver la masse d'air de l'angle zénithal est calculé conformément à [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}\).

L'interface vous permet de visualiser les détails du capteur, du filtre et de la référence de blanc sélectionnés en utilisant le bouton Détails situé à côté de chaque liste déroulante. Dans la boîte d'informations détaillées qui s'affiche, vous avez également la possibilité de tracer l'efficacité quantique (pour les capteurs), la transmittance (pour les filtres) ou le nombre relatif de photons (pour les références de blanc) en fonction de la longueur d'onde. Un bouton Tout tracer est aussi disponible dans la boîte de dialogue principale SPCC, ce qui vous permet de voir les réponses de tous vos filtres et de votre capteur, ainsi que le spectre de référence de blanc, tous tracés ensemble.

dialogue

Tracé de toutes les réponses de tous vos filtres, de votre capteur et du spectre de référence de blanc

Lorsque vous êtes satisfait, cliquez sur Appliquer et SPCC s'exécutera. Il mettra en cache les données du catalogue, mais la première fois que vous l'appliquerez à une image, il faudra quelques secondes pour effectuer les recherches dans le catalogue en ligne et récupérer la source et les données spectrales. SPCC sera ensuite appliquée à l'image. Des tracés supplémentaires montrant l'ajustement linéaire des rapports Rouge/Vert et Bleu/Vert du catalogue aux rapports Rouge/Vert et Bleu/Vert de l'image peuvent être affichés.

dialogue

Par défaut, Siril produit des graphiques montrant les ajustements utilisés dans le processus. Dans cet exemple, la magnitude a été limitée à 17.

Astuce

Comment traiter les images L-RGB ? Nous recommandons de ne traiter que les images RVB avec SPCC. La couche L doit être ajoutée ultérieurement, lorsque les histogrammes ont été étirés.

Astuce

Pour les images prises avec un capteur couleur, nous recommandons d'utiliser le Bayer Drizzle pour récupérer les couleurs de l'image. Cela permet d'obtenir des couleurs plus précises, comme le montre l'image suivante.

dialogue

SPCC appliqué à l'identique à la même image. À gauche, le dématriçage conventionnel utilisant l'algorithme VNG ; à droite, la technique Bayer Drizzle. Une teinte verte dominante est clairement visible sur l'image dématriçée de manière conventionnelle. Notez que l'algorithme VNG a été choisi pour cet exemple parce que les effets expliqués ici sont plus prononcés. Cependant, dans Siril, l'algorithme de dématriçage par défaut est RCD. Cliquez sur l'image pour l'agrandir.

Base de données des filtres et capteurs SPCC
Conversion des données

Le format utilisé pour la base de données est JSON (un format d'échange de données léger dérivé de la notation d'objets JavaScript). Nous vous recommandons de commencer par un fichier existant de la base de données qui correspond à vos besoins et de l'enregistrer sous le nom de votre capteur ou de votre filtre. Il vous suffira ensuite de remplacer les valeurs du fichier par les données que vous avez obtenues.

  • Dans le tableau wavelength, entrez vos mesures de longueur d'onde. Veillez à ce que le champ units soit correctement réglé sur l'une des valeurs suivantes : angstroms, nm, micrometres ou m.

  • Dans le tableau values, entrez l'un ou l'autre :

    • Valeurs de transmittance pour les filtres

    • Valeurs d'efficacité quantique pour les capteurs

    Définissez le champ range en fonction de l'échelle de vos données (par exemple, "range" : 100 si vos valeurs sont des pourcentages, range : 1`` si elles sont normalisées à 1).

Comment contribuer

La base de données SPCC est conçue pour stocker des fichiers JSON de capteurs et de filtres OSC/monochromes disponibles sur le marché. Son objectif principal est de rassembler des données complètes, en encourageant la collaboration au sein de la communauté.

Nous apprécions grandement les contributions de la communauté et encourageons une participation active. Nous avons besoin de données couvrant idéalement une plage de 300nm à 1100nm. Des outils logiciels peuvent être utilisés pour extraire des courbes/graphiques trouvés en ligne, et il est également possible de contacter directement les fabricants pour obtenir des données.

Lisez cette page et aidez-nous en contribuant.

Important

Nous n'incluons pas les filtres à bande étroite. Ces filtres très spécifiques sont synthétisés dans Siril, ce qui garantit leur précision. Ceci s'applique également aux filtres à double bande étroite.

Référence du format de fichier JSON

Voici le modèle des fichiers JSON utilisés dans la base de données SPCC:

[
  {
    "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": [Comma separated array of wavelengths],
    "values": [Comma separated array of values]
  }
]
Notes Importante
  • Définition du champ dataQualityMarker :

    1. Données de provenance inconnue. Non acceptées pour le dépôt siril-spcc-database.

    2. Données numérisées à partir de graphiques du fabricant d'origine (OEM) ou d'autres graphiques réputés au format image.

    3. Données tabulées de résolution inférieure fournies par l'OEM, ou données académiques relatives à la transmittance de filtres standard idéaux (par exemple, filtres photométriques standard génériques).

    4. Données tabulées à haute résolution (pas plus de 2nm d'espacement) fournies par l'OEM.

    5. Données spécifiques à votre propre filtre que vous avez personnellement calibré à l'aide d'équipements appropriés. Il s'agit du marqueur de qualité le plus élevé possible et ne sera jamais attribué aux fichiers .json dans le dépôt qui ne peuvent être que génériques à un modèle d'équipement, et non spécifiques à votre élément d'équipement individuel. Notez que la qualité réelle de ces données dépend entièrement de la qualité de votre équipement de calibration - l'adage "garbage in, garbage out" (déchets en entrée, déchets en sortie) s'applique.

  • Exigences pour le nom du model :

    • Doit être identique pour tous les objets JSON liés dans un ensemble

    • Exemples :

      • Ensemble de filtres RGB : "model": "Chroma RGB"

      • Capteur OSC : "model": "ZWO ASI2600MM"

  • Le champ channel :

    • Requis uniquement pour "type": "OSC_SENSOR" ou "type": "MONO_FILTER"

    • Pour les capteurs OSC, incluez un objet JSON par canal (RED, GREEN, BLUE)

    • Ordre préféré des canaux : RED, GREEN, BLUE

  • Exigences pour le tableau wavelength :

    • Couverture minimale : 380nm à 700nm

    • Plage utile maximale : 336nm à 1020nm (limites spectrales Gaia DR3)

    • Les valeurs doivent être strictement croissantes

    • Aucune valeur en double n'est autorisée

    • Doit utiliser les unités spécifiées (angstroms, nm, micrometres, m)

    Note

    Si vos données de capteur ne s'étendent que jusqu'à 400nm (ce qui est courant avec certains fabricants), il est acceptable d'extrapoler un point unique à 380nm. La réponse du capteur en dessous de 400nm suit généralement un modèle prévisible sur différents capteurs. Ajouter ce point extrapolé à 380nm est préférable à laisser la courbe se terminer à 400nm, ce qui traiterait effectivement toute réponse en dessous de 400nm comme nulle. L'impact de cette extrapolation est minime car la réponse CIE 1931 est très faible dans cette plage de longueurs d'onde.

  • Exigences pour le tableau values :

    • Pour les filtres : contient des valeurs de transmittance

    • Pour les capteurs : contient des valeurs d'efficacité quantique

    • Définir une valeur range appropriée (par ex., 100 pour les pourcentages)

    • Siril met à l'échelle toutes les valeurs dans une plage de 0.0-1.0 en interne

Préférences enregistrées

Comme la plupart des utilisateurs sont susceptibles d'effectuer la majeure partie de leur travail d'imagerie avec une seule configuration, voire deux, il serait fastidieux de sélectionner à nouveau le capteur et les filtres à chaque fois. Les choix de l'utilisateur sont donc automatiquement mémorisés lorsqu'ils sont définis et restaurés lors de la prochaine utilisation de l'outil, même si Siril est fermé et redémarré entre-temps. Cela fonctionne avec le système de préférences, mais il n'est pas nécessaire d'utiliser la boîte de dialogue des préférences pour se souvenir du capteur et des filtres choisis, cela se fait automatiquement.

La référence de blanc choisie n'est pas mémorisée : la référence par défaut, Moyenne des Galaxies spirales, est un choix approprié pour la plupart des scènes astronomiques, et d'autres références de blanc seraient normalement définies pour une image spécifique afin de faire ressortir un aspect particulier de la couleur.

Ligne de commande Siril

spcc [-limitmag=[+-]] [ { -monosensor= [ -rfilter= ] [-gfilter=] [-bfilter=] | -oscsensor= [-oscfilter=] [-osclpf=] } ] [-whiteref=] [ -narrowband [-rwl=] [-gwl=] [-bwl=] [-rbw=] [-gbw=] [-bbw=] ] [-bgtol=lower,upper] [ -atmos [-obsheight=] { [-pressure=] | [-slp=] } ]
Exécute la Correction de Couleur par Spectrophotométrie sur l'image chargée et résolue astrométriquement.

La magnitude limite des étoiles est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement une valeur positive absolue pour la magnitude limite.
Le catalogue d'étoile utilisé pour SPCC est toujours Gaia DR3 : par défaut le catalogue local Gaia DR3 xp_sampled est utilisé si disponible mais cela peut être remplacé avec -catalog={gaia | localgaia}.

Les noms des capteurs et des filtres peuvent être spécifiés à l'aide des options suivantes : -monosensor=, -rfilter=, -gfilter=, -bfilter= ou -oscsensor=, -oscfilter=, -osclpf= ; le nom de la référence des blancs peut être spécifié à l'aide de l'option -whiteref=. Dans tous les cas, le nom doit être fourni exactement tel qu'il apparaît dans les listes déroulantes de l'outil SPCC. Notez que les noms des capteurs, des filtres et des références blanches peuvent contenir des espaces : dans ce cas, lorsqu'ils sont utilisés comme arguments de la commande spcc, l'argument entier doit être placé entre guillemets, par exemple "-whiteref=Average Spiral Galaxy".

Le mode bande étroite peut être sélectionné à l'aide de l'argument -narrowband, auquel cas les arguments de filtre précédents sont ignorés et les longueurs d'onde et largeurs de bande du filtre peuvent être fournies à l'aide de -rwl=, -rbw=, -gwl=, -gbw=, -bwl= et -bbw=.

Si l'un des arguments des données spectrales est omis, la valeur utilisée précédemment sera utilisée.

La tolérance aux valeurs aberrantes de la référence de fond de ciel peut être spécifiée en unités sigma en utilisant -bgtol=lower,upper : ces valeurs sont par défaut de -2,8 et +2,0.

La correction atmosphérique peut être appliquée en passant -atmos. Dans ce cas, les arguments facultatifs suivants s'appliquent : -obsheight= spécifie la hauteur de l'observateur au-dessus du niveau de la mer en mètres (10 par défaut), -pressure= spécifie la pression atmosphérique locale sur le site d'observation en hPa, ou -slp= spécifie la pression atmosphérique au niveau de la mer en hPa (la pression par défaut est de 1013,25 hPa au niveau de la mer)
spcc_list { oscsensor | monosensor | redfilter | greenfilter | bluefilter | oscfilter | osclpf | whiteref }
Imprime une liste de noms SPCC pouvant être utilisés pour définir des capteurs, des filtres ou des références de blanc à l'aide de la commande spcc. Cette commande nécessite un argument pour définir la liste à imprimer : les options sont oscsensor, monosensor, redfilter, greenfilter, bluefilter, oscfilter, osclpf ou whiteref.
Notez que les noms des capteurs, des filtres et des références de blanc peuvent contenir des espaces : dans ce cas, lorsqu'ils sont utilisés comme arguments de la commande spcc, l'argument entier doit être placé entre guillemets, par exemple "-whiteref=Average Spiral Galaxy"

Liens : spcc
Références

Autres outils de couleur

Saturation des couleurs

Cet outil est utilisé pour augmenter la saturation des couleurs de l'image. Il est possible de choisir entre une teinte spécifique ou la teinte globale à rehausser. L'intensité de la saturation est ajustée à l'aide du curseur Quantité.

Le curseur Facteur de fond de ciel définit le facteur multiplicatif pour la valeur du fond du ciel. Plus la valeur est faible, plus l'effet de saturation est important. Une valeur élevée préservera le fond du ciel.

dialogue

Fenêtre de dialogue Saturation des couleurs.

Ligne de commande Siril

satu amount [background_factor [hue_range_index]]
Renforce la saturation des couleurs de l'image chargée. Essayez de manière itérative pour obtenir les meilleurs résultats.
amount peut être un nombre positif pour augmenter la saturation des couleurs, négatif pour la réduire, 0 ne fait rien, 1 l'augmente de 100%
background_factor est un facteur de (médiane + écart-type) utilisé pour définir un seuil, de sorte que seuls les pixels au-dessus de ce seuil seraient modifiés. Cela permet d'avoir un bruit de fond non saturé en couleur, si le choix est fait avec soin. La valeur par défaut est de 1. Une valeur de 0 désactive le seuil.
hue_range_index peut être entre [0, 6], ce qui signifie : 0 pour rose à orange, 1 pour orange à jaune, 2 pour jaune à cyan, 3 pour cyan, 4 pour cyan à magenta, 5 pour magenta à rose, 6 pour tout (par défaut)

Suppression du bruit vert

Le vert n'étant pas naturellement présent dans les images du ciel profond (à l'exception des comètes et de certaines nébuleuses planétaires), si l'image a déjà été calibrée, que ses couleurs sont bien équilibrées et qu'elle ne présente aucun gradient, on peut supposer que si l'image contient du vert, c'est que cela fait partie du bruit. Il est alors intéressant de trouver une méthode pour supprimer ce vert dominant. C'est exactement ce que propose l'outil Suppression du bruit vert, qui est dérivé de l'outil Subtractive Color Noise Reduction de Pixinsight, mais pour le vert uniquement.

dialogue

Fenêtre de dialogue Suppression du bruit vert.

Avertissement

Cet outil n'est pas destiné à être utilisé directement sur l'image issue de l'empilement, avec une teinte verte typique, auquel le niveau de l'arrière-plan n'a pas été égalisé. Son utilisation dans de telles conditions détruirait la chrominance de l'image.

Avertissement

Cet outil est conçu pour être utilisé sur des images non linéaires, car il fonctionne dans un espace colorimétrique non linéaire. Assurez-vous que l'histogramme a été étiré avant d'utiliser cet outil afin d'éviter des résultats de traitement incorrects.

Cet outil a 3 paramètres. La méthode de protection, le montant (appelé \(a\) dans la section suivante), et un bouton Préserve la luminosité. Les méthodes suivantes présentent les différentes façons existantes de supprimer les pixels verts en les remplaçant par un mélange de rouge et de bleu. La quantité n'est disponible que pour les méthodes avec protection par masque. Le choix de sa valeur doit être fait avec prudence afin de minimiser la montée de la dominante magenta dans le fond du ciel. N'hésitez pas à utiliser les boutons Annuler et Rétablir pour affiner la valeur.

Méthode de protection

Protection Masque maximum

\[\begin{split}m &= \text{max}(R,B) \\ G'&= G\times (1 — a)\times (1 — m) + m\times G\end{split}\]

Protection Masque additif

\[\begin{split}m &= \text{min}(1,R+B) \\ G'&= G\times (1 — a)\times (1 — m) + m\times G\end{split}\]

Protection Neutre Moyen (méthode par défaut)

\[\begin{split}m &= 0.5\times (R + B) \\ G'&= \text{min}(G, m)\end{split}\]

Protection Neutre Maximum

\[\begin{split}m &= \text{max}(R,B) \\ G'&= \text{min}(G, m)\end{split}\]

Finalement le bouton Préserver la luminosité préserve la composante CIE L* originale dans l'image traitée, afin de ne traiter que la composante chromatique, il est fortement recommandé de laisser cette option cochée.

Ligne de commande Siril

rmgreen [-nopreserve] [type] [amount]
Applique un filtre de réduction de bruit chromatique. Il supprime la teinte verte de l'image actuelle. Ce filtre est basé sur SCNR de PixInsight et c'est aussi le même filtre utilisé par le plugin HLVG de Photoshop.
La luminosité est préservée par défaut mais peut être désactivé avec le paramètre -nopreserve.

Type peut prendre les valeurs 0 pour neutre moyen, 1 pour neutre maximum, 2 pour masque maximum, 3 pour masque additif, par défaut à 0. Les deux derniers peuvent prendre un argument amount, une valeur entre 0 et 1, la valeur par défaut étant 1

Transformation négative

Transformation négative consiste à soustraire les valeurs des pixels de \((L-1)\), où \(L\) est la valeur maximale possible du pixel, et à les remplacer par le résultat.

L'outil Transformation négative est différent de la vue négative negative-icon dans la barre d'outil. En effet, la transformation n'est pas seulement visuelle, elle s'applique également aux valeurs des pixels. Si vous enregistrez l'image, elle sera enregistrée en négatif.

dialogue

Image originale avec signal faible (Image Cyril Richard).

dialogue

Image négative où le signal est plus visible (Image Cyril Richard).

Astuce

Une utilisation courante de l'outil de transformation négative est la suppression de la dominante magenta des images SHO. Dans ce cas, il faut appliquer Transformation négative, puis Suppression du bruit vert, puis Transformation négative à nouveau.

Ligne de commande Siril

neg
Modifie les valeurs de pixels de l'image actuellement chargée en une vue négative, comme 1-valeur pour 32 bits, ou 65535-valeur pour 16 bits. Cela ne modifie pas le mode d'affichage

Filtres

Cette section présente tous les filtres présents dans Siril. Les filtres sont des outils qui vont modifier les pixels de l'image en fonction des besoins.

Transformation d'ondelettes à trous

Une ondelette est une fonction à la base de la décomposition en ondelettes, une décomposition similaire à la transformée de Fourier à court terme, utilisée dans le traitement des signaux. Elle correspond à l'idée intuitive qu'une fonction correspondant à de petites oscillations, d'où son nom.

Il existe de nombreux types de fonctions d'ondelettes qui ont leurs propres noms, comme le montre la figure ci-dessous.

ondelette de Morlet

Un exemples des quatre différents types d'ondelettes.

La transformée en ondelettes À Trou utilisée dans Siril décompose une image en une série de couches d'échelle, également appelées couches d'ondelettes.

ondelette de Morlet

Représentation par transformée d'ondelettes à Trous avec interpolation bspline.

Ces couches peuvent être extraites avec l'outil d'extraction Couches des ondelettes, cependant ici, elles sont utilisées sans être visuellement accessibles. En général, cet algorithme est largement utilisé à la fin d'un empilement d'images planétaires. Le bruit étant exclusivement contenu dans l'une des couches d'ondelettes, il est possible de faire ressortir les détails de l'image en limitant la montée de bruit.

dialogue

Boite de dialogue de l'outil ondelette.

La première chose à faire est de cliquer sur le bouton Exécuter afin de calculer les couches d'ondelettes en utilisant les paramètres définis ci-dessus, tels que :

  • Type : Il y a deux type d'algorithmes possible : Linear et BSpline. Ce dernier sera le plus souvent choisi, même si il est plus lent.

  • Nb de couches : Nombre de couches d'ondelettes qui seront utilisées. 6 est le nombre maximal de couches pouvant être défini. Pour travailler sur un plus grand nombre de couches il est possible d'utiliser la ligne de commande expliquée ci-dessous.

Ensuite, chaque couche a un curseur qui permet de modifier le contraste de cette couche. Si moins de 6 couches ont été créées, alors seuls les curseurs correspondants seront actifs. Une valeur supérieure à 1 améliore les détails tandis qu'une valeur plus petite a tendance à les réduire.

Ceci est un outil de visualisation en temps réel. Les changements sont affichés en temps réel et vous devez cliquer sur Appliquer pour les valider. En cliquant sur Réinitialiser, tous les curseurs sont remis à 1, annulant ainsi toute transformation en cours.

Ondelette sur Jupiter

Ondelettes appliquées à une image de Jupiter (avec l'aimable autorisation de J.-L. Dauvergne). L'image de gauche est l'image brute à la sortie de l'empilement, tandis que l'image de droite est la même image sur laquelle les ondelettes sont appliquées.

Ligne de commande Siril

wavelet nbr_layers type
Calcule la transformée en ondelettes de l'image chargée sur (nbr_layers=1...n) couche(s) en utilisant la version linéaire (type=1) ou bspline (type=2) de l'algorithme 'à trous'. Le résultat est stocké dans un fichier sous la forme d'une structure contenant les couches, prête pour la reconstruction pondérée avec WRECONS.

Voir aussi EXTRACT

Liens : wrecons, extract

Ligne de commande Siril

wrecons c1 c2 c3 ...
Reconstruit l'image actuelle à partir des couches précédemment calculées avec les ondelettes et pondérées avec les coefficients c1, c2, ..., cn en fonction du nombre de couches utilisées pour la transformation en ondelettes, après l'utilisation de WAVELET

Liens : wavelet

L'exemple donné dans l'image ci-dessus peut être écrit dans la ligne de commande comme suit :

wavelet 6 2
wrecons 31 5 1 1 1 1

Réduction de la trame

Dans certains cas, les images peuvent souffrir d'un défaut de banding. Cela est généralement causé par le capteur et la calibration avec des darks, des offsets et des flats ne permet pas d'améliorer les images.

dialogue

Image d'origine avec la trame visible.

dialogue

Boîte de dialogue Réduction du banding..

La fenêtre de dialogue de réduction du banding comporte plusieurs paramètres permettant d'optimiser le traitement :

  • Quantité définit l'intensité de la correction. Plus la valeur est élevée, plus la correction est forte.

  • Protéger des hautes lumières ignore les pixels lumineux lorsque l'option est cochée.

  • Coeff. 1/Sigma permet d'ajuster la protection des hautes lumières. Une valeur plus élevée assure une meilleure protection.

  • Trame verticale permet à l'utilisateur de corriger la trame si les bandes sont verticales.

L'application du filtre suivant à l'image originale, avec les valeurs de paramètres indiquées dans l'illustration, donne un beau résultat sans trames.

dialogue

Résultat après le passage du filtre. Plus aucune trame n'est visible.

Cette transformation peut facilement être appliquée à une séquence. Il suffit de définir la transformation sur l'image chargée (avec une séquence déjà chargée), puis de cocher le bouton Appliquer à la séquence et de définir le préfixe de sortie de la nouvelle séquence (unband_ par défaut).

Ligne de commande Siril

fixbanding amount sigma [-vertical]
Tente de supprimer les trames horizontales ou verticales de l'image chargée.
amount définit le montant de la correction, entre 0 et 4.
sigma définit le niveau de protection de l'algorithme, plus sigma est élevé, plus la protection est importante, entre 0 et 5. Des valeurs de 1 et 1 sont souvent suffisantes.
L'option -vertical permet de supprimer les trames verticales, l'option horizontale étant la valeur par défaut

Ligne de commande Siril

seqfixbanding sequencename amount sigma [-prefix=] [-vertical]
Même commande que FIXBANDING mais pour la séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "unband_", sauf indication contraire avec l'option -prefix=

Liens : fixbanding

Égalisation d'histogramme adaptatif limité par contraste (CLAHE)

La méthode CLAHE est utilisée pour améliorer le contraste des images. Elle diffère de l'égalisation d'histogramme ordinaire en ce que la méthode adaptative calcule plusieurs histogrammes, chacun correspondant à une section distincte de l'image, et les utilise pour redistribuer les valeurs de luminosité de l'image. Elle peut ainsi améliorer le contraste local et améliorer la définition des bords dans chaque région d'une image.

dialogue

Boite de dialogue du filtre Égalisation d'histogramme adaptatif limité par contraste.

Astuce

Ce filtre est un filtre de visualisation en direct. En d'autres termes, chaque modification des paramètres est automatiquement visible à l'écran, mais cela peut être désactivé en décochant le bouton Aperçu.

  • La taille des tuiles dans lesquelles les histogrammes sont calculés peut être définie à l'aide d'un curseur. Par défaut, elle est réglée sur 8.

  • La limite de Clip est l'option qui empêche la sur-amplification du bruit dans les régions relativement homogènes d'une image. Ensuite, la partie clippée de l'histogramme qui dépasse la limite de clip est redistribuée également dans tous les compartiments de l'histogramme.

Astuce

Ce filtre fonctionne mieux sur des données non linéaires. Il est recommandé d'étirer l'image avant.

dialogue

Voici un exemple de filtre CLAHE appliqué à des données non linéaires avec Tiles Grid Size=21 et Clip Limit=4.20.

Ligne de commande Siril

clahe cliplimit tileSize
Égalise l'histogramme d'une image en utilisant l'égalisation d'histogramme par contraste adaptatif limité.

cliplimit définit le seuil pour la limitation du contraste.
tilesize définit la taille de la grille pour l'égalisation d'histogramme. L'image d'entrée sera divisée en tuiles rectangulaires de taille égale

Correction cosmétique

Dans Siril, la correction cosmétique est l'étape qui permet de se débarrasser des pixels chauds et froids de l'image. Elle est généralement effectuée lors du prétraitement à l'aide du master-dark. En effet, ce dernier contient généralement une bonne carte des pixels défectueux et il est plus facile de les trouver sur lui. Cependant, lorsque vous ne disposez pas d'un master-dark, Siril offre une alternative avec un algorithme de détection automatique de ces pixels dans une image brute.

dialogue

Fenêtre de dialogue de l'outil Correction cosmétique.

La fenêtre de dialogue contient plusieurs paramètres nécessaires au bon fonctionnement de l'outil. Cependant, l'utilisation des paramètres par défaut donne généralement de bons résultats.

  • Sigma froid : Combien de fois (en unités d'écart moyen) la valeur d'un pixel doit-elle différer de celle de ses voisins pour être considérée comme un pixel froid.

  • Sigma froid : Combien de fois (en unités d'écart moyen) la valeur d'un pixel doit-elle différer de celle de ses voisins pour être considérée comme un pixel chaud.

  • Quantité : Il s'agit d'un paramètre de modulation où 0 signifie aucune correction et 1, 100% corrigé.

  • CFA : Cette option doit être coché pour des images CFA avec une matrice de Bayer. Ceci ne fonctionne pas avec les capteurs X-Trans.

Cette opération peut être appliquée à des séquences. Ouvrez une séquence et préparez les paramètres que vous voulez utiliser, puis cochez le bouton Appliquer à la séquence et définissez le préfixe de sortie de la nouvelle séquence (cc_ par défaut).

Théorie

Détection des pixels chauds

Appelons \(m_{5\times 5}\) la médiane des 5 plus proches voisins Si la valeurs d'un pixel est plus grande que

\[m_{5\times 5}+\text{max}(\text{avgDev}, \sigma_\text{high}\times \text{avgDev}),\]

avec avgDev, la Déviation moyenne de l'image entière.

Alors le pixel est remplacé par la moyenne des \(3\times 3\) pixels : \(a_{3\times 3}\), mais seulement si

\[a_{3\times 3} < m_{5\times 5}+\frac{\text{avgDev}}{2}.\]

Détection des pixels froids

Si la valeur du pixel est inférieure à

\[m_{5\times 5} - (\sigma_\text{low}\times \text{avgDev}),\]

alors le pixel est remplacé par \(m_{5\times 5}\).

dialogue

Animation montrant la correction cosmétique.

Ligne de commande Siril

find_cosme cold_sigma hot_sigma
Détection et remplacement automatique des pixels froids et chauds dans l'image chargée, avec les seuils transmis en arguments en unités sigma

Ligne de commande Siril

find_cosme_cfa cold_sigma hot_sigma
Même commande que FIND_COSME mais pour les images CFA

Liens : find_cosme

Déconvolution

La déconvolution est un outil mathématique permettant de compenser les effets de flou ou de distorsion dans une image. La véritable scène n'est pas ce qui est enregistré par votre capteur - vous enregistrez une estimation de la véritable scène convoluée par une PSF (en termes mathématiques, le "flou PSF" qui représente la distorsion atmosphérique, les propriétés physiques de votre télescope, le flou de mouvement, etc., dégradant votre estimation). La déconvolution peut, dans une certaine mesure, inverser cette dégradation d'image. Cependant, il est important de dire dès le départ que la déconvolution est ce que les mathématiciens appellent un problème mal posé (comme la plupart des problèmes inverses). Mal posé signifie qu'une solution peut ne pas exister, si une solution existe, elle peut ne pas être unique et elle peut ne pas avoir de dépendance continue par rapport aux données. Essentiellement, cela signifie que la déconvolution est, même théoriquement, très difficile et qu'il n'y a aucune garantie que cela fonctionnera.

Tout cela est encore plus difficile lorsque nous ne connaissons pas exactement la PSF que nous essayons de supprimer. En astronomie, nous pouvons théoriquement avoir une idée de la PSF grâce à l'effet de flou sur les sources ponctuelles (étoiles) que nous imagons. Cependant, parfois la véritable PSF n'est pas constante à travers l'image, parfois d'autres facteurs tels que la saturation des étoiles empêchent la PSF de l'étoile d'être une estimation entièrement précise de la PSF, et parfois (par exemple pour l'imagerie lunaire) il n'y a pas d'étoiles.

Siril vise à fournir une approche flexible de la déconvolution. Il existe plusieurs options pour définir ou estimer la PSF, et plusieurs algorithmes de déconvolution à choisir pour l'étape finale de la déconvolution une fois que la PSF est définie.

dialogue

Exemple de déconvolution sur un champ d'étoiles.

La déconvolution est accessible par le menu Traitement de l'image ou par les commandes Siril.

dialogue

Boite de dialogue de l'outil déconvolution.

Vue d'ensemble de l'utilisation
  • Pour générer une PSF de déconvolution, sélectionnez la méthode de génération de PSF requise et appuyez sur Générer PSF. Cette opération peut être effectuée séparément de la déconvolution proprement dite afin que l'utilisateur puisse voir l'effet de la modification des paramètres de la PSF.

  • Siril ne génère que des PSF monochromes car il s'agit du cas d'utilisation le plus courant et cela simplifie l'interface utilisateur. Cependant, trois PSF monochromes peuvent être sauvegardées et composées pour produire une PSF à 3 canaux qui peut être chargée et utilisée pour déconvoluer des images à 3 canaux.

  • Pour appliquer la déconvolution à une seule image, sélectionnez la méthode de génération de PSF requise et appuyez sur Appliquer. Si une méthode d'estimation de PSF aveugle a été exécutée précédemment, la méthode sera automatiquement définie sur PSF précédente, afin d'éviter de recalculer inutilement la PSF.

  • Pour appliquer la déconvolution à une séquence, procédez comme ci-dessus mais assurez-vous de cocher l'option Appliquer à la séquence. Vous pouvez également spécifier un préfixe personnalisé à donner à la séquence de sortie : si aucun autre préfixe n'est fourni, le préfixe par défaut (dec_) sera utilisé.

  • Lors de la déconvolution d'une séquence, la PSF sera calculée uniquement pour la première image. La même PSF sera réutilisée pour toutes les images de la séquence.

Aperçu des méthodes de définition du noyau de flou
  • Descente \(\boldsymbol{ℓ_0}\) : Il s'agit de la méthode d'estimation de la PSF par défaut, basée sur les travaux d'Anger, Delbracio et Facciolo. Les paramètres n'ont généralement pas besoin d'être ajustés, à l'exception des PSF particulièrement grandes pour lesquelles vous pouvez essayer le modèle d'estimation des PSF à plusieurs échelles. Ce dernier est désactivé par défaut car, au cours du développement, il a été constaté qu'il avait tendance à produire des résultats peu naturels avec les tailles de PSF les plus courantes, petites ou moyennes.

  • Irrégularités spectrales [Goldstein2012] : Cette méthode d'estimation de la PSF est proposée comme alternative. En général, elle n'est pas aussi performante que la méthode de descente \(ℓ_0\), mais elle peut être utile si vous découvrez une image pour laquelle la méthode par défaut ne donne pas de bons résultats. Pour cette méthode, l'image latente nette ne doit pas contenir de bords tant que le modèle de décroissance spectrale est respecté. D'autre part, la méthode de descente \(ℓ_0\) suppose un modèle similaire (puisque les bords ont la même décroissance spectrale), mais nécessite d'avoir des gradients peu denses et d'être contrastée, donc les bords doivent être en phase, donc théoriquement ce modèle peut fonctionner mieux sur des images sans étoiles et peu contrastées. Ce modèle peut donc théoriquement mieux fonctionner sur les images sans étoile à faible contraste. Il faudra probablement expérimenter pour trouver l'algorithme qui correspond le mieux à vos données.

  • PSF à partir d'étoiles : Cette méthode modélise une PSF à partir de la PSF moyenne des étoiles sélectionnées. Il est important d'être sélectif dans le choix des étoiles : elles ne doivent pas être saturées, car cela entraînerait une distorsion importante de l'estimation de la PSF, mais elles ne doivent pas non plus être si faibles que les fonctions d'analyse d'étoiles de Siril fournissent des mesures inexactes des étoiles. Les étoiles choisies doivent être raisonnablement brillantes, assez centrales dans l'image et dans une zone de l'image avec un arrière-plan assez constant. Une fois les étoiles sélectionnées, vous pouvez choisir un modèle de profil d'étoile gaussien ou de Moffat et, lors de l'exécution de la déconvolution, la PSF sera synthétisée à partir des paramètres moyens des étoiles sélectionnées. Si aucune étoile n'est sélectionnée, Siril tentera d'auto-détecter les étoiles dont l'amplitude du pic est comprise entre 0,07 et 0,7, avec un profil de Moffat. Cette plage permet d'éviter les étoiles saturées ainsi que celles qui sont trop faibles pour donner une solution précise, et fournit généralement de bons résultats.

  • PSF manuelle : Cette méthode vous permet de définir une PSF manuellement. Il est possible de définir des modèles de PSF gaussiens, de Moffat ou en disque. Notez que la FWHM est spécifiée en pixels et non en secondes d'arc. Les modèles gaussiens et de Moffat conviennent à la déconvolution des formes d'étoiles résultant de la distorsion atmosphérique ; le modèle de PSF de disque convient à la déconvolution de l'effet d'un léger défaut de mise au point.

  • Charger une PSF à partir d'un fichier : Cette méthode vous permet de charger une PSF à partir de n'importe quel format d'image supporté par Siril. La PSF fournie doit être carrée (elle sera rejetée si elle n'est pas carrée) et doit être impaire (elle sera recadrée d'un pixel dans chaque direction si elle n'est pas impaire, mais cela donnera une PSF légèrement décentrée et n'est pas optimal par rapport à la fourniture d'une PSF impaire dès le début). Des PSF monochromes ou à trois canaux peuvent être chargées. Si une PSF à 3 canaux est chargée en conjonction avec une image monochrome, les valeurs de luminance uniformément pondérées de la PSF seront utilisées. Si une PSF à 3 canaux est chargée avec une image à 3 canaux, chaque canal de l'image sera déconvolué en utilisant le canal correspondant de la PSF. Si unePSF monochrome est chargée avec une image à 3 canaux, l'image sera convertie dans l'espace couleur LAB et le canal L (Luminance) sera déconvolué en utilisant la PSF monochrome pour des raisons d'efficacité de calcul, et le L déconvolué sera recombiné avec les canaux A et B et reconverti en RVB.

  • PSF précédente : Cette méthode permet de réutiliser la PSF précédemment estimée. Elle est surtout utile avec les méthodes d'estimation de la PSF en aveugle : si vous êtes satisfait de la PSF estimée mais que vous souhaitez effectuer un certain nombre de tests en utilisant différents paramètres pour l'étape finale de la déconvolution, vous pouvez réutiliser la PSF précédente et économiser du temps de calcul.

  • Une fois estimées, les PSF peuvent être sauvegardées si on le souhaite. Si Siril est compilé avec le support libtiff, la PSF sera sauvegardée au format TIFF 32 bits, avec le même nom de fichier que l'image courante, mais horodaté et suffixé par _PSF. Si Siril a été construit sans le support de libtiff, le PSF sera sauvegardé sous la forme d'un fichier FITS. Bien que ce soit le format principal de Siril pour les fichiers d'images astronomiques, le format TIFF est préféré pour les PSF : l'inconvénient d'utiliser le format FITS pour les PSF est une compatibilité réduite avec les éditeurs d'images que vous pourriez souhaiter utiliser pour éditer ou examiner le fichier sauvegardé.

Astuce

Si la génération aveugle d'une PSF de déconvolution peut se faire sur des données linéaires et non linéaires, l'utilisation d'une PSF à partir d'une PSF d'étoile ne peut se faire que sur des images linéaires. Dans le cas contraire, les valeurs de PSF ne seraient pas valides.

Astuce

Si une ROI est défini, les méthodes d'estimation des PSF en aveugle calculeront les PSF à partir de la ROI plutôt que de l'image entière. Si vous souhaitez calculer une PSF à partir de l'image entière, vous devez effacer la ROI avant d'estimer la PSF, puis définir la ROI pour appliquer un aperçu. Cependant, vous avez également la possibilité de calculer la PSF uniquement à partir d'une partie sélectionnée de l'image. Cela peut être souhaitable si vous avez des aberrations optiques près du bord de l'image et que vous souhaitez estimer la PSF à partir de la zone centrale exclusivement.

Vue d'ensemble de la déconvolution non aveugle
  • Déconvolution Richardson-Lucy [Lucy1974] : Il s'agit de l'algorithme de déconvolution non aveugle par défaut. Il s'agit d'une méthode itérative, célèbre pour son utilisation dans la correction des distorsions d'image au début de la période d'exploitation du télescope spatial Hubble. Dans Siril, il est régularisé en utilisant soit la méthode de variation totale, qui vise à pénaliser l'algorithme pour l'amplification du bruit, soit la norme de Frobenius de la matrice hessienne locale. Cette régularisation est basée sur les dérivées secondes. En plus de la régularisation, un paramètre d'arrêt précoce est fourni, qui permet d'arrêter l'algorithme dès que son taux de convergence tombe en dessous d'un certain niveau. L'augmentation de la valeur du paramètre d'arrêt précoce permet de réduire les artefacts autour des étoiles et des arêtes (trop) vives. Deux formulations de l'algorithme de Richardson-Lucy sont fournies : la formulation multiplicative et la formulation de descente de gradient. Cette dernière permet un meilleur contrôle, car la taille du pas de descente du gradient peut être modifiée (l'inconvénient est qu'en utilisant des plus petits pas, plus d'itérations sont nécessaires pour atteindre le même niveau de convergence). Le plus grand avantage de la méthode de descente de gradient est qu'elle permet d'utiliser une plus grande régularisation - ce qui peut être problématique dans l'algorithme multiplicatif de Richardson-Lucy car le terme de régularisation apparaît dans le dénominateur et de petites valeurs ici (forte régularisation) peuvent causer de l'instabilité. Siril utilisera la convolution naïve pour les noyaux de petite taille et la convolution basée sur les FFT pour les noyaux de plus grande taille où les FFT fournissent un algorithme plus efficace. (Ceci est automatique et ne nécessite aucune intervention de l'utilisateur.)

  • Méthode de filtrage de Wiener : Cette méthode est une méthode de déconvolution non itérative. Elle modélise un profil de bruit supposé gaussien, c'est-à-dire un bruit modélisé par un profil constant. La constante alpha est utilisée pour définir la force de régularisation par rapport au niveau de bruit. Comme pour les autres algorithmes, une valeur plus petite pour alpha permet une plus grande régularisation. Cet algorithme peut être bon pour les images lunaires où le régime de bruit est gaussien et non de Poisson, mais il fonctionne généralement mal sur les images de ciel profond où le bruit a toujours tendance à avoir un caractère de Poisson.

  • Méthode de Split Bregman : Cette méthode est utilisée en interne dans les processus d'estimation de la PSF et est également proposée comme algorithme de déconvolution en phase finale. Il s'agit d'un algorithme couramment utilisé pour résoudre les problèmes d'optimisation convexe. Cet algorithme est également régularisé à l'aide d'une fonction de coût de variation totale. Il n'est pas aussi performant que l'algorithme de Richardson-Lucy pour les paysages étoilés, mais il peut être envisagé pour les images sans étoiles ou les images de la surface lunaire.

Astuce

Le choix de la méthode de déconvolution est très important pour obtenir de bons résultats. En général, pour les images de ciel profond, il est important d'utiliser une méthode de Richardson-Lucy : les méthodes de Split Bregman et de Wiener donnent de mauvais résultats autour des étoiles en raison de la gamme dynamique extrême. Pour les images linéaires, il est généralement préférable d'utiliser les méthodes de Richardson-Lucy à descente de gradient, et si des artefacts apparaissent autour des étoiles brillantes, il faut alors réduire la taille du pas. Cette approche réduit l'impact de chaque itération, ce qui nécessite un plus grand nombre d'itérations, mais cela signifie que vous pouvez obtenir un contrôle plus fin en effectuant la déconvolution jusqu'au point où les artefacts commencent à se former, puis en revenant très légèrement en arrière. Pour les images étirées, les algorithmes multiplicatifs de Richardson-Lucy peuvent être utilisés.

Astuce

Pour les images lunaires et planétaires empilées, les méthodes de Split Bregman ou de Wiener peuvent être plus appropriées. Ces méthodes ne nécessitent généralement pas d'itération comme le fait Richardson-Lucy, et elles peuvent être mieux adaptées aux caractéristiques de bruit des images empilées à rapport signal/bruit élevé. (L'algorithme de Richardson-Lucy est basé sur l'hypothèse d'un bruit de Poisson, ce qui est généralement vrai pour l'imagerie de ciel profond, alors que la méthode de Wiener mise en œuvre ici suppose une distribution de bruit gaussienne qui peut mieux convenir aux images planétaires/lunaires empilées).

Paramètres et Réglages

Paramètres généraux

  • Taille PSF. La taille de la PSF d'entrée doit être choisie suffisamment grande pour garantir que la PSF est incluse dans le domaine spécifié. Toutefois, si elle est trop grande, les méthodes d'estimation aveugle de la PSF peuvent donner des résultats moins bons et plus longs à calculer.

  • Lambda (\(\lambda\)). Paramètre de régularisation pour l'estimation de la PSF. Essayez de diminuer cette valeur pour les images bruitées.

Paramètres d'estimation de la PSF de descente de \(\boldsymbol{ℓ_0}\)

  • Multi-échelle. Ce paramètre active l'estimation de la PSF à plusieurs échelles. Cela peut aider à stabiliser l'estimation de la PSF lorsque l'on spécifie une grande taille de PSF, mais certaines PSF générées avec cette option peuvent donner lieu à des résultats peu naturels et elle est donc désactivée par défaut.

  • Paramètres experts. Ils ne devraient normalement pas nécessiter de réglage, mais sont mis à la disposition des curieux.

    • Gamma définit la force de régularisation utilisée lors de l'étape de prédiction de l'image déconvoluée. Pour un gamma donné, l'estimation devient aussi plus bruitée à mesure que le bruit augmente. Si gamma est augmenté, l'estimation est moins affectée par le bruit mais tend à être plus lisse. La valeur par défaut de 20 a été déterminée expérimentalement dans [Anger2019].

    • Itérations définit le nombre d'itérations utilisées dans la procédure d'estimation de la PSF. Les auteurs de l'algorithme indiquent qu'il n'y a que peu d'avantages à augmenter ce nombre à 3 et qu'il n'y a aucun avantage à l'augmenter au-delà de 3.

    • Le rapport lambda et le minimum lambda définissent les paramètres permettant d'affiner la prédiction de l'image nette par le biais de valeurs successives du paramètre de régularisation du prédicteur d'image nette à chaque itération de la méthode.

    • Le facteur d'échelle, le flou de suréchantillonnage et Sous-échantillonner le flou ne sont utilisés que lorsque l'estimation multi-échelle est active. Ils définissent le facteur d'échelle par défaut entre chaque niveau d'échelle et la quantité de flou à utiliser lors de la remise à l'échelle entre chaque échelle.

    • Seuil du noyau. Les valeurs inférieures à ce niveau dans l'estimation de la PSF sont mises à zéro.

Paramètre de la détermination de la PSF par irrégularité spectrale

  • Le facteur de compensation contrôle la force d'un filtre utilisé pour éviter une netteté excessive dans la PSF estimée. Pour les images présentant un flou intrinsèque, il convient d'utiliser une valeur proche de l'unité. Pour les images intrinsèquement nettes, des valeurs faibles peuvent entraîner des artefacts et la valeur doit être augmentée jusqu'à un grand nombre, ce qui désactive effectivement le filtre.

  • Paramètres experts. Ils ne devraient normalement pas nécessiter de réglage, mais sont mis à la disposition des curieux.

    • Itérations de la boucle interne définit le nombre d'itérations effectuées dans la boucle intérieure de la méthode d'irrégularité spectrale. L'algorithme converge rapidement et il peut être possible de réduire ce nombre à environ 100 sans trop dégrader le résultat.

    • Échantillons par boucle externe. Ce paramètre contrôle le nombre de phases aléatoires à échantillonner. Étant donné que la récupération de la phase commence par des valeurs aléatoires pour chaque échantillon, il est important de tirer suffisamment d'échantillons pour éviter de converger vers un minimum local. La PSF se stabilise rapidement pour les images à faible bruit, mais si vous cherchez à améliorer les résultats de cette méthode, c'est le premier des paramètres experts à essayer d'ajuster, en particulier avec des images présentant des niveaux de bruit plus élevés.

    • Itération de la boucle externe. [Anger2018], suggère que 2 itérations peuvent suffire à produire une estimation plausible de la PSF, et qu'il est négligeable d'augmenter ce nombre au-delà de 3.

PSF des étoiles

  • Cette méthode de génération de PSF n'a pas de paramètres ajustables. Elle génère une PSF basée sur les paramètres moyens des étoiles sélectionnées, en utilisant la commande findstar ou la boîte de dialogue PSF Dynamique. Les paramètres moyens sont affichés dans la boîte de dialogue de déconvolution lorsque cette méthode de génération de PSF est sélectionnée. Il est préférable que l'utilisateur sélectionne activement les étoiles qu'il souhaite utiliser pour cette méthode, afin d'obtenir la PSF la plus précise. Idéalement, une dizaine d'étoiles assez brillantes mais non saturées devraient être sélectionnées dans la région centrale de l'image (pour exclure les étoiles qui peuvent souffrir de coma ou d'autres aberrations). Cependant, si l'utilisateur n'a sélectionné aucune étoile, Siril tentera de détecter automatiquement les étoiles appropriées en exécutant sa routine de détection avec des filtres réglés pour ne conserver que les étoiles dont les amplitudes de crête sont comprises entre 0,07 et 0,7. Cette plage permet d'éviter les étoiles saturées et celles qui sont trop faibles pour donner une solution précise. Cette méthode fonctionne bien dans la plupart des cas, mais peut encore être affectée par des aberrations hors centre.

  • Si vous cochez la case PSF symétrique, la PSF générée sera circulaire. Cela correspondra à la moyenne des FWHM et beta des étoiles sélectionnées mais ne correspondra à aucune élongation.

PSF manuel

Cette méthode de génération de PSF permet de spécifier une PSF paramétrique personnalisée.

  • Profil permet de choisir le profil de la PSF. Les profils Gaussien, Moffat, disque et dique d'Airy sont supportés.

    • Les PSF gaussiennes et de Moffat sont utilisées pour faire correspondre les paramètres des étoiles mesurés à partir de l'image. Elles devraient fournir une bonne estimation de la fonction de flou totale appliquée à l'image, car les étoiles sont des sources ponctuelles.

      dialogue

      Un exemple d'une PSF avec un profil Moffat avec fwhm=5", Angle=45°, Ratio=1.20, \(\beta=4.5\) et une taille de PSF de 15.

    • Les PSF disque sont utilisés pour déconvoluer les images qui ne sont pas au point.

      dialogue

      Un exemple de profil Disque avec fwhm=5" et une taille de PSF de 15.

    • La PSF de disque d'Airy est utilisée pour déconvoluer la diffraction qui est la conséquence physique de la diffraction par l'ouverture de votre télescope.

      dialogue

      Exemple d'une PSF d'un disque d'Airy avec Diamètre = 250mm, Longueur focal = 4500mm, Longueur d'onde = 525nm, Taille Pixel = 2.9µm, Obstruction Centrale = 40% et avec une taille de PSF de 41.

  • FWHM spécifie la largeur à mi-maximum du profil choisi (pour les PSFs de disque, il spécifie simplement le rayon).

  • Beta (\(\beta\)) spécifie le paramètre beta utilisé pour le profil de PSF Moffat. Il est ignoré par les autres profils de PSF.

  • Pour les PFS du disque d'Airy, un certain nombre de paramètres de votre télescope et de votre capteur sont nécessaires :

    • Ouverture

    • Longueur focale

    • Taille de pixel du capteur

    • Longueur d'onde centrale de l'image. Siril essaiera d'extraire ces données des métadonnées de l'image lorsqu'elles sont disponibles, mais si certains paramètres sont manquants ou semblent déraisonnables, Siril les mettra en évidence et imprimera un avertissement dans le log vous recommandant de les vérifier. Le rapport de l'obstruction centrale est également nécessaire pour générer un disque d'Airy précis. Il est exprimé en pourcentage, c'est-à-dire que la surface totale de l'obstruction centrale est divisée par la surface totale de l'ouverture x 100. Pour les réfracteurs (avec des lentilles), ce pourcentage est nul ; pour les autres télescopes, il varie : il peut être d'environ 20 % pour un réflecteur newtonien ou de 40 à 50 % pour certains télescopes Dall-Kirkham corrigés. Vous devrez mesurer votre instrument ou consulter les spécifications du fabricant.

Déconvolution de Richardson-Lucy

Les paramètres utilisés pour configurer la déconvolution de Richardson-Lucy dans Siril sont les suivants :

  • alpha définit l'intensité de la régularisation. Une valeur plus petite d'alpha donne une régularisation plus forte et un résultat plus lisse ; une valeur plus grande réduit la force de régularisation et préserve plus de détails de l'image, mais peut entraîner l'amplification du bruit.

  • Itérations spécifie le nombre maximum d'itérations à utiliser. En l'absence de bruit, un grand nombre d'itérations fera converger l'estimation de la déconvolution plus près de l'image réelle, mais un nombre excessif d'itérations amplifiera également le bruit et provoquera des artefacts en annaux autour des étoiles. La valeur par défaut est 1 itération : un nombre plus élevé peut être défini pour calculer plusieurs itérations automatiquement, ou vous pouvez continuer à appuyer sur Appliquer pour appliquer une itération à la fois jusqu'à ce que vous soyez satisfait du résultat. (Ou aller plus loin, décider que vous n'êtes plus satisfait et utiliser Annuler.)

  • Critère d'arrêt définit un critère de convergence basé sur les différences d'estimation successives. L'algorithme s'arrête lorsque la convergence se situe dans la limite spécifiée. Il s'agit d'un paramètre important - si vous obtenez des anneaux autour des étoiles dans votre image finale, essayez d'augmenter la valeur du critère d'arrêt. Ce paramètre peut être complètement désactivé à l'aide du bouton à cocher.

  • Méthode d'algorithme spécifie s'il faut utiliser l'implémentation multiplicative ou l'implémentation par descente de gradient.

  • Taille du pas spécifie la taille du pas à utiliser pour l'implémentation de la descente de gradient. Ce paramètre ne doit pas être trop grand, sinon l'algorithme ne convergera pas. Ce paramètre n'a aucun effet si l'implémentation multiplicative est sélectionnée.

    Astuce

    Pour les images linéaires, l'utilisation des méthodes de descente de gradient permet d'obtenir le contrôle nécessaire pour éviter la formation d'anneaux autour des étoiles. Cependant, pour la déconvolution d'images étirées, cette méthode peut être inutilement lente. L'utilisation de méthodes multiplicatives permet donc souvent de gagner du temps sans compromettre la qualité de l'image.

Déconvolution de Split Bregman

Les paramètres utilisés pour configurer la déconvolution de Split Bregman dans Siril sont les suivants :

  • alpha définit l'intensité de la régularisation. Une valeur plus petite d'alpha donne une régularisation plus forte et un résultat plus lisse ; une valeur plus grande réduit la force de régularisation et préserve plus de détails de l'image, mais peut entraîner l'amplification du bruit.

  • Itérations spécifie le nombre maximum d'itérations à utiliser. La méthode Split Bregman ne nécessite pas d'itérations multiples dans la forme implémentée ici, mais peut être itérée si on le souhaite. Cela ne fait généralement qu'une petite différence et la valeur par défaut est donc 1.

Déconvolution de Wiener

La déconvolution de Wiener dans Siril ne nécessite qu'un seul paramètre :

  • alpha définit l'intensité de la régularisation. Une valeur plus petite d'alpha donne une régularisation plus forte et un résultat plus lisse ; une valeur plus grande réduit la force de régularisation et préserve plus de détails de l'image, mais peut entraîner l'amplification du bruit.

Paramètres de performance de la FFTW

Les algorithmes d'estimation et de déconvolution de la PSF font un usage intensif des transformées de Fourier rapides à l'aide de la bibliothèque FFTW. Ceci offre un certain nombre d'options de réglage, qui peuvent être ajustées dans l'onglet performance du dialogue principal Siril préférences.

Note sur l'ordre des lignes de l'image

Les différents types d'images traitées par Siril peuvent avoir leurs données de pixels arrangées dans des ordres différents. Les fichiers vidéo SER stockent toujours les données de haut en bas, tandis que les fichiers FITS peuvent stocker les données de bas en haut ou de haut en bas. L'ordre ascendant est la recommandation initiale, mais de plus en plus de fichiers FITS proviennent de caméras CMOS qui ont tendance à suivre un ordre descendant des pixels.

Lorsqu'une image est déconvoluée avec une PSF créée à partir de la même image (ou ouverte), cela ne pose aucun problème. Cependant, des problèmes peuvent survenir si une PSF est générée à partir d'une image avec un ordre des lignes et utilisée pour déconvoluer une image ou une séquence avec l'ordre des lignes opposé. Il s'agit d'un cas d'utilisation particulier, mais son traitement systématique donne lieu à un comportement qui, à première vue, peut être surprenant : il est donc expliqué ci-dessous.

Siril traite le problème en suivant l'ordre des lignes de l'image avec laquelle le PSF a été créé. Les PSF sont toujours sauvegardés en utilisant un ordre de rangée ascendant (en les retournant automatiquement s'ils ont été créés avec une image descendante), et lorsqu'ils sont chargés, l'ordre de rangée correspond à l'ordre de rangée de l'image actuellement ouverte. Si une image dont l'ordre des lignes est opposé est ouverte, l'ordre des lignes de la PSF sera modifié pour correspondre. Cela signifie que si, par exemple, vous prenez des images FITS ascendantes, utilisez l'une d'entre elles pour générer une PSF, puis les convertissez en une séquence SER descendante, la PSF sera convertie dans l'orientation correcte pour correspondre à la séquence SER. Si une PSF est en cours de prévisualisation au moment où une image avec l'ordre des lignes opposé est ouverte, la prévisualisation ne sera pas mise à jour immédiatement : le changement d'ordre des lignes sera détecté automatiquement et la PSF sera inversée au moment où elle sera appliquée à l'image.

Déconvolution : Conseils d'utilisation

Vous êtes arrivé ici en cliquant sur le bouton "Conseils" de l'outil de déconvolution dans Siril. Ne vous inquiétez pas : la déconvolution est une technique délicate. Même en théorie, elle est vraiment difficile : il n'y a aucune garantie que les mathématiques convergent toujours vers une solution unique qui améliore votre image. Cela dit, voici quelques conseils pour vous aider à tirer le meilleur parti des algorithmes de déconvolution de Siril.

Quelle PSF utiliser ?

L'utilisation d'une PSF précise est fondamentale pour obtenir de bons résultats avec la déconvolution. Les deux façons les plus simples de générer une PSF sont d'utiliser une estimation aveugle de la PSF, ou de modéliser votre PSF sur les étoiles de votre image.

PSF des étoiles

Siril peut détecter et modéliser les étoiles dans votre image. Voir la page d'aide de Dynamic PSF pour plus de détails. Pour obtenir un bon modèle pour votre PSF, essayez de sélectionner le profil d'étoile de Moffat dans PSF Dynamique. Les étoiles sont des sources ponctuelles, donc la fonction d'étalement d'une étoile moyenne est un bon modèle pour les effets de flou que nous essayons d'éliminer par déconvolution.

Astuce

Une fois les étoiles détectées, triez-les par amplitude de pic (paramètre "A"). Sélectionnez et supprimez celles dont l'amplitude est supérieure à 0,7 ou inférieure à 0,1, et si votre image contient des galaxies de fond, vérifiez qu'il ne reste pas de faux positifs. Les étoiles dans cette gamme de luminosité ne sont pas saturées et pas trop faibles pour donner un modèle PSF précis.

Astuce

Si la génération aveugle d'une PSF de déconvolution peut se faire sur des données linéaires et non linéaires, l'utilisation d'une PSF à partir d'une PSF d'étoile ne peut se faire que sur des images linéaires. Dans le cas contraire, les valeurs de PSF ne seraient pas valides.

Estimation de la PSF en aveugle

Ces méthodes peuvent estimer automatiquement une PSF sur la base de l'image elle-même. Si vous n'avez pas de meilleures connaissances préalables de la PSF, comme des étoiles dans l'image (par exemple, une imagerie lunaire qui ne contient pas d'étoiles), cela peut être votre meilleure option. Dans la plupart des cas, il est recommandé d'utiliser la méthode par défaut \(\boldsymbol{ℓ_0}\) : elle est plus rapide et donne généralement de meilleurs résultats.

Astuce

Quelle que soit la façon dont vous générez votre PSF, vérifiez l'aperçu pour vous assurer qu'elle ne semble pas tronquée. Si c'est le cas, augmentez la taille de la PSF jusqu'à ce qu'aucune partie significative de la PSF ne soit coupée.

Autres méthodes de génération de PSF

D'autres méthodes de génération de PSF méritent d'être mentionnées : le profil de disque manuel et le disque d'Airy. Le profil de disque peut être utilisé pour améliorer les images dont la mise au point est légèrement décalée. Essayez de faire correspondre la taille du disque à la taille du flou hors foyer. Le disque d'Airy peut être utilisé pour corriger le léger flou causé par la diffraction du tube du télescope lui-même.

Astuce

Si vous avez un seeing exceptionnel (peu ou pas de flou atmosphérique), la déconvolution de l'image à l'aide d'un disque d'Airy peut suffire.

La déconvolution de l'image

Une fois que vous avez généré une PSF dont vous êtes satisfait, vous êtes prêt à faire une déconvolution de votre image. Il est important d'utiliser les bons paramètres pour obtenir de bons résultats.

Astuce

La déconvolution est assez lente pour les images de grande taille. Pour trouver plus rapidement les meilleurs paramètres, enregistrez votre travail à ce stade et utilisez la fonctionnalité ROI.

Images avec des étoiles

Les images contenant des étoiles, en particulier les données linéaires (non étirées), doivent toujours être déconvoluées à l'aide des méthodes de Richardson-Lucy. Ignorez Split Bregman et Wiener : ces algorithmes sont adaptés aux images d'objets du système solaire.

Les images du ciel profond posent deux défis à la déconvolution : l'anneau autour des étoiles brillantes et l'amplification du bruit de fond.

Pour traiter les anneaux autour des étoiles, essayez d'utiliser la méthode de descente de gradient et augmentez progressivement le nombre d'itérations jusqu'à ce que vous commenciez à voir des signes d'anneaux sombres se former autour des étoiles, puis réduisez légèrement les itérations.

dialogue

L'animation ci-dessus montre l'effet de la réduction du nombre d'itérations de la formulation multiplicative de Richardson-Lucy : elle démontre également le contrôle plus fin qui peut être obtenu en utilisant la méthode de descente de gradient, au prix d'un plus grand nombre d'itérations.

Pour traiter l'amplification du bruit de fond, vous pouvez essayer d'appliquer une petite réduction du bruit avant la déconvolution. Dans la boîte de dialogue Réduction de bruit choisissez l'algorithme de débruitage secondaire Anscombe VST et laissez la modulation assez basse, essayez autour de 50-60%. Vous voulez juste atténuer le bruit pour vous permettre de pousser le nombre d'itérations un peu plus loin, sans générer une image complètement lisse.

Images Lunaires

En général, vous pouvez souhaiter augmenter la netteté d'une image lunaire après l'avoir empilée. Les images lunaires empilées peuvent être très bien affinées en utilisant les méthodes Split Bregman ou Wiener. Je choisis habituellement la méthode Split Bregman. Essayez de laisser la valeur de \(\boldsymbol{\alpha}\) par défaut, et faire la déconvolution de l'image en utilisant une PSF \(\boldsymbol{ℓ_0}\) estimée en aveugle. Un exemple de ceci est montré ci-dessous en utilisant une image lunaire fraîchement empilée (c'est-à-dire qu'aucun traitement par ondelettes n'a été effectué). Malgré les limitations du format d'animation GIF, l'accentuation est clairement visible ; il est également clair que les résultats de Split Bregman et Wiener sont très similaires.

dialogue

Images planétaires empilées

Un flux de travail planétaire typique implique l'empilement de la vidéo SER planétaire dans un outil spécialisé tel que Autostakkert! ou Astrosurface, puis l'accentuation de l'image résultante à l'aide d'ondelettes et de déconvolution. Une combinaison de l'outil Siril A trous Wavelets et de l'outil Deconvolution donne d'excellents résultats, comme illustré ici. Cette image de Jupiter a été initialement rendue plus nette à l'aide d'ondelettes, le premier contrôle de couche étant réglé sur 75, le second sur 10 et les autres sur la valeur par défaut. Une PSF couleur a ensuite été construite à partir de 3 disques d'Airy calculés pour le télescope et le capteur utilisés (un Newtonian 6" avec une lentille de Barlow 3x et un capteur ASI462MC avec des pixels de 2,9 microns) et composée à l'aide de l'outil de composition RVB. Ceci a été utilisé pour faire une déconvolution de l'image avec 6 itérations de Richardson-Lucy (ici j'ai utilisé la version multiplicative). A chaque étape, l'image devient plus nette.

dialogue

Empilement brute, toujours floue.

dialogue

Traitement avec décomposition en ondelettes de Siril, force de la couche d'ondelettes 1, 75, force de la couche d'ondelettes 2, 10.

dialogue

Traitée avec les ondelettes de Siril comme ci-dessus, puis avec 6 itérations de déconvolution multiplicative de Richardson-Lucy.

Les séquences planétaires non empilées

Astuce

Attention : cette méthode est extrêmement lente car elle nécessite le traitement individuel de 30 000 images (ou plus) dans une séquence planétaire !

Certains utilisateurs ont suggéré d'atténuer la diffraction du télescope en faisant une déconvolution de la séquence à l'aide d'une PSF de disque d'Airy. Pour ce faire, avec une caméra planétaire couleur typique, la séquence doit être dématricée à la volée. Vous pouvez aller plus loin si vous le souhaitez en générant trois disques d'Airy séparés pour les longueurs d'onde rouge, verte et bleue (typiquement 600nnm, 530nm et 450nm respectivement). Siril ne peut pas générer directement un PSF couleur (l'interface utilisateur de la déconvolution est suffisamment complexe !) mais si vous enregistrez séparément chacun des disques d'Airy rouge, vert et bleu, vous pouvez les combiner en une PSF couleur en utilisant l'outil de composition RVB. Sauvegardez-le, et si une couleur ou une séquence est chargée, la PSF se chargera en couleur et procédera à la déconvolution de chaque canal de couleur en utilisant la PSF appropriée.

dialogue

Empilés et netteté renforcée sans déconvolution individuelle des images.

dialogue

Pile brute : les meilleurs 30% de 91k images déconvoluées individuellement en utilisant Siril.

dialogue

Résultat de l'accentuation de la pile ou une déconvolution a été appliquée sur chaque image individuellement.

Dans l'image ci-dessus, une légère amélioration de la forme du bord est évidente dans la version qui a subit une déconvolution image par image avec une PSF de disque d'Airy en utilisant la méthode Richardson-Lucy de Siril avant l'empilement, mais il faut faire attention pour éviter la perte de détails. Ce processus est très lent : ma machine de développement a mis 4,5 heures pour effectuer la déconvolution de chacune des 91 000 images de cette séquence, et l'amélioration peut être mineure, voire nulle.

Commandes

Ligne de commande Siril

makepsf clear
makepsf load filename
makepsf save [filename]
makepsf blind [-l0] [-si] [-multiscale] [-lambda=] [-comp=] [-ks=] [-savepsf=]
makepsf stars [-sym] [-ks=] [-savepsf=]
makepsf manual { -gaussian | -moffat | -disc | -airy } [-fwhm=] [-angle=] [-ratio=] [-beta=] [-dia=] [-fl=] [-wl=] [-pixelsize=] [-obstruct=] [-ks=] [-savepsf=]
Génère une PSF à utiliser avec la déconvolution, l'une des trois méthodes exposées par les commandes RL, SB ou WIENER. L'un des éléments suivants doit être fourni comme premier argument : clear (efface la PSF existante), load (charge une PSF à partir d'un fichier), save (sauvegarde la PSF actuelle), blind (estimation aveugle de la PSF), stars (génère une PSF basée sur les étoiles mesurées dans l'image) ou manual (génère une PSF manuellement basée sur une fonction et des paramètres).

Aucun argument additionnel n'est requis quand l'argument clear est utilisé.

Pour charger une PSF précédemment sauvegardée, l'argument load nécessite le nom du fichier filename de la PSF comme second argument. Ce fichier peut être dans n'importe quel format pris en charge par Siril, mais l'image doit être au format carré et idéalement impair.

Pour sauvegarder une PSF précédemment générée, l'argument save est utilisé. Un nom de fichier peut être fourni en option (il doit avoir l'une des extensions ".fit", ".fits", ".fts" ou ".tif"), mais si aucun nom n'est fourni, la PSF sera nommée en fonction du nom du fichier ou de la séquence ouvert(e).

Pour l'argument blind, les arguments optionnels suivants peuvent être fournis : -l0 utilise la méthode de descente l0, -si utilise la méthode d'irrégularité spectrale, -multiscale configure la méthode l0 pour effectuer une estimation PSF multi-échelle, -lambda= fournit la constante de régularisation.

Pour les PSF des étoiles détectées, le seul paramètre optionnel est -sym, qui configure la PSF pour qu'elle soit symétrique.

Pour une PSF manuelle, un des arguments -gaussian, -moffat, -disc or -airy peut être fourni afin de spécifié la fonction PSF. Pour la PSF Gaussienne ou Moffat les arguments optionels -fwhm=, -angle= and -ratio= peuvent être ajoutés. Pour la PSF Moffat l'argument optionel -beta= peut aussi être ajouté. Si ces valeurs sont omises, elles prennent par défaut les mêmes valeurs que dans fenêtre déconvolution. Pour les PSF "disc" seul l'argument -fwhm= est nécessaire, qui, pour cette fonction est utilisé pour donner le diamètre de la PSF. Pour les PSF "airy" les arguments suivant peuvent être ajoutés : -dia= (définit le diamètre du télescope), -fl= (définit la longueur focale du télescope), -wl= (définit la longueur d'onde pour calculer la tache d'Airy), -pixelsize= (définit la taille des pixels du capteur), -obstruct= (définit le l'obstruction centrale comme pourcentage de la surface totale d'ouverture). Si ces paramètres ne sont pas fournis, la longueur d'onde sera par défaut de 525nm et l'obstruction centrale sera par défaut de 0%. Siril tentera de lire les autres paramètres de l'image ouverte, mais certains logiciels d'imagerie peuvent ne pas les fournir tous, auquel cas vous obtiendrez de mauvais résultats, et notez que les métadonnées peuvent ne pas être remplies pour les vidéos au format SER. Vous apprendrez par l'expérience quels sont les éléments sûrs à omettre pour votre configuration d'imagerie particulière.

Pour toutes les options de génération de PSF ci-dessus, l'argument optionnel -ks= peut être fourni pour définir la dimension de la PSF, et l'argument optionnel -savepsf=nom de fichier peut être utilisé pour sauvegarder la PSF générée : un nom de fichier doit être fourni et les mêmes exigences d'extension de nom de fichier s'appliquent que pour makepsf save filename

Liens : psf, rl, sb, wiener

Ligne de commande Siril

rl [-loadpsf=] [-alpha=] [-iters=] [-stop=] [-gdstep=] [-tv] [-fh] [-mul]
Restaure une image en utilisant la méthode Richardson-Lucy.

En option, une PSF peut être chargé en utilisant l'argument -loadpsf=filename (créé avec MAKEPSF).

Le nombre d'itérations est donné par -iters (par défaut 10).

Le type de régularisation peut être défini avec -tv pour la variation totale, ou -fh pour la norme de Frobenius de la matrice hessienne (la valeur par défaut est aucune) et -alpha= fournit la force de régularisation (une valeur plus faible = plus de régularisation, par défaut = 3000).

Par défaut, la méthode du gradient descendant est utilisé avec une taille de pas par défaut de 0.0005, cependant la méthode multiplicative peut être spécifiée avec -mul.

Le critère d'arrêt peut être activé en spécifiant une limite d'arrêt avec -stop=

Liens : psf, makepsf

Ligne de commande Siril

sb [-loadpsf=] [-alpha=] [-iters=]
Restaure une image en utilisant la méthode Split Bregman.

En option, une PSF peut être chargée en utilisant l'argument -loadpsf=nom de fichier.

Le nombre d'itération est donné par -iters (par défaut 1).

Le facteur de régularisation -alpha= fournit la force de la régularisation (plus petite valeur = plus de régularisation, par défaut = 3000)

Liens : psf

Ligne de commande Siril

wiener [-loadpsf=] [-alpha=]
Restore une image en utilisant la méthode de déconvolution de Wiener.

En option, une PSF créée par MAKEPSF peut être chargée en utilisant l'argument -loadpsf=filename.

Le paramètre -alpha= fournit le facteur de régularisation modélisé par le bruit Gaussien

Liens : psf, makepsf
Références
[Anger2018]

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

[Anger2019]

Anger, J., Facciolo, G., & Delbracio, M. (2019). Blind image deblurring using the l0 gradient prior. Image processing on line, 9, 124-142. https://doi.org/10.5201/ipol.2019.243

[Goldstein2012]

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

[Lucy1974]

Lucy, L. B. (1974). An iterative technique for the rectification of observed distributions. The astronomical journal, 79, 745. https://doi.org/10.1086/111605.

Filtres de préservation des bords

Siril propose deux filtres de préservation des bords : l'implémentation OpenCV du filtre bilatéral, et un filtre guidé. Ces deux filtres peuvent être utilisés pour réduire le bruit, et tous deux préservent les bords nets et les forts gradients de l'image. Le filtre bilatéral agit sur une seule image, tandis que le filtre guidé filtre l'image en utilisant une image guide pour identifier les structures. Dans l'utilisation la plus simple, le filtre guidé agit de manière auto-guidée en utilisant l'image d'entrée comme image guide.

dialogue

Fenêtre de dialogue Filtre Médian.

La présentation de la fenêtre de dialogue est assez simple et peu de paramètres sont disponibles.

  • Type de filtre : choisissez entre le filtre bilatéral et le filtre guidé.

  • Diamètre : ceci définit la taille du noyau de filtre qui sera utilisé. Avec le filtre bilatéral, définir un diamètre de 0 entraînera le réglage automatique de la taille du noyau de filtre en fonction de la valeur sigma spatiale. Avec le filtre guidé, cette valeur doit être définie : un diamètre de 0 entraînera l'absence de filtrage.

  • Sigma (spatial) : ceci définit l'étendue spatiale du noyau de filtre. Une valeur plus élevée entraîne un lissage du bruit sur une zone d'image plus grande, mais est plus lente à calculer. Une valeur plus faible entraîne un lissage plus local et est plus rapide à calculer. Aucune valeur par défaut n'est définie pour les valeurs sigma, car la valeur appropriée peut dépendre fortement des caractéristiques de l'image, mais il peut être judicieux de commencer avec sigma (spatial) et sigma (intensité) réglés tous deux à environ 11.

  • Sigma (intensité) : ceci définit la plage de variation d'intensité à laquelle le filtre répond. Une valeur élevée entraîne un filtrage plus fort du bruit, mais peut entraîner une perte de détails réels ; une valeur faible réduit le filtrage du bruit, mais évitera la perte de détails avec des gradients plus doux.

  • Image guide : ceci permet de sélectionner une image à utiliser comme image guide lors de l'application d'un filtre guidé. Si la case « autoguidage » est cochée, le filtre agit en mode auto-guidé en utilisant l'image d'entrée comme image guide.

  • Modulation : dans Siril, la modulation est un paramètre compris entre 0 et 1 qui mélange l'image originale et l'image traitée. Une valeur de 1 ne conserve que l'image traitée, une valeur de 0 n'applique aucun filtre de préservation des bords.

montre les effets des changement des paramètres

Illustration de l'effet du changement des paramètres du filtre bilatéral. Notez que les valeurs exactes requises dépendront des caractéristiques de bruit de vos données.

Astuce

Les paramètres des deux types de filtre différents ne se comportent pas de manière identique, donc lors du passage entre les filtres bilatéral et guidé avec des paramètres sigma définis, vous devez vous attendre à voir un certain changement dans le résultat de l'aperçu. Le code applique une certaine compensation aux paramètres fournis pour minimiser la différence de comportement entre les deux filtres pour les mêmes paramètres d'entrée, mais ce n'est pas exact (et ce n'est pas censé l'être).

Ligne de commande Siril

epf [-guided] [-d=] [-si=] [-ss=] [-mod=] [-guideimage=]
Applique un filtre préservant les bords. Par défaut, un filtre bilatéral est appliqué ; un filtre guidé peut être spécifié en utilisant l'argument -guided. Le diamètre du filtre est fixé par défaut à 3 et peut être défini à l'aide de -d=. Attention aux valeurs de d supérieures à 20, car l'algorithme peut être coûteux en termes de calcul.

La valeur sigma du filtrage d'intensité peut être définie à l'aide de -si= et la valeur sigma spatiale peut être définie à l'aide de -ss=. Les valeurs sigma représentent la différence entre les valeurs des pixels sur lesquelles le filtre agit fortement : pour les images 32 bits, la valeur doit être comprise entre 0 et 1,0, tandis que pour les images 16 bits, elle doit être comprise entre 0 et 65535. Par défaut, si rien n'est spécifié, les deux valeurs sont fixées à 11. Si -d=0 est défini, le diamètre du filtre sera défini automatiquement en fonction de la valeur de -ss. Notez que lors de l'application d'un filtre guidé, seul *-sc** s'applique.

Lors de la spécification d'un filtre guidé, une image guide peut être définie en utilisant -guideimage=. Par défaut, si aucune image guide n'est spécifiée, un filtre auto-guidé est effectué. Note : l'image guide doit avoir les mêmes dimensions que l'image à filtrer !

L'intensité du filtre peut être modulée à l'aide de l'argument -mod=. Si mod = 1.0, l'effet complet du filtre sera appliqué ; pour mod inférieur à 1.0, une proportion de l'image originale sera mélangée au résultat, et pour mod = 0.0, aucun filtrage ne sera appliqué

Transformée de Fourier

Une transformée de Fourier (TF) est une transformation mathématique qui décompose les fonctions en composantes de fréquence, qui sont représentées par la sortie de la transformée en fonction de la fréquence. Cette transformation est largement utilisée en imagerie car elle permet de voir des signaux à des fréquences régulières.

Théorie

Transformée de Fourier

La transformée de Fourier est un processus d'analyse qui décompose une fonction à valeurs complexes \(f(x)\) en ses fréquences constitutives et leurs amplitudes :

\(\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) e^{-2\pi i \xi x} \, dx\).

Transformation Inverse

Le processus inverse est la synthèse, qui recrée \(f(x)\) à partir de sa transformation :

\(f(x) = \int_{-\infty}^{\infty} \hat{f}(\xi) e^{2\pi i \xi x} \, d\xi\).

Siril permet de transformer une image dans l'espace des fréquences grâce à un algorithme de Transformation de Fourier rapide. Le résultat se présente sous la forme de deux images. La première, automatiquement chargée, contient le module de la transformation, la seconde contient la phase. L'emplacement des deux images doit être saisi dans l'onglet Transformation directe (voir illustration ci-dessous) de la boîte de dialogue. Il est ensuite possible de modifier l'image du module en supprimant les pics de fréquence correspondant aux signaux indésirables. Il est important de ne pas oublier de sauvegarder les modifications.

L'option Centré, lorsqu'elle est cochée, centre l'origine de la transformée de Fourier directe. Si elle n'est pas cochée, l'origine est située dans le coin supérieur gauche.

dialogue

Onglet Transformation Direct.

Pour reconstruire l'image, cliquez sur l'onglet Transformation inverse et entrez le chemin d'accès aux images de module et de phase.

dialogue

Onglet Transformation Inverse.

Ligne de commande Siril

fftd modulus phase
Applique une transformée de Fourier rapide à l'image chargée. modulus et phase donnés en argument sont les noms des fichiers FITS sauvegardés

Ligne de commande Siril

ffti modulus phase
Récupère l'image corrigée en appliquant une transformation inverse. Les arguments modulus et phase sont les noms des fichiers d'entrée, le résultat sera la nouvelle image chargée

Filtre Médian

La médiane représente le point central des données, la moitié des données étant plus petite et l'autre moitié plus grande que ce point. Il s'agit d'un estimateur robuste qui permet d'éliminer les valeurs aberrantes d'un ensemble de données. Par conséquent, cet outil peut être utile en tant que réducteur de bruit naïf, efficace contre le bruit impulsionnel.

dialogue

Fenêtre de dialogue Filtre Médian.

La présentation de la fenêtre de dialogue est assez simple et peu de paramètres sont disponibles.

  • Taille du noyau : De \(3\times 3\) à \(15\times 15\), ceci définit la taille d'un noyau quadratique qui est utilisé pour appliquer le filtre. Plus le noyau est grand, plus le résultat sera flou.

  • Itérations : Ce paramètre définit le nombre de passages du noyau.

  • Modulation : Dans Siril, la modulation est un paramètre compris entre 0 et 1 qui mélange l'image originale et l'image traitée. Une valeur de 1 ne conserve que l'image traitée, une valeur de 0 n'applique aucun filtre médian.

Ligne de commande Siril

fmedian ksize modulation
Effectue un filtre médian de taille ksize x ksize (ksize DOIT être impair) sur l'image chargée avec un paramètre de modulation modulation.

Le pixel de sortie est calculé comme suit : out = mod x m + (1 − mod) x in, où m est la valeur du pixel filtré par médiane. Une valeur de modulation de 1 n'appliquera aucune modulation

Réduction de bruit

Bruit de l'image

Les images souffrent de différents types de bruit :

  1. Le bruit impulsionnel

    • Ce type de bruit (parfois appelé “bruit poivre et sel”) provient généralement de pixels chauds ou froids. Il est généralement traité en utilisant l’empilement par rejet, mais vous devrez parfois y faire face si vous traitez une image seule, non empilée.

  2. Bruit blanc gaussien additif

    • Ce type de bruit est typique des photographies bien éclairées : il provient des fluctuations thermiques et électroniques du dispositif d’acquisition, et le niveau de bruit est indépendant du signal. Il peut être réduit au moment de la capture en utilisant des caméras refroidies, et il est réduit lors de l’empilement car l’empilement de \(n\) images augmente le signal corrélé d’un facteur \(n\) alors que le bruit non corrélé n’augmente que d’un facteur \(\sqrt{n}\). C’est également le type de bruit que la plupart des algorithmes de débruitage classiques sont conçus pour éliminer.

  3. Bruit de Poisson

    • Lorsque l’on a affaire à des images pauvres en photons, le caractère du bruit cesse d’être principalement gaussien et la nature probabiliste du comptage des photons devient significative, voire dominante. Ceci est modélisé par une distribution de Poisson et ce type de bruit dépend du signal.

Réduction du bruit dans Siril

Siril fournit des algorithmes classiques de débruitage bien étudiés et à la pointe de la technologie. Les critères qui nous ont poussé à choisir les algorithmes présentés ici étaient les suivants :

  • L’algorithme devait être analysé dans des revues académiques à comité de lecture, avec une description de l’algorithme et une comparaison quantitative objective de ses performances.

  • Les auteurs doivent avoir mis à disposition une implémentation F/OSS. Ceci est important pour éviter les problèmes de propriété intellectuelle et, lorsque les implémentations de référence ont été utilisées directement, pour assurer la compatibilité des licences.

  • Les algorithmes doivent fonctionner à une vitesse raisonnable.

  • Enfin, l’implémentation de l’algorithme doit être capable de traiter des données de pixels en virgule flottante 32 bits.

La technologie de débruitage par réseau neuronal a été étudiée, mais écartée pour le moment en raison de la complexité de son développement. La performance de débruitage des réseaux neuronaux peut typiquement battre les approches classiques jusqu’à un dB de rapport signal/bruit de pointe, mais la performance dépend fortement du réseau neuronal entraîné sur des données représentatives des données réelles.

denoise-dialog

Fenêtre du réduction de bruit

Algorithmes : Bruit impulsionnel

Siril élimine principalement le bruit d'impulsion par l'empilement avec rejet sigma. Si vous utilisez cette méthode d'empilement, vous ne devriez pas avoir de problèmes avec le bruit impulsionnel. Cependant, si vous travaillez sur une seule exposition, vous pouvez trouver du bruit d'impulsion dans votre image. Celui-ci doit être traité à l'aide de la fonction Correction cosmétique de Siril avant toute autre réduction de bruit, car la présence de bruit impulsionnel peut fausser les algorithmes de réduction de bruit et créer des artefacts. Elle fonctionne de la même manière que le rejet sigma, mais sur les pixels voisins. Tout pixel dont l'intensité est éloignée de plus de n écarts types de ses voisins sera rejeté et remplacé par une valeur basée sur la médiane des voisins. Dans l'outil de réduction de bruit, la correction cosmétique est active par défaut et intervient avant toute autre étape de réduction de bruit. (Même si la suppression du bruit d'impulsion a déjà été effectuée, il n'y a pas d'inconvénient à laisser ce paramètre activé). La correction cosmétique peut également être appliquée manuellement en utilisant l'outil Correction cosmétique dans le menu Traitement de l'image.

Algorithmes : Bruit blanc gaussien additif

Le principal algorithme de réduction du bruit blanc Gaussien additif utilisé dans Siril est le débruitage bayésien non local (NL-Bayes) [Lebrun2013].

  • Les algorithmes de débruitage non local ont représenté une amélioration majeure par rapport aux précédents filtres linéaires centrés sur le pixel. NL-Bayes est une version améliorée des algorithmes de débruitage non local précédents et offre l'un des meilleurs algorithmes classiques de débruitage de bruit blanc Gaussien. Il est légèrement meilleur que l'algorithme moderne "de référence" de réduction du bruit Block Matching and 3D tranform (BM3D) et beaucoup plus rapide à exécuter.

  • Le paramètre clé requis pour optimiser les performances des algorithmes de débruitage du bruit blanc gaussien additif est le paramètre sigma : l’écart-type du bruit. Siril mesure le niveau de bruit directement à partir des données de l’image et le transmet à l’algorithme NL-Bayes. Par conséquent, dans l’outil de débruitage de Siril, il n’y a rien à configurer pour NL-Bayes, et ce dernier s’utilise très simplement.

Siril fournit en complément à NL-Bayes un certain nombre d’autres algorithmes de réduction du bruit :

  • Débruitage adaptatif à double domaine (DA3D) [Pierazzo2017]

    • Cet algorithme prend la sortie de NL-Bayes et l’utilise comme image guide. Cette image guide est utilisée pour retraiter l’image originale en effectuant un rétrécissement dans le domaine fréquentiel sur des patchs adaptés à la forme et aux données. Cela améliore légèrement les performances de NL-Bayes avec un coût de calcul supplémentaire. Les patchs adaptés à la forme et aux données sont sélectionnés dynamiquement, ce qui concentre les calculs sur les zones les plus détaillées de l’image. Cette méthode peut également contribuer à réduire les artefacts en forme d’escalier présents dans l’image guide.

    • Dans l’outil de débruitage de Siril, DA3D est un simple bouton sans paramètres optionnels.

  • L’itération Renforcer, Opérer, Soustraire (appelé ici itération SOS) [Romano2015]

    • SOS fonctionne en itérant l’algorithme de débruitage primaire plusieurs fois. À chaque itération, l’image est “renforcée” par l’ajout d’une proportion de l’image bruitée d’origine. L’algorithme NL-Bayes est exécuté sur cette image renforcée, après quoi l’estimation précédente est soustraite.

    • L’image x à une itération \(k+1\) est donnée par \(x_{k+1}=f(y+x_k)-x_k\)\(y\) est l’image bruitée d’entrée.

    • Dans l’outil de débruitage de Siril, SOS est composé d’un bouton avec deux paramètres : le nombre d’itérations peut être réglé, et la proportion de l’image bruitée mélangée à chaque itération (rho) peut être définie. Évitez de régler rho trop haut car cela peut entraîner des problèmes de convergence de l’algorithme SOS : les valeurs par défaut (3 itérations et rho = 0.2) sont généralement correctes.

Algorithmes : Bruit de Poisson et Poisson-Gaussien
  • Transformée stabilisatrice de variance d’Anscombe [Mäkitalo2011], [Mäkitalo2012]

    • Les transformées de stabilisation de la variance sont utilisées pour les images présentant un bruit de Poisson ou de Poisson-Gaussien afin de minimiser la dépendance du bruit vis-à-vis du signal et de le faire ressembler davantage à un bruit blanc gaussien, que NL-Bayes réussit bien à éliminer, puis une transformée inverse est appliquée à la fin. La transformation choisie pour Siril est la transformation d’Anscombe \(A : x\rightarrow 2\times \sqrt{\left(x+\frac{3}{8}\right)}\)

    • Comme la transformation n’est pas linéaire, l’utilisation de l’inverse algébrique direct entraîne un biais en sortie. Siril utilise donc une approximation à forme fermée de l’inverse exact non biaisé, qui est rapide à calculer et produit une amélioration substantielle par rapport à d’autres formes d’inverse telles que l’inverse asymptotique.

    • Dans l’outil de débruitage de Siril, la VST d’Anscombe est un simple bouton sans aucun paramètre optionnel.

Notez que seul un des algorithmes de débruitage complémentaires mentionnés ci-dessus peut être choisi à la fois.

L’animation ci-dessous montre ce qu’il est possible de faire en utilisant la stabilisation de la variance avec une image pauvre en photons, dans ce cas une seule image de la nébuleuse du Pélican de 5min prise avec un filtre rouge, montrée avec la fonction de transfert d’écran Auto Ajustement. Notez l’absence de flou, de gonflement ou de perte de détails autour des étoiles et le bord net de la nébuleuse dans la partie inférieure gauche de l’image par rapport à ce que l’on pourrait obtenir avec des schémas de réduction du bruit plus basiques. Une fois étiré de façon plus sympathique et combiné avec d’autres canaux, cela améliorerait grandement la qualité réalisable à partir de données très limitées (bien que l’accumulation de données soit toujours la meilleure solution pour réduire le bruit d’une image empilée !)

single-sub

Débruitage d’une image pauvre en photon

Modulation

La modulation consiste à mélanger une proportion de l’image bruitée d’origine dans le résultat final. Cela réduit évidemment les performances du débruitage, mais dans certains cas, si le débruitage a laissé des zones plates de l’image un peu trop lisses et non naturelles, vous pouvez utiliser la modulation pour restaurer l’apparence de la microtexture dans ces régions.

Quand utiliser la réduction du bruit

Les algorithmes de réduction du bruit sont conçus pour éliminer le bruit blanc gaussien et devraient donc être plus performants sur des images non étirées : si un bruit blanc est étiré de manière non linéaire, ses caractéristiques changent et il n'est plus blanc. Il est toujours possible d'effectuer une réduction du bruit sur des images étirées et d'obtenir une amélioration, mais elle ne sera peut-être pas aussi efficace que si elle était appliquée au stade linéaire.

Interface de réduction du bruit

L’outil de réduction du bruit Siril est accessible de deux manières : via l’interface graphique ou via la ligne de commande. L’interface graphique est présentée ci-dessous. Remarque : les options avancées de SOS sont masquées si SOS n’est pas sélectionné.

dialogue

Interface graphique de la réduction de bruit de Siril

La réduction du bruit peut également être appliquée à l’aide de la ligne de commandes de Siril, soit dans la console, soit dans des scripts. Le format est le suivant :

Ligne de commande Siril

denoise [-nocosmetic] [-mod=m] [ -vst | -da3d | -sos=n [-rho=r] ] [-indep]
Réduit le bruit de l'image en utilisant l'algorithme bayésien non local décrit par Lebrun, Buades et Morel.

Il est fortement recommandé d'appliquer une correction cosmétique pour éliminer le bruit sel et poivre avant d'exécuter le réducteur de bruit, et par défaut cette commande applique automatiquement la correction cosmétique. Toutefois, si celle-ci a déjà été effectuée plus tôt dans le flux de travail, elle peut être désactivée ici à l'aide de la commande optionnelle -nocosmetic.

Un argument optionnel -mod=m peut être donné, où 0 <= m <= 1. Le pixel de sortie est calculé comme suit : out=m x d + (1 − m) x in, où d est la valeur de pixel réduite du bruit. Une valeur de modulation de 1 n'appliquera aucune modulation. Si le paramètre est omis, il est par défaut à 1.

L'argument optionnel -vst peut être utilisé pour appliquer la transformation de stabilisation de variance Anscombe généralisée avant NL-Bayes. Cela est utile avec des images à faible luminosité telles que des images simples, où le bruit suit une distribution de Poisson ou Poisson-Gaussien plutôt qu'une distribution principalement gaussienne. Il ne peut pas être utilisé en conjonction avec DA3D ou SOS, et pour le débruitage d'images empilées, il n'est généralement pas bénéfique.

L'argument optionnel -da3d peut être utilisé pour activer le débruitage Data-Adaptive Dual Domain (DA3D) en tant qu'algorithme de débruitage final. Cela utilise la sortie de BM3D comme image de guidage pour affiner le débruitage. Il améliore les détails et réduit les artefacts en escalier.

L'argument optionnel -sos=n peut être utilisé pour activer le renforcement itératif de la détection de bruit Strengthen-Operate-Subtract (SOS), avec le nombre d'itérations spécifié par n. En particulier, ce renforceur peut produire de meilleurs résultats si l'algorithme NL-Bayes non renforcé produit des artefacts dans les zones de fond de ciel. Si à la fois -da3d et -sos=n sont spécifiés, le dernier spécifié sera appliqué.

L'argument facultatif -rho=r peut être spécifié, où 0 < r < 1. Cela est utilisé par le booster SOS pour déterminer la quantité d'image bruitée ajoutée au résultat intermédiaire entre chaque itération. Si -sos=n n'est pas spécifié, le paramètre est ignoré.

Par défaut, DA3D ou SOS ne sont pas appliqués, car l'amélioration de la réduction de bruit est généralement relativement faible et ces techniques nécessitent un temps de traitement supplémentaire.

En de très rares occasions ,lors du débruitage des images en couleur, des artefacts de couleur en bloc peuvent apparaître. L'argument optionnel -indep peut être utilisé pour éviter cela en effectuant le débruitage de chaque canal séparément. Cela est plus lent mais éliminera les artefacts
Comparaison

Les images ci-dessous fournissent une comparaison simpliste des différents algorithmes. Notez qu’une seule image est utilisée : en pratique, les différents algorithmes seront mieux adaptés à des images différentes. Vous pouvez cliquer sur toutes les images pour les visualiser avec un zoom de 100 %.

Image originale bruitée
bruité

Imagebruitée

Débruitage avec NL-Bayes uniquement
bruité

Débruitage avec NL-Bayes uniquement

Débruitage avec NL-Bayes uniquement, avec une modulation de 75% pour restaurer une certaine microtexture
modulation

Utilisation de la modélisation

Débruitage avec NL-Bayes en utilisant la transformée d'Anscombe
vst

Débruitage avec NL-Bayes, stabilisation de la variance avec la transformée d'Anscombe. Un zoom non interpolé de 200% est montré à droite.

Débruitage avec DA3D en utilisant une image guide NL-Bayes
da3d

Débruitage avec DA3D, image guide préparée avec NL-Bayes. Un zoom non interpolé de 200% est montré à droite.

Débruitage avec NL-Bayes et SOS
sos

Débruitage avec des itérations NL-Bayes et SOS. Un zoom non interpolé de 200% est montré à droite.

Limitations

La principale limitation est que les algorithmes fonctionnent mieux lorsque le bruit est de nature gaussienne (ou peut être rendu approximativement gaussien à l'aide du VST). Il y a quelques raisons pour lesquelles cela pourrait ne pas être vrai :

  • Si l'image a déjà été fortement traitée, par exemple avec une déconvolution ou une accentuation par ondelettes, le caractère du bruit ne sera généralement plus gaussien. Si la réduction du bruit et la déconvolution font toutes deux partie de votre flux de travail, la réduction du bruit doit être effectuée en premier.

  • Les images couleur peuvent être moins bien débruitées que les images couleur mono ou composites. Une petite réduction du bruit blanc gaussien de luminance est obtenue mais, suite au processus de débruitage, le caractère du bruit est modifié de sorte qu'il n'est plus bien modélisé comme bruit blanc gaussien et n'est pas éliminé très efficacement. De plus, pour les images monochromes OSC et composées, le bruit de chrominance tend à ne pas être bien modélisé comme bruit blanc gaussien et nécessite un traitement différent. À l'heure actuelle, le bruit de chrominance est mieux traité dans les logiciels de manipulation d'images à usage général tels que GIMP.

Références
[Lebrun2013]

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

[Pierazzo2017]

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äkitalo2011]

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

[Mäkitalo2012]

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

[Romano2015]

Romano, Y., & Elad, M. (2015). Boosting of image denoising algorithms. SIAM Journal on Imaging Sciences, 8(2), 1187-1219. https://doi.org/10.1137/140990978

Gradient rotationnel (filtre de Larson Sekanina)

Le gradient de rotation, également appelé filtre de Larson Sekanina, est un filtre qui permet de supprimer les structures circulaires d'une image, afin de mieux faire ressortir d'autres détails. Cette technique est particulièrement efficace pour montrer les jets sortant du noyau d'une comète.

Le principe est assez simple : ce traitement d'image consiste à soustraire deux copies de l'image l'une de l'autre, l'une des deux copies ayant été préalablement tournée par rapport à un point défini dans l'image.

  • S'il existe des structures circulaires autour de ce point, elles ne sont pas modifiées par la rotation et disparaîtront après celle-ci.

  • S'il existe des structures non circulaires, comme des jets dans la coma, elles seront décalées l'une par rapport à l'autre entre les deux copies et la soustraction amplifiera le contraste de cette structure dans le résultat.

  • Si la comète se déplace dans l'image, il est possible d'ajouter un décalage radial.

dialogue

Boîte de dialogue du filtre Gradient de rotation.

Théorie

À partir d'une image d'entrée, le filtre génère deux images, chacune avec un décalage radial (\(dr\) en pixels) et un décalage en rotation (\(d\alpha\) en degrés) par rapport au point (\(x_c\), \(y_c\)). Ces décalages ont la même ampleur, mais des signes opposés entre les deux images. Les deux images sont ensuite combinées pour produire l'image finale. En coordonnées polaires \((r, a)\) par rapport au point \((x, y)\) nous avons :

\[B'(\alpha,r,d\alpha,dr) = 2 \cdot B(\alpha,r) - B(\alpha-d\alpha, r-dr) - B(\alpha+d\alpha, r-dr)\]

avec \(B\) : l'image de départ, \(B'\) : l'image résultante, \(dr\) : le décalage radial et \(d\alpha\) : le décalage en rotation

Dans l'exemple ci-dessous, concernant la comète C/2022 E3, l'alignement a été fait sur la comète et les étoiles montrent des traînées importantes. La coma est très circulaire et il est difficile de voir les détails de son activité. Il n'est donc pas nécessaire de définir un décalage radial. Pour la rotation, un angle de 15° a été choisi (ce choix a été fait après plusieurs tentatives et en utilisant le bouton undo pour revenir en arrière). Pour choisir les coordonnées du centre de rotation, il suffit de faire une sélection autour du noyau cométaire et de cliquer sur Utiliser la sélection courante. Cette action copiera les coordonnées du centroïde à l'endroit désiré.

dialogue

Image d'une comète (C/2022 E3 (ZTF)) montrant une coma et une queue (avec l'aimable autorisation de Stéphane Garro).

Un simple clic sur Apply permet d'appliquer le filtre. Dans notre exemple, un jet devient visible.

dialogue

Après application du filtre, nous constatons qu'un jet émerge du noyau.

Ligne de commande Siril

rgradient xc yc dR dalpha
Crée deux images, avec un décalage radial (dR en pixels) et un décalage rotatif (dalpha en degrés) par rapport au point (xc, yc).

Entre ces deux images, le décalage a la même amplitude mais est de signe opposé. Ces deux images sont additionnées pour créer l'image finale. Ce processus est aussi appelé filtre Larson Sekanina

Filtre anti-violet

Il s'agit d'un filtre cosmétique conçu pour réduire l'effet de franges violettes autour des étoiles, pouvant être visibles lors de l'utilisation d'une lunette achromatique, en particulier en imagerie à large bande. Il fonctionne sur des images couleur étirées.

Astuce

Ce filtre est conçu pour fonctionner sur des images non linéaires. Il est donc impératif de l'utiliser une fois que l'histogramme a été étiré.

Le filtre propose deux modes de fonctionnement : ses effets peuvent être globaux ou limités aux étoiles uniquement.

Il réduit les franges violettes en appliquant un masque de luminance au canal bleu basé sur le canal vert, et en vous permettant de réduire l'intensité du canal bleu. En mode masque d'étoiles, il limite les effets aux zones autour des étoiles identifiées.

Global

Ce mode est utile lorsque vous travaillez avec un masque d'étoiles ou avec des images ne contenant que des étoiles, par exemple un amas globulaire. Il est moins utile pour les images de nébuleuses ou de galaxies, où la couleur pourrait être affectée.

Pour l'utiliser, vous devez réduire le curseur Ajustement du bleu jusqu'à ce que les effets soient optimaux. C'est généralement autour de 0,15.

Vous pouvez également augmenter le curseur Seuil pour restreindre les effets aux pixels dont la luminance est supérieure à cette valeur. Dans ce mode, la valeur optimale sera assez basse.

Masque d'étoile

Ce mode est utile pour les images composites lorsque vous souhaitez limiter les effets de ce filtre aux étoiles uniquement.

Pour l'utiliser, vous devez cocher Utiliser masque d'étoile. Si vous n'avez pas déjà défini un masque d'étoiles à l'aide de la fonction PSF dynamique, il y aura un délai de quelques secondes le temps que le masque d'étoiles soit généré. Vous pouvez maintenant réduire temporairement l'Ajustement du bleu à zéro. Vos étoiles devraient maintenant être jaunes. Si vous voyez encore des franges violettes, vous devriez augmenter le curseur Seuil jusqu'à ce que les franges soient entièrement recouvertes de jaune. Vous pouvez maintenant augmenter le curseur Ajustement du bleu jusqu'à ce que vos étoiles ne soient plus jaunes mais que vos franges violettes soient réduites ou éliminées, généralement autour de 0,12-0,15.

dialogue

Comparaison avant/après application du filtre unpurple. On peut voir très clairement que les étoiles ont une meilleure couleur, sans l'anneau violet.

Ligne de commande Siril

unpurple [-starmask] [-blue=value] [-thresh=value]
Applique un filtre cosmétique pour réduire les effets de franges violettes sur les étoiles.

Si le paramètre -starmask est donné, un masque d'étoiles sera utilisé pour identifier les zones de l'image à traiter. Si une PSF dynamique a déjà été exécutée, elle sera utilisée pour le masque d'étoiles, sinon un masque sera créé automatiquement. Le paramètre -mod= doit se voir attribuer une valeur d'environ 0,14 pour réduire la quantité de violet. -thresh= précisera le modificateur de taille pour chaque étoile dans le masque d'étoiles et doit être suffisamment grand pour que les étoiles soient entièrement traitées sans qu'il reste de franges violettes. La valeur doit être comprise entre 0 et 1, généralement autour de 0,5.
Si le paramètre -starmask n'est pas donné, la réduction du violet sera appliquée sur toute l'image pour tous les pixels violets dont la valeur de luminance est supérieure au -thresh= donné. Dans ce cas, la valeur de -thresh= doit être raisonnablement basse. Ce mode est utile pour les masques d'étoiles ou autres images sans nébuleuse ni galaxie

Liens : psf

Traitement des étoiles

Les étoiles font partie intégrante des images du ciel profond et jouent un rôle crucial pour faire ressortir la beauté et les détails des objets célestes. Elles apparaissent souvent comme des points lumineux brillants, mettant en valeur leur éclat et leurs couleurs, ce qui rend les images du ciel profond vraiment captivantes. Cependant, en raison des limites des conditions d'observation, les étoiles dans ces images peuvent apparaître plus grandes et surexposées. Pour y remédier, les astronomes utilisent des techniques avancées de traitement d'image pour traiter séparément les étoiles et contrôler leur taille et leur luminosité dans l'image finale.

Cette partie de la documentation est ensuite consacrée à tout ce qui concerne le traitement des étoiles.

Suppression des étoiles avec StarNet

Avertissement

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 pyscript StarNet.py instead.

StarNet est un logiciel développé par Nikita Misiura. Sa première version a été publiée sous une licence libre et gratuite. Malheureusement, la version 2 est devenue propriétaire et les sources ont été fermées depuis. La version 2 est disponible gratuitement à partir de . Assurez-vous de télécharger la version Ligne de Commande. Siril peut s'interfacer avec n'importe quelle version de l'outil CLI de StarNet, y compris la nouvelle version expérimentale basée sur Torch qui a été initialement publiée pour les Macs Apple basés sur M1 et M2.

Avertissement

Si vous vous demandez pourquoi StarNet ne se lance pas, lancez d'abord le logiciel en dehors de Siril. Ce n'est pas la faute de Siril s'il n'est pas pris en charge par votre ordinateur ou s'il est mal installé pour une raison quelconque. Si votre processeur ne prend pas en charge les instructions de vectorisation requises par StarNet, il n'y a aucun moyen de contourner ce problème. Le message d'erreur sera obtenu en exécutant StarNet seul.

Astuce

Sous MacOS, pour que Siril détecte et utilise correctement StarNet, il est nécessaire de régler d'abord certains problèmes de permissions et de sécurité. Commencez par ouvrir l'application Terminal à partir du dossier Utilitaires dans Applications. Dans le Terminal, vous devez changer votre répertoire de travail de votre répertoire personnel au répertoire d'installation de StarNetCLI. Pour ce faire, tapez cd suivi d'un espace puis faites glisser le dossier StarNetCLI dans la fenêtre du terminal pour copier son chemin. Appuyez sur entrer. Tapez ensuite les quatre commandes suivantes, en appuyant sur entrer après chacune d'elles :

xattr -r -d com.apple.quarantine libtensorflow_framework.2.dylib
xattr -r -d com.apple.quarantine starnet++
chmod +x starnet++
chmod +x run_starnet.sh

Ensuite, lors de la première utilisation avec Siril, l'exécution de StarNet échouera avec un avertissement concernant libtensorflow. Annulez cet avertissement. Ouvrez les Préférences Système et sous Confidentialité et sécurité, cliquez sur le bouton Ouvrir quand même pour libtensorflow. Après cela, StarNet devrait s'exécuter correctement dans Siril.

Astuce

Sur MacOS, un nouvel exécutable Starnet optimisé pour la puce Apple Silicon a été publié sur le site : https://www.starnetastro.com/experimental/. Cette nouvelle version est beaucoup plus rapide que la précédente car elle utilise le nouveau PyTorch accéléré par MPS (https://developer.apple.com/metal/pytorch/). De plus, cette version contient des binaires signés, suivez les instructions du fichier README.txt

Cependant, il est toujours possible pour Siril d'exécuter des binaires externes et c'est ce que nous avons décidé d'implémenter à partir de Siril 1.2.0. Pour les paramètres, veuillez vous référer à la page des préférences. Elle explique comment indiquer à Siril où se trouve StarNet.

Avertissement

Il s'agit de l'emplacement de la version de StarNet en ligne de commande qui doit être fournie, et non de la version graphique.

Notez que StarNet a besoin d'images sous forme d'images TIFF, donc si Siril est compilé sans le support de libtiff, l'intégration de StarNet ne sera pas disponible.

Le but premier de StarNet est de supprimer toutes les étoiles des images afin d'appliquer un processus différent entre les étoiles et le reste de l'image. Cela permet généralement de contrôler le gonflement des étoiles pendant les différents étirements, mais c'est également très utile pour créer des images de comètes où la vitesse de suivi des comètes peut être sensiblement différente de celui des étoiles lointaines.

Boîte de dialogue StarNet

Boîte de dialogue StarNet.

L'outil est très facile à utiliser et seules cinq options sont disponibles :

  • Pré-étirer l'image linéaire : Si cette option est sélectionnée, un étirement optimisé de la fonction de transfert des tons moyens (MTF) est appliqué à l'image avant l'exécution de StarNet, et l'étirement inverse est appliqué à la fin. Ceci est nécessaire pour utiliser StarNet à l'étape linéaire du traitement.

  • Recomposer les étoiles à la fin de l'opération : S'il est sélectionné, à la fin du processus de suppression des étoiles, l'outil de recomposition des étoiles s'ouvrira, fournissant une interface pour étirer et mélanger indépendamment l'arrière-plan et les étoiles si une réduction des étoiles, plutôt qu'une suppression totale, est souhaitée. Cette option n'a aucun effet lors du traitement d'une séquence.

  • Générer masque d'étoiles : Cela va générer un masque d'étoiles et l'enregistrer dans le répertoire de travail. Le masque des étoiles est calculé comme la différence entre l'image originale et l'image sans étoiles. Le comportement par défaut est de produire un masque d'étoile.

  • Ré-échantillonner x2 : Cette option permet de sur-échantillonner l'image par un facteur 2 avant d'exécuter StarNet. Cela améliore les performances sur les étoiles très serrées mais quadruple le temps de traitement et peut nuire aux performances sur les très grandes étoiles. L'image est redimensionnée à la taille originale à la fin de l'opération.

  • Utiliser un pas personnalisé : Une valeur personnalisée peut être saisie pour le paramètre de pas de StarNet. La valeur par défaut est de 256 et le développeur de StarNet recommande de ne pas la modifier.

Le processus StarNet peut facilement être appliqué à une séquence. Le bouton Appliquer à la séquence permet de choisir si le processus sera appliqué à une seule image ou à une séquence. Lorsque le processus est appliqué à une séquence, une nouvelle séquence est créée contenant les images sans étoile et, si la génération de masque d'étoile est sélectionnée, une seconde séquence est créée contenant les images de masque d'étoile correspondantes.

Vous trouverez de plus amples informations sur StarNet sur le site web original (Anglais).

Un clic sur Executer lancera le processus. Cela peut être lent, en fonction des performances de votre machine. Cependant, Siril affiche une barre de progression pour suivre le traitement. Comme avec les autres processus Siril, si vous traitez une séquence, la barre de progression ne sera mise à jour qu'après l'achèvement de chaque image de la séquence, et montrera la progression globale de la séquence.

Commandes

Ligne de commande Siril

starnet [-stretch] [-upscale] [-stride=value] [-nostarmask]
Appelle StarNet pour supprimer les étoiles de l'image chargée.

StarNet est un programme externe, sans affiliation avec Siril, et doit être installé correctement avant la première utilisation de cette commande, avec le chemin d'accès à son installation en version CLI correctement défini dans Préférences / Divers.

L'image sans étoile (starless) est chargée à la fin et une image de masque d'étoile est créée dans le répertoire de travail à moins que le paramètre facultatif -nostarmask ne soit fourni.

En option, des paramètres peuvent être passés à la commande :
- 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

Ligne de commande Siril

seqstarnet sequencename [-stretch] [-upscale] [-stride=value] [-nostarmask]
Cette commande appelle StarNet++ pour supprimer les étoiles de la séquence sequencename. Voir STARNET

Liens : starnet

Recomposition des étoiles

L'outil de recomposition des étoiles est un outil graphique qui permet de combiner des images sans étoiles et des images avec masque d'étoiles. Il n'offre aucune manipulation d'image unique qui ne puisse être réalisée par d'autres moyens, par exemple en utilisant PixelMath et l'outil d'étirement hyperbolique généralisé, mais il offre un aperçu en temps réel de la combinaison de deux images distinctes auxquelles des étirements différents ont été appliqués à chacune d'elles.

Il n'y a pas d'équivalent en ligne de commande pour cet outil car il est purement graphique, mais les images sans étoile et avec masque d'étoile peuvent être combinées en utilisant les commandes pm et GHT (ght, invght, modasinh, invmodasinh et linstretch).

L'outil se trouve dans le menu Traitement des images, dans le sous-menu Traitement des étoiles.

La boîte de dialogue est divisée en deux colonnes, une pour chacune des images d'entrée.

dialogue de recomposition des étoiles

Boîte de dialogue Recomposition de l'étoile.

Chaque image d'entrée est chargée à l'aide du sélecteur de fichiers correspondant. Chaque colonne présente un aperçu de l'histogramme, qui peut être réduit pour faciliter l'utilisation sur les petits écrans, ainsi qu'un ensemble de commandes d'étirement.

Le mode d'histogramme peut être changé entre linéaire et logarithmique en utilisant la case à cocher au bas de la boîte de dialogue. Cette boîte de dialogue respecte la préférence globale de Siril concernant les histogrammes linéaires ou logarithmiques, qui peut être définie dans la fenêtre des Préférences.

Astuce

La recomposition des étoiles ne respecte pas la préférence FITS 16 bits, car cela pourrait avoir un effet négatif sur les performances dans certains cas (les calculs doivent de toute façon être effectués en virgule flottante). Donc si vous souhaitez vraiment obtenir un résultat en 16 bits à partir d'images d'entrée en 32 bits, vous devrez utiliser le commutateur de précision.

Mode Simple

La boîte de dialogue a deux vues, qui déterminent les commandes affichées. Elle s'ouvre en mode simple, qui n'affiche que les commandes les plus utiles pour une combinaison typique de starless et de starmask.

  • Le type d'étirement de l'image sans étoile est défini sur l'étirement hyperbolique généralisé et les contrôles Facteur d'étirement, Intensité d'étirement local, Point de symétrie et Point noir sont affichés. Outre le contrôle du point de symétrie dédié, il peut être défini à l'aide de la pipette pour sélectionner la valeur moyenne des pixels d'une sélection de l'image.

    Notez que la pipette est désactivée lorsqu'un décalage du point noir n'a pas été appliqué : en raison du processus d'application de l'étirement hyperbolique puis du décalage de point noir, le comportement de l'outil devient non intuitif lorsqu'un paramètre du point noir non nul est défini. Pour résoudre ce problème, il suffit d'appliquer le décalage du point noir et la pipette redeviendra disponible pour votre prochain étirement hyperbolique.

  • Le type d'étirement de l'image du masque stellaire est défini sur Modified Arcsinh stretch et les contrôles Stretch Factor et Highlight Protection sont affichés.

  • Le modèle de couleur de la luminosité qui simule la vision humaine est utilisé pour les deux séries d'étirements : il permet de mieux préserver les couleurs dans l'image non étirée.

Les détails de toutes les commandes d'étirement, aussi bien celles affichées en mode simple que celles affichées en mode avancé, sont disponibles sur la page de documentation Étirement hyperbolique généralisé.

Le contrôle du point noir (BP) fonctionne d'une manière légèrement différente du contrôle BP dans l'outil autonome d'étirement linéaire (ajustement du point noir) de l'étirement hyperbolique généralisé (GHS). Dans cet outil, l'ajustement du point noir est appliqué après l'étirement hyperbolique, alors que dans l'outil autonome, il s'agit d'un étirement séparé appliqué seul. En essayant d'optimiser la combinaison d'étirements indépendants sur les deux images d'entrée, cette approche s'est avérée la plus pratique. Cela signifie que la quantité de décalage du point noir requise dans cet outil est différente de celle requise dans l'outil GHS, et que le point noir ne peut pas être défini en cliquant sur l'histogramme.

Chaque étirement est indépendant. Les paramètres d'étirement pour le côté sans étoile peuvent être appliqués à l'aide du bouton Appliquer de gauche : l'image sans étoile est étirée en fonction des paramètres d'étirement actuels, puis les paramètres d'étirement sont réinitialisés afin que d'autres étirements puissent être appliqués de manière itérative. De même, les paramètres d'étirement du masque étoilé peuvent être appliqués à l'aide du bouton Appliquer situé à droite. Chaque ensemble de paramètres d'étirement peut être réinitialisé aux valeurs par défaut à l'aide de son bouton Réinitialiser respectif.

La boîte de dialogue peut être basculée entre le mode simple et le mode avancé à l'aide du bouton situé en bas de l'écran.

Mode Avancé

En mode avancé, la gamme complète des contrôles d'étirement de l'outil d'étirement hyperbolique généralisé est disponible, y compris le type d'étirement, le modèle d'étirement des couleurs et le point de protection des ombres pour les deux images d'entrée. Cela permet de personnaliser davantage les deux étirements si nécessaire. Si l'interface utilisateur est ramenée en mode simple, toutes les modifications effectuées à l'aide des commandes avancées restent effectives, seules les commandes sont masquées.

Note

Il n'est pas possible d'étirer les canaux de saturation dans cet outil. L'outil est déjà assez gourmand en mémoire et en CPU : doubler la mémoire requise en ajoutant une copie TSL de chaque image de travail est considéré comme excessif. La saturation peut facilement être étirée séparément une fois la combinaison terminée.

dialogue de recomposition des étoiles

La recomposition des étoiles permet de combiner une image sans étoile et un masque d'étoiles de la région d'Alnitak

Désaturer les étoiles

Lorsqu'une recherche d'étoiles est appliqué à une image (dont les données sont toujours linéaires), des ellipses sont affichées autour des étoiles. Lorsqu'une ellipse est magenta, cela signifie que l'étoile est saturée.

Une étoile saturée est une étoile dont les pixels les plus lumineux n'ont plus d'information et sont coupés à la valeur maximale. En général, nous essayons de ne pas saturer les étoiles, même si cela n'est pas possible pour les plus brillantes. Si malgré les précautions prises il reste des étoiles saturées, Siril dispose d'un algorithme qui va reconstruire le profil de l'étoile en tenant compte des résultats de l'ajustement effectué lors de la recherche de l'étoile.

Tout d'abord, vous devez effectuer une détection d'étoile, soit avec la commande findstar soit avec le bouton chercheur de la fenêtre PSF Dynamique. Ensuite, l'outil de désaturation se trouve dans Traitement des étoiles ‣ Désaturer les étoiles.

Astuce

Nous recommandons d'utiliser un profil Moffat dans la fenêtre PSF Dynamique pour obtenir de meilleurs paramètres.

Avertissement

Il est important d'utiliser l'outil sur une image linéaire, autrement les étoiles n'auront pas un profil Gaussien/Moffat et les calculs seront invalides.

dialogue

Une détection d'étoile montre toutes les étoiles trouvées par Siril. Les ellipses magenta correspondent aux étoiles saturées. L'image est affichée en mode "auto-étirée" : les données sont toujours linéaires.

Après avoir cliqué sur l'outil, Siril passe à l'onglet console et affiche les résultats du processus en cours :

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

Il est nécessaire de refaire une détection d'étoiles pour voir les changements.

dialogue

Après un traitement de désaturation, plus aucune ellipse magenta n'est visible. Toutes les étoiles ont été reconstruites. L'image est affichée en vue auto-étirement : les données sont toujours linéaires.

dialogue

Comparaison d'un étoile avant et après utilisation de l'outil de désaturation.

Ligne de commande Siril

unclipstars
Reprofile les étoiles coupées de l'image chargée pour les désaturer, en mettant à l'échelle la sortie de manière à ce que toutes les valeurs de pixels soient <= 1,0

Resynthèse intégrale

L'outil Resynthèse intégrale a pour but d'aider à corriger les étoiles fortement déformées en utilisant les fonctions d'ajustement stellaire de Siril. Il peut être utile pour sauver des images qui souffrent de coma ou d'autres distorsions. Si Siril peut détecter les étoiles, il peut les corriger.

L'outil se trouve dans le menu Traitement des images, dans le sous-menu Traitement des étoiles.

Le résultat de l'outil est un masque stellaire synthétique. Pour l'utiliser, il doit être recombiné avec une version sans étoiles de l'image originale. Celle-ci peut être préparée à l'aide de la commande starnet ou de l'outil Starnet GUI, ou encore à l'aide d'un logiciel tiers de suppression des étoiles.

Cet outil n'a pas d'options, il suffit de cliquer sur l'élément de menu pour l'utiliser, ou d'utiliser la commande synthstar.

Si aucune étoile n'a été détectée dans l'image, l'outil détectera automatiquement les étoiles en utilisant les paramètres actuels de modélisation des étoiles accessibles via l'outil PSF dynamique ou en utilisant la commande setfindstar.

Si les étoiles ont été modélisées à l'aide de l'outil PSF dynamique ou de la commande findstar, les étoiles détectées seront resynthétisées en utilisant leurs profils de luminosité individuels modélisés. Un raccourci vers l'outil PSF dynamique est fourni au moyen du bouton de configuration dans le menu de l'interface graphique à côté de l'outil Resynthèse complète.

Il est recommandé de procéder d'abord à la détection manuelle des étoiles, car cela permet de vérifier les résultats : si des galaxies ont été incorrectement détectées comme des étoiles, elles peuvent être supprimées de la liste des étoiles avant de lancer la resynthèse.

Une fois le masque stellaire synthétique créé, il peut être combiné avec l'image sans étoile à l'aide de l'outil de recombinaison stellaire.

Commandes

Ligne de commande Siril

synthstar
Corrige les étoiles imparfaites de l'image chargée. Quelle que soit l'importance de la coma, de la dérive ou de toute autre distorsion de vos étoiles, si la routine de recherche d'étoiles de Siril peut les détecter, synthstar les corrigera. Pour une utilisation intensive, vous pouvez souhaiter détecter manuellement toutes les étoiles que vous souhaitez corriger. Cela peut être fait en utilisant la commande findstar de la console ou la boîte de dialogue PSF dynamique. Si vous n'avez pas lancé la détection d'étoiles, elle sera lancée automatiquement avec les paramètres par défaut.

Pour de meilleurs résultats, synthstar doit être exécuté avant l'étirement.

La sortie de synthstar est un masque d'étoile synthétique entièrement corrigé comprenant des PSF d'étoiles parfaitement rondes (profils Moffat ou gaussiens en fonction de la saturation de l'étoile) calculés pour correspondre à l'intensité, à la FWHM, à la teinte et à la saturation mesurées pour chaque étoile détectée dans l'image d'entrée. Cela peut ensuite être recombiné avec l'image sans étoiles pour produire une image avec des étoiles parfaites.

Aucun paramètre n'est requis pour cette commande

Liens : psf

Géométrie

Rotation

Rotation de 90 degrés

Il est possible de faire pivoter l'image de 90 degrés dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre à l'aide du menu dédié. Ici, la rotation est effectuée sans interpolation des pixels et c'est donc la méthode préférée si vous souhaitez faire pivoter l'image d'un multiple de 90 degrés. Cette fonction est également accessible via les icônes rotate-acw et rotate-cw dans la barre d'outils.

Rotation&Recadrage

Pour une rotation d'un autre angle, vous devez utiliser l'outil Rotation&Recadrage. Il permet une rotation et un recadrage précis qui peuvent être facilement contrôlés.

Rotation&Recadrage

Boite de dialogue Rotation&Recadrage affichant tous les paramètres.

Cinq algorithmes d'interpolation sont disponibles :

  • Plus Proches Voisins

  • Bilinéaire

  • Bicubique

  • Zone de relation des pixels

  • Lanczos-4 (Défaut)

Lanczos-4 est celui qui donne les meilleurs résultats. Cependant, si vous voyez des artefacts, en particulier des étoiles entourées de pixels noirs, vous pouvez essayer d'autres méthodes. Cependant, le bouton Contrainte de l'interpolation applique un facteur de contrainte à l'interpolation Bicubique et Lanczos-4 afin d'éviter les artefacts en annaux.

Si vous ne voulez pas que l'image soit recadrée après la rotation, vous devez décocher le bouton recadrer. Cependant, les zones manquantes de l'image seront remplies de pixels noirs.

L'intérêt de cet outil est que la rotation de l'image est représentée par un cadre rouge, comme illustré dans la figure ci-dessous. De plus, si une sélection est active, il est possible de changer sa taille et de voir en temps réel l'évolution du cadrage.

Recadrage dans Rotation&Recadrage

Boîte de dialogue Rotation et recadrage avec une sélection active. Cliquez pour agrandir la figure et mieux voir les détails.

Ligne de commande Siril

rotatePi
Fait pivoter l'image chargée d'un angle de 180° autour de son centre. Ceci est équivalent à la commande "ROTATE 180" ou "ROTATE -180"

Liens : rotate

Ligne de commande Siril

rotate degree [-nocrop] [-interp=] [-noclamp]
Fait pivoter l'image chargée d'un angle de degree degrés. L'option -nocrop peut être ajoutée pour éviter le recadrage à la taille de l'image (des bordures noires seront ajoutées).

Note : si une sélection est active, c'est-à-dire en utilisant la commande `boxselect` avant `rotate`, l'image résultante sera un recadrage avec rotation. Dans ce cas particulier, l'option -nocrop sera ignorée si elle est passée.

La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp

Miroir

Il est également possible d'appliquer une transformation miroir à l'image. Soit le long de l'axe x, soit le long de l'axe y. Cette transformation est également accessible via les boutons mirrorx et mirrory de la barre d'outils.

Ligne de commande Siril

mirrorx [-bottomup]
Retourne l'image chargée autour de l'axe horizontal. L'option -bottomup ne retournera l'image que si elle n'est pas bottom-up

Ligne de commande Siril

mirrory
Retourne l'image autour de l'axe vertical

Binning

Le binning est une transformation spéciale pour le rééchantillonnage d'une image. Il calcule la somme ou la moyenne des pixels 2x2, 3x3, ... (en fonction du facteur de binning) de l'image en mémoire (comme le binning analogique de la caméra CCD).

Boite de dialogue de binning

Boite de dialogue binning

Ligne de commande Siril

binxy coefficient [-sum]
Calcule le binning numérique de l'image en mémoire (somme des pixels 2x2, 3x3..., comme le binning analogique des caméras CCD). Si l'argument facultatif -sum est passé, alors la somme des pixels est calculée, tandis que c'est la moyenne lorsque aucun argument facultatif n'est fourni

Ré-échantillonner

L'outil de rééchantillonnage permet de redimensionner l'image au prix d'une interpolation choisie dans la liste suivante :

  • Plus Proches Voisins

  • Bilinéaire

  • Bicubique

  • Zone de relation des pixels

  • Lanczos-4 (Défaut)

Lanczos-4 est celui qui donne les meilleurs résultats. Cependant, si vous voyez des artefacts, en particulier des étoiles entourées de pixels noirs, vous pouvez essayer d'autres méthodes. Cependant, le bouton Contrainte de l'interpolation applique un facteur de contrainte à l'interpolation Bicubique et Lanczos-4 afin d'éviter les artefacts en annaux.

Si vous souhaitez modifier le rapport d'image, vous devez décocher le bouton Préserver le ratio.

Boite de dialogue Ré-échantillonner

Boite de dialogue Ré-échantillonner

Ligne de commande Siril

resample { factor | -width= | -height= | -maxdim= } [-interp=] [-noclamp]
Rééchantillonne l'image chargée, soit avec un facteur factor, soit pour la largeur ou la hauteur cible fournie par -width=, -height= ou -maxdim=. Ceci est généralement utilisé pour redimensionner les images : un facteur de 0,5 divise la taille par 2. L'argument -maxdim peut être utilisé pour redimensionner la plus grande dimension de l'image à une taille donnée, ce qui peut être utile pour optimiser les images pour certains sites web, par exemple les réseaux sociaux.
Dans l'interface graphique utilisateur, nous pouvons voir que plusieurs algorithmes d'interpolation sont proposés.

La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi d'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp
seqresample sequencename { -scale= | -width= | -height= } [-interp=] [-prefix=]
Met à l'échelle de la séquence donnée en argument sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le facteur d'échelle est spécifié soit par l'argument -scale=, soit en définissant la largeur, la hauteur ou la dimension maximale de sortie à l'aide des options -width=, -height= ou -maxdim=.

Une méthode d'interpolation peut être spécifiée en utilisant l'argument -interp= suivi d'une des méthodes de la liste ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}... Le clamping est appliqué pour l'interpolation cubique et lanczos.

Le nom de la séquence de sortie commence par le préfixe "scaled_", sauf indication contraire avec l'option -prefix=

Extraction de gradient

Le fond du ciel présente souvent un gradient indésirable causé par la pollution lumineuse, la lune ou simplement l'orientation de la caméra par rapport au sol. Cette fonction échantillonne le fond en de nombreux endroits de l'image et recherche une tendance dans les variations. Elle le supprime en suivant une fonction lissée pour éviter de supprimer des nébuleuses.

dialogue

Boite de dialogue extraction du gradient. Sur la gauche la version polynomiale, sur la droite la version RBF.

Les échantillons peuvent être placés automatiquement en fournissant une densité (Echantillons par ligne) et en cliquant sur Générer. Si des zones de l'image sont plus lumineuses que la médiane d'un facteur Tolérance de la grille multiplié par sigma, alors aucun échantillon ne sera placé à cet endroit.

Astuce

Si vous avez des gradients très forts, par exemple lorsque vous photographiez dans un ciel urbain à fort Bortle, même la tolérance maximale de la grille peut s'avérer insuffisante. Dans ce cas, vous pouvez cocher la case Gardez tous les échantillons et la grille d'échantillons complète sera remplie. Vous devrez alors retirer manuellement les échantillons posés sur des objets astronomiques réels.

Après la génération, les échantillons peuvent également être ajoutés manuellement (clic gauche) ou retirés manuellement (clic droit).

Il y a deux algorithmes pour supprimer le gradient :

RBF

Il s'agit de la méthode la plus moderne. Elle utilise la fonction de base radiale pour synthétiser un fond de ciel afin de supprimer le gradient avec une grande flexibilité. Elle nécessite un seul paramètre qui est présent sous la forme d'un curseur : Lissage. Cette valeur permet de déterminer la douceur ou la dureté de la transition entre les points d'échantillonnage. Un facteur de lissage élevé a du sens pour les gradients larges et uniformes, et une valeur correspondante plus faible pour de petits gradients locaux.

Astuce

Commencez par le réglage de base (50 %) et ajustez progressivement pour obtenir des résultats optimaux.

Théorie

Les fonctions de base radiales sont des fonctions de la forme \(\phi(\mathbf{x}) = \phi(\| \mathbf{x} \|)\), sachant que dans notre cas, nous utilisons la norme euclidienne \(\| \mathbf{x} \| = \sqrt{x_1^2 + x_2^2}\). La fonction \(f\), qui décrit le modèle d'arrière-plan, peut maintenant être exprimée comme une combinaison linéaire

\[f(\mathbf{x}) = \sum_i w_i \, \phi(\|\mathbf{x} - \mathbf{x_i}\|) + o\]

où \(w_i\) correspond aux poids des différents points d'échantillonnage et \(o\) correspond à un décalage constant.

L'exigence selon laquelle la fonction \(f\) doit passer par les points d'échantillonnage se traduit par la condition suivante

\[\begin{split}\begin{pmatrix} \phi(\mathbf{x}_1 - \mathbf{x}_1) & \phi(\mathbf{x}_1 - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_1 - \mathbf{x}_N) & 1 \\ \phi(\mathbf{x}_2 - \mathbf{x}_1) & \phi(\mathbf{x}_2 - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_2 - \mathbf{x}_N) & 1 \\ \vdots & \vdots & \ddots & \vdots \\ \phi(\mathbf{x}_N - \mathbf{x}_1) & \phi(\mathbf{x}_N - \mathbf{x}_2) & \dots & \phi(\mathbf{x}_N - \mathbf{x}_N) & 1 \\ 1 & 1 & \dots & 1 & 0 \end{pmatrix} \begin{pmatrix} w_1 \\ w_2 \\ \vdots \\ w_N \\ o \end{pmatrix} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \\ 0 \end{pmatrix} \, ,\end{split}\]

qui ne peut être satisfaite que si la matrice du côté gauche est inversible. Avec le bon choix de la fonction \(\phi\), cela peut toujours être garanti [Wright2003].

En outre, la somme \(s \, I\) est ajoutée à la matrice du côté gauche, où \(s\) est un paramètre de lissage et \(I\) est la matrice unitaire. La somme entraîne une régularisation, qui donne un résultat d'autant plus lisse que le paramètre \(s\) est grand. Ce paramètre peut être modifié avec le paramètre Lissage de la boîte de dialogue.

Pour la fonction de base radiale, nous utilisons la spline mince \(\phi(|\mathbf{x}|) = |\mathbf{x}|^2 \log(|\mathbf{x}|)\).

Polynomiale

Il s'agit de l'algorithme original et le plus simple développé dans Siril. Un seul paramètre est utilisé dans le calcul polynomial : le  bouton Ordre. Plus le degré de l'ordre est élevé, plus la correction est souple, mais un degré trop élevé peut donner des résultats étranges comme une surcorrection.

Astuce

Une correction de degré 1 peut s'avérer très utile lorsque vous souhaitez supprimer le gradient sur les images individuelles.

Avertissement

L'extraction de fond peut être effectuée sur des images CFA, mais uniquement si elles ont des motifs Bayer. (Ce n'est pas pris en charge pour les motifs X-TRANS.) Pour les images à motif Bayer, l'image est traitée comme quatre images entrelacées spatialement, chacune correspondant à un sous-canal CFA. Chaque sous-canal est traité indépendamment pour supprimer son gradient, puis les sous-canaux sont recombinés dans le motif entrelacé d'origine.

L'usage prévu pour cela est de supprimer les gradients linéaires des images de la séquence avant d'utiliser Drizzle sur une séquence à motif Bayer, et dans ce cas il est fortement recommandé d'utiliser une suppression de gradient linéaire (ordre polynomial 1), comme pour les autres suppressions de gradient avant empilement.

Théorie

Les fonctions polynomiales sont des fonctions de la forme

\[\begin{equation} f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_2x^2+a_1x+a_0 \end{equation}.\]

Dans Siril, le degré maximum autorisé est \(n=4\) et peut être modifié en utilisant le menu déroulant Ordre. Au-delà, le modèle est généralement instable et donne de mauvais résultats.

Paramètres généraux

  • Ajout de diffusion d'erreur (dither) : Activez cette option lorsque des bandes de couleur apparaissent après l'extraction du gradient. Le dither est une forme de bruit appliquée intentionnellement et utilisée pour randomiser l'erreur de quantification, empêchant ainsi l'apparition de motifs à grande échelle tels que les bandes de couleur dans les images.

  • Correction :

    • Soustraction : ceci est principalement utilisé pour corriger les effets additifs, tels que les gradients causés par la pollution lumineuse ou par la lune.

    • Division : principalement utilisé pour corriger les phénomènes multiplicatifs tels que le vignettage ou l'absorption atmosphérique différentielle par exemple. Cependant, ce genre d'opération devrait être effectué à l'aide du master-flat.

  • Calcul du fond de ciel : Cela va calculer le fond synthétique et appliquer la correction sélectionnée. Le modèle est toujours calculé à partir de l'image d'origine conservée en mémoire, ce qui permet à l'utilisateur de travailler de manière itérative.

  • Afficher l'image originale : Appuyez sur ce bouton pour voir l'image originale.

Le gradient du fond de l'image pré-traitée peut être complexe car le gradient peut avoir tourné avec la session d'acquisition. Il peut être difficile de le supprimer complètement car il est difficile de le représenter par une fonction polynomiale. Si c'est le cas, vous pouvez envisager de supprimer le gradient dans les images individuelles : dans une seule image, le gradient de fond est beaucoup plus simple et suit généralement une fonction linéaire simple (degré 1).

Astuce

Il arrive que des bandes de couleur disgracieuses apparaissent après l'extraction du gradient. Dans ce cas, il y a deux choses à vérifier. Tout d'abord, si l'image est en 16 bits, nous vous conseillons vivement de toujours utiliser le format 32 bits. Si, malgré tout, vous observez de tels artefacts, l'option Ajout de diffusion d'erreur (dither), expliquée ci-dessus, est la solution à votre problème.

dialogue

Lorsqu'un tel effet de bande se produit après l'extraction du gradient, il peut être résolu par l'option Ajout de diffusion d'erreur (dither) (avec l'aimable autorisation de Nathan B.).

Astuce

Pour obtenir de bons résultats avec l'algorithme RBF, il suffit généralement de moins d'échantillons qu'avec l'algorithme polynomial.

Voir aussi

Pour plus d'explications, voir le tutoriel correspondant ici.

Ligne de commande Siril

subsky { -rbf | degree } [-dither] [-samples=20] [-tolerance=1.0] [-smooth=0.5] [-existing]
Calcule un fond de ciel synthétique en utilisant soit le modèle de fonction polynomiale de degree degrés, soit le modèle RBF (si -rbf est fourni à la place) et le soustrait de l'image.
Le nombre d'échantillons par ligne horizontale et la tolérance pour exclure les zones plus claires peuvent être ajustés avec les arguments optionnels. La tolérance est exprimée en unités MAD : médiane + tolérance * mad.
La diffusion d'erreur, nécessaire pour les gradients peu dynamiques, peut être activé avec -dither.
Pour RBF, le paramètre de lissage supplémentaire est également disponible. Pour utiliser des échantillons d'arrière-plan préexistants (par exemple, si vous avez défini des échantillons d'arrière-plan à l'aide d'un script Python), l'argument -existing doit être utilisé

Astuce

L'argument de commande -existing force l'utilisation des échantillons de fond existants. Cette option est principalement destinée à être utilisée conjointement avec le module Python, où SirilInterface.set_bgsamples() peut être utilisé pour définir des échantillons de fond personnalisés basés sur des algorithmes définis par l'utilisateur. S'il n'est pas fourni, subsky régénérera automatiquement des échantillons de fond. Notez que l'option -existing n'est pas disponible avec la commande seqsubsky, car les images d'une séquence ne sont pas nécessairement alignées au moment où la soustraction de fond est effectuée, de sorte que les échantillons d'une image ne s'appliquent pas nécessairement à une autre.

Ligne de commande Siril

seqsubsky sequencename { -rbf | degree } [-nodither] [-samples=20] [-tolerance=1.0] [-smooth=0.5] [-prefix=]
Même commande que SUBSKY mais pour la séquence sequencename.
Le tramage, requis pour les faibles gradients dynamiques, peut être désactivé avec -nodither. Notez que l'option -existing n'est pas disponible pour l'extraction de fond d'une séquence, car les images d'une séquence ne sont pas nécessairement toujours alignées.

Le nom de la séquence de sortie commence par le préfixe "bkg_" sauf indication contraire avec l'option -prefix=. Seules les images sélectionnées dans la séquence sont traitées

Liens : subsky
[Wright2003]

Wright, Grady Barrett. Radial basis function interpolation : numerical and analytical developments. University of Colorado at Boulder, 2003.

Interface GraXpert

Astuce

La première interface GraXpert était écrite en C et se contentait d'appeler l'exécutable GraXpert. Cependant, pour diverses raisons, cette approche s'est révélée peu fiable pour une minorité significative d'utilisateurs, et avec Siril 1.4.0-beta2, une interface mise à jour a été publiée sous forme de script Python. Celle-ci s'interface directement avec les fichiers de modèle GraXpert et offre de bien meilleures performances et intégration, et comme elle s'appuie sur la manière dont l'interface Python utilise la bibliothèque de modules PyPI native pour installer les versions correctes des dépendances pour la machine de chaque utilisateur, elle devrait être plus fiable et mieux à même de tirer parti des différents types de GPU.

En raison de la manière dont GraXpert distribue ses modèles d'IA depuis une instance Amazon S3, une copie du programme GraXpert doit être disponible afin de télécharger les fichiers de modèle. Les fichiers de modèle que vous pouvez télécharger dépendent de la version de GraXpert installée ; il est donc recommandé d'installer la 3.1.0-RC2, qui donne accès aux modèles de déconvolution stellaire et d'objets de fond, ainsi qu'aux modèles de débruitage et d'extraction de fond disponibles depuis la version 3.0.0.

L'ancienne interface GraXpert a été marquée comme obsolète dans la 1.4.0-beta2 et a depuis été retirée de la base de code. Cette documentation couvre la nouvelle interface basée sur Python.

Siril fournit une interface vers les modèles d'IA proposés par l'outil tiers GraXpert. Il s'agit d'un logiciel tiers libre et open source qui fournit des routines sophistiquées de suppression de fond et de débruitage. Il existe une longue histoire de collaboration entre Siril et GraXpert, et l'algorithme RBF utilisé dans la fonction principale de suppression de fond de Siril a été fourni par les développeurs de GraXpert il y a plusieurs années.

Pour être utilisé, le chemin vers l'installation fonctionnelle de GraXpert doit être défini dans Préférences->Divers.

Installation et configuration

Le script GraXpert-AI.py peut être installé de la manière habituelle, en allant dans le menu Scripts -> Obtenir des scripts et en cochant la case à côté du script dans la liste.

Pour configurer le script, vous devez indiquer à Siril où se trouve votre installation de GraXpert. Pour ce faire, allez dans Préférences -> Divers et sélectionnez l'exécutable GraXpert à l'aide du sélecteur de fichier approprié.

Aspects généraux du GUI

L'interface graphique est présentée ci-dessous :

dialogue

Interface du script GraXpert, montrant les options de débruitage.

La barre de titre change pour afficher l'opération actuellement sélectionnée, et en haut de la fenêtre se trouvent le titre du script et son numéro de version. Un menu déroulant vous permet de sélectionner l'opération que vous souhaitez effectuer. La façon dont ce menu déroulant est rempli dépend de la version de GraXpert dont vous disposez. Il proposera toujours Débruitage et Extraction de fond, même si aucun modèle local n'est disponible (voir la section sur le gestionnaire de modèles pour savoir comment télécharger des modèles). Si vous disposez de modèles de déconvolution localement, ou si vous avez défini l'emplacement d'une version de GraXpert prenant en charge la déconvolution, vous verrez également Déconvolution (Étoiles) et Déconvolution (Objets), mais si ces modèles ne sont pas disponibles localement et que vous ne disposez pas d'une version de GraXpert capable de les télécharger, ils ne seront pas affichés.

Suit ensuite une zone pour les paramètres spécifiques à l'opération. Si vous sélectionnez Débruitage, vous trouverez un widget pour contrôler l'intensité ; si vous sélectionnez Extraction de fond, vous trouverez des widgets pour le lissage et le type d'extraction de fond à effectuer, etc. Ceux-ci sont décrits plus en détail ci-dessous.

Le paramètre Avancé permet de contrôler la taille de lot d'inférence et d'activer ou non l'accélération GPU. Il est généralement judicieux de laisser la taille de lot à sa valeur par défaut : elle définit combien de portions de l'image peuvent être traitées en parallèle, et l'augmenter peut entraîner des erreurs de mémoire insuffisante.

Astuce

Les modèles GraXpert utilisent ONNX pour effectuer l'inférence. Il s'agit d'un framework de Machine Learning indépendant du matériel, qui fournit divers runtimes ciblant différents types de matériel d'accélération. Il existe un runtime NVidia spécifique, un runtime DirectML fournissant une accélération GPU générique sous Windows, un runtime MacOS et des runtimes Linux pour les GPU NVidia, AMD et Intel. Le script tentera automatiquement d'installer le runtime le plus adapté à votre matériel ; toutefois, si cela ne fonctionne pas, il existe toujours un runtime CPU vers lequel se replier - désactivez simplement la case d'accélération GPU et veuillez soumettre un rapport de bogue, car il s'agit d'une nouvelle fonctionnalité et nous sommes particulièrement intéressés par tout problème lié à la sélection du runtime ONNX.

Enfin, l'interface fournit des boutons Appliquer et Fermer qui effectuent les fonctions attendues, ainsi qu'un bouton Gestionnaire de modèles qui ouvre un outil permettant de découvrir et de télécharger des versions des modèles d'IA.

Lors de l'ouverture de l'interface graphique, celle-ci détectera si une image unique ou une séquence est chargée. Si une image unique est chargée, elle sera traitée et le résultat sera mis à jour dans Siril, tandis que si une séquence est chargée, toutes les images sélectionnées de la séquence seront traitées et une nouvelle séquence sera créée avec un préfixe dépendant de l'opération effectuée.

Avertissement

Dans Siril 1.4, le scripting Python ne peut pas s'abonner aux notifications d'événements de Siril, il n'est donc pas possible pour le script de détecter si l'image a été fermée ou si un changement entre une image unique et une séquence se produit après l'ouverture de l'outil. Par conséquent, si vous faites cela, vous devez fermer et rouvrir l'interface graphique du script.

Extraction de gradient

Le modèle d'IA d'extraction de fond de GraXpert propose deux paramètres :

  • Lissage - ceci détermine la douceur du modèle de fond généré.

  • Type de correction - ceci détermine le type de correction appliqué : vous pouvez choisir entre soustraction ou division.

Notez que le script GraXpert ne fournit pas d'interface vers les algorithmes classiques de suppression de fond proposés par GraXpert. RBF est déjà disponible nativement dans Siril, et Spline et Kriging n'offrent généralement pas de meilleures performances que RBF.

Déconvolution

À partir de la version 3.1, GraXpert prend en charge la déconvolution. Une fois les modèles téléchargés, Siril prend en charge les deux modes proposés par GraXpert :

  • Déconvolution d'objets

  • Déconvolution stellaire

Ces modes peuvent être sélectionnés à l'aide du menu déroulant Opération.

Les deux modes de déconvolution ont deux paramètres, Intensité, qui prend des valeurs entre 0.0 (pas de déconvolution) et 1.0 (déconvolution maximale), et FWHM de l'image (en pixels), qui prend également des valeurs entre 0.0 (privilégie la préservation des structures fines) et 10.0 (privilégie la capacité de déconvolution). Si vous le réglez sur zéro, vous pouvez constater un effet très (trop) faible sur l'image traitée ; si c'est le cas, augmentez-le.

Débruitage

Pour utiliser le modèle d'IA de débruitage de GraXpert, sélectionnez Débruitage dans le menu déroulant des opérations. Cette opération n'a qu'un seul paramètre, Intensité, qui prend des valeurs entre 0.0 (pas de débruitage) et 1.0 (débruitage maximal).

Le débruitage peut prendre un certain temps, en particulier pour les images de grande taille et/ou si vous utilisez un CPU pour l'inférence. Cependant, une fois le débruitage effectué, l'image débruitée est mise en cache, de sorte qu'expérimenter avec différentes intensités est extrêmement rapide.

Gestionnaire de modèles

Le script fournit un gestionnaire de modèles pour découvrir et télécharger des versions de modèles. Alors que l'inférence se fait directement dans le script, le téléchargement des modèles nécessite l'utilisation du programme GraXpert lui-même, car les modèles sont stockés dans une instance Amazon S3 et GraXpert stocke ses identifiants en interne. Le gestionnaire de modèles affichera des boutons radio pour chaque modèle que la version installée de GraXpert est capable de télécharger. Pour la v3.0.x, cela signifie débruitage et extraction de fond ; pour la v3.1.0-rcx, cela ajoute également la déconvolution stellaire et d'objets.

La liste des modèles disponibles à distance est affichée. Si vous souhaitez découvrir des modèles pour une autre opération d'IA, changez le bouton radio pour l'opération pour laquelle vous voulez un modèle et cliquez sur Actualiser. Un modèle peut être téléchargé en le sélectionnant dans la liste et en cliquant sur Télécharger le modèle sélectionné. Notez que le téléchargement peut prendre un certain temps dans le cas de modèles volumineux ou de connexions réseau lentes, et GraXpert fournit peu de retour, alors soyez patient. Les modèles sont stockés dans le répertoire de données utilisateur de GraXpert.

Avertissement

Ne déplacez pas les modèles GraXpert de la structure de répertoire de données GraXpert où ils sont enregistrés par le gestionnaire de modèles. C'est là que le script s'attend à les trouver, et il ignorera les modèles placés à tout autre emplacement.

Une fois un modèle téléchargé, il sera automatiquement ajouté au menu déroulant des versions de modèle dans l'interface principale lorsque l'opération d'IA correspondante est sélectionnée.

dialogue

Interface de script GraXpert, affichant le gestionnaire de modèles.

Scripts

Le script GraXpert-AI.py fournit une interface en ligne de commande destinée aux scripts. Celle-ci utilise la commande pyscript comme indiqué ci-dessous.

Ligne de commande Siril

pyscript scriptname.py [script_argv]
Exécute un script Siril en python

Le nom du script doit être fourni en tant que premier argument. S'il n'est pas trouvé dans le répertoire de travail actuel, les chemins d'accès aux scripts définis par l'utilisateur spécifiés dans les préférences et le répertoire local siril-scripts seront recherchés. Tous les arguments suivants seront traités comme des arguments de script et transmis au script sous forme de vecteur d'arguments. Notez que le script spécifique doit prendre en charge la lecture des entrées à partir du vecteur d'arguments
Paramètres d'opération

Les paramètres suivants permettent de définir l'opération à effectuer :

  • -denoise spécifie le débruitage

  • -deconv_obj spécifie la déconvolution d'objet

  • -deconv_stellar spécifie la déconvolution d'étoile

  • -bge spécifie l'extraction du fond de ciel

Paramètres Générales

Les paramètres suivants sont reconnus dans tous les modes :

  • -h / --help affiche l'aide dans la console Siril et quitte

  • -model spécifie la version du modèle à utiliser (par exemple -model="3.0.2"). Si cet argument est omis, la dernière version disponible est utilisée par défaut.

  • -batch spécifie la taille de lot de l'IA

  • -gpu spécifie l'utilisation du GPU (ceci est l'option par défaut)

  • -nogpu spécifie d'utiliser uniquement l'interface CPU

  • -listmodels demande au script de lister les versions de modèle disponibles pour l'opération spécifiée, puis de quitter

Astuce

Notez que ce script ne fournit pas de paramètre -seq car il s'attend à travailler sur une séquence déjà chargée dans Siril. En script, cela peut être réalisé en utilisant d'abord la commande load_seq pour charger la séquence souhaitée.

Paramètres de l'extraction du fond de ciel
  • -smoothing= cette option définit le paramètre de lissage, entre 0.0 et 1.0

  • -correction= cette option définit le type de correction et peut être soit « subtraction » soit « division »

  • -keep-bg cette option spécifie que le fond modélisé doit également être enregistré. Pour un nom de fichier tel que myfile.fit, le fond sera enregistré sous le nom myfile_bg.fit

Paramètre de débruitage
  • -strength= Cette option définit l'intensité du paramètre, entre 0,0 et 1,0

Paramètre de déconvolution

Les mêmes paramètres sont disponibles pour la déconvolution stellaire et la déconvolution d'objet :

  • -strength définit la force de la déconvolution, entre 0.0 et 1.0

  • -psfsize cette option définit la taille de la PSF, comme décrit ci-dessus

Exemples

pyscript GraXpert_AI.py -denoise -model='3.0.1'

Ou, si vous l'appelez depuis un autre script Python :

siril.cmd("pyscript", "GraXpert-AI.py", "-denoise", "-model='3.0.1'")

Extraction des canaux

Séparation des canaux

This function creates three monochrome images from a 3-channel color image, depending on the configured color space. For RGB, it’s simply splitting the file in three. For the others, it involves computation of the equivalent color space, either HSL (hue-saturation-lightness), HSV (hue-saturation-value) or CIELAB.

dialogue

Boite de dialogue Séparer les canaux.

Astuce

Si aucun nom n'est donné à un canal, celui-ci n'est pas extrait.

Ligne de commande Siril

split file1 file2 file3 [-hsl | -hsv | -lab]
Divise l'image couleur chargée en trois fichiers distincts (un pour chaque couleur) et les enregistre dans les fichiers file1.fit, file2.fit et file3.fit. Un dernier argument peut être fourni, -hsl, -hsv ou lab pour effectuer une extraction TSL, TSV ou CieLAB. Si aucune option n'est fournie, l'extraction est de type RVB, ce qui signifie qu'aucune conversion n'est effectuée

Séparer les canaux CFA

CFA signifie color filter array (matrice de filtres couleur). Ce terme est souvent utilisé pour décrire le contenu d'une image couleur à un canal, chaque pixel correspondant à des valeurs acquises derrière un filtre sur le capteur. Il s'oppose aux images dématricées.

L'ouverture d'une image CFA dans Siril est nécessaire pour le prétraitement, comme l'élimination du signal dark avant l'interpolation de l'image en couleur à trois canaux. Nous pouvons également utiliser les informations du filtre de couleur pour extraire des images comme celle-ci :

  • Séparer les canaux CFA : quartes images sont créées à partir de l'image CFA, chacune représentant un filtre de la matrice de Bayer, donc en général R.fit, G1.fit, G2.fit et B.fit. Ceci est utile si le but est de traiter séparément les différentes couleurs de l'image.

  • Extraire Ha : l'utilisation d'un filtre H-alpha avec une image de caméra couleur (OSC : on-sensor color, ou one-shot color camera) signifie que seuls les pixels avec des filtres rouges seront utiles, donc en général seulement un quart d'entre eux. Cette fonction crée une nouvelle image qui ne contient que les pixels associés au filtre rouge documenté dans la matrice de Bayer de l'image.

  • Extraire Ha/OIII : pour les caméras OSC, des filtres qui laissent passer les photons des longueurs d'onde H-alpha et O-III sont apparus. Cette extraction crée deux images : une image à partir des pixels rouges comme l'extrait Ha, et une image combinant les pixels verts et bleus en une seule pour O-III. Les deux images correspondent à la moitié de la définition de l'image d'entrée.

    Note

    Une question est fréquemment posée sur la raison pour laquelle les images Ha et OIII sont de tailles différentes et sur la manière dont elles sont réparties. Cette note tente d'apporter une réponse à cette question.

    Dans un capteur d'images couleur, les pixels sont recouverts d'une matrice de filtres très fine appelée matrice de filtres couleur (CFA) ou matrice de Bayer. La disposition des pixels filtrés correspond à un certain nombre de modèles : RVVB, VBVR, etc.

    original

    Image originale par Cburnett, sous la licence CC BY-SA 3.0.

    Parmi ces pixels, seuls les pixels R sont sensibles à Ha. Nous commençons donc par séparer tous les pixels rouges dans une image Ha. Étant donné que seul 1 élément CFA sur 4 est rouge, les dimensions de l'image Ha sont inférieures de moitié à celles de l'image originale.

    Les pixels restants, V et B, sont tous sensibles à l'OIII. La sensibilité des pixels filtrés V à l'OIII est différente de la sensibilité des pixels filtrés B à l'OIII, mais ils représentent la même scène et sont répartis uniformément, de sorte que l'intensité moyenne doit être la même.

    \[ \begin{align}\begin{aligned}\text{V}_\text{i} = \text{V}_\text{io} \times \frac{3 \times \overline{\text{V}_\text{o}}}{2 \times \overline{\text{V}_\text{o}} + \overline{\text{B}_\text{o}}}\\\text{B}_\text{i} = \text{B}_\text{io} \times \frac{3 \times \overline{\text{B}_\text{o}}}{2 \times \overline{\text{V}_\text{o}} + \overline{\text{B}_\text{o}}}\end{aligned}\end{align} \]

    \(\text{B}_\text{i}\) est le \(i^{\text{ème}}\) pixel bleu, \(\text{B}_\text{io}\) est le \(i^{\text{ème}}\) pixel bleu d'origine et \(\overline{\text{B}_\text{o}}\) est la moyenne de tous les pixels bleus d'origine (et de même pour les pixels verts).

    Jusqu'à présent, nous disposons d'un ensemble égalisé de pixels V et B avec des lacunes où les pixels R ont été supprimés. Enfin, nous utilisons l'interpolation bilinéaire pour estimer les valeurs des pixels R et obtenir une image OIII de taille normale.

    Note

    L'option de rééchantillonnage Ha/OIII permet de gérer la sortie de l'extraction Ha/OIII. Pas de rééchantillonnage produit une image OIII en pleine résolution et une image Ha en demi résolution ; sur-échantillonner Ha rééchantillonne l'image Ha d'un facteur 2 pour correspondre à l'image OIII ; sous-échantillonner OIII rééchantillonne l'image OIII d'un facteur 2 pour correspondre à l'image Ha.

    Il se peut que vous souhaitiez utiliser le drizzle pour mettre à l'échelle les données Ha au lieu de les mettre à l'échelle. Comme le drizzle est une méthode d'empilement, dans ce cas vous devez utiliser seqextract_HaOiii pour extraire le Ha et le OIII de chaque image de la séquence, et ensuite empiler les images OIII de la manière habituelle et les images Ha avec un drizzle x2.

  • Extraire Vert : pour la photométrie, il est souvent utile de ne traiter que la partie verte de l'image CFA, parce qu'elle est plus sensible et qu'elle a deux pixels à moyenner, ce qui réduit encore le bruit. Bien entendu, l'image créée voit également sa définition divisée par deux.

dialogue

Boite de dialogue Séparer les canaux CFA.

Note

Ces fonctions ne fonctionnent que si la matrice de Bayer a été correctement documentée par le logiciel d'acquisition et si le format d'image le supporte, donc en général FITS ou SER.

Avertissement

Cela ne fonctionne pas avec d'autres matrices de filtres que les matrices de Bayer, comme le Fujifilm X-TRANS.

Couches des ondelettes

Cet outil extrait les différents plans de l'image en appliquant le processus d'ondelettes. Chaque plan est enregistré dans une image et l'ensemble des images peut être lu comme une séquence. Vous pouvez choisir jusqu'à 9 couches pour le calcul des ondelettes et le type d'algorithme est soit Linéaire, soit BSpline. Ce dernier est généralement préféré.

dialogue

Boite de dialogue Extraction des Couches des Ondelettes.

La décomposition se fait à travers un certain nombre de couches de détail définies à des échelles caractéristiques croissantes et une couche résiduelle finale, qui contient les structures restantes non résolues.

original

Image originale de M45 (avec la permission de V. Cohas).

plans

6 plans extraits.

Linear Match

L'appariement linéaire consiste à trouver une fonction linéaire qui fait correspondre au mieux (au sens de la méthode des moindres carrés) l'intensité des pixels d'une image à celle d'une image de référence. Il s'agit d'un moyen simple et rapide d'équilibrer les histogrammes de différentes images.

Boite de dialogue Linear Match

Boite de dialogue Linear match

Le bouton Réference vous permet de choisir l'image de référence.

Les curseurs Rejet bas et Rejet haut permettent d'exclure les valeurs des pixels situés dans les queues gauche et droite des distributions d'intensités. Ils sont définis comme des quantiles, dans l'intervalle [0, 1]. Par exemple, la valeur par défaut pour haut est 0.92, ce qui signifie que les 8 % de pixels les plus lumineux seront exclus de l'ajustement pour trouver les coefficients de correspondance linéaire.

Avertissement

L'image et la référence doivent être alignées avant d'appliquer une correspondance linéaire. Dans le cas contraire, il n'y a aucune raison de supposer que les intensités de leurs pixels sont corrélées.

Ligne de commande Siril

linear_match reference low high
Calcule et applique une fonction linéaire entre une image de référence et l'image chargée.

L'algorithme ignore tous les pixels de référence dont les valeurs se situent en dehors de la plage [low, high]

Composition RVB

Boite de dialogue composition RVB

L'outil de composition RVB vous permet d'assembler jusqu'à 8 images monochromes pour former une seule image couleur. L'outil a été mis à jour pour donner accès à toutes les meilleures méthodes d'alignement disponibles dans Siril, ainsi qu'à une méthode d'alignement manuel unique à cet outil.

Le fonctionnement de cet outil est assez simple, il suffit de charger les images et de leur attribuer une couleur. Le premier champ, optionnel, est réservé à la couche de luminance. Une fois la couche de luminance chargée, vous pouvez l'intégrer ou non dans la composition grâce au bouton Utiliser la Luminance. Chaque couleur peut être personnalisée en cliquant dessus et en choisissant une nouvelle. Lorsque plus de 3 images (ou 4 s'il y a de la luminance) sont chargées, ou lorsque les couleurs assignées sont des mélanges de couleurs plutôt que des R, V et B purs, il peut être nécessaire d'ajuster la luminosité de chaque canal. Le bouton Ajuster la luminosité des canaux effectue cette opération automatiquement.

Lors de la composition de différents canaux, en particulier à partir de filtres à bande étroite, les histogrammes peuvent être fortement désynchronisés. Une correction initiale de base peut être effectuée en appliquant une correspondance linéaire à l'aide du bouton Linear match. Cela fonctionne de la même manière que la même entrée dans le menu Traitement de l'image, mais est adapté à cet outil particulier. La couche supérieure chargée (habituellement Luminance ou Rouge) est prise comme canal de référence, et tous les autres canaux sont automatiquement mis en correspondance linéaire avec elle. Ceci est particulièrement important si l'on assigne des couleurs non pures à certains canaux, car chaque canal sera potentiellement mélangé à chaque canal RVB dans le résultat, et il ne sera plus possible d'ajuster séparément les histogrammes des canaux d'entrée en ajustant les histogrammes R, V et B de la composition.

Il est possible d'activer ou non l'option Additionner les temps d'exposition. Cette option permet à l'utilisateur d'additionner ou non les temps d'exposition des images individuelles, en stockant le résultat dans l'en-tête FITS.

Note

Pour le binning et les dimensions de l'image, la première image chargée détermine la taille de l'image de sortie. Si vous avez des images de tailles différentes, vous devez toujours charger la plus grande en premier. Si vos images sont différentes en raison du binning, mais avec le même champ de vision, l'outil de composition augmentera la taille des plus petites images lorsqu'elles seront chargées pour qu'elles correspondent à la taille de la première image chargée. Cela est utile pour les images L-RVB communes prises avec les filtres de couleur en bin2. Cela signifie également que si deux images n'ont pas été prises avec le même capteur, il est peu probable qu'elles aient le même champ de vision et le même échantillonnage de pixels après le rééchantillonnage de l'image. La capacité de cet outil à aligner de telles images dépendra de la différence d'échelle et de la méthode d'alignement utilisée.

Trois espaces colorimétriques sont disponibles pour le rendu de la composition :

  • TSL (pour teinte, saturation, luminosité)

  • TSV (pour teinte saturation valeur)

  • CIE L*a*b*

et sont laissés au choix de l'utilisateur.

Une fois la composition terminée, il est possible d'effectuer une correspondance linéaire des canaux à l'aide du bouton Correspondance linéaire.

Si les images ne sont pas alignées entre elles, il est possible de les aligner. Les algorithmes suivants sont disponible :

  • Ciel profond (alignement global des étoiles en deux étapes) : aucune sélection n'est requise pour cette méthode. Cette méthode génère une homographie très précise à 8 degrés de liberté entre les images.

  • Planétaire (alignement par motifs) : vous devez dessiner une sélection autour de l'objet que vous souhaitez aligner. Un contraste suffisamment élevé est nécessaire pour que l'algorithme fonctionne correctement. Cette méthode n'aligne que les décalages d'image par translation, elle ne peut pas compenser la rotation. Elle convient pour les images planétaires, mais pour les images du ciel profond, il est recommandé d'utiliser la méthode d'alignement global des étoiles.

  • KOMBAT : comme pour l'alignement par motif, vous devez dessiner une sélection autour de l'objet que vous souhaitez aligner. Cette méthode n'aligne également que les décalages d'images par translation. Elle est beaucoup plus rapide que l'autre méthode, mais peut s'avérer moins efficace lorsque les motifs d'image des différents canaux sont très différents (par exemple, deux canaux planétaires filtrés avec des filtres IR et UV peuvent ne pas présenter suffisamment de similitudes de motifs pour que KOMBAT puisse les faire correspondre).

  • Alignement manuel : cette méthode est propre à l'outil de composition RVB. Lorsqu'ils sont sélectionnés, les boutons de rotation changent de fonction : ils affichent des informations sur les décalages d'alignement et vous permettent d'entrer les décalages souhaités en x et y ainsi que la rotation. La rotation est centrée par défaut sur le centre de l'image, mais un centre de rotation personnalisé peut être choisi pour chaque calque à l'aide du bouton de centrage situé à droite de chaque ensemble de commandes de calque. Cette méthode peut s'avérer utile si vous avez des images qui ne se prêtent pas à l'alignement par l'une des autres méthodes, ou si vous souhaitez affiner les résultats.

Vous pouvez choisir la méthode de gestion du cadre qui sera appliquée à vos calques alignés. Les méthodes suivantes sont possibles :

  • Premier canal - cette méthode permet de cadrer toutes les autres images sur le premier canal (généralement la luminance ou le rouge). Cette méthode est particulièrement utile pour les compositions LRGB.

  • MIN - cette méthode applique le cadrage minimum : le plus grand rectangle comprenant uniquement les régions couvertes par toutes les images d'entrée sera cadré.

  • COG - cette méthode sélectionne un cadrage optimal pour la composition sur la base du centre de gravité des pixels alignés de l'image.

Note

Les méthodes de cadrage ne s'appliquent pas à l'alignement par motifs. Cette méthode est toujours basée sur le premier canal. Si cette méthode d'alignement est sélectionnée, la méthode de cadrage choisie sera ignorée.

Astuce

Lors de l'alignement, l'outil de composition RVB aligne les images chargées en mémoire. Cela signifie que si vous décidez que vous n'êtes pas satisfait de l'alignement et que vous voulez essayer une autre méthode ou un autre cadrage, vous devez recharger toutes les images pour revenir à leur état d'origine avant l'alignement. Le bouton Tout recharger est prévu à cet effet.

Si vous préférez composer vos images d'une autre manière, par exemple en utilisant Pixel Math, vous pouvez toujours utiliser l'outil de composition RVB comme moyen rapide d'aligner les images. Après l'alignement, presser Enregistrer tout sauvegardera toutes les images alignées avec leurs noms de fichiers originaux préfixés par comp_. Ces images peuvent ensuite être utilisées dans l'outil de votre choix et, contrairement à ce qui se passe si vous créez une séquence avec vos empilements et que vous l'alignez de la manière habituelle, le nom du fichier indique clairement quelle est l'image en question.

Cet outil est par nature graphique et n'est pas exactement reproduit dans une commande Siril, mais il existe des commandes qui peuvent être utilisées pour réaliser une partie du processus :

  • Alignement peut aligner une séquence contenant les images empilées,

  • La commande rgbcomp peut composer une image RVB à partir de 3 images R, V et B distinctes ou de 4 images L, R, V, B, cependant les images doivent être pré-alignées et il n'est pas possible d'attribuer des couleurs mixtes aux images d'entrée.

  • Pixelmath peut également être utilisé dans des scripts pour combiner les canaux.

  • Il existe également un script de composition RVB intégré qui permet d'automatiser en partie le processus.

Ligne de commande Siril

rgbcomp red green blue [-out=result_filename] [-nosum]
rgbcomp -lum=image { rgb_image | red green blue } [-out=result_filename] [-nosum]
Crée une composition RVB à l'aide de trois images indépendantes, ou une composition LRVB à l'aide de l'image de luminance optionnelle et de trois images monochromes ou d'une image couleur. L'image résultante est appelée composed_rgb.fit ou composed_lrgb.fit à moins qu'un autre nom ne soit fourni dans l'argument optionnel. Un autre argument optionnel, -nosum, indique à Siril de ne pas additionner les temps d'exposition. Cela a un impact sur les mots-clés FITS tels que LIVETIME et STACKCNT

Fusionner les canaux CFA

Boîte de dialogue Fusionner les éléments

Le but de cet outil est de combiner plusieurs images monochromes qui ont été préalablement extraites d'un capteur CFA (avec le menu Extraction ‣ Séparer les canaux CFA... par exemple). L'outil fusionne les images séparées des canaux rouge, vert (x2) et bleu en une seule image composite appelée image CFA.

Avertissement

Cet outil est dédié aux images provenant d'une matrice de Bayer et ne peut donc pas fonctionner avec des images provenant de fichiers issue des capteurs X-Trans des appareils photo Fuji.

Le dialogue est divisé en trois parties différentes :

  • Fichiers d'entrée : sélectionnez les images contenant les sous-motifs de Bayer CFA0, CFA1, CFA2 et CFA3. Si celles-ci ont été produites à l'aide de la fonction « Split CFA » de Siril, elles porteront le préfixe CFA.

  • Motif de Bayer : Définit l'en-tête de motif de Bayer à appliquer au résultat. Il doit correspondre au motif de Bayer de l'image à partir de laquelle les sous-canaux de Bayer originaux ont été extraits.

  • La partie séquence, en bas, permet de traiter des séquences entières en reconstituant une séquence d'images CFA. Un clic sur le bouton Appliquer à la séquence affiche un texte d'aide pour procéder correctement. Ce texte est reporté dans l'infobulle suivante. Deux options sont disponibles :

    • Marqueur d'entrée de séquence : Préfixe d'identification utilisé pour indiquer le numéro de canal CFA. Il doit correspondre au préfixe de séquence utilisé lors de l'exécution du processus de séparation des canaux CFA (par défaut : CFA_).

    • Préfixe de sortie de la séquence : Préfixe des noms d'images résultant du processus de fusion des canaux CFA. Par défaut, c'est mCFA_.

    Astuce

    Vous pouvez avoir n'importe laquelle des séquences CFA0, CFA1, CFA2 ou CFA3 sélectionnée dans l'onglet des séquences de la fenêtre principale : Siril déterminera de laquelle il s'agit à partir du préfixe et du numéro.

    Vos séquences sous-CFA séparées doivent avoir été traitées exactement de la même manière ; elles doivent avoir le même format de nom de séquence et la même chaîne de marqueur CFA, ne différant que par le numéro 0-3 suivant la chaîne de marqueur CFA (par exemple CFA0_bg_pp_lights, CFA1_bg_pp_lights, CFA2_bg_pp_lights et CFA3_bg_pp_lights).

    Chaque image de la séquence ne sera traitée que si les images correspondantes pour les 3 autres canaux CFA peuvent être trouvées. Les deux images du sous-canal vert sont nécessaires. Notez que cela signifie que si vous rejetez une image contenant un canal CFA d'une image entre split_cfa et merge_cfa, merge_cfa sera incapable de fusionner les canaux CFA restants pour cette image. Tout filtrage de séquence doit être effectué soit avant split_cfa, soit après merge_cfa.

Ligne de commande Siril

merge_cfa file_CFA0 file_CFA1 file_CFA2 file_CFA3 bayerpattern
Crée une image couleur masquée Bayer à partir de 4 images séparées contenant les données des sous-canaux CFA0, CFA1, CFA2 et CFA3. (La commande correspondante pour diviser le motif CFA en sous-canaux est split_cfa.) Cette fonction peut être utilisée dans le cadre d'un flux de travail appliquant un traitement aux sous-canaux Bayer individuels avant le dématriçage. Le cinquième paramètre bayerpattern spécifie le motif de la matrice Bayer à recréer : bayerpattern doit être l'un des suivants : 'RGGB', 'BGGR', 'GRBG' ou 'GBRG'

Ligne de commande Siril

seqmerge_cfa sequencename0 sequencename1 sequencename2 sequencename3 bayerpattern [-prefixout=]
Fusionne 4 séquence d'image pour reconstruire la matrice de Bayer. Les séquence sont spécifié dans les arguments sequencename0, sequencename1, sequencename2 et sequencename3.

Le motif de Bayer à reconstruire doit être donné comme deuxième argument parmi RGGB, BGGR, GBRG ou GRBG (l'ordre des canaux Bayer doit correspondre à l'ordre des séquences spécifiées).

Note : les 4 séquences doivent être présente et avoir les mêmes dimension, profondeur de bit et nombre d'images.

Le nom de la séquence de sortie commence par le préfixe "mCFA_" sauf indication contraire avec l'option -prefixout=

Pixel Math

L'un des outils les plus puissants de Siril est Pixel Math. Il vous permet de manipuler les pixels des images à l'aide de fonctions mathématiques. De la simple addition ou soustraction à des fonctions plus avancées, comme la MTF, Pixel Math est un outil parfait pour le traitement des images astronomiques.

Cette page a pour but de décrire entièrement l'outil, pour voir des exemples détaillés, veuillez vous référer à l'excellent tutoriel sur le site.

dialogue

La boîte de dialogue Pixel Math est illustrée à l'ouverture

La fenêtre est divisée en 5 parties.

  1. La première, comprenant 3 zones de texte recevant les formules mathématiques. Seule la première est utilisée si vous souhaitez produire une image monochrome. Décochez le bouton Utiliser une seule expression RVB/K pour produire une sortie RVB.

  2. La seconde est la zone des variables avec la sélection des Functions et des Operators. Chaque variable est une image qui doit être chargée au préalable avec le bouton +. Vous pouvez cliquer sur la fonction et/ou l'opérateur souhaité pour le faire apparaître dans la saisie de la formule.

  3. Le troisième, le champ paramètres, permet à l'utilisateur de définir des paramètres séparés par ,. Par exemple, si vous définissez des paramètres avec l'expression factor =0.8, K=0.2, toutes les occurrences de factor et K dans la formule ci-dessus seront remplacées par 0.8 et 0.2 respectivement. La formule Ha * factor + OIII * K sera donc évaluée à Ha * 0.8 + OIII * 0.2.

    dialogue

    Partie paramètres de la boite de dialogue Pixel Math

  4. Le champ output est réservé à la mise à l'échelle de l'image dans une plage donnée et à l'activation ou non de l'option Additionner les temps d'exposition. Cette dernière option permet à l'utilisateur d'additionner ou non les temps d'exposition des images individuelles, en stockant le résultat dans l'en-tête FITS. Il est nécessaire de développer le cadre avant de l'utiliser.

    dialogue

    Partie mise à l'échelle de la boite de dialogue Pixel Math

  5. Enfin, la zone préréglages permet à l'utilisateur de réutiliser des formules précédemment sauvegardées à l'aide du bouton situé à droite des zones de formule. Il est nécessaire de développer le cadre avant de l'utiliser. Double-cliquez sur la formule pour la copier dans la bonne entrée.

    dialogue

    Préréglages Pixel Math

Utilisation

Nom des variables

Par défaut, il est possible de charger 10 images simultanément. Chaque image reçoit un nom de variable commençant par I suivi d'un nombre de 1 à 10. Cependant, si l'image chargée contient le mot-clé FILTER, alors la valeur de ce dernier devient le nom de la variable par défaut. Bien entendu, il est toujours possible de le modifier en double-cliquant dessus.

dialogue

Il est possible de changer le nom de la variable.

$T est une référence à l'image actuelle, c'est-à-dire l'image sur laquelle les opérations PixelMath seront appliquées.

Astuce

Il est possible d'utiliser l'image actuellement chargée en utilisant le jeton $T. Notez cependant que, contrairement à d'autres programmes, l'expression $T[i], avec i=0,1,2, n'est pas reconnue.

Exemples

Prenons une image monochrome de galaxies. Il s'agit d'une image linéaire vue avec le mode d'affichage Auto ajustement.

dialogue

Image d'origine.

L'expression suivante :

iif(Image>med(Image)+3*noise(Image), 1, 0)

produira un masque d'étoiles.

dialogue

Après la formule ci-dessus.

Ligne de commande Siril

pm "expression" [-rescale [low] [high]] [-nosum]
Cette commande évalue l'expression donnée en argument comme dans l'outil PixelMath. L'expression complète doit être entre guillemets et les variables (qui sont des noms d'images, sans extension, situés dans le répertoire de travail dans ce cas) doivent être entourées du symbole $, par exemple "$image1$ * 0.5 + $image2$ * 0.5". Un maximum de 10 images peut être utilisé dans l'expression.
L'image peut être redimensionnée avec l'option -rescale suivie des valeurs low et high dans l'intervalle [0, 1]. Si aucune valeur basse ou haute n'est fournie, les valeurs par défaut sont 0 et 1. Un autre argument optionnel, -nosum, indique à Siril de ne pas additionner les temps d'exposition. Cela a un impact sur les mots-clés FITS tels que LIVETIME et STACKCNT

Fonctions

Il y a deux type de fonctions. Celles qui s'appliquent directement sur les pixels et celles qui s'appliquent sur l'image entière (comme les fonctions statistiques).

Fonction orientée sur les pixels

Fonction

Cas d'utilisation

Définition

abs

abs ( x )

Valeur absolue de x.

acos

acos ( x )

Arc cosinus de x.

acosh

acosh ( x )

Arc cosinus hyperbolique de x.

asin

asin ( x )

Arc sinus de x.

asinh

asinh ( x )

Arc sinus hyperbolique de x.

atan

atan ( x )

Arc tangente de x.

atan2

atan2 ( y, x )

Arc tangente de y/x.

atanh

atanh ( x )

Arc tangente hyperbolique de x.

ceil

ceil ( x )

Arrondi x à l'entier supérieur.

cos

cos ( x )

Cosinus de x.

cosh

cosh ( x )

Cosinus hyperbolique de x.

e

e

La constante e=2.718282...

exp

exp ( x )

Fonction exponentielle.

fac

fac( x )

Fonction factorielle.

iif

iif( cond, expr_true, expr_false )

Fonction conditionnelle (ou fonction if inline).
Retourne expr_true si cond a une valeur non nulle.
Retourne expr_false si cond est égale à zéro.

floor

floor ( x )

Plus grand entier inférieur ou égal à x.

ln

ln ( x )

Logarithme népérien de x.

log

log ( x )

Logarithme base 10 de x.

log10

log10 ( x )

Logarithme base 10 de x.

log2

log2 ( x )

Logarithme en base 2 de x.

max

max (x,y)

Fonction maximum.

min

min (x,y)

Fonction minimum.

mtf

mtf ( m, x )

Fonction de transfert des demi-tons (MTF) de x pour un paramètre d'équilibre des demi-tons m dans la plage [0, 1].

ncr

ncr ( x, y )

Fonction de combinaisons.

npr

npr ( x, y )

Fonction permutation.

pi

pi

La constante π=3.141592...

pow

pow ( x, y )

Fonction exponentielle.

sign

sign (x)

Sign de x :
\(+1\) si \(x > 0\)
\(−1\) si \(x < 0\)
\(\;0\) si \(x = 0\).

sin

sin (x)

Sinus de x.

sinh

sinh ( x )

Sinus hyperbolique de x.

sqrt

sqrt (x)

Racine carrée de x.

tan

tan ( x )

Tangente de x.

tanh

tanh ( x )

Tangente hyperbolique de x.

trunc

trunc ( x )

Partie entière tronquée de x.

Fonctions statistiques

Fonction

Cas d'utilisation

Définition

adev

adev ( Image )

Déviation moyenne absolue de l'image.

bwmv

bwmv ( Image )

Moyenne pondérée de l'image.

height

height ( Image )

Hauteur en pixels de l'image spécifiée.

mad

mad ( Image )

Écart absolu médian de l'image. L'utilisation de mdev est également possible.

max

max ( Image )

Maximum d'un pixel de l'image.

moyenne

mean ( Image )

Moyenne de l'image.

med

med ( Image )

Médiane de l'image. L'utilisation de median est également possible.

min

min ( Image )

Minimum d'un pixel de l'image.

noise

noise ( Image )

Estimation du bruit Gaussien dans l'image.

sdev

sdev ( Image )

Déviation standard de l'image.

width

width ( Image )

Largeur en pixel d'une image spécifiée.

Opérateurs

Opérateurs

Opérateur

Cas d'utilisation

Définition

~

~x

Opérateur d'inversion des pixels.

-

-x

Opérateur unaire Moins (changement de signe).

+

+x

Opérateur unaire Plus.

!

!x

Opérateur logique NOT.

^

x ^ y

Opérateur d'exponentielle.

*

x * y

Opérateur de multiplication.

/

x / y

Opérateur de division.

%

x % y

Opérateur modulo.

+

x + y

Opérateur d'addition.

-

x - y

Opérateur de soustraction.

<

x < y

Opérateur relationnel Plus Petit.

<=

x <= y

Opérateur relationnel inférieur ou égal.

>

x > y

Opérateur relationnel Plus Grand.

>=

x >= y

Opérateur relationnel plus grand que ou égal.

==

x == y

Opérateur relationnel Égal À.

!=

x != y

Opérateur relationnel N'est Pas Égal À.

&&

x && y

Opérateur logique AND.

||

x || y

Opérateur logique OR.

Astrométrie

L'astrométrie est la science qui étudie de la position et le mouvement des objets célestes. L'astrométrie est essentielle dans l'astrophotographie moderne avec des logiciels de captures tels que N.I.N.A, Ekos, APT ou autres, qui réalisent une résolution des images dans le but d'obtenir une solution astrométrique, c'est-à-dire connaître précisément la position de l'image sur le ciel. L'astrométrie peut aussi être utilisé durant le traitement, comme outil de calibration photométrique par exemple.

Astrométrie

La résolution astrométrique est une étape majeure dans le traitement des images astronomiques. Elle permet d'associer les images à des coordonnées célestes, ce qui permet de savoir quel objet se trouve dans le champ de vision observé. De nombreux outils de Siril, tels que les outils d'étalonnage des couleurs spectrophotométriques ou photométriques (SPCC ou PCC), ont besoin de connaître les coordonnées de l'image avec une précision suffisante pour fonctionner.

L'astrométrie dans Siril peut être réalisée de deux différentes manières :

  • En utilisant l'outil dédié accessible par le menu Outils ‣ Astrométrie ‣ Résolution astrométrique, ou en utilisant le raccourci Ctrl + Shift + A.

Dialogue astrométrie

Dialogue résolution astrométrique

  • Utilisation de la commande résolution astrométrique, introduite dans Siril 1.2.

    Ligne de commande Siril

    platesolve [-force] [image_center_coords] [-focal=] [-pixelsize=]
    platesolve ... [-noflip] [-downscale] [-order=] [-radius=] [-disto=]
    platesolve ... [-limitmag=[+-]] [-catalog=] [-nocrop]
    platesolve ... [-localasnet [-blindpos] [-blindres]]
    
    Résolution astrométrique de l'image chargée.
    Si l'image a déjà été résolue, rien ne sera fait, à moins que l'argument -force ne soit passé pour forcer une nouvelle résolution. Si les mots clés WCS ou d'autres métadonnées de l'image sont erronés ou manquants, des arguments doivent être passés :
    les coordonnées approximatives du centre de l'image peuvent être fournies en degrés décimaux ou en degrés/heure minute seconde (J2000 avec des séparateurs de deux points), avec les valeurs d'ascension droite et de déclinaison séparées par une virgule ou un espace (non obligatoire pour astrometry.net).
    La longueur focale et la taille des pixels peuvent être passées avec -focal= (en mm) et -pixelsize= (en microns), en remplaçant les valeurs de l'image et des paramètres. Voir aussi les options pour résoudre en aveugle avec Astrometry.net en local

    Sauf si -noflip est spécifié, si l’image est détectée comme étant à l’envers, elle sera retournée.
    Pour une détection plus rapide des étoiles dans les grandes images, il est possible de sous-échantillonner l’image avec -downscale.
    La résolution peut prendre en compte les distorsions en utilisant la convention SIP avec des polynômes jusqu'à l'ordre 5. La valeur par défaut est prise dans les préférences astrométriques. Elle peut être modifiée avec l'option -order= qui donne une valeur entre 1 et 5.
    Lors de l'utilisation des catalogues locaux du solveur Siril ou avec Astrometry.net local, si la résolution initiale n'est pas réussie, le solveur cherchera une solution dans un cône de rayon spécifié avec l'option -radius=. Si aucune valeur n'est fournie, le rayon de recherche est pris dans les préférences d'astrométrie. La recherche Siril par proximité peut être désactivée en passant une valeur de 0 (ne peut pas être désactivée pour Astrometry.net).
    Vous pouvez sauvegarder la solution courante comme fichier de distorsion avec l'option -disto=.

    Les images peuvent être résolues par Siril à l'aide d'un catalogue d'étoiles et de l'algorithme d'alignement global ou par la commande locale solve-field d'astrometry.net (activée avec -localasnet).

    Options du solveur astrométrique de Siril :
    La magnitude limite des étoiles utilisées pour la résolution astrométrique et le PCC est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement avec une valeur absolue positive pour la magnitude limite.
    Le choix du catalogue d'étoiles est automatique sauf si l'option -catalog= est passée : si des catalogues locaux sont installés, ils sont utilisés, sinon le choix est basé sur le champ de vision et la magnitude limite. Si l'option est passée, elle force l'utilisation du catalogue donné en argument, avec les valeurs possibles : tycho2, nomad, localgaia, gaia, ppmxl, brightstars, apass.
    Si le champ de vision calculé est supérieur à 5 degrés, la détection des étoiles sera limitée à une zone recadrée autour du centre de l'image, à moins que l'option -nocrop ne soit passée.

    Options du solveur Astrometry.net:
    Les options -blindpos et/ou -blindres permettent de résoudre en aveugle la position et la résolution respectivement. Vous pouvez utiliser ces options pour résoudre une image dont la position et l'échantillonnage sont totalement inconnus

Depuis la version 1.2, la résolution astrométrique peut être effectuée par deux algorithmes différents. Le premier était le seul dans Siril jusqu'à cette version, il est basé sur l'algorithme d'alignement global des étoiles, essayant d'aligner les images sur une image virtuelle d'un catalogue avec le même champ de vision. Le second est nouveau, il utilise un programme externe appelé solve-field de la suite Astrometry.net, installé localement. Pour les plateformes Windows, la façon la plus simple de l'obtenir est d'utiliser ansvr.

Depuis la version 1.3, le solveur interne Siril cherchera également dans un cône autour des coordonnées initiales de la cible s'il n'a pas trouvé de correspondance. Ceci n'est disponible que lors de l'utilisation de catalogues d'étoiles locaux. Le journal affichera cette information lorsque cela se produira :

Initial solve failed
Attempting a near solve with a radius of 10.0 degrees

Les solutions astrométriques nécessitent la prise en compte de quelques paramètres, comme l'échantillonnage de l'image. La fenêtre de l'outil permet de rassembler ces paramètres, nous allons maintenant voir comment les remplir correctement.

Paramètres de l'image

Coordonnées de la cible

Il est plus facile et plus rapide de trouver une solution astrométrique lorsque l'on sait à peu près où l'on cherche. Le solveur de Siril, qui compare un catalogue avec l'image, a besoin de connaître approximativement la position du centre de l'image pour obtenir l'extrait du catalogue. Astrometry.net possède tous les catalogues dont il a besoin localement, il peut donc les parcourir tous pour trouver une solution, mais il est bien sûr beaucoup plus rapide de lui dire par où commencer.

Les logiciels d'acquisition contrôlent souvent aussi le télescope de nos jours et devraient connaître les coordonnées approximatives de l'endroit où l'image a été prise. Dans ce cas, en utilisant un format FITS, ces coordonnées seront fournies dans les métadonnées de l'image, l'en-tête FITS. Ce n'est pas toujours le cas, et il est clair que ce n'est pas le cas lorsque des images DSLR RAW sont créées au lieu de FITS.

Lors de l'ouverture de la fenêtre du solveur, les métadonnées de l'image actuelle sont chargées et affichées dans la fenêtre. Si aucune coordonnée n'apparaît en haut, ou si RA et Dec restent à zéro, une saisie de l'utilisateur est nécessaire. Si vous ne savez pas du tout de quelle image il s'agit, utilisez une résolution à l'aveugle avec astrometry.net. Sinon, fournissez des coordonnées équatoriales J2000 correspondant autant que possible au centre de l'image, soit en remplissant les champs si vous connaissez déjà les coordonnées, soit en effectuant une requête avec un nom d'objet (ce qui n'est pas encore possible depuis la commande).

Le champ texte en haut à gauche de la fenêtre est le champ de recherche, son but étant de convertir un nom d'objet en ses coordonnées. En appuyant sur ENTRER ou en cliquant sur le bouton Chercher, l'objet sera d'abord recherché dans les catalogues d'annotations locaux. S'il n'est pas trouvé, une requête Web sera effectuée pour obtenir ses coordonnées. Plusieurs résultats peuvent être trouvés pour le nom saisi, ils seront affichés dans la liste ci-dessous. La sélection d'un résultat met à jour les coordonnées en haut de la liste, le premier résultat étant sélectionné par défaut.

Il est également possible de choisir le serveur sur lequel vous voulez exécuter la requête, cela ne change pas beaucoup les résultats, mais parfois l'un d'entre eux peut être en ligne, alors les autres agiraient comme une sauvegarde, entre CDS, VizieR et SIMBAD (par défaut).

Note

Si l'objet n'est pas trouvé, veuillez essayer avec le nom complet ou avec le nom d'un catalogue. Les catalogues d'annotations contiennent quelques noms communs, les services en ligne aussi, mais pas tous, et ils ne trouvent pas de réponses partielles. Par exemple, pour la Nébuleuse de la Bulle, veuillez entrer NGC 7635 ou bubble nebula en anglais, et non bubble.

Les champs de coordonnées sont remplis automatiquement, mais il est possible de définir les vôtres. N'oubliez pas de cocher la case S si l'objet que vous recherchez est situé dans l'hémisphère sud du ciel (déclinaisons négatives).

Echantillonnage de l'images

L'échantillonnage de l'image est le paramètre le plus important pour la résolution astrométrique. Donné en secondes d'arc par pixel dans notre cas, il représente le degré de zoom sur le ciel de l'image, donc la largeur du champ à rechercher.

Elle est dérivée de deux paramètres : la longueur focale et la taille des pixels. Ils sont souvent disponibles dans les métadonnées de l'image. Lorsqu'elles ne sont pas disponibles dans l'image, les valeurs stockées dans les paramètres sont utilisées. Les valeurs des images et des préférences peuvent être définies à l'aide de la boîte de dialogue Information. Dans tous les cas, vérifiez la valeur affichée avant la résolution et corrigez-la si nécessaire. Si une solution astrométrique est trouvée, la longueur focale et la taille de pixel par défaut seront écrasées. Ce comportement peut être désactivé dans les paramètres.

Avertissement

Si le binning a été utilisé, il doit être spécifié dans l'en-tête FITS, mais cela peut prendre deux formes : la taille du pixel peut rester la même et le multiplicateur de binning doit être utilisé pour calculer l'échantillonnage, ou la taille du pixel est déjà multipliée par le logiciel d'acquisition. Selon le cas, l'une ou l'autre de ces formes peut être choisie dans les préférences ou dans la fenêtre Information.

La taille des pixels est indiquée dans les spécifications des caméras astronomiques, et peut généralement être trouvée sur le Web pour les appareil photo numérique ou autres. Le nombre de capteurs est limité et la plupart d'entre eux sont connus.

La focale dépend de l'instrument principal, mais aussi du backfocus et des lentilles correctrices ou de zoom utilisées. Donnez une valeur aussi proche que possible de ce que vous pensez être la focale effective, si une solution astrométrique est trouvée, la longueur focale calculée sera donnée dans les résultats et vous pourrez la réutiliser dans votre logiciel d'acquisition et pour les utilisations futures de l'outil.

Lorsque l'un des champs est mis à jour, l'échantillonnage est recalculé et affiché dans la fenêtre (appelée ici "résolution"). Veillez à ce que la valeur soit aussi proche que possible de la réalité.

Astuce

Les données écrites en orange dans l'interface graphique indiquent des valeurs qui n'ont pas pu être extraites de l'en-tête de l'image. Cela ne signifie pas qu'elles sont erronées (elles auraient pu être chargées à partir des valeurs de préférences et être valides) ou obligatoires (vous pourriez résoudre le problème à l'aveugle), cette couleur est juste là pour différencier les valeurs lues à partir de l'en-tête.

Paramètres du solver

Depuis Siril 1.2, Siril peut utiliser deux solveurs différents, son solveur interne et une installation locale d'Astrometry.net. L'interface diffère selon que l'un ou l'autre est sélectionné dans la liste déroulante dédiée.

Options du solveur Siril

Options du solver interne de Siril

Distorsions

L'option Ordre, sélectionnée via la liste déroulante, spécifie l'ordre de la solution de résolution astrométrique. En sélectionnant Linéaire, le solveur essaiera d'ajuster une solution en supposant qu'il n'y ait pas de distorsions dans l'image (c'est-à-dire que le champ est optiquement plat). Cependant, cette hypothèse peut ne pas être vraie en présence d'aberrations optiques (mauvais backfocus, pas d'aplanisseur de champ, etc...). Depuis la version 1.3, le solver peut essayer d'ajuster des distorsions polynomiales jusqu'au cinquième ordre, en suivant la convention SIP. Par défaut, il utilise les distorsions Cubiques (SIP), ce qui devrait convenir à la plupart des cas d'utilisation. Cette valeur par défaut peut être modifiée dans les Preferences. Cette option est disponible avec les deux solveurs.

Vous pouvez également choisir d'enregistrer les distorsions dans un fichier wcs en cochant la case Enregistrer la distorsion. Utilisez le sélecteur de fichier ci-dessous pour spécifier son chemin. Si vous avez défini un chemin de distorsion maître dans les préférences, son chemin sera affiché par défaut. Ce fichier peut ensuite être utilisé pour corriger la distorsion des images lors de l'alignement global et de l'alignement 2pass

Rayon de la recherche

Lorsque des catalogues d'étoiles locaux sont installés ou lors de l'utilisation d'Astrometry.net, un cône autour de la position cible sera recherché. La taille de ce cône en degrés peut être modifiée à l'aide du contrôle Rayon de recherche, dont la valeur par défaut peut être modifiée dans les Préférences. Pour le solveur Siril, cette fonctionnalité peut être désactivée en cochant la case désactiver la recherche à proximité.

Solver Astrometry.net à l'aveugle

Lorsque le solveur Astrometry.net est sélectionné, deux options supplémentaires sont disponibles :

  1. Ignorer la position (à l'aveugle) permet d'ignorer la position spécifiée dans le champ des coordonnées de la cible.

  2. Ignorer la résolution (à l'aveugle) permet d'ignorer la résolution calculée à partir de la taille du pixel et de la longueur focale.

Options du solveur Astrometry.net

Options du solveur Astrometry.net

Utilisez ces deux options conjointement si la position et la résolution de l'image sont totalement inconnues.

Avertissement

Il n'y a pas de magie ici. Pour résoudre n'importe quel champ de vision, vous devez avoir installé les indexes nécessaires qui couvrent le champ de vision réel de l'image à résoudre.

Autres paramètres

Enfin, il y a trois boutons à bascule en bas du cadre :

  1. L'option Sous-échantillonner l'image réduit l'image d'entrée pour accélérer la détection des étoiles. L'inconvénient est qu'elle peut ne pas trouver assez d'étoiles ou donner une solution astrométrique moins précise. La taille de l'image de sortie reste inchangée.

  2. Si l'image est détectée comme étant à l'envers par la solution astrométrique, avec l'option Retourner l'image si nécessaire activée, elle sera retournée à la fin. Cela peut être utile selon le logiciel de capture, si l'image n'a pas la bonne orientation lorsqu'elle est affichée dans Siril (voir plus d'explications).

  3. Lorsque l'option Recadrage automatique (pour grand champ) est appliquée, elle n'effectue une coupe que dans le centre de l'image. Ceci n'est fait que pour les images à grand champ (plus de 5 degrés) où les distorsions loin du centre sont suffisamment importantes pour tromper l'outil. Ignoré pour les résolutions d'astrometry.net.

Paramètre du catalogue

Cette section concerne uniquement le solveur interne de Siril. Plusieurs catalogues en ligne peuvent être utilisés, ainsi que deux catalogues pouvant être installés localement pour un fonctionnement plus rapide et plus fiable.

Utilisation des catalogues en ligne

Par défaut, cette section est grisée car tout est réglé sur automatique. En décochant la case automatique, il est toutefois possible de choisir le catalogue en ligne utilisé pour l'astrométrie, qui peut dépendre de la résolution de l'image. Le choix se fait entre :

  • TYCHO2, un catalogue contenant les positions, les mouvements propres et les données photométriques en deux couleurs pour 2 539 913 des étoiles les plus brillantes de la Voie lactée.

  • NOMAD, une simple fusion des données des catalogues Hipparcos, Tycho-2, UCAC2, Yellow-Blue 6, et USNO-B pour l'astrométrie et la photométrie, complété par le catalogue 2MASS en proche infrarouge. Ce jeu de données de près de 100 Go contient des données astrométriques et photométriques pour environ 1,1 milliard d'étoiles.

  • Gaia DR3, publié le 13 juin 2022. La solution astrométrique à cinq paramètres, positions sur le ciel (α, δ), parallaxes et mouvements propres, est donnée pour environ 1,46 milliard de sources, avec une magnitude limite de G = 21. Cela représente l'état de l'art en matière de données astrométriques précises et fournit des données spectrales pour un large éventail de sources, utilisées dans SPCC.

  • PPMXL, un catalogue de positions, de mouvements propres, de photométrie 2MASS- et optique de 900 millions d'étoiles et de galaxies.

  • Bright Stars, un catalogue d'étoiles qui répertorie toutes les étoiles d'une magnitude stellaire de 6,5 ou moins, soit à peu près toutes les étoiles visibles à l'œil nu depuis la Terre. Le catalogue contient 9 110 objets.

  • APASS, un catalogue d'étoiles qui répertorie toutes les étoiles de magnitude stellaire 6,5 ou plus, c'est-à-dire à peu près toutes les étoiles visibles à l'œil nu depuis la Terre. Le catalogue contient 9 110 objets.

Note

Une connexion internet est requise pour utiliser ces catalogues en ligne.

Tous ces catalogues sont disponibles via l'outil d'accès au catalogue VizieR, CDS, Strasbourg, France (DOI:10.26093/cds/vizier). La description originale du service VizieR a été publiée en 2000, A&AS 143, 23.

L'option Magnitude limite permet de limiter la magnitude des étoiles récupérées dans le catalogue. La valeur automatique est calculée à partir de la résolution de l'image.

Utilisation des catalogues locaux KStars (NOMAD)

Avec la version 1.1, à partir de juin 2022, il était possible de s'appuyer sur un catalogue d'étoiles installé localement, pour un fonctionnement déconnecté ou plus résilient. Le catalogue d'étoiles que nous avons trouvé le plus adapté à nos besoins est celui de KStars. Il est en fait composé de quatre catalogues (documentés ici dans KStars), deux d'entre eux n'étant pas directement distribués dans les fichiers d'installation de base de KStars :

  • namedstars.dat, les étoiles les plus brillantes, elles ont toutes un nom

  • unnamedstars.dat, aussi des étoiles brillantes, mais jusqu'à magnitude 8

  • deepstars.dat, des étoiles moins brillantes extraites du catalogue Tycho-2 de 2,5 millions d'étoiles les plus brillantes, jusqu'à la magnitude 12,5

  • USNO-NOMAD-1e8.dat un extrait de l'énorme catalogue NOMAD limité aux informations photométriques B-V et au mouvement propre des étoiles sous forme de binaire compact, jusqu'à la magnitude 18.

Ce catalogue peut être utilisé pour la résolution astrométrique et pour le PCC.

En comparant ces catalogues avec NOMAD en ligne, on peut facilement constater que de nombreuses étoiles sont manquantes. Si le nombre d'étoiles trouvées est insuffisant pour votre champ étroit, vous pouvez toujours utiliser les requêtes à distance. Une bonne chose à vérifier lorsque les catalogues sont installés est de mettre en évidence les étoiles de l'image qui seront utilisées pour le PCC, celles qui sont disponibles avec des informations photométriques dans les catalogues, en utilisant la commande conesearch.

conesearch -phot
Utilisation des catalogues Gaia DR3 locaux

Dans la version 1.4, la prise en charge d'un extrait local du catalogue Gaia DR3 a été ajoutée. Cet extrait Gaia astrométrique diffère des autres catalogues en ce qu'il est axé sur l'astrométrie appliquée à la résolution astrométrique, si bien qu'au lieu de définir une magnitude limite, le catalogue a été conçu pour fournir une couverture uniforme des étoiles dans chaque HEALPixel de niveau 8 (vous pouvez en savoir plus sur les HEALPixels ici). Cela évite d'inclure un nombre excessif d'étoiles dans les parties densément peuplées du ciel et garantit que suffisamment d'étoiles plus faibles sont incluses dans les HEALPixels moins denses pour permettre une résolution astrométrique précise.

Le catalogue par défaut sera sélectionné au démarrage selon deux critères :

  • Si un catalogue local est disponible, il est préféré à l'équivalent distant

  • Si un catalogue Gaia (local ou distant) est disponible, il est préféré à NOMAD

Astuce

Bien que l'extrait Gaia DR3 hors ligne puisse être utilisé avec la commande conesearch (en spécifiant le nom de catalogue localgaia), il n'est pas vraiment conçu à cet effet. Dans les régions denses du ciel, la magnitude limite sera relativement brillante et de nombreuses étoiles visibles dans vos images ne seront donc pas présentes dans le catalogue, quelle que soit la magnitude limite définie. Pour des recherches en cône d'annotation dans de telles régions, vous serez mieux servi en spécifiant plutôt le nom de catalogue gaia, qui effectuera une recherche en cône à distance en utilisant le miroir Vizier de l'archive Gaia DR3. Cette méthode est à la fois rapide (pour une requête distante) et complète.

Ce catalogue ne peut être utilisé que pour la résolution astrométrique. Un extrait Gaia photométrique existe également et peut être utilisé pour le SPCC ; il est documenté sur la page SPCC.

Télécharger KStars NOMAD

Les deux premiers fichiers sont disponibles dans KStars source, le catalogue Tycho-2 dans un paquet Debian et le catalogue NOMAD dans les fichiers KStars également, comme documenté dans ce petit article pour l'installation de KStars. Il dispose de plusieurs miroirs dans le monde entier comme indiqué dans les articles.

Pour faciliter la tâche aux utilisateurs de Siril, et peut-être aussi à ceux de KStars, nous redistribuons les quatre fichiers en un seul endroit, et dans un format plus compressé. Avec l'algorithme LZMA (utilisé par xz ou 7zip), la taille du fichier est de 1,0 Go au lieu de 1,4 Go avec le fichier gzip original. Ces fichiers .xz sont donc compressés, assurez-vous de les décompresser avec un logiciel approprié avant de les copier.

Des liens de téléchargement direct sont disponibles ici (clic droit sur chaque nom de fichier à gauche et enregistrez les liens).

Si le lien n'est pas disponible, et pour le rendre plus rapide depuis n'importe où, il est également distribué via bittorrent, en utilisant ce fichier torrent ou le lien magnet suivant.

Télécharger les données d'astrométrie Gaia DR3

L'extrait astrométrique local Gaia DR3 est disponible depuis Zenodo. Il est accompagné d'une somme de contrôle sha256 pour l'archive compressée.

Tous les détails, ainsi qu'une référence de citation et une somme de contrôle pour l'archive décompressée pour les plus prudents, se trouvent dans la fiche Zenodo. Les spécifications des extraits du catalogue Gaia DR3 et leur format de fichier sont documentées ici (PDF).

Astuce

Pour plus de commodité, une version hors ligne du catalogue astrométrique Gaia DR3 peut être installée à l'aide du script Catalogue Installer dans le menu Scripts. Ce catalogue occupe 1,5 Go une fois installé, contre 2,1 Go pour le catalogue NOMAD de KStars, et offre une astrométrie de plus haute précision ainsi qu'une densité d'étoiles homogène dans toutes les régions, pour une résolution astrométrique plus fiable et plus précise. Il est fortement recommandé d'installer et d'utiliser ce catalogue pour tous les usages astrométriques au sein de Siril.

Installation dans Siril

Les fichiers peuvent être placés n'importe où et leurs chemins donnés à Siril dans les paramètres, mais il y a un emplacement par défaut pour les quatre fichiers : ~/.local/share/kstars/ sous Linux. Ils peuvent être liés à cet emplacement pour éviter les copies inutiles. Les paramètres peuvent maintenant être modifiés à partir de la ligne de commande, en utilisant la commande set.

Lorsqu'il est disponible et lisible, Siril n'utilisera pas le service Web pour récupérer des données astrométriques ou photométriques. Consultez les messages dans l'onglet log ou sur la console pour vérifier que les fichiers catalogues sont utilisés comme prévu.

À partir de Siril 1.4.0, Siril va d'abord chercher dans les catalogues d'annotations locales pour trouver les coordonnées d'un objet passé dans la fenêtre de la résolution astrométrique, afin de localiser le centre de l'image. Cela signifie que, si vous avez installé les catalogues d'étoiles locaux, vous pouvez résoudre vos images sans connexion Internet. Bien sûr, cela ne devrait être nécessaire que si le logiciel d'acquisition n'a pas enregistré les coordonnées de la cible dans l'en-tête FITS, ou si vous utilisez le format de fichier SER qui ne peut pas contenir cette information.

Utilisation

Avec l'ajout du nouveau lien entre le solveur de Siril et le catalogue local, et le nouveau lien entre le PCC de Siril et le catalogue local, une nouvelle commande conesearch a été créée (à partir de Siril 1.4.0) pour afficher les objets d'une image résolue. Pour afficher des étoiles qui contiennent des informations photométriques (l'indice B-V) et qui peuvent être utilisées pour la calibration, vous pouvez à présent utiliser :

conesearch -phot

C'est un bon moyen de vérifier que la résolution astrométrique et l'image sont alignées, en plus de la fonction d'annotation de l'objet (voir annotations).

Préférences pour les catalogues locaux

Préférences pour les catalogues locaux

Information technique

Pour la photométrie, Siril n'utilise que l'indice B-V (ou, pour le catalogue Gaia, le champ de température effective Teff), qui donne des informations sur la couleur des étoiles. Les trois canaux de l'image sont ensuite mis à l'échelle pour donner la meilleure représentation de la couleur à toutes les étoiles de l'image.

Pour plus d'informations sur le type de fichier binaire KStar, voir cette page et cette discussion sur kstars-devel et quelques notes de développement dans Siril ici et ici.

Sommes Sha1 pour les 4 fichiers de catalogue :

4642698f4b7b5ea3bd3e9edc7c4df2e6ce9c9f7d  namedstars.dat
53a336a41f0f3949120e9662a465b60160c9d0f7  unnamedstars.dat
d32b78fd1a3f977fa853d829fc44ee0014c2ab53  deepstars.dat
12e663e04cae9e43fc4de62d6eb2c69905ea513f  USNO-NOMAD-1e8.dat

Licences pour les 4 fichiers de catalogue.

Utilisation du solveur local astrometry.net

Installation

Depuis la version 1.2, solve-field, le solveur de la suite astrometry.net, peut être utilisé par Siril pour résoudre astrométriquement des images ou des séquences d'images.

Pour les plates-formes Windows, le moyen le plus simple de l'obtenir est d'utiliser ansvr. Si vous n'avez pas changé le répertoire d'installation par défaut, c'est-à-dire %LOCALAPPDATA%\cygwin_ansvr, Siril le recherchera sans autre installation. Si vous avez cygwin et que vous avez construit astrometry.net à partir des sources, vous devez spécifier l'emplacement de la racine cygwin dans Preferences.

Pour MacOS, veuillez suivre ces instructions. Installez avec homebrew et ajoutez-le au PATH. Assurez-vous également que le programme fonctionne pour les images de test, comme indiqué dans la notice, et en dehors de Siril.

Pour les systèmes d'exploitation non Windows, l'exécutable devrait se trouver dans le PATH.

L'utilisation de cet outil permet de résoudre à l'aveugle des images, sans connaissance a priori de la zone du ciel qu'elles contiennent ou de sa résolution. C'est également une bonne alternative au solveur interne de Siril en cas d'échec, car il s'agit d'un outil dédié et éprouvé qui peut également prendre en compte la distorsion du champ.

Les paramètres par défaut devraient convenir, mais peuvent être modifiés si vous le souhaitez vraiment, en utilisant la commande set (valeurs par défaut spécifiées entre parenthèses) ou dans l'onglet Astrometrie des préférences. L'étendue de la gamme des échelles autorisées (15%), le rayon de recherche à partir des coordonnées initiales (10 degrés), l'ordre polynomial pour la distorsion du champ (0, désactivé), la suppression ou non des fichiers temporaires (oui), l'utilisation du résultat comme nouvelle distance focale et taille de pixel par défaut (oui).

Fichiers d'index

Astrometry.net a besoin de fichiers d'index pour fonctionner. Nous vous recommandons fortement d'utiliser les derniers fichiers d'index disponibles sur leur site web, c'est-à-dire les séries 4100 et 5200. Le champ de vision de chaque série est décrit dans leur page github. (la documentation officielle n'inclut pas encore ce tableau).

Sur un système Unix, vous pouvez simplement suivre les instructions de la documentation.

Sous Windows, si vous utilisez ansvr, ces fichiers d'index récents ne seront pas mis à disposition par l'Index Downloader. Vous pouvez toujours les télécharger séparément et les stocker là où sont conservés les autres fichiers d'index (il est recommandé de supprimer les anciens fichiers, bien que cela puisse perturber l'Index Downloader).

Comment cela marche

Tout comme le solveur interne, Siril va procéder à l'extraction des étoiles de vos images (afin de bénéficier du multithread interne) et soumettre cette liste d'étoiles à astrometry.net solve-field. Si vous souhaitez qu'astrometry.net explore l'index en multithread, vous devrez le spécifier dans le fichier astrometry.cfg.

Résoudre des séquences

Lorsqu'une séquence est chargée, un élément graphique supplémentaire est présent au bas de la boîte de dialogue.

Options d'astrométrie de la séquence

Options d'astrométrie de la séquence

Vous pouvez spécifier de résoudre la séquence entière. Les images déjà résolues seront résolues à nouveau sauf si la case Sauter les images déjà résolues est cochée. Pour utiliser l'Alignement astrométrique, vous devrez traiter la séquence entière pour que les informations utiles soient stockées avec la séquence (FWHM, nombre d'étoiles, niveau de fond de ciel...), donc laissez la case Utiliser comme information d'alignement cochée.

Lors de l'utilisation du solveur Siril avec des catalogues locaux ou lors de l'utilisation d'Astrometry.net, les informations contenues dans l'en-tête (si elles sont présentes) seront utilisées pour mettre à jour le centre cible de l'image et la résolution pour chaque image. Cependant, lors de l'utilisation du solveur Siril avec des catalogues en ligne, un seul catalogue d'étoiles sera téléchargé par défaut afin d'éviter trop de trafic sur le réseau et de requêtes sur le serveur. Si les images n'ont pas trop de dérive et ont la même résolution, cela est normalement suffisant. Cependant, si les images ne se chevauchent pas suffisamment ou si l'échantillonnage est différent, vous pouvez forcer le téléchargement d'un catalogue d'étoiles par image en cochant la case Récupérer les étoiles pour chaque image.

Enfin, les trois cases de droite permettent de contrôler si le solveur doit lire les coordonnées de la cible, la taille des pixels et la focale à partir de chaque en-tête d'image ou des valeurs spécifiées dans la boîte de dialogue.

À la fin de la résolution de la séquence, les logs indiqueront combien d'images ont été résolues et si certaines ont été ignorées.

Sequence processing succeeded.
Execution time: 676.35 ms
3 images successfully platesolved out of 3 included
(2 were already solved and skipped)

La résolution de séquences est également disponible via la commande seqplatesolve.

Note

Lors de la résolution de séquences FITS ou d'un fichier FITSEQ, les images sont directement sauvegardées, sans création d'une nouvelle séquence. Pour les séquences FITS, si la séquence a été créée en utilisant des liens symboliques, les fichiers originaux ne sont pas mis à jour. Au lieu de cela, le nom du lien symbolique est utilisé pour créer un nouveau fichier FITS, en laissant l'original intact. Lors de la résolution d'une séquence SER, une nouvelle séquence avec le préfixe ps_ est créée, car le SER ne peut pas stocker de données WCS.

Détection d'étoile

Par défaut, la détection des étoiles utilise l'algorithme findstar avec les paramètres actuels. Cela fonctionne très bien pour trouver de nombreuses étoiles, mais dans certains cas, nous aimerions détecter les étoiles manuellement, ou simplement voir celles qui sont utilisées. Une première étape serait d'ouvrir la fenêtre PSF et de lancer la détection d'étoiles, puis d'ajuster les paramètres (voir la documentation associée).

Une autre approche consisterait à sélectionner les étoiles une par une en les entourant d'une sélection puis, par un clic droit, à choisir Pointer une étoile. Plus il y a d'étoiles sélectionnées, plus l'algorithme a de chances de réussir.

Ensuite, dans la fenêtre d'astrométrie, développez la section de détection des étoiles et activez le bouton Détection manuelle. Au lieu de lancer findstar, il utilisera la liste actuelle des étoiles.

Note

La détection utilise toujours la couche verte pour les images RVB. Pour les images CFA non dématricées, la couche verte est extraite à la volée et utilisée à la place.

Comprendre les résultats

Lorsqu'une solution astrométrique est trouvée, nous pouvons voir dans l'onglet Console ce type de messages :

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.

La solution astrométrique nous donne les coordonnées équatoriales J2000 du centre de l'image, la dimension horizontale et verticale projetée de l'image sur le ciel, la longueur focale qui pourrait donner ce champ pour la taille de pixel donnée et par conséquent l'échantillonnage réel de l'image, l'angle que fait l'image avec l'axe nord, le champ de vision et le centre de l'image. Il indique également la distance par rapport au centre initial spécifié.

En cas d'échec, vérifiez que les coordonnées de départ et la taille des pixels sont correctes et essayez de changer la magnitude, cela changera la quantité d'étoiles téléchargées à partir des catalogues, et peut-être que plus d'étoiles seront identifiées. Si la résolution astrométrique de Siril ne trouve pas de solution, il est toujours possible d'utiliser un outil externe pour le faire, la solution sera écrite dans l'en-tête FITS d'une manière ou d'une autre.

Visualiser les distorsions

Pour vérifier la validité de la solution, vous pouvez utiliser la commande conesearch. Celle-ci devrait afficher les positions des étoiles trouvées dans les catalogues et vérifier si elles correspondent aux étoiles réelles de l'image.

Les deux images ci-dessous montrent des annotations dans le coin supérieur droit d'une image présentant une distorsion importante. L'image du haut est la solution linéaire, tandis que celle du bas a été résolue en tenant compte des polynômes cubiques.

Solution linéaire de l'image

Annotations d'étoiles avec solution linéaire

Solution cubique de l'image

Annotations d'étoiles avec solution cubique

Si la résolution astrométrique avec distorsions est réussie, la commande disto ou le menu Outils ‣ Analyse d'image ‣ Afficher les distorsions peut afficher une représentation des corrections en surimpression sur l'image.

Ligne de commande Siril

disto [clear]
Montre le champ de distorsion sur une image résolue dont la solution comprend des termes de distorsion

Passer l'option clear pour désactiver

Un exemple est donné ci-dessous.

Image avec superposition de distorsion

Image avec superposition de distorsion

Scripts Sirilpy

Si vous souhaitez visualiser le champ de distorsion en 3D, vous pouvez utiliser le script Python Distortion3D.py dans le menu Scripts->Scripts Python. Vous devrez activer la récupération de scripts depuis le dépôt de scripts.

Carte de distorsion 3D

Carte de distorsion 3D

Annotations

Les annotations sont des glyphes affichés au-dessus des images pour indiquer la présence d'objets célestes connus, comme les galaxies, les étoiles brillantes, etc. Elles proviennent de catalogues, mais ne peuvent être affichées que sur des images pour lesquelles nous savons dans quelle partie du ciel elles sont, des images qui ont été résolues par astrométrie et qui contiennent les informations du système de coordonnées mondiales (WCS) dans leur en-tête, donc uniquement des fichiers FITS ou Astro-TIFF.

exemple

Vue de l'image complète annotée

La résolution astrométrique peut être effectuée dans Siril dans l'entrée Outils ‣ Astrométrie ‣ Résolution astrométrique..., ou en utilisant des outils externes comme astrometry.net ou ASTAP.

Interface utilisateur de l'astrométrie

Bouton pour annotations

Lorsqu'une image résolue astrométriquement est chargée dans Siril, vous pouvez voir les coordonnées dans le ciel pour le pixel sous le pointeur de la souris affiché dans le coin inférieur droit et les boutons relatifs aux annotations deviennent disponibles. Le premier bouton active les annotations des objets, le second la grille céleste et la boussole.

Catalogues d'annotations hors ligne

Siril vient avec une liste de catalogue prédéfini pour les annotations :

  • Catalogue de Messier (M)

  • New General Catalogue (NGC)

  • Index Catalogue (IC)

  • Lynds Catalogue of Dark Nebulae (LdN)

  • Catalogue Sharpless (Sh2)

  • Star Catalogue (3661 étoiles les plus brillantes)

  • Lignes des constellations de l'UAI

  • Noms des constellations par l'UAI (coordonnées tirées de cette page)

En supplément, 2 catalogues utilisateurs peuvent être utilisés :

  • Catalogue d'objets du ciel profond de l'utilisateur (DSO)

  • Catalogue d'objets du système solaire pour l'utilisateur (SSO)

Elles sont alimentées par les commandes décrites dans la section recherche d'un objet connu.

Ils sont stockés dans le répertoire des paramètres de l'utilisateur. Leur emplacement dépend du système d'exploitation :

  • Pour les OS Unix-based ils seront dans ~/.config/siril/catalogue

  • sur Windows il sont dans %LOCALAPPDATA%\siril\catalogue.

Tous les catalogues ci-dessus peuvent être activés/désactivés dans le menu Preferences ‣ Astrometrie tab.

Les deux catalogues définis par l'utilisateur peuvent également être purgés (c'est-à-dire supprimés) à l'aide des boutons appropriés.

Un curseur sur le côté droit vous permet de naviguer facilement dans la liste de catalogues.

Gestion des catalogues

Gestion des catalogues dans Préférences/Astrométrie

Il existe également un moyen plus simple d'accéder à cette liste, ainsi qu'au bouton d'affichage/masquage des annotations de catalogue. Faites un clic droit sur le bouton d'annotations dans la barre d'outils et la liste s'affichera dans une fenêtre contextuelle.

Gestion des catalogues dans la fenêtre contextuelle

Gestion du catalogue dans la fenêtre contextuelle qui s'affiche lorsque l'on clique avec le bouton droit de la souris sur le bouton d'annotation.

Ces catalogues d'annotations sont utilisés principalement à des fins d'affichage. À partir de Siril 1.3, ils sont également utilisés pour localiser le centre de l'image pour l'outil d'astrométrie. Si l'objet est trouvé localement, le résolveur sera affiché comme Local. Si ce n'est pas le cas, un résolveur en ligne sera utilisé.

Résolveur local

Objet résolu à partir des catalogues d'annotations locaux

Catalogues d'annotations en ligne

Vous pouvez interroger d'autres bases de données que celles déjà fournies avec Siril, décrites dans la section catalogues d'annotations hors ligne. Cela ne fonctionne, encore une fois, que pour les images résolues par astrométrie.

À partir de Siril 1.3, ceci est possible avec la commande conesearch. Cette nouvelle commande remplace et étend les capacités précédemment fournies par nomad et solsys depuis Siril 1.2.

Ligne de commande Siril

conesearch [limit_magnitude] [-cat=] [-phot] [-obscode=] [-tag={on|off}] [-log={on|off}] [-trix=] [-out=]
Affiche les étoiles du catalogue local par défaut pour l'image chargée résolue, jusqu'à la magnitude limite limit_magnitude fournie (13 par défaut pour la plupart des catalogues, sauf 14.5 pour aavso_chart, 20 pour solsys, et omis pour pgc).
Un autre catalogue en ligne peut être spécifié avec -cat=, prenant les valeurs
- for stars: tycho2, nomad, gaia, localgaia, ppmxl, bsc, apass, gcvs, vsx, simbad, aavso_chart
- for exoplanets: exo
- for deep-sky: pgc
- for solar system objects: solsys (closest IAU observatory code can be passed with the argument -obscode= for better position accuracy)

Pour les catalogues d'étoiles contenant des données photométriques, les étoiles sans information B-V seront conservées ; elles peuvent être exclues en passant l'option -phot
L'argument -trix= peut être passé à la place d'un catalogue suivi d'un nombre entre 0 et 511 pour tracer les étoiles contenues dans les catalogues locaux trixel de niveau 3 (pour l'usage des développeurs principalement)

Certains catalogues (bsc, gcvs, pgc, exo, aavso_chart, varisum et solsys) affichent également, par défaut, les noms à côté des marqueurs dans l'écran (interface graphique uniquement) et les listent dans le journal. Pour d'autres qui ont un plus grand nombre d'objets, à savoir vsx et simbad, l'information peut aussi être affichée, mais, comme elle risque d'encombrer l'écran, elle n'est pas activée par défaut. Ce comportement peut être activé/désactivé avec les options -tag=on|off pour afficher les noms à côté des marqueurs et -log=on|off pour lister les objets dans le journal de la console

La liste des éléments présents dans l'image peut éventuellement être sauvegardée dans un fichier csv en passant l'argument -out=

Cette commande est accessible depuis l'interface graphique via Outils ‣ Astrométrie ‣ Annoter....

Interface utilisateur de Conesearch

Version graphique de la commande conesearch

Le tableau ci-dessous répertorie tous les catalogues disponibles, ainsi que les liens vers les données originales.

Tableau des catalogues disponibles

Catalogue

-cat=

Référence

Local

Omis

en utilisant local star catalogues

Tycho2

tycho2

https://cdsarc.cds.unistra.fr/viz-bin/cat/I/297

Nomad

nomad

https://cdsarc.cds.unistra.fr/viz-bin/cat/I/297

GAIA DR3

gaia

https://cdsarc.cds.unistra.fr/viz-bin/cat/I/355

PPMXL

ppmxl

https://cdsarc.cds.unistra.fr/viz-bin/cat/I/317

Catalogue Bright Stars

bsc

https://cdsarc.cds.unistra.fr/viz-bin/cat/V/50

APASS DR9

apass

https://cdsarc.cds.unistra.fr/viz-bin/cat/II/336

GCVS

gcvs

https://cdsarc.cds.unistra.fr/viz-bin/cat/B/gcvs

VSX

vsx

https://cdsarc.cds.unistra.fr/viz-bin/cat/B/vsx

SIMBAD

simbad

https://simbad.cds.unistra.fr/simbad/sim-tap/

PGC/HYPERLEDA

pgc

https://cdsarc.cds.unistra.fr/viz-bin/cat/VII/237

Archives des exoplanètes

exo

https://exoplanetarchive.ipac.caltech.edu

AAVSO VSP

aavso_chart

https://app.aavso.org/vsp/

skybot Système solaire IMCCE

solsys

https://vo.imcce.fr/webservices/skybot/?conesearch

Les requêtes suivantes vous sont fournies grâce à :

Pour les requêtes sur les objets du système solaire, vous pouvez passer un paramètre supplémentaire -obscode=, le code à 3 symboles d'un observatoire de l'UAI proche de votre lieu d'observation. Cela améliorera la précision des annotations. Veuillez noter que les résultats peuvent être légèrement différents de ceux obtenus en effectuant une requête directe d'éphémérides pour un objet spécifique, qui utilise le lieu d'observation exact (s'il est présent dans l'en-tête FITS).

Astuce

Un code d'observatoire préféré peut être défini dans l'onglet Astrométrie de la boîte de dialogue Préférences. S'il est défini, il sera utilisé pour l'outil Objets du système solaire de l'interface graphique et sera également utilisé dans la commande conesearch à moins que l'argument -obscode= ne soit fourni.

Ces annotations supplémentaires seront affichées en ROUGE, pour les différencier des annotations hors ligne, affichées en VERT. Ces annotations seront effacées dès que le bouton Afficher les noms des objets sera activé.

Catalogues supplémentaires

Vous pouvez vouloir afficher vos propres catalogues utilisateur. Cela peut être fait avec la commande show. Cette commande peut également être utilisée pour afficher, par exemple, des fichiers csv créés avec la fonctionnalité permettant de trouver des étoiles de comparaison.

Ligne de commande Siril

show [-clear] [{ -list=file.csv | [name] RA Dec }] [-nolog] [-notag]
Affiche un point sur l'image chargée et résolue en utilisant le catalogue temporaire d'annotations de l'utilisateur, basé sur ses coordonnées équatoriales. L'option -clear efface d'abord ce catalogue et peut être utilisée seule.
Plusieurs points peuvent être transmis en utilisant un fichier CSV avec l'option -list= contenant au moins les colonnes ra et dec. Si le fichier transmis contient également un nom de colonne, les noms seront utilisés comme balises dans l'image et listés dans la console, à moins qu'ils ne soient désactivés avec les options -notag et -nolog.

Cette fonction n'est disponible qu'à partir de l'interface graphique de Siril

Ces catalogues peuvent être des fichiers csv (séparés par des virgules), respectant les règles suivantes :

  • les lignes de commentaires, s'il y en a, doivent commencer par un signe #

  • une ligne doit être présente en haut avec les noms des colonnes, séparés par des virgules

  • au moins les colonnes ra et dec doivent être fournies, en degrés décimaux.

  • les colonnes peuvent être rédigées sans ordre particulier

  • d'autres colonnes peuvent être fournies (en anglais) :

    • name (str), pour le nom

    • diameter (double), le diamètre de l'objet en arcmin

    • mag (double), la magnitude de l'objet

    • type (str), qui sera ajouté entre () après le nom dans la Console

D'autres colonnes que celles énumérées ci-dessus peuvent être transmises, mais elles ne seront pas utilisées.

Cette commande est accessible depuis l'interface graphique via Outils ‣ Astrométrie ‣ Annoter.... Vous pouvez soit charger un fichier *.csv contenant plusieurs lignes de coordonnées ra, dec séparées par des virgules dans Importer CSV, soit un point unique dans l'onglet Coordonnées uniques.

Interface utilisateur montrer

Version graphique de la commande show

Dans le cas d'un point unique, vous pouvez enregistrer le résultat dans le catalogue utilisateur du ciel profond en cliquant sur le bouton d'enregistrement, comme illustré ci-dessous :

Afficher l'interface pour un point unique

Il est possible d'afficher un seul point et de l'enregistrer dans le catalogue utilisateur du ciel profond.

Astuce

Le bouton d'enregistrement ne fonctionnera que si le champ Nom affiché est renseigné.

Astuce

Vous pouvez sélectionner une étoile ou un objet et obtenir ses coordonnées à l'aide du bouton Obtenir les coordonnées à partir de la sélection.

Liste des catalogues d'utilisateurs connus :

Parfois, les utilisateurs créent leurs propres catalogues, nous pouvons essayer de mettre un lien ici pour aider tout le monde.

Avertissement

Contrairement aux instructions discutées dans le sujet lié, il n'est pas recommandé de remplacer le catalogue Ciel Profond utilisateur par de tels fichiers. Leur utilisation est déconseillée car certains d'entre eux peuvent être particulièrement volumineux et ralentiraient considérablement chaque affichage d'annotation.

Recherche d'un objet connu

Si vous savez qu'un objet spécifique se trouve quelque part dans l'image (sinon, voir la section recherche d'un objet inconnu), il est possible de l'ajouter aux annotations.

Objets du ciel profond

Chargez une image résolue en astrométrie et tapez Ctrl+Maj+/ ou Outils ‣ Astrométrie ‣ Annoter... puis allez à l'onglet Rechercher un objet de la boîte de dialogue.

Une boîte de dialogue de recherche est disponible, comme illustré ci-dessous, dans laquelle les noms d'objets peuvent être saisis.

Interface utilisateur de recherche d'objets

Boîte de dialogue Rechercher un objet

En appuyant sur Entrée ou sur Appliquer, vous rechercherez d'abord ce nom dans les catalogues d'annotations existants, au cas où il existerait déjà sous un autre nom. Si ce n'est pas le cas, une requête en ligne sera envoyée à SIMBAD pour obtenir les coordonnées d'un objet portant ce nom. S'il est trouvé, et s'il n'existe pas déjà dans un catalogue, l'objet sera ajouté au Catalogue utilisateur du ciel profond.

Les éléments de ce catalogue sont affichés en ORANGE tandis que les objets des catalogues prédéfinis sont affichés en VERT.

Utilisateur DSO

Objets du ciel profond à partir de catalogues d'utilisateurs et de catalogues prédéfinis

Exemples d'entrées valides (non sensible à la case) :

  • HD 86574 ou HD86574 sont tout deux valide pour cette étoile

Objets du système solaire

Depuis la version 1.2 de Siril, les objets du système solaire peuvent également être recherchés, en utilisant le service Miriade ephemcc. On procède de la même manière que pour les objets du ciel profond, mais en faisant précéder le nom de l'objet à rechercher d'un mot-clé représentant le type d'objet : a: pour les astéroïdes, c: pour les comètes, p: pour les planètes, dp: pour les planètes naines et s: pour les satellites naturels. Si vous interrogez une image prise à une date et une heure suffisamment proches (la même nuit) d'une autre image déjà annotée avec des SSO, leurs positions en cache seront utilisées et corrigées par la vitesse de chaque objet telle que renvoyée par les éphémérides. Les éléments de ce catalogue sont affichés en JAUNE.

Exemples d'entrées valide (non sensible à la case) :

  • c:67p ou c:C/2017 T2 sont une forme valide pour les comètes

  • a:1 et a:ceres sont tous deux valides pour (1) Ceres

  • a:2000 BY4 est valide pour 103516 2000 BY4

  • p:4 or p:mars sont tous les deux valides pour Mars

  • dp:Pluto est valide pour Pluton

  • s:Moon ou s:Io est valide pour les satellites naturels.

Avertissement

Les images qui n'ont pas de clé d'en-tête DATE-OBS ne peuvent pas être annotées pour les objets du système solaire. Les images qui n'ont pas d'informations sur la position de l'observateur (clés d'en-tête SITELAT, SITELONG et SITEELEV) seront tout de même annotées, mais en supposant une position géocentrique de l'observateur, c'est-à-dire comme s'il observait depuis le centre de la Terre. En fonction de la distance des objets par rapport à la Terre, les positions peuvent être légèrement décalées par rapport à leur position réelle.

Résultat du système solaire

Résultat d'un processus de recherche dans le système solaire

Commande catsearch

La même fonctionnalité est accessible par la commande catsearch :

Ligne de commande Siril

catsearch name
Recherche un objet par nom et l'ajoute au catalogue d'annotations de l'utilisateur. L'objet est d'abord recherché dans les catalogues d'annotations, s'il n'est pas trouvé, une demande est faite à SIMBAD.
L'objet peut être un objet du système solaire, auquel cas un préfixe, "a :" pour astéroïde, "p :" pour planète, "c :" pour comète, "dp :" pour planète naine ou "s :" pour satellite naturel, doit précéder le nom de l'objet. La recherche est effectuée pour la date, l'heure et le lieu d'observation figurant dans l'en-tête de l'image, à l'aide du service Miriade de l'IMCCE

Recherche d'un objet inconnu

Particulièrement utile pour les travaux de photométrie, il est possible d'identifier une étoile ou d'autres objets dans l'image en dessinant une sélection autour d'eux, en faisant un clic droit pour faire apparaître le menu contextuel, et en sélectionnant l'entrée PSF.

La fenêtre PSF s'ouvre et, s'il s'agit d'une étoile, elle affiche les paramètres de l'ajustement gaussien, mais aussi un lien Web en bas à gauche de la fenêtre. En l'ouvrant, vous accéderez à la page SIMBAD pour les coordonnées de l'objet et, dans de nombreux cas, vous obtiendrez le nom de l'objet.

SIMBAD ne contient pas tous les objets connus, mais les coordonnées de la page peuvent être utilisées comme point de départ pour rechercher l'objet dans d'autres catalogues en ligne, par exemple Gaia DR3 (VizieR).

PSF Dynamique

Cette section décrit les deux étapes essentielles qui ont pour but de détecter les étoiles dans les images individuelles. La détection sur une seule image peut être lancée ou affinée à l'aide de Outils Analyse de l'image ‣ PSF dynamique ou avec le raccourci Ctrl + F6.

dialogue

PSF dynamique sur une image de ciel profond.

Le processus est le suivant :

  • réaliser une première détection des étoiles candidates potentielles

  • Ajuste un modèle PSF sur chaque candidat. Exécute des contrôles d'intégrité basés sur les paramètres d'ajustement du modèle pour vous assurer qu'il s'agit bien d'une étoile et rejetez les candidats qui ne le sont pas.

À la fin de ce processus, le résultat est une liste d'étoiles, avec les positions dans l'image par rapport au coin supérieur gauche et les quantités mesurées de toutes les étoiles de la liste.

Candidat étoiles initiale

Si l'emplacement des étoiles peut sembler évident lorsqu'on regarde une image, il est un peu plus difficile de traduire ce processus en opérations et critères mathématiques. Cette section décrit brièvement l'algorithme sous-jacent. Il est inspiré du manuel du logiciel DAOPHOT [Stetson1987], avec des simplifications apportées pour améliorer les performances. L'algorithme original visait à être exhaustif dans la détection de toutes les étoiles possibles, dans le but de construire des catalogues d'étoiles, alors que Siril a besoin de détecter des étoiles principalement comme élément pour l'alignement . Il doit également être résistant à la grande variété d'images qui lui sont soumises - la plupart d'entre nous n'ont pas un équipement astronomique de qualité professionnelle dans leur jardin - et nous avons dû faire des choix concernant la connaissance préalable des conditions d'imagerie (échantillonnage, qualité du ciel, etc.).

Au fil des ans, notre implémentation a évolué pour aboutir à ce qu'elle est aujourd'hui. Elle vise à ne pas manquer les étoiles très brillantes, qui sont importantes pour l'alignement, et à rejeter autant que possible les valeurs aberrantes, tout en restant raisonnablement rapide pour le faire.

Ceci peut être décomposée selon les étapes suivantes :

  • calcule les statistiques de l'image pour le niveau du fond, comme la médiane de l'image, et son bruit. Cela suppose que l'image est relativement uniforme. Par conséquent, la détection aura tendance à être moins efficace dans les coins si un vignettage important est présent après le pré-traitement.

  • Calculez également une plage dynamique, définie comme le maximum de l'image moins son arrière-plan. Cela sera utile par la suite pour détecter les étoiles saturées.

  • lisser l'image avec un noyau gaussien. Le lissage idéal serait d'utiliser le noyau qui a la même FWHM que l'image. Au lieu de cela, nous avons choisi une taille arbitraire qui a donné des résultats satisfaisants dans une très large gamme de conditions. Cela permet d'être "aveugle" aux paramètres de l'imagerie.

  • sur la version lissée de l'image, détecte les maxima locaux sur un niveau défini comme le niveau du fond plus X fois le bruit (X peut être modifié en utilisant la valeur threshold dans l'interface graphique). Assurez-vous que ce soit un maximum sur une certaine zone (définie par le paramètre radius).

  • Exécution d'un contrôle d'intégrité pour s'assurer que le maximum et ses voisins sont bien au-dessus des pixels environnants (pour rejeter les taches dans les parties lumineuses de la nébuleuse par exemple).

  • exécute un contrôle d'intégrité pour déterminer si le cœur au centre des maxima est saturé, c'est-à-dire s'il est proche de la limite supérieure de la plage dynamique. Si c'est le cas, exécute un algorithme pour détecter la limite de la partie saturée.

  • Utilise les dérivées premières et secondes le long d'une ligne horizontale et verticale passant par le centre pour calculer le fond du ciel autour de l'étoile, son amplitude et sa largeur dans toutes les directions (haut, bas, gauche et droite).

  • Si les paramètres sont suffisamment symétriques dans toutes les directions (jusqu'au paramètre rondeur), confirmez l'étoile comme un candidat potentiel.

Une fois que la liste des candidats potentiels a été définie, ils sont triés par amplitudes décroissantes et introduits dans l'algorithme d'ajustement du PSF décrit dans la section minimisation.

Modèles

Deux modèles sont utilisés dans la fenêtre Dynamic PSF. En général, le modèle Moffat est beaucoup plus adapté à l'ajustement d'objets tels que les étoiles.

Profil d'étoile

Affichage de deux PSFs circulaires selon un profil gaussien et un profil de Moffat. Les deux modèles utilisent les mêmes paramètres et le profil de Moffat utilise \(\beta = 1.4\).

Profil d'étoile

Les fonctions de rotation Gaussienne et de Moffat ont \(\sigma_x=2\sigma_y\), \(\theta=45°\). Pour la fonction de Moffat, \(\beta = 1.4\).

Profil Moffat de l'étoile

Profil des étoiles avec les modèles gaussien et de Moffat. Plusieurs valeurs de \(\beta\) sont essayées. \(\beta = 10\) donne un profil très proche du modèle gaussien.

Théorie

  1. Une fonction d'ajustement gaussienne elliptique définie comme suit

    (1)\[ G(x,y) = B+Ae^{-\left(\frac{(x-x_0)^2}{2\sigma^2_x}+\frac{(y-y_0)^2}{2\sigma^2_y}\right)}.\]
  2. Une fonction d'ajustement PSF elliptique de Moffat définie comme suit

    (2)\[ M(x,y) = B+A\left(1+\frac{(x-x_0)^2}{\sigma^2_x}+\frac{(y-y_0)^2}{\sigma^2_y}\right)^{-\beta},\]

où :

  • \(B\) est le fond du ciel local moyen.

  • \(A\) est l'amplitude, c'est-à-dire la valeur maximale de la PSF ajustée.

  • \(x_0\)\(y_0\) sont les coordonnées du centroïde en pixel.

  • \(\sigma_x\)\(\sigma_y\) sont la déviation standard de la distribution Gaussienne sur l'axe horizontale et verticale, mesurées en pixels.

  • \(\beta\) est l'exposant de la formule de Moffat qui contrôle la forme globale de la fonction d'ajustement. La limite supérieure de ce paramètre a été fixée à 10. Une valeur supérieure n'a pas de sens et signifie que la gaussienne est suffisamment bonne pour s'adapter à l'étoile.

D'autres paramètres sont dérivés de ces variables ajustées :

  • \(\text{FWHM}_x\) et \(\text{FWHM}_y\) : Le Full Width Half Maximum sur l'axe X et Y en pixels. Ces paramètres sont calculés comme suit :

    • \(\text{FWHM}_x = 2\sigma_x\sqrt{2\log 2}\).

    • \(\text{FWHM}_y = 2\sigma_y\sqrt{2\log 2}\).

    • Il est possible d'obtenir les paramètres FWHM en secondes d'arc. Pour cela, vous devez remplir tous les champs correspondant à votre caméra et à la focale de votre lentille/télescope dans la fenêtre de réglage des paramètres du menu, puis Informations de l'image et Information. Si les mots-clés standards FITS FOCALLEN, XPIXSZ, YPIXSZ, XBINNING et YBINNING sont lus dans l'en-tête FITS, le PSF calculera également l'échelle de l'image en secondes d'arc par pixel.

  • \(r\) : Le paramètre de rondeur. Il est exprimé par \(\text{FWHM}_x/\text{FWHM}_y\), avec \(\text{FWHM}_x > \text{FWHM}_y\) comme condition de symétrie.

  • Un autre paramètre est également ajusté dans les modèles gaussien et de Moffat. Il s'agit de l'angle de rotation \(\theta\), défini dans l'intervalle \([-90°,+90°]\). L'ajout de ce paramètre implique un changement de coordonnées où les variables \(x\) et \(y\) exprimées dans (1) et (2) sont remplacées par \(x'\) et \(y'\) :

    (3)\[\begin{split} x' &= +x \cos\theta+y \sin\theta \\ y' &= -x \sin\theta+y \cos\theta.\end{split}\]

Minimisation

La minimisation est effectuée avec un algorithme non linéaire Levenberg-Marquardt grâce à la très robuste GNU Scientific Library. Cet algorithme est utilisé pour trouver le minimum d'une fonction qui fait correspondre un ensemble de paramètres à un ensemble de valeurs observées. C'est une combinaison de deux techniques d'optimisation : la méthode de descente du gradient et la méthode inverse-hessienne.

L'algorithme de Levenberg-Marquardt ajuste le compromis entre ces deux méthodes en fonction de la courbure de la fonction à minimiser. Lorsque la courbure est petite, l'algorithme utilise la méthode de descente du gradient, et lorsque la courbure est grande, l'algorithme utilise la méthode inverse-hessienne.

Depuis la version 1.2.0, la partie saturée de l'étoile est retirée du processus d'ajustement, permettant de capturer beaucoup plus précisément la partie non saturée. C'est ce qui permet de "reconstruire" le profil de l'étoile lorsqu'on utilise l'option de menu Désaturer ou la commande unclipstars.

Utiliser

La PSF dynamique peut être appelée de deux manières différentes, selon ce que vous voulez :

Il se peut que vous ne souhaitiez ajuster qu'une ou quelques étoiles. Dans ce cas, après avoir dessiné une sélection autour d'une étoile non saturée (ceci est important pour la précision du résultat), vous pouvez soit faire un clic droit et choisir l'élément Pointer l'étoile, soit cliquer sur le bouton + dans le dialogue Dynamic PSF, soit taper Ctrl + Espace. Une ellipse est alors dessinée autour de l'étoile. Pour ouvrir la boîte de dialogue, il est également possible d'utiliser le raccourci Ctrl + F6.

Vous pouvez analyser autant d'étoiles que possible en cliquant sur l'icône chercheur, ou en utilisant la ligne de commande findstar. Toutes les étoiles détectées sont entourées d'une ellipse : orange si l'étoile est correcte, magenta si l'étoile est saturée. Il est également possible de montrer la moyenne des paramètres calculés comme illustré ci-dessous, en cliquant sur le bouton bouton dynPSF.

dialogue

Moyenne des étoiles ajustées dans le modèle gaussien.

La détection des étoiles a un certain nombre d'utilisations :

  • Siril l'utilise en interne à des fins astrométriques lors de l'alignement de la séquence d'images. Cette opération est automatique et ne nécessite aucune intervention de l'utilisateur.

  • Les étoiles étant très lumineuses par rapport à des objets de faible intensité tels que les nébuleuses ou les galaxies, il est très fréquent que certaines étoiles d'une image soient saturées, ce qui signifie que leur profil de luminosité est écrêté. Cela peut poser des problèmes pour certaines fonctions de traitement d'image, en particulier la déconvolution, et entraîne une perte d'informations chromatiques et un gonflement légèrement plus important des étoiles lors de l'application des étirements. L'analyse de toutes les étoiles vous montrera lesquelles sont saturées, et vous pourrez alors utiliser l'option de menu Désaturer ou la commande unclipstars pour résoudre le problème par synthèse de la partie écrêtée du profil.

    Ligne de commande Siril

    unclipstars
    
    Reprofile les étoiles coupées de l'image chargée pour les désaturer, en mettant à l'échelle la sortie de manière à ce que toutes les valeurs de pixels soient <= 1,0
  • Idéalement, toutes les étoiles d'une image devraient être parfaitement rondes, mais des problèmes tels que la coma, l'astigmatisme et un mauvais suivi, ainsi que des problèmes tels qu'une back focus incorrect des aplanisseurs de champ, peuvent donner lieu à des modèles d'étoiles elliptiques dans une image. Les ellipses produites par l'outil Dynamic PSF peuvent donner une bonne illustration visuelle de ces problèmes.

  • L'examen des paramètres moyens de l'étoile, en particulier la FWHM et le paramètre bêta de la fonction d'ajustement de Moffat, peut fournir des informations sur la qualité du seeing dans une image.

  • La détection de toutes les étoiles est la première étape de l'utilisation de l'outil Traitement des étoiles ‣ Resynthèse intégrale. Celui-ci synthétise des profils de luminosité corrigés pour toutes les étoiles détectées, et peut être utilisé pour créer un masque d'étoiles synthétique qui peut ensuite être mélangé avec une image sans étoiles générée par Starnet++. Dans ce cas, la détection des étoiles à l'aide du profil Moffat peut donner un résultat plus réaliste et peut également faciliter le filtrage des galaxies incorrectement détectées comme des étoiles en utilisant le paramètre Minimum beta.

  • Le bouton Actif/inactif Étoile sélectionnée au centre peut être utilisé pour trouver rapidement et facilement une étoile particulière de la liste dans l'image, en la centrant dans la fenêtre d'affichage. Ceci est utile si vous avez détecté toutes les étoiles et que vous souhaitez vérifier des solutions spécifiques pour vous assurer qu'il s'agit bien d'une étoile et non d'une galaxie ou d'un rayon cosmique.

  • De même, un clic sur une ellipse d'étoile orange ou magenta dans la fenêtre principale mettra en surbrillance l'étoile dans la boîte de dialogue Dynamic PSF. Cela peut être utile si vous souhaitez voir les paramètres d'une étoile individuelle.

  • Les fonctions de déconvolution de Siril permettent d'utiliser les mesures de l'outil PSF dynamique pour synthétiser une fonction de déconvolution qui correspond aux paramètres des étoiles mesurés directement à partir de l'image.

Configuration

Le PSF dynamique peut être configuré à l'aide des paramètres de la boîte de dialogue Dynamic PSF :

  • Rayon définit la demi-taille de la boîte de recherche. Si vous avez des difficultés à détecter des étoiles particulières, vous pouvez essayer de modifier cette valeur, mais la valeur par défaut convient généralement.

  • Seuil modifie le seuil au-dessus du bruit pour la détection des étoiles. Si vous augmentez cette valeur, moins d'étoiles faibles seront détectées. Cependant, vous pouvez toujours le faire pour les images très bruitées. Diminuer cette valeur peut détecter plus d'étoiles faibles, mais rendra l'algorithme plus susceptible de mal identifier les pics de bruit aléatoires comme des étoiles.

  • Rondeur définit l'ellipticité admissible pour que les détections soient acceptées comme des étoiles. Les étoiles très elliptiques peuvent être dues à un suivi imparfait ou à des aberrations, mais il arrive aussi que des étoiles trop proches les unes des autres soient détectées comme une seule étoile très allongée. Pour mettre en évidence tous ces problèmes, il est possible d'activer une limite supérieure pour la rondeur. Une valeur maximale de 1 équivaut à désactiver la plage, ne laissant que la valeur minimale. Cette plage de rondeur doit être désactivée pour l'alignement ou l'astrométrie.

  • Convergence définit un critère utilisé par le solveur. L'augmenter permet au solveur d'avoir plus d'interations pour converger et peut potentiellement détecter des étoiles supplémentaires, mais peut augmenter son temps d'exécution.

  • Le type de profil permet de choisir entre la résolution de profils Gaussienne ou Moffat pour les étoiles.

  • Beta minimum définit une valeur minimale admissible de bêta pour qu'une détection soit acceptée comme une étoile. Les galaxies peuvent parfois être détectées comme des étoiles de profil Moffat, mais elles ont des profils diffus et la valeur de beta est généralement très faible, inférieure à environ 1,5.

  • Assouplir les contrôles PSF permet de relâcher plusieurs des vérifications de qualité des étoiles candidates. Cela est susceptible d'entraîner une augmentation significative des détections d'étoiles faussement positives, souvent avec des paramètres aberrants.

  • Une gamme d'amplitude minimum et maximum peut être définie pour limiter l'amplitude (paramètre nommé "A" dans les rapports) des étoiles détectées. Cela est utile si seules les étoiles non saturées doivent être sélectionnées, par exemple pour l'ajustement de PSF dans la déconvolution. Notez que le retrait des étoiles saturées de la détection peut perturber l'alignement et l'astrométrie.

Astuce

Les paramètres définis dans cette fenêtre peuvent être testés sur l'image actuellement chargée. Cependant, vous devez garder à l'esprit qu'ils seront également utilisés pour toutes les images de la séquence, notamment pour de l'alignement global.

La commande findstar obéit aux mêmes paramètres entrés dans la boîte de dialogue PSF dynamique, mais elle peut également être configurée à l'aide de la commande setfindstar.

Ligne de commande Siril

findstar [-out=] [-layer=] [-maxstars=]
Détecte les étoiles dans l'image actuellement chargée, dont le niveau est supérieur à un seuil calculé par Siril.
Ensuite, une PSF est appliquée et Siril rejette toutes les structures détectées qui ne répondent pas à un ensemble de critères de détection prescrits, qui peuvent être ajustés avec la commande SETFINDSTAR.
Enfin, une ellipse est dessinée autour des étoiles détectées.

Le paramètre optionnel -out= permet d'enregistrer les résultats dans le chemin d'accès donné.
L'option -layer= spécifie la couche sur laquelle la détection est effectuée (pour les images en couleur uniquement).
Vous pouvez également limiter le nombre maximum d'étoiles détectées en passant une valeur à l'option -maxstars=.


Voir aussi la commande CLEARSTAR

Ligne de commande Siril

setfindstar [reset] [-radius=] [-sigma=] [-roundness=] [-focal=] [-pixelsize=] [-convergence=] [ [-gaussian] | [-moffat] ] [-minbeta=] [-relax=on|off] [-minA=] [-maxA=] [-maxR=]
Définit le paramètre de détection d'étoiles pour les commandes FINDSTAR et REGISTER.

Si vous ne passez aucun paramètre, vous obtiendrez la liste des valeurs actuelles.
Passer reset réinitialise toutes les valeurs aux valeurs par défaut. Vous pouvez alors toujours passer des valeurs après ce mot-clé.

Valeurs paramétrables :

-radius= définit le rayon de la boite de recherche initiale et doit être compris entre 3 et 50.
-sigma= définit le seuil au-dessus du bruit et doit être supérieur ou égal à 0,05.
-roundness= définit la rondeur minimale des étoiles et doit être comprise entre 0 et 0,95. -maxR permet de définir une limite supérieure à l'arrondi, pour visualiser uniquement les zones où les étoiles sont significativement allongées, ne pas utiliser pour l'alignement.
-minA et maxA définit la limite du minimum et maximum de l'amplitude des étoiles à conserver, normalisé entre 0 et 1.
-focal= définit la longueur focale du télescope.
-pixelsize= définit la taille des pixels du capteur.
-gaussian et -moffat configure le modèle de solveur utilisé (Gaussian par défaut).
Si Moffat est sélectionné, -minbeta= définit la valeur minimale de beta pour laquelle les étoiles candidates seront acceptées et doit être supérieure ou égale à 0,0 et inférieure à 10,0.
-convergence= définit le nombre d'itération réalisée pour ajuster la PSF et doit être compris entre 1 et 3 (plus tolérant).
-relax= relâche les vérifications qui sont faites sur les étoiles candidats pour évaluer s'ils sont des étoiles ou non, pour permettre aux objets qui n'ont pas la forme d'une étoile d'être quand même acceptés (désactivé par défaut)

Références

[Stetson1987]

Stetson, P. B. (1987). DAOPHOT : A computer program for crowded-field stellar photometry. Publications of the Astronomical Society of the Pacific, 99(613), 191.

Entête FITS

Les mots-clés contenus dans l'en-tête d'un fichier FITS peuvent être affichés dans Siril. Pour ce faire, il suffit de cliquer sur Outils ‣ Entête FITS.

Depuis la version 1.3.0, il est possible de modifier la valeur des mots-clés pris en charge par Siril, soit avec la commande update_key, soit via l'interface graphique, dans la fenêtre appropriée. Cette fenêtre est divisée en deux onglets. Le premier, l'Éditeur d'en-tête, est actif pour les images uniques, hors séquence. Il peut différer de ce à quoi ressemble réellement l'en-tête du fichier, et représente plutôt l'état dans lequel il sera après l'enregistrement. Les valeurs des mots-clés sont mises à jour en temps réel. Le second onglet affiche l'en-tête au format texte tel qu'il est écrit dans le fichier et tel qu'il était représenté pour les versions de Siril antérieures à 1.3.0.

Avertissement

Les mots-clés HISTORY ne sont pas affichés dans l’éditeur. Ils sont visible dans l'onglet Entête sauvgardé.

Une autre méthode pour afficher l'entête est d'utiliser la ligne de commande dumpheader. Ceci affiche le même entête que l'onglet Entête sauvegardé.

Avertissement

Comme les fichier SER contiennent très peu de mots-clés et sont différents des fichier FITS, cette commande n'est pas applicable sur ce type de séquence.

Les mots-clés, valeurs et commentaire peuvent être modifié, cependant, certain mots-clés peuvent être protégés. Pour les reconnaître facilement, les mot-clés protégé sont affiché en couleur saumon.

L'édition est très simple, il suffit de double-cliquer sur la cellule à modifier. Le premier clic sélectionne le champ, le second ouvre le mode édition. Appuyer sur la touche Entrée valide la saisie. Pour que les modifications prennent effet, n'oubliez pas d'enregistrer le fichier.

Avertissement

Veuillez noter que Siril ne vérifie pas la validité de la valeur saisie. Il appartient à l'utilisateur de saisir une valeur valide. Une valeur incorrecte peut entraîner un comportement indésirable dans le traitement des mots-clés par Siril.

Entête FITS

Fenêtre d'en-tête FITS lors de l'édition de la valeur d'un mot-clé.

Entête FITS onglet 2

Second onglet de la boite de dialogue de l'entête FITS.

La fenêtre contient une option sous la forme d'un bouton Copier la sélection. Il permet de copier les lignes sélectionnées dans le presse-papiers dans le format originale de l'entête FITS, et fonctionne pour les deux onglets.

Enfin, vous pouvez ajouter un nouveau mot-clé à l'aide du bouton + en bas à gauche , et en supprimer à l'aide du bouton -:

  1. Pour ajouter un mot-clé, cliquez sur le bouton +. Une nouvelle boîte de dialogue s'ouvre, comme illustré ci-dessous. Cette fenêtre vous permet d'ajouter un nouveau mot-clé, dont le nom sera limité à 8 caractères (la convention HIERARCH n'est pas utilisée). Vous pouvez laisser le champ Commentaire vide, si les deux autres sont remplis. Cependant, l'utilisateur peut aussi ne remplir que le champ Commentaire pour ajouter un simple commentaire à l'en-tête FITS. Enfin, si le mot-clé existe déjà, sa valeur sera mise à jour avec les informations fournies.

    Ajouter un mot-clé

    La fenêtre pour ajouter de nouveaux mot clé.

  2. Pour supprimer un mot-clé, sélectionnez une ou plusieurs lignes et cliquez sur le bouton - (ou avec les touches Suppr ou Retour arrière). Les mots-clés sélectionnés seront supprimés, sauf s'ils sont protégés.

    Astuce

    Lorsqu'une séquence est chargée, il n'est possible de sélectionner qu'une seule ligne à la fois. Cela signifie que vous ne pouvez supprimer qu'un seul mot-clé à la fois dans une séquence. En revanche, pour une image unique, vous pouvez en sélectionner plusieurs.

Ligne de commande Siril

dumpheader
Affiche l'en-tête FITS de l'image chargée dans la console

Ligne de commande Siril

update_key key value [keycomment]
update_key -delete key
update_key -modify key newkey
update_key -comment comment
Met à jour un mot-clé FITS. Veuillez noter que la validité de value n'est pas vérifiée. Cette vérification est de la responsabilité de l'utilisateur. Il est également possible de supprimer une clé avec l'option -delete placée devant le nom de la clé à supprimer, ou de modifier la clé avec l'option -modify. Cette dernière doit être suivie de la clé à modifier et du nouveau nom de clé. Enfin, l'option -comment, suivie d'un texte, ajoute un commentaire à l'en-tête FITS. Veuillez noter que tout texte contenant des espaces doit être placé entre guillemets doubles

Ligne de commande Siril

sequpdate_key sequencename key value [keycomment]
sequpdate_key sequencename -delete key
sequpdate_key sequencename -modify key newkey
sequpdate_key sequencename -comment comment
Même commande que UPDATE_KEY mais pour la séquence sequencename. Cependant, cette commande ne fonctionne pas sur les séquences SER

Links: update_key

Profil d'intensité

Icône du bouton de profil

Siril dispose d'un mode de profilage de l'intensité. L'utilisateur sélectionne une ligne entre deux points et Siril génère un graphique des valeurs des pixels entre ces deux points. Cela a plusieurs utilités. Il peut être utilisé pour inspecter le profil d'intensité d'une étoile individuelle ou d'une galaxie entière.

Profil d'intensité de base

Pour établir un profil d'intensité de base d'une étoile ou d'un autre objet, sélectionnez le bouton Profil dans la barre d'outils inférieure. Siril passe alors en mode profilage et ouvre une petite boîte de dialogue.

Icône du bouton de profil

Vous pouvez maintenant cliquer sur l'image principale et la faire glisser pour définir les points de départ et d'arrivée de la ligne que vous souhaitez profiler. Si vous maintenez la touche Maj enfoncée pendant que vous faites glisser la ligne, celle-ci se déplacera horizontalement ou verticalement.

Astuce

Lorsque la ligne de profil est exactement horizontale ou exactement verticale, les valeurs exactes des pixels peuvent être utilisées directement à partir de l'image. Lorsque la ligne de profil n'est ni horizontale ni verticale, les points à tracer ne tombent pas exactement sur un pixel et des valeurs de pixels interpolées de manière bilinéaire sont donc utilisées.

Un titre personnalisé pour votre graphique peut être saisi dans le contrôle au bas de la boîte de dialogue.

Astuce

Lors du traitement d'une séquence, il est possible d'afficher le numéro de l'image et le total dans le titre personnalisé en ajoutant () à la fin du titre. Par exemple, en saisissant Spectre solaire () comme titre pour une séquence de 5 images, les titres Spectre solaire (1 / 5), Spectre solaire (2 / 5), etc. seront générés. Les parenthèses sont ignorées et supprimées lors du traitement d'une seule image.

Types de profils

Utilisez les cases d'option pour sélectionner le type de profil que vous souhaitez. (Cliquez sur les exemples d'images ci-dessous pour les voir en taille réelle.)

  • Profil mono. Pour les images mono ou couleur, générer un profil de luminance entre deux points. Ce mode peut être utilisé avec des données spectrométriques.

Icône du bouton de profil

Astuce

Si une image couleur est chargée mais que le mode de profilage mono est sélectionné, le profil sera établi en fonction de la fenêtre d'affichage. Les fenêtres R, G et B fournissent des profils mono de leur canal respectif et la fenêtre RVB fournit un profil de luminance pondérant les 3 canaux de manière égale.

  • Profil de couleur. Pour les images couleur, générer trois profils pour les valeurs des pixels R, V et B entre deux points. Ce mode peut être utilisé avec des données spectrométriques.

Icône du bouton de profil
  • Tri-profil (mono). Pour les images mono ou couleur, génère trois profils de luminance parallèles et équidistants entre deux points. L'espacement entre les 3 profils peut être réglé à l'aide du bouton adéquate.

Icône du bouton de profil
  • CFA. Pour les images comportant uniquement un motif de Bayer, générer quatre profils pour les quatre sous-canaux CFA entre deux points. Cela peut s'avérer particulièrement utile pour inspecter le profil des flats à motif de Bayer ou d'autres images à motif de Bayer avant qu'elles ne soient débayerisées.

Icône du bouton de profil

Cette image illustre l'utilisation du contrôle Titre personnalisé pour définir un titre personnalisé pour le graphe.

Cliquer sur Appliquer pour générer le profil.

Saisie de coordonnées précises

Afin de faciliter la saisie des coordonnées de manière précise et répétée, une méthode de saisie manuelle est proposée. Cliquez sur le bouton Coordonnées manuelles et vous pourrez entrer les coordonnées X et Y des points de départ et d'arrivée de la ligne de profil. Si une ligne de profil est déjà tracée mais qu'un point n'est pas tout à fait à l'endroit voulu, vous pouvez utiliser cette boîte de dialogue pour affiner l'emplacement des points d'extrémité.

Si vous souhaitez définir un point d'extrémité exactement à la position d'une étoile, faites une sélection rectangulaire autour de l'étoile et cliquez sur le bouton d'étoile correspondant à droite de la boîte de dialogue.

Note

Lorsque l'on utilise le mode CFA, les coordonnées sont données dans l'image d'entrée. Cependant, chaque canal CFA représente la moitié de la largeur et de la hauteur. L'axe des x dans le tracé du mode CFA est mesuré en pixels dans le sous-canal CFA, c'est-à-dire qu'il couvre la moitié du nombre de pixels qu'il couvre dans l'image d'entrée.

Mesures

La ligne de profil d'intensité peut être utilisée comme outil de mesure de deux manières :

  • En cochant la case Mesurer le profil, toutes les lignes de profil créées avec la souris seront mesurées, de manière similaire à la fonction de mesure rapide Ctrl-Maj-Glisser.

  • Dans la boîte de dialogue Coordonnées, il y a un bouton Mesurer. Il fournit la même fonction de mesure, mais vous permet de définir exactement les points d'extrémité, puis de mesurer la ligne de profil à la demande. En sélectionnant des étoiles, des planètes mineures ou des noyaux de comète comme points d'extrémité, comme décrit ci-dessus, les mesures entre deux corps célestes peuvent être effectuées très précisément (avec une précision inférieure au pixel).

Icône du bouton de profil

Ici, deux étoiles proches ont été sélectionnées et placées comme points d'extrémité, et la séparation entre elles a été mesurée à 5,2 arcsec. Cette méthode pourrait être utilisée pour étudier les binaires proches ou pour trianguler la position d'une planète mineure.

Note

La fonction de mesure de Siril fait l'approximation du petit angle pour la séparation angulaire \(\theta\). Le terme d'erreur le plus significatif est proportionnel à \(\theta^3\) et est inférieur à 1% pour les mesures jusqu'à 10° : il est donc valide pour la plupart des utilisations astrométriques, mais deviendra imprécis pour les grandes mesures sur des images à très grand champ. Un avertissement sera écrit dans les logs pour les mesures supérieures à 10°.

Outil graphique de Siril

La fonction de profilage utilise l'outil graphique interne de Siril pour afficher les différents profils. Avec les fichiers *.dat produits, vous pouvez toujours utiliser l'outil graphique de votre choix pour explorer les données sous-jacentes.

Un clic droit n'importe où dans la surface du graphique fera apparaître un menu contextuel pour :

  • Afficher/masquer la grille et la légende

  • Exporter la vue actuelle dans le presse-papiers, *.png ou *.svg

  • Sauvegarde des données sous-jacentes dans un fichier *.dat

Menu graphique de Siril

Menu contextuel du graphe de Siril

Notez que toutes les exportations tiennent compte du zoom/pan actuel, tandis que l'enregistrement dans un fichier dat exporte des données non filtrées.

Les interactions suivantes de l'interface graphique sont disponibles :

  • Cliquer + glisser pour dessiner une sélection. Le zoom est réglé sur la zone sélectionnée lorsque la souris est relâchée.

  • Cliquer + glisser pour effectuer un panoramique de la vue courante.

  • Ctrl + Défilement pour zoomer/dézoomer.

  • Double-clic pour rétablir la position/le zoom par défaut.

Commandes

Ligne de commande Siril

profile -from=x,y -to=x,y [-tri] [-cfa] [-arcsec] { [-savedat] | [-filename=] } [-layer=] [-width=] [-spacing=] ["-title=My Plot"]
Génère un tracé du profil d'intensité entre 2 points de l'image, également connu sous le nom de coupure. Les arguments peuvent être fournis dans n'importe quel ordre. Les arguments -to=x,y et -from=x,y sont obligatoires.

L'argument -layer={red | green | blue | lum | col} spécifie le canal (ou la luminance ou la couleur) à tracer si l'image est en couleur. Elle peut également être utilisée avec l'option -tri, qui génère 3 profils parallèles équidistants, chacun séparé de -spacing= pixels, mais notez que pour les profils tri, l'option col sera traitée de la même manière que lum.

L'option -cfa sélectionne le mode CFA, qui génère 4 profils : 1 pour chaque canal CFA dans une image avec motif de Bayer. Cette option ne peut pas être utilisée avec des images couleur ou des images mono sans motif de Bayer, et ne peut pas être utilisée en même temps que l'option -tri.

L'option -arcsec permet d'afficher la distance en arcsec sur l'axe des x, si les métadonnées nécessaires sont disponibles. Si elle n'est pas fournie ou si les métadonnées ne sont pas disponibles, la distance sera affichée en unités de pixels.

L'argument -savedat permet de sauvegarder les fichiers de données : le nom du fichier sera écrit dans le log. L'argument -filename= peut également être utilisé pour spécifier un nom de fichier dans lequel écrire le fichier de données. (L'option -filename= implique -savedat.)

L'argument "-title=Mon Titre " définit un titre personnalisé "Mon Titre"

Ligne de commande Siril

seqprofile sequence -from=x,y -to=x,y [-tri] [-cfa] [-arcsec] [-savedat] [-layer=] [-width=] [-spacing=] [ {-xaxis=wavelength | -xaxis=wavenumber } ] [{-wavenumber1= | -wavelength1=} -wn1at=x,y {-wavenumber2= | -wavelength2=} -wn2at=x,y] ["-title=My Plot"]
Génère un profil d'intensité entre 2 points de chaque image de la séquence. Après le premier argument obligatoire indiquant la séquence à traiter, les autres arguments sont les mêmes que pour la commande profile. Si l'on traite une séquence et que l'on souhaite que le numéro de l'image courante et le nombre total d'images soient affichés dans le format "Ma séquence (1 / 5)", le titre donné doit se terminer par () (par exemple, "Ma séquence ()" et les nombres seront remplis automatiquement.)

Inspecteurs d'images

Siril dispose de plusieurs outils qui peuvent vous aider à analyser votre image et vous renseigner sur la qualité de la prise de vue. Notamment si votre setup présente ou non des défauts optiques.

Tilt

Le premier outil proposé par Siril est le calcul du tilt. Le tilt du capteur se produit lorsque le capteur n'est pas orthogonal au plan d'imagerie : cela nécessite une intervention sur le système optique. Vous pouvez exécuter cette fonctionnalité de deux manières différentes. Soit via l'interface graphique (dans le menu Outils ‣ Analyse de l'image ‣ Montrer le tilt), soit via la ligne de commande. Cette dernière offre même une alternative qui permet de calculer le tilt sur toute une séquence d'images pour plus de précision. La commande suivante :

Ligne de commande Siril

tilt [clear]
Calcule le tilt du capteur comme la différence FWHM entre les valeurs moyennes tronquées des meilleurs et des pires coins. L'option clear permet d'effacer le dessin

produira un résultat :

22:28:13: Running command: tilt
22:28:13: Findstar: processing for channel 0...
22:28:15: Stars: 7598, Truncated mean[FWHM]: 3.40, Sensor tilt[FWHM]: 0.31 (9%), Off-axis aberration[FWHM]: 0.39

Dans la console est indiqué :

  • le nombre d'étoiles utilisées pour les mesures

  • la FWHM moyenne du capteur, exempt des valeurs aberrantes

  • le tilt, exprimé comme la différence entre la meilleur et la pire FWHM dans les 4 coins de l'image avec entre parenthèse le pourcentage de déviation du tilt (une valeur supérieur à 10% indique un problème de tilt)

  • l'aberration, exprimé par la différence de FWHM entre les étoiles aux centre et les étoiles sur les bords du capteur

Si le nombre d'étoiles détectées est faible (<200), les paramètres de détection dynamique de la PSF permettent une amélioration en ajustant le seuil / rayon. En effet, plus le nombre d'étoiles utilisées dans le calcul est important, plus le résultat de l'analyse est fiable.

Avertissement

Pour que le résultat ait un sens, il est préférable d'exécuter cette commande sur une image et non un résultat d'empilement. Une image prétraitée (juste dématricée pour les capteurs de couleurs) est donc idéale. De plus, le quadrilatère dessiné a ses proportions exagérées, afin d'être plus visible à l'écran. Il ne peut pas correspondre exactement à la réalité.

tilt

Affichage du diagramme du tilt

Astuce

En plus de la commande tilt -clear, le diagramme de tilt peut être effacé en utilisant le bouton Supprimer dans la boîte de dialogue PSF dynamique.

Ligne de commande Siril

seqtilt sequencename
Même commande que TILT mais pour la séquence sequencename. Elle donne généralement de meilleurs résultats

Liens : tilt

Inspecteur d'aberration

Cet outil crée une mosaïque 3x3 du centre, des coins et des bords de l'image. Cela permet de comparer facilement la forme de l'étoile dans différentes sections de l'image. Vous pouvez accéder à cette fonction avec le menu Outils ‣ Analyse de l'image‣ Inspecteur d'aberration. Vous pouvez changer les paramètres de cet outil, pour modifier la taille des panneaux et de la fenêtre, dans les préférences.

dialogue

Fenêtre d'inspection d'aberration montrant l'aberration des étoiles situées sur les bords à cause du système optique.

C'est également un très bon indicateur pour savoir si l'image contient un gradient : les différences de luminosité devenant très visibles.

dialogue

Fenêtre d'inspection d'aberration montrant une différences de luminosité.

Ligne de commande Siril

inspector
Divise l'image chargée en une mosaïque de neuf panneaux montrant les coins et le centre de l'image pour une inspection plus approfondie (interface graphique uniquement)

Photométrie

Cette section vous présente tous les utilitaires liés à la photométrie, en expliquant d'abord les principes de la photométrie, puis comment elle est utilisée dans Siril.

Siril est capable de déterminer la magnitude des étoiles ainsi que son incertitude. A partir de là, il est possible d'étudier la variabilité de certaines étoiles, des exoplanètes ou des occultations. Une courbe de lumière est également construite à la fin du processus.

dialogue

Exemple de photométrie d'exoplanète dans Siril.

Principes

La photométrie est la science de la mesure de la lumière. Elle vise à mesurer le flux ou l'intensité de la lumière émise par les objets astronomiques. Dans Siril, la photométrie peut être utilisée pour analyser la courbe de lumière des étoiles variables, les transits d'exoplanètes ou les occultations d'étoiles, ou pour calibrer les couleurs dans les images RVB.

La photométrie d'ouverture est la méthode utilisée. Son principe de base consiste à additionner le flux observé dans un rayon donné à partir du centre d'un objet, puis à soustraire la contribution totale du fond du ciel dans la même région (calculée dans l'anneau entre les rayons intérieur et extérieur, en excluant les pixels déviants), ce qui ne laisse que le flux de l'objet pour calculer une magnitude instrumentale. Ceci est illustré dans la figure suivante.

dialogue

Cercles de la photométrie d'ouverture

Les valeurs de ces paramètres peuvent être modifiées dans la section Photométrie des préférences ou en utilisant la commande setphot. L'ouverture doit contenir tous les pixels de l'objet à mesurer, l'annulus ne doit par opposition contenir aucun de ses pixels. Par défaut, l'ouverture est ajustée pour une cible en utilisant deux fois le FWHM de la PSF, mais la taille de l'anneau est fixe. Ces valeurs doivent être ajustées pour un échantillonnage donné et vérifiées avec soin.

Note

Le texte suivant est une copie tronquée et modifiée de l'excellente documentation du logiciel MuniPack, de David Motl et publiée sous la licence de documentation libre GNU, dont les sources sont disponibles ici.

Mesurer la magnitude d'un objet

La somme S des pixels dans une petite zone A autour d'un objet est la somme de l'intensité nette de l'objet I et du l'intensité de l'arrière plan \(B\cdot A\) :

(1)\[ S = I + B\cdot A\]

La valeur de S et B est obtenu depuis l'image source, la zone A est déterminé comme l'aire d'un cercle de rayon r, avec r la taille de l'ouverture en pixels. Il est alors facile de calculer l'intensité net I d'un objet en ADU :

(2)\[ I = S - B\cdot A\]

Supposons que l'intensité net I est proportionnel au flux observé F, nous pouvons déduire la magnitude apparente m de l'objet en utilisant la loi de Pogson :

(3)\[ m = -2.5 \log_{10}\left(\frac{I}{I_0}\right)\]

Estimation de l'erreur de mesure

Une fois que nous avons obtenu la luminosité instrumentale brute d'un objet, nous allons essayer d'estimer son erreur standard. Tout d'abord, nous allons rappeler quelques règles générales qui s'appliquent à l'erreur standard et à sa propagation. Il s'agit d'une règle générale pour la propagation de l'erreur à travers une fonction f de valeur incertaine X :

(4)\[ \operatorname{Var}(f(X)) = \left(\frac{df}{dx}\right)^2 \operatorname{Var}(X)\]

En utilisant cette règle générale, nous déduisons deux lois de propagation des erreurs. Dans le premier cas, la valeur incertaine X est multipliée par une constante a et décalée par un décalage constant b. Cette loi peut également être utilisée dans le cas où il n'y a qu'une multiplication ou qu'un décalage.

(5)\[ \operatorname{Var}(aX + b) = a^2 \operatorname{Var}(X)\]

La deuxième loi définit l'erreur d'un logarithme d'une valeur incertaine X :

(6)\[ \operatorname{Var}(\log(\pm bX)) = \frac{\operatorname{Var}(X)}{\bar{X}^2}\]

Veuillez noter que la fonction log est ici le logarithme naturel, alors que la formule de Pogson (voir ci-dessus) incorpore le logarithme en base 10. L'équation suivante nous aide à gérer cette différence :

(7)\[ \log_b(x) = \frac{\log_k(x)}{\log_k(b)}\]

En mettant ces deux équations ensemble, on obtient :

(8)\[ \operatorname{Var}(\log_{10}(\pm bX)) = \frac{\operatorname{Var}(X)}{\bar{X}^2\,\log(10)^2}\]

Si nous avons deux variables incertaines non corrélées X et Y, la variance de leur somme est la somme de leurs variances, cette équation est connue sous le nom de formule de Bienaymé.

(9)\[ \operatorname{Var}(X + Y) = \operatorname{Var}(X) + \operatorname{Var}(Y)\]

À partir de cette formule, nous pouvons également déduire l'erreur standard d'une moyenne d'échantillon. Si nous avons N observations de la variable aléatoire X avec une estimation basée sur l'échantillon de l'erreur standard de la population s, alors l'erreur standard d'une estimation de la moyenne de la population par la moyenne de l'échantillon est la suivante

(10)\[ SE_{\bar{X}} = \frac{s}{\sqrt{N}}\]

Forts de ces connaissances, nous pouvons commencer à réfléchir à l'estimation de l'erreur standard de la luminosité de l'objet. Nous considérerons les trois sources d'incertitude suivantes : (1) le bruit aléatoire à l'intérieur de l'ouverture de l'étoile qui comprend le bruit thermique du détecteur, le bruit de lecture de l'amplificateur de signal et du convertisseur analogique-numérique, (2) les statistiques de Poisson du comptage d'événements discrets (photons incidents sur un détecteur) qui se produisent pendant une période de temps fixe et (3) l'erreur d'estimation du niveau moyen du ciel.

Pour l'estimation du niveau moyen du ciel, nous avons utilisé l'algorithme de la moyenne robuste. Il permet d'estimer la variance de l'échantillon \(\sigma_{pxl}^2\). Il s'agit d'une variance basée sur les pixels et comme nous avons additionné A pixels dans l'ouverture de l'étoile, la formule de Bienaymé s'applique, la somme S est une somme de A variables aléatoires non corrélées, chacune ayant une variance \(\sigma_{pxl}^2\). Pour la variance de la première source d'erreur, nous obtenons :

(11)\[ \sigma_1^2 = A\,\sigma_{pxl}^2\]

A est le nombre de pixel dans l'ouverture de l'étoile.

À partir des statistiques de Poisson, nous pouvons déduire une variance due au comptage d'événements discrets, les photons incidents sur un détecteur, qui se produisent au cours d'une période de temps fixe, l'exposition. Nous devrons à nouveau utiliser le gain p du détecteur pour convertir une intensité en ADU en un nombre de photons. Si l'intensité nette mesurée d'un objet est I, nous calculons le nombre moyen de photons \(\lambda\) comme suit

(12)\[\lambda = I\,p\]

Note

La valeur du gain p du détecteur peut être modifiée dans la section Photométrie des préférences de Siril

Alors, la variance de l'intensité due à la statistique de Poisson est égale à sa valeur moyenne.

(13)\[ \sigma_{ph}^2 = \operatorname{Var}(\operatorname{Pois}(\lambda)) = \lambda = I\,p\]

La variance est en photon, nous devons la reconvertir en ADU pour avoir la variance en \(ADU^2\).

(14)\[ \sigma_2^2 = \frac{\sigma_{ph}^2}{p^2} = \frac{I\,p}{p^2} = \frac{I}{p}\]

Nous avons dérivé le niveau du ciel comme une moyenne d'échantillon de la population de pixels dans l'anneau du ciel. Comme chaque pixel de l'anneau a une variance \(\sigma_{pxl}^2\), la variance de la moyenne de l'échantillon est de

(15)\[ s_{sky}^2 = \frac{\sigma_{pxl}^2}{n_{sky}}\]

avec \(n_{sky}\) le nombre de pixel dans l'anneau de ciel.

Grâce à l'équation (9) nous calculons la variance de l'intensité d'un objet comme

(16)\[ \sigma_{ADU}^2 = \sigma_1^2 + \sigma_2^2 + A^2\,s_{sky}^2\]

Notez que dans l'équation (2) le niveau du ciel est multiplié par A, nous devons donc multiplier sa variance par \(A^2\) - voir l'équation (16). Maintenant, nous utilisons la loi de propagation de l'erreur pour le logarithme adopté pour correspondre à la formule de la loi de Pogson.

(17)\[ \sigma_{mag}^2 = \left(\frac{-2.5}{I\,\log(10)}\right)^2\,\sigma_{ADU}^2\]

En combinant les équations (17) et (16), nous pouvons dériver l'erreur standard de la luminosité de l'objet en magnitudes comme suit

(18)\[ \sigma_{mag} = \frac{1.08574}{I}\,\sqrt{\sigma_{ADU}^2}\]

Photométrie rapide

Explication des zones de photométrie

Siril n'effectuant que de la photométrie d'ouverture, il est important de comprendre et de définir les bons paramètres.

Les étoiles sont modélisées selon votre choix : Gaussienne ou Moffat comme décrit ici dans le chapitre PSF dynamique.

Ainsi, une étoile particulière sur une image particulière a sa propre FWHM.

Termes relatifs à la PSF et à la photométrie

Termes relatifs à la PSF et à la photométrie.

Le processus de photométrie d'ouverture nécessite 3 rayons :

  1. Le cercle extérieur, défini par le rayon extérieur (le plus souvent exprimé en pixels).

  2. Le cercle intérieur, défini par le rayon intérieur (le plus souvent exprimé en pixel). Ces 2 cercles définissent l'anneau qui sert à mesurer le fond de ciel (c'est-à-dire le niveau du ciel + le bruit additionnel).

  3. Le cercle d'ouverture, défini par le rayon d'ouverture. Il peut être exprimé en pixel ou comme un ratio de la FWHM de l'étoile (la case à cocher automatique dans la fenêtre). Cette zone est utilisée pour mesurer le signal de l'étoile ajouté au signal du fond.

Ces 3 rayons peuvent être réglés et ajustés individuellement à partir de l'interface graphique Preferences ‣Photometry.

Paramètres des rayons

Paramètres des rayons.

Ou via l'interface de ligne de commande :

Ligne de commande Siril

setphot [-inner=20] [-outer=30] [-aperture=10] [-dyn_ratio=4.0] [-gain=2.3] [-min_val=0] [-max_val=60000]
Obtient ou définit les paramètres de photométrie, principalement utilisés par SEQPSF. Si des arguments sont fournis, ils mettront à jour les paramètres. Aucun n'est obligatoire, tous peuvent être fournis, les valeurs par défaut sont indiquées dans la syntaxe de la commande. À la fin de la commande, la configuration active sera imprimée.

La taille de l'ouverture est dynamique, sauf si elle est forcée. Dans ce cas, la valeur d'ouverture aperture des paramètres est utilisée. Si elle est dynamique, le rayon de l'ouverture est défini par le rapport dynamique fourni ("rayon/demi-FWHM").
Les valeurs autorisées pour l'argument -dyn_ratio sont comprises dans l'intervalle [1.0, 5.0]. Une valeur en dehors de cette plage fixera automatiquement l'ouverture à la valeur fixe -aperture.

Le gain n'est utilisé que s'il n'est pas disponible dans l'en-tête FITS

Liens : seqpsf

Astuce

Ces paramètres de rayon s'appliquent à tous les processus de photométrie d'ouverture : photométrie rapide et courbes de lumière. Vérifiez-les soigneusement.

Photométrie sur des objets sélectionnés à la main sur une seule image

Le bouton photométrie rapide quickphoto-button est un bouton situé dans la barre d'outils et utilisé pour effectuer une photométrie des étoiles, c'est généralement la manière la plus simple de procéder.

Astuce

Si l'étoile se trouve au milieu de plusieurs étoiles et que l'outil ne parvient pas à pointer vers la bonne étoile, une solution alternative consiste à dessiner une sélection autour de l'étoile, puis à faire un clic droit et à cliquer sur PSF. Il peut aussi être intéressant de savoir que Ctrl-middle click (ou Cmd-middle click sous MacOS) dessine une sélection de taille recommandée pour la PSF/photométrie (basée sur le rayon extérieur configuré).

Astuce

Lorsque la photométrie est effectuée sur la couche RVB, les résultats sont en fait calculés sur la couche verte. Pour obtenir une photométrie sur les couches rouge ou bleue, il faut travailler sur les canaux correspondants.

Ligne de commande Siril

psf [channel]
Effectue une PSF (Fonction d'étalement du point) sur l'étoile sélectionnée et affiche les résultats. Pour les opérations en mode console, la sélection peut être donnée en pixels en utilisant BOXSELECT. S'il est fourni, l'argument canal sélectionne le canal de l'image sur lequel l'étoile sera analysée. Il peut être omis pour les images monochromes ou lorsqu'il est exécuté à partir de l'interface graphique avec l'un des canaux actifs dans la vue

Liens : boxselect

Cliquez sur ce bouton pour changer le mode de sélection de l'image, puis cliquez sur une étoile. La photométrie et la PSF (Point Spread Function) de l'étoile sont calculées, donnant de nombreux détails.

Deux modèles sont utilisés pour le calcul de la PSF, qui peuvent être sélectionnés par l'utilisateur dans la fenêtre Dynamic-PSF (Ctrl + F6).

résultat de la photométrie

Fenêtre de résultat de la photométrie.

Le résultat de la photométrie et la PSF associée sont affichés dans le modèle :

PSF fit Result (Gaussian, monochrome channel):

Centroid Coordinates:
            x0=5258.25px     09h25m34s J2000
            y0=2179.72px    +69°49'31" J2000

Full Width Half Maximum:
            FWHMx=7.13"
            FWHMy=6.79"
            r=0.95
Angle:
            82.87deg

Background Value:
            B=0.000874

Maximal Intensity:
            A=0.628204

Magnitude (relative):
            m=-2.3948±0.0014

Signal-to-noise ratio:
            SNR=28.9dB (Good)

RMSE:
            RMSE=1.890e-03
  1. L'ajustement a été effectué avec la fonction d'ajustement Gaussien, aucun paramètre supplémentaire n'est donc nécessaire. Cependant, si Moffat a été utilisé, la sortie suivante sera affichée :

    PSF fit Result (Moffat, beta=2.9, monochrome channel):
    
  2. Les coordonnées du centroïde donnent les coordonnées du centroïde en pixels. Cependant, comme dans l'exemple ci-dessus, si l'astrométrie a été définie sur l'image, Siril donne les coordonnées dans les Systèmes de coordonnées mondiales (RA et Dec).

  3. La largeur à mi-hauteur (FWHM) est retournée en arcsec si l'échelle de l'image est connue (obtenue à partir de son en-tête ou de l'interface graphique :menuselection : Information de l'image --> Information) et en pixels si ce n'est pas le cas. L'arrondi r est également calculé comme le ratio de \(\frac{\text{FWHMy}}{\text{FWHMx}}\).

  4. L'angle est l'angle de rotation de l'axe X par rapport aux coordonnées du centroïde. Il varie dans l'intervalle \([-90°,+90°]\).

  5. La valeur de l'arrière-plan est l'arrière-plan local dans la plage \([0,1]\) pour les images à 32 bits et \([0,65535]\) pour les images à 16 bits. Il s'agit d'une valeur ajustée, et non de l'arrière-plan calculé dans l'anneau de photométrie d'ouverture.

  6. La valeur intensité maximale est également une valeur ajustée et représente l'amplitude. Il s'agit de la valeur maximale de la fonction ajustée, située aux coordonnées du centroïde.

  7. La magnitude, donnée avec son incertitude, est le résultat de la photométrie. Toutefois, si pour une raison quelconque le calcul ne peut être effectué (pixels saturés ou noirs), une incertitude de 9,999 est donnée. Dans ce cas, la photométrie est signalée comme invalide mais une valeur de magnitude est tout de même donnée, bien qu'elle doive être utilisée avec précaution.

  8. Un estimateur du rapport signal/bruit est indiqué dans les résultats. Sa valeur est calculée à partir de la formule suivante et indiquée en dB :

    (1)\[ \text{SNR} = 10 \log_{10}\left(\frac{I}{N}\right)\]

    I est l'intensité nette, proportionnelle au flux observé F et N le total des incertitudes comme exprimé dans (18).

    Pour une meilleure compréhension, il est associé à 6 niveaux de qualité :

    1. Excellent (SNR > 40dB)

    2. Bon (SNR > 25dB)

    3. Satisfaisant (SNR > 15dB)

    4. Faible (SNR > 10dB)

    5. Mauvais (SNR > 0dB)

    6. N/A

      Cette dernière notation n'est affichée que si le calcul a échoué, pour une raison ou une autre.

  9. Enfin, RMSE donne un estimateur de la qualité de l'ajustement. Plus la valeur est faible, meilleur est le résultat.

Lorsque l'image est résolue, le bouton Plus de détails en bas de la fenêtre renvoie à une page du site SIMBAD contenant des informations sur l'étoile sélectionnée. Cependant, il est possible que la page ne donne aucune information supplémentaire si l'étoile n'est pas dans la base de données SIMBAD.

résultat de la photométrie

Plus de détails à propos de l'étoile avalisée. Cliquez sur limage pour l'agrandir.

Photométrie rapide sur les séquences

Une photométrie rapide peut également être effectuée sur une séquence. Ceci est généralement destiné à obtenir une courbe de lumière comme expliqué ici. Pour cela, il faut charger une séquence, faire une sélection autour d'une étoile, puis clic droit sur l'image.

Astuce

Idéalement, la séquence doit être alignée sans interpolation afin de ne pas altérer les données brutes. Par exemple, utilisez l'alignement global avec l'option Enregistrer la transformation dans le fichier seq uniquement.

Note

Assurez-vous que les rayons intérieurs et extérieurs de l'anneau d'arrière-plan sont adaptés à l'étoile et à la séquence analysées. Certaines images peuvent avoir des FWHM beaucoup plus grandes que l'image de référence, à cause des conditions du ciel ou d'un mauvais suivi. Elles peuvent être modifiées dans les préférences ou avec la commande setphot.

A la fin du processus, Siril ouvre automatiquement l'onglet de tracé montrant les courbes calculées. Il est possible de cliquer sur plusieurs étoiles pour reproduire le calcul, cependant la première étoile garde le statut particulier de variable, et les autres servent de références. Ceci est important pour le calcul de la courbe de lumière.

Photométrie sur la séquence

Dans cet exemple, 3 étoiles ont été analysées La première est utilisée comme variable. Les autres sont les références.

Calcul des magnitudes réelles

La magnitude calculée n'a de sens que si elle est comparée aux autres dans l'image linéaire. En effet, la valeur donnée ne correspond pas du tout à la véritable magnitude visible de l'étoile, elle est non calibrée, on parle aussi de magnitude relative.

Siril propose des outils permettant de calculer une magnitude apparente approximative. Pour cela, il faut connaître la magnitude d'une autre étoile visible sur l'image qui servira de référence. Il n'est actuellement possible d'utiliser qu'une seule étoile comme référence, d'où le terme approximative. Pour une plus grande précision, il faut choisir une étoile de couleur et de magnitude similaires à celles de l'étoile ou des étoiles que l'on veut mesurer, et sa magnitude fournie doit être en adéquation avec le filtre utilisé pour capturer l'image. Les catalogues contiennent des magnitudes calculées à l'aide d'un filtre photométrique, qui n'est généralement pas ce que les amateurs utilisent pour faire de belles images, ce qui ajoute une autre approximation.

  • Faites une photométrie rapide sur une étoile connue, la magnitude relative donnée est -2.428. Il est possible de trouver la magnitude visible réelle en cliquant sur le bouton Plus de détails comme expliqué ci-dessus. Disons que la valeur trouvée est 11.68 (assurez-vous d'utiliser une valeur correspondant à la bande spectrale de l'image).

  • Une fois fait, conservez l'étoile sélectionnée, puis entrez la commande suivante dans Siril

    setmag 11.68
    

    Cela produira quelque chose comme

    10:50:49: Relative magnitude: -2.428, True reduced magnitude: 11.680, Offset: 14.108
    

    Ligne de commande Siril

    setmag magnitude
    
    Étalonne les magnitudes en sélectionnant une étoile et en donnant la magnitude apparente connue.

    Tous les calculs de PSF renverront ensuite la magnitude apparente étalonnée, au lieu d'une magnitude apparente relative aux valeurs ADU. Notez que la valeur fournie doit correspondre à la magnitude du filtre d'observation pour être significative.
    Pour réinitialiser la constante de magnitude voir UNSETMAG

    Liens : psf, unsetmag
  • Maintenant, toutes les magnitudes calculées doivent avoir des valeurs proches de leur magnitude visuelle réelle. Cependant, ceci est particulièrement vrai pour les étoiles dont la magnitude est du même ordre de grandeur que l'étoile prise comme référence.

    photometry setmag

    Fenêtre de résultat de la photométrie avec la magnitude réelle définie.

  • Pour annuler le décalage calculé, il suffit de taper

    unsetmag
    

    Ligne de commande Siril

    unsetmag
    
    Remet l'étalonnage de la magnitude à 0. Voir SETMAG

    Liens : setmag

Astuce

Les mêmes commandes existent pour les séquences. Ce sont seqsetmag et sequnsetmag. Elles sont utilisées de la même manière lorsqu'une séquence est chargée.

Ligne de commande Siril

seqsetmag magnitude
Identique à la commande SETMAG mais pour la séquence chargée.

Cette commande n'est valable qu'après avoir exécuté SEQPSF ou sa contrepartie graphique (sélectionner la zone autour d'une étoile et lancer l'analyse PSF de la séquence, elle apparaîtra dans les graphiques).
Cette commande a le même but que SETMAG mais recalcule la magnitude de référence pour chaque image de la séquence où l'étoile de référence a été trouvée.
Lors de l'exécution de la commande, la dernière étoile qui a été analysée sera considérée comme l'étoile de référence. L'affichage du graphe de magnitude avant de taper la commande facilite sa compréhension.
Pour réinitialiser l'étoile de référence et le décalage de magnitude, voir SEQUNSETMAG

Ligne de commande Siril

sequnsetmag
Réinitialise la calibration de la magnitude et l'étoile de référence pour la séquence. Voir SEQSETMAG

Liens : seqsetmag

Courbe de lumière

En astronomie, une courbe de lumière est un graphique de l'intensité lumineuse d'un objet céleste en fonction du temps, généralement avec la magnitude de la lumière reçue sur l'axe y et le temps sur l'axe x. Siril est capable de générer de telles courbes lors de l'analyse des étoiles.

Il y a maintenant deux façons de sélectionner les étoiles variables et les étoiles de référence (également appelées comparaisons) : manuellement, ou en utilisant une liste d'étoiles obtenue par le plugin exoplanète du N.I.N.A..

Détection d'étoile manuelle

Commencez par passer en mode photométrie (cliquez sur le bouton quickphoto-button).

Sélectionnez (clic droit) l'étoile variable suivie des étoiles de comparaison que vous souhaitez, comme expliqué ici.

Créer une courbe

Une étoile est variable (violette avec un V) et les 5 autres sont utilisés comme références.

Avertissement

Veillez à ne pas sélectionner d'étoiles variables comme références. Si l'astrométrie est faite sur votre image, n'hésitez pas à utiliser la requête SIMBAD pour en savoir plus sur les étoiles.

Un moyen pratique de vérifier votre étoile de comparaison est d'afficher les 3 catalogues d'étoiles variables : GCVS, AAVSO-VSX et GAIA-varisum.

Vous devez définir votre propre paramètre (magnitude limite), mais à titre d'exemple, voici les commandes :

conesearch 18.0 -cat=gcvs
conesearch 18.0 -cat=aavso_chart
conesearch 18.0 -cat=varisum

Astuce

Il est préférable de choisir des références dont la magnitude est proche de celle de la variable comme expliqué plus loin ici.

Une fois réalisé, Siril lance automatiquement l'onglet Graphique tel que montré dans la figure ci dessous. Ceci montre la courbe de la FWHM en fonction du numéro de l'image.

Créer une courbe

L'onglet graphique tel que montré après une photométrie rapide sur la séquence.

Ce qui nous intéresse dans cette partie est d'afficher les courbes de magnitude. Il suffit d'aller dans le menu déroulant et de changer FHWM en Magnitude. Les courbes de magnitude de chaque étoile analysée sont alors affichées. Les sous-menus situés dans Photometrie du menu Outils sont également activés.

Sauvegarde des étoiles de comparaison sélectionnées

Lorsque l'on est satisfait du jeu d'étoiles de comparaison, on peut l'enregistrer pour une utilisation ultérieure dans un processus Courbe de lumière automatisée ou simplement garder une trace pour une documentation ultérieure.

Dans le menu Outils, sélectionnez Photométrie ‣ Créer un fichier d'étoiles de comparaison....

L'option par défaut Utiliser les étoiles de l'image actuellement chargée est sélectionnée.

Créer une courbe

Enregistrement des étoiles sélectionnées à la main dans un fichier .csv.

Le nom du fichier de sortie par défaut sera V_SirilstarList_user.csv mais vous pouvez le modifier à votre convenance.

Après avoir cliqué sur OK, le fichier sera créé et sauvegardé dans votre répertoire de travail.

Courbe de lumière (format ETD)

Le bouton Courbe de lumière (format ETD), situé dans le menu Outils ‣ Photométrie ‣ Créer une sortie est dédié aux données de transit d'exoplanètes, produisant un fichier dans le format géré par le site web de l'ETD.

Créer une courbe

Le passage en mode magnitude rend le bouton Résultats photométriques sensible.

Une fois l'analyse terminée avec un nombre d'étoiles de référence d'au moins 4 ou 5 (plus le nombre est élevé, plus le résultat est précis. Cependant, un nombre maximum de 19 étoiles est autorisé). Siril demande un nom de fichier pour enregistrer les données au format csv, puis la courbe de lumière est affichée dans une nouvelle fenêtre.

#JD_UT (+ 2457403)
# JD_UT V-C err
2457403.260428 -1.01054 0.00468598
2457403.261956 -1.00321 0.0046727
2457403.263461 -1.00132 0.00540513
2457403.264977 -0.994067 0.00505492
2457403.266481 -1.00397 0.00465623
2457403.267998 -1.00532 0.00467666
...

Il s'agit d'un fichier à trois colonnes. Les 2 premières lignes, commençant par un "#", sont des commentaires. Ensuite, la première colonne est l'heure précise de l'observation au format de la date julienne. La deuxième colonne est la magnitude de la variable (\(V\)), à laquelle a été soustraite la somme des magnitudes instrumentales des étoiles de comparaison. La troisième colonne représente l'incertitude sur la magnitude.

Théorie

\(V\) est donné par la formule suivante :

(1)\[ V=(V_\text{ins}-C_\text{ins}),\]

avec

(2)\[ C_\text{ins}=-2.5\log_{10}\left(\frac{1}{N}\sum 10^{-0.4C_\text{ins},i} \right).\]

\(N\) est le nombre total d'étoiles de comparaison et \(C_\text{ins},i\) est la magnitude instrumentale de la i-ième étoile de l'ensemble.

Courbe de lumière

Courbe de lumière d'un transit d'exoplanète.

Astuce

La courbe de lumière est tracée à l'aide de l'outil de graphique interne de Siril. Reportez-vous à sa documentation pour obtenir des instructions plus détaillées sur son utilisation.

Format de fichier étendu de l'AAVSO

Situé dans le menu Outils ‣ Photométrie ‣ Créer une sortie, le deuxième bouton, Format de fichier AAVSO, est dédié au format de fichier étendu de l'AAVSO pour les étoiles variables. Il ouvre une nouvelle boîte de dialogue qui, une fois complétée, exporte un fichier csv qui peut être téléchargé sur le site web dédié.

Fenêtre des paramètres AAVSO

Dialogue des paramètres AAVSO. Ce dialogue est utilisé pour remplir le fichier étendu de l'AAVSO. Plus d'informations sont disponibles sur le site web de l'AAVSO

Théorie

Dans Siril, le format de fichier AAVSO exporté utilise la magnitude standardisée définie comme suit :

(3)\[ V_\text{std}=(V_\text{ins}-C_\text{ins})+C_\text{std}\]

\(V_\text{ins}\) et \(C_\text{ins}\) sont la magnitude instrumentale de la variable et de la comparaison, respectivement, et \(C_\text{std}\) la magnitude réelle pour la comparaison. Vous pouvez spécifier la valeur de \(C_\text{std}\) dans la boîte de dialogue des paramètres de l'AAVSO, avant l'exportation.

Un exemple de photométrie est donné ci-dessous avec l'étoile Rx And. Cette étoile présente une grande variabilité : sa magnitude varie de 10,2 à 15,1 avec une périodicité d'environ 13 jours. Après traitement dans Siril, en prenant une étoile de comparaison et une étoile de contrôle, nous obtenons la courbe AAVSO suivante après téléchargement des données. Les nouvelles données sont à l'extrême droite (prises les 24 et 25 novembre 2023) et sont représentées en vert.

Photométrie des étoiles variables

Un exemple concret de photométrie d'étoile variable (avec l'aimable autorisation de H. Meunier).

Sélection automatique des étoiles

Courbe de lumière automatisée

Afin d'automatiser le processus d'analyse des transits d'exoplanètes, des listes d'étoiles de référence, également appelées étoiles de comparaison, peuvent être obtenues à partir de catalogues d'étoiles, avec les critères appropriés : magnitude similaire, couleur similaire (pour ne pas modifier leur magnitude relative avec l'extinction atmosphérique à différentes altitudes), proximité.

Le logiciel de capture N.I.N.A possède un plugin exoplanète qui affichera ces étoiles et permettra d'enregistrer la liste dans un fichier CSV, comme par exemple csv file :

Type,Name,HFR,xPos,yPos,AvgBright,MaxBright,Background,Ra,Dec
Target,HD 189733 b,2.6035068712769851,1992,1446,1640.3703703703704,39440,1917.0601851851852,300.18333333333328,22.709722222222222
Var,SW Vul,2.8626145609282911,2972,276,26.14,2012,1905.445,300.02171,22.93517
Var,DQ Vul,2.372369130017419,3006,1040,28.180555555555557,2048,1906.9027777777778,300.01254,22.78103
Var,HQ Vul,3.8351043206620834,157,1690,49.393939393939391,2104,1905.7454545454545,300.55808,22.64067
...
Comp1,ATO J300.3222+22.7056,2.4268101078425852,1367,1465,352,4496,1913.9504132231405,300.32229415181337,22.705681453738887
Comp1,HD 189657,2.5343988482845927,2527,2808,23.814814814814813,2012,1906.5061728395062,300.08714683055996,22.4400393728
...
Comp2,000-BJP-946,2.2738807043120195,1832,750,29.962962962962962,2024,1910.0648148148148,300.23741666666666,22.846999999999998
Comp2,000-BJP-942,2.0977710589704297,2760,1572,31.083333333333332,2096,1908.6527777777778,300.025875,22.704777777777778
...

Dans le menu Outils, Siril peut charger ce fichier en utilisant le bouton Courbe de lumière automatisée.... Pour l'utiliser, quelques conditions préalables doivent être remplies :

  • la séquence d'images calibrées doit être déjà chargée

  • l'image de référence de la séquence doit avoir été résolue astrométriquement, pour s'assurer de l'identification correcte des étoiles dans les coordonnées équatoriales J2000

À partir de là, tout est automatique et la courbe de lumière des étoiles de comparaison sélectionnées est affichée à la fin du processus.

Dans cette fenêtre, les zones d'ouverture et d'arrière-plan utilisées sont également rappelées.

Photométrie automatique

Fenêtre de la photométrie automatique.

La vidéo suivante montre un traitement automatisé de la courbe de lumière avec une liste d'étoiles de comparaison provenant de NINA :

Courbe de lumière par commande

Il est également possible d'automatiser ou de créer la courbe de lumière à distance en utilisant la commande light_curve. Comme l'opération en aveugle nécessite autant d'automatisation que possible, la configuration des rayons de l'anneau d'arrière-plan peut être automatisée avec l'argument -autoring : cela lance une détection d'étoiles dans l'image de référence et multiplie la FWHM moyenne avec un facteur configurable pour obtenir les rayons intérieurs et extérieurs qui devraient fonctionner avec la séquence.

Ligne de commande Siril

light_curve sequencename channel [-autoring] { -at=x,y | -wcs=ra,dec } { -refat=x,y | -refwcs=ra,dec } ...
light_curve sequencename channel [-autoring] -ninastars=file
Analyse plusieurs étoiles avec photométrie d'ouverture dans une séquence d'images et produit une courbe de lumière pour l'une d'entre elles, calibrée par les autres. Les premières coordonnées, en pixels si -at= est utilisé ou en degrés si -wcs= est utilisé, sont pour l'étoile dont la lumière sera tracée, les autres pour les étoiles de comparaison.
Alternativement, une liste d'étoiles cibles et de référence peut être transmise dans le format de la liste d'étoiles du plugin exoplanète de NINA, avec l'option -ninastars=. Siril vérifie que toutes les étoiles de référence peuvent être utilisées avant de les utiliser. Un fichier de données est créé dans le répertoire courant nommé light_curve.dat, puis Siril trace le résultat dans une image PNG
Les rayons de l'anneau peuvent être configurés dans les paramètres ou fixés à un facteur de la FWHM de l'image de référence si l'option -autoring est activée. Ces tailles de rayons sont 4,2 fois et 6,3 fois le FWHM pour les rayons intérieurs et extérieurs, respectivement.

Voir également la commande setphot pour définir de la même manière la taille du rayon d'ouverture.

Voir aussi SEQPSF pour les opérations sur une seule étoile

Liens : seqpsf

Générer une liste d'étoiles de comparaison

Si vous n'êtes pas un utilisateur de NINA, ou si vous souhaitez créer votre propre fichier et utiliser ensuite la fonction Courbe de lumière automatisée, vous pouvez, depuis Siril-1.3, générer une liste d'étoiles de comparaison à l'aide du nouvel outil Siril.

Liste via l'interface graphique

Cette fonction est accessible via le menu Outils, Photométrie ‣ Créer un fichier d'étoiles de comparaison..., une fois que l'image affichée de la séquence chargée a été résolue par astrométrie.

Bouton de comparaison d'étoiles

La fonction Créer un fichier d'étoiles de comparaison... dans le menu Outils.

La condition préalable est de charger une image représentative de la séquence, résolue par astrométrie.

Bouton de comparaison d'étoiles

Interface graphique de base pour la fenêtre de comparaison des étoiles.

  • L'option Trouver des étoiles de comparaison dans le catalogue est obligatoire dans le cas d'utilisation.

  • Le premier champ doit être le nom de l'étoile variable dont vous souhaitez obtenir la courbe de lumière.

  • Le bouton à cocher Champ de vision étroit permet de sélectionner un cercle centré sur l'image.

  • Le deuxième champ est la valeur de delta_Vmag. Il s'agit de l'écart maximal par rapport à la cible magnitude V (0,0 < delta_Vmag < 6,0). La valeur par défaut est fixée à 3,0.

  • Le troisième champ est la valeur delta_BV. Il s'agit de l'écart maximal par rapport à l'indice BV cible (0,0 < delta_BV < 0,7). La valeur par défaut est fixée à 0,5.

  • Le quatrième champ est la valeur max_emag. Il s'agit de l'erreur statistique maximale autorisée sur Vamg (0,0 < max_emag < 0,1). La valeur par défaut est de 0,03.

  • Ensuite, vous pouvez choisir la source des étoiles de comparaison : du catalogue APASS ou du catalogue NOMAD.

    Critères de tri

Ces deux critères vous permettent d'obtenir des étoiles de comparaison correspondant à la magnitude et à l'indice de couleur de la cible.

Le nombre maximum d'étoiles de comparaison est fixé en interne à 20.

Après avoir cliqué sur OK, une requête est envoyée au serveur adéquat.

La réponse est une liste d'étoiles, provenant du catalogue choisi, correspondant à vos critères, affichée en rouge dans votre image et sauvegardée sous forme de fichier CSV compatible avec le processus Exoplanète de NINA.

résultat de l'interface graphique

Exemple de rendu après une demande APASS.

résultat de l'interface graphique

Exemple de rendu après une requête NOMAD.

Note : Les étoiles étant marquées en rouge, elles appartiennent à un catalogue temporaire qui sera vidé une fois que le bouton Annotation aura été désactivé.

Astuce

Des informations supplémentaires sur le choix des étoiles de comparaison peuvent être trouvées dans le Manuel d'observation des reflex numériques - Version 1.4 page 67 de l'AAVSO.

Liste par commande

Une commande existe également pour effectuer le processus de "recherche d'étoiles de comparaison". Elle vous permet d'affiner davantage votre choix.

Ligne de commande Siril

findcompstars star_name [-narrow|-wide] [-catalog={nomad|apass}] [-dvmag=3] [-dbv=0.5] [-emag=0.03] [-out=nina_file.csv]
Recherche automatiquement des étoiles de comparaison dans le champ de l'image chargée résolue en astrométrie, pour l'analyse photométrique de la courbe de lumière d'une étoile selon les critères suivants
- 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=.

La liste peut éventuellement être sauvegardée sous la forme d'un fichier CSV compatible avec la liste des étoiles de comparaison de NINA, en spécifiant le nom du fichier avec -out=. Si le nom fourni est la valeur spéciale auto, il est généré en utilisant les paramètres d'entrée

Voir aussi LIGHT_CURVE

Links: light_curve
  • -narrow limite le champ de recherche à un cercle inscrit et centré dans votre image. Cela évite de choisir des étoiles dans une partie potentiellement déformée de l'image.

    Recherche étroite des étoiles de comparaison

    Vue du champ de recherche limité -narrow. (le cercle jaune n'est là qu'à titre d'illustration)

  • Sans l'option -narrow, les étoiles de comparaison sont recherchées sur l'ensemble de l'image. Cela peut être utile dans le cas d'un champ de vision peu peuplé.

    Recherche large des étoiles de comparaison

    Vue du champ de recherche élargi.

  • [-catalog={nomad|apass}] vous permet de choisir entre le catalogue NOMAD et le catalogue APASS (pardéfaut).

Astuce

Les noms affichés seront réduits à de simples nombres, triés par distance croissante du centre de l'image. Ces étiquettes sont uniquement à titre informatif.

  • [-dvmag=3], [-dbv=0.5] et [-max_emag=0.03] représentent respectivement les critères delta_Vmag , delta_BV et max_emag comme expliqué précédemment.

  • [-out=nina_file.csv] définit le nom du fichier CSV.

Astuce

APASS signifie AAVSO Photometric All Sky Survey. Des informations supplémentaires sont disponibles ici.

Les relevés photométriques de l'AAVSO (APASS DR9) fournissent des magnitudes calibrées dans l'intervalle 7,0 < Vmag < 17,0 pour le ciel entier, dans les bandes passantes BVugriZsY.

La photométrie est précise à environ 0,02 mag, et l'astrométrie est précise à environ 0,15 arcsec (voir Utilisation d'APASS et de 2GSS pour l'étude des étoiles variables).

Enlever les étoiles variables potentielles

Parmi les étoiles renvoyées par APASS ou NOMAD, quelques-unes peuvent être identifiées comme des étoiles variables. Si une (ou plusieurs) de ces étoiles sont sélectionnées comme étoiles de comparaison, leur variation de flux peut affecter le résultat final pour l'étoile variable étudiée.

La fonction de liste d'étoiles de comparaison automatique de Siril est donc capable de trouver ces étoiles aberrantes et de les enlever en conséquence.

Trois catalogues principaux peuvent être utilisés pour détecter les étoiles variables :

Ces 3 catalogues peuvent être utilisés un par un ou tous en même temps pendant le processus de mise à l'écart. Mais vous devez savoir que chaque catalogue sélectionné entraîne une demande en ligne supplémentaire.

En principe, seul le catalogue GAIA Varisum est sélectionné. L'utilisateur peut toutefois faire son propre choix.

Les catalogues utilisés sont gérés par une variable globale photometry.discard_var_catalogues selon le tableau suivant :

Table pour proprement définir photometry.discard_var_catalogues.

Valeur de la variable

Binaire

GCVS

AAVSO VSX

GAIA Varisum

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

(On peut voir dans le tableau précédent que la variable peut être écrite en format binaire, avec bit#0 comme GCVS, bit#1 comme VSX et bit#2 comme GAIA-Varisum).

On peut lire cette variable avec la commande :

get photometry.discard_var_catalogues

On peut assigner une autre valeur à la variable avec la commande :

set photometry.discard_var_catalogues=4

Par exemple, avec la commande :

set photometry.discard_var_catalogues=7

Les 3 catalogues sont vérifiés et la console affiche :

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
Structure du fichier de sortie

En utilisant la commande findcompstars et en réglant -out=auto ou le bouton GUI Étoiles de comparaison, on obtiendra un nom de fichier avec la structure suivante :

[star_name]_SirilstarList_[delta_Vmag]_[delta_BV]_[max_emag]_[catalogue].csv

Des informations supplémentaires sont également fournies (sous forme de commentaires) dans l'en-tête du fichier :

# Sorted comparison stars for KELT-16 from APASS according to the following criteria
# Siril: 12 stars, dVmag 1.00, dBV 0.30, max e_mag 0.03
type,name,ra,dec,mag
Target,KELT-16,314.268494,31.661009,11.72
Comp1,1,314.256578,31.660406,12.307
Comp1,2,314.317434,31.754368,12.431
Comp1,3,314.305316,31.546814,11.682
Comp1,4,314.263680,31.541927,12.084
Comp1,5,314.465451,31.626255,12.084
Comp1,6,314.459388,31.596876,11.979
Comp1,7,314.452316,31.746360,11.504
Comp1,8,314.437181,31.827260,11.24
Comp1,9,314.314246,31.879192,12.313
Comp1,10,314.431752,31.839763,10.88
Comp1,11,314.006569,31.666214,11.896
Comp1,12,314.304606,31.925116,11.713

Fonction graphique

Siril dispose d'un onglet permettant d'afficher des graphiques des données calculées lors de l'alignement ou d'autres calculs. Cet onglet est très puissant et permet un tri facile des images ainsi qu'une analyse approfondie de celles-ci. Le raccourci pour accéder à cet onglet est F5.

Graphique d'alignement

Afin d'améliorer le tri manuel de vos images alignées, des capacités de traçage ont été ajoutées dans l'onglet Graphique. Après avoir terminé l'alignement de votre séquence (ou lors du chargement d'une séquence alignée), une liste déroulante permet maintenant de sélectionner les paramètres d'intérêt pour le traçage et le tri de vos données.

graphique

Onglet graphique après un alignement global.

Vous pouvez aussi choisir de choisir de tracer un paramètre vs un autre. Les éléments disponibles dans la liste déroulante sont les suivants :

  • FWHM : Ceci est la largeur moyenne à mis hauteur, l'un des critères les plus courants pour juger de la qualité des images du ciel profond.

  • Rondeur : La rondeur r est calculée comme le rapport de \(\frac{\text{FWHMy}}{\text{FWHMx}}\).

  • wFWHM : Il s'agit d'une amélioration d'une simple FWHM. La FWHM est pondérée par le nombre d'étoiles dans l'image. Pour une même mesure de FWHM, une image avec plus d'étoiles aura une meilleure wFWHM qu'une image avec moins d'étoiles. Elle permet d'exclure beaucoup plus d'images parasites en utilisant le nombre d'étoiles détectées par rapport à l'image de référence.

  • Fond de ciel : Valeur moyenne du fond du ciel.

  • # Étoiles : Il s'agit du nombre d'étoiles utilisées pour l'alignement.

  • Position X : Décalage en X par rapport à la référence.

  • Position Y : Décalage en Y par rapport à la référence.

  • Qualité : Ce critère est un nombre dans la plage [0, 1] qui définit la qualité des images qui ont été traitées par un algorithme d'alignement planétaire.

graphique en nuage de points

Les valeurs de la rondeur en fonction de la FWHM sont affichées sous forme de diagramme de dispersion. Passez la souris sur les différents points de données pour afficher les valeurs X et Y, ainsi que le numéro de l'image correspondante.

Différents types de diffusion

Possibilité différente de graphiques réalisés avec le même ensemble d'images.

Cliquez sur l'un des points de données pour exclure l'image ou pour l'ouvrir. Cette dernière option permet de charger l'image et de faire apparaître le sélecteur d'image. Le paramètre choisi pour les valeurs Y est reflété dans la dernière colonne du sélecteur, qui peut ensuite être utilisé pour trier, revoir et sélectionner ou désélectionner des images de la séquence.

à l’exception graphique

Cliquez avec le bouton droit de la souris sur un point de données pour l'exclure ou pour le charger dans l'aperçu de l'image

Vous pouvez également sélectionner/désélectionner en masse plusieurs points de données en dessinant une sélection sur le graphique. Les informations en haut de la sélection indiquent le nombre de points sélectionnés, ainsi que les valeurs limites de votre sélection. Vous pouvez remodeler la sélection comme vous le feriez avec une sélection dessinée dans la vue Image. Une fois satisfait de votre sélection, un clic droit affichera un menu permettant de conserver ou d'exclure les points, ou de régler le zoom sur la sélection.

graphique de sélection d'images

Cliquez avec le bouton droit de la souris sur une sélection dessinée, pour la sélectionner/désélectionner en masse ou pour zoomer

Graphique de photométrie

En complément du tri et du filtrage des images de la séquence, vous pouvez également effectuer une PSF sur une étoile pour la séquence complète. La procédure est détaillée dans la page photométrie. Ensuite, l'élément de photométrie de la première liste déroulante devient sensible et est automatiquement sélectionné. L'autre liste déroulante contient les éléments suivants :

  • FWHM : Largeur maximum à mi-hauteur, tel que défini ci-dessus.

  • Rondeur : La rondeur r est calculée comme le rapport de \(\frac{\text{FWHMy}}{\text{FWHMx}}\).

  • Amplitude : C'est la valeur maximale de la fonction ajustée, située aux coordonnées du centroïde.

  • Magnitude : Magnitude relative de l'étoile analysée.

  • Fond de ciel : Moyenne de la valeur du fond du ciel local prise dans un anneau.

  • Position X : Décalage en X par rapport à la référence.

  • Position Y : Décalage en Y par rapport à la référence.

  • RSB : Un estimateur du rapport signale sur bruit.

En photométrie, contrairement à l'alignement, il n'est pas possible de changer l'axe des X. Et seul le nombre d'images peut être utilisé (ou le jour julien).

  • Le bouton Effacer les courbes combine les menus Tout effacer et Effacer la dernière pour effacer soit toutes les courbes photométriques, soit la dernière tracée.

Menu Outils

Depuis Siril 1.4, de nombreuses options ont été déplacées dans le menu Outils, situé à droite du menu Traitement de l'image. Ce menu sera détaillé dans la section Photométrie.

Options partagées

Plusieurs fichiers de sortie peuvent être produits en cliquant sur le bouton Production :

  • Afficher les données valides dans Siril Plot est une option qui affiche tout ce qui se trouve dans l'onglet graphe dans une nouvelle instance de Siril Plot.

  • Le bouton Exporter en CSV exporte le graphique affiché dans un fichier CSV.

Le bouton Affichage permet de changer les unités de l'axe. Il contient, en fonction de ce qui est disponible, plusieurs boutons dans un menu déroulant :

  • Si l'échantillonnage des images est connu, le bouton arcsec affiche la FWHM en arcsec au lieu du pixel.

  • Dans le cas de la photométrie uniquement (donc pas vraiment dans les options partagées), il est également possible de choisir Date julienne comme unité de l'axe des x.

Astuce

Survolez le mot "Survoler pour la légende" pour afficher la légende du graphique.

  • Courbe violette : tracé réel tel que configuré avec les sélecteurs X et Y.

  • Courbe verte : valeurs triées par ordre de qualité décroissante.

  • Cercle : la valeur de l'image de référence.

  • Croix : la valeur de l'image actuellement chargée.

Interaction avec le graphique

Voici un résumé des interactions possibles avec la fenêtre du graphique :

  • Clic gauche dans un curseur : met le point rouge le plus proche sur celui-ci

  • Double-clic sur un curseur : réinitialise cet axe

  • Clic droit + glisser sur un curseur : modifier le zoom de cet axe

  • Clic gauche + glisser dans la zone graphique : dessine une sélection

  • Clic gauche + glisser sur un bord de la sélection : redimensionner la sélection

  • Double-clic dans la zone de graphique : réinitialise le zoom des 2 axes

  • Clic droit lorsqu'une sélection est active : afficher le menu pour : zoomer sur la sélection/ garder seulement les points de la sélection/ exclure les points de la sélection

  • Clic gauche quand une sélection est active : supprimer la sélection

Statistiques

Il s'agit d'une documentation pour les statistiques de Siril, données par l'interface graphique (GUI) à partir du menu Outils ‣Analyse de l'image puis sélection de Statistiques... ou en utilisant la commande stat. Notez que lorsque vous utilisez l'interface graphique, il est possible de dessiner une sélection dans l'image chargée et que, ce faisant, les statistiques sont calculées sur les pixels de la région.

L'option Par canal CFA permet de calculer les statistiques pour chaque canal R, V, B d'une image CFA, même si l'image n'a pas été dématricée.

Astuce

Lorsqu'une image CFA est chargée, la sélection sera contrainte à une taille minimale de 2x2 pour les images Bayer et de 3x3 pour les images X-Trans, afin qu'il y ait au moins un pixel dans chaque canal Bayer au sein de la sélection, pour garantir qu'il soit possible de générer des statistiques.

Plusieurs de ces valeurs sont des mesures de la dispersion statistique.

Statistiques 1 canal pour une image CFA

Statistiques un canal pour une image CFA. Les valeurs données ne sont pas vraiment pertinentes dans ce cas.

Statistiques 3 canal pour une image CFA

Statistiques trois canal pour une image CFA.

Ligne de commande Siril

stat [-cfa] [main]
Renvoie les statistiques de l'image courante, la liste de base par défaut ou la liste principale si main est passé. Si une sélection est faite, les statistiques sont calculées dans la sélection. Si -cfa est passé et que l'image est CFA, les statistiques sont faites sur les extractions par filtre

Estimateurs

Moyenne

C'est la moyenne arithmétique, également appelée moyenne. Elle est calculée en faisant la somme des valeurs des pixels, divisée par le nombre de pixels d'un canal d'image.

Médiane

La médiane est la valeur qui sépare la moitié supérieure de la moitié inférieure d'un ensemble de données. En général, elle représente la valeur de l'arrière-plan d'une image astronomique.

Sigma

Également connue sous le nom d'écart-type, notée \(\sigma\), c'est une mesure de la dispersion des pixels de l'image basée sur les différences au carré par rapport à la moyenne. La valeur sigma d'une sous-image contenant uniquement l'arrière-plan représentera le bruit de l'image.

Bruit de fond

Cet estimateur est disponible dans l'interface graphique à partir du menu Outils ‣ Analyse de l'image ‣ Estimation du bruit et il est également affiché à la fin de l'empilement.

Il s'agit d'une mesure du niveau de bruit estimé dans l'arrière-plan de l'image, pour les pixels ayant une valeur suffisamment faible pour être considérés comme de l'arrière-plan. C'est un processus itératif basé sur k.sigma (un facteur de l'écart-type au-dessus de la médiane), il n'y a donc pas de seuil fixe pour déterminer ce qui est suffisamment bas.

Ligne de commande Siril

bgnoise
Renvoie le niveau du bruit de fond de l'image chargée en mémoire

avgDev

La déviation moyenne, également appelée AAD pour average absolute deviation ou mean absolute deviation. Pour comprendre ce qu'est la déviation moyenne, il faut comprendre ce qu'est la déviation absolue. La déviation absolue est la distance entre chaque valeur de l'ensemble de données et la moyenne de cet ensemble (dans ce cas-ci) ou la médiane (pour MAD ci-dessous). En prenant toutes ces déviations absolues, en trouvant la moyenne, la déviation moyenne absolue est calculée. Pour simplifier, si l'écart type est la déviation quadratique moyenne par rapport à la moyenne, la déviation moyenne est sa version linéaire.

MAD

L'écart absolu médian est une mesure robuste de la dispersion d'un ensemble de données. L'écart absolu et l'écart type sont également des mesures de dispersion, mais ils sont davantage affectés par des valeurs extrêmement élevées ou extrêmement faibles. Il est similaire à l'écart moyen ci-dessus, mais il est relatif à la médiane au lieu de la moyenne.

BWMV

Le biweight midvariance est un autre outil pour mesurer la dispersion d'un ensemble de données, encore plus robuste que les autres cités ci-dessus aux valeurs aberrantes. Il écarte les points de données trop éloignés de la médiane et calcule une variance pondérée, les poids diminuant au fur et à mesure que les points de données s'éloignent de la médiane. L'estimateur de la dispersion est la racine carrée (marquée comme \(\sqrt{BWMV}\)) de cette valeur.

Position et échelle

Ces paramètres, souvent appelés familièrement échelle et décalage, ne sont pas affichés dans les interfaces utilisateur mais sont calculés en interne par Siril. Afin d'aligner les histogrammes des différentes images pour les normaliser avant de les empiler, il faut calculer où ils se situent en termes de niveau et quelle est leur étendue en termes de dispersion. Un estimateur valable de l'emplacement pourrait être la médiane, tandis que le MAD ou le \(\sqrt{BWMV}\) pourrait être utilisé pour l'échelle. Toutefois, afin d'accroître la robustesse des mesures, les pixels situés à plus de \(6\times \text{MAD}\) de la médiane sont éliminés. Sur cet ensemble de données découpé, la médiane et \(\sqrt{BWMV}\) sont recalculées et utilisées respectivement comme estimateurs d'emplacement et d'échelle. Ils sont calculés par rapport à l'image de référence d'une séquence dans Siril.

Siril pour les scientifiques

Depuis des années Siril est un outils puissant pour les astronomes amateurs. Avec la possibilité de produire de courbes de lumière, rechercher dans des catalogues en lignes, réaliser des opérations sur une séquence d'images, et bien plus depuis les récent ajouts, il est devenu un bon outil pour de l'analyse scientifique. Cette page est un guide rapide pour les scientifiques qui veulent en apprendre plus rapidement sur Siril, sous forme d'un FAQ.

Comment Siril peut-il m'aider dans mes recherches ?

Le format de fichier par défaut de Siril est le FITS, contenant soit une seule image, soit plusieurs (voir la question sur les cubes FITS ci-dessous). Siril a toujours été développé en tenant compte de la précision des données. L'affichage d'une image peut se faire de différentes manières sans détruire les données d'entrée.

Siril dispose de nombreux outils pouvant aider les observations scientifiques : détection d'étoiles, résolution astrométrique élaborée, alignement d'une séquence d'images à l'aide d'étoiles ou de solutions astrométriques, photométrie d'ouverture avec étalonnage de magnitude à l'aide de catalogues, création automatisée de courbes de lumière, recherche d'objets dans des catalogues en ligne (étoiles, galaxies, objets du système solaire). Beaucoup de ces opérations peuvent être effectuées depuis l'interface graphique ou à partir d'entrées texte (commandes ou scripts), certaines opérations produisent des fichiers à valeurs séparées par des virgules (CSV) pour les résultats, certaines peuvent produire des graphiques directement dans Siril.

Quelle version de Siril dois-je installer ?

Siril suit un système de numérotation de version pair/impair, par exemple 1.2.x était une série stable alors que 1.3.x était une série de développement. Pour un usage scientifique, il est recommandé d'installer la dernière version de la dernière série stable : les liens de téléchargement se trouvent sur siril.org. Les versions bêta, celles distribuées sur le site web, peuvent également être considérées comme assez stables pour un usage général.

Comment puis-je contacter les développeurs ?

Le forum officiel se trouve sur pixls.us. Si vous souhaitez nous contacter en privé, vous pouvez nous envoyer un message direct là-bas ou sur gitlab. Nos adresses e-mail se trouvent également dans le fichier AUTHORS. Si vous parlez français, vous pouvez nous retrouver sur Astrosurf ou Webastro. N'hésitez pas à nous contacter si vous avez des besoins spécifiques pour votre recherche.

Quelle est la précision des résultats de Siril ?

De nombreux algorithmes de Siril s'appuient sur des algorithmes publiés et évalués par des pairs, que l'on peut retrouver sur la page de documentation des fonctionnalités concernées. Nous testons Siril fréquemment, en comparant parfois les résultats avec d'autres outils, mais nous n'avons pas les ressources pour disposer de tests automatisés sur l'ensemble des composants du logiciel, les données sont donc fournies sans garantie. Nous savons que certaines choses pourraient être améliorées, par exemple le calcul d'erreur sur les magnitudes, qui dépend du gain de la caméra, pas toujours disponible dans l'en-tête FITS.

Les données d'astrométrie sont aussi fiable que les autres et prend en charge la convention WCS FITS.

Comment citer Siril ?

Si vous utilisez Siril dans vos recherches, veuillez citer :

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

Format BibTeX :

@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}
}

Comment puis-je ouvrir des cubes FITS avec Siril ?

Les cubes FITS sont disponibles en deux formes pour Siril :

  • ceux qui contiennent plusieurs images de même taille et de même format sont appelés séquences FITS, ou fitseq en abrégé, et servent de format alternatif pour représenter les séquences d'images ;

  • ceux qui contiennent plusieurs images aux propriétés changeantes, voire des tableaux et d'autres formats de données. Siril ne lira que les données d'image, mais est capable de travailler sur chaque image de tels cubes FITS si une option est activée dans les paramètres (nommée Autoriser les cubes FITS à avoir des images de tailles différentes dans Options FITS). La plupart des opérations de séquence ne seront pas disponibles sur ce type de fichier.

Siril permet également d'extraire des images à partir de cubes FITS pour les enregistrer dans des fichiers FITS individuels ou dans d'autres formats si nécessaire.

Comment mesurer la FWHM dans une image ?

Siril peut vous donner la FWHM d'une seule étoile si vous tracez une sélection autour de celle-ci dans l'interface graphique, puis cliquez avec le bouton droit et sélectionnez PSF, ou pour les étoiles dans une zone de l'image ou l'image entière. Vous pouvez également utiliser le bouton quick PSF dans la barre d'outils principale.

Plus généralement : ouvrez votre image et ouvrez l'outil PSF dynamique (depuis le menu Outils). À partir de là, cliquer sur le premier bouton lancera la détection d'étoiles, dans la zone sélectionnée si vous en avez tracé une. Cliquer sur l'icône Sigma donnera les valeurs moyennes pour toutes les étoiles détectées. Voir aussi la question suivante.

Comment utiliser la détection des étoiles (extraction des sources) ?

L'extracteur de sources de Siril se trouve dans l'interface graphique dans l'outil PSF dynamique, il est également disponible via la commande findstar. Il n'est normalement capable de détecter que des étoiles et aura des difficultés si deux étoiles sont trop proches l'une de l'autre, ou si les étoiles ont des formes asymétriques ou très éloignées d'une forme gaussienne, mais de nombreux paramètres peuvent être ajustés selon vos besoins, notamment les seuils de luminosité, d'amplitude, de rondeur ou la forme des étoiles (gaussienne ou Moffat).

L'interface graphique affichera les étoiles trouvées en cliquant sur le bouton à gauche de la barre inférieure, donnant un retour rapide sur les paramètres de détection. L'interface graphique et la commande peuvent produire un fichier CSV pouvant ensuite être utilisé pour vérifier les sources extraites dans une image ou dans une séquence d'images (commande uniquement).

La liste des étoiles peut être triée par propriété, en cliquant sur une ligne l'étoile correspondante sera mise en surbrillance sur l'image.

Quels sont les outils d’astrométrie disponibles ?

Siril dispose désormais d'un solveur astrométrique de très haute qualité (plate solver) et d'outils interagissant avec la solution astrométrique. Tout est basé sur la convention FITS WCS et sur WCSLIB. Voici une liste des outils liés à l'astrométrie :

  • Résolution astrométrique avec un extrait local du catalogue Gaia DR3 ou avec le catalogue complet distant Gaia DR3, PPMXL ou APASS.

  • Affiche les étoiles du catalogue sur l'image, pour obtenir un retour visuel de la précision de la solution astrométrique, à l'aide de la commande conesearch.

  • Query catalogues en ligne pour un objet à partir de son nom et de la date de l'image.

  • Obtenir les coordonnées équatoriales J2000 du centroïde de tout objet détecté.

  • Afficher un repère sur l'image des coordonnées J2000 fournies par l'utilisateur (commande show).

  • Alignez les images sur la grille céleste, en créant éventuellement une mosaïque (une image plus grande que l'originale).

  • Corriger les aberrations géométriques des images, en utilisant une image de correction de référence issue de l'astrométrie.

Peut-il traiter les objets du système solaire ?

Siril peut interroger les services de l'IMCCE pour trouver les coordonnées d'un objet du système solaire et afficher la position attendue sur les images. Il peut également afficher les objets du système solaire connus dans une image. La localisation de l'observateur sera nécessaire pour ces usages et peut être configurée à l'aide de codes MPC dans les paramètres. Voir la page de documentation annotations.

D'ici peu, Siril sera capable d'effectuer un suivi synthétique d'objets connus du système solaire, ce qui permettra de les faire apparaître sur les images empilées s'ils sont trop faibles pour être visibles sur une seule exposition.

Mais Siril n'est pas conçu pour traiter des vues rapprochées de planètes avec un empilement multipoint comme le font d'autres outils tels que PlanetarySystemStacker (PSS).

Siril peut-il fonctionner avec des spectre ?

Siril n'a pas été conçu pour traiter des données de spectrométrie. Un outil de profilage d'intensité qui affiche le graphique des intensités de pixels peut être utilisé pour prévisualiser un spectre. Les tables FITS ne sont affichées d'aucune manière.

Siril peut-il remplacer IRAF ?

Certaines fonctionnalités seront absentes, mais beaucoup seront beaucoup plus faciles à utiliser avec Siril. Nous n'avons pas encore de liste.

Siril est développé depuis 2012 et nous n'avons pas l'intention d'arrêter de sitôt. Il compte 3 développeurs actifs et des milliers d'utilisateurs amateurs.

Scripts

Cette section présente les différentes méthodes de script et d'automatisation disponibles dans Siril.

Astuce

Le scripting Python a été introduit dans la version de développement 1.3.5. Il est actuellement marqué comme EXPÉRIMENTAL. Cela ne signifie pas qu'il va détruire vos données : l'interface elle-même est robuste et a été testée tout au long du développement : la nature expérimentale actuelle tient plutôt au fait que nous ne savons pas encore ce que les utilisateurs feront de cette nouvelle fonctionnalité, ni s'il pourrait y avoir des problèmes ou des limitations que nous n'avons pas anticipés, peut-être en raison des contraintes d'empaquetage ou de cohérence entre les différents systèmes d'exploitation.

N'hésitez pas à l'essayer, que ce soit en tant qu'utilisateur en utilisant des scripts publiés sur le dépôt de scripts, ou en tant qu'auteur de scripts. Nous accueillons tous vos retours et nous nous efforcerons d'affiner l'interface tout au long de la série stable 1.4 et de la série de développement 1.5.

Si vous souhaitez déboguer vos scripts Python à l'exécution, cochez la case en regard de Activer le mode de débogage Python. Un tutoriel détaillant les étapes pour s'attacher au processus Python est disponible sur la page de tutoriels Siril.

menu script

Menu script

Fichiers de Scripts Siril

Les fichiers de script Siril sont le format d'origine pour scripter Siril et restent un moyen simple et utile d'automatiser un ensemble fixe de tâches.

Scripts Siril

Siril possède une ligne de commande dans son interface graphique et la possibilité d'exécuter des scripts qui sont une liste de commandes, soit à partir de l'interface graphique, soit à partir de l'interface en ligne de commande. En général, les commandes qui modifient une seule image travaillent sur l'image actuellement chargée, donc l'utilisation de la commande load est requise dans les scripts, et les commandes qui travaillent sur une séquence d'images prennent le nom de la séquence comme argument. Si les fichiers ne sont pas nommés d'une manière que Siril détecte comme une séquence, la commande convert vous aidera.

Astuce

Le caractère Espace est le délimiteur entre les arguments. Si vous avez besoin d'avoir des espaces à l'intérieur des arguments, vous pouvez utiliser le guillemet ou le guillemet double, comme dans un shell.

Les commandes peuvent être saisies dans la ligne de commande située en bas de la fenêtre principale de Siril. Une autre méthode consiste à placer les commandes dans un fichier et à l'exécuter en tant que script. Pour exécuter le fichier à partir de l'interface graphique, ajoutez-le aux répertoires de scripts configurés ou à partir de l'interface graphique, utilisez le symbole @ de la ligne de commande comme suit :

@file_name

Certaines commandes (calibrate, stack, et toutes les commandes de sauvegarde) peuvent utiliser des noms de fichiers contenant des variables provenant de l'en-tête FITS. Le format de l'expression est expliqué en détail ici et peut être testé en utilisant la commande parse.

Utilisation des scripts

Il y a quatre façons d'exécuter un script :

  • à partir de l'interface utilisateur graphique, en utilisant le mot clé @ sur la ligne de commande, suivi du nom du script dans le répertoire de travail actuel,

  • depuis l'interface graphique utilisateur, utilisez le menu Scripts,

    menu script
  • depuis l'interface graphique, à l'aide de la boîte de dialogue Éditeur de script qui peut être utilisée pour écrire, enregistrer et exécuter vos propres scripts ou pour ouvrir et modifier un fichier de script existant,

    boîte de dialogue de l'éditeur de script
  • depuis l'interface de ligne de commande (siril-cli exécutable), en utilisant l'argument -s suivi du chemin du script (voir la page man pour plus d'informations).

Lorsqu'un script est en cours d'exécution, l'interface utilisateur devient non interactive, à l'exception du bouton Arrêter.

Remplir la liste des scripts

Par défaut, lors de l'installation de Siril, un certain nombre de scripts sont automatiquement installés. Ces scripts intégrés, les scripts officiels, sont développés par l'équipe de développement et leur fonctionnement est garanti : ils sont destinés à couvrir des cas d'utilisation spécifiques.

Ajouter des dossiers de scripts personnalisés

Vous pouvez, bien sûr, écrire les votres et indiquer au Siril où les trouver :

  • Cliquez sur l'icône Burger puis sur Préférences (ou appuyer sur Ctrl+P).

  • Cliquer sur la section Scripts.

  • Copiez sur une nouvelle ligne le chemin d'accès à l'emplacement où vous les stockerez (créez un dossier sur votre ordinateur ou indiquez un dossier existant).

  • Cliquez sur l'icône Rafraichir juste en dessous.

  • Cliquer sur Appliquer.

Vous pouvez avoir autant de dossiers définis par l'utilisateur que vous le souhaitez, il vous suffit juste de les ajouter à la liste.

Si vous venez d'ajouter un nouveau script dans l'un des dossiers et que vous souhaitez rafraîchir le menu, tapez la commande reloadscripts en ligne de commande ou ouvrez la section Preferences ‣ Scripts et utilisez l'icône Rafraîchir. Cela permet d'analyser tous les dossiers de la liste et de trouver tous les fichiers portant l'extension *.ssf.

Avertissement

Il est fortement déconseillé de stocker vos scripts personnalisés dans le même dossier que les scripts Siril intégrés. Sous Windows, ils peuvent être effacés lors de l'installation d'une nouvelle version ou empêcher une désinstallation correcte. Sous MacOS, cela casserait le bundle et empêcherait l'utilisation de Siril.

Ne vous inquiétez pas, la liste des emplacements des scripts étant stockée dans votre fichier de configuration, vous devriez les retrouver lors de l'installation d'une version plus récente.

Ajouter des scripts à partir du dépôt Git

Siril prend en charge un dépôt git à l'adresse https://gitlab.com/free-astro/siril-scripts. Celui-ci est configuré pour se mettre à jour automatiquement au démarrage par défaut, afin que vous ayez toujours accès aux derniers scripts (la mise à jour automatique peut être désactivée dans les préférences). Pour ajouter des scripts du dépôt au menu Scripts, choisissez ceux que vous voulez dans la liste disponible dans Préférences ‣ Scripts ou via l'entrée de menu Scripts -> Obtenir des scripts. Voir ci-dessous pour tous les détails sur le dépôt git.

Exécuter des fichiers de script

Les fichiers de script peuvent également être exécutés directement depuis le disque dur à l'aide de l'entrée de menu de script Exécuter des fichiers de script.... Le sélecteur de fichier affiché par ce menu montre par défaut les scripts récemment utilisés, mais vous pouvez naviguer pour choisir des scripts n'importe où sur le système de fichiers.

Résolution de problèmes

Pour différentes raison il est possible que le menu Scripts soit vide. Ceci signifie que les scripts n'ont pas été trouvés. Si c'est le cas, veuillez suivre la procédure suivante.

  • Cliquez sur l'icône Burger puis sur Préférences.

  • Cliquer sur la section Scripts.

  • Supprimer toutes les lignes dans le champ Répertoire des scripts tel que montré dans l'illustration si dessous.

  • Si vous utilisez le dépôt de scripts, décochez la case Récupérer et mettre à jour les scripts..., puis décochez-la à nouveau et sélectionnez les scripts que vous voulez utiliser.

  • Cliquer sur Appliquer.

  • Fermer et redémarrer Siril.

dialogue

Page de préférence des scripts. Les scripts sont chargé depuis les répertoires listé dans Répertoire des scripts.

Scripts intégrés

Tous les scripts intégrés doivent respecter cette structure de fichier :

structure du fichier de script
  • Mono_Preprocessing.ssf : script pour le prétraitement des appareils photos numériques ou caméras astro monochromes, utilise les biais, les flats et les darks, aligne et empile les images. Pour l'utiliser : mettez vos fichiers (RAW ou FITs) dans les dossiers nommés lights, darks, flats et biases (dans le dossier de travail par défaut de Siril), puis lancez le script.

  • OSC_Preprocessing.ssf : même script que ci-dessus mais pour les appareils photos numériques ou caméras astro couleur. Pour l'utiliser : mettez vos fichiers (RAW ou FITS) dans les dossiers nommés lights, darks, flats et biases (dans le dossier de travail par défaut de Siril), puis lancez le script.

  • OSC_Preprocessing_BayerDrizzle.ssf : même script que ci-dessus mais utilisant Bayer Drizzle pour récupérer les couleurs. Pour l'utiliser : placez vos fichiers (RAW ou FITS) dans les dossiers nommés lights, darks, flats et biases (dans le dossier de travail par défaut de Siril), puis exécutez le script. Il est fortement recommandé de disposer d'une grande quantité de données pour profiter des avantages du Bayer Drizzle et éviter les artefacts disgracieux.

  • OSC_Extract_Ha.ssf : script pour le prétraitement des appareils photos numériques ou caméras astro couleur, à utiliser avec le filtre Ha ou le filtre à double bande. Ce script extrait la couche Ha de l'image couleur. Pour l'utiliser : mettez vos fichiers (RAW ou FITs) dans les dossiers nommés lights, darks, flats et biases (dans le dossier de travail par défaut de Siril), puis lancez le script.

  • OSC_Extract_HaOIII.ssf : même script que ci-dessus, mais extrait les couches Ha et OIII de l'image couleur. Pour l'utiliser : mettez vos fichiers (RAW ou FITs) dans les dossiers nommés lights, darks, flats et biases (dans le dossier de travail par défaut de Siril), puis lancez le script. Vous pouvez aussi utiliser le menu Traitement de l'image puis Composition RVB et mettre le résultat Ha dans le canal rouge et le résultat OIII dans les couches verte et bleue pour obtenir une image HOO.

    Astuce

    Pour les possesseurs de filtres SII ou dualband SII-OIII, les mêmes scripts s'appliquent. En effet, il est impossible pour un capteur couleur de voir la différence entre Ha (656.3 nm) et SII (671.6 nm), tous deux de couleur rouge.

  • RGB_Composition.ssf : Ce script ajouté dans la version 1.2 aligne des images monochromes avec l'alignement globale, les recadre en utilsiant leur zone commune et prend les trois premières images pour créer une image en couleur. Les images d'entrée doivent être placées seules dans un répertoire et nommées R.fit (ou avec l'extension configurée), G.fit et B.fit. Le résultat est nommé rgb.fit. Assurez-vous de supprimer le répertoire process entre chaque exécution.

Édition de scripts

Certains fichiers de script .ssf contiennent des instructions pour les modifier, par exemple le script Seestar_Preprocessing indique à l'utilisateur que s'il constate que trop d'images sont écartées avant l'empilement, il doit « augmenter la valeur après -filter-round= dans la commande seqapplyreg, ligne 47 ».

Le répertoire du dépôt de scripts n'est pas destiné à être un répertoire modifiable par l'utilisateur : à chaque mise à jour, il est réinitialisé de force pour correspondre à l'état du dépôt distant, donc les fichiers qui y sont enregistrés ne sont pas en sécurité. Alors comment effectuer de tels changements ?

Trouvez le script dans la liste sous Préférences->Scripts et double-cliquez dessus. Cela l'ouvrira dans l'éditeur de script afin que vous puissiez apporter les modifications nécessaires et l'enregistrer à un emplacement approprié (l'un des répertoires de stockage de scripts définis en haut de Préférences->Scripts est idéal, mais il est recommandé de lui donner un nom différent afin de pouvoir le reconnaître dans votre menu de scripts).

Astuce

Vous pouvez également double-cliquer sur les scripts de la liste simplement pour consulter le code.

Langue de scripts

Au début des scripts, et grâce à la contribution d'un utilisateur, les scripts existaient en deux versions (anglaise, et française). Lors de la sortie de Siril 1.2.0, il a été décidé de ne conserver que les scripts anglais pour des raisons de simplicité de maintenance. Nous encourageons les utilisateurs à distribuer des traductions des scripts officiels à leurs communautés respectives s'ils le jugent nécessaire.

Obtenir plus de scripts

Il y a tout un tas de scripts qui ne sont pas fournis avec l'installation de Siril. Cependant, nous avons mis en place un dépôt gitlab pour eux. Chacun est libre de s'inscrire et de proposer de nouveaux scripts. Nous les accepterons en fonction de leur pertinence : la langue utilisée doit être l'anglais.

Siril intègre git, ce qui signifie qu'il peut télécharger et synchroniser une copie locale du dépôt. Vous pouvez l'activer en cochant la case Autoriser l'utilisation du dépôt en ligne siril-scripts dans l'onglet Scripts de la boîte de dialogue Préférences.

En cochant cette case, les scripts seront récupérés dans le dépôt et une liste des scripts disponibles sera affichée, classés en scripts de "Prétraitement" ou de "Traitement". Comme il peut y avoir un nombre important de scripts dans le dépôt, vous devez sélectionner ceux que vous souhaitez avoir dans le menu Scripts. Cliquez sur la case à cocher à côté du nom de chaque script que vous souhaitez utiliser, puis cliquez sur le bouton Appliquer.

Le contenu d'un script peut être visualisé en double-cliquant sur sa ligne dans la liste. Il est toujours utile de le faire pour vérifier les exigences du script en termes de répertoires préparés en amont. Si vous souhaitez modifier un script, vous pouvez également utiliser cette fonction pour copier le script et le coller dans votre logiciel d'édition de texte préféré. (Vous devrez l'enregistrer dans l'un de vos répertoires de scripts locaux.)

Lorsque le dépôt de scripts est activé, Siril peut synchroniser le dépôt local avec le dépôt distant, soit manuellement, soit automatiquement. Si les mises à jour automatiques sont sélectionnées, la mise à jour aura lieu au démarrage de l'application. La mise à jour manuelle est également disponible en utilisant le bouton Mise à jour manuelle. Ce bouton récupère toutes les modifications du dépôt en ligne et affiche une liste des messages de validation décrivant les modifications, que l'utilisateur doit confirmer pour appliquer la mise à jour.

Vous pouvez également vous référer à l'adresse ci-dessous pour parcourir les scripts et les télécharger manuellement si vous ne souhaitez pas utiliser l'intégration git. Dans ce cas, vous devrez placer manuellement les scripts que vous téléchargez dans un chemin de script connu de Siril : https://gitlab.com/free-astro/siril-scripts.

Avertissement

Gardez toutefois à l'esprit que ces scripts ne sont pas nécessairement maintenus par les utilisateurs qui les ont téléchargés et qu'ils peuvent ne pas être à jour. Cela dit, amusez-vous bien.

Rédiger votre propre script

Un fichier script est un simple fichier texte portant l'extension *.ssf.

L'écriture d'un script n'est pas difficile. Il s'agit d'une succession d'appels à des commandes qui sont exécutées séquentiellement. Chaque commande doit être exécutée sans retourner d'erreur, sinon le script s'arrête. Il est donc fortement recommandé d'utiliser la liste des commandes pour connaître la syntaxe et le nombre de paramètres nécessaires. Par ailleurs, certaines commandes ne sont pas scriptables et sont signalées par l'icône Non scriptable. Il peut également être utile de tester chaque ligne de script dans la ligne de commande Siril. Vous pouvez lire les scripts fournis ou consulter (voire modifier) les scripts du dépôt à titre d'exemple.

Chaque script doit contenir un en-tête de commentaire contenant des informations sur le script. Un exemple est fourni ci-dessous.

############################################
#
# 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/
#
############################################

Sous l'en-tête du commentaire, la première commande doit être requires. Elle indique la version minimale de Siril requise pour utiliser le script. Par exemple :

requires 0.99.4

Vous pouvez ensuite lancer le script proprement dit. Les commandes sont placées sur une ligne distincte, et vous pouvez commenter votre script en utilisant des lignes commençant par #.

Chaque nouveau script créé de cette façon devrait être placé dans un dossier défini par l'utilisateur pour que Siril puisse les trouver. Si vous pensez que votre script est bénéfique pour la communauté Siril plus large, vous pouvez le soumettre au dépôt de scripts. Les instructions pour ce faire se trouvent dans le README du dépôt.

Scripts Python

Nouveauté de Siril 1.4, il est possible d'écrire des scripts plus avancés en utilisant 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.

Astuce

La programmation en Python est encore EXPÉRIMENTALE et l'API devrait être améliorée au cours du cycle de développement de la version 1.5.

Dans sa forme actuelle, l'utilisation de scripts Python vous permet de :

  • Exécutez n'importe quelle commande Siril tout en bénéficiant de l'avantage d'utiliser un véritable langage de programmation, ce qui permet aux variables transmises aux commandes d'être le résultat de calculs.

  • Accéder aux variables et aux structures de données de Siril pour faciliter la rédaction de scripts.

  • Accéder aux extensions Python.

    • En utilisant l'interface de script 1.4, il est possible d'écrire un plugin qui enregistre l'image actuelle, l'ouvre à l'aide d'astropy et applique des techniques de traitement fournies par astropy, puis enregistre le résultat et le rouvre comme image principale de Siril.

    • L'extension Python tk peut être utilisé pour créer des interfaces graphiques pour vos scripts afin de pouvoir recueillir directement les entrées de l'utilisateur.

Avertissement

Dépendances d'exécution

Pour faciliter l'installation et la configuration du module Python Siril et de ses dépendances, un environnement virtuel Python (venv) est configuré.

Linux

Cela nécessite qu'une installation Python fonctionnelle soit présente sur le système, incluant les modules pip et venv. Ceux-ci sont disponibles par défaut dans les distributions flatpak et appimage, mais vous devrez les installer vous-même si vous compilez Siril à partir des sources. Sur les systèmes basés sur Debian, vous avez besoin des paquets python3-pip et python3-venv installés ; les exigences d'installation sur d'autres systèmes peuvent varier.

Windows

Si vous disposez d'une installation Python sur votre système, le script l'utilisera par défaut. Si ce n'est pas le cas, pas de panique. Siril installé via l'installateur officiel est également fourni avec une installation Python légère et tous les modules requis. Ceci concerne les versions officielles. Si vous compilez la version de développement à partir des sources, vous devrez avoir Python installé sur votre système.

macOS

Les dépendances nécessaires sont incluses dans le paquet officiel MacOS. Nous ne fournissons pas de support pour la compilation via homebrew, mais si vous compilez vous-même sur Mac, vous devrez vous assurer de disposer d'une installation Python système fonctionnelle.

Quel est le rapport avec pySiril ?

pySiril est un module distinct, publié par une équipe de développement distincte : c'est un produit établi déjà utilisé pour mettre en œuvre des applications d'aide importantes telles que Sirilic.

Sur le plan philosophique, pySiril et le module Python intégré de Siril sont assez différents : alors que le module intégré est destiné à être appelé depuis un Siril déjà en cours d'exécution pour fournir des fonctionnalités de script et lance un processus python3 pour exécuter le script, pySiril est destiné à construire des applications ayant besoin de faire appel aux fonctionnalités de Siril, et il lance un processus Siril depuis son application Python hôte.

Ces cas d'usage sont assez différents, et il n'est pas prévu de fusionner les deux modules.

Importer les modules

Siril se chargera de configurer un venv (environnement virtuel Python de nouveau style) et d'y installer le module. Dans votre script, vous l'importez à l'aide de import sirilpy.

Par commodité, vous pouvez l'abréger en import sirilpy as s.

Initialisation de la connexion

Une fois le module importé, vous devez établir l'interface avec Siril. Cela se fait comme suit :

import sirilpy as s

siril = s.SirilInterface()
try:
   siril.connect()
   print("Connected successfully!")
except SirilConnectionError as e:
   print(f"Connection failed: {e}")

(La communication d'informations sur l'état d'avancement est facultative, mais constitue une bonne pratique.)

Exécution des commandes Siril

Pour exécuter une commande Siril, une fois l'interface établie, vous utilisez la fonction siril.cmd(). La commande et ses arguments sont fournis sous forme de liste, par exemple :

siril.cmd("findstar", "-maxstars=1000")

exécutera la commande findstar, en définissant une limite maximale de 1000 étoiles.

La véritable puissance de l'utilisation de python pour scripter des commandes réside dans le fait que vous pouvez utiliser des variables python dans la commande à l'aide de la notation de chaîne formatée :

x = 1000
siril.cmd("findstar", f"-maxstars={x}")

Ceci est un exemple simple, mais la possibilité de définir des paramètres à passer aux fonctions de traitement d'image représente un bond en avant considérable pour le scripting Siril par rapport aux anciens fichiers de script Siril.

Astuce

La plupart des commandes Siril exécutent une action (register, stack, asinh, etc.). Elles fonctionneront exactement de la même manière lorsqu'elles sont appelées depuis python.

Cependant, certaines se contentent d'afficher des informations dans le journal de Siril, comme stat. Notez que ces commandes ne se comportent pas différemment lorsqu'elles sont appelées depuis python à l'aide de siril.cmd("stat") ou similaire : elles se contenteront toujours d'afficher des informations dans le journal de Siril et ne renverront aucune donnée utile au script python.

Pour accéder aux valeurs depuis python, vous devez utiliser une méthode qui récupère des informations sur l'image ou la séquence. Ainsi, dans cet exemple, vous appelleriez img = siril.get_image(), puis les statistiques seraient disponibles dans img.stats.

Avertissement

La méthode cmd() n'a pas de valeur de retour mais lèvera une exception si la commande échoue. Cela fournit un comportement par défaut sûr - le script s'arrêtera en cas d'échec d'une commande et affichera un message d'erreur d'exception dans la console Siril. Si vous souhaitez gérer les échecs de manière plus élégante, par exemple en affichant une boîte de message d'erreur, vous devrez utiliser un gestionnaire d'exceptions comme celui-ci :

try:
    siril.cmd("requires", "1.5.0")
except:
    siril.error_messagebox("This script is not compatible with this version of Siril")
    quit()

À des fins de débogage, vous pouvez souhaiter que les commandes renvoient un booléen. Cela peut être fait à l'aide d'un simple wrapper tel que le suivant :

def cmd_with_check(*args):
try:
    siril.cmd(*args)
except Exception as e:
    err_msg = ' '.join(list(args))
    print(f'Exception caught: {e}',)
    print(f"Command failed with arguments: {err_msg} but continuing...")
    return False
return True

Accès aux variables et aux structures de données de Siril

Le module siril fournit un accès aux variables clés de Siril. Les données disponibles sont les suivantes :

  • Répertoire de travail actuel de Siril

  • Répertoire de configuration utilisateur de Siril (destiné à stocker les paramètres spécifiques aux scripts)

  • Nom de l'image courant dans Siril

  • Image actuelle dans Siril :

    • Données de pixels de l'image

    • Profil ICC de l'image (sous forme d'octets : vous devrez utiliser un module tel que pillow pour convertir ces données brutes en quelque chose d'utilisable)

    • Métadonnées de l'image : toutes les métadonnées que Siril utilise en interne, y compris les mots-clés pertinents et les statistiques de l'image. L'en-tête FITS complet ainsi qu'une chaîne contenant les mots-clés non reconnus par Siril sont également disponibles.

  • Séquence Siril actuelle :

    • Données de pixels d'une image de séquence

    • Métadonnées de la séquence : toutes les métadonnées de la séquence actuellement chargée sont disponibles, à l'exception de certaines relatives aux détails du format de séquence qui sont abstraits par l'interface python, et de certaines relatives aux séries photométriques qui ne sont pas encore implémentées. Cela inclut les statistiques de chaque canal de chaque image, les données d'alignement des canaux pour lesquelles elles sont disponibles pour chaque image, et les données de qualité d'image pour chaque image.

    • Les profils ICC des images d'une séquence ne sont pas disponibles, car ils ne sont généralement pertinents qu'après l'étape de traitement de la séquence. Si un cas d'usage convaincant émerge, cela pourrait être révisé lors d'une mise à jour de l'API dans le cycle de développement 1.5.

    • Les chaînes HISTORY et d'en-tête FITS des images d'une séquence ne sont pas disponibles car elles ne sont pas considérées comme utiles pour les opérations de séquence, cependant les mots-clés d'une image de séquence sont disponibles via la méthode siril.get_seq_frame(), qui renvoie un objet FFit avec le membre keywords renseigné. Cela fournit suffisamment de métadonnées pour prendre en charge tout cas d'usage actuellement identifié.

  • Données de modélisation des étoiles. Lorsque des étoiles ont été détectées dans une image, les données de modélisation sont disponibles sous forme d'une liste de paramètres d'étoile pour chaque étoile détectée dans l'image.

Ces données sont stockées dans les structures de données clés FFit représentant la structure de données FITS de Siril, et Sequence représentant la structure de données de séquence de Siril.

# Get the current image
img = siril.get_image()
# Get its dimensions
siril.log(f"Current image dimensions: {img.shape[1]} x {img.shape[0]}, {img.shape[2]} channels.")

Notez que la forme de l'image est stockée dans un ordre python classique : shape[0] = hauteur, shape[1] = largeur, shape[2] = canaux. La largeur, la hauteur et les canaux sont également directement accessibles à l'aide des propriétés img.width, img.height et img.channels une fois que img = get_image() a été appelé.

Lorsque l'image actuelle est obtenue à l'aide de siril.get_image(), les données de pixels sont accessibles sous forme de tableau numpy, ce qui permet d'opérer directement sur les données de pixels.

import siril
import numpy as np
# Set up the interface as above
# ...

# Try to get the current image, do something to it and update it in Siril
with siril.image_lock():
   img = siril.get_image()
   img.data[:] *= 2
   siril.set_image_pixeldata(img.data)

except Exception as e:
   raise SirilException(f"Error changing pixel data: {e}")

Nous venons d'accéder au tableau de pixels et de multiplier chaque valeur de pixel par 2 ! Notez que nous devons appeler la fonction siril.set_image_pixeldata() pour renvoyer les données mises à jour à Siril. En utilisant siril.set_image_pixeldata(), vous pouvez même mettre à jour l'image vers une taille ou une forme différente, ou passer de données non signées 16 bits à des données flottantes 32 bits, ou inversement.

Astuce

Pour que siril.set_image_pixeldata() réussisse, vous devez acquérir un verrou sur l'image. Cela garantit que rien d'autre ne peut essayer de mettre à jour l'image en même temps que vous, et garantit également que vous ne pouvez pas mettre à jour l'image pendant qu'autre chose est déjà en train de le faire. Notez que l'exemple ci-dessus utilise le gestionnaire de contexte siril.image_lock() avant de récupérer l'image depuis Siril, et pas seulement avant de la mettre à jour. Cela garantit que l'image reste verrouillée pendant toute la durée de son traitement, jusqu'à ce qu'elle soit renvoyée à Siril et que le verrou soit enfin libéré.

De manière similaire, vous pouvez accéder aux statistiques de l'image, aux informations de l'en-tête FITS, à la profondeur de bits, etc. Vous pouvez également accéder aux informations de la séquence, par exemple si la n-ième image d'une séquence est incluse, quelles sont ses statistiques, etc.

Installation de modules python

Vous avez peut-être remarqué que nous utilisons NumPy dans les exemples précédents. C'est une dépendance du module siril et elle sera récupérée lors de la configuration initiale du venv. D'autres modules python peuvent être importés à l'aide de la commande standard import, par exemple import astropy as ap. Cependant, pour faciliter l'assurance que les dépendances sont installées si un utilisateur ne les a pas déjà, le module fournit également la méthode ensure_installed(). Elle s'utilise comme suit :

s.ensure_installed("astropy")
import astropy

(ou, pour un autre exemple,

s.ensure_installed("tifffile")
import tifffile

Une vérification est d'abord effectuée pour essayer d'importer le module (dans ce cas, astropy ou tifffile). Si le module n'est pas disponible pour l'importation, une tentative d'installation est effectuée. Si l'installation échoue, une exception est levée et le script s'arrête.

Astuce

Si un module nécessite une installation, cela peut prendre un peu de temps, mais le délai ne se produit que lors de la première exécution d'un script. Lors des exécutions suivantes, le modèle est déjà installé, donc la vérification ensure_installed() est presque instantanée. Un message dans le journal informe l'utilisateur qu'une installation de module est en cours.

Si la vérification réussit, le module peut être importé normalement à l'aide de import.

Astuce

Tous les autres modules non essentiels, à l'exception de numpy, devraient être vérifiés avec ensure_installed() car cela automatise le processus d'installation pour les utilisateurs qui n'ont pas encore les modules requis installés.

Avertissement

Tous les scripts Python de Siril partagent le même venv. Lors de l'importation de modules, il est important d'éviter de trop contraindre les exigences de version afin d'éviter les conflits entre les modules requis par différents scripts. Seules les contraintes de version « >= » devraient être utilisées, jamais « == » ou « <= ».

import sirilpy as s
s.ensure_installed("astropy")
import astropy as ap

Cela récupérera également automatiquement toutes les dépendances d'astropy.

Usage de module externe

Astuce

Le type d'objet siril.FFit n'est pas le même que astropy.io.fits. Alors qu'astropy.io.fits fournit une interface générale basée sur des fichiers pour tous les fichiers FITS, siril.FFit fournit une interface vers la structure de données que Siril utilise pour représenter les images FITS. Les deux ne sont pas directement interchangeables ! Chacune des deux méthodes peut être utilisée pour obtenir les données de pixels sous forme de tableau NumPy.

Que vous obteniez les données de pixels directement à partir de l'objet siril.FFit ou à l'aide d'astropy.io.fits, des modules tels qu'astropy, photutils et matplotlib fournissent les briques de base pour un vaste éventail d'analyses d'images, notamment la détection de sources, la segmentation d'images, la déconfusion de sources et la visualisation, et l'écosystème des modules python offre des possibilités illimitées.

import sirilpy as s
s.ensure_installed("astropy")
import astropy
from astropy.io import fits
with fits.open("filename.fit", mode='update') as image:
   if isinstance(image[0].data, np.ndarray):
      image[0].data *= 2

Cela ressemble beaucoup à notre dernier exemple - nous nous contentons de multiplier les données de pixels par 2 - mais nous avons maintenant utilisé astropy pour l'ouvrir directement à partir d'un fichier FITS.

Référence de l'API

Notez que l'API est très récente. Bien que nous ferons tout notre possible pour éviter les changements cassant les scripts dans l'API publiée avec la 1.4.0 tout au long de la série stable 1.4, certaines parties de l'API pourront évoluer au cours du cycle de développement 1.5.

Informations essentielles sur les scripts Python à l'intention des utilisateurs

Obtenir des scripts

Les utilisateurs finaux doivent veiller à se procurer des scripts auprès de sources fiables.

  • Quelques scripts d'une importance fondamentale sont fournis avec le package principal de Siril et se trouvent dans le répertoire de données du système. Ils ont fait l'objet des mêmes tests que le reste de Siril, et l'équipe de développement traitera les rapports de bogues concernant ces scripts exactement de la même manière que ceux concernant n'importe quelle autre partie de 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.

  • Les auteurs de scripts peuvent choisir de distribuer leurs scripts de manière indépendante, comme cela a été fait par le passé. C'est tout à fait acceptable : les scripts peuvent être téléchargés et ajoutés à un répertoire de scripts ou exécutés via l'éditeur de script depuis n'importe où sur le système de fichiers. Dans ce cas, l'équipe Siril n'a absolument rien à voir avec les scripts et ne peut même pas vous assurer qu'ils ne causeront aucun tort, alors assurez-vous de faire confiance à l'auteur.

  • Siril ne prend pas en charge la vérification automatique des scripts signés. En effet, la signature de script peut donner un faux sentiment de sécurité (« le script est signé, donc il ne peut rien faire de mal »). C'est faux : une signature de script indique seulement que le script a été signé par une personne particulière et n'a pas été modifié depuis. En d'autres termes, elle vérifie l'origine d'un script, mais ne dit rien sur son bon fonctionnement ou sa sécurité. Un script signé et vérifié pourrait quand même détruire vos données si c'est ce pour quoi il a été écrit ! Dans l'implémentation actuelle du scripting Python, la majorité des scripts sont distribués via le dépôt centralisé de scripts, auquel cas l'origine est connue et les scripts ont été soumis à un niveau de base de contrôle par l'équipe de développement avant d'être fusionnés. Certains scripts peuvent être distribués via d'autres canaux et téléchargés manuellement, et rien n'empêche un auteur de fournir une somme sha256 ou une signature .gpg pour les scripts distribués de cette manière - vous devrez simplement les vérifier manuellement après le téléchargement.

Résolution des problèmes courants

Le système de script python de Siril est assez complexe : beaucoup de choses se passent en coulisses, et tout cela est coordonné par une utilisation astucieuse d'un venv Python (« environnement virtuel »), qui garantit que le python utilisé par Siril est séparé de l'installation Python du système et potentiellement d'autres venvs pouvant être utilisés par d'autres logiciels. Cependant, il y a quelques points à connaître :

  • les venvs sont liés à une version spécifique de python. Cela signifie que si votre système passe (par exemple) de Python-3.12 à Python-3.13, le venv ne pointera plus vers le bon programme Python ou les bonnes bibliothèques de bytecode pour les modules compilés. Lorsque vous passez à une nouvelle version de Python, vous devez réinitialiser le venv de Siril.

  • les dépendances des scripts sont contrôlées à l'aide de pip et de l'archive pypi. C'est très efficace mais pas infaillible à 100 %, et dans de rares cas, vous pourriez constater qu'un problème de dépendance est survenu, causant un problème quelconque. Si vous rencontrez un problème inexpliqué avec un script que d'autres ne rencontrent pas, réinitialiser le venv peut le résoudre. (Et si vous trouvez une combinaison de scripts pouvant reproduire de manière répétée un problème de dépendance de ce type, veuillez le signaler comme un ticket sur le site gitlab de siril-scripts, car cela nous aidera à améliorer les conseils donnés aux auteurs de scripts.)

Réinitialiser le venv est facile : cliquez sur l'élément de menu Obtenir des scripts dans le menu Scripts et faites défiler jusqu'en bas. Vous y trouverez un bouton « Réinitialiser le venv » : cliquer dessus réinitialisera le venv et en créera un nouveau. Après cela, la prochaine fois que vous exécuterez un script, il devra réinstaller ses dépendances, donc le premier démarrage sera un peu plus lent que d'habitude (selon la vitesse du réseau et si l'un des modules requis est déjà mis en cache localement).

Informations essentielles sur les scripts Python à l'intention des auteurs

Nous accueillons tous les auteurs de scripts qui souhaitent écrire des scripts pour Siril. Cependant, soutenir Siril, bien qu'amusant, prend beaucoup de temps, et nous n'avons ni le temps ni l'envie de soutenir le travail d'autres personnes en plus du logiciel principal de Siril. Il existe donc quelques directives pour garantir que la répartition des responsabilités soit claire.

  • Tous les scripts doivent afficher le nom ou le pseudonyme de l'auteur, ainsi qu'un moyen de contact (site web, chaîne YouTube, forum, etc.) où il peut être joint pour des commentaires ou des rapports de bogues. Pour les auteurs publiant de manière indépendante, il s'agit bien sûr d'une recommandation, mais pour les auteurs souhaitant publier leurs scripts via le dépôt siril-scripts, cela est obligatoire. Les scripts ne seront pas acceptés à moins que ces détails ne soient inclus.

  • Seuls les scripts open source seront acceptés dans le dépôt de scripts Siril. Les scripts à source fermée (y compris ceux comportant un wrapper de code source qui appelle un programme à source fermée) doivent être publiés de manière indépendante.

  • Les auteurs doivent également respecter les consignes de programmation des scripts figurant sur la page de l'API. Ces consignes garantissent que les scripts peuvent être utilisés par les utilisateurs finaux avec un minimum de difficultés.

Normes de codage du dépôt Siril-Scripts

En tant qu'auteur de scripts, vous pouvez écrire tous les scripts que vous voulez pour votre propre usage. Cependant, pour que des scripts soient publiés dans le dépôt siril-scripts, nous devons exiger certaines normes de codage afin de garantir qu'ils fonctionnent avec les paquets Siril standard sur chacun des trois systèmes d'exploitation pris en charge. Les exigences sont :

  • Les scripts doivent fonctionner avec des versions de Python >= 3.9. Cette version correspond à la version Python la plus ancienne de nos paquets binaires, et sera ajustée au fil du temps pour correspondre aux paquets.

  • Les scripts doivent être des scripts à fichier unique. Le dépôt a été conçu à l'origine pour les anciens scripts .SSF, et l'hypothèse d'un fichier par script demeure. Nous comprenons qu'il peut être bénéfique pour la lisibilité du code de développer des programmes python complexes en les divisant en plusieurs fichiers. C'est tout à fait acceptable lorsque vous travaillez localement, cependant les multiples fichiers devraient être combinés en un seul fichier pour la soumission au dépôt de scripts.

  • Si vous souhaitez implémenter une interface graphique dans votre script, vous devriez utiliser la boîte à outils pyQt6.

    • pyQt6 utilise le célèbre framework Qt et il a désormais été vérifié qu'il s'installe correctement depuis pypi sur toutes les plateformes prises en charge. Qt6 est bien plus rapide que Tkinter pour les scripts qui doivent eux-mêmes effectuer d'importantes manipulations graphiques, telles que des aperçus avec panoramique et zoom, et il dispose d'une agréable application de conception d'interface graphique disponible dans Qt Creator.

    Avertissement

    tkinter est désormais déprécié : les nouveaux scripts Siril ne devraient pas l'utiliser et devraient plutôt être écrits avec pyQt6. Bien que tkinter soit un module Python de base, il est dépassé, très lent, et présente des problèmes avec les bureaux Wayland sous Linux. Les scripts tkinter continueront de fonctionner tout au long de la série stable 1.4, mais il y a une quantité considérable de complexité ajoutée dans le code sirilpy pour prendre en charge tkinter. Étant donné que pyQt6 fournit une bien meilleure alternative dont il a maintenant été confirmé qu'elle fonctionne sur toutes les plateformes prises en charge par Siril, le code de support de tkinter (les sous-modules tksiril et tkfilebrowser) sera retiré au cours du cycle de développement 1.5 et sera supprimé avant la 1.6.0.

    Avertissement

    Les scripts utilisant des interfaces graphiques GTK ne seront pas acceptés dans le dépôt de scripts. Ce framework d'interface graphique nécessite des dépendances système importantes. Bien que Siril lui-même soit codé en GTK, malheureusement les paquets python gi nécessaires pour l'utiliser dans des scripts python sont cassés sous Windows et nous ne pouvons pas les inclure. Si vous le souhaitez, vous pouvez installer vous-même les dépendances et écrire des scripts utilisant GTK, et ils pourront fonctionner correctement sur votre propre machine, mais ce n'est pas pris en charge. Nous ne fournirons pas d'aide pour faire fonctionner les paquets précompilés avec des paquets non pris en charge ; si vous êtes déterminé à essayer cela, vous devrez probablement compiler Siril à partir des sources.

  • Évitez les spécifications de version d'importation qui définissent une version de paquet à l'aide de « < », « <= » ou « == ». Ces contraintes entraîneront des conflits entre les scripts, qui partagent tous le même venv. Spécifier une version de paquet à l'aide de « >= » est acceptable. N'oubliez pas d'utiliser sirilpy.ensure_installed() avant d'importer des dépendances de modules python non essentiels, afin d'automatiser leur processus d'installation.

  • Évitez d'importer des paquets nécessitant des paquets système (c'est-à-dire ceux qui ne peuvent pas être installés à l'aide de python3 -m pip install)

  • Idéalement, vérifiez que les importations de votre script s'installeront sur les trois systèmes d'exploitation cibles. Si ce n'est pas le cas, l'équipe de développement les vérifiera après soumission, et vous devrez corriger les problèmes qui surviennent.

Modules fonctionnels connus

Une liste de paquets « connus pour fonctionner », que nous avons vérifiés comme s'important sans problème, avec toutes leurs dépendances, sur tous les systèmes d'exploitation cibles, est fournie ci-dessous :

  • astropy

  • astropy-healpix

  • astroquery

  • ccdproc

  • GaiaXPy

  • matplotlib

  • numpy

  • opencv-python

  • pandas

  • photutils

  • pillow

  • pyfftw

  • pygaia

  • pyQt6

  • scipy

  • tk

  • ttkthemes

Astuce

Pour les scripts de machine learning / IA, onnxruntime est très fortement recommandé. Il est multiplateforme, indépendant du matériel, et se replie élégamment sur le support CPU si un GPU ou les bibliothèques système du GPU ne sont pas disponibles. Le sous-module sirilpy.utility fournit une classe ONNXHelper pour garantir l'installation de la version d'onnxruntime correcte selon le matériel et le système d'exploitation.

Module d'apprentissage autonome (machine learning)

Divers modules de machine learning existent et peuvent être utilisés pour écrire des scripts « IA ». Cependant, l'état du support du calcul hétérogène (c'est-à-dire l'utilisation du GPU) est inégal et nécessite souvent l'installation de bibliothèques système telles que CUDA ou ROCm. Les modules suivants sont considérés comme essentiels pour l'accélération GPU et sont soit pris en charge par des classes d'aide, soit disposent de classes d'aide en cours de développement.

  • onnxruntime - utilisé dans GraXpert et dans le script AberrationRemover.py de Riccardo, ce paquet est disponible pour tous les systèmes d'exploitation cibles. Il existe différents backends pour prendre en charge différents GPU, mais dans certains cas ceux-ci sont fragiles. Une classe d'aide ONNXHelper() est disponible pour aider à identifier et installer le paquet optimal, ainsi qu'à garantir un repli correct vers le CPU. Notez qu'actuellement sous Windows, l'ONNXHelper sélectionnera le runtime DirectML pour tous les GPU pris en charge. Même si en théorie le paquet onnxruntime-gpu basé sur CUDA pourrait être un peu plus rapide, il dépend malheureusement fortement de bibliothèques système correctement installées et configurées, et l'installation est considérée comme trop fragile pour être fiable dans le type d'environnement python automatisé utilisé par Siril. Si les utilisateurs souhaitent l'utiliser et sont confiants de pouvoir le faire fonctionner sur leur système, ils peuvent l'installer manuellement à l'aide de sirilpy.ensure_installed("onnxruntime-gpu"), mais ceci n'est pas pris en charge et les problèmes associés seront clos.

  • torch - c'est un poids lourd parmi les frameworks de ML, et alors que le support GPU était autrefois très largement basé sur CUDA, il élargit désormais sa couverture : le support des GPU NVidia et Apple Silicon est bon, et le support des GPU AMD (via ROCm) et Intel est en développement (ROCm serait suffisamment stable pour être utilisé sous Linux, mais pas encore sous Windows). Malheureusement, torch présente quelques problèmes de dépendances (il est excessivement strict sur la version de CuDNN qu'il requiert), ce qui pose des problèmes lorsqu'il est utilisé dans le même venv que d'autres modules (y compris jax - voir ci-dessous) qui font intervenir le paquet nvidia-cudnn. Une classe TorchHelper() est disponible et gère cela en installant d'abord torch, puis en le réinstallant avec l'option --no-deps, ce qui l'empêche de se plaindre si un autre paquet met à jour les dépendances vers un numéro de version supérieur. C'est vraiment peu élégant et il est regrettable que ce soit nécessaire, mais cela fonctionne. Si vous envisagez d'utiliser les versions CUDA à la fois de torch et de jax, il est préférable d'installer torch d'abord, puis jax.

  • jax - ce n'est pas un framework de ML dédié en tant que tel, mais un moyen de décharger le calcul vers le GPU. jax fournit un module en grande partie compatible avec numpy appelé jax.numpy, qui peut considérablement accélérer de nombreuses opérations de traitement de tableaux mathématiques en les déchargeant vers le GPU, et fournit également des fonctions de calcul de gradient que numpy n'offre pas. En gardant à l'esprit que la partie lente du traitement GPU est le transfert de données entre la mémoire système et la mémoire GPU, jax fournit un compilateur jit pour précompiler ses charges de travail déchargées, mais cela nécessite tout de même une conception soignée de l'algorithme pour conserver les données sur le GPU aussi longtemps que possible, ne renvoyant que le résultat final. Jax dispose d'un bon support GPU sous Linux mais seulement d'un support CPU sous Apple et Windows, bien qu'un support Metal expérimental et un support GPU Windows soient en cours de développement. Ceci n'est donc pas recommandé pour des scripts réels à l'heure actuelle, mais est mis en avant comme un framework intéressant pour développer dans un futur (espérons-le) proche, lorsque son support s'élargira. Une classe JaxHelper() est en cours de développement, qui aidera à sélectionner le bon paquet jax à installer et à tester pour confirmer qu'il fonctionne correctement.

  • Dépendances Notez que torch et jax utilisent tous deux des paquets pypi de bibliothèques GPU, de sorte que leur installation peut entraîner de très longues chaînes de dépendances - l'ensemble complet des paquets NVIDIA (CUDA, CuDNN, etc.) pèse environ 1 Go. Ainsi, lorsque vous les utilisez dans des scripts, veillez à avertir les utilisateurs qu'ils peuvent subir un téléchargement volumineux et potentiellement lent lors de la première utilisation !

Modules écartés

Évitez complètement d'utiliser les modules suivants, car ils sont connus pour causer des problèmes sur un ou plusieurs systèmes d'exploitation :

  • healpy (ne fonctionne pas sous Windows ; on peut utiliser astropy_healpix à la place)

Modules présentant des dépendances système

Les modules suivants nécessitent l'installation de paquets système qui ne peuvent pas être automatisés à l'aide de pip, et ne devraient donc pas être directement utilisés dans les scripts Siril :

  • gi (pygtk etc - nécessite l'installation d'un paquet système)

Avertissement

Nous ne pouvons pas assez insister sur le fait que de tels paquets ne sont pas pris en charge. S'ils fonctionnent pour vous localement, c'est un bonus de chance pour vous. Ils ne fonctionneront généralement avec aucun des paquets binaires précompilés (AppImage, flatpak, Windows, MacOS). Ce type de paquets n'est spécifiquement pas pris en charge et nous ne fournirons pas d'aide pour les faire fonctionner. Tous les tickets relatifs à ce type de question seront clos comme doublon de #1527.

Oui, nous savons que c'est dommage. En fait, nous aurions aimé utiliser GTK comme boîte à outils pour écrire des scripts sirilpy, mais malheureusement le wheel binaire est cassé sous Windows depuis longtemps et ne montre aucun signe d'être réparé. Nous ne pouvons pas publier une fonctionnalité essentielle qui ne fonctionne pas sur l'un des systèmes d'exploitation cibles.

Contournement pour les modules avec dépendances système

Il peut néanmoins être possible d'écrire des projets utilisant ce type de paquets, mais vous devrez les empaqueter avec leurs dépendances et les distribuer indépendamment de Siril ou du dépôt de scripts, et le module sirilpy peut toujours être utilisé pour réaliser l'intégration avec Siril. Si vous le souhaitez, vous pouvez fournir un script wrapper pouvant être distribué dans le dépôt de scripts et qui se contente d'initialiser votre programme principal. Nous n'apporterons aucune aide à ce sujet. Comme indiqué ci-dessus, l'utilisation de ces paquets dans les scripts Siril n'est pas prise en charge.

Scripts à code source fermé

L'interface python exécutera volontiers des fichiers .pyc précompilés. Siril est un logiciel libre et open source, et nous n'encourageons donc pas le développement de scripts à source fermée, mais nous ne l'interdisons pas non plus. En pratique nous ne le pouvons pas, car même les interprétations les plus strictes de la GNU Public License permettent d'écrire une couche open source qui s'intercale entre Siril et une application à source fermée. De plus, nous sommes favorables à la liberté, et bien que nous choisissions de publier Siril sous licence GPL pour offrir la liberté à nos utilisateurs, nous respectons également la liberté des développeurs de choisir comment ils publient leur propre travail.

Il y a aussi un peu d'histoire ici : Siril fournit depuis la 1.2.0 une interface intégrée vers Starnet, cependant Starnet était à l'origine open source et n'a fermé ses portes que plus tard.

Cependant, si un auteur choisit de publier un script Siril sous forme de .pyc à source fermée, il doit alors s'occuper lui-même de toutes les questions liées à sa distribution : comme nous ne sommes pas en mesure d'inspecter le code nous-mêmes pour effectuer ne serait-ce que les vérifications les plus superficielles, nous ne pouvons pas l'héberger dans le dépôt git Siril-scripts. Et bien sûr, la responsabilité du support de tels produits relève entièrement de l'auteur - l'équipe Siril n'offrira aucun conseil sur de tels produits.

Notez que les scripts doivent être compilés séparément pour chaque version de python : helloworld.py serait compilé avec python3 -m compileall helloworld.py, ce qui générerait helloworld.cpython-<version>.pyc, où <version> serait 312 pour Python 3.12, 313 pour Python 3.13 et ainsi de suite selon la version de python utilisée pour compiler le script. C'est un inconvénient inhérent aux scripts à source fermée.

Editeur de scripts

Siril contient un éditeur de scripts, accessible via le menu Scripts. Celui-ci fournit un éditeur de code riche en fonctionnalités adapté à l'écriture de fichiers de script Siril comme de scripts Python. Le thème (clair / sombre) de l'éditeur de script suit celui défini dans la boîte de dialogue principale Préférences. La fenêtre principale de l'éditeur est présentée ci-dessous :

éditeur de script

Pour la plupart des fonctionnalités, des raccourcis existent, aussi standardisés que possible.

Menu Fichier

Le menu Fichier offre les fonctionnalités habituelles :

  • Nouveau : commence un nouveau fichier. S'il y a du texte non enregistré dans le tampon, une boîte de dialogue de confirmation sera présentée pour donner à l'utilisateur la possibilité d'enregistrer son travail précédent.

  • Ouvrir : ouvre un fichier depuis le disque. S'il y a du texte non enregistré dans le tampon, une boîte de dialogue de confirmation sera présentée pour donner à l'utilisateur la possibilité d'enregistrer son travail précédent.

  • Fichiers récents : fournit un accès rapide pour ouvrir les fichiers récents.

  • Enregistrer : enregistre le fichier actuel sous son nom de fichier existant. Si le fichier n'est pas encore enregistré, cela se comporte de la même manière qu'Enregistrer sous, en demandant un nom de fichier.

  • Enregistrer sous : enregistre le fichier actuel, en demandant le nom de fichier avec lequel l'enregistrer.

  • Fermer : ferme le fichier et la fenêtre de l'éditeur de script. S'il y a du texte non enregistré dans le tampon, une boîte de dialogue sera présentée pour donner à l'utilisateur la possibilité d'enregistrer son travail.

Les fichiers non enregistrés sont indiqués par un astérisque (*) à côté du nom de fichier dans la barre de titre. Lorsque les modifications sont enregistrées, l'astérisque disparaît.

Menu édition

Le menu Édition propose les fonctionnalités suivantes :

  • Annuler : annule la modification la plus récente du script. L'éditeur de script dispose d'un tampon d'annulation/rétablissement illimité.

  • Rétablir : rétabli l'opération la plus récemment annulée.

  • Couper : coupe la sélection actuelle vers le presse-papiers. Si aucune sélection n'est faite, la ligne actuelle entière est coupée.

  • Copier : copie la sélection actuelle vers le presse-papiers.

  • Coller : colle le contenu actuel du presse-papiers à la position du curseur.

  • Rechercher : présente la superposition de recherche qui fournit une capacité de recherche active. L'éditeur défilera jusqu'à la première occurrence du terme recherché au fur et à mesure de la saisie. Toutes les occurrences sont surlignées dans la vue de l'éditeur et dans la mini-carte, si elle est activée.

Menu Script

Le menu du script offre les fonctionnalités suivantes :

  • Exécuter : exécute le script actuel. Notez que ceci respecte la sélection actuelle du type de script (Fichier de script Siril / Script Python), et celle-ci doit être correcte pour le script que vous modifiez. Le type de script est automatiquement défini en fonction de l'extension du fichier lors du chargement d'un fichier, mais vous devez le définir ici si vous n'avez pas encore enregistré votre script. Au démarrage, il est par défaut réglé sur Script Python. Notez qu'en raison d'un conflit de raccourci dans certains environnements de bureau, en plus du raccourci indiqué F5, Ctrl-R fonctionne également pour exécuter le script actuel.

  • Scripts Python : définit le mode de script actuel sur Scripts Python. Cela affecte la coloration syntaxique ainsi que la manière dont le script est exécuté.

  • Fichiers de script Siril : définit le mode de script actuel sur Fichiers de script Siril. Cela affecte la coloration syntaxique ainsi que la manière dont le script est exécuté.

  • Activer les arguments de test : affiche un champ sous la vue principale du script. Celui-ci peut être utilisé pour saisir des arguments qui seront passés au script lors de son exécution depuis l'éditeur. Les scripts Python peuvent accepter des arguments pour définir des paramètres : cela fournit une alternative à l'utilisation d'une interface graphique pour définir des paramètres. Même si une interface graphique est fournie dans un script, la possibilité de passer des arguments signifie qu'il peut être utilisé comme une commande Siril via la commande pyscript, et peut donc lui-même être utilisé depuis d'autres scripts.

  • Activer le mode de débogage Python : ce bouton bascule modifie le comportement du module sirilpy pour prendre en charge le débogage. Lorsque le SirilInterface est créé au début du script, une boîte d'information modale apparaîtra montrant l'ID de processus de l'interpréteur python, qui peut être utilisé pour connecter un débogueur. De plus, tous les délais d'attente de l'interface seront réglés sur None, pour permettre une inspection prolongée de l'état d'un script en cours d'exécution.

    Notez que les arguments de test n'ont aucun effet sur les scripts de type Fichier de script Siril, car ceux-ci ne sont pas capables de gérer des arguments.

Préférences

Le menu des préférences propose les options suivantes :

  • Mise en évidence de la syntaxe : lorsque cette option est activée, Siril utilisera une coloration syntaxique adaptée au langage pour mettre en évidence des aspects de votre script.

  • Activer l'indicateur de marge droite : lorsque cette option est activée, Siril affichera un indicateur de marge droite à un numéro de colonne défini. Ceci est utile pour aider à éviter des lignes de code excessivement longues et maintenir la lisibilité.

  • Position de la marge droite : ceci présentera une petite boîte de dialogue permettant à l'utilisateur de définir le numéro de colonne de l'indicateur de marge droite évoqué ci-dessus. La valeur par défaut est 80.

  • Activer la correspondance des parenthèses : lorsque cette option est activée, si le curseur se trouve sur une parenthèse, l'éditeur mettra en évidence la parenthèse correspondante. Cela peut être utile pour éviter les erreurs de correspondance de parenthèses.

  • Afficher les numéros de ligne : lorsque cette option est activée, les numéros de ligne sont affichés à gauche de la vue de l'éditeur. Cela peut aider au débogage et à la navigation dans le code.

  • Afficher les marqueurs de ligne : lorsque cette option est activée, des marqueurs de ligne sont affichés à gauche de la vue de l'éditeur. Aucune fonctionnalité n'utilise actuellement les marqueurs de ligne, mais la possibilité de les afficher est fournie pour prendre en charge de futurs développements.

  • Surligner la ligne en cours : lorsque cette option est activée, la ligne actuelle est surlignée dans la vue de l'éditeur.

  • Activer l'indentation automatique : lorsque cette option est activée, en appuyant sur Entrée, la nouvelle ligne commencera au même niveau d'indentation que la ligne précédente.

  • Indentation sur la tabulation : lorsque cette option est activée, appuyer sur tabulation avec une sélection couvrant plusieurs lignes indentera toutes les lignes sélectionnées d'un niveau, et appuyer sur maj-tabulation les désindentera d'un niveau.

  • Activer le retour arrière intelligent : lorsque cette option est activée, appuyer sur retour arrière avec des espaces à gauche du curseur supprimera les espaces jusqu'au niveau d'indentation précédent.

  • Début / Fin intelligents : lorsque cette option est activée, Début et Fin déplaceront le curseur respectivement vers le premier ou le dernier caractère non-espace de la ligne, plutôt que vers le tout premier ou tout dernier caractère de la ligne.

  • Afficher les espaces et les tabulations : lorsque cette option est sélectionnée, les espaces et les tabulations seront affichés avec des caractères visibles (points centrés pour les espaces, flèches orientées vers la droite pour les tabulations).

  • Afficher les nouvelles lignes : lorsque cette option est sélectionnée, les retours à la ligne seront affichés avec des caractères visibles (flèches courbées vers le bas et la gauche).

  • Afficher la mini-carte : lorsque cette option est sélectionnée, une mini-carte sera affichée sur le côté de la vue de l'éditeur, facilitant la navigation et la localisation des occurrences de Rechercher.

Aide

Le menu d'aide fournit une aide sur l'API pour les fichiers de script Siril comme pour les scripts Python.

  • Référence de l'API Python : ceci ouvre la page de l'API Python du manuel en ligne dans le navigateur par défaut.

  • Référence des commandes : ceci ouvre la page de référence des commandes du manuel en ligne dans le navigateur par défaut, qui constitue essentiellement l'API des fichiers de script Siril.

Exemple de scripts Python

Cette section met en avant des exemples de scripts Python. Ce sont des exemples simples destinés à fournir une introduction à l'API, et ils sont expliqués avec des commentaires.

Pour un exemple plus complet de script utilisant une interface TKinter afin de fournir une interface complète à un programme externe, voir les scripts CosmicClarity_denoise.py et CosmicClarity_sharpen.py disponibles dans le dépôt de scripts Siril.

menu script

Menu script

Hello, Siril!

Il est de tradition de commencer avec un exemple Hello, World!, donc voici le "Hello, Siril!"

import sirilpy as s
from sirilpy import SirilConnectionError

siril = s.SirilInterface()

try:
   siril.connect()
   siril.log("Hello, Siril!")

except SirilConnectionError as e:
   print(f"An error occurred: {e}")

C'est tout. Tous les scripts Python Siril doivent importer le module siril : celui-ci est fourni automatiquement par Siril et ne nécessite aucune installation.

Cela permet la connexion à Siril via la classe SirilInterface et donne accès aux méthodes de Siril : dans ce cas, la fonction log() effectue un petit ajustement (ajout d'un caractère de retour à la ligne \n) et appelle la fonction interne siril_log_message() pour afficher le résultat dans l'onglet journal de Siril. Notez que log() peut prendre un argument facultatif spécifiant la couleur : si vous vouliez que « Hello, Siril! » s'affiche en vert, vous modifieriez la ligne en siril.log("Hello, Siril!", s.LogColor.GREEN).

Notez qu'il n'est généralement pas nécessaire d'appeler la méthode siril.disconnect() car cela n'est pas vraiment indispensable : à la fin d'un script, cette méthode sera appelée automatiquement dans un gestionnaire de fin.

Notez également que, bien que vous puissiez initialiser plusieurs objets SirilInterface(), un script ne peut se connecter que via un seul à la fois (bien que plusieurs scripts puissent être connectés à Siril simultanément). Il n'y a généralement pas besoin de créer plus d'un SirilInterface().

Hello, astropy!

Ce script montre comment enregistrer une copie de travail temporaire, l'ouvrir à l'aide de la fonction astropy.io.fits, la modifier avant d'enregistrer le fichier et le rouvrir dans Siril.

import sirilpy as s
import tempfile
import os
import gc
import numpy as np # numpy is a dependency of the siril module and
# will always be available, so no need to use s.ensure_installed() here

s.ensure_installed("astropy")
import astropy
from astropy.io import fits
siril = s.SirilInterface()
try:
   siril.connect():
   print("Connected successfully!")
except SirilConnectionError as e:
   print(f"Connection failed: {e}")
   quit()

def hello_astropy():
   siril.log("Starting the process...")

   temp_filename = None
   try:
      # Create a temporary file
      with tempfile.NamedTemporaryFile(suffix=".fits", delete=False) as temp_file:
            temp_filename = temp_file.name
            siril.log(f"Temporary file created: {temp_filename}")

      # Save current file
      siril.cmd("save", temp_filename)
      siril.log(f"FITS file saved: {temp_filename}")

      # Open and modify FITS file using Astropy
      with fits.open(temp_filename, mode='update') as image:
            siril.log("Opened FITS file with Astropy")

            # Modify the FITS file data
            if isinstance(image[0].data, np.ndarray):
               image[0].data *= 2
               siril.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 written
            siril.log(f"Changes saved to FITS file: {temp_filename}")

      # Load back into Siril
      siril.cmd("load", temp_filename)
      siril.log(f"FITS file loaded: {temp_filename}")

      siril.log("Process completed successfully")

   except Exception as e:
      siril.log(f"An error occurred: {str(e)}")
      raise  # Optionally re-raise if needed for further handling

   finally:
      # Clean up: delete the temporary file
      if temp_filename and os.path.exists(temp_filename):
            try:
               os.remove(temp_filename)
               siril.log(f"Temporary file deleted: {temp_filename}")
            except OSError as e:
               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 function
if __name__ == "__main__":
   hello_astropy()

Notez l'utilisation de la gestion des erreurs dans cet exemple, à l'aide des blocs try : et except : , ainsi que les opérations de nettoyage dans le bloc finally : .

Données de pixels et métadonnées

Le module Python sirilpy offre un accès direct à un large éventail de données.

import sirilpy as s
import numpy as np
siril = s.SirilInterface()
try:
   siril.connect():
   print("Connected successfully!")
except SirilConnectionError as e:
   print(f"Connection failed: {e}")
   quit()

def siril_module_example():
   try:
      # Lock the main image to prevent anything else altering it while we
      # are working on it
      with siril.image_lock():
         # Get the global fits object
         fit = siril.get_image()

         siril.log(f"The value of the first pixel is: {fit.data.flat[0]}")
         fit.data[:] *= 2
         siril.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.history
      siril.log(f"History: {history}")

   except AttributeError as e:
      siril.log(f"Error: {e}")
      fit = None  # Ensure the FFit object is released

# Run the function
if __name__ == "__main__":
   siril_module_example()

Comme précédemment, nous importons le module siril : nous importons maintenant également numpy, que nous utiliserons pour opérer sur les données de pixels de l'image chargée dans Siril. Notez qu'il n'est pas nécessaire d'utiliser la méthode import_or_install(), car numpy est une dépendance du module Python siril et aura été préinstallé dans le venv.

Nous allons maintenant présenter différentes façons d'interagir avec les données d'image et les métadonnées :

# Get the global fits object
with siril.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[:] *= 2
   siril.set_image_pixeldata(fit.data)
   siril.log(f"The value of the first pixel is now: {fit.data.flat[0]}")

Nous récupérons l'image actuelle à l'aide de siril.get_image()

Astuce

Notez que siril.fits n'est absolument pas la même chose que astropy.io.fits. Alors qu'astropy.io.fits fournit une interface polyvalente pour tous les fichiers FITS, siril.fits fournit une interface correspondant à la structure de données fits utilisée dans Siril.

Nous accédons ensuite aux données des pixels sous la forme d'un tableau NumPy array et effectuons des opérations sur ce tableau afin de modifier les données de l'image. Dans ce cas précis, nous multiplions toutes les valeurs des pixels par 2.

Une fois que nous avons terminé de modifier l'image, nous appelons siril.set_image_pixeldata(fit.data) pour mettre à jour les données de pixels dans Siril et déclencher le redessin de l'interface graphique de Siril afin d'afficher l'image mise à jour. Au passage, nous utilisons siril.log() pour mettre en évidence la modification du premier pixel.

Ensuite, nous affichons le type de données et la forme du tableau :

siril.log(f"Data type: {fit.data.dtype}")
siril.log(f"Array shape: {fit.data.shape}")

Nous allons maintenant vous montrer comment accéder à l'historique des images. Celui-ci se présente sous la forme d'une liste d'en-têtes FITS HISTORY individuels, nous les regroupons donc et ajoutons des caractères de nouvelle ligne avant de les enregistrer.

history = fit.history
siril.log(f"History: {history}")

Tous les détails de l'API peuvent être obtenus en important le module Siril et en appelant la commande help(sirilpy), ou plus spécifiquement en appelant help() pour la partie particulière de l'API que vous souhaitez connaître, par exemple help(sirilpy.FFit).

Comme les doctsrtings ne sont pas traduisible, pour une traduction de l'aide de l'API vous devez consulter la page de l'API dans ce manuel en ligne.

sous-module siril.plot

Ce script montre comment utiliser le sous-module siril.plot pour créer un tracé simple avec trois séries. La première est un simple tracé x-y avec des lignes ; la deuxième est un tracé x-y avec des barres d'erreur ; et la troisième est un autre tracé x-y simple mais montre l'utilisation de tableaux numpy ainsi que la manière dont un objet SeriesData peut être créé et ajouté directement à l'objet PlotData à l'aide de add_series_obj.

import sirilpy as s
import numpy as np
siril = s.SirilInterface()
try:
   siril.connect()
except SirilConnectionError as e:
   print(f"Error: failed to connect to Siril: {e}")
   quit()

# Series data using lists of floats
plot_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 lists
siril.xy_plot(plot_data)

Modèles de scripts avec interface graphique GUIs

Les modèles suivants montrent comment créer des scripts avec un GUI. Le premier modèle est le plus simple et ne fournit qu'une interface graphique :

gui_template.py
  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
 12import os
 13import sys
 14import math
 15import tkinter as tk
 16from tkinter import ttk, filedialog, messagebox
 17import numpy as np
 18
 19import sirilpy as s
 20from sirilpy import tksiril, 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.
 30from ttkthemes import ThemedTk
 31# Add any additional imports here
 32
 33VERSION = "1.0.0"
 34
 35def template_algorithm(fit,
 36                       example_float_var,
 37                       example_bool_var,
 38                       example_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    """
 45    print(f"Argument: {example_float_var}")
 46    print(f"Bool var: {example_bool_var}")
 47    print(f"File path: {example_file_path_var}")
 48    return fit
 49
 50class TemplateScriptInterface:
 51    """ This class provides the GUI and related callbacks """
 52    def __init__(self, root):
 53        self.root = root
 54        self.root.title(f"Template Script Interface - v{VERSION}")
 55        self.root.resizable(False, False)
 56        self.style = tksiril.standard_style()
 57
 58        # Initialize Siril connection
 59        self.siril = s.SirilInterface()
 60
 61        try:
 62            self.siril.connect()
 63        except s.SirilConnectionError:
 64            self.siril.error_messagebox("Failed to connect to Siril")
 65            return
 66
 67        # Initial checks: example - check if an image is loaded
 68        if not self.siril.is_image_loaded():
 69            self.siril.error_messagebox("No image is loaded")
 70            return
 71
 72        # Check if the version of Siril is high enough
 73        try:
 74            self.siril.cmd("requires", "1.3.6")
 75        except s.CommandError:
 76            return
 77
 78        # Create the UI and match its theme to Siril
 79        self.create_widgets()
 80        tksiril.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.
 84    def _floor_value(self, value, decimals=2):
 85        """Floor a value to the specified number of decimal places"""
 86        factor = 10 ** decimals
 87        return math.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.
 92    def _update_example_float_variable_display(self, *args): # pylint: disable=unused-argument
 93        """Update the displayed template variable value with floor rounding"""
 94        value = self.example_float_var.get()
 95        rounded_value = self._floor_value(value)
 96        self.example_float_var_display_var.set(f"{rounded_value:.2f}")
 97
 98    def _browse_file(self):
 99        """
100        Use a TK filedialog to browse for a file. Note that this callback is
101        specific to the variable being updated; you might need to have several
102        similar callbacks if you have more than one file selection widget.
103        """
104        filename = filedialog.askopenfilename(
105            title="Select File",
106            initialdir=os.path.expanduser("~")
107        )
108        if filename:
109            self.example_file_path_var.set(filename)
110
111    def create_widgets(self):
112        """Create the GUI's widgets, connect signals etc. """
113        # Main frame with no padding
114        main_frame = ttk.Frame(self.root)
115        main_frame.pack(fill=tk.BOTH, expand=True, padx=0, pady=0)
116
117        # Title
118        title_label = ttk.Label(
119            main_frame,
120            text="Template Script",
121            style="Header.TLabel"
122        )
123        title_label.pack(pady=(0, 20))
124
125        # Parameters frame
126        params_frame = ttk.LabelFrame(main_frame, text="Parameters", padding=10)
127        params_frame.pack(fill=tk.X, padx=5, pady=5)
128
129        ############################################################
130        # Example control with an embedded variable in its own frame
131        ############################################################
132
133        template_variable_frame = ttk.Frame(params_frame)
134        template_variable_frame.pack(fill=tk.X, pady=5)
135
136        ttk.Label(template_variable_frame,
137                  text="Template example_float_var:").pack(side=tk.LEFT)
138
139        # Initialize variables with default values
140        self.example_float_var = tk.DoubleVar(self.root, value=1.0)
141        self.example_float_var_display_var = tk.StringVar(self.root, value="1.00")
142
143        # Add trace to update display when slider changes
144        self.example_float_var.trace_add("write",
145                                         self._update_example_float_variable_display)
146
147        example_float_var_scale = ttk.Scale(
148            template_variable_frame,
149            from_=0.0, # set your range minimum here
150            to=1.0,    # set your range maximum here
151            orient=tk.HORIZONTAL, # oriented horizontally
152            variable=self.example_float_var, # the tk variable the widget controls
153            length=200
154        )
155        example_float_var_scale.pack(side=tk.LEFT, padx=10, expand=True)
156        ttk.Label(
157            template_variable_frame,
158            textvariable=self.example_float_var_display_var, # var truncated to 2 d.p.
159            width=5,
160            style="Value.TLabel"
161        ).pack(side=tk.LEFT)
162        tksiril.create_tooltip(example_float_var_scale,
163                               "Adjusts the template variable.")
164
165        ###############################
166        # Add frame for other variables
167        ###############################
168        options_frame = ttk.LabelFrame(main_frame, text="Options", padding=10)
169        options_frame.pack(fill=tk.X, padx=5, pady=10)
170
171        ##################
172        # Example checkbox
173        ##################
174        self.example_bool_var = tk.BooleanVar(self.root, value=False)
175        example_checkbox = ttk.Checkbutton(
176            options_frame,
177            text="Example checkbox variable",
178            variable=self.example_bool_var,
179            style="TCheckbutton"
180        )
181        example_checkbox.pack(anchor=tk.W, pady=2)
182        tksiril.create_tooltip(example_checkbox, "Example checkbox.")
183
184        ##########################################################
185        # Example file selection
186        # using an entry and a callback that triggers a filedialog
187        # These file selector widgets have their own frame
188        ##########################################################
189        file_frame = ttk.Frame(options_frame)
190        file_frame.pack(fill=tk.X, pady=5)
191
192        ttk.Label(file_frame, text="File:").pack(side=tk.LEFT)
193
194        self.example_file_path_var = tk.StringVar(self.root, value="")
195        example_file_entry = ttk.Entry(
196            file_frame,
197            textvariable=self.example_file_path_var,
198            width=40
199        )
200        example_file_entry.pack(side=tk.LEFT, padx=(5, 5), expand=True)
201
202        ttk.Button(
203            file_frame,
204            text="Browse",
205            command=self._browse_file,
206            style="TButton"
207        ).pack(side=tk.LEFT)
208
209        # The template shows examples of sliders and checkboxes
210        # however you can add other sorts of TKinter widgets here
211
212        # Buttons frame
213        button_frame = ttk.Frame(main_frame)
214        button_frame.pack(pady=20)
215
216        close_btn = ttk.Button(
217            button_frame,
218            text="Close",
219            command=self.close_dialog,
220            style="TButton"
221        )
222        close_btn.pack(side=tk.LEFT, padx=5)
223        tksiril.create_tooltip(close_btn,
224                               "Close the interface and disconnect from Siril. "
225                               "No changes will be made to the current image.")
226
227        apply_btn = ttk.Button(
228            button_frame,
229            text="Apply",
230            command=self.apply_changes,
231            style="TButton"
232        )
233        apply_btn.pack(side=tk.LEFT, padx=5)
234        tksiril.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.")
238
239    def apply_changes(self):
240        """ Get the necessary variables from the GUI and call the algorithm """
241        try:
242            # Get the thread
243            with self.siril.image_lock():
244                # Get values from the GUI widgets
245                example_float_var = self.example_float_var.get()
246                example_bool_var = self.example_bool_var.get()
247                example_file_path_var = self.example_file_path_var.get()
248
249                # Get current image
250                fit = self.siril.get_image()
251                fit.ensure_data_type(np.float32)
252
253                # Save original image for undo
254                self.siril.undo_save_state(f"Script algorithm: "
255                                           "arg={example_float_var:.2f}")
256
257                # Apply script algorithm
258                # Your image processing functions go here
259                result = template_algorithm(fit, example_float_var, example_bool_var,
260                                           example_file_path_var)
261
262                # Clip and update image data
263                fit.data[:] = np.clip(result, 0, 1)
264                self.siril.set_image_pixeldata(fit.data)
265
266        except SirilError as e:
267            messagebox.showerror("Error", str(e))
268
269    def close_dialog(self):
270        """ Close dialog """
271        self.root.quit()
272        self.root.destroy()
273
274def main():
275    """ Main entry point """
276    try:
277        # Create the GUI interface
278        root = ThemedTk()
279        TemplateScriptInterface(root)
280        root.mainloop()
281    except SirilError as e:
282        print(f"Error initializing script: {str(e)}", file=sys.stderr)
283        sys.exit(1)
284
285if __name__ == "__main__":
286    main()
287
288language = "fr"
289locale_dirs = ["../../translated/"]
290gettext_compact = "siril-documentation"

Download gui_template.py

Le second modèle est très similaire, mais fournit une interface alternative utilisant un vecteur d'arguments en ligne de commande. Cela permet d'appeler le script avec des arguments à l'aide de la commande Siril pyscript : c'est utile pour scripter des algorithmes que vous pourriez vouloir utiliser dans le cadre d'un flux de travail scripté plus large.

gui_and_args_template.py
  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
 15import os
 16import sys
 17import math
 18import argparse
 19import tkinter as tk
 20from tkinter import ttk, filedialog, messagebox
 21import numpy as np
 22
 23import sirilpy as s
 24from sirilpy import tksiril, 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.
 34from ttkthemes import ThemedTk
 35# Add any additional imports here
 36
 37VERSION = "1.0.0"
 38
 39def template_algorithm(fit, example_float_var,
 40                       example_bool_var,
 41                       example_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   """
 48    print(f"Argument: {example_float_var}")
 49    print(f"Bool var: {example_bool_var}")
 50    print(f"Bool var: {example_file_path_var}")
 51    return fit
 52
 53class TemplateScriptInterface:
 54    """ This class provides the GUI and related callbacks """
 55    def __init__(self, root=None, cli_args=None):
 56        # If no CLI args, create a default namespace with defaults
 57        if cli_args is None:
 58            parser = argparse.ArgumentParser()
 59            parser.add_argument("-example_float_var", type=float, default=1.0)
 60            parser.add_argument("-example_bool_var", type=bool, default=False)
 61            parser.add_argument("-example_file_path_var", type=str, default="")
 62            # add other arguments to match the ones in main()
 63            cli_args = parser.parse_args([])
 64
 65        self.cli_args = cli_args
 66        self.root = root
 67
 68        if root:
 69            self.root.title(f"Template Script Interface - v{VERSION}")
 70            self.root.resizable(False, False)
 71            self.style = tksiril.standard_style()
 72
 73        # Initialize Siril connection
 74        self.siril = s.SirilInterface()
 75
 76        try:
 77            self.siril.connect()
 78        except s.SirilConnectionError:
 79            if root:
 80                self.siril.error_messagebox("Failed to connect to Siril")
 81            else:
 82                print("Failed to connect to Siril")
 83            return
 84
 85        # Initial checks: example - check if an image is loaded
 86        if not self.siril.is_image_loaded():
 87            if root:
 88                self.siril.error_messagebox("No image is loaded")
 89            else:
 90                print("No image is loaded")
 91            return
 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.
 97        try:
 98            self.siril.cmd("requires", "1.3.6")
 99        except s.CommandError:
100            return
101
102        # Create the UI and match its theme to Siril
103        if root:
104            self.create_widgets()
105            tksiril.match_theme_to_siril(self.root, self.siril)
106
107        # Only apply changes if CLI arguments are non-default
108        if cli_args and (cli_args.example_float_var != 1.0):
109            self.apply_changes(from_cli=True)
110
111    # This function is used to round values to n decimal places, it is
112    # always useful if you have sliders in your UI.
113    def _floor_value(self, value, decimals=2):
114        """Floor a value to the specified number of decimal places"""
115        factor = 10 ** decimals
116        return math.floor(value * factor) / factor
117
118    # Here is an example function to round the displayed value of a
119    # variable to 2 decimal places. You will need one of these for each
120    # slider control you have.
121
122    def _update_example_float_variable_display(self, *args): # pylint: disable=unused-argument
123        """Update the displayed template variable value with floor rounding"""
124        value = self.example_float_var.get()
125        rounded_value = self._floor_value(value)
126        self.example_float_var_display_var.set(f"{rounded_value:.2f}")
127
128    def _browse_file(self):
129        """
130        Use a TK filedialog to browse for a file. Note that this callback is
131        specific to the variable being updated; you might need to have several
132        similar callbacks if you have more than one file selection widget.
133        """
134        filename = filedialog.askopenfilename(
135            title="Select File",
136            initialdir=os.path.expanduser("~")
137        )
138        if filename:
139            self.example_file_path_var.set(filename)
140
141    def create_widgets(self):
142        """Create the GUI's widgets, connect signals etc. """
143        # Main frame with no padding
144        main_frame = ttk.Frame(self.root)
145        main_frame.pack(fill=tk.BOTH, expand=True, padx=0, pady=0)
146
147        # Title
148        title_label = ttk.Label(
149            main_frame,
150            text="Template Script",
151            style="Header.TLabel"
152        )
153        title_label.pack(pady=(0, 20))
154
155        # Parameters frame
156        params_frame = ttk.LabelFrame(main_frame, text="Parameters", padding=10)
157        params_frame.pack(fill=tk.X, padx=5, pady=5)
158
159        ############################################################
160        # Example control with an embedded variable in its own frame
161        ############################################################
162
163        template_variable_frame = ttk.Frame(params_frame)
164        template_variable_frame.pack(fill=tk.X, pady=5)
165
166        ttk.Label(template_variable_frame,
167            text="Example floting point parameter:").pack(side=tk.LEFT)
168        # This is the actual float variable
169        self.example_float_var = tk.DoubleVar(self.root,
170            value=self.cli_args.example_float_var)
171        # This is a string representation of the float var limited to 2 decimal places
172        # It is used in the scale label
173        self.example_float_var_display_var = tk.StringVar(
174            self.root,
175            value=f"{self._floor_value(self.cli_args.example_float_var):.2f}")
176        # Add trace to update display when slider changes
177        self.example_float_var.trace_add("write",
178            self._update_example_float_variable_display)
179
180        example_float_var_scale = ttk.Scale(
181            template_variable_frame,
182            from_=0.0, # set your range minimum here
183            to=1.0,    # set your range maximum here
184            orient=tk.HORIZONTAL, # oriented horizontally
185            variable=self.example_float_var, # the tk variable the widget controls
186            length=200
187        )
188        example_float_var_scale.pack(side=tk.LEFT, padx=10, expand=True)
189        ttk.Label(
190            template_variable_frame,
191            textvariable=self.example_float_var_display_var, # var truncated to 2 d.p.
192            width=5,
193            style="Value.TLabel"
194        ).pack(side=tk.LEFT)
195        tksiril.create_tooltip(example_float_var_scale,
196            "Adjusts the template variable.")
197
198        ###############################
199        # Add frame for other variables
200        ###############################
201        options_frame = ttk.LabelFrame(main_frame, text="Options", padding=10)
202        options_frame.pack(fill=tk.X, padx=5, pady=10)
203
204        ##################
205        # Example checkbox
206        ##################
207        self.example_bool_var = tk.BooleanVar(self.root,
208            value=self.cli_args.example_bool_var
209        )
210        example_checkbox = ttk.Checkbutton(
211            options_frame,
212            text="Example checkbox variable",
213            variable=self.example_bool_var,
214            style="TCheckbutton"
215        )
216        example_checkbox.pack(anchor=tk.W, pady=2)
217        tksiril.create_tooltip(example_checkbox, "Example checkbox.")
218
219        ##########################################################
220        # Example file selection
221        # using an entry and a callback that triggers a filedialog
222        ##########################################################
223        file_frame = ttk.Frame(options_frame)
224        file_frame.pack(fill=tk.X, pady=5)
225
226        self.example_file_path_var = tk.StringVar(self.root,
227            value=self.cli_args.example_file_path_var)
228        example_file_entry = ttk.Entry(
229            file_frame,
230            textvariable=self.example_file_path_var,
231            width=40
232        )
233        example_file_entry.pack(side=tk.LEFT, padx=(0, 5), expand=True)
234
235        ttk.Button(
236            file_frame,
237            text="Browse",
238            command=self._browse_file,
239            style="TButton"
240        ).pack(side=tk.LEFT)
241
242        # The template shows examples of sliders and checkboxes
243        # however you can add other sorts of TKinter widgets here
244
245        # Buttons frame
246        button_frame = ttk.Frame(main_frame)
247        button_frame.pack(pady=20)
248
249        close_btn = ttk.Button(
250            button_frame,
251            text="Close",
252            command=self.close_dialog,
253            style="TButton"
254        )
255        close_btn.pack(side=tk.LEFT, padx=5)
256        tksiril.create_tooltip(close_btn,
257                               "Close the interface and disconnect from Siril. No "
258                               "changes will be made to the current image.")
259
260        apply_btn = ttk.Button(
261            button_frame,
262            text="Apply",
263            command=self.apply_changes,
264            style="TButton"
265        )
266        apply_btn.pack(side=tk.LEFT, padx=5)
267        tksiril.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.")
271
272    def apply_changes(self, from_cli=False):
273        """
274        Get the necessary variables from CLI args or the GUI and call the algorithm
275        """
276        try:
277            # Get the thread
278            with self.siril.image_lock():
279                # Determine parameters: prefer CLI args if provided,
280                # else use GUI values
281                if from_cli and self.cli_args:
282                    example_float_var = self.cli_args.example_float_var
283                    example_bool_var = self.cli_args.example_bool_var
284                    example_file_path_var = self.cli_args.example_file_path_var
285                else:
286                    example_float_var = self.example_float_var.get()
287                    example_bool_var = self.example_bool_var.get()
288                    example_file_path_var = self.example_file_path_var.get()
289
290                # Get current image
291                fit = self.siril.get_image()
292                fit.ensure_data_type(np.float32)
293
294                # Save original image for undo
295                self.siril.undo_save_state(f"Script algorithm: "
296                                           "arg={example_float_var:.2f}")
297
298                # Apply script algorithm
299                # Your image processing functions go here
300                result = template_algorithm(fit, example_float_var,
301                                            example_bool_var,
302                                            example_file_path_var)
303
304                # Clip and update image data
305                fit.data[:] = np.clip(result, 0, 1)
306                self.siril.set_image_pixeldata(fit.data)
307
308            if from_cli:
309                print("Script algorithm applied successfully.")
310
311        except SirilError as e:
312            if from_cli:
313                print(f"Error: {str(e)}")
314            else:
315                messagebox.showerror("Error", str(e))
316
317    def close_dialog(self):
318        """ Close dialog """
319        if hasattr(self, 'root'):
320            self.root.quit()
321            self.root.destroy()
322
323def main():
324    """ Main entry point """
325    parser = argparse.ArgumentParser(description="Template python script")
326    parser.add_argument("-example_float_var", type=float, default=1.0,
327                        help="Describe the variable here (0.0 to 1.0)")
328    parser.add_argument("-example_bool_var", type=bool, default=False,
329                        help="Describe the variable here (bool, default is False)")
330    parser.add_argument("-example_file_path_var", type=str, default="",
331                        help="Describe the variable here (example file path)")
332
333    args = parser.parse_args()
334
335    try:
336        if any([args.example_float_var != 1.0, args.example_bool_var is not False]):
337            # CLI mode
338            TemplateScriptInterface(cli_args=args)
339        else:
340            # GUI mode
341            root = ThemedTk()
342            TemplateScriptInterface(root)
343            root.mainloop()
344    except SirilError as e:
345        print(f"Error initializing script: {str(e)}", file=sys.stderr)
346        sys.exit(1)
347
348if __name__ == "__main__":
349    main()
350
351language = "fr"
352locale_dirs = ["../../translated/"]
353gettext_compact = "siril-documentation"

Download gui_and_args_template.py

Current list of Python scripts for Siril 1.4

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.

Image processing section

Scripts that process a single image for visual enhancements, in general a stack result.

SyQon/Prism.py

SyQon Prism AI denoise. This is a paying product

SyQon/Starless.py

SyQon Starless AI star removal. This is a paying product

SyQon/Parallax.py

SyQon Parallax AI: aberration correction, star reduction and sharpening. This is a paying product

SyQon/SyQon_Studio.py

New SyQon script that will group all paid models (Parallax, Prism, Starless)

RC-Astro/NoiseXTerminator.py

RC Astro AI denoise. This is a paying product

RC-Astro/StarXTerminator.py

RC Astro Starless AI star removal. This is a paying product

RC-Astro/BlurXTerminator.py

RC Astro Deconv AI: aberration correction, star reduction and sharpening. This is a paying product

processing/Statistical_Stretch.py

Seti Astro Statistical Stretch

processing/AberrationRemover.py

Aberration Remover AI

processing/AstroColorMixer.py

multi-pass, hue-targeted color and luminance refinement for nonlinear RGB data.

processing/ContinuumSubtraction.py

Narrowband Continuum Subtraction script

processing/DeepSNR.py

DeepSNR AI denoise (wrapper around the third-party DeepSNR tool)

processing/StarNet.py

StarNet 2.5 star removal (wrapper around the third-party StarNet tool), with optional star mask generation

processing/GPS_Process.py

Image processing based on CosmicClarity and GraXpert (background extraction, denoise and/or sharpening)

processing/Narrowband_Palette_Picker.py

Helps preview different palettes for narrowband image composition

processing/GraXpert-AI.py

Integration of the GraXpert gradient removal tool (AI)

processing/CosmicClarity_Denoise.py

Cosmic Clarity Denoise

processing/DBXtract.py

Extract the Sulfur II, Hydrogen Alpha and Oxygen III signal from dual band filters to compose SHO images in color cameras

processing/Hubble_Palette_from_Dual-Band_OSC.py

Create different "Hubble-like" palettes from OSC (One-Shot Color) images acquired with a dual-band Ha/OIII filter

processing/PalettePicker.py

Script that help user to create its own palette for narrowband filters

processing/NarrowbandNormalization.py

Script that allows easy narrowband normalization on monochrome SHO combined images and on OSC dual band images

processing/HDR_multiscale.py

Wavelet-Based Dynamic Range Compression

processing/HDR_Blender.py

Inverse Variance Maximum Likelihood Estimate (MLE) HDR Blender. Blends multiple images with different exposures

processing/NB_2_RGB.py

Monochrome image combination into a color image

processing/SCUNet_Denoise.py

SCUNet image denoiser (AI)

processing/CosmicClarity_Superres.py

Cosmic Clarity Superres

processing/CosmicClarity_Native.py

Cosmic Clarity AI-powered sharpening, denoising, super resolution and star removal

processing/AutoBGE.py

Auto Background Extraction script

processing/AutoGradientRemoval.py

Auto Gradient Removal tool. This script will be implemented in the Siril code in the next version

processing/CosmicClarity_Satellite.py

Cosmic Clarity Satellite Removal

processing/CosmicClarity_Darkstar.py

Cosmic Clarity Darkstar

processing/ER-Bill_Star_Reduction.py

Script for reducing stars using pixel math

processing/DSA-Star_Reduction.py

Script for reducing stars using pixel math

processing/CosmicClarity_Sharpen.py

Cosmic Clarity sharpening process

VeraLux/VeraLux_Alchemy.py

Linear-Phase Narrowband Normalization & Mixing

VeraLux/VeraLux_Nox.py

Physically-Faithful Photometric Gradient Reduction

VeraLux/VeraLux_StarComposer.py

High-Fidelity Star Reconstruction Engine

VeraLux/VeraLux_Revela.py

Photometric Local Contrast & Texture Engine

VeraLux/VeraLux_HyperMetric_Stretch.py

Photometric Hyperbolic Stretch Engine

VeraLux/VeraLux_Starting_Point.py

Interactive Workflow Guide & Manual

VeraLux/VeraLux_Curves.py

Spline-Based Photometric Sculpting Engine

VeraLux/VeraLux_Silentium.py

Linear-Phase Noise Suppression Engine

VeraLux/VeraLux_Vectra.py

Vector Color Grading & Chromatic Surgery Engine

Sequence pre-processing section

Scripts that process a set of images, an alternative to usual preprocessing scripts.

preprocessing/AMSP.py

Siril Wizard – Automatic Multi-Session Processing. Drag and drop all files and it does the stacks

preprocessing/StorageFriendlyStacking.py

Storage Friendly Stacking Script

preprocessing/Naztronomy-Smart_Telescope_PP.py

Naztronomy - Smart Telescope Preprocessing script

preprocessing/GPS_Preprocess.py

Preprocessing with multi-session, mosaics and many optional steps support

preprocessing/ER-CometStartrail.py

Stack a startrail from a sequence

preprocessing/osc-multi-night-stacking-v1.2.py

Multi-night stacking

preprocessing/Naztronomy-OSC_PP.py

Naztronomy - OSC Image Preprocessing script with mosaics support

preprocessing/Naztronomy-Mono_PP.py

Naztronomy - Monochrome Image Preprocessing script with mosaics support

Utility section

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

Avertissement

Tous les scripts ne sont pas rédigés, ou ne relèvent de la responsabilité, de l'équipe de développement de Siril !

Avec l'introduction des scripts Python, les possibilités offertes aux auteurs de scripts Siril se sont considérablement élargies. Un grand pouvoir implique de grandes responsabilités !

Vous, en tant qu'utilisateur, devez vous assurer de faire confiance aux auteurs des scripts que vous utilisez. La version 1.4.0 introduit le dépôt de scripts. Certains des scripts qui s'y trouvent ont été écrits par l'équipe de développement de Siril, mais d'autres ont été écrits par des contributeurs tiers. Veuillez lire la section Informations clés concernant les recommandations pour les auteurs de scripts, les utilisateurs finaux et les règles du dépôt de scripts.

Obtenir des scripts

Un petit nombre de fichiers de script de base sont fournis avec Siril, mais vous pouvez en ajouter d'autres depuis le dépôt de scripts. Pour ce faire, allez dans menu Scripts -> Obtenir des scripts. Cela ouvrira l'onglet Scripts de la boîte de dialogue Préférences. Là, sous la liste des répertoires de scripts locaux, vous trouverez une liste des scripts du dépôt.

Les scripts peuvent être triés par catégorie, par nom, par type ou selon qu'ils sont sélectionnés ou non.

Comme il pourrait éventuellement y avoir un grand nombre de scripts, dont tous ne seront pas pertinents pour votre flux de travail, vous pouvez configurer les scripts que vous souhaitez voir apparaître dans le menu Scripts. Il suffit de cocher la case à côté d'eux et de cliquer sur Appliquer pour mettre à jour le menu.

Astuce

Il n'est pas nécessaire de sélectionner les scripts pour qu'ils apparaissent dans le menu afin qu'ils soient utilisables avec la commande pyscript : celle-ci recherchera dans tous les répertoires de scripts locaux ainsi que dans l'ensemble du dépôt de scripts local.

Avertissement

Les auteurs de scripts peuvent proposer des mises à jour. Occasionnellement, inévitablement, une mauvaise mise à jour peut casser le script pour vous. Les bogues doivent être signalés à l'auteur du script : pour les scripts écrits par l'équipe Siril, vous pouvez les signaler sur le dépôt GitLab des scripts, et pour ceux écrits par des contributeurs tiers, vous devriez les signaler aux coordonnées de contact indiquées dans le script.

Le script peut être ouvert dans l'éditeur de script en double-cliquant dessus dans la liste. Ceci est important pour plusieurs raisons :

  • Cela vous permet de trouver les coordonnées de l'auteur du script afin de lui signaler un bug.

  • Lorsque vous double-cliquez sur le script, une option vous permet de revenir aux versions précédentes.

  • Cela signifie que si une mise à jour a cassé le script, vous pouvez ouvrir la version précédente et en enregistrer une copie locale dans l'un de vos dossiers de scripts locaux, pour l'utiliser jusqu'à ce que l'auteur du script corrige la mauvaise mise à jour. (La version enregistrée dans un dossier local sera prioritaire sur une version du dépôt portant le même nom, mais elle apparaîtra dans un sous-dossier différent du menu, portant le nom de votre dossier de scripts locaux.)

Mode console

Siril peut fonctionner à la fois avec son interface graphique (GUI) et avec une interface en ligne de commande (CLI) qui ne nécessite même pas d'affichage. Il peut traiter des images pour d'autres programmes, sur des ordinateurs distants ou embarqués, en utilisant des scripts ou des opérations générées en temps réel appelées commandes. Les capacités de Siril en mode console correspondent en fait à celles des commandes disponibles. Il y en a plus d'une centaine, permettant de réaliser automatiquement des prétraitements, des traitements et des analyses photométriques.

Les commandes peuvent également être utilisées dans la version GUI de Siril, soit à partir de la ligne de commande intégrée en bas du panneau de contrôle, soit avec des scripts. Les scripts sont simplement des fichiers texte contenant une liste de commandes. Il est recommandé de lire la page scripts avant de continuer.

Avec la version sans interface graphique, les commandes peuvent être exécutées soit en passant un script à exécuter, soit en définissant l'entrée standard comme un script et en écrivant des commandes dedans, avec l'option de ligne de commande -s -, ou en utilisant des tubes nommés.

Voici un exemple de code bash appelant le mode console, qui construit le master-bias et renvoie son niveau de bruit sur la console, en rouge :

#!/bin/bash
# bash commands to prepare files

initdir=$(pwd)

######## Set your own variables #############
SCRIPTS_DIRECTORY=$initdir
SIRIL_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 files
cd biases
convert bias -out=../process
cd ../process

# Stack Bias Frames to bias_stacked.fit
stack bias rej 3 3 -nonorm -out=master-bias
cd ../..

close
ENDSIRIL
)

log_line=$(echo "$output" | grep -o "log: Background noise value.*")
echo -e "\e[31m$log_line\e[0m"

echo done Siril part

Flux de commande (Pipe)

Ce mode a été introduit avec Siril 0.9.10. Les commandes peuvent être envoyées via un tube nommé et les journaux et l'état peuvent être obtenus via un autre. Le mode est activé en utilisant l'argument en ligne de commande -p.

Le protocole est assez simple : Siril reçoit des commandes et renvoie des mises à jour. Seules les commandes marquées comme scriptables peuvent être utilisées avec ce système. Chaque fois que le tube de commande d'entrées est fermé ou que la commande d'annulation est donnée, la commande en cours d'exécution est arrêtée comme si le bouton d'arrêt avait été cliqué dans l'interface graphique. Les tubes sont nommés siril_command.in et siril_command.out et sont disponibles dans /tmp sur les systèmes Unix.Depuis la version 1.2.0, les chemins des tubes peuvent être configurés avec les options -r et -w, ce qui permet à des programmes externes de les créer avant de démarrer Siril, généralement avec la commande mkfifo. Également nouveau dans la version 1.2.0, une commande ping renvoie simplement un état, indiquant si Siril est prêt à traiter une commande ou déjà occupé.

Les sorties de Siril sur le tube sont un flux d'une ligne de texte et sont formatées comme suit :

  • ready est affiché au démarrage, indiquant que Siril est prêt à traiter les commandes

  • log: suivi d'un message de journalisation

  • status: verb [subject], où le verbe peut être starting, success, error ou exit (le message de sortie n'est pas encore implémenté). Le sujet est le nom de la commande en cours, sauf pour sortie qui indique que Siril a subi une erreur fatale et doit quitter.

  • progress: valeur% est l'équivalent de la barre de progression, il envoie périodiquement des pourcentages, et parfois 0% à la fin d'un traitement en tant qu'information de veille.

Interprétation d'entête

Le parsing est la capacité d'analyser, c'est-à-dire d'écrire des chaînes de caractères à partir des données contenues dans l'en-tête FITS. L'interprétation d’entêtes, introduit dans Siril 1.2.0, vise à donner plus de flexibilité au scripting en utilisant les données de l'entête pour écrire/lire des noms de fichiers ou des chemins. Pour l'instant, ceci est utilisé avec les commandes suivantes :

et bien sûr, leurs équivalents GUI.

Exemple de syntaxe

Nous allons prendre un exemple simple pour commencer. Supposons que vous ayez un fichier nommé light_00001.fit et que vous souhaitiez trouver un masterdark dans votre bibliothèque de masters qui corresponde aux caractéristiques de cette image. Comme vous avez choisi une convention pour nommer vos masterdark, vous savez que le bon dark doit être nommé comme suit :

DARK_"exposure"s_G"gain"_O"offset"_T"temperature"C_bin"binning".fit

avec les termes entre parenthèses remplacés par les valeurs lues dans votre en-tête d'image brute. Pour une exposition de 120s, une température de -10C, un gain/offset de 120/30 et un binning 1, le masterdark serait nommé :

DARK_120s_G120_O30_T-10C_bin1.fit

C'est exactement ce que cette fonctionnalité permet de faire. Si vous spécifiez le nom du dark avec les conventions expliquées juste après, vous pouvez dire à Siril d'ouvrir l'image, de lire son en-tête et d'utiliser ses valeurs pour écrire cette chaîne (et ensuite l'utiliser pour calibrer votre images).

Vous pouvez lire les informations contenues dans l'en-tête soit par la commande dumpheader, soit en utilisant le menu Outils, Outils ‣ Entête FITS.... Vous obtiendrez normalement un résultat comme celui qui suit (certaines clés ont été supprimées par souci de concision) :

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

Le format utilisé pour spécifier le nom des darks serait alors :

DARK_$EXPTIME:%d$s_G$GAIN:%d$_O$OFFSET:%d$_T$SET-TEMP:%d$C_bin$XBINNING:%d$.fit

Tous les termes à analyser sont formés comme suit : $KEY:fmt$

Par exemple, $EXPTIME:%d$ sera interprété comme 120 si la brute a été exposée pendant 120s. Mais il sera interprété comme 120.0 si vous spécifiez $EXPTIME:%0.1f$, grâce au formateur %x.yf.

L'expression complète ci-dessus serait donc évaluée à :

DARK_**120**s_G**120**_O**30**_T**-10**C_bin**1**.fit

Dans ce premier exemple, nous n'avons utilisé que la conversion en nombres entiers avec %d. Mais il existe d'autres formatages conventionnels que vous pouvez utiliser :

  • %x.yf pour les nombres flottants

  • %s pour les chaînes de caractères

Note

Pour les chaînes de caractères, les espaces devant et derrière sont toujours supprimés, tandis que les espaces à l'intérieur des chaînes sont remplacés par des signes _. Exemple : $OBJECT:%s$ sera converti en Rosette_Nebula.

Vous pouvez aussi utilisé des formatages moins conventionnels :

  • Pour analyser une date à partir d'un mot clé d'en-tête date-heure, vous pouvez utiliser le format spécial non standard dm12, qui signifie date moins 12h. Dans l'en-tête ci-dessus, la clé DATE-OBS a pour valeur 2022-01-24T01:03:34.729. La valeur de $DATE-OBS:dm12$ serait convertie en 2022-01-23, ce qui correspond à la date du début de la nuit. Vous pouvez également utiliser le formateur spécial dm0 qui analysera simplement la date, sans soustraire 12h.

  • Pour analyser une date-time à partir d'une clé d'en-tête date-time, vous pouvez utiliser le format spécial non standard dt, qui signifie simplement date-time. Dans l'en-tête ci-dessus, le mot clé DATE-OBS a pour valeur 2022-01-24T01:03:34.729. La conversion de $DATE-OBS:dt$ se ferait alors en 2022-01-24_01-03-34.

  • Pour analyser les informations RA et DEC des mots clés d'en-tête OBJCTRA et OBJCTDEC, vous pouvez utiliser les formateurs spéciaux non standard ra et dec. Dans l'en-tête ci-dessus, les mots clés OBJCTRA et OBJCTDEC ont une valeur de 06 30 36 et +04 58 51 respectivement. $OBJCTRA:ra$_$OBJCTDEC:dec$ serait converti en 06h30m36s_+04d58m51s.

  • Pour analyser les informations RA et DEC à partir des mots clés d'en-tête RA et DEC, lorsqu'elles sont au format décimal, vous pouvez utiliser les formats spéciaux non standard ran et decn. Dans l'en-tête ci-dessus, les mots clés RA et DEC ont une valeur de 97.6960081674312 et 4.99212765957446 respectivement. La conversion de $RA:ran$_$DEC:decn$ serait 06h30m47s_+04d59m32s.

Un bon exemple de noms de fichiers pour un résultat d'empilement est l'expression suivante :

$OBJECT:%s$_$FILTER:%s$_$STACKCNT:%d$x$EXPTIME:%d$sec_G$GAIN:%d$_O$OFFSET:%d$_T$CCD-TEMP:%d$°C_$DATE-OBS:dm12$

en donnant quelque chose comme :

NGC_7023_L_57x120sec_G100_O50_T-9°C_2023-10-07

Pour tester la syntaxe, vous pouvez charger une image et utiliser la commande parse, comme rappelé ci-dessous.

Ligne de commande Siril

parse str [-r]
Analyse la chaîne de caractères str en utilisant les informations contenues dans l'en-tête de l'image actuellement chargée. Le but principal de cette commande est de débuguer l'interprétation d'entête des clés d'en-tête qui peuvent être utilisées dans d'autres commandes.
L'option -r spécifie que la chaîne doit être interprétée en mode lecture. En mode lecture, tous les caractères génériques définis dans la chaîne str sont utilisés pour trouver un nom de fichier correspondant au motif. Sinon, le mode par défaut est le mode écriture et les caractères génériques, le cas échéant, sont supprimés de la chaîne à analyser.

Si la chaîne str commence par le préfixe $def, elle sera reconnue comme un mot-clé réservé et recherchée dans les chaînes stockées dans gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib ou gui_prepro.stack_default pour $defdark, $defflat, $defbias ou $defstack respectivement.
Le mot-clé $seqname$ peut également être utilisé quand une séquence est chargée

Trouver un fichier avec l'interprétation d'entête

Dans l'exemple ci-dessus, nous avons vu que nous pouvions trouver le nom d'un dark maître à partir des informations contenues dans l'en-tête de la brute à calibrer. C'est ce que l'on appelle dans la commande parse, le mode lecture.

Ce comportement est principalement utilisé en conjonction avec la commande/onglet calibrate et pour trouver les fichiers de distorsion maîtres. Dans l'option -dark= de la commande ou dans le champ Dark de l'interface graphique, vous pouvez utiliser la syntaxe décrite ci-dessus. Ainsi, vous êtes sûr que le dark correspondant sera récupéré pour calibrer les images. Il en va de même pour Bias et Flat. Vous pouvez, bien sûr, donner un chemin complet (ou relatif) vers le fichier. Et le chemin peut aussi contenir des expressions du même type.

Par exemple, pour les flats, vous pouvez vouloir spécifier le chemin d'accès à une bibliothèque, qui pourrait contenir des informations sur les filtres ou les télescopes, car vous pouvez avoir plusieurs configurations. Un chemin comme :

~/astro/masters/flats/$INSTRUME:%s$_$TELESCOP:%s$/$FILTER:%s$/FLAT_bin$XBINNING:%d$.fit

serait alors évalué comme :

~/astro/masters/flats/ZWO_ASI294MC_Pro_61EDPH/DualBand/FLAT_bin1.fit

et est une valeur valide pour l'entrée Flat.

Bien sûr, si vous deviez écrire cette commande dans vos scripts ou dans le champ "Flat" de l'interface graphique à chaque fois que vous calibrez, cela pourrait devenir un peu fastidieux. C'est là que les mots-clés réservés viennent à la rescousse. Il y a 3 mots-clés réservés pour les maîtres :

  • $defdark

  • $defflat

  • $defbias

  • $defdisto

Leurs valeurs sont définies dans Préférences ‣ Pré-traitement section. Vous pouvez également les spécifier par le biais de scripts grâce à la commande set. Ils correspondent aux valeurs de gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib. et gui_prepro.disto_lib.

Lorsque leurs valeurs sont définies et que vous avez choisi de les utiliser comme valeurs par défaut, elles seront affichées dans les champs de l'onglet Calibration. Vous pouvez également commencer à écrire vos scripts en utilisant ces mots-clés. L'étape de calibration d'un nouveau script générique pour une caméra couleur pourrait ressembler à ceci :

calibrate light -dark=$defdark -cc=dark -flat=$defflat -cfa -equalizecfa -debayer

Cela permet de prélever vos masters directement dans vos bibliothèques et de s'assurer que vous ne les mélangez jamais pendant l'étape d'étalonnage.

Écriture d'un fichier avec interprétation de l'entête

Maintenant, bien qu'il soit pratique de pouvoir trouver les fichiers, il serait tout aussi utile d'utiliser cette syntaxe pour stocker vos fichiers pendant l'empilement. C'est exactement ce à quoi sert le mode écriture. La syntaxe peut être utilisée dans le champ -out= des commandes stack et stackall, ou dans le champ correspondant dans l'interface graphique.

Imaginons que vous vouliez écrire un script générique qui prépare vos master darks à chaque fois que vous renouvelez votre bibliothèque. Dans la ligne stack du script, vous pourriez écrire :

stack dark rej 3 3 -nonorm -out=$defdark

Cette ligne garantit que le masterdark résultant sera stocké au bon endroit avec le nom de fichier correct qui peut ensuite être récupéré pour calibrer vos brutes.

Afin d'introduire encore plus de flexibilité avec les commandes stack, il y a deux mots-clés réservés supplémentaires :

  • $defstack

  • $sequencename$

Comme pour les maîtres par défaut, $defstack est configuré dans la même section des Préférences, ou avec une commande set sur gui_prepro.stack_default. Par exemple, supposons que vous ayez défini $defstack comme :

Result_$OBJECT:%s$_$DATE-OBS:dm12$_$LIVETIME:%d$s

La ligne de script :

stack r_pp_light rej 3 3 -norm=addscale -output_norm -out=$defstack

sauvegarde le résultat de l'empilement comme :

Result_Rosette_Nebula_2022-01-24_12000s.fit

Depuis Siril 1.2.0, le nom par défaut pour l'empilement est défini comme $sequencename$stacked (le signe _ est ajouté s'il n'est pas présent). Ce comportement est similaire à celui des versions précédentes, sauf qu'il est maintenant explicite que l'interprétation de l'entête est utilisée.

Utilisation des caractères de remplacement

Il se peut que vous vouliez utiliser une valeur clé dans le nom de vos masters qui ne correspond pas à la valeur clé des images à calibrer. Avec un exemple, ce sera peut-être un peu plus clair. Disons que vous voulez, dans le nom de vos masters, enregistrer leur temps d'exposition. Quelque chose comme :

FLAT_1.32s_Halpha_G120_O30_bin1.fit

Si vous mettez un champ $EXPTIME:%0.2f$ dans $defflat, cela se terminera par une erreur à l'étape de calibration. Tout simplement parce que la clé EXPTIME sera lue à partir de l'image brute à calibrer, et non d'un flat.

Pour faire face à cette situation, vous pouvez utiliser des caractères génériques dans les expressions à analyser :

FLAT_$*EXPTIME:%0.2f$_$FILTER:%s$_G$GAIN:%d$_O$OFFSET:%d$_bin$XBINNING:%d$

Notez le symbole * placé juste avant EXPTIME.

La signification de ce symbole est la suivante :

  • En mode écriture, c'est-à-dire lors de l'empilement de votre flat maître, le champ EXPOSITION sera utilisé pour former le nom du fichier à sauvegarder. Dans l'exemple ci-dessus, vous sauvegarderez effectivement le fichier FLAT_1.32s_Halpha_G120_O30_bin1.fit.

  • En mode lecture, donc lors de l'étalonnage de vos brutes, le champ EXPOSURE sera remplacé par *. Lors de la recherche d'un tel fichier, Siril récupérera tous les fichiers qui correspondent au modèle FLAT_*_Halpha_G120_O30_bin1.fit. Avec un peu de chance, votre convention de nommage est suffisamment robuste pour qu'il ne trouve qu'un seul fichier correspondant et l'utilise pour le calibrage.

    Cela peut également s'avérer utile pour définir des fichiers de distorsion maîtres. Vous pourriez, par exemple, utiliser :

~/astro/masters/distos/DISTO_$*DATE-LOC:dm12$_$INSTRUMEN:%s$_$TELESCOP:%s$_bin$XBINNING:%d$.wcs

Notez le symbole * placé juste avant DATE-LOC.

Lorsqu'un caractère générique est utilisé devant une clé d'en-tête DATE, le fichier retourné en mode lecture est celui dont la date est la plus proche, inférieure ou égale, du fichier dont l'en-tête est en cours d'analyse.

Avertissement

Dans le cas où Siril trouve plus d'un fichier en "mode lecture", il émettra un avertissement dans la console et sélectionnera le fichier le plus récent. Comme cela peut ne pas produire le résultat souhaité, vous devriez reconsidérer votre convention de nommage si cela se produit.

Gestion des doublons

Dans certains cas, il existe plusieurs mots-clés pour la même valeur. En effet, les développeurs de logiciels sont libres d'utiliser les mêmes mots-clés ou d'en créer de nouveaux. Siril tente donc de reconnaître et de gérer les doublons. Voici un tableau récapitulatif des doublons connus. Si un fichier contient des mots-clés dits « alternatifs », alors Siril stockera la valeur dans la version « primaire ».

Mot-clé principal

Alternatif

MIPS-HI

CWHITE

MIPS-LO

CBLACK

PROGRAM

SWCREATE

IMAGETYP

FRAMETYP

EXPTIME

EXPOSURE

FILTER

FILT-1

FOCALLEN

FOCAL

CENTALT

OBJCTALT

CENTAZ

OBJCTAZ

XBINNING

BINX

YBINNING

BINY

XPIXSZ

XPIXELSZ, PIXSIZE1, PIXSIZEX, XPIXSIZE

YPIXSZ

YPIXELSZ, PIXSIZE2, PIXSIZEY, YPIXSIZE

CCD-TEMP

CCD_TEMP, CCDTEMP, TEMPERAT, CAMTCCD

OFFSET

BLKLEVEL

CVF

EGAIN

FOCPOS

FOCUSPOS

FOCTEMP

FOCUSTEM

STACKCNT

NCOMBINE

SITELAT

SITE-LAT, OBSLAT

SITELONG

SITE-LON, OBSLONG

Live stacking (empilement en direct)

L'empilement en direct est une technique d'astrophotographie qui permet d'empiler en temps réel une série d'images pour produire une image de meilleure qualité. Contrairement à l'empilement d'images traditionnel, qui consiste à combiner plusieurs images après qu'elles aient été capturées, l'empilement en direct combine les images au moment où elles sont capturées. Cela peut fournir un aperçu instantané de l'image finale et permettre à l'astrophotographe d'effectuer des ajustements en temps réel pour améliorer la qualité du résultat final.

Siril 1.2.0 inclut cette fonctionnalité, qui reste cependant expérimentale pour le moment. Elle permet de surveiller un dossier en temps réel et d'empiler les images qui arrivent au fur et à mesure. L'empilement des images peut se faire avec et sans Dark/Bias/Flats. Ces derniers doivent être faits au préalable si vous voulez les utiliser.

Livestacking (GUI)

Note

Seul les images FITS et RAW sont compatible avec l'empilement en direct.

Pour commencer l'empilement en direct vous devez :

  • Définir un répertoire de travail, avec le bouton qui définit le répertoire de travail, dans lequel les photos arriveront les unes après les autres.

  • Cliquer sur le bouton encadré sur l'image ci-dessous.

menu livestacking

Une nouvelles fenêtre s'ouvre.

menu livestacking

Cette fenêtre contient plusieurs boutons et options. Un bouton play, qui lorsqu'il est cliqué devient un bouton pause, et un bouton stop. Le premier permet de démarrer ou de mettre en pause la surveillance du répertoire de travail, et le dernier de l'arrêter.

Toutes les autres options sont assez standard dans le prétraitement des images astronomiques :

  • dématriçage : La matrice de Bayer est détectée dans les fichier et le dématricage est automatiquement activé. Il s'agit plus d'un indicateur que d'une option.

  • utiliser 32-bits : Utiliser 32 bits pour le traitement d'images. Cette méthode est plus lente et généralement inutile en termes de qualité pour l'empilement en direct.

  • supprimer le gradient : Applique une suppression linéaire du gradient de fond de ciel sur les images d'entrée calibrées.

  • alignement par translation seulement : Décale uniquement les par translation au lieu d'utiliser la rotation à l'alignement. Cette option doit être décoché pour les montures alt-az ou à forte dérive. Cela rend le traitement des images beaucoup plus rapide.

Les 3 sections ci-dessous fournissent les informations nécessaires à l'utilisateur pour suivre l'évolution de l'empilement.

  • Statistiques : Cette session donne l'évolution du niveau de bruit en ADU ainsi que le temps de traitement des images.

  • Empilement : Cette section résume le nombre d'image empilé et le temps total d'exposition cumulé.

  • Configuration est une section qui n'est pas développée par défaut. Une fois que c'est fait, la section donne des détails si le prétraitement est fait en utilisant des fichiers maîtres et le type d'alignement et d'empilement.

    configuration de l'empilement en direct

Note

Pour utiliser les fichier maîtres durant une session d'empilement en direct, vous devez d'abord avoir empiler vos fichier. Ainsi, lorsque cela est fait et avant de lancer la session, veuillez les charger dans l'onglet Calibration. Ils seront pris en charge lors de l'empilement de direct et seront visible dans la partie Configuration de la boite de dialogue live Stacking.

Empilement en direct (Mode console)

Il est possible d'utiliser l'empilement en direct depuis la ligne de commande. Pour cela, 3 commandes sont nécessaire et expliquées ci-dessous.

  • La première, start_ls commence la session d'empilement en direct. Il est possible de donner les images darks et flats comme argument pour calibrer les images durant l'empilement en direct.

    Ligne de commande Siril

    start_ls [-dark=filename] [-flat=filename] [-rotate] [-32bits]
    
    Initialise une session de livestacking, en utilisant les fichiers de calibration optionnels et attend que les fichiers d'entrée soient fournis par la commande LIVESTACK jusqu'à ce que STOP_LS soit appelé. Le traitement par défaut utilise l'alignement par translation seulement et le traitement 16 bits parce qu'il est plus rapide, il peut être changé en rotation avec -rotate et -32bits

    Notez que les commandes de live stacking mettent Siril dans un état dans lequel il n'est pas capable de traiter d'autres commandes. Après START_LS, seuls LIVESTACK, STOP_LS et EXIT peuvent être appelés jusqu'à ce que STOP_LS soit appelé pour remettre Siril dans son état normal, sans livestacking

  • La commande livestack doit être appliquée à chaque image que vous souhaitez empiler.

    Ligne de commande Siril

    livestack filename
    
    Traite l'image fournie pour le livestacking. Cette opération n'est possible qu'après START_LS. Le processus implique la calibration du fichier entrant s'il est configuré dans START_LS, le dématriçage s'il s'agit d'une image couleur, l'alignement et l'empilement. Le résultat temporaire sera dans le fichier live_stack_00001.fit jusqu'à ce qu'une nouvelle option permettant de le modifier soit ajoutée

    Liens : start_ls
  • Enfin, la commande stop_ls arrête la session d'empilement en direct.

    Ligne de commande Siril

    stop_ls
    
    Arrête la session de livestacking. Uniquement possible après START_LS

    Liens : start_ls

Commandes

Cette page liste toutes les commandes disponibles dans Siril 1.4.4.

Vous pouvez accéder à l'index en cliquant sur l'icône Retour à l'index.

Les commandes marquées avec l'icône Scriptable peuvent être utilisées dans des scripts tandis que celles marquées avec celle-ci Non scriptable ne le peuvent pas.

Astuce

Pour toutes les commandes de séquence appelées depuis la barre de commande, vous pouvez remplacer l'argument sequencename avec . si la séquence à traiter a déjà été chargée.

Astuce

Si vous voulez fournir un argument qui inclut une chaîne de caractères avec des espaces, par exemple un nom de fichier, vous devez citer l'argument entier et pas seulement la chaîne de caractères. Ainsi, par exemple, vous devez utiliser command "-filename=My File.fits", et non command -filename="My File.fits".

addmax Non scriptableRetour à l'index

addmax filename
Calcule une nouvelle image en combinant l'image en mémoire avec l'image filename. Pour chaque pixel, la nouvelle valeur est déterminée comme étant la valeur maximale dans l'image courante et dans filename

asinh ScriptableRetour à l'index

asinh [-human] stretch { [offset] [-clipmode=] }
Etire l'image pour montrer les objets peu lumineux en utilisant une transformation hyperbolique arcsin. L'argument obligatoire stretch, généralement compris entre 1 et 1000, indique l'intensité de l'étirement. Le point noir peut être décalé en fournissant un argument optionnel offset dans la valeur normalisée du pixel [0, 1]. Enfin, l'option -human permet d'utiliser les facteurs d'efficacité lumineuse de l'œil humain pour déterminer la luminance utilisée pour calculer la valeur d'étirement pour chaque pixel, au lieu de la simple moyenne des valeurs de pixel des canaux. Cette méthode d'étirement préserve la luminosité de l'espace colorimétrique La*b*. Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

autoghs ScriptableRetour à l'index

autoghs [-linked] shadowsclip stretchamount [-b=] [-hp=] [-lp=] [-clipmode=]
Application de l'étirement hyperbolique généralisé avec un point de symétrie SP défini comme k.sigma de la médiane de chaque canal (la valeur fournie shadowsclip est le k ici et peut être négative). Par défaut, SP et l'étirement sont calculés par canal ; SP peut être calculé comme une moyenne des canaux de l'image en passant -linked. La quantité d'étirement D est fournie dans le deuxième argument obligatoire.
Des valeurs implicites de 13 pour B, le rendant très concentré sur la gamme de luminosité SP, 0.7 pour HP, 0 pour LP sont utilisées, mais peuvent être modifiées avec les options des mêmes noms. Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

autostretch ScriptableRetour à l'index

autostretch [-linked] [shadowsclip [targetbg]]
Etire automatiquement l'image actuellement chargée, avec des paramètres différents pour chaque canal (non lié) à moins que -linked ne soit fourni. Les arguments sont optionnels, shadowclip est le point d'écrêtage des ombres, mesuré en unités sigma à partir du pic de l'histogramme principal (la valeur par défaut est -2.8), targetbg est la valeur cible de l'arrière-plan, donnant une luminosité finale à l'image, plage [0, 1], la valeur par défaut est 0.25. Les valeurs par défaut sont celles utilisées dans le rendu Auto-Ajustement à partir de l'interface graphique.

N'utilisez pas la version non liée après l'étalonnage des couleurs, car elle modifierait la balance des blancs

bg ScriptableRetour à l'index

bg
Retourne le niveau d'arrière-plan de l'image chargée en mémoire

bgnoise ScriptableRetour à l'index

bgnoise
Renvoie le niveau du bruit de fond de l'image chargée en mémoire

Pour plus d'informations, voir la documentation des statistiques


binxy ScriptableRetour à l'index

binxy coefficient [-sum]
Calcule le binning numérique de l'image en mémoire (somme des pixels 2x2, 3x3..., comme le binning analogique des caméras CCD). Si l'argument facultatif -sum est passé, alors la somme des pixels est calculée, tandis que c'est la moyenne lorsque aucun argument facultatif n'est fourni

boxselect ScriptableRetour à l'index

boxselect [-clear] [x y width height]
Créer une zone de sélection dans l'image actuellement chargée avec les arguments ** x**, y, width et ** height**, où x et y sont les coordonnées du coin supérieur gauche commençant à (0, 0), et width et ** height**, la taille de la sélection. L'argument -clear supprime toute zone de sélection. Si aucun argument n'est transmis, la sélection actuelle est affichée

calibrate ScriptableRetour à l'index

calibrate sequencename [-bias=filename] [-dark=filename] [-flat=filename] [-cc=dark [siglo sighi] || -cc=bpm bpmfile] [-cfa] [-debayer] [-fix_xtrans] [-equalize_cfa] [-opt[=exp]] [-all] [-prefix=] [-fitseq]
Calibre la séquence sequencename en utilisant les bias, dark et flat donnés en argument.

Pour les bias, un niveau uniforme peux être spécifié à la place d'une image, en entrant une expression entre guillemet commençant par le signe = tel que -bias="=256" ou -bias="=64*$OFSFSET".

Par défaut, la correction cosmétique n'est pas activée. Si vous voulez en appliquer une, vous devez le spécifier avec l'option -cc=.
Vous pouvez utiliser l'option -cc=dark pour détecter les pixels chauds et froids à partir du master dark (un master dark doit être fourni avec l'option -dark=), éventuellement suivi de siglo et sighi pour les pixels froids et chauds respectivement. Une valeur de 0 désactive la correction. Si les sigmas ne sont pas fournis, seule la détection des pixels chauds avec un sigma de 3 sera appliquée.
Alternativement, vous pouvez utiliser l'option -cc=bpm suivie du chemin vers votre carte de mauvais pixels pour spécifier quels pixels doivent être corrigés. Un fichier d'exemple peut être obtenu avec la commande find_hot sur un master dark.

Trois options s'appliquent aux images couleur (au format CFA) : -cfa pour les corrections cosmétiques, -debayer pour dématricer les images avant de les enregistrer, et -equalize_cfa pour égaliser l'intensité moyenne des couches RVB du flat maître, afin d'éviter de teinter l'image calibrée.
L'option -fix_xtrans est dédiée aux fichiers X-Trans en appliquant une correction sur les Darks et les Biais/offset pour supprimer un vilain motif carrée.
Il est également possible d'optimiser la soustraction des darks avec -opt, qui nécessite la fourniture de masters de bias et de dark, et calcule automatiquement le coefficient à appliquer au dark, ou calcule le coefficient grâce au mot-clé "exposure" avec -opt=exp.
Par défaut, les images marquées comme exclues ne sont pas traitées. L'argument -all peut être utilisé pour forcer le traitement de toutes les images même si elles sont marquées comme exclues.
Le nom de la séquence de sortie comme par le préfixe "pp_" sauf indication contraire spécifié avec l'option -prefix=.
Si -fitseq est fourni, la séquence de sortie sera une séquence FITS (fichier unique)

calibrate_single ScriptableRetour à l'index

calibrate_single imagename [-bias=filename] [-dark=filename] [-flat=filename] [-cc=dark [siglo sighi] || -cc=bpm bpmfile] [-cfa] [-debayer] [-fix_xtrans] [-equalize_cfa] [-opt[=exp]] [-prefix=]
Calibre l'image imagename en utilisant les bias, dark et flat donnés en argument.

Pour les bias, un niveau uniforme peux être spécifié à la place d'une image, en entrant une expression entre guillemet commençant par le signe = tel que -bias="=256" ou -bias="=64*$OFSFSET".

Par défaut, la correction cosmétique n'est pas activée. Si vous voulez en appliquer une, vous devez le spécifier avec l'option -cc=.
Vous pouvez utiliser l'option -cc=dark pour détecter les pixels chauds et froids à partir du master dark (un master dark doit être fourni avec l'option -dark=), éventuellement suivi de siglo et sighi pour les pixels froids et chauds respectivement. Une valeur de 0 désactive la correction. Si les sigmas ne sont pas fournis, seule la détection des pixels chauds avec un sigma de 3 sera appliquée.
Alternativement, vous pouvez utiliser l'option -cc=bpm suivie du chemin vers votre carte de mauvais pixels pour spécifier quels pixels doivent être corrigés. Un fichier d'exemple peut être obtenu avec la commande find_hot sur un master dark.

Trois options s'appliquent aux images couleur (au format CFA) : -cfa pour les corrections cosmétiques, -debayer pour dématricer les images avant de les enregistrer, et -equalize_cfa pour égaliser l'intensité moyenne des couches RVB du flat maître, afin d'éviter de teinter l'image calibrée.
L'option -fix_xtrans est dédiée aux fichiers X-Trans en appliquant une correction sur les Darks et les Biais/offset pour supprimer un vilain motif carrée.
Il est également possible d'optimiser la soustraction des darks avec -opt, qui nécessite la fourniture de masters de bias et de dark, et calcule automatiquement le coefficient à appliquer au dark, ou calcule le coefficient grâce au mot-clé "exposure" avec -opt=exp
Le nom du fichier de sortie comme par le préfixe "pp_" sauf indication contraire spécifié avec l'option -prefix=

capabilities ScriptableRetour à l'index

capabilities
Affiche les fonctionnalités de Siril, en fonction de la compilation et de l'exécution

catsearch ScriptableRetour à l'index

catsearch name
Recherche un objet par nom et l'ajoute au catalogue d'annotations de l'utilisateur. L'objet est d'abord recherché dans les catalogues d'annotations, s'il n'est pas trouvé, une demande est faite à SIMBAD.
L'objet peut être un objet du système solaire, auquel cas un préfixe, "a :" pour astéroïde, "p :" pour planète, "c :" pour comète, "dp :" pour planète naine ou "s :" pour satellite naturel, doit précéder le nom de l'objet. La recherche est effectuée pour la date, l'heure et le lieu d'observation figurant dans l'en-tête de l'image, à l'aide du service Miriade de l'IMCCE

ccm ScriptableRetour à l'index

ccm m00 m01 m02 m10 m11 m12 m20 m21 m22 [gamma]
Applique une matrice de conversion des couleurs à l'image en cours.

Il y a 9 arguments obligatoires correspondant aux 9 éléments de la matrice :

m00, m01, m02
m10, m11, m12
m20, m21, m22

Un dixième argument supplémentaire [gamma] peut être fourni : s'il est omis, la valeur par défaut est 1,0.

Ceux-ci sont appliqués à chaque pixel selon les formules suivantes :

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 ScriptableRetour à l'index

cd directory
Définit le nouveau répertoire de travail courant.

L'argument directory peut contenir le jeton ~, qui est remplacé par le répertoire personnel, les répertoires comportant des espaces dans leur nom peuvent être protégés en utilisant des guillemets simples ou doubles

cdg ScriptableRetour à l'index

cdg
Renvoie les coordonnées du centre de gravité de l'image. Seuls les pixels dont la valeur est supérieure à 15,7% de l'ADU maximale et dont les quatre voisins remplissent les mêmes conditions sont utilisés pour le calculer, et il n'est calculé que s'il y en a au moins 50

clahe ScriptableRetour à l'index

clahe cliplimit tileSize
Égalise l'histogramme d'une image en utilisant l'égalisation d'histogramme par contraste adaptatif limité.

cliplimit définit le seuil pour la limitation du contraste.
tilesize définit la taille de la grille pour l'égalisation d'histogramme. L'image d'entrée sera divisée en tuiles rectangulaires de taille égale

clear Non scriptableRetour à l'index

clear
Efface les logs de la console

clearstar Non scriptableRetour à l'index

clearstar
Efface toutes les étoiles sauvegardées en mémoire et affichées à l'écran

close ScriptableRetour à l'index

close
Ferme correctement l'image ou la séquence ouverte, le cas échéant

conesearch ScriptableRetour à l'index

conesearch [limit_magnitude] [-cat=] [-phot] [-obscode=] [-tag={on|off}] [-log={on|off}] [-trix=] [-out=]
Affiche les étoiles du catalogue local par défaut pour l'image chargée résolue, jusqu'à la magnitude limite limit_magnitude fournie (13 par défaut pour la plupart des catalogues, sauf 14.5 pour aavso_chart, 20 pour solsys, et omis pour pgc).
Un autre catalogue en ligne peut être spécifié avec -cat=, prenant les valeurs
- for stars: tycho2, nomad, gaia, localgaia, ppmxl, bsc, apass, gcvs, vsx, simbad, aavso_chart
- for exoplanets: exo
- for deep-sky: pgc
- for solar system objects: solsys (closest IAU observatory code can be passed with the argument -obscode= for better position accuracy)

Pour les catalogues d'étoiles contenant des données photométriques, les étoiles sans information B-V seront conservées ; elles peuvent être exclues en passant l'option -phot
L'argument -trix= peut être passé à la place d'un catalogue suivi d'un nombre entre 0 et 511 pour tracer les étoiles contenues dans les catalogues locaux trixel de niveau 3 (pour l'usage des développeurs principalement)

Certains catalogues (bsc, gcvs, pgc, exo, aavso_chart, varisum et solsys) affichent également, par défaut, les noms à côté des marqueurs dans l'écran (interface graphique uniquement) et les listent dans le journal. Pour d'autres qui ont un plus grand nombre d'objets, à savoir vsx et simbad, l'information peut aussi être affichée, mais, comme elle risque d'encombrer l'écran, elle n'est pas activée par défaut. Ce comportement peut être activé/désactivé avec les options -tag=on|off pour afficher les noms à côté des marqueurs et -log=on|off pour lister les objets dans le journal de la console

La liste des éléments présents dans l'image peut éventuellement être sauvegardée dans un fichier csv en passant l'argument -out=

convert ScriptableRetour à l'index

convert basename [-debayer] [-fitseq] [-ser] [-start=index] [-out=]
Convertit toutes les images du répertoire de travail actuel qui sont dans un format supporté en séquence d'images FITS de Siril (plusieurs fichiers) ou en séquence FITS (un seul fichier) si -fitseq est fourni ou en séquence SER (un seul fichier) si -ser est fourni. L'argument basename est le nom de base de la nouvelle séquence, les nombres et l'extension seront mis derrière.
Pour les images FITS, Siril essaiera de faire un lien symbolique ; si ce n'est pas possible, les fichiers seront copiés. L'option -debayer applique le dématriçage aux images d'entrée CFA ; dans ce cas, aucun lien symbolique n'est effectué.
-start=index définit le numéro d'index de départ, utile pour continuer une séquence existante (non utilisé avec -fitseq ou -ser ; assurez-vous de supprimer ou d'effacer le .seq cible s'il existe dans ce cas).
L'option -out= modifie le répertoire de sortie en fonction de l'argument fourni.

Voir aussi CONVERTRAW et LINK

Liens : convertraw, link

convertraw ScriptableRetour à l'index

convertraw basename [-debayer] [-fitseq] [-ser] [-start=index] [-out=]
Identique à CONVERT mais ne convertit que les fichiers RAW des reflex numériques se trouvant dans le répertoire de travail actuel

Liens : convert

cosme ScriptableRetour à l'index

cosme [filename].lst
Applique la moyenne locale à un ensemble de pixels de l'image chargée (correction cosmétique). Les coordonnées de ces pixels se trouvent dans un fichier texte [.lst file], la commande FIND_HOT peut également le créer pour des pixels chauds uniques, mais une opération manuelle est nécessaire pour supprimer des lignes ou des colonnes. COSME est adapté pour corriger les pixels chauds et froids résiduels après la calibration.
Au lieu de fournir la liste des mauvais pixels, il est également possible de les détecter dans l'image courante à l'aide de la commande FIND_COSME

Format de fichier pour la liste des mauvais pixels : * Les lignes de la forme P x y corrigent le pixel aux coordonnées (x, y), type est un caractère optionnel (C ou H) spécifiant à Siril si le mauvais pixel courant est froid ou chaud. Cette ligne est créée par la commande FIND_HOT mais vous pouvez aussi ajouter les deux types de lignes suivants manuellement * Les lignes de la forme C x 0`corrigeront la mauvaise colonne aux coordonnées x. * Les lignes de la forme `L y 0 fixeront la mauvaise ligne aux coordonnées y.


cosme_cfa ScriptableRetour à l'index

cosme_cfa [filename].lst
Même fonction que COSME mais qui s'applique aux images RAW CFA

Liens : cosme

crop ScriptableRetour à l'index

crop [x y width height]
Recadre dans une zone sélectionnée de l'image chargée.

Si une sélection est active, aucun autre argument n'est nécessaire. Sinon, ou dans les scripts, les arguments doivent être donnés, avec x et y étant les coordonnées du coin supérieur gauche, et width et height la taille de la sélection. Alternativement, la sélection peut être effectuée à l'aide de la commande BOXSELECT

Liens : boxselect

ddp Non scriptableRetour à l'index

ddp level coef sigma
Effectue un traitement de développement numérique (DDP) sur l'image chargée, comme l'a d'abord décrit Kunihiko Okano. Cette implémentation est celle décrite dans IRIS.

Il combine une distribution linéaire sur les niveaux de luminosité faibles (inférieurs à level) et une non linéaire sur les niveaux élevés.
Il utilise un filtre Gaussien de l'écart-type sigma et multiplie l'image résultante par coef. Les valeurs typiques pour sigma se situent entre 0,7 et 2. L'argument niveau doit être compris dans la plage [0, 65535] pour les images 16 bits et peut être donné dans la plage [0, 1] ou [0, 65535] pour les images 32 bits, auquel cas il sera automatiquement mis à l'échelle

denoise ScriptableRetour à l'index

denoise [-nocosmetic] [-mod=m] [ -vst | -da3d | -sos=n [-rho=r] ] [-indep]
Réduit le bruit de l'image en utilisant l'algorithme bayésien non local décrit par Lebrun, Buades et Morel.

Il est fortement recommandé d'appliquer une correction cosmétique pour éliminer le bruit sel et poivre avant d'exécuter le réducteur de bruit, et par défaut cette commande applique automatiquement la correction cosmétique. Toutefois, si celle-ci a déjà été effectuée plus tôt dans le flux de travail, elle peut être désactivée ici à l'aide de la commande optionnelle -nocosmetic.

Un argument optionnel -mod=m peut être donné, où 0 <= m <= 1. Le pixel de sortie est calculé comme suit : out=m x d + (1 − m) x in, où d est la valeur de pixel réduite du bruit. Une valeur de modulation de 1 n'appliquera aucune modulation. Si le paramètre est omis, il est par défaut à 1.

L'argument optionnel -vst peut être utilisé pour appliquer la transformation de stabilisation de variance Anscombe généralisée avant NL-Bayes. Cela est utile avec des images à faible luminosité telles que des images simples, où le bruit suit une distribution de Poisson ou Poisson-Gaussien plutôt qu'une distribution principalement gaussienne. Il ne peut pas être utilisé en conjonction avec DA3D ou SOS, et pour le débruitage d'images empilées, il n'est généralement pas bénéfique.

L'argument optionnel -da3d peut être utilisé pour activer le débruitage Data-Adaptive Dual Domain (DA3D) en tant qu'algorithme de débruitage final. Cela utilise la sortie de BM3D comme image de guidage pour affiner le débruitage. Il améliore les détails et réduit les artefacts en escalier.

L'argument optionnel -sos=n peut être utilisé pour activer le renforcement itératif de la détection de bruit Strengthen-Operate-Subtract (SOS), avec le nombre d'itérations spécifié par n. En particulier, ce renforceur peut produire de meilleurs résultats si l'algorithme NL-Bayes non renforcé produit des artefacts dans les zones de fond de ciel. Si à la fois -da3d et -sos=n sont spécifiés, le dernier spécifié sera appliqué.

L'argument facultatif -rho=r peut être spécifié, où 0 < r < 1. Cela est utilisé par le booster SOS pour déterminer la quantité d'image bruitée ajoutée au résultat intermédiaire entre chaque itération. Si -sos=n n'est pas spécifié, le paramètre est ignoré.

Par défaut, DA3D ou SOS ne sont pas appliqués, car l'amélioration de la réduction de bruit est généralement relativement faible et ces techniques nécessitent un temps de traitement supplémentaire.

En de très rares occasions ,lors du débruitage des images en couleur, des artefacts de couleur en bloc peuvent apparaître. L'argument optionnel -indep peut être utilisé pour éviter cela en effectuant le débruitage de chaque canal séparément. Cela est plus lent mais éliminera les artefacts

dir Non scriptableRetour à l'index

dir
Liste des fichiers et répertoires dans le répertoire de travail

Cette commande est disponible uniquement sur Microsoft Windows, pour une commande équivalente sur Linux et MacOS, voir ls.

disto Non scriptableRetour à l'index

disto [clear]
Montre le champ de distorsion sur une image résolue dont la solution comprend des termes de distorsion

Passer l'option clear pour désactiver

dumpheader ScriptableRetour à l'index

dumpheader
Affiche l'en-tête FITS de l'image chargée dans la console

entropy ScriptableRetour à l'index

entropy
Calcule l'entropie de l'image chargée sur la couche affichée, uniquement dans la zone sélectionnée si une zone a été sélectionnée ou dans l'image entière. L'entropie est une façon de mesurer le bruit ou les détails d'une image

epf ScriptableRetour à l'index

epf [-guided] [-d=] [-si=] [-ss=] [-mod=] [-guideimage=]
Applique un filtre préservant les bords. Par défaut, un filtre bilatéral est appliqué ; un filtre guidé peut être spécifié en utilisant l'argument -guided. Le diamètre du filtre est fixé par défaut à 3 et peut être défini à l'aide de -d=. Attention aux valeurs de d supérieures à 20, car l'algorithme peut être coûteux en termes de calcul.

La valeur sigma du filtrage d'intensité peut être définie à l'aide de -si= et la valeur sigma spatiale peut être définie à l'aide de -ss=. Les valeurs sigma représentent la différence entre les valeurs des pixels sur lesquelles le filtre agit fortement : pour les images 32 bits, la valeur doit être comprise entre 0 et 1,0, tandis que pour les images 16 bits, elle doit être comprise entre 0 et 65535. Par défaut, si rien n'est spécifié, les deux valeurs sont fixées à 11. Si -d=0 est défini, le diamètre du filtre sera défini automatiquement en fonction de la valeur de -ss. Notez que lors de l'application d'un filtre guidé, seul *-sc** s'applique.

Lors de la spécification d'un filtre guidé, une image guide peut être définie en utilisant -guideimage=. Par défaut, si aucune image guide n'est spécifiée, un filtre auto-guidé est effectué. Note : l'image guide doit avoir les mêmes dimensions que l'image à filtrer !

L'intensité du filtre peut être modulée à l'aide de l'argument -mod=. Si mod = 1.0, l'effet complet du filtre sera appliqué ; pour mod inférieur à 1.0, une proportion de l'image originale sera mélangée au résultat, et pour mod = 0.0, aucun filtrage ne sera appliqué

exit ScriptableRetour à l'index

exit
Quitte l'application

extract ScriptableRetour à l'index

extract NbPlans
Extrait les plans NbPlans du domaine des ondelettes de l'image chargée.
Voir aussi WAVELET et WRECONS. Pour l'extraction des couleurs, voir SPLIT


extract_Green ScriptableRetour à l'index

extract_Green
Extrait le signal vert de l'image CFA chargée. Siril lit les informations de la matrice de Bayer à partir de l'image ou des préférences et exporte uniquement les données moyennes du filtre vert dans un nouveau fichier FITS de taille réduite. Un nouveau fichier est créé, son nom est préfixé par "Green_"

extract_Ha ScriptableRetour à l'index

extract_Ha [-upscale]
Extrait le signal H-Alpha de l'image CFA chargée. Il lit les informations de la matrice de Bayer à partir de l'image ou des préférences et exporte uniquement les données du filtre rouge dans un nouveau fichier FITS de taille réduite. Si l'argument -upscale est fourni, la sortie sera mise à l'échelle x2 pour correspondre à la résolution complète du capteur, par exemple pour correspondre à d'autres images produites par la même famille de capteurs. Un nouveau fichier est créé, son nom est préfixé par "Ha_"

extract_HaOIII ScriptableRetour à l'index

extract_HaOIII [-resample=]
Extrait les signaux H-Alpha et O-III de l'image CFA chargée. Siril lit les informations de la matrice de Bayer à partir de l'image ou des préférences et exporte uniquement les données du filtre rouge pour H-Alpha dans un nouveau fichier FITS de taille réduite (comme EXTRACTHA) et conserve les trois autres pour O-III avec un remplacement interpolé pour le pixel rouge. Les noms des fichiers de sortie commencent par le préfixe "Ha_" et "OIII_"

L'argument optionnel -resample={ha|oiii} indique s'il faut suréchantillonner l'image Ha ou sous-échantillonner l'image OIII pour avoir des images de même taille. Si cet argument n'est pas fourni, aucun rééchantillonnage ne sera effectué et l'image OIII aura deux fois la hauteur et la largeur de l'image Ha

fdiv ScriptableRetour à l'index

fdiv filename scalar
Divise l'image chargée par l'image donnée en argument. L'image résultante est multipliée par la valeur de l'argument scalar. Voir aussi IDIV

Liens : idiv

ffill ScriptableRetour à l'index

ffill value [x y width height]
Même commande que FILL mais il s'agit d'un remplissage symétrique d'une région définie par la souris ou avec BOXSELECT. Utilisé pour traiter une image dans le domaine de Fourier (FFT)

Liens : fill, boxselect

fftd ScriptableRetour à l'index

fftd modulus phase
Applique une transformée de Fourier rapide à l'image chargée. modulus et phase donnés en argument sont les noms des fichiers FITS sauvegardés

ffti ScriptableRetour à l'index

ffti modulus phase
Récupère l'image corrigée en appliquant une transformation inverse. Les arguments modulus et phase sont les noms des fichiers d'entrée, le résultat sera la nouvelle image chargée

fill ScriptableRetour à l'index

fill value [x y width height]
Remplit l'image chargée entièrement ou seulement la sélection s'il y en a une avec des pixels ayant l'intensité valeur exprimée en ADU

find_cosme ScriptableRetour à l'index

find_cosme cold_sigma hot_sigma
Détection et remplacement automatique des pixels froids et chauds dans l'image chargée, avec les seuils transmis en arguments en unités sigma

find_cosme_cfa ScriptableRetour à l'index

find_cosme_cfa cold_sigma hot_sigma
Même commande que FIND_COSME mais pour les images CFA

Liens : find_cosme

find_hot ScriptableRetour à l'index

find_hot filename cold_sigma hot_sigma
Enregistre dans le répertoire de travail un fichier liste filename (format texte) contenant les coordonnées des pixels dont l'intensité hot_sigma fois supérieure et cold_sigma fois inférieure à l'écart-type, extraits de l'image chargée. Nous utilisons généralement cette commande sur un fichier dark maître. La commande COSME permet d'appliquer cette liste de mauvais pixels à une image chargée, voir aussi SEQCOSME pour l'appliquer à une séquence

Liens : cosme, seqcosme

Les lignes P x y type vont fixer le pixel aux coordonnées (x, y), où "type" est un caractère optionnel (C ou H) spécifiant à Siril si le pixel actuel est froid ou chaud. Cette ligne est créée par la commande FIND_HOT, mais vous pouvez également ajouter manuellement quelques lignes :
Les lignes C x 0 type vont fixer la colonne défectueuse aux coordonnées x.
Les lignes L y 0 type vont fixer la ligne défectueuse aux coordonnées y.

findcompstars ScriptableRetour à l'index

findcompstars star_name [-narrow|-wide] [-catalog={nomad|apass}] [-dvmag=3] [-dbv=0.5] [-emag=0.03] [-out=nina_file.csv]
Recherche automatiquement des étoiles de comparaison dans le champ de l'image chargée résolue en astrométrie, pour l'analyse photométrique de la courbe de lumière d'une étoile selon les critères suivants
- 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=.

La liste peut éventuellement être sauvegardée sous la forme d'un fichier CSV compatible avec la liste des étoiles de comparaison de NINA, en spécifiant le nom du fichier avec -out=. Si le nom fourni est la valeur spéciale auto, il est généré en utilisant les paramètres d'entrée

Voir aussi LIGHT_CURVE

Links: light_curve

findstar ScriptableRetour à l'index

findstar [-out=] [-layer=] [-maxstars=]
Détecte les étoiles dans l'image actuellement chargée, dont le niveau est supérieur à un seuil calculé par Siril.
Ensuite, une PSF est appliquée et Siril rejette toutes les structures détectées qui ne répondent pas à un ensemble de critères de détection prescrits, qui peuvent être ajustés avec la commande SETFINDSTAR.
Enfin, une ellipse est dessinée autour des étoiles détectées.

Le paramètre optionnel -out= permet d'enregistrer les résultats dans le chemin d'accès donné.
L'option -layer= spécifie la couche sur laquelle la détection est effectuée (pour les images en couleur uniquement).
Vous pouvez également limiter le nombre maximum d'étoiles détectées en passant une valeur à l'option -maxstars=.


Voir aussi la commande CLEARSTAR


fix_xtrans ScriptableRetour à l'index

fix_xtrans
Corrige les pixels Fujifilm X-Trans Auto Focus dans l'image chargée.

En effet, en raison du système de mise au point automatique à détection de phase, les photosites utilisés pour la mise au point automatique reçoivent un peu moins de lumière que les photosites environnants. L'appareil photo compense cela et augmente les valeurs de ces photosites spécifiques, ce qui donne un carré visible au milieu des images dark/bias

fixbanding ScriptableRetour à l'index

fixbanding amount sigma [-vertical]
Tente de supprimer les trames horizontales ou verticales de l'image chargée.
amount définit le montant de la correction, entre 0 et 4.
sigma définit le niveau de protection de l'algorithme, plus sigma est élevé, plus la protection est importante, entre 0 et 5. Des valeurs de 1 et 1 sont souvent suffisantes.
L'option -vertical permet de supprimer les trames verticales, l'option horizontale étant la valeur par défaut

fmedian ScriptableRetour à l'index

fmedian ksize modulation
Effectue un filtre médian de taille ksize x ksize (ksize DOIT être impair) sur l'image chargée avec un paramètre de modulation modulation.

Le pixel de sortie est calculé comme suit : out = mod x m + (1 − mod) x in, où m est la valeur du pixel filtré par médiane. Une valeur de modulation de 1 n'appliquera aucune modulation

fmul ScriptableRetour à l'index

fmul scalar
Multiplie l'image chargée par le scalaire scalar donné en argument

gauss ScriptableRetour à l'index

gauss sigma
Applique à l'image chargée un flou gaussien avec le sigma donné.

Voir aussi UNSHARP, la même chose avec un paramètre de mélange

Liens : unsharp

get ScriptableRetour à l'index

get { -a | -A | variable }
Obtient une valeur des paramètres en utilisant son nom, ou liste tout avec -a (liste de noms et de valeurs) ou avec -A (liste détaillée)

Voir aussi SET pour mettre à jour les valeurs

Liens : set

getref ScriptableRetour à l'index

getref sequencename
Affiche des informations sur l'image de référence de la séquence donnée en argument. La première image a l'index 0

ght ScriptableRetour à l'index

ght -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Étirement hyperbolique généralisé basé sur le travail de l'équipe ghsastro.co.uk.

L'argument -D= définit la force de l'étirement, entre 0 et 10. C'est le seul argument obligatoire. Les arguments facultatifs suivants permettent de mieux adapter l'étirement :
B définit l'intensité de l'étirement près du point focal, entre -5 et 15 ;
LP définit une plage de préservation des ombres entre 0 et SP où l'étirement sera linéaire, préservant les détails d'ombre ;
SP définit le point de symétrie de l'étirement, entre 0 et 1, qui est le point auquel l'étirement est le plus intense ;
HP définit une région entre HP et 1 où l'étirement est linéaire, préservant les détails de la mise en évidence et évitant le gonflement des étoiles.
Si elle est omise, B, LP et SP ont une valeur par défaut de 0.0 et HP a une valeur par défaut de 1.0.
Un argument facultatif (soit -human, -even ou -independent, peut être passé pour sélectionner la luminance pondérée humaine ou pondérée paire ou les canaux de couleur indépendants pour les étirements de couleur). L'argument est ignoré pour les images mono. Alternativement, l'argument -sat spécifie que l'étirement est effectué sur la saturation de l'image - l'image doit être en couleur et tous les canaux doivent être sélectionnés pour que cela fonctionne.
En option, le paramètre [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, V, B, RV, RB ou VB. La valeur par défaut est « tous les canaux ». Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

grey_flat ScriptableRetour à l'index

grey_flat
Égalise l'intensité moyenne des couches RVB dans l'image CFA chargée. Il s'agit du même processus que celui utilisé sur les images flats lors de la calibration, lorsque l'option "equalize CFA" est utilisée

help ScriptableRetour à l'index

help [command]
Liste des commandes disponibles ou aide pour une commande

histo ScriptableRetour à l'index

histo channel (channel=0, 1, 2 with 0: red, 1: green, 2: blue)
Calcule l'histogramme du canal de l'image chargée et produit le fichier histo_[nom du canal].dat dans le répertoire de travail.
layer = 0, 1 ou 2 avec 0=rouge, 1=vert and 2=bleu

iadd ScriptableRetour à l'index

iadd filename
Ajoute l'image filename à l'image chargée.
Le résultat sera en 32 bits par canal si les préférences le permettent

icc_assign ScriptableRetour à l'index

icc_assign profile
Affecte le profil ICC spécifié dans l'argument à l'image actuelle.
L'un des arguments spéciaux suivants peut être fourni pour utiliser les profils intégrés respectifs : sRGB, sRGBlinear, Rec2020, Rec2020linear, working pour définir le profil de couleur de travail monochrome ou RVB, (pour les images monochromes uniquement) linear, ou le chemin d'accès à un fichier de profil ICC peut être fourni. Si un profil intégré est spécifié avec une image monochrome chargée, le profil Gray avec la CRT correspondant sera utilisé

icc_convert_to ScriptableRetour à l'index

icc_convert_to profile [intent]
Convertit l'image actuelle au profil ICC spécifié.
L'un des arguments spéciaux suivants peut être fourni pour utiliser les profils intégrés respectifs : sRGB, sRGBlinear, Rec2020, Rec2020linear, graysrgb, grayrec2020, graylinear ou working pour définir le profil de travail de couleur monochrome ou RVB, (pour les images monochromes uniquement) linear, ou le chemin d'accès à un fichier de profil ICC peut être fourni. Si un profil intégré est spécifié avec une image monochrome chargée, le profil Gray avec la CRT correspondant sera utilisé.

Un deuxième argument peut être fourni pour spécifier l'intention de transformation de la couleur : il doit s'agir d'un des éléments suivants : perceptual, relative (pour la colorimétrie relative), saturation ou absolute (pour la colorimétrie absolue)

icc_remove ScriptableRetour à l'index

icc_remove
Supprime le profil ICC de l'image actuelle, si elle en possède un

idiv ScriptableRetour à l'index

idiv filename
Divise l'image chargée par l'image filename.
Le résultat sera en 32 bits par canal si les préférences le permettent.

Voir aussi FDIV

Liens : fdiv

imul ScriptableRetour à l'index

imul filename
Multiplie l'image filename par l'image chargée.
Le résultat sera en 32 bits par canal si les préférences le permettent

inspector Non scriptableRetour à l'index

inspector
Divise l'image chargée en une mosaïque de neuf panneaux montrant les coins et le centre de l'image pour une inspection plus approfondie (interface graphique uniquement)

invght ScriptableRetour à l'index

invght -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Inverse un étirement hyperbolique généralisé. Il s'agit de la transformation inverse de l'étirement hyperbolique généralisé. S'il est fourni avec les mêmes paramètres, il annule une commande d'étirement hyperbolique généralisé, ce qui permet de revenir à une image linéaire. Il peut également fonctionner de la même manière que le GHT, mais pour des images en négatif

Liens : ght

invmodasinh ScriptableRetour à l'index

invmodasinh -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Inverse un étirement arcsinh modifié. Il fournit la transformation inverse de MODASINH et, s'il est fourni avec les mêmes paramètres, il annule une commande MODASINH, ce qui permet de revenir à une image linéaire. Il peut également fonctionner de la même manière que MODASINH, mais pour des images en négatif

Liens : modasinh

invmtf ScriptableRetour à l'index

invmtf low mid high [channels]
Inverse une fonction de transfert de tons moyens. Elle fournit la transformation inverse de la MTF et, si elle est fournie avec les mêmes paramètres, elle annule une commande MTF, ce qui permet de revenir à une image linéaire. Elle peut également fonctionner de la même manière que la MTF, mais pour les images en négatif

Liens : mtf

isub ScriptableRetour à l'index

isub filename
Soustrait l'image chargée de l'image filename.
Le résultat sera en 32 bits par canal si les préférences le permettent, ce qui permet de stocker des valeurs négatives. Pour couper une valeur négative, utilisez le mode 16 bits ou la commande THRESHLO

Liens : threshlo

jsonmetadata ScriptableRetour à l'index

jsonmetadata FITS_file [-stats_from_loaded] [-nostats] [-out=]
Exporte les métadonnées et les statistiques de l'image actuellement chargée sous forme JSON. Le nom de fichier est requis, même si l'image est déjà chargée. Les données de l'image ne peuvent pas être lues à partir du fichier si l'image est déjà chargée et si l'option -stats_from_loaded est spécifiée. Les statistiques peuvent être désactivées en fournissant l'option -nostats. Un fichier contenant les données JSON est créé avec le nom de fichier par défaut '$(FITS_nom_de_fichier_sans_extension).json' et peut être modifié avec l'option -out=

light_curve ScriptableRetour à l'index

light_curve sequencename channel [-autoring] { -at=x,y | -wcs=ra,dec } { -refat=x,y | -refwcs=ra,dec } ...
light_curve sequencename channel [-autoring] -ninastars=file
Analyse plusieurs étoiles avec photométrie d'ouverture dans une séquence d'images et produit une courbe de lumière pour l'une d'entre elles, calibrée par les autres. Les premières coordonnées, en pixels si -at= est utilisé ou en degrés si -wcs= est utilisé, sont pour l'étoile dont la lumière sera tracée, les autres pour les étoiles de comparaison.
Alternativement, une liste d'étoiles cibles et de référence peut être transmise dans le format de la liste d'étoiles du plugin exoplanète de NINA, avec l'option -ninastars=. Siril vérifie que toutes les étoiles de référence peuvent être utilisées avant de les utiliser. Un fichier de données est créé dans le répertoire courant nommé light_curve.dat, puis Siril trace le résultat dans une image PNG
Les rayons de l'anneau peuvent être configurés dans les paramètres ou fixés à un facteur de la FWHM de l'image de référence si l'option -autoring est activée. Ces tailles de rayons sont 4,2 fois et 6,3 fois le FWHM pour les rayons intérieurs et extérieurs, respectivement.

Voir également la commande setphot pour définir de la même manière la taille du rayon d'ouverture.

Voir aussi SEQPSF pour les opérations sur une seule étoile

Liens : seqpsf

limit ScriptableRetour à l'index

limit { -clip | -posrescale | -rescale }
Limite les valeurs des pixels dans les images 32 bits à la plage de 0,0 à 1,0. Cette commande ne s'applique pas aux images 16 bits, car il ne peut y avoir de valeurs hors plage. La limitation de la plage peut être effectuée de l'une des manières suivantes :

-clip : cette option écrête simplement tous les pixels négatifs à 0,0 et tous les pixels ayant une valeur > 1,0 à 1,0.
-posrescale : cette option met à l'échelle toutes les valeurs positives des pixels de manière que la valeur maximale soit de 1,0, les pixels négatifs étant ramenés à 0,0. Pour les images à trois canaux, le même facteur d'échelle est appliqué à tous les canaux. Si la valeur maximale du pixel est déjà <= 1,0, les pixels négatifs seront toujours écrêtés, mais aucun facteur d'échelle ne sera appliqué aux pixels positifs.
-rescale : en utilisant cette option, s'il y a des valeurs de pixels négatives, une valeur constante sera ajoutée à tous les pixels afin que la valeur minimale soit 0.0. Ensuite, si la valeur maximale des pixels est > 1.0, un facteur d'échelle est appliqué afin que la valeur maximale des pixels soit ramenée à 1.0.

Notez que s'il y a une ou plusieurs données très aberrantes (par exemple à la suite de mauvais pixels), les options -rescale et -posrescale peuvent produire un résultat inattendu. Cela peut être atténué en appliquant d'abord une correction cosmétique à l'image

linear_match ScriptableRetour à l'index

linear_match reference low high
Calcule et applique une fonction linéaire entre une image de référence et l'image chargée.

L'algorithme ignore tous les pixels de référence dont les valeurs se situent en dehors de la plage [low, high]

link basename [-date] [-start=index] [-out=]
Identique à CONVERT mais ne convertit que les fichiers FITS se trouvant dans le répertoire de travail actuel. Ceci est utile pour éviter les conversions de résultats JPEG ou d'autres fichiers qui peuvent se retrouver dans le répertoire. L'argument supplémentaire -date permet de trier les fichiers en fonction de leur valeur DATE-OBS plutôt qu'en fonction de leur nom alphanumérique

Liens : convert

linstretch ScriptableRetour à l'index

linstretch -BP= [-sat] [-clipmode=] [channels] [-clipmode=]
Étire linéairement l'image jusqu'à un nouveau point noir BP.
Le paramètre optionnel [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, G, B, RG, RB ou GB. La valeur par défaut est tous les canaux.
En option, le paramètre -sat peut être utilisé pour appliquer l'étirement linéaire au canal de saturation de l'image. Cet argument ne fonctionne que si tous les canaux sont sélectionnés. Le mode d'écrêtage peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées, la valeur par défaut étant rgbblend

livestack ScriptableRetour à l'index

livestack filename
Traite l'image fournie pour le livestacking. Cette opération n'est possible qu'après START_LS. Le processus implique la calibration du fichier entrant s'il est configuré dans START_LS, le dématriçage s'il s'agit d'une image couleur, l'alignement et l'empilement. Le résultat temporaire sera dans le fichier live_stack_00001.fit jusqu'à ce qu'une nouvelle option permettant de le modifier soit ajoutée

Liens : start_ls

Avertissement

Notez que les commandes de livestacking mettent Siril dans un état dans lequel il n'est pas capable de traiter d'autres commandes. Après START_LS, seuls LIVESTACK, STOP_LS et EXIT peuvent être appelés jusqu'à ce que STOP_LS soit appelé pour remettre Siril dans son état normal, sans livestacking.


load ScriptableRetour à l'index

load filename[.ext]
Charge l'image filename à partir du répertoire de travail actuel, qui devient l'"image actuellement chargée" utilisée dans de nombreuses commandes d'image unique.
Il tente d'abord de charger filename, puis filename.fit, filename.fits et enfin tous les formats pris en charge.
Ce schéma s'applique à toutes les commandes Siril qui impliquent la lecture de fichiers

load_seq Non scriptableRetour à l'index

load_seq sequencename[.ext]
Charge la séquence sequencename depuis le répertoire de travail actuel, qui devient la « séquence actuellement chargée ». Bien que les commandes de séquence de Siril nécessitent que le nom de la séquence soit spécifié, il est nécessaire de charger une séquence pour pouvoir lire ses métadonnées via un script Python

log ScriptableRetour à l'index

log
Calcule et applique une échelle logarithmique à l'image chargée, en utilisant la formule suivante : log(1 - (valeur - min) / (max - min)), min et max étant les valeurs minimale et maximale du pixel pour le canal

ls Non scriptableRetour à l'index

ls
Liste des fichiers et répertoires dans le répertoire de travail

Cette commande est seulement disponible sur les systèmes reposants sur Unix, pour une commande équivalente sur Microsoft Windows, voir dir.

makepsf ScriptableRetour à l'index

makepsf clear
makepsf load filename
makepsf save [filename]
makepsf blind [-l0] [-si] [-multiscale] [-lambda=] [-comp=] [-ks=] [-savepsf=]
makepsf stars [-sym] [-ks=] [-savepsf=]
makepsf manual { -gaussian | -moffat | -disc | -airy } [-fwhm=] [-angle=] [-ratio=] [-beta=] [-dia=] [-fl=] [-wl=] [-pixelsize=] [-obstruct=] [-ks=] [-savepsf=]
Génère une PSF à utiliser avec la déconvolution, l'une des trois méthodes exposées par les commandes RL, SB ou WIENER. L'un des éléments suivants doit être fourni comme premier argument : clear (efface la PSF existante), load (charge une PSF à partir d'un fichier), save (sauvegarde la PSF actuelle), blind (estimation aveugle de la PSF), stars (génère une PSF basée sur les étoiles mesurées dans l'image) ou manual (génère une PSF manuellement basée sur une fonction et des paramètres).

Aucun argument additionnel n'est requis quand l'argument clear est utilisé.

Pour charger une PSF précédemment sauvegardée, l'argument load nécessite le nom du fichier filename de la PSF comme second argument. Ce fichier peut être dans n'importe quel format pris en charge par Siril, mais l'image doit être au format carré et idéalement impair.

Pour sauvegarder une PSF précédemment générée, l'argument save est utilisé. Un nom de fichier peut être fourni en option (il doit avoir l'une des extensions ".fit", ".fits", ".fts" ou ".tif"), mais si aucun nom n'est fourni, la PSF sera nommée en fonction du nom du fichier ou de la séquence ouvert(e).

Pour l'argument blind, les arguments optionnels suivants peuvent être fournis : -l0 utilise la méthode de descente l0, -si utilise la méthode d'irrégularité spectrale, -multiscale configure la méthode l0 pour effectuer une estimation PSF multi-échelle, -lambda= fournit la constante de régularisation.

Pour les PSF des étoiles détectées, le seul paramètre optionnel est -sym, qui configure la PSF pour qu'elle soit symétrique.

Pour une PSF manuelle, un des arguments -gaussian, -moffat, -disc or -airy peut être fourni afin de spécifié la fonction PSF. Pour la PSF Gaussienne ou Moffat les arguments optionels -fwhm=, -angle= and -ratio= peuvent être ajoutés. Pour la PSF Moffat l'argument optionel -beta= peut aussi être ajouté. Si ces valeurs sont omises, elles prennent par défaut les mêmes valeurs que dans fenêtre déconvolution. Pour les PSF "disc" seul l'argument -fwhm= est nécessaire, qui, pour cette fonction est utilisé pour donner le diamètre de la PSF. Pour les PSF "airy" les arguments suivant peuvent être ajoutés : -dia= (définit le diamètre du télescope), -fl= (définit la longueur focale du télescope), -wl= (définit la longueur d'onde pour calculer la tache d'Airy), -pixelsize= (définit la taille des pixels du capteur), -obstruct= (définit le l'obstruction centrale comme pourcentage de la surface totale d'ouverture). Si ces paramètres ne sont pas fournis, la longueur d'onde sera par défaut de 525nm et l'obstruction centrale sera par défaut de 0%. Siril tentera de lire les autres paramètres de l'image ouverte, mais certains logiciels d'imagerie peuvent ne pas les fournir tous, auquel cas vous obtiendrez de mauvais résultats, et notez que les métadonnées peuvent ne pas être remplies pour les vidéos au format SER. Vous apprendrez par l'expérience quels sont les éléments sûrs à omettre pour votre configuration d'imagerie particulière.

Pour toutes les options de génération de PSF ci-dessus, l'argument optionnel -ks= peut être fourni pour définir la dimension de la PSF, et l'argument optionnel -savepsf=nom de fichier peut être utilisé pour sauvegarder la PSF générée : un nom de fichier doit être fourni et les mêmes exigences d'extension de nom de fichier s'appliquent que pour makepsf save filename

Liens : psf, rl, sb, wiener

merge ScriptableRetour à l'index

merge sequence1 sequence2 [sequence3 ...] output_sequence
Fusionne plusieurs séquences de même type (images FITS, séquences FITS ou SER) et de mêmes propriétés d'image en une nouvelle séquence avec le nom de base newseq créée dans le répertoire de travail actuel, avec le même type. Les séquences d'entrée peuvent se trouver dans des répertoires différents, être spécifiées en chemin absolu ou relatif, avec le nom .seq exact ou avec seulement le nom de base avec ou sans '_' à la fin

merge_cfa ScriptableRetour à l'index

merge_cfa file_CFA0 file_CFA1 file_CFA2 file_CFA3 bayerpattern
Crée une image couleur masquée Bayer à partir de 4 images séparées contenant les données des sous-canaux CFA0, CFA1, CFA2 et CFA3. (La commande correspondante pour diviser le motif CFA en sous-canaux est split_cfa.) Cette fonction peut être utilisée dans le cadre d'un flux de travail appliquant un traitement aux sous-canaux Bayer individuels avant le dématriçage. Le cinquième paramètre bayerpattern spécifie le motif de la matrice Bayer à recréer : bayerpattern doit être l'un des suivants : 'RGGB', 'BGGR', 'GRBG' ou 'GBRG'

mirrorx ScriptableRetour à l'index

mirrorx [-bottomup]
Retourne l'image chargée autour de l'axe horizontal. L'option -bottomup ne retournera l'image que si elle n'est pas bottom-up

mirrorx_single ScriptableRetour à l'index

mirrorx_single image
Retourne l'image autour de l'axe horizontal, uniquement si nécessaire (si elle n'est pas déjà bottom-up). Siril prend le nom du fichier image comme argument, ce qui lui permet d'éviter de lire les données de l'image si aucune inversion n'est nécessaire. L'image est écrasée si un retournement est effectué

mirrory ScriptableRetour à l'index

mirrory
Retourne l'image autour de l'axe vertical

modasinh ScriptableRetour à l'index

modasinh -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels]
Étirement arcsinh modifié basé sur le travail de l'équipe ghsastro.co.uk.

L'argument -D= définit la force de l'étirement, entre 0 et 10. C'est le seul argument obligatoire. Les arguments facultatifs suivants permettent de mieux adapter l'étirement :
LP définit une plage de préservation des ombres entre 0 et SP où l'étirement sera linéaire, préservant les détails d'ombre ;
SP définit le point de symétrie de l'étirement, entre 0 et 1, qui est le point auquel l'étirement est le plus intense ;
HP définit une région entre HP et 1 où l'étirement est linéaire, préservant les détails de la mise en évidence et évitant le gonflement des étoiles.
Si elle est omise, LP et SP ont une valeur par défaut de 0.0 et HP a une valeur par défaut de 1.0.
Un argument facultatif (soit -human, -even ou -independent, peut être passé pour sélectionner la luminance pondérée humaine ou pondérée paire ou les canaux de couleur indépendants pour les étirements de couleur). L'argument est ignoré pour les images mono. Alternativement, l'argument -sat spécifie que l'étirement est effectué sur la saturation de l'image - l'image doit être en couleur et tous les canaux doivent être sélectionnés pour que cela fonctionne.
En option, le paramètre [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, V, B, RV, RB ou VB. La valeur par défaut est « tous les canaux ». Le mode clip peut être défini à l'aide de l'argument -clipmode= : les valeurs clip, rescale, rgbblend ou globalrescale sont acceptées et la valeur par défaut est rgbblend

mtf ScriptableRetour à l'index

mtf low mid high [channels]
Applique la fonction de transfert des demi-tons à l'image actuellement chargée.

Trois paramètres sont nécessaires, low, midtones et high où le paramètre de balance des tons moyens définit un étirement non linéaire de l'histogramme dans la plage [0,1]. Pour une détermination automatique des paramètres, voir AUTOSTRETCH.
Le paramètre optionnel [channels] peut être utilisé pour spécifier les canaux auxquels appliquer l'étirement : il peut s'agir de R, G, B, RG, RB ou GB. La valeur par défaut est tous les canaux

Liens : autostretch

neg ScriptableRetour à l'index

neg
Modifie les valeurs de pixels de l'image actuellement chargée en une vue négative, comme 1-valeur pour 32 bits, ou 65535-valeur pour 16 bits. Cela ne modifie pas le mode d'affichage

new Non scriptableRetour à l'index

new width height nb_channel [filename]
Crée une nouvelle image remplie de zéros avec une taille de width x height.
Le paramètre optionnel [filename] peut être utilisé pour spécifier le nom du nouveau fichier.

L'image est au format 32 bits et contient nb_channel canal(aux) , nb_channel étant 1 ou 3. Elle n'est pas sauvegardée, mais devient l'image chargée et elle est affichée et peut être sauvegardée par la suite

nozero ScriptableRetour à l'index

nozero level
Remplace les valeurs nulles par des valeurs de level. Utile avant une opération idiv ou fdiv, principalement pour les images 16 bits

offline ScriptableRetour à l'index

offline
Met Siril en mode hors ligne. Dans ce mode, les fonctions réseau telles que la consultation de catalogues à distance, la mise à jour de dépôts git, etc. sont indisponibles. Les données mises en cache restent accessibles

offset ScriptableRetour à l'index

offset value
Ajoute une valeur constante value (spécifié en ADU) à l'image actuelle. Cette constante peut prendre une valeur négative.

En mode 16 bits, les valeurs de pixels qui se situent en dehors de l'intervalle [0, 65535] sont rognées (clippées). En mode 32 bits, aucune rognure (clipping) ne se produit

en ligne

online
Met Siril en mode en ligne. Dans ce mode, les fonctions réseau telles que la consultation de catalogues à distance, la mise à jour de dépôts git, etc. sont autorisées

parse ScriptableRetour à l'index

parse str [-r]
Analyse la chaîne de caractères str en utilisant les informations contenues dans l'en-tête de l'image actuellement chargée. Le but principal de cette commande est de débuguer l'interprétation d'entête des clés d'en-tête qui peuvent être utilisées dans d'autres commandes.
L'option -r spécifie que la chaîne doit être interprétée en mode lecture. En mode lecture, tous les caractères génériques définis dans la chaîne str sont utilisés pour trouver un nom de fichier correspondant au motif. Sinon, le mode par défaut est le mode écriture et les caractères génériques, le cas échéant, sont supprimés de la chaîne à analyser.

Si la chaîne str commence par le préfixe $def, elle sera reconnue comme un mot-clé réservé et recherchée dans les chaînes stockées dans gui_prepro.dark_lib, gui_prepro.flat_lib, gui_prepro.bias_lib ou gui_prepro.stack_default pour $defdark, $defflat, $defbias ou $defstack respectivement.
Le mot-clé $seqname$ peut également être utilisé quand une séquence est chargée

pcc ScriptableRetour à l'index

pcc [-limitmag=[+-]] [-catalog=] [-bgtol=lower,upper]
Exécute la Correction de Couleur par Photométrie sur l'image chargée et résolue astrométriquement.

La magnitude limite des étoiles est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement une valeur positive absolue pour la magnitude limite.
Le catalogue d'étoiles utilisé est NOMAD par défaut, il peut être modifié en fournissant -catalog=apass, -catalog=localgaia ou -catalog=gaia. S'il est installé localement, le catalogue NOMAD distant (la version complète) peut être forcé en fournissant -catalog=nomad
La tolérance aux valeurs aberrantes de la référence de fond de ciel peut être spécifiée en unités sigma en utilisant -bgtol=lower,upper : ces valeurs sont par défaut de -2,8 et +2,0

platesolve ScriptableRetour à l'index

platesolve [-force] [image_center_coords] [-focal=] [-pixelsize=]
platesolve ... [-noflip] [-downscale] [-order=] [-radius=] [-disto=]
platesolve ... [-limitmag=[+-]] [-catalog=] [-nocrop]
platesolve ... [-localasnet [-blindpos] [-blindres]]
Résolution astrométrique de l'image chargée.
Si l'image a déjà été résolue, rien ne sera fait, à moins que l'argument -force ne soit passé pour forcer une nouvelle résolution. Si les mots clés WCS ou d'autres métadonnées de l'image sont erronés ou manquants, des arguments doivent être passés :
les coordonnées approximatives du centre de l'image peuvent être fournies en degrés décimaux ou en degrés/heure minute seconde (J2000 avec des séparateurs de deux points), avec les valeurs d'ascension droite et de déclinaison séparées par une virgule ou un espace (non obligatoire pour astrometry.net).
La longueur focale et la taille des pixels peuvent être passées avec -focal= (en mm) et -pixelsize= (en microns), en remplaçant les valeurs de l'image et des paramètres. Voir aussi les options pour résoudre en aveugle avec Astrometry.net en local

Sauf si -noflip est spécifié, si l’image est détectée comme étant à l’envers, elle sera retournée.
Pour une détection plus rapide des étoiles dans les grandes images, il est possible de sous-échantillonner l’image avec -downscale.
La résolution peut prendre en compte les distorsions en utilisant la convention SIP avec des polynômes jusqu'à l'ordre 5. La valeur par défaut est prise dans les préférences astrométriques. Elle peut être modifiée avec l'option -order= qui donne une valeur entre 1 et 5.
Lors de l'utilisation des catalogues locaux du solveur Siril ou avec Astrometry.net local, si la résolution initiale n'est pas réussie, le solveur cherchera une solution dans un cône de rayon spécifié avec l'option -radius=. Si aucune valeur n'est fournie, le rayon de recherche est pris dans les préférences d'astrométrie. La recherche Siril par proximité peut être désactivée en passant une valeur de 0 (ne peut pas être désactivée pour Astrometry.net).
Vous pouvez sauvegarder la solution courante comme fichier de distorsion avec l'option -disto=.

Les images peuvent être résolues par Siril à l'aide d'un catalogue d'étoiles et de l'algorithme d'alignement global ou par la commande locale solve-field d'astrometry.net (activée avec -localasnet).

Options du solveur astrométrique de Siril :
La magnitude limite des étoiles utilisées pour la résolution astrométrique et le PCC est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement avec une valeur absolue positive pour la magnitude limite.
Le choix du catalogue d'étoiles est automatique sauf si l'option -catalog= est passée : si des catalogues locaux sont installés, ils sont utilisés, sinon le choix est basé sur le champ de vision et la magnitude limite. Si l'option est passée, elle force l'utilisation du catalogue donné en argument, avec les valeurs possibles : tycho2, nomad, localgaia, gaia, ppmxl, brightstars, apass.
Si le champ de vision calculé est supérieur à 5 degrés, la détection des étoiles sera limitée à une zone recadrée autour du centre de l'image, à moins que l'option -nocrop ne soit passée.

Options du solveur Astrometry.net:
Les options -blindpos et/ou -blindres permettent de résoudre en aveugle la position et la résolution respectivement. Vous pouvez utiliser ces options pour résoudre une image dont la position et l'échantillonnage sont totalement inconnus

pm ScriptableRetour à l'index

pm "expression" [-rescale [low] [high]] [-nosum]
Cette commande évalue l'expression donnée en argument comme dans l'outil PixelMath. L'expression complète doit être entre guillemets et les variables (qui sont des noms d'images, sans extension, situés dans le répertoire de travail dans ce cas) doivent être entourées du symbole $, par exemple "$image1$ * 0.5 + $image2$ * 0.5". Un maximum de 10 images peut être utilisé dans l'expression.
L'image peut être redimensionnée avec l'option -rescale suivie des valeurs low et high dans l'intervalle [0, 1]. Si aucune valeur basse ou haute n'est fournie, les valeurs par défaut sont 0 et 1. Un autre argument optionnel, -nosum, indique à Siril de ne pas additionner les temps d'exposition. Cela a un impact sur les mots-clés FITS tels que LIVETIME et STACKCNT

profile ScriptableRetour à l'index

profile -from=x,y -to=x,y [-tri] [-cfa] [-arcsec] { [-savedat] | [-filename=] } [-layer=] [-width=] [-spacing=] ["-title=My Plot"]
Génère un tracé du profil d'intensité entre 2 points de l'image, également connu sous le nom de coupure. Les arguments peuvent être fournis dans n'importe quel ordre. Les arguments -to=x,y et -from=x,y sont obligatoires.

L'argument -layer={red | green | blue | lum | col} spécifie le canal (ou la luminance ou la couleur) à tracer si l'image est en couleur. Elle peut également être utilisée avec l'option -tri, qui génère 3 profils parallèles équidistants, chacun séparé de -spacing= pixels, mais notez que pour les profils tri, l'option col sera traitée de la même manière que lum.

L'option -cfa sélectionne le mode CFA, qui génère 4 profils : 1 pour chaque canal CFA dans une image avec motif de Bayer. Cette option ne peut pas être utilisée avec des images couleur ou des images mono sans motif de Bayer, et ne peut pas être utilisée en même temps que l'option -tri.

L'option -arcsec permet d'afficher la distance en arcsec sur l'axe des x, si les métadonnées nécessaires sont disponibles. Si elle n'est pas fournie ou si les métadonnées ne sont pas disponibles, la distance sera affichée en unités de pixels.

L'argument -savedat permet de sauvegarder les fichiers de données : le nom du fichier sera écrit dans le log. L'argument -filename= peut également être utilisé pour spécifier un nom de fichier dans lequel écrire le fichier de données. (L'option -filename= implique -savedat.)

L'argument "-title=Mon Titre " définit un titre personnalisé "Mon Titre"

psf ScriptableRetour à l'index

psf [channel]
Effectue une PSF (Fonction d'étalement du point) sur l'étoile sélectionnée et affiche les résultats. Pour les opérations en mode console, la sélection peut être donnée en pixels en utilisant BOXSELECT. S'il est fourni, l'argument canal sélectionne le canal de l'image sur lequel l'étoile sera analysée. Il peut être omis pour les images monochromes ou lorsqu'il est exécuté à partir de l'interface graphique avec l'un des canaux actifs dans la vue

Liens : boxselect

pwd ScriptableRetour à l'index

pwd
Imprime le répertoire de travail actuel

pyscript ScriptableRetour à l'index

pyscript scriptname.py [script_argv]
Exécute un script Siril en python

Le nom du script doit être fourni en tant que premier argument. S'il n'est pas trouvé dans le répertoire de travail actuel, les chemins d'accès aux scripts définis par l'utilisateur spécifiés dans les préférences et le répertoire local siril-scripts seront recherchés. Tous les arguments suivants seront traités comme des arguments de script et transmis au script sous forme de vecteur d'arguments. Notez que le script spécifique doit prendre en charge la lecture des entrées à partir du vecteur d'arguments

register ScriptableRetour à l'index

register sequencename [-2pass] [-selected] [-prefix=] [-scale=]
register sequencename ... [-layer=] [-transf=] [-minpairs=] [-maxstars=] [-nostarlist] [-disto=]
register sequencename ... [-interp=] [-noclamp]
register sequencename ... [-drizzle [-pixfrac=] [-kernel=] [-flat=]]
Trouve et effectue éventuellement des transformations géométriques sur les images de la séquence donnée en argument afin qu'elles puissent être superposées à l'image de référence. En utilisant des étoiles pour l'alignement, cet algorithme ne fonctionne qu'avec des images de ciel profond. Les options de détection des étoiles peuvent être modifiées en utilisant SETFINDSTAR ou la boîte de dialogue Dynamic PSF.

Toutes les images de la séquence seront alignées sauf si l'option -selected est passée, dans ce cas les images exclues ne seront pas traitées.
L'option -2pass calcule uniquement les transformations sans générer les images transformées, -2pass ajoute une passe préliminaire à l'algorithme pour trouver une bonne image de référence avant de calculer les transformations, en se basant sur la qualité de l'image et le cadrage. Pour générer des images transformées après cette passe, utilisez SEQAPPLYREG.
Si elle est créée, le nom de la séquence de sortie commencera par le préfixe "r_" sauf indication contraire avec l'option -prefix=. Les images de sortie peuvent être redimensionnées en passant un argument -scale= avec une valeur flottante comprise entre 0.1 et 3.

Options de transformation d'image :

La détection est effectuée sur la couche verte pour les images en couleur, sauf si spécifié par l'option -layer= avec un argument allant de 0 à 2 pour le rouge au bleu.
-transf= spécifie l'utilisation des transformations shift, similarity, affine ou homography (par défaut) respectivement.
-minpairs= spécifie le nombre minimum de paires d'étoiles qu'une image doit avoir en commun avec l'image de référence, sinon l'image sera abandonnée et exclue de la séquence.
-maxstars= spécifie le nombre maximum d'étoiles à trouver dans chaque image (doit être compris entre 100 et 2000). Avec plus d'étoiles, un alignement plus précis peut être calculé, mais l'exécution prendra plus de temps.
-nostarlist désactive la sauvegarde de la liste d'étoiles sur le disque.
-disto= utilise les termes de distorsion d'une solution de résolution astrométrique précédente (avec un ordre SIP > 1). Il prend en paramètre soit image pour utiliser la solution contenue dans l'image actuellement chargée, soit file suivi du chemin vers l'image contenant la solution, soit master pour charger automatiquement le maître de distorsion correspondant à chaque image. Lors de l'utilisation de cette option, les polynômes sont utilisés à la fois pour corriger les positions des étoiles avant de calculer la transformation et pour corriger la distorsion des images lors de l'exportation des images de sortie.

Option d’interpolation de l'image :

Par défaut, les transformations sont appliquées pour aligner les images à l'aide de l'interpolation.
La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp.

Options de drizzle pour les images :

Sinon, les images peuvent être exportées à l'aide de l'algorithme HST drizzle en passant l'argument -drizzle qui peut prendre les options supplémentaires suivantes :
-pixfrac= défini la fraction de pixel (par défaut =1.0).
L'argument -kernel= défini le noyau de drizzle et doit être suivi par l'un des arguments suivant : point, turbo, square, gaussian, lanczos2 or lanczos3. La valeur par défaut est square.
L'argument -flat= spécifie un flat maître pour pondérer les pixels d'entrée drizzlés (la valeur par défaut est sans flat).

Remarque : lorsque vous utilisez -drizzle sur des images prises avec un capteur couleur, les images d'entrée ne doivent pas être débayerisées. Dans ce cas, la détection des étoiles se fera toujours sur les pixels verts


reloadscripts Non scriptableRetour à l'index

reloadscripts
Réanalyse les dossiers de scripts et met à jour le menu Scripts. Notez que cette commande ne peut pas être utilisée en mode ligne de commande (c'est-à-dire à partir de siril-cli) et que la mise à jour s'effectuera de manière asynchrone (c'est-à-dire que la commande déclenchera la mise à jour, mais n'attendra pas qu'elle soit terminée)

nécessite

requires min_version [obsolete_version]
Renvoie une erreur si la version de Siril est antérieure à la version minimale requise passée dans le premier argument. En option, prend un deuxième argument pour la version de Siril à partir de laquelle le script est obsolète : renvoie une erreur si la version de Siril est supérieure ou égale à celle passée dans le deuxième argument.

Exemple : requires 1.2.0 1.4.0 permet au script de s'exécuter pour toutes les séries 1.2.x et 1.3.x, mais ne s'exécutera pas pour les versions antérieures à 1.2.0, ni pour la version 1.4.0 ou toute version ultérieure

resample ScriptableRetour à l'index

resample { factor | -width= | -height= | -maxdim= } [-interp=] [-noclamp]
Rééchantillonne l'image chargée, soit avec un facteur factor, soit pour la largeur ou la hauteur cible fournie par -width=, -height= ou -maxdim=. Ceci est généralement utilisé pour redimensionner les images : un facteur de 0,5 divise la taille par 2. L'argument -maxdim peut être utilisé pour redimensionner la plus grande dimension de l'image à une taille donnée, ce qui peut être utile pour optimiser les images pour certains sites web, par exemple les réseaux sociaux.
Dans l'interface graphique utilisateur, nous pouvons voir que plusieurs algorithmes d'interpolation sont proposés.

La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi d'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp

rgbcomp ScriptableRetour à l'index

rgbcomp red green blue [-out=result_filename] [-nosum]
rgbcomp -lum=image { rgb_image | red green blue } [-out=result_filename] [-nosum]
Crée une composition RVB à l'aide de trois images indépendantes, ou une composition LRVB à l'aide de l'image de luminance optionnelle et de trois images monochromes ou d'une image couleur. L'image résultante est appelée composed_rgb.fit ou composed_lrgb.fit à moins qu'un autre nom ne soit fourni dans l'argument optionnel. Un autre argument optionnel, -nosum, indique à Siril de ne pas additionner les temps d'exposition. Cela a un impact sur les mots-clés FITS tels que LIVETIME et STACKCNT

rgradient ScriptableRetour à l'index

rgradient xc yc dR dalpha
Crée deux images, avec un décalage radial (dR en pixels) et un décalage rotatif (dalpha en degrés) par rapport au point (xc, yc).

Entre ces deux images, le décalage a la même amplitude mais est de signe opposé. Ces deux images sont additionnées pour créer l'image finale. Ce processus est aussi appelé filtre Larson Sekanina

rl ScriptableRetour à l'index

rl [-loadpsf=] [-alpha=] [-iters=] [-stop=] [-gdstep=] [-tv] [-fh] [-mul]
Restaure une image en utilisant la méthode Richardson-Lucy.

En option, une PSF peut être chargé en utilisant l'argument -loadpsf=filename (créé avec MAKEPSF).

Le nombre d'itérations est donné par -iters (par défaut 10).

Le type de régularisation peut être défini avec -tv pour la variation totale, ou -fh pour la norme de Frobenius de la matrice hessienne (la valeur par défaut est aucune) et -alpha= fournit la force de régularisation (une valeur plus faible = plus de régularisation, par défaut = 3000).

Par défaut, la méthode du gradient descendant est utilisé avec une taille de pas par défaut de 0.0005, cependant la méthode multiplicative peut être spécifiée avec -mul.

Le critère d'arrêt peut être activé en spécifiant une limite d'arrêt avec -stop=

Liens : psf, makepsf

rmgreen ScriptableRetour à l'index

rmgreen [-nopreserve] [type] [amount]
Applique un filtre de réduction de bruit chromatique. Il supprime la teinte verte de l'image actuelle. Ce filtre est basé sur SCNR de PixInsight et c'est aussi le même filtre utilisé par le plugin HLVG de Photoshop.
La luminosité est préservée par défaut mais peut être désactivé avec le paramètre -nopreserve.

Type peut prendre les valeurs 0 pour neutre moyen, 1 pour neutre maximum, 2 pour masque maximum, 3 pour masque additif, par défaut à 0. Les deux derniers peuvent prendre un argument amount, une valeur entre 0 et 1, la valeur par défaut étant 1

rotate ScriptableRetour à l'index

rotate degree [-nocrop] [-interp=] [-noclamp]
Fait pivoter l'image chargée d'un angle de degree degrés. L'option -nocrop peut être ajoutée pour éviter le recadrage à la taille de l'image (des bordures noires seront ajoutées).

Note : si une sélection est active, c'est-à-dire en utilisant la commande `boxselect` avant `rotate`, l'image résultante sera un recadrage avec rotation. Dans ce cas particulier, l'option -nocrop sera ignorée si elle est passée.

La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp

rotatePi ScriptableRetour à l'index

rotatePi
Fait pivoter l'image chargée d'un angle de 180° autour de son centre. Ceci est équivalent à la commande "ROTATE 180" ou "ROTATE -180"

Liens : rotate

satu ScriptableRetour à l'index

satu amount [background_factor [hue_range_index]]
Renforce la saturation des couleurs de l'image chargée. Essayez de manière itérative pour obtenir les meilleurs résultats.
amount peut être un nombre positif pour augmenter la saturation des couleurs, négatif pour la réduire, 0 ne fait rien, 1 l'augmente de 100%
background_factor est un facteur de (médiane + écart-type) utilisé pour définir un seuil, de sorte que seuls les pixels au-dessus de ce seuil seraient modifiés. Cela permet d'avoir un bruit de fond non saturé en couleur, si le choix est fait avec soin. La valeur par défaut est de 1. Une valeur de 0 désactive le seuil.
hue_range_index peut être entre [0, 6], ce qui signifie : 0 pour rose à orange, 1 pour orange à jaune, 2 pour jaune à cyan, 3 pour cyan, 4 pour cyan à magenta, 5 pour magenta à rose, 6 pour tout (par défaut)

save ScriptableRetour à l'index

save filename [-chksum]
Enregistre l'image actuelle dans filename.fit (ou .fits, selon vos préférences, voir SETEXT) dans le répertoire de travail actuel. L'image reste chargée. filename peut contenir un chemin d'accès à condition que le répertoire existe déjà. L'option -chksum stocke des mots-clés de somme de contrôle (CHECKSUM et DATASUM) dans l'en-tête FITS

Liens : setext

savebmp ScriptableRetour à l'index

savebmp filename
Sauvegarde l'image courante sous forme d'un fichier bitmap avec 8 bit par canal : filename.bmp (BMP 24-bit)

savejpg ScriptableRetour à l'index

savejpg filename [quality]
Sauvegarde l'image courante dans un fichier JPG : filename.jpg.

La qualité de la compression peut être ajustée à l'aide de la valeur optionnelle quality, 100 étant la meilleure valeur par défaut, tandis qu'une valeur inférieure augmente le taux de compression

savejxl ScriptableRetour à l'index

savejxl filename [-effort=] [-quality=] [-8bit]
Sauvegarde l'image courante dans un fichier JPG XL : filename.jxl.

Tous les autres arguments sont facultatifs. Le paramètre de qualité exprime une distance maximale admissible entre l'image originale et l'image compressée : l'argument -quality= peut être fourni et doit être spécifié sous la forme d'un nombre à virgule flottante compris entre 0,0 et 10,0. Une qualité plus élevée signifie une meilleure qualité, mais une taille de fichier plus importante. Qualité = 10.0 est mathématiquement sans perte, qualité = 9.0 est visuellement sans perte et qualité = 0 est visuellement médiocre, mais donne des fichiers de très petite taille. La valeur par défaut est 9,0 ; les valeurs typiques sont comprises entre 7,0 et 10,0. L'effort de compression peut être ajusté en utilisant la valeur optionnelle -effort=, 9 étant l'effort le plus important, mais très lent, tandis qu'une valeur plus faible augmente le taux de compression. Les valeurs supérieures à 7 ne sont pas recommandées, car elles peuvent être très lentes et n'apporter que peu ou pas d'avantages à la taille du fichier. En fait, un effort = 9 peut parfois produire des fichiers plus volumineux. Si cet argument est omis, la valeur par défaut de 7 est utilisée. Une option -8bit peut être fournie pour forcer la sortie à 8 bits par pixel

savepng ScriptableRetour à l'index

savepng filename
Sauvegarde l'image courante dans un fichier PNG : filename.png, avec 16 bits par canal si l'image est chargée en 16 ou 32 bits, et en 8 bits par canal si l'image est chargée en 8 bits

savepnm ScriptableRetour à l'index

savepnm filename
Enregistre l'image actuelle sous la forme d'un format de fichier NetPBM avec 16 bits par canal.

L'extension de sortie doit être filename.ppm pour une image RVB et filename.pgm pour une image en nuance de gris

savetif ScriptableRetour à l'index

savetif filename [-astro] [-deflate]
Enregistre l'image actuelle sous la forme d'un fichier TIFF non compressé de 16 bits par canal : filename.tif. L'option -astro permet d'enregistrer au format Astro-TIFF, tandis que -deflate active la compression.

Voir aussi SAVETIF32 et SAVETIF8

savetif32 ScriptableRetour à l'index

savetif32 filename [-astro] [-deflate]
Même commande que SAVETIF mais le fichier de sortie est enregistré en 32 bits par canal : filename.tif. L'option -astro permet de sauvegarder au format Astro-TIFF, tandis que -deflate permet la compression

Liens : savetif

savetif8 ScriptableRetour à l'index

savetif8 filename [-astro] [-deflate]
Même commande que SAVETIF mais le fichier de sortie est enregistré en 8 bits par canal : filename.tif. L'option -astro permet de sauvegarder au format Astro-TIFF, tandis que -deflate permet la compression

Liens : savetif

sb ScriptableRetour à l'index

sb [-loadpsf=] [-alpha=] [-iters=]
Restaure une image en utilisant la méthode Split Bregman.

En option, une PSF peut être chargée en utilisant l'argument -loadpsf=nom de fichier.

Le nombre d'itération est donné par -iters (par défaut 1).

Le facteur de régularisation -alpha= fournit la force de la régularisation (plus petite valeur = plus de régularisation, par défaut = 3000)

Liens : psf

select ScriptableRetour à l'index

select sequencename from to
Cette commande permet de sélectionner facilement en masse des images dans la séquence sequencename (de from à to inclus). Il s'agit d'une sélection en vue d'un traitement ultérieur.
Voir aussi UNSELECT

Liens : unselect

Exemples :

select . 0 0
sélectionne le premier de la séquence actuellement chargée

select sequencename 1000 1200
sélectionne 201 images à partir du numéro 1000 dans la séquence nommée sequencename

Le deuxième nombre peut être supérieur au nombre d'images pour aller jusqu'au bout.

seqapplyreg ScriptableRetour à l'index

seqapplyreg sequencename [-prefix=] [-scale=] [-layer=] [-framing=]
seqapplyreg sequencename ... [-interp=] [-noclamp]
seqapplyreg sequencename ... [-drizzle [-pixfrac=] [-kernel=] [-flat=]]
seqapplyreg sequencename ... [-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]] [-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Applique des transformations géométriques aux images de la séquence donnée en argument afin qu'elles puissent être superposées à l'image de référence, en utilisant les données d'alignement précédemment calculées (voir REGISTER).
Le nom de la séquence de sortie commence par le préfixe "r_" sauf indication contraire spécifié par l'option -prefix=.
L'alignement est réalisé sur la première couche pour laquelle les données existe pour une image RVB sauf si spécifié par l'option -layer= (0, 1 ou 2 pour R, V et B respectivement).
Les images de sortie peuvent être redimensionnées en passant un argument -scale= avec une valeur flottante comprise entre 0.1 et 3.

Le cadrage automatique de la séquence de sortie peut être spécifié en utilisant le mot-clé -framing= suivi de l'une des méthodes de la liste { current | min | max | cog } :
-framing=max (zone de délimitation) projettera chaque image et calculera son décalage par rapport à l'image de référence. La séquence résultante peut ensuite être empilée en utilisant l'option -maximize de la commande STACK, qui créera l'image complète englobant toutes les images de la séquence.
-framing=min (zone commune) recadre chaque image dans la zone qu'elle a en commun avec toutes les images de la séquence.
-framing=cog détermine la meilleur position de cadrage comme centre de gravité (cog) de toutes les images.

Option d’interpolation de l'image :
Par défaut, les transformations sont appliquées pour aligner les images à l'aide de l'interpolation.
La méthode d'interpolation des pixels peut être spécifiée avec l'argument -interp= suivi de l'une des méthodes de la liste no[ne], ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}. Si none est passé, la transformation est forcée en translation et un décalage par pixel est appliqué à chaque image sans aucune interpolation.
La contrainte des méthodes d'interpolation bicubique et lanczos4 est la valeur par défaut, pour éviter les artefacts, mais peut être désactivé avec l'argument -noclamp.

Options de drizzle pour les images :
Sinon, les images peuvent être exportées à l'aide de l'algorithme HST drizzle en passant l'argument -drizzle qui peut prendre les options supplémentaires suivantes :
-pixfrac= défini la fraction de pixel (par défaut =1.0).
L'argument -kernel= défini le noyau de drizzle et doit être suivi par l'un des arguments suivant : point, turbo, square, gaussian, lanczos2 or lanczos3. La valeur par défaut est square.
L'argument -flat= spécifie un flat maître pour pondérer les pixels d'entrée drizzlés (la valeur par défaut est sans flat).

Filtrage des images :
Les images qui vont être aligner peuvent être sélectionnées en utilisant des filtres, tel que celles sélectionné ou avec la meilleur FWHM, avec l'une des option -filter-*.


Links: registerstack

Avec le filtrage étant l'un de ceux-ci, sans ordre ni nombre particulier :
[-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]]
[-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Les meilleurs images de la séquence peuvent être empilées en utilisant les arguments de filtrage. Chacun de ces argument peu supprimer les mauvaises images sur la base des propriétés que leur nom contient, récupéré depuis les données d'alignement, avec l'un des trois types de valeur d'argument :
- 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.
Il est également possible d'utiliser des images sélectionnées manuellement, soit précédemment à partir de l'interface graphique utilisateur (GUI), soit avec les commandes select ou unselect, en utilisant l'argument -filter-included.

seqccm ScriptableRetour à l'index

seqccm sequencename [-prefix=]
Même commande que CCM mais pour la séquence sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le nom de la séquence de sortie commence par le préfixe "ccm_", sauf indication contraire avec l'option -prefix=

Liens : ccm

seqclean ScriptableRetour à l'index

seqclean sequencename [-reg] [-stat] [-sel]
Cette commande efface les données de sélection, d'alignement et/ou de statistiques stockées pour la séquence sequencename.

Vous pouvez préciser de n'effacer que l'alignement, les statistiques et/ou la sélection avec les options -reg, -stat et -sel, respectivement. Tout est effacé si aucune option n'est passée

seqcosme ScriptableRetour à l'index

seqcosme sequencename [filename].lst [-prefix=]
Même commande que COSME mais pour la séquence sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le nom de la séquence de sortie commence par le préfixe "cosme_", sauf indication contraire avec l'option -prefix=

Liens : cosme

seqcosme_cfa ScriptableRetour à l'index

seqcosme_cfa sequencename [filename].lst [-prefix=]
Même commande que COSME_CFA mais pour la séquence sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le nom de la séquence de sortie commence par le préfixe "cosme_", sauf indication contraire avec l'option -prefix=

Liens : cosme_cfa

seqcrop ScriptableRetour à l'index

seqcrop sequencename x y width height [-prefix=]
Recoupe la séquence donnée en argument sequencename. Seules les images sélectionnées dans la séquence sont traitées.

La sélection est spécifiée par la position du coin supérieur gauche x et y et la sélection width et height, comme pour CROP.
Le nom de la séquence de sortie commence par le préfixe "cropped_" sauf indication contraire avec l'option -prefix=

Liens : crop

seqextract_Green ScriptableRetour à l'index

seqextract_Green sequencename [-prefix=]
Même commande que EXTRACT_GREEN mais pour une séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "Green_" sauf indication contraire avec l'option -prefix=

seqextract_Ha ScriptableRetour à l'index

seqextract_Ha sequencename [-prefix=] [-upscale]
Même commande que EXTRACT_HA mais pour une séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "Ha_" sauf indication contraire avec l'option -prefix=

seqextract_HaOIII ScriptableRetour à l'index

seqextract_HaOIII sequencename [-resample=]
Même commande que EXTRACT_HAOIII mais pour une séquence sequencename.

Le nom de la séquence de sortie comme par le préfixe "Ha_" et "OIII_"

seqfind_cosme ScriptableRetour à l'index

seqfind_cosme sequencename cold_sigma hot_sigma [-prefix=]
Même commande que FIND_COSME mais pour une séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "cc_" sauf indication contraire avec l'option -prefix=

Liens : find_cosme

seqfind_cosme_cfa ScriptableRetour à l'index

seqfind_cosme_cfa sequencename cold_sigma hot_sigma [-prefix=]
Même commande que FIND_COSME_CFA mais pour une séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "cc_" sauf indication contraire avec l'option -prefix=


seqfindstar ScriptableRetour à l'index

seqfindstar sequencename [-layer=] [-maxstars=]
Même commande que FINDSTAR mais pour une séquence sequencename.

L'option -out= n'est pas disponible pour ce processus car tous les fichiers de liste d'étoiles sont sauvegardés avec le nom par défaut seqname_seqnb.lst

Liens : findstar

seqfixbanding ScriptableRetour à l'index

seqfixbanding sequencename amount sigma [-prefix=] [-vertical]
Même commande que FIXBANDING mais pour la séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "unband_", sauf indication contraire avec l'option -prefix=

Liens : fixbanding

seqght ScriptableRetour à l'index

seqght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Même commande que GHT, mais la séquence doit être spécifiée comme premier argument. En outre, l'argument optionnel -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : ght

seqheader ScriptableRetour à l'index

seqheader sequencename keyword [keyword2 ...] [-sel] [-out=file.csv]
Imprime la valeur de l'en-tête FITS correspondant aux clés données pour toutes les images de la séquence. Vous pouvez écrire plusieurs clés à la suite, séparées par un espace. L'option -out=, suivie d'un nom de fichier, permet d'imprimer la sortie dans un fichier csv. L'option -sel limite la sortie aux images sélectionnées dans la séquence

seqinvght ScriptableRetour à l'index

seqinvght sequence -D= [-B=] [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Identique à la commande INVGHT, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : invght

seqinvmodasinh ScriptableRetour à l'index

seqinvmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Identique à la commande INVMODASINH, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : invmodasinh

seqlinstretch ScriptableRetour à l'index

seqlinstretch sequence -BP= [channels] [-sat] [-prefix=]
Identique à la commande INVGHT, mais s'applique à une séquence qui doit être spécifiée comme premier argument. En outre, l'argument facultatif -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : linstretch

seqmerge_cfa ScriptableRetour à l'index

seqmerge_cfa sequencename0 sequencename1 sequencename2 sequencename3 bayerpattern [-prefixout=]
Fusionne 4 séquence d'image pour reconstruire la matrice de Bayer. Les séquence sont spécifié dans les arguments sequencename0, sequencename1, sequencename2 et sequencename3.

Le motif de Bayer à reconstruire doit être donné comme deuxième argument parmi RGGB, BGGR, GBRG ou GRBG (l'ordre des canaux Bayer doit correspondre à l'ordre des séquences spécifiées).

Note : les 4 séquences doivent être présente et avoir les mêmes dimension, profondeur de bit et nombre d'images.

Le nom de la séquence de sortie commence par le préfixe "mCFA_" sauf indication contraire avec l'option -prefixout=

seqmodasinh ScriptableRetour à l'index

seqmodasinh sequence -D= [-LP=] [-SP=] [-HP=] [-clipmode=] [-human | -even | -independent | -sat] [channels] [-prefix=]
Même commande que MODASINH, mais la séquence doit être spécifiée comme premier argument. En outre, l'argument optionnel -prefix= peut être utilisé pour définir un préfixe personnalisé

Liens : modasinh

seqmtf ScriptableRetour à l'index

seqmtf sequencename low mid high [channels] [-prefix=]
Même commande que pour MTF mais pour la séquence sequencename.

Le nom de la séquence de sortie commence par le préfixe "mtf_", sauf indication contraire avec l'option -prefix=

Liens : mtf

seqprofile ScriptableRetour à l'index

seqprofile sequence -from=x,y -to=x,y [-tri] [-cfa] [-arcsec] [-savedat] [-layer=] [-width=] [-spacing=] [ {-xaxis=wavelength | -xaxis=wavenumber } ] [{-wavenumber1= | -wavelength1=} -wn1at=x,y {-wavenumber2= | -wavelength2=} -wn2at=x,y] ["-title=My Plot"]
Génère un profil d'intensité entre 2 points de chaque image de la séquence. Après le premier argument obligatoire indiquant la séquence à traiter, les autres arguments sont les mêmes que pour la commande profile. Si l'on traite une séquence et que l'on souhaite que le numéro de l'image courante et le nombre total d'images soient affichés dans le format "Ma séquence (1 / 5)", le titre donné doit se terminer par () (par exemple, "Ma séquence ()" et les nombres seront remplis automatiquement.)

seqpsf ScriptableRetour à l'index

seqpsf sequencename [channel] [{ -at=x,y | -wcs=ra,dec }] [-followstar]
Même commande que PSF mais fonctionne sur des séquences. Cette commande est similaire à l'alignement sur une étoile, sauf que les résultats peuvent être utilisés pour l'analyse de la photométrie plutôt que pour l'alignement des images et que les coordonnées de l'étoile peuvent être fournies par des options.
Cette commande est ce qui est appelé en interne par le menu qui apparaît lors d'un clic droit sur l'image, avec la PSF pour l'entrée de la séquence. Si des données d'alignement existent déjà pour la séquence, elles peuvent être utilisées pour décaler la fenêtre de recherche dans chaque image. S'il n'y a pas de données d'alignement et s'il y a un décalage important entre les images de la séquence, les paramètres par défaut ne permettront pas de trouver des étoiles dans la position initiale de la zone de recherche.
L'option de suivi d'étoile peut être activé avec l'argument -followstar.

Les résultats sont affichés dans l'onglet Graphique, à partir duquel ils peuvent également être exportés vers un fichier de valeurs séparées par des virgules (CSV) en vue d'une analyse externe.

Lors de la création d'une courbe de lumière, la première étoile pour laquelle seqpsf a été exécuté, marquée "V" à l'écran, sera considérée comme l'étoile variable. Toutes les autres étoiles sont moyennées pour créer une courbe de lumière de référence soustraite à la courbe de lumière de l'étoile variable.

Actuellement, en mode sans interface graphique, la commande affiche certaines données analysées dans la console ; une autre commande permet d'analyser plusieurs étoiles et de tracer une courbe de lumière : LIGHT_CURVE. Les arguments sont obligatoires : le nom de la séquence doit être fourni ("." peut être utilisé pour indiquer la séquence actuellement chargée) et en mode sans interface graphique, il est obligatoire de fournir les coordonnées de l'étoile, -at= permettant de fournir les coordonnées en pixels de l'étoile cible ou -wcs= permettant de fournir les coordonnées équatoriales J2000

Liens : psf, light_curve

seqplatesolve ScriptableRetour à l'index

seqplatesolve sequencename [image_center_coords] [-focal=] [-pixelsize=]
seqplatesolve sequencename ... [-downscale] [-order=] [-radius=] [-force] [-noreg] [-disto=]
seqplatesolve sequencename ... [-limitmag=[+-]] [-catalog=] [-nocrop] [-nocache]
seqplatesolve sequencename ... [-localasnet [-blindpos] [-blindres]]
Résout en astrométrie une séquence. Une nouvelle séquence sera créée avec le préfixe "ps_" si la séquence d'entrée est SER, sinon, les en-têtes des images seront mis à jour. Dans le cas de SER, il est obligatoire de fournir les métadonnées et la séquence de sortie sera au format FITS cube, car SER ne peut pas stocker les données WCS.
Si les infos WCS ou d'autres métadonnées d'image sont erronés ou manquants, des arguments doivent être transmis :
les coordonnées approximatives du centre de l'image peuvent être fournies en degrés décimaux ou en degrés/heure minute seconde (J2000 avec des séparateurs de deux points), avec les valeurs d'ascension droite et de déclinaison séparées par une virgule ou un espace (non obligatoire pour astrometry.net).
La longueur focale et la taille des pixels peuvent être passées avec -focal= (en mm) et -pixelsize= (en microns), en remplaçant les valeurs des images et des paramètres. Voir aussi les options pour résoudre en aveugle avec Astrometry.net en local

Pour une détection plus rapide des étoiles dans les grandes images, il est possible de sous-échantillonner l’image avec -downscale.
La résolution peut prendre en compte les distorsions en utilisant la convention SIP avec des polynômes jusqu'à l'ordre 5. La valeur par défaut est prise dans les préférences astrométriques. Elle peut être modifiée avec l'option -order= qui donne une valeur entre 1 et 5.
Lors de l'utilisation des catalogues locaux du solveur Siril ou avec Astrometry.net local, si la résolution initiale n'est pas réussie, le solveur cherchera une solution dans un cône de rayon spécifié avec l'option -radius=. Si aucune valeur n'est fournie, le rayon de recherche est pris dans les préférences d'astrométrie. La recherche Siril par proximité peut être désactivée en passant une valeur de 0 (ne peut pas être désactivée pour Astrometry.net).
Les images déjà résolues seront ignorées par défaut. Ceci peut être désactivé en passant l'option -force.
L'utilisation de cette commande mettra à jour les données d'alignement, sauf si l'option -noreg est spécifiée.
Vous pouvez sauvegarder la solution courante comme fichier de distorsion avec l'option -disto=.

La résolution astrométrique des images peut être faite soit par Siril en utilisant un catalogue d'étoiles et l'algorithme d'alignement global, soit par astrometry.net avec la commande locale solve-field (activée avec -localasnet).

Options du solveur astrométrique de Siril :
La magnitude limite des étoiles utilisées pour la résolution astrométrique et le PCC est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement avec une valeur absolue positive pour la magnitude limite.
Le choix du catalogue d'étoiles est automatique sauf si l'option -catalog= est passée : si des catalogues locaux sont installés, ils sont utilisés, sinon le choix est basé sur le champ de vision et la magnitude limite. Si l'option est passée, elle force l'utilisation du catalogue distant donné en argument, avec les valeurs possibles : tycho2, nomad, gaia, ppmxl, brightstars, apass.
Si le champ de vision calculé est supérieur à 5 degrés, la détection des étoiles sera limitée à une zone recadrée autour du centre de l'image, à moins que l'option -nocrop ne soit passée.
Lors de l'utilisation de catalogues en ligne, une seule extraction de catalogue sera effectuée pour l'ensemble de la séquence. S'il y a beaucoup de dérive ou un échantillonnage différent, cela peut ne pas réussir pour toutes les images. Ceci peut être désactivé en passant l'argument -nocache, auquel cas les métadonnées de chaque image seront utilisées (à l'exception des valeurs forcées comme les coordonnées du centre, la taille du pixel et/ou la longueur focale).

Options du solveur Astrometry.net:
Les options -blindpos et/ou -blindres permettent de résoudre en aveugle la position et la résolution respectivement. Vous pouvez utiliser ces options pour résoudre une image dont la position et l'échantillonnage sont totalement inconnus

seqresample ScriptableRetour à l'index

seqresample sequencename { -scale= | -width= | -height= } [-interp=] [-prefix=]
Met à l'échelle de la séquence donnée en argument sequencename. Seules les images sélectionnées dans la séquence sont traitées.

Le facteur d'échelle est spécifié soit par l'argument -scale=, soit en définissant la largeur, la hauteur ou la dimension maximale de sortie à l'aide des options -width=, -height= ou -maxdim=.

Une méthode d'interpolation peut être spécifiée en utilisant l'argument -interp= suivi d'une des méthodes de la liste ne[arest], cu[bic], la[nczos4], li[near], ar[ea]}... Le clamping est appliqué pour l'interpolation cubique et lanczos.

Le nom de la séquence de sortie commence par le préfixe "scaled_", sauf indication contraire avec l'option -prefix=

seqrl ScriptableRetour à l'index

seqrl sequencename [-loadpsf=] [-alpha=] [-iters=] [-stop=] [-gdstep=] [-tv] [-fh] [-mul]
Identique à la commande RL, mais s'applique à une séquence qui doit être spécifiée comme premier argument

Liens : rl

seqsb ScriptableRetour à l'index

seqsb sequencename [-loadpsf=] [-alpha=] [-iters=]
Identique à la commande SB, mais s'applique à une séquence qui doit être spécifiée comme premier argument

Liens : sb

seqsetmag Non scriptableRetour à l'index

seqsetmag magnitude
Identique à la commande SETMAG mais pour la séquence chargée.

Cette commande n'est valable qu'après avoir exécuté SEQPSF ou sa contrepartie graphique (sélectionner la zone autour d'une étoile et lancer l'analyse PSF de la séquence, elle apparaîtra dans les graphiques).
Cette commande a le même but que SETMAG mais recalcule la magnitude de référence pour chaque image de la séquence où l'étoile de référence a été trouvée.
Lors de l'exécution de la commande, la dernière étoile qui a été analysée sera considérée comme l'étoile de référence. L'affichage du graphe de magnitude avant de taper la commande facilite sa compréhension.
Pour réinitialiser l'étoile de référence et le décalage de magnitude, voir SEQUNSETMAG


seqsplit_cfa ScriptableRetour à l'index

seqsplit_cfa sequencename [-prefix=]
Même commande que SPLIT_CFA mais pour une séquence sequencename.

Les noms des séquences de sortie commencent par le préfixe "CFA_" et un nombre, sauf indication contraire avec l'option -prefix=.
Limitation: la séquence produit toujours une séquence de fichiers FITS, quel que soit le type de séquence d'entrée

Liens : split_cfa

seqstarnet ScriptableRetour à l'index

seqstarnet sequencename [-stretch] [-upscale] [-stride=value] [-nostarmask]
Cette commande appelle StarNet++ pour supprimer les étoiles de la séquence sequencename. Voir STARNET

Liens : starnet

seqstat ScriptableRetour à l'index

seqstat sequencename output_file [option] [-cfa]
Même commande que STAT pour la séquence sequencename.

Les données sont enregistrées dans un fichier csv fichier_de_sortie.
Le paramètre optionnel défini le nombre de valeurs statistique calculées : basic, main (par défaut) ou full (plus détaillé mais plus long à calculer).
t\ basic inclut mean, median, sigma, bgnoise, min et max
t\ main inclut basic avec l'ajout de avgDev, MAD et la racine carrée de BWMV
t\ full inclut main avec l'ajout de la position et de l'échelle.

Si -cfa est donnée et que l'image est CFA, les statistiques sont réalisées sur les extraction par filtre

Liens : stat

seqsubsky ScriptableRetour à l'index

seqsubsky sequencename { -rbf | degree } [-nodither] [-samples=20] [-tolerance=1.0] [-smooth=0.5] [-prefix=]
Même commande que SUBSKY mais pour la séquence sequencename.
Le tramage, requis pour les faibles gradients dynamiques, peut être désactivé avec -nodither. Notez que l'option -existing n'est pas disponible pour l'extraction de fond d'une séquence, car les images d'une séquence ne sont pas nécessairement toujours alignées.

Le nom de la séquence de sortie commence par le préfixe "bkg_" sauf indication contraire avec l'option -prefix=. Seules les images sélectionnées dans la séquence sont traitées

Liens : subsky

seqtilt ScriptableRetour à l'index

seqtilt sequencename
Même commande que TILT mais pour la séquence sequencename. Elle donne généralement de meilleurs résultats

Liens : tilt

sequnsetmag Non scriptableRetour à l'index

sequnsetmag
Réinitialise la calibration de la magnitude et l'étoile de référence pour la séquence. Voir SEQSETMAG

Liens : seqsetmag

sequpdate_key ScriptableRetour à l'index

sequpdate_key sequencename key value [keycomment]
sequpdate_key sequencename -delete key
sequpdate_key sequencename -modify key newkey
sequpdate_key sequencename -comment comment
Même commande que UPDATE_KEY mais pour la séquence sequencename. Cependant, cette commande ne fonctionne pas sur les séquences SER

Links: update_key

seqwiener ScriptableRetour à l'index

wiener sequencename [-loadpsf=] [-alpha=]
Identique à la commande WIENER, mais appliqué à une séquence qui doit être spécifiée en premier argument

Liens : wiener

set ScriptableRetour à l'index

set { -import=inifilepath | variable=value }
Met à jour une valeur de paramètre, en utilisant son nom de variable, avec la valeur donnée, ou un ensemble de valeurs en utilisant un fichier ini existant avec l'option -import=.
Voir GET pour obtenir des valeurs ou la liste des variables

Liens : get

set16bits ScriptableRetour à l'index

set16bits
Empêche d'enregistrer les images avec 32 bits par canal lors du traitement, utiliser 16 bits à la place

set32bits ScriptableRetour à l'index

set32bits
Permet d'enregistrer les images en 32 bits par canal lors du traitement

setcompress ScriptableRetour à l'index

setcompress 0/1 [-type=] [q]
Définie si les images sont compressé ou pas.

0 signifie qu'il n'y a pas de compression tandis que 1 active la compression.
Si la compression est activée, le type doit être explicitement écrit avec l'option -type= ("rice", "gzip1", "gzip2").
Associée à la compression, la valeur de quantification doit être comprise dans la plage [0, 256].

Par exemple, "setcompress 1 -type=rice 16" définit la compression rice avec une quantification de 16

setcpu ScriptableRetour à l'index

setcpu number
Défini le nombre de fils d'exécution utilisé pour les calculs.

Peut être aussi élevé que le nombre de threads virtuels existant sur le système, qui est le nombre de cœurs du CPU ou le double de ce nombre si l'hyperthreading (Intel HT) est disponible. La valeur par défaut est le nombre maximum de threads disponibles, ce qui signifie que cette valeur doit être utilisée principalement pour limiter la puissance de traitement. Cette valeur est réinitialisée à chaque exécution de Siril. Voir aussi SETMEM

Liens : setmem

setext ScriptableRetour à l'index

setext extension
Définit l'extension utilisée et reconnue par les séquences.

L'argument extension peut être "fit", "fts" ou "fits"

setfindstar ScriptableRetour à l'index

setfindstar [reset] [-radius=] [-sigma=] [-roundness=] [-focal=] [-pixelsize=] [-convergence=] [ [-gaussian] | [-moffat] ] [-minbeta=] [-relax=on|off] [-minA=] [-maxA=] [-maxR=]
Définit le paramètre de détection d'étoiles pour les commandes FINDSTAR et REGISTER.

Si vous ne passez aucun paramètre, vous obtiendrez la liste des valeurs actuelles.
Passer reset réinitialise toutes les valeurs aux valeurs par défaut. Vous pouvez alors toujours passer des valeurs après ce mot-clé.

Valeurs paramétrables :

-radius= définit le rayon de la boite de recherche initiale et doit être compris entre 3 et 50.
-sigma= définit le seuil au-dessus du bruit et doit être supérieur ou égal à 0,05.
-roundness= définit la rondeur minimale des étoiles et doit être comprise entre 0 et 0,95. -maxR permet de définir une limite supérieure à l'arrondi, pour visualiser uniquement les zones où les étoiles sont significativement allongées, ne pas utiliser pour l'alignement.
-minA et maxA définit la limite du minimum et maximum de l'amplitude des étoiles à conserver, normalisé entre 0 et 1.
-focal= définit la longueur focale du télescope.
-pixelsize= définit la taille des pixels du capteur.
-gaussian et -moffat configure le modèle de solveur utilisé (Gaussian par défaut).
Si Moffat est sélectionné, -minbeta= définit la valeur minimale de beta pour laquelle les étoiles candidates seront acceptées et doit être supérieure ou égale à 0,0 et inférieure à 10,0.
-convergence= définit le nombre d'itération réalisée pour ajuster la PSF et doit être compris entre 1 et 3 (plus tolérant).
-relax= relâche les vérifications qui sont faites sur les étoiles candidats pour évaluer s'ils sont des étoiles ou non, pour permettre aux objets qui n'ont pas la forme d'une étoile d'être quand même acceptés (désactivé par défaut)

Le seuil de détection des étoiles est calculé comme la médiane de l'image (qui représente généralement le niveau de fond) plus k fois l'écart type, l'écart type étant la déviation standard de l'image (ce qui est une bonne indication de l'amplitude du bruit). Si vous avez beaucoup d'étoiles dans vos images et un bon rapport signal/bruit, il peut être judicieux d'augmenter cette valeur pour accélérer la détection et réduire les faux positifs.

Il est recommandé de tester les valeurs utilisées pour une séquence avec l'interface graphique de Siril, disponible dans la boîte à outils PSF dynamique du menu d'analyse. Cela peut améliorer la qualité de l'alignement en augmentant les paramètres, mais il est également important de pouvoir détecter plusieurs dizaines d'étoiles dans chaque image.


setmag Non scriptableRetour à l'index

setmag magnitude
Étalonne les magnitudes en sélectionnant une étoile et en donnant la magnitude apparente connue.

Tous les calculs de PSF renverront ensuite la magnitude apparente étalonnée, au lieu d'une magnitude apparente relative aux valeurs ADU. Notez que la valeur fournie doit correspondre à la magnitude du filtre d'observation pour être significative.
Pour réinitialiser la constante de magnitude voir UNSETMAG

Liens : psf, unsetmag

setmem ScriptableRetour à l'index

setmem ratio
Définit un nouveau rapport entre la mémoire utilisée et la mémoire libre.

La valeur du Ratio doit être comprise entre 0.05 et 2, en fonction des autres activités de la machine. Un ratio plus élevé devrait permettre à Siril de traiter plus rapidement, mais un ratio de mémoire utilisée supérieur à 1 nécessitera l'utilisation de la mémoire sur disque, ce qui est très lent et non recommandé, voire parfois non supporté, entraînant un plantage du système. Une quantité fixe de mémoire peut également être définie dans les paramètres génériques, avec SET, au lieu d'un ratio

Liens : set

setphot ScriptableRetour à l'index

setphot [-inner=20] [-outer=30] [-aperture=10] [-dyn_ratio=4.0] [-gain=2.3] [-min_val=0] [-max_val=60000]
Obtient ou définit les paramètres de photométrie, principalement utilisés par SEQPSF. Si des arguments sont fournis, ils mettront à jour les paramètres. Aucun n'est obligatoire, tous peuvent être fournis, les valeurs par défaut sont indiquées dans la syntaxe de la commande. À la fin de la commande, la configuration active sera imprimée.

La taille de l'ouverture est dynamique, sauf si elle est forcée. Dans ce cas, la valeur d'ouverture aperture des paramètres est utilisée. Si elle est dynamique, le rayon de l'ouverture est défini par le rapport dynamique fourni ("rayon/demi-FWHM").
Les valeurs autorisées pour l'argument -dyn_ratio sont comprises dans l'intervalle [1.0, 5.0]. Une valeur en dehors de cette plage fixera automatiquement l'ouverture à la valeur fixe -aperture.

Le gain n'est utilisé que s'il n'est pas disponible dans l'en-tête FITS

Liens : seqpsf

setref ScriptableRetour à l'index

setref sequencename image_number
Définit l'image de référence de la séquence donnée en premier argument. image_number est le numéro séquentiel de l'image dans la séquence, et non le numéro dans le nom de fichier, commençant à 1

show Non scriptableRetour à l'index

show [-clear] [{ -list=file.csv | [name] RA Dec }] [-nolog] [-notag]
Affiche un point sur l'image chargée et résolue en utilisant le catalogue temporaire d'annotations de l'utilisateur, basé sur ses coordonnées équatoriales. L'option -clear efface d'abord ce catalogue et peut être utilisée seule.
Plusieurs points peuvent être transmis en utilisant un fichier CSV avec l'option -list= contenant au moins les colonnes ra et dec. Si le fichier transmis contient également un nom de colonne, les noms seront utilisés comme balises dans l'image et listés dans la console, à moins qu'ils ne soient désactivés avec les options -notag et -nolog.

Cette fonction n'est disponible qu'à partir de l'interface graphique de Siril

spcc ScriptableRetour à l'index

spcc [-limitmag=[+-]] [ { -monosensor= [ -rfilter= ] [-gfilter=] [-bfilter=] | -oscsensor= [-oscfilter=] [-osclpf=] } ] [-whiteref=] [ -narrowband [-rwl=] [-gwl=] [-bwl=] [-rbw=] [-gbw=] [-bbw=] ] [-bgtol=lower,upper] [ -atmos [-obsheight=] { [-pressure=] | [-slp=] } ]
Exécute la Correction de Couleur par Spectrophotométrie sur l'image chargée et résolue astrométriquement.

La magnitude limite des étoiles est automatiquement calculée à partir de la taille du champ de vision, mais peut être modifiée en passant une valeur +offset ou -offset à -limitmag=, ou simplement une valeur positive absolue pour la magnitude limite.
Le catalogue d'étoile utilisé pour SPCC est toujours Gaia DR3 : par défaut le catalogue local Gaia DR3 xp_sampled est utilisé si disponible mais cela peut être remplacé avec -catalog={gaia | localgaia}.

Les noms des capteurs et des filtres peuvent être spécifiés à l'aide des options suivantes : -monosensor=, -rfilter=, -gfilter=, -bfilter= ou -oscsensor=, -oscfilter=, -osclpf= ; le nom de la référence des blancs peut être spécifié à l'aide de l'option -whiteref=. Dans tous les cas, le nom doit être fourni exactement tel qu'il apparaît dans les listes déroulantes de l'outil SPCC. Notez que les noms des capteurs, des filtres et des références blanches peuvent contenir des espaces : dans ce cas, lorsqu'ils sont utilisés comme arguments de la commande spcc, l'argument entier doit être placé entre guillemets, par exemple "-whiteref=Average Spiral Galaxy".

Le mode bande étroite peut être sélectionné à l'aide de l'argument -narrowband, auquel cas les arguments de filtre précédents sont ignorés et les longueurs d'onde et largeurs de bande du filtre peuvent être fournies à l'aide de -rwl=, -rbw=, -gwl=, -gbw=, -bwl= et -bbw=.

Si l'un des arguments des données spectrales est omis, la valeur utilisée précédemment sera utilisée.

La tolérance aux valeurs aberrantes de la référence de fond de ciel peut être spécifiée en unités sigma en utilisant -bgtol=lower,upper : ces valeurs sont par défaut de -2,8 et +2,0.

La correction atmosphérique peut être appliquée en passant -atmos. Dans ce cas, les arguments facultatifs suivants s'appliquent : -obsheight= spécifie la hauteur de l'observateur au-dessus du niveau de la mer en mètres (10 par défaut), -pressure= spécifie la pression atmosphérique locale sur le site d'observation en hPa, ou -slp= spécifie la pression atmosphérique au niveau de la mer en hPa (la pression par défaut est de 1013,25 hPa au niveau de la mer)

spcc_list ScriptableRetour à l'index

spcc_list { oscsensor | monosensor | redfilter | greenfilter | bluefilter | oscfilter | osclpf | whiteref }
Imprime une liste de noms SPCC pouvant être utilisés pour définir des capteurs, des filtres ou des références de blanc à l'aide de la commande spcc. Cette commande nécessite un argument pour définir la liste à imprimer : les options sont oscsensor, monosensor, redfilter, greenfilter, bluefilter, oscfilter, osclpf ou whiteref.
Notez que les noms des capteurs, des filtres et des références de blanc peuvent contenir des espaces : dans ce cas, lorsqu'ils sont utilisés comme arguments de la commande spcc, l'argument entier doit être placé entre guillemets, par exemple "-whiteref=Average Spiral Galaxy"

Liens : spcc

split ScriptableRetour à l'index

split file1 file2 file3 [-hsl | -hsv | -lab]
Divise l'image couleur chargée en trois fichiers distincts (un pour chaque couleur) et les enregistre dans les fichiers file1.fit, file2.fit et file3.fit. Un dernier argument peut être fourni, -hsl, -hsv ou lab pour effectuer une extraction TSL, TSV ou CieLAB. Si aucune option n'est fournie, l'extraction est de type RVB, ce qui signifie qu'aucune conversion n'est effectuée

split_cfa ScriptableRetour à l'index

split_cfa
Divise l'image CFA chargée en quatre fichiers distincts (un pour chaque canal) et les enregistre dans des fichiers

stack ScriptableRetour à l'index

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]
Emplie la séquence sequencename en utilisant les options.

Type de Rejet :
Les types autorisés sont : sum, max, min, med (ou median) et rej (ou mean). Si aucun argument autre que le nom de la séquence n'est fourni, l'empilement par somme est supposé.

Empilement avec rejets :
Les types rej ou mean nécessitent l'utilisation d'arguments supplémentaires pour le type de rejet et les valeurs. Le type de rejet est l'un des n[one], p[ercentile], s[igma], m[edian], w[insorized], l[inear], g[eneralized], [m]a[d] pour Percentile, Sigma, Median, Winsorized, Linear-Fit, Generalized Extreme Studentized Deviate Test ou k-MAD clipping. En cas d'omission, la valeur par défaut de Winsorized est utilisée.
Les paramètres sigma low et sigma high de rejet sont obligatoire sauf si none est sélectionné.
En option, des cartes de rejet peuvent être créées, montrant où les pixels ont été rejetés dans une (-rejmap) ou deux (-rejmaps, pour les rejets "bas" et "hauts") images nouvellement créées.

Normalisation des images d'entrées :
Pour les types d'empilement med (ou median) et rej (ou mean), différents types de normalisation sont autorisés : -norm=add pour l'additif, -norm=mul pour le multiplicatif. Les options -norm=addscale et -norm=mulscale appliquent la même normalisation mais avec des opérations d'échelle. L'option -nonorm permet de désactiver la normalisation. Sinon, la méthode addtive avec mise à l'échelle est appliquée par défaut.
L'option -fastnorm spécifie l'utilisation d'estimateurs plus rapides pour la position et l'échelle que l'IKSS par défaut.
-overlap_norm, si elle est passée, calculera les coefficients de normalisation sur les zones de chevauchement des images plutôt que sur les images entières (autorisé uniquement si -maximize est passée).

Autres option pour l'empilement avec rejet :
Une pondération peut être appliquée aux images de la séquence à l'aide de l'option -weight= suivie de :
noise pour ajouter des poids plus importants aux images ayant un bruit de fond plus faible.
nbstack pour pondérer les images d'entrée en fonction du nombre d'images utilisées pour les créer, utile pour l'empilement en direct.
nbstars ou wfwhm pour pondérer les images d'entrée en fonction du nombre d'étoiles ou de la wFWHM calculée lors de l'étape d'alignement.
L'option -feather= applique un masque de contour progressif sur les bords de chaque image sur la distance (en pixels) indiquée dans l'argument.

Sortie :
Le nom de l'image de résultat pout être définit avec l'option -out=. Autrement le nom sera sequencename_stacked.fit.
-output_norm applique une normalisation pour replacer le résultat dans l'intervalle [0,1] (seulement pour l'empilement par moyenne ou par médiane).
L'option -maximize utilisera les données d'alignement de la séquence pour créer une image stackée qui englobe toutes les images de la séquence (applicable à toutes les méthodes sauf l'empilement médian).
L'option -upscale augmentera la résolution de la séquence d'un facteur 2 avant l'empilement à l'aide des données d'alignement (applicable à toutes les méthodes sauf l'empilement médian).
-rgb_equal utilise la normalisation pour égaliser les fonds de ciel des images couleur, utile si PCC/SPCC ou l'AUTOSTRETCH non lié ne sont pas utilisés.
-32b remplacera la profondeur de bits définie dans les préférences et enregistrera l'image empilée en 32b.


Filtrage des images :
Les images à empiler peuvent être sélectionnées avec certain filtres, tel que une sélection manuel ou la meilleur FWHM, avec d'autres option -filter-*.


Links: pccspccautostretch
[-filter-fwhm=value[%|k]] [-filter-wfwhm=value[%|k]] [-filter-round=value[%|k]] [-filter-bkg=value[%|k]]
[-filter-nbstars=value[%|k]] [-filter-quality=value[%|k]] [-filter-incl[uded]]
Les meilleurs images de la séquence peuvent être empilées en utilisant les arguments de filtrage. Chacun de ces argument peu supprimer les mauvaises images sur la base des propriétés que leur nom contient, récupéré depuis les données d'alignement, avec l'un des trois types de valeur d'argument :
- 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.
Il est également possible d'utiliser des images sélectionnées manuellement, soit précédemment à partir de l'interface graphique utilisateur (GUI), soit avec les commandes select ou unselect, en utilisant l'argument -filter-included.

stackall ScriptableRetour à l'index

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]
Ouvre toutes les séquences dans le répertoire actuel et les empile avec le type d'empilement et le filtrage éventuellement spécifiés ou avec l'empilement par somme. Voir la commande STACK pour la description des options

Liens : stack

starnet ScriptableRetour à l'index

starnet [-stretch] [-upscale] [-stride=value] [-nostarmask]
Appelle StarNet pour supprimer les étoiles de l'image chargée.

StarNet est un programme externe, sans affiliation avec Siril, et doit être installé correctement avant la première utilisation de cette commande, avec le chemin d'accès à son installation en version CLI correctement défini dans Préférences / Divers.

L'image sans étoile (starless) est chargée à la fin et une image de masque d'étoile est créée dans le répertoire de travail à moins que le paramètre facultatif -nostarmask ne soit fourni.

En option, des paramètres peuvent être passés à la commande :
- 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

start_ls ScriptableRetour à l'index

start_ls [-dark=filename] [-flat=filename] [-rotate] [-32bits]
Initialise une session de livestacking, en utilisant les fichiers de calibration optionnels et attend que les fichiers d'entrée soient fournis par la commande LIVESTACK jusqu'à ce que STOP_LS soit appelé. Le traitement par défaut utilise l'alignement par translation seulement et le traitement 16 bits parce qu'il est plus rapide, il peut être changé en rotation avec -rotate et -32bits

Notez que les commandes de live stacking mettent Siril dans un état dans lequel il n'est pas capable de traiter d'autres commandes. Après START_LS, seuls LIVESTACK, STOP_LS et EXIT peuvent être appelés jusqu'à ce que STOP_LS soit appelé pour remettre Siril dans son état normal, sans livestacking


stat ScriptableRetour à l'index

stat [-cfa] [main]
Renvoie les statistiques de l'image courante, la liste de base par défaut ou la liste principale si main est passé. Si une sélection est faite, les statistiques sont calculées dans la sélection. Si -cfa est passé et que l'image est CFA, les statistiques sont faites sur les extractions par filtre

stop_ls ScriptableRetour à l'index

stop_ls
Arrête la session de livestacking. Uniquement possible après START_LS

Liens : start_ls

subsky ScriptableRetour à l'index

subsky { -rbf | degree } [-dither] [-samples=20] [-tolerance=1.0] [-smooth=0.5] [-existing]
Calcule un fond de ciel synthétique en utilisant soit le modèle de fonction polynomiale de degree degrés, soit le modèle RBF (si -rbf est fourni à la place) et le soustrait de l'image.
Le nombre d'échantillons par ligne horizontale et la tolérance pour exclure les zones plus claires peuvent être ajustés avec les arguments optionnels. La tolérance est exprimée en unités MAD : médiane + tolérance * mad.
La diffusion d'erreur, nécessaire pour les gradients peu dynamiques, peut être activé avec -dither.
Pour RBF, le paramètre de lissage supplémentaire est également disponible. Pour utiliser des échantillons d'arrière-plan préexistants (par exemple, si vous avez défini des échantillons d'arrière-plan à l'aide d'un script Python), l'argument -existing doit être utilisé

synthstar ScriptableRetour à l'index

synthstar
Corrige les étoiles imparfaites de l'image chargée. Quelle que soit l'importance de la coma, de la dérive ou de toute autre distorsion de vos étoiles, si la routine de recherche d'étoiles de Siril peut les détecter, synthstar les corrigera. Pour une utilisation intensive, vous pouvez souhaiter détecter manuellement toutes les étoiles que vous souhaitez corriger. Cela peut être fait en utilisant la commande findstar de la console ou la boîte de dialogue PSF dynamique. Si vous n'avez pas lancé la détection d'étoiles, elle sera lancée automatiquement avec les paramètres par défaut.

Pour de meilleurs résultats, synthstar doit être exécuté avant l'étirement.

La sortie de synthstar est un masque d'étoile synthétique entièrement corrigé comprenant des PSF d'étoiles parfaitement rondes (profils Moffat ou gaussiens en fonction de la saturation de l'étoile) calculés pour correspondre à l'intensité, à la FWHM, à la teinte et à la saturation mesurées pour chaque étoile détectée dans l'image d'entrée. Cela peut ensuite être recombiné avec l'image sans étoiles pour produire une image avec des étoiles parfaites.

Aucun paramètre n'est requis pour cette commande

Liens : psf

threshlo ScriptableRetour à l'index

threshlo level
Remplace les valeurs inférieures à level dans l'image chargée par level

threshhi ScriptableRetour à l'index

threshi level
Remplace les valeurs supérieures à level dans l'image chargée par level

thresh ScriptableRetour à l'index

thresh lo hi
Remplace les valeurs inférieures à level dans l'image chargée par level

tilt Non scriptableRetour à l'index

tilt [clear]
Calcule le tilt du capteur comme la différence FWHM entre les valeurs moyennes tronquées des meilleurs et des pires coins. L'option clear permet d'effacer le dessin

trixel ScriptableRetour à l'index

trixel [-p]
Pour les développeurs.

Sans argument, liste tous les trixels de niveau 3 visibles dans l'image résolue en astrométrie. Les étoiles de chaque trixel peuvent ensuite être affichées avec la commande CONESEARCH en utilisant -trix= suivi d'un numéro de trixel visible

Avec l'argument -p, imprime toutes les étoiles valides des 512 trixels de niveau 3 dans le fichier "trixels.csv"

Links: conesearch

unclipstars ScriptableRetour à l'index

unclipstars
Reprofile les étoiles coupées de l'image chargée pour les désaturer, en mettant à l'échelle la sortie de manière à ce que toutes les valeurs de pixels soient <= 1,0

unpurple ScriptableRetour à l'index

unpurple [-starmask] [-blue=value] [-thresh=value]
Applique un filtre cosmétique pour réduire les effets de franges violettes sur les étoiles.

Si le paramètre -starmask est donné, un masque d'étoiles sera utilisé pour identifier les zones de l'image à traiter. Si une PSF dynamique a déjà été exécutée, elle sera utilisée pour le masque d'étoiles, sinon un masque sera créé automatiquement. Le paramètre -mod= doit se voir attribuer une valeur d'environ 0,14 pour réduire la quantité de violet. -thresh= précisera le modificateur de taille pour chaque étoile dans le masque d'étoiles et doit être suffisamment grand pour que les étoiles soient entièrement traitées sans qu'il reste de franges violettes. La valeur doit être comprise entre 0 et 1, généralement autour de 0,5.
Si le paramètre -starmask n'est pas donné, la réduction du violet sera appliquée sur toute l'image pour tous les pixels violets dont la valeur de luminance est supérieure au -thresh= donné. Dans ce cas, la valeur de -thresh= doit être raisonnablement basse. Ce mode est utile pour les masques d'étoiles ou autres images sans nébuleuse ni galaxie

Liens : psf

unselect ScriptableRetour à l'index

unselect sequencename from to
Permet une sélection en masse des images dans la séquence sequencename (de from à to inclue). Voir SELECT

Liens : select

unsetmag Non scriptableRetour à l'index

unsetmag
Remet l'étalonnage de la magnitude à 0. Voir SETMAG

Liens : setmag

unsharp ScriptableRetour à l'index

unsharp sigma multi
Applique un masque de netteté, en fait une image filtrée gaussienne avec sigma sigma et un mélange avec le paramètre amount utilisé comme suit : out = in * (1 + amount) + filtré * (-amount).

Voir aussi GAUSS, la même chose sans mélange

Liens : gauss

update_key ScriptableRetour à l'index

update_key key value [keycomment]
update_key -delete key
update_key -modify key newkey
update_key -comment comment
Met à jour un mot-clé FITS. Veuillez noter que la validité de value n'est pas vérifiée. Cette vérification est de la responsabilité de l'utilisateur. Il est également possible de supprimer une clé avec l'option -delete placée devant le nom de la clé à supprimer, ou de modifier la clé avec l'option -modify. Cette dernière doit être suivie de la clé à modifier et du nouveau nom de clé. Enfin, l'option -comment, suivie d'un texte, ajoute un commentaire à l'en-tête FITS. Veuillez noter que tout texte contenant des espaces doit être placé entre guillemets doubles

visu Non scriptableRetour à l'index

visu low high
Affiche l'image chargée avec low et high comme seuils bas et haut, interface graphique uniquement

wavelet ScriptableRetour à l'index

wavelet nbr_layers type
Calcule la transformée en ondelettes de l'image chargée sur (nbr_layers=1...n) couche(s) en utilisant la version linéaire (type=1) ou bspline (type=2) de l'algorithme 'à trous'. Le résultat est stocké dans un fichier sous la forme d'une structure contenant les couches, prête pour la reconstruction pondérée avec WRECONS.

Voir aussi EXTRACT

Liens : wrecons, extract

wiener ScriptableRetour à l'index

wiener [-loadpsf=] [-alpha=]
Restore une image en utilisant la méthode de déconvolution de Wiener.

En option, une PSF créée par MAKEPSF peut être chargée en utilisant l'argument -loadpsf=filename.

Le paramètre -alpha= fournit le facteur de régularisation modélisé par le bruit Gaussien

Liens : psf, makepsf

wrecons ScriptableRetour à l'index

wrecons c1 c2 c3 ...
Reconstruit l'image actuelle à partir des couches précédemment calculées avec les ondelettes et pondérées avec les coefficients c1, c2, ..., cn en fonction du nombre de couches utilisées pour la transformation en ondelettes, après l'utilisation de WAVELET

Liens : wavelet

Sirilpy Python Module API 1.0.25 Reference

Le module Python sirilpy prend en charge la communication avec une instance Siril en cours d'exécution. Il peut demander des représentations de l'image actuellement chargée ainsi que ses métadonnées, y compris les détails des étoiles détectées, ainsi que la séquence actuellement chargée et la plupart des métadonnées des images.

Cette documentation est généré automatique depuis la version 1.0.25 du module python.

Il peut également exécuter des commandes Siril à l'aide de la méthode SirilInterface.cmd(), l'objectif étant de fournir une interface performante pour écrire des scripts avancés pour Siril, à un niveau qui n'était pas possible avec les précédents simples fichiers de script.

Par exemple, les scripts peuvent désormais disposer d'interfaces PyQt6 ou TKinter en utilisant les modules PyQt6 ou tkinter et ttkthemes, et ils peuvent tirer parti d'une grande partie de l'écosystème des modules Python, notamment numpy, scipy, pillow et bien d'autres.

Note

Il existe certaines restrictions concernant les modules qui nécessitent l'installation de paquets binaires système pour fonctionner.

Dans la version initiale du module, la plupart des méthodes relatives à l'image ou à la séquence chargée dans Siril sont en lecture seule. L'idée est que les paramètres de l'image ou de la séquence chargée puissent être obtenus et utilisés comme entrées pour les scripts, par exemple pour des calculs ou des conditions, mais que l'ensemble mature des commandes Siril existantes soit dans la plupart des cas utilisé pour agir sur l'image chargée. Ainsi, les mots-clés d'en-tête peuvent être définis à l'aide de cmd("update_key", "key", "value"), et la plupart des opérations d'image intégrées peuvent être effectuées à l'aide de la commande Siril appropriée. La principale exception à la règle selon laquelle les méthodes python fournissent un accès en lecture seule est la méthode set_image_pixeldata(), qui permet de définir les données de pixels de l'image chargée à partir d'un tableau numpy. Cela signifie que de nouveaux algorithmes de traitement de pixels peuvent être ajoutés en python, en récupérant d'abord les données de pixels de l'image chargée à l'aide de get_image_pixeldata(), puis en les définissant à la fin à l'aide de set_image_pixeldata(). Des fonctions similaires sont disponibles pour récupérer et définir les données de pixels des images d'une séquence.

Dépendances

Le module sirilpy dépend des éléments suivants :

  • numpy >= 1.20.0

  • packaging >= 21.0

  • pywin32 >= 300 (seulement sur Windows)

Guide de codage des Script Siril

  • Contrairement à la plupart des environnements python, les scripts Siril s'exécutent directement depuis Siril et l'utilisateur final ne sait généralement pas comment accéder au venv python ou l'utiliser en dehors de Siril. Cela signifie que certaines tâches assez triviales dans les scénarios python classiques, comme l'installation de paquets, deviennent plus difficiles. On ne peut pas s'attendre à ce que l'utilisateur accède à la ligne de commande et installe lui-même des paquets à l'aide de python3 -m pip install.

    • Le module fournit donc la méthode «ensure_installed(). Celle-ci utilise pip pour s'assurer que les modules sont installés afin qu'ils puissent être importés.

  • Les scripts Siril doivent toujours fournir le nom de l'auteur, les détails de copyright / informations de licence et les coordonnées de contact telles qu'une chaîne YouTube, un site web ou un forum où l'auteur peut être contacté au sujet de son script. Ceci est une recommandation pour les scripts distribués indépendamment et une obligation pour tout script soumis au dépôt de scripts. Si vous écrivez un script, vous êtes responsable de son support.

  • Au fur et à mesure que le répertoire s'enrichit et que l'API évolue, tous les scripts publiés ne seront pas nécessairement toujours compatibles avec toutes les versions de Siril qui seront utilisé :

    • Si votre script utilise des commandes Siril, vous devriez utiliser la commande Siril requires. Elle peut être appelée directement dans un fichier de script Siril, ou depuis un script Python à l'aide de SirilInterface.cmd("requires", "min_version", {"max_version"}) (max_version est facultatif), et permet de garantir que les scripts conçus pour d'anciennes versions de Siril ne s'affichent plus comme applicables aux versions plus récentes si la syntaxe des commandes a changé.

    • Si votre script utilise des fonctionnalités du module Python Siril ajoutées depuis la version initiale, vous devriez appeler la méthode sirilpy.check_module_version() pour vous assurer que la version installée répond aux exigences de votre script. Les versions auxquelles les fonctionnalités ont été ajoutées seront répertoriées dans la documentation de l'API pour toutes les fonctionnalités ajoutées après la première publication.

    • Le code qui alimente la vue de Siril sur le dépôt de scripts filtrera automatiquement les scripts dont les exigences de version de Siril ou du module Python ne sont pas satisfaites.

    • Si de nouvelles classes ou méthodes sont ajoutées au module après sa première publication, la version à laquelle elles ont été introduites sera indiquée dans la docstring et dans la documentation en ligne générée à partir de celle-ci.

  • Siril cible Linux, Windows et MacOS. Les auteurs de scripts sont encouragés, dans la mesure du possible, à s'assurer que leurs scripts fonctionnent correctement sur les trois systèmes d'exploitation.

Connexion Sirilpy

Ce sous-module fournit la classe principale SirilInterface utilisée pour la communication entre Siril et le script Python. Tous ses membres sont disponibles au niveau racine du module, il n'est pas nécessaire d'importer connection séparément.

Module de connexion pour Siril, offrant la possibilité de se connecter à une instance Siril en cours d'exécution et de communiquer avec elle. Comprend un large éventail de méthodes pouvant être utilisées pour récupérer et envoyer des données depuis/vers Siril.

class sirilpy.connection.SirilInterface

Bases : object

SirilInterface est la classe principale fournissant une interface vers une instance Siril en cours d'exécution et un accès aux méthodes permettant d'interagir avec elle via le système de commandes intégré de Siril et d'accéder aux données d'image et de séquence.

analyse_image_from_file(filepath)

Demander à Siril de charger une image depuis un fichier et de l'analyser. Cette méthode ne modifie pas l'image actuellement chargée dans Siril. Tout format d'image pris en charge par Siril est accepté. Un objet ImageAnalysis est renvoyé, contenant des paramètres pouvant être utilisés pour évaluer la qualité d'une image en vue d'un tri.

Paramètres:

filepath (str) -- Chaîne de caractères indiquant le chemin d'accès au fichier image à charger.

Type renvoyé:

ImageAnalysis

Renvoie:

Objet ImageAnalysis contenant les indicateurs de qualité de l'image analysée.

Lève:
  • FileNotFoundError -- si le fichier indiqué n'existe pas,

  • DataError -- en cas de réception de données erronées,

  • SirilError -- si une erreur est survenue.

clear_image_bgsamples()

Efface tous les points d'échantillonnage du fond de l'image.

clear_undo_history()

Efface l'historique des annulations de l'image, s'il y a un historique à effacer

cmd(*args)

Envoyer une commande à Siril pour exécution. L'ensemble des commandes disponibles peut être consulté dans la documentation en ligne. La commande et ses arguments sont fournis sous forme d'une liste de chaînes.

Paramètres:

*args (str) -- Nombre variable d'arguments sous forme de chaînes à combiner en une commande

Lève:
  • DataError -- Si aucune réponse (ou une réponse incorrecte) a été reçue,

  • CommandError -- Si la commande renvoie un code d'erreur,

  • SirilError -- Si une autre erreur est survenue durant l'exécution.

Exemple

siril.cmd("ght", "-D=0.5", "-b=2.0")
command_error_message(status_code)

Fournit une chaîne décrivant le statut de retour d'une commande Siril.

Paramètres:

status_code (CommandStatus) -- Le code de statut renvoyé par le gestionnaire de commandes Siril, ou par l'exception CommandError.

Renvoie:

Une chaîne fournissant une description du code d'erreur renvoyé par une commande Siril, destinée à être utilisée dans la gestion des exceptions.

Type renvoyé:

str

confirm_messagebox(title, message, confirm_label)

Créez une boîte de dialogue modale de confirmation dans Siril et attendez la réponse.

Paramètres:
  • title (str) -- Le titre à afficher dans la boîte de message (256 caractères maximum)

  • message (str) -- Le message à afficher dans la boîte de dialogue (1 021 caractères maximum)

  • confirm_label (str) -- Le libellé à afficher sur le bouton de confirmation de la boîte de dialogue (OK, Oui, Confirmer, etc.) (24 caractères maximum)

Renvoie:

True si l'on a cliqué sur le bouton de confirmation de la boîte de dialogue, False dans le cas contraire

Type renvoyé:

bool

Lève:
connect()

Établir une connexion avec Siril en utilisant le chemin d'accès au fichier pipe ou socket.

Type renvoyé:

bool

Renvoie:

True en cas de succès

Lève:

SirilConnectionError -- si une erreur de connexion s'est produite

create_new_seq(seq_root)

Crée un nouveau fichier .seq avec toutes les images nommées seq_rootXXXXX.ext situées dans le dossier personnel actuel. Si une séquence portant le même nom est déjà chargée dans Siril, elle ne sera pas recréée. Cela ne fonctionne que pour les fichiers FITS, pas pour FITSEQ ni SER. La séquence nouvellement créée n'est pas chargée dans Siril.

Paramètres:

seq_root (str) -- Le nom racine de la séquence à créer.

Renvoie:

True si la séquence a été créée avec succès, False sinon.

Type renvoyé:

bool

Lève:

SirilError -- si une erreur est survenue.

disconnect()

Ferme la connexion socket ou pipe établie. Notez qu'il n'est généralement pas nécessaire de la fermer, sauf si, pour une raison quelconque, vous souhaitez fermer une connexion puis en rouvrir une autre. Cette méthode est automatiquement appelée à la fin du script via un gestionnaire atexit, il n'est donc pas nécessaire de le faire manuellement. Appeler cette méthode réinitialisera la barre de progression.

Lève:

SirilConnectionError -- si la connexion ne peut pas être fermée.

error_messagebox(my_string, modal=False)

Envoyer un message d'erreur à Siril. La longueur maximale du message est de 1022 octets : les messages plus longs seront tronqués (mais cela est largement suffisant pour une boîte de message d'erreur). Notez que la boîte de message d'erreur n'est pas modale par défaut : elle est destinée à afficher un message d'erreur de manière plus visible qu'en utilisant le journal de Siril avant de quitter l'application.

Paramètres:
  • my_string (str) -- Le message à afficher dans la boîte de message d'erreur

  • modal (Optional[bool]) -- Définit si la boîte de message doit être modale et attendre la fin de son affichage, ou non modale et permettre au script de continuer son exécution. Notez que, bien qu'une boîte de message modale bloque l'exécution du script, si une boucle principale TKinter est en cours d'exécution, les événements continueront à s'accumuler ; ainsi, si la boîte de message est déclenchée en cliquant sur un bouton, l'utilisateur peut cliquer dessus pendant que la boîte de message est affichée et déclencher une seconde boîte de message qui s'affichera dès que la première sera fermée.

Renvoie:

Vrai si l'erreur a été affichée avec succès, faux dans le cas contraire

Type renvoyé:

bool

Lève:

SirilError -- si une erreur est survenue.

get_image(with_pixels=True, preview=False)

Request a copy of the current image open in Siril. Requires a single image to be loaded.

Paramètres:
  • with_pixels (Optional[bool]) -- booléen facultatif indiquant s'il faut récupérer les données pixel sous forme d'un NumPy array ou uniquement les métadonnées de l'image. La valeur par défaut est True

  • preview (Optional[bool]) -- booléen facultatif indiquant s'il faut obtenir les données pixel sous forme d'aperçu (i.e. des données étirées automatiquement sur 8 bits) ou sous forme de données image réelles. La valeur par défaut est False (i.e. des données image réelles)

Type renvoyé:

Optional[FFit]

Renvoie:

Objet FFit contenant les métadonnées de l'image et (éventuellement) les données pixel, ou None si une erreur s'est produite

Lève:
  • NoImageError -- si aucune image n'est chargée dans Siril

  • SirilError -- si une erreur de décodage se produit

get_image_bgsamples()

Demander les données des échantillons de fond à Siril.

Type renvoyé:

Optional[List[BGSample]]

Renvoie:

Liste d'échantillons de fond BGSamples, chaque ensemble de coordonnées étant exprimé sous forme de tuple[float, float], ou None si aucun échantillon de fond n'a été défini.

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • DataError -- à la réception de mauvaise données,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données,

get_image_filename()

Request the filename of the loaded image from Siril. Requires a single image to be loaded.

Type renvoyé:

Optional[str]

Renvoie:

Le nom de fichier comme une chaîne de caractère.

Lève:
get_image_fits_header(return_as='str')

Retrieve the full FITS header of the current image loaded in Siril. Requires a single image to be loaded.

Paramètres:

return_as -- Chaîne facultative spécifiant le format de l'en-tête renvoyé. Peut prendre la valeur 'str' pour une chaîne de caractères ou 'dict' pour un dictionnaire.

Renvoie:

L'en-tête FITS de l'image sous forme de chaîne, ou None s'il n'y a pas d'en-tête. dict : l'en-tête FITS de l'image sous forme de dictionnaire, ou None s'il n'y a pas d'en-tête. None : si l'en-tête est vide ou non disponible.

Type renvoyé:

str

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données,

get_image_history()

Retrieve history entries in the FITS header of the current loaded Siril image using shared memory. Requires a single image to be loaded.

Paramètres:

none.

Renvoie:

Les entrées HISTORY dans l'entête FITS sous forme de liste de chaînes, ou None s'il n'y a pas de mots-clés HISTORY.

Type renvoyé:

list

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données.

get_image_iccprofile()

Retrieve the ICC profile of the current Siril image using shared memory. Requires a single image to be loaded.

Args: none.

Renvoie:

Le profil ICC de l'image sous forme de tableau d'octets, ou None si l'image actuelle n'a pas de profil ICC.

Type renvoyé:

bytes

Lève:
get_image_keywords()

Request FITS keywords data from Siril as a FKeywords object. Requires a single image to be loaded.

Type renvoyé:

Optional[FKeywords]

Renvoie:

Objet FKeywords contenant les mots-clés FITS, ou None si une erreur s'est produite

Lève:

SirilError -- si une erreur de décodage se produit.

get_image_pixeldata(shape=None, preview=False, linked=False)

Récupère les données de pixels de l'image actuellement chargée dans Siril.

Paramètres:
  • shape (Optional[list[int]]) -- Liste facultative [x, y, w, h] spécifiant la région à récupérer. Si elle est fournie, récupère les données de pixels uniquement pour cette région. Si None, récupère les données de pixels de l'image entière.

  • preview (Optional[bool]) -- booléen facultatif indiquant s'il faut obtenir les données pixel sous forme d'aperçu (i.e. des données étirées automatiquement sur 8 bits) ou sous forme de données image réelles. La valeur par défaut est False (i.e. des données image réelles)

  • linked (Optional[bool]) -- booléen facultatif indiquant si l'aperçu de l'auto ajustement doit être lié ou dissocié. Si preview == False, cette option est ignorée.

Renvoie:

Les données d'image en format numpy array

Type renvoyé:

numpy.ndarray

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • ValueError -- Si une taille invalide est fournie,

  • DataError -- si le tableau ne peut pas être redimensionné à la bonne dimension,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données pixel,

get_image_shape()

Demande la taille de l'image à Siril.

Type renvoyé:

Optional[Tuple[int, int, int]]

Renvoie:

Un tuple (canaux, hauteur, largeur) représentant la forme de l'image, ou None si aucune forme d'image n'est disponible à renvoyer.

Lève : SirilError : si une erreur s'est produite.

get_image_stars(channel=None)

Demander les données du modèle PSF des étoiles à Siril.

Paramètres:

channel (Optional[int]) -- Entier facultatif spécifiant le canal à partir duquel récupérer les données. S'il est fourni, 0 = Rouge / Mono, 1 = Vert, 2 = Bleu. Si le canal est omis, le comportement par défaut sera utilisé : canal 0 pour les images mono, canal 1 (vert) pour les images couleur. channel nécessite sirilpy v1.0.8 ou supérieur.

Type renvoyé:

List[PSFStar]

Renvoie:

Liste d'objets PSFStar contenant les données des étoiles, ou None si aucune étoile n'est trouvée. Si des étoiles ont déjà été détectées à l'aide de la commande findstar, cette liste sera renvoyée, sinon une détection automatique des étoiles sera tentée avec les paramètres actuels du détecteur d'étoiles.

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • ValueError -- Si un canal non valide est fourni,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données,

get_image_stats(channel)

Request image statistics from Siril for a specific channel. Requires a single image to be loaded.

Paramètres:

channel (int) -- Nombre entier indiquant le canal pour lequel obtenir les statistiques (généralement 0, 1 ou 2)

Type renvoyé:

Optional[ImageStats]

Renvoie:

Objet ImageStats contenant les statistiques, ou None si aucune statistique n'est disponible pour le canal sélectionné

Lève:
get_image_unknown_keys()

Retrieve the unknown key in a FITS header of the current loaded Siril image using shared memory. Requires a single image to be loaded.

Paramètres:

none.

Renvoie:

Les clés inconnues sous forme de chaîne, ou None s'il n'y a pas de clés inconnues.

Type renvoyé:

bytes

Lève:
  • NoImageError -- Si aucune image n'est actuellement chargée,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données.

get_selection_star(shape=None, channel=None, assume_centred=False)

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.

Paramètres:
  • channel (Optional[int]) -- Entier facultatif spécifiant le canal à partir duquel récupérer les données. S'il est fourni, 0 = Rouge / Mono, 1 = Vert, 2 = Bleu. Si le canal est omis, la zone d'affichage actuelle sera utilisée en mode interface graphique, ou, si ce n'est pas le mode interface graphique, la méthode se repliera sur le canal 0

  • assume_centred (bool) -- Booléen facultatif indiquant s'il faut supposer que l'étoile est déjà centrée dans la sélection. La valeur par défaut est False.

Renvoie:

l'objet PSFStar représentant le modèle d'étoile, ou None si

aucune étoile n'a été détectée dans la sélection.

Type renvoyé:

PSFStar

Lève:
  • ValueError -- Si une taille invalide est fournie,

  • NoImageError -- If no image is loaded,

  • SirilConnectionError -- If a communication error occurs,

  • SirilError -- Si une autre erreur s'est produite pendant l'exécution.

get_selection_stats(shape=None, channel=None)

Retrieves statistics for the current selection in Siril. Requires a single image or a sequence to be loaded.

Paramètres:
  • shape (Optional[list[int]]) -- Liste facultative de [x, y, w, h] spécifiant la sélection à partir de laquelle récupérer les données. Si elle est fournie, recherche une étoile dans la sélection spécifiée. Si None, recherche une étoile dans la sélection déjà faite dans Siril, si une sélection existe.

  • channel (Optional[int]) -- Entier facultatif spécifiant le canal à partir duquel récupérer les données. S'il est fourni, 0 = Rouge / Mono, 1 = Vert, 2 = Bleu. Si le canal est omis, la zone d'affichage actuelle sera utilisée en mode interface graphique, ou, si ce n'est pas le mode interface graphique, la méthode se repliera sur le canal 0

Renvoie:

l'objet ImageStats représentant les statistiques de la sélection.

Type renvoyé:

ImageStats

Lève:
  • SirilError -- Si une erreur s'est produite pendant le traitement,

  • ValueError -- Si une forme non valide est fournie.

get_seq()

Demander les métadonnées de la séquence actuellement chargée dans Siril.

Type renvoyé:

Optional[Sequence]

Renvoie:

Objet de séquence contenant les métadonnées de la séquence actuelle, ou None si une erreur s'est produite

Lève:
get_seq_distodata(channel)

Demander les données de distorsion de la séquence à Siril

channel : entier spécifiant le canal pour lequel obtenir les données d'alignement (généralement 0, 1 ou 2)

Type renvoyé:

Optional[DistoData]

Renvoie:

Objet DistoData contenant les paramètres de distorsion du canal, ou None si une erreur s'est produite

Lève:
get_seq_frame(frame, with_pixels=True, preview=False, linked=False)

Demander une image de la séquence sous forme de FFit à Siril. Les mots-clés, statistiques, en-tête et autres métadonnées sont toujours renvoyés : si un profil ICC est présent, il sera également renseigné dans le FFit résultant, et les données de pixels peuvent aussi être renvoyées en option.

Paramètres:
  • frame (int) -- Entier spécifiant l'image de la séquence pour laquelle récupérer les données (entre 0 et Sequence.number - 1). Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • with_pixels (Optional[bool]) -- booléen spécifiant s'il faut renvoyer ou non les données de pixels de l'image (la valeur par défaut est True).

  • preview (Optional[bool]) -- booléen spécifiant s'il faut renvoyer les données de pixels réelles ou une version d'aperçu en uint8_t avec auto ajustement. N'a d'effet qu'en combinaison avec with_pixels = True

Type renvoyé:

Optional[FFit]

Renvoie:

Objet FFit contenant les données de l'image

Lève:
get_seq_frame_filename(frame)

Request the filename of the specified frame of the loaded sequence from Siril. Requires a sequence to be loaded.

Paramètres:

frame (int) -- Spécifie l'index de l'image. Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

Type renvoyé:

Optional[str]

Renvoie:

Le nom de fichier comme une chaîne de caractère.

Lève:
get_seq_frame_header(frame, return_as='str')

Récupérer l'en-tête FITS complet d'une image de la séquence chargée dans Siril.

Paramètres:
  • frame (int) -- Entier spécifiant l'image de la séquence pour laquelle récupérer les données (entre 0 et Sequence.number - 1). Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • return_as -- Chaîne facultative spécifiant le format de l'en-tête renvoyé. Peut prendre la valeur 'str' pour une chaîne de caractères ou 'dict' pour un dictionnaire.

Renvoie:

L'en-tête FITS de l'image sous forme de chaîne, ou None s'il n'y a pas d'en-tête. dict : l'en-tête FITS de l'image sous forme de dictionnaire, ou None s'il n'y a pas d'en-tête. None : si l'en-tête est vide ou non disponible.

Type renvoyé:

str

Lève:
  • NoSequenceError -- Si aucune séquence n'est actuellement chargé,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données,

get_seq_frame_pixeldata(frame, shape=None, preview=False, linked=False)

Récupère les données de pixels d'une image de la séquence actuellement chargée dans Siril.

Paramètres:
  • frame (int) -- sélectionne l'image à partir de laquelle récupérer les données de pixels. Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • shape (Optional[List[int]]) -- Liste facultative [x, y, w, h] spécifiant la région à récupérer. Si elle est fournie, récupère les données de pixels uniquement pour cette région. Si None, récupère les données de pixels de l'image entière.

  • preview (Optional[bool]) -- booléen facultatif spécifiant s'il faut récupérer les données de pixels sous forme d'aperçu (c'est-à-dire des données en 8 bits avec auto ajustement) ou sous forme de données d'image réelles. La valeur par défaut est False (c'est-à-dire les données d'image réelles).

  • linked (Optional[bool]) -- booléen facultatif spécifiant si l'aperçu avec auto ajustement doit être lié ou dissocié. Cette option est ignorée si preview n'est pas True

Renvoie:

Les données d'image en format numpy array

Type renvoyé:

numpy.ndarray

Lève:
  • ValueError -- Si une taille invalide est fournie,

  • DataError -- si le tableau ne peut pas être redimensionné à la bonne dimension,

  • SirilError -- Pour les autres erreurs survenant lors de la récupération des données des pixels.

get_seq_imgdata(frame)

Demander les métadonnées des images de la séquence à Siril.

Paramètres:

frame (int) -- Entier spécifiant l'image de la séquence pour laquelle obtenir les métadonnées de l'image (entre 0 et Sequence.number). Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

Type renvoyé:

Optional[ImgData]

Renvoie:

Objet ImgData contenant les métadonnées de l'image, ou None si une erreur s'est produite

Lève:
get_seq_regdata(frame, channel)

Demander les données d'alignement d'une image de la séquence à Siril.

Paramètres:
  • frame (int) -- Entier spécifiant l'image de la séquence pour laquelle obtenir les données d'alignement (entre 0 et Sequence.number). Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • channel (int) -- Entier spécifiant le canal pour lequel obtenir les données d'alignement (généralement 0, 1 ou 2)

Type renvoyé:

Optional[RegData]

Renvoie:

Objet RegData contenant les données d'alignement, ou None si aucune donnée d'alignement n'est disponible pour l'image et le canal spécifiés

Lève:
get_seq_stats(frame, channel)

Demander les statistiques sur les images de la séquence à Siril.

Paramètres:
  • frame (int) -- Entier spécifiant l'image de la séquence pour laquelle obtenir les statistiques (entre 0 et Sequence.number). Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • channel (int) -- Nombre entier indiquant le canal pour lequel obtenir les statistiques (généralement 0, 1 ou 2)

Type renvoyé:

Optional[ImageStats]

Renvoie:

Objet ImageStats contenant les statistiques, ou None si une erreur s'est produite

Lève:
get_siril_active_vport()

Demande à Siril d'indiquer la fenêtre d'affichage active.

Renvoie:

  • sirilpy.SirilVport.RED / sirilpy.SirilVport.MONO

  • sirilpy.SirilVport.GREEN,

  • sirilpy.SirilVport.BLUE,

  • sirilpy.SirilVport.RGB

Notez que RED et MONO partagent la même valeur IntEnum, il n'y a donc aucune différence entre un test sur l'un ou l'autre ; les deux étiquettes d'énumération sont fournies uniquement pour faciliter la lisibilité du code.

Type renvoyé:

A SirilVport representing the active vport

Lève:
  • DataError -- si aucune réponse n'est reçue ou si la réponse n'est pas valide,

  • SirilError -- si une erreur est survenue.

get_siril_config(group, key)

Demandez une valeur de configuration à Siril.

Paramètres:
  • group (str) -- Nom du groupe de configuration,

  • key (str) -- Nom de la clé de configuration au sein du groupe (les valeurs disponibles pour le groupe et la clé peuvent être déterminées à l'aide de la commande « get -A »)

Type renvoyé:

Union[bool, int, float, str, List[str], None]

Renvoie:

La valeur de configuration avec le type Python correspondant, ou None si une erreur s'est produite.

Lève:
  • DataError -- si un type de configuration inconnu est détecté,

  • SirilError -- si une erreur s'est produite lors de la récupération de la valeur de configuration demandée

get_siril_configdir()

Demander le répertoire de configuration utilisateur utilisé par Siril.

Type renvoyé:

str

Renvoie:

Le répertoire de configuration de l'utilisateur sous forme de chaîne de caractères.

Lève:
get_siril_display_iccprofile()

Récupérer le profil ICC de l'écran de Siril.

Args: none.

Renvoie:

Le profil ICC de l'affichage sous forme de tableau d'octets, ou None si Siril fonctionne en mode sans interface graphique.

Type renvoyé:

bytes

Lève:
get_siril_log()

Récupérer l'intégralité des logs Siril sous forme de chaîne de texte.

Renvoie:

Le texte des logs Siril.

Type renvoyé:

str

Lève:

SirilError -- En cas d'erreurs lors de la récupération des données,

get_siril_panzoom()

Demander l'état de panoramique et de zoom à Siril.

Type renvoyé:

Tuple[float, float, float]

Renvoie:

Un tuple (décalage x, décalage y, niveau de zoom) représentant l'état actuel du panoramique et du zoom de l'image.

Lève:

SirilError -- si une erreur est survenue.

get_siril_selection()

Demandez la sélection d'images à Siril.

Type renvoyé:

Optional[Tuple[int, int, int, int]]

Renvoie:

Un tuple (x, y, hauteur, largeur) représentant la sélection actuelle, ou None si aucune sélection n'est faite.

Lève:

SirilError -- si une erreur est survenue.

get_siril_slider_state(float_range=False)

Demander l'état des curseurs d'affichage à Siril.

Type renvoyé:

Tuple[int, int, SlidersMode]

Renvoie:

Un tuple (min, max, mode du curseur) représentant l'état actuel du curseur.

Lève:

SirilError -- si une erreur est survenue.

get_siril_stf()

Demander la fonction de transfert d'écran utilisée dans Siril.

Type renvoyé:

STFType

Renvoie:

Un STFType représentant l'état STF actuel.

Lève:

SirilError -- si une erreur est survenue.

get_siril_stf_linked()

Déterminer si le STF Auto ajustement est configuré pour être lié ou non

Type renvoyé:

bool

Renvoie:

Un booléen représentant l'état actuel de liaison des canaux du STF.

Lève:

SirilError -- si une erreur est survenue.

get_siril_systemdatadir()

Demander le répertoire de données système utilisé par Siril.

Type renvoyé:

Optional[str]

Renvoie:

Le répertoire de données du système sous forme de chaîne de caractères.

Lève:
get_siril_userdatadir()

Demander le répertoire de données utilisateur utilisé par Siril.

Type renvoyé:

str

Renvoie:

Le répertoire des données utilisateur sous forme de chaîne de caractères.

Lève:
get_siril_wd()

Demander le répertoire de travail actuel à Siril.

Type renvoyé:

str

Renvoie:

Le répertoire de travail actuel sous forme de chaîne de caractères.

Lève:
  • DataError -- si aucune réponse n'a été obtenue,

  • SirilError -- pour toutes les autres erreurs.

image_lock()

Un gestionnaire de contexte qui gère l'acquisition et la libération du thread de traitement.

Cette méthode est conçue pour être utilisée avec une instruction with afin de garantir que le thread soit correctement acquis avant le traitement et libéré après celui-ci, même si une exception se produit pendant le traitement. Il est préférable d'utiliser ce gestionnaire de contexte plutôt que d'appeler manuellement claim_thread() et release_thread(), car le gestionnaire de contexte garantira un nettoyage correct en cas d'exception.

Notez que le contexte image_lock() ne doit être utilisé que lorsque le script lui-même agit sur les données de l'image Siril. Si le script appelle une commande Siril pour modifier l'image Siril, alors ce contexte ne doit pas être utilisé, sinon la commande Siril ne pourra pas acquérir le thread de traitement et échouera.

Exemple :

try:
    with siril.image_lock():
        # Get image data
        image_data = self.get_image_pixeldata()
        # Process image data
        processed_data = some_processing_function(image_data)
        # Set the processed image data
        siril.set_image_pixeldata(processed_data)
except ProcessingThreadBusyError:
    # Handle busy thread case
    pass
except ImageDialogOpenError:
    # Handle open dialog case
    pass
Lève:
info_messagebox(my_string, modal=False)

Envoyer un message d'information à Siril. La longueur maximale du message est de 1022 octets : les messages plus longs seront tronqués. Ceci est destiné à afficher des messages d'information de manière plus visible qu'en utilisant le journal de Siril.

Paramètres:
  • my_string (str) -- Le message à afficher dans la boîte de dialogue d'information

  • modal (Optional[bool]) -- Définit si la boîte de message doit être modale et attendre la fin de son affichage, ou non modale et permettre au script de continuer son exécution. Notez que, bien qu'une boîte de message modale bloque l'exécution du script, si une boucle principale TKinter est en cours d'exécution, les événements continueront à s'accumuler ; ainsi, si la boîte de message est déclenchée en cliquant sur un bouton, l'utilisateur peut cliquer dessus pendant que la boîte de message est affichée et déclencher une seconde boîte de message qui s'affichera dès que la première sera fermée.

Renvoie:

True si l'information a été affichée avec succès, False sinon

Type renvoyé:

bool

Lève:

SirilError -- si une erreur est survenue.

is_cli()

Vérifier si l'instance actuelle s'exécute en mode ligne de commande. Cette méthode est utile pour détecter comment le script a été invoqué et s'il faut afficher ou non une interface graphique. Ceci vaut False lorsque le script est appelé en cliquant dans le menu Scripts, True sinon.

Renvoie:

True si exécuté en mode ligne de commande, False sinon.

Type renvoyé:

bool

is_image_loaded()

Vérifie si une seule image est chargée dans Siril.

Renvoie:

True si une seule image est chargée, False si aucune image seule n'est chargée

Type renvoyé:

bool

Lève:
is_sequence_loaded()

Vérifie si une séquence est chargé dans Siril.

Renvoie:

True si une séquence est chargée, False si aucune séquence n'est chargée

Type renvoyé:

bool

Lève:
load_image_from_file(filepath, with_pixels=True, preview=False, linked=False)

Demander à Siril de charger une image depuis un fichier et de la transférer vers sirilpy. Cette méthode ne modifie pas l'image actuellement chargée dans Siril. Tout format d'image pris en charge par Siril est accepté. Elle peut être utilisée comme alternative au chargement d'une image via astropy.io.fits, mais son principal avantage est peut-être qu'elle prend en charge l'option d'aperçu, qui permet d'obtenir un rendu 8 bits avec auto ajustement de l'image plus rapidement qu'en utilisant astropy et en appliquant un auto ajustement avec numpy.

Paramètres:
  • filepath (str) -- Chaîne de caractères indiquant le chemin d'accès au fichier image à charger.

  • with_pixels (Optional[bool]) -- booléen spécifiant s'il faut renvoyer ou non les données de pixels de l'image (la valeur par défaut est True).

  • preview (Optional[bool]) -- booléen spécifiant s'il faut renvoyer les données de pixels réelles ou une version d'aperçu en uint8_t avec auto ajustement. N'a d'effet qu'en combinaison avec with_pixels = True

  • linked (Optional[bool]) -- booléen spécifiant si l'aperçu avec auto ajustement doit être lié ou non. N'a d'effet que si preview est True.

Type renvoyé:

Optional[FFit]

Renvoie:

Objet FFit contenant les données de l'image

Lève:
  • FileNotFoundError -- si le fichier indiqué n'existe pas,

  • DataError -- en cas de réception de données erronées,

  • SirilError -- si une erreur est survenue.

log(my_string, color=LogColor.DEFAULT)

Envoyer un message au journal de Siril. La longueur maximale du message est de 1022 octets : les messages plus longs seront tronqués.

Paramètres:
  • my_string (str) -- Le message à loger

  • color (LogColor) -- Définit la couleur du texte, blanc par défaut. Voir la documentation

  • which (for LogColor for an explanation of which colors should be used for)

  • purposes.

Lève:

SirilError -- si la commande échoue

Type renvoyé:

bool

open_dialog(dialog)

Opens a Siril GUI dialog. Introduced in sirilpy version 1.0.20.

Paramètres:

dialog (DialogID) -- Specifies the dialog to open.

Renvoie:

True if the dialog-opening action succeeded False if the dialog-opening action failed (e.g. because the criteria were not met)

Lève:
  • TypeError -- if the parameter is not a DialogID.

  • SirilError -- if the method is called headless or an error occurs.

overlay_add_polygon(polygon)

Ajoute un polygone utilisateur à la superposition d'affichage de Siril :type polygon: Polygon :param polygon: Polygon définissant le polygone à ajouter

Renvoie:

les entrées mise à jours avec l'ID assigné par Siril

Type renvoyé:

Polygon

Lève:
  • TypeError -- données non valides fournies,

  • SirilConnectionError -- en cas d'échec de la connexion,

  • DataError -- en cas de réception de données non valides,

  • SirilError -- pour toutes défaillance

overlay_clear_polygons()

Supprime tous les polygones utilisateur de l'affichage Siril

Renvoie:

True si la commande a abouti, False dans le cas contraire

Type renvoyé:

bool

Lève:
overlay_delete_polygon(polygon_id)

Supprime un seul polygone utilisateur de la superposition Siril, spécifié par ID

Paramètres:

id -- entier spécifiant l'ID du polygone à supprimer

Lève:

SirilError -- en cas d'échec

overlay_draw_polygon(color=16711744, fill=False)

Entre dans un mode où l'utilisateur peut dessiner un polygone dans la fenêtre Siril en cliquant sur le bouton principal de la souris et en faisant glisser. Relâcher le bouton de la souris finalise et ferme le polygone.

Paramètres:
  • color -- uint32 spécifiant des valeurs RGBA compactées. Par défaut : 0x00FF0040, vert transparent à 75 %)

  • fill -- booléen spécifiant s'il faut remplir le polygone ou non (par défaut : False)

overlay_get_polygon(polygon_id)

Récupère un seul polygone utilisateur de la superposition Siril, spécifié par ID

Paramètres:

id -- entier spécifiant l'ID du polygone à récupérer. L'ID spécial -1

récupère le polygone ajouté le plus récemment.

Renvoie:

le polygone spécifié s'il existe, None sinon

Type renvoyé:

Polygon

Lève:

SirilError -- en cas d'échec

overlay_get_polygons_list()

Récupère une liste de tous les polygones utilisateur de la superposition Siril

Renvoie:

la liste des Polygon s'il en existe, None sinon

Type renvoyé:

List[Polygon]

Lève:
pix2radec(x, y)

Convertit une paire de coordonnées de pixels en coordonnées RA et dec à l'aide du WCS de l'image chargée dans Siril. Cela nécessite qu'une image soit chargée dans Siril et qu'elle ait été résolue en astrométrie (c'est-à-dire qu'elle possède une solution WCS).

Paramètres:
  • x (float) -- float : fournit la coordonnée x à convertir

  • y (float) -- float : fournit la coordonnée y à convertir

Renvoie:

(RA, Dec) sous la forme d'un tuple de deux floats.

Type renvoyé:

Tuple[float, float]

Lève:
  • NoImageError -- Si aucune image ou séquence n'est chargé,

  • ValueError -- Si l'image ou l'image de la séquence chargée n'est pas résolue en astrométrie,

  • SirilError -- En cas d'erreurs survenant lors de l'exécution de pix2radec.

radec2pix(ra, dec)

Convertit une paire de coordonnées RA, dec en coordonnées de pixels de l'image à l'aide du WCS de l'image chargée dans Siril. Cela nécessite qu'une image soit chargée dans Siril et qu'elle ait été résolue en astrométrie (c'est-à-dire qu'elle possède une solution WCS).

Paramètres:
  • ra (float) -- float : fournit la coordonnée RA à convertir

  • dec (float) -- float : fournit la coordonnée dec à convertir

Renvoie:

[x,y] comme un Tuple de deux nombres flottants.

Type renvoyé:

Tuple[float, float]

Lève:
  • NoImageError -- Si aucune image ou séquence n'est chargé,

  • ValueError -- Si l'image ou l'image de la séquence chargée n'est pas résolue en astrométrie,

  • SirilError -- En cas d'erreurs survenant lors de l'exécution de radec2pix.

redo()

Rétablit la dernière opération annulée, s'il existe un historique d'annulation et une opération annulée disponible à rétablir.

reset_progress()

Réinitialise la barre de progression de Siril.

Paramètres:

none

Lève:

SirilError -- Pour toutes erreurs.

Type renvoyé:

bool

save_image_file(data, header=None, filename=None)

Enregistrer les données de pixels et les métadonnées de l'image dans un fichier FITS. Cette méthode utilise Siril pour enregistrer l'image et permet donc d'éviter une dépendance du script à astropy si celle-ci n'est nécessaire que pour enregistrer une image. Cela permet d'enregistrer des images directement depuis python sans avoir à utiliser set_image_pixeldata() et set_image_metadata_from_header_string() puis à enregistrer l'image Siril. Elle prend en charge le traitement de plusieurs images sans affecter l'image actuellement chargée dans Siril.

Paramètres:
  • data -- Soit un numpy.ndarray contenant les données de l'image (doit être un tableau 2D ou 3D avec un dtype float32 ou uint16), soit un objet FFit contenant à la fois les données et l'en-tête.

  • header -- chaîne contenant les données de l'en-tête FITS. Requis si data est un tableau numpy, ignoré si data est un objet FFit.

  • filename -- chaîne contenant le chemin où le fichier doit être enregistré. Requis si data est un tableau numpy. Si data est un objet FFit et que filename est None, fit.filename sera utilisé.

Renvoie:

True en cas de succès, False dans le cas contraire

Type renvoyé:

bool

Lève:
  • ValueError -- si le tableau d'entrée ou l'en-tête n'est pas valide,

  • TypeError -- si des types de paramètres non valides sont fournis,

  • SirilError -- si une erreur s'est produite lors du traitement de la commande.

Exemples

# En utilisant un tableau numpy et une chaîne d'en-tête siril.save_image_file(data_array, header_string, "output.fit")

# En utilisant un objet FFit siril.save_image_file(fit, filename="output.fit")

# En utilisant un objet FFit avec son propre nom de fichier siril.save_image_file(fit)

set_image_bgsamples(points, show_samples=False, recalculate=True)

Sérialise un ensemble de points d'échantillonnage de fond et les envoie via la mémoire partagée. Les points peuvent être fournis soit sous forme : - de liste de tuples (x,y) : des BGSamples sont créés avec ces positions et Siril calculera automatiquement les statistiques. - de liste d'objets BGSample : les données complètes de l'échantillon sont envoyées à Siril. Par défaut, Siril recalculera les statistiques des points d'échantillonnage à leur réception, mais cela peut être modifié avec l'argument recalculate=False

Paramètres:
  • points (Union[List[Tuple[float, float]], List[BGSample]]) -- Liste de points d'échantillonnage, soit sous forme de tuples (x,y), soit d'objets BGSample

  • show_samples (bool) -- Afficher ou non les points d'échantillonnage dans Siril

  • recalculate -- Indique s'il faut recalculer les points d'échantillonnage une fois définis. Cela ne s'applique que si les points d'échantillonnage sont fournis sous forme de liste de BGSamples, auquel cas la valeur par défaut est True. Si les points d'échantillonnage sont fournis sous forme de liste de tuples (x,y), ce paramètre n'a aucun effet. Définir recalculate=False est généralement une mauvaise idée, mais cette option est fournie pour prendre en charge d'éventuels usages avancés où les valeurs sont ajustées en code python pour manipuler l'ajustement du fond.

Retourne : True si la commande a abouti, False dans le cas contraire

Lève:
  • NoImageError -- si aucune image n'est chargée dans Siril,

  • ValueError -- si les échantillons n'ont pas de positions valides,

  • SirilError -- s'il y a eu une erreur Siril lors du traitement de la commande.

set_image_filename(filename)

Set the image filename in Siril. :type filename: str :param filename: the image filename to set :type filename: str

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si le nom de fichier a été défini avec succès

Type renvoyé:

bool

set_image_iccprofile(iccprofile)

Configurer le profil ICC de l'image dans Siril

Paramètres:
  • iccprofile (bytes) -- The ICC profile to send to Siril. This will

  • profile (replace an existing ICC)

  • None (if one is set. If)

:param : :param any existing image ICC profile will be removed.:

Retourne : True si la commande a abouti, False dans le cas contraire

Lève:
  • NoImageError -- si aucune image n'est chargée dans Siril,

  • ValueError -- if iccprofile is not valid type,

  • SirilError -- s'il y a eu une erreur Siril lors du traitement de la commande.

set_image_metadata_from_header_string(header)

Envoyer les métadonnées de l'image à Siril à partir d'un en-tête FITS. L'en-tête peut être obtenu à partir d'un FFit.header de sirilpy, ou bien à partir d'un fichier FITS ouvert depuis le disque à l'aide d'astropy.fits.

Exemple :

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 string
header_string = header.tostring(sep='\\n')
# Send the metadata to Siril
siril.set_image_metadata_from_header_string(header_string)
Paramètres:

header (str) -- chaîne contenant les données de l'en-tête FITS

Renvoie:

True en cas de succès, False dans le cas contraire

Type renvoyé:

bool

Lève:
  • TypeError -- paramètre invalide fourni,

  • NoImageError -- si aucune image n'est chargée dans Siril,

  • SirilError -- si une erreur est survenue.

set_image_pixeldata(image_data)

Envoyer les données d'image à Siril à l'aide de la mémoire partagée.

Paramètres:

image_data (ndarray) -- numpy.ndarray contenant les données de l'image. Doit être un tableau 2D (canal unique) ou 3D (multi-canal) avec un dtype np.float32 ou np.uint16.

Lève:
  • NoImageError -- si aucune image n'est chargée dans Siril,

  • ValueError -- Si le tableau d'entré est invalide,

  • SirilError -- si une erreur s'est produite lors du traitement de la commande.

Type renvoyé:

bool

set_seq_frame_incl(index, incl)

Définir si les image(s) données sont incluses dans la séquence actuellement chargée dans Siril. Cette méthode est destinée à être utilisée pour créer des filtres de séquence personnalisés.

Paramètres:
  • index (Union[int, List[int]]) -- entier ou liste d'entiers spécifiant pour quelle(s) image(s) définir le statut d'inclusion. Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1. Le passage d'une liste est disponible depuis sirilpy 1.0.17

  • incl (bool) -- booléen spécifiant si les image(s) sont incluses ou non.

Lève:
  • NoSequenceError -- si aucune séquence n'est chargée dans Siril,

  • TypeError -- si l'index n'est pas un entier ou une liste d'entiers,

  • SirilError -- en cas d'échec.

set_seq_frame_pixeldata(index, image_data, prefix)

Envoyer les données d'image d'une image de séquence à Siril via la mémoire partagée. Notez que cette méthode ne fonctionne qu'avec les séquences d'images FITS : elle ne fonctionne pas avec les séquences en fichier unique FITSEQ, SER ou AVI. Le gestionnaire de contexte image_lock() n'est pas nécessaire pour utiliser cette méthode.

Paramètres:
  • index (int) -- entier spécifiant l'image pour laquelle définir les données de pixels. Ceci utilise un indexage débutant à 0, c'est-à-dire que la première image est l'image numéro 0, et non l'image numéro 1.

  • image_data (ndarray) -- numpy.ndarray contenant les données de l'image. Doit être un tableau 2D (canal unique) ou 3D (multi-canal) avec un dtype np.float32 ou np.uint16.

  • prefix (str) -- Préfixe de chaîne à utiliser lors de l'enregistrement du fichier pour créer une nouvelle séquence. Notez qu'enregistrer les images de la séquence avec un nouveau préfixe ne crée pas en soi une nouvelle séquence : une fois que toutes les images ont été enregistrées avec le nouveau préfixe de séquence, sirilpy.SirilInterface.create_new_seq() doit être appelée pour créer le fichier de séquence proprement dit. Notez que, bien qu'il soit permis de passer prefix=None, cela écrasera la séquence existante et ce n'est généralement pas ce qui est souhaité ; ce paramètre n'est donc pas facultatif et doit être passé explicitement.

Lève:
  • NoSequenceError -- si aucune séquence n'est chargée dans Siril,

  • ValueError -- Si le tableau d'entré est invalide,

  • SirilError -- si une erreur s'est produite lors du traitement de la commande.

Type renvoyé:

bool

set_siril_pan(xoff, yoff)

Set the display offset (pan) in Siril to (xoff, yoff). :type xoff: float :param xoff: x display offset :type xoff: float :type yoff: float :param yoff: y display offset :type yoff: float

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si le décalage d'affichage a été défini avec succès

Type renvoyé:

bool

set_siril_selection(x=None, y=None, w=None, h=None, selection=None)

Défini la sélection d'image dans Siril à l'aide des coordonnées et des dimensions fournies.

Paramètres:
  • x (Optional[int]) -- Coordonnée X du coin supérieur gauche de la sélection (doit être fournie avec y, w, h)

  • y (Optional[int]) -- Coordonnée Y du coin supérieur gauche de la sélection (doit être fournie avec x, w, h)

  • w (Optional[int]) -- Largeur de la sélection (doit être fournie avec x, y, h)

  • h (Optional[int]) -- Hauteur de la sélection (doit être fournie avec x, y, w)

  • selection (Optional[Tuple[int, int, int, int]]) -- Un tuple (x, y, w, h) tel que renvoyé par get_siril_selection()

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si la sélection a été effectuée avec succès

Type renvoyé:

bool

set_siril_slider_lohi(lo=None, hi=None)

Définir les valeurs des curseurs dans Siril à l'aide des valeurs lo et hi fournies. Si le mode des curseurs n'est pas déjà réglé sur USER, il est réglé sur ce mode car la définition des valeurs de curseur n'est pertinente que dans ce mode. :type lo: Union[float, int] :param lo: valeur basse du curseur (float [0,1] ou uint16) :type hi: Union[float, int] :param hi: valeur haute du curseur (float [0,1] ou uint16)

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si l'état du curseur a été défini correctement

Type renvoyé:

bool

set_siril_slider_mode(mode)

Définir l'état des curseurs dans Siril à l'aide des valeurs lo, hi et mode fournies. :type mode: SlidersMode :param mode: valeur d'énumération SlidersMode

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si l'état du curseur a été défini correctement

Type renvoyé:

bool

set_siril_stf(mode)

Définir la fonction de transfert d'écran dans Siril à l'aide de la valeur d'énumération fournie. :type mode: SlidersMode :param mode: valeur d'énumération STFType

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si l'état du curseur a été défini correctement

Type renvoyé:

bool

set_siril_stf_linked(state)

Définir la fonction de transfert d'écran dans Siril à l'aide de la valeur d'énumération fournie. :type state: bool :param state: bool

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si l'état du curseur a été défini correctement

Type renvoyé:

bool

set_siril_zoom(zoom)

Set the display zoom. Passing any negative value will set 'zoom to fit'. :type zoom: float :param zoom: zoom level :type zoom: float

Lève:
  • SirilError -- si une erreur est survenue.

  • ValueError -- si les paramètres ne sont pas correctement fournis.

Renvoie:

True si le décalage d'affichage a été défini avec succès

Type renvoyé:

bool

undo()

Annule la dernière opération, s'il existe un historique d'annulation disponible.

undo_save_state(my_string)

Saves an undo state. The maximum message length is 70 bytes: longer messages will be truncated. Requires a single image to be loaded.

Paramètres:

my_string (str) -- Le message à écrire dans le FITS HISTORY

Renvoie:

True if the message was successfully logged, False if a logging error occurred or None if the script is headless (undo does not happen when headless)

Type renvoyé:

Optional[bool]

Lève:

SirilError -- si une erreur est survenue.

update_progress(message, progress)

Envoyer une mise à jour de progression à Siril avec un message et un pourcentage d'achèvement.

Paramètres:
  • message (str) -- Message de statu à afficher

  • progress (float) -- Valeur de progression comprise entre 0,0 et 1,0. Les valeurs spéciales suivantes peuvent être utilisées : -1,0 fera pulser la barre de progression, et -2,0 mettra à jour le texte de la barre de progression sans mettre à jour la progression affichée dans la barre.

Lève:
  • ValueError -- Si l'argument progress est hors limites,

  • SirilError -- Pour tout autre erreurs.

Type renvoyé:

bool

warning_messagebox(my_string, modal=False)

Envoyer un message d'avertissement à Siril. La longueur maximale du message est de 1022 octets : les messages plus longs seront tronqués. Ceci est destiné à afficher des messages d'avertissement de manière plus visible qu'en utilisant le journal de Siril.

Paramètres:
  • my_string (str) -- Le message à afficher dans la boite de message d'avertissement

  • modal (Optional[bool]) -- Définit si la boîte de message doit être modale et attendre la fin de son affichage, ou non modale et permettre au script de continuer son exécution. Notez que, bien qu'une boîte de message modale bloque l'exécution du script, si une boucle principale TKinter est en cours d'exécution, les événements continueront à s'accumuler ; ainsi, si la boîte de message est déclenchée en cliquant sur un bouton, l'utilisateur peut cliquer dessus pendant que la boîte de message est affichée et déclencher une seconde boîte de message qui s'affichera dès que la première sera fermée.

Renvoie:

True si l'avertissement a correctement été affiché, False sinon

Type renvoyé:

bool

Lève:

SirilError -- si une erreur est survenue.

xy_plot(plot_data, display=True, save=False)

Sérialise les données de tracé et les envoie via la mémoire partagée. Consultez la documentation du sous-module sirilpy.plot pour savoir comment configurer un objet PlotData à utiliser avec SirilInterface.xy_plot()

Paramètres:
  • plot_metadata -- Objet PlotMetadata contenant la configuration du graphique

  • display -- booléen indiquant s'il faut afficher le graphique à l'écran (valeur par défaut : True)

  • save -- booléen indiquant s'il faut enregistrer dans le fichier spécifié dans PlotData.savename (par défaut False)

Lève:
  • DataError -- si des données xy_plot non valides sont reçues via la mémoire partagée,

  • SirilError -- Si une erreur se produit.

Modèles de données Sirilpy

Ce sous-module fournit des dataclasses pour représenter les principales structures de données de Siril. La plupart des dataclasses disposent de méthodes de désérialisation correspondantes utilisées par les méthodes de SirilInterface. Tous ses membres sont disponibles au niveau racine du module, il n'est pas nécessaire d'importer models séparément.

class sirilpy.models.BGSample(x=None, y=None, position=None, size=25, **kwargs)

Bases : object

Équivalent Python de la structure Siril background_sample. Utilisée pour contenir les données d'échantillonnage de fond obtenues depuis Siril, ou pour générer ou modifier des données d'échantillonnage de fond à définir dans Siril. Un BGSample peut être construit ainsi : - 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)

classmethod deserialize(data)

Désérialise une portion d'un tampon en un objet BGSample

Paramètres:

data (bytes) -- Le tampon binaire complet contenant les données BGSample

Renvoie:

Un objet BGSample

Type renvoyé:

BGSample

Lève:
  • ValueError -- Si la taille de la tranche du tampon ne correspond pas à la taille attendue.

  • struct.error -- S'il y a une erreur lors du dépaquetage des données binaires.

max: float = 0.0
mean: float = 0.0
median: Tuple[float, float, float] = (0.0, 0.0, 0.0)

Valeur médiane des canaux R, V et B. Pour les images mono, seul median[0] est utilisé.

min: float = 0.0
position: Tuple[float, float] | None = None

Position (x, y) en coordonnées image

size: int = 25

La taille par défaut correspond à la taille des échantillons de fond de Siril.

valid: bool = True

Par défaut, les échantillons sont considérés comme valides

class sirilpy.models.DistoData(index=DistoType.DISTO_UNDEF, filename='', velocity=(0, 0))

Bases : object

Équivalent Python de la structure Siril disto_params

filename: str = ''

nom de fichier si DISTO_FILE ou DISTO_MASTER (et facultatif pour DISTO_FILE_COMET)

index: DistoType = 0

Spécifie le type de distortion

velocity: Tuple[float, float] = (0, 0)

vitesse de décalage si DISTO_FILE_COMET

class sirilpy.models.FFit(bitpix=None, orig_bitpix=None, naxis=0, _naxes=(0, 0, 0), keywords=<factory>, checksum=False, header=None, unknown_keys=None, stats=<factory>, mini=0.0, maxi=0.0, neg_ratio=0.0, _data=None, top_down=False, _focalkey=False, _pixelkey=False, history=<factory>, color_managed=False, _icc_profile=None)

Bases : object

Équivalent Python de la structure Siril ffit (FITS), contenant les données de pixels de l'image et les métadonnées.

allocate_data()

Alloue de la mémoire pour les données d'image avec le type approprié. self.width, self.height, self.naxis, self.naxes et self.dtype doivent être définis avant d'appeler cette méthode.

Lève:

ValueError -- si self.bitpix n'est pas défini sur BitpixType.USHORT_IMG ou BitpixType.FLOAT_IMG

ensure_data_type(target_type=None)

S'assurer que les données sont du bon type avec une mise à l'échelle appropriée

Paramètres:

target_type -- np.dtype facultatif vers lequel convertir. Si None, utilise self.type

Lève:

ValueError -- si la conversion se fait entre des types de données qui ne sont pas utilisés en interne par Siril pour le calcul

estimate_noise(array, nullcheck=True, nullvalue=0.0)

Estime le bruit de fond dans l'image d'entrée à l'aide de l'écart-type des différences du premier ordre.

bruit = 1.0 / sqrt(2) * RMS de (flux[i] - flux[i-1])

Paramètres:
  • array (np.ndarray) -- Tableau 2D de pixels d'image (np.uint16 ou np.float32).

  • nullcheck (bool) -- Si la valeur est True, vérifiez s'il y a des valeurs nulles.

  • nullvalue (Optional[float]) -- La valeur des pixels nuls (utilisée uniquement si nullcheck est True).

Renvoie:

Valeur estimé du bruit.

Type renvoyé:

float

Lève:

ValueError -- si le tableau n'a pas la bonne taille

get_channel(channel)

Récupère un canal spécifique des données de pixels. Notez que cela ne récupère pas directement les données de pixels de l'image chargée dans Siril : celles-ci doivent avoir été préalablement obtenues à l'aide de get_image_pixeldata() ou get_image()

Type renvoyé:

ndarray

update_stats()

Met à jour les statistiques de l'image pour tous les canaux. Notez que cela ne met à jour les statistiques qu'à partir du tableau NumPy représentant les données de pixels dans l'objet FFit Python ; cela ne met pas à jour les statistiques de l'image dans Siril.

bitpix: BitpixType | None = None

Spécification de l'en-tête FITS du type de données de l'image.

property channels: int

Canaux d'image

checksum: bool = False

Indique si Siril écrira les sommes de contrôle des données FITS pour ce fichier.

color_managed: bool = False

Spécifie si l'image bénéficie ou non de la gestion des couleurs.

property data: ndarray | None

Les données de pixels de l'image actuellement chargée dans Siril, stockées sous forme de tableau NumPy

header: str | None = None

L'entête FITS en temps que chaîne de caractère.

property height: int

Hauteur de l'image

history: list[str]

Contient une liste de chaînes contenant les entrées HISTORY de cette image.

property icc_profile: bytes | None

Le profil ICC sous forme de données brutes en octets. Celui-ci peut être converti pour être utilisé par des modules tels que pillow, capables de gérer les profils ICC.

keywords: FKeywords

Un objet FKeywords contenant les mots-clés de l'en-tête FITS.

maxi: float = 0.0

La valeur maximal à travers tous les canaux de l'image.

mini: float = 0.0

La valeur minimal à travers tous les canaux de l'image.

property naxes: Tuple[int, int, int]

Le tuple naxes contient les dimensions de l'image sous forme largeur x hauteur x canaux. Notez que l'ordre des axes diffère entre la représentation Siril contenue dans naxes et la représentation numpy contenue dans _data.shape (qui est canaux x hauteur x largeur)

naxis: int = 0

Le nombre d'axes (2 pour une image mono, 3 pour une image RGB). Correspond au mot clé FITS NAXIS.

neg_ratio: float32 = 0.0

Le rapport entre le nombre de pixels négatifs et le nombre total de pixels.

orig_bitpix: BitpixType | None = None

Spécification de l'en-tête FITS du type de données de l'image d'origine.

stats: List[ImageStats | None]

Une liste d'objets ImageStats, un pour chaque canal.

top_down: bool = False

Spécifie le ROWORDER pour cette image. La spécification FITS indique que les fichiers FITS doivent être stockés de bas en haut (bottom-up), mais de nombreux capteurs CMOS sont nativement TOP_DOWN et les logiciels de capture ont tendance à enregistrer les images FITS capturées par ces capteurs en TOP_DOWN.

unknown_keys: str | None = None

Toutes les clés d'en-tête FITS inconnues sous forme de chaîne. Cela donne accès aux cartes d'en-tête que Siril n'utilise pas en interne.

property width: int

Largeur de l'image

class sirilpy.models.FKeywords(bscale=1.0, bzero=0.0, lo=0, hi=0, flo=0.0, fhi=0.0, program='', filename='', row_order='', filter='', image_type='', object='', instrume='', telescop='', observer='', bayer_pattern='', sitelat_str='', sitelong_str='', focname='', date=None, date_obs=None, data_max=0.0, data_min=0.0, pixel_size_x=0.0, pixel_size_y=0.0, binning_x=1, binning_y=1, expstart=0.0, expend=0.0, bayer_xoffset=0, bayer_yoffset=0, airmass=1.0, focal_length=0.0, flength=0.0, iso_speed=0.0, exposure=0.0, aperture=0.0, ccd_temp=0.0, set_temp=0.0, livetime=0.0, stackcnt=0, cvf=0.0, gain=0, offset=0, focuspos=0, focussz=0, foctemp=0.0, centalt=0.0, centaz=0.0, sitelat=0.0, sitelong=0.0, siteelev=0.0, objctra=None, objctdec=None, ra=None, dec=None, pltsolvd=False, pltsolvd_comment=None)

Bases : object

Équivalent Python de la structure Siril fkeywords. Contient les valeurs des mots-clés de l'en-tête FITS converties en types de données appropriés.

classmethod deserialize(data)

Désérialise un bloc binaire de mots-clés (le bloc produit par keywords_to_py()) en un objet FKeywords. Lève ValueError en cas d'incohérence de taille et SirilError pour les autres problèmes de dépaquetage.

Type renvoyé:

FKeywords

FLEN_VALUE: ClassVar[int] = 71
KEYWORDS_FORMAT: ClassVar[str] = '!71s71s71s71s71s71s71s71s71s71s71s71s71s71s71s71sddQQddddddQQdddddddqqdddddddddQdqqqqdqqdd?'
KEYWORDS_SIZE: ClassVar[int] = 1465
airmass: float = 1.0

Masse d'air au centre du cadre (Gueymard 1993)

aperture: float = 0.0

Valeur de l'ouverture en nombre flottant

bayer_pattern: str = ''

Matrice de Bayer

bayer_xoffset: int = 0

Décalage X du motif Bayer

bayer_yoffset: int = 0

Décalage Y du motif Bayer

binning_x: int = 1

Carte d'en-tête FITS XBINNING sous forme d'entier

binning_y: int = 1

mot clé YBINNING de l'en-tête FITS en int

bscale: float = 1.0

Décalage de la plage de données par rapport à celle d'une valeur non signée (unsigned short)

bzero: float = 0.0

Facteur d'échelle par défaut

ccd_temp: float = 0.0

Température du CCD en nombre à virgule flotante

centalt: float = 0.0

[deg] Altitude du télescope

centaz: float = 0.0

[deg] Azimut du télescope

cvf: float = 0.0

Facteur de conversion (e-/ ADU)

data_max: float = 0.0

utilisé pour vérifier si le flottant 32 bits est dans la plage [0, 1]

data_min: float = 0.0

utilisé pour vérifier si le flottant 32 bits est dans la plage [0, 1]

date: datetime | None = None

Date UTC de création du fichier FITS

date_obs: datetime | None = None

ss début de l'observation, UT

Type:

YYYY-MM-DDThh

Type:

mm

dec: float | None = None

Dec en nombre flottant, si disponible

expend: float = 0.0

Fin de l'exposition sous forme de date julienne

exposure: float = 0.0

Temps d'exposition en nombre flottant (s)

expstart: float = 0.0

Début de l'exposition sous forme de date julienne

fhi: float32 = 0.0

Clé MIPS-Hi dans le fichier FITS, « coupure supérieure de visualisation (flottant) »

filename: str = ''

Nom de fichier d'origine

filter: str = ''

Nom du filtre actif

flength: float = 0.0

[mm] Longueur focale

flo: float32 = 0.0

Clé MIPS-LO dans le fichier FITS, « coupure inférieure de visualisation (flottant) »

focal_length: float = 0.0

[mm] Longueur focale

focname: str = ''

Nom de l'équipement de mise au point

foctemp: float = 0.0

Température du focuseur

focuspos: int = 0

Position du focuseur

focussz: int = 0

[um] Taille du pas du focuseur

gain: int = 0

Facteur de gain lu depuis la caméra

hi: int = 0

Clé MIPS-HI dans le fichier FITS, « coupure supérieure de visualisation »

image_type: str = ''

Types d'image

instrume: str = ''

Nom de l'instrument

iso_speed: float = 0.0

Valeur de sensibilité ISO sous forme de nombre à virgule flottante

livetime: float = 0.0

Somme des temps d'expositions (s)

lo: int = 0

Clé MIPS-LO dans le fichier FITS, « coupure inférieure de visualisation »

objctdec: str | None = None

objet Dec sous forme de string, si disponible

objctra: str | None = None

objet Ra sous forme de string, si disponible

object: str = ''

Nom de l'objet d'intérêt

observer: str = ''

Nom de l'observateur

offset: int = 0

Valeur d'offset lue dans la caméra

pixel_size_x: float = 0.0

mot clé XPIXSZ de l'entête FITS en float

pixel_size_y: float = 0.0

mot clé YPIXSZ de l'entête FITS en float

pltsolvd: bool = False

si résolution astrométrique ou non

pltsolvd_comment: str | None = None

commentaire sur a solution astrométrique

program: str = ''

Logiciel qui a créé ce HDU

ra: float | None = None

Ra en nombre flottant, si disponible

row_order: str = ''

Ordre des lignes dans le tableau d'images

set_temp: float = 0.0

Température de consigne du CCD sous forme de nombre flottant

siteelev: float = 0.0

[m] Élévation du site d'observation

sitelat: float = 0.0
sitelat_str: str = ''
sitelong: float = 0.0

[deg] Longitude du site d'observation

sitelong_str: str = ''
stackcnt: int = 0

Nombres d'images empilé

telescop: str = ''

Télescope utilisé pour acquérir cette image

class sirilpy.models.FPoint(x, y)

Bases : object

Représente un point 2D avec des valeurs de coordonnées x et y flottantes dans l'image Siril.

x: float

coordonnée x

y: float

coordonnée y

class sirilpy.models.Homography(h00=0.0, h01=0.0, h02=0.0, h10=0.0, h11=0.0, h12=0.0, h20=0.0, h21=0.0, h22=0.0, pair_matched=0, Inliers=0)

Bases : object

Équivalent Python de la structure Siril Homography. Contient les coefficients de la matrice d'homographie qui projette une image de la séquence sur l'image de référence.

Inliers: int = 0

nombre d'inliers conservés après l'étape RANSAC

h00: float = 0.0

Matrice d'homographie H00

h01: float = 0.0

Matrice d'homographie H01

h02: float = 0.0

Matrice d'homographie H02

h10: float = 0.0

Matrice d'homographie H10

h11: float = 0.0

Matrice d'homographie H11

h12: float = 0.0

Matrice d'homographie H12

h20: float = 0.0

Matrice d'homographie H20

h21: float = 0.0

Matrice d'homographie H21

h22: float = 0.0

Matrice d'homographie H22

pair_matched: int = 0

nombre de paires trouvées

class sirilpy.models.ImageAnalysis(bgnoise=0.0, fwhm=0.0, wfwhm=0.0, nbstars=0, roundness=0.0, imagetype=0, timestamp=0, channels=0, height=0, width=0, filter='')

Bases : object

Structure destinée à contenir les données d'analyse d'image, utilisée pour le tri

classmethod deserialize(data)

Dépaquette une structure binaire compatible réseau en une instance ImageAnalysis.

Type renvoyé:

ImageAnalysis

serialize()

Empaquette la dataclass en une structure binaire compatible réseau.

Type renvoyé:

bytes

FLEN: ClassVar[int] = 71
bgnoise: float = 0.0

Bruit de fond RMS

channels: int = 0

nombre de canaux dans l'image

filter: str = ''

nom du filtre (chaîne de longueur fixe issue du C, 70 caractères max)

fwhm: float = 0.0

Moyenne fwhm

height: int = 0

hauteur de l'image

imagetype: ImageType = 0

Énumération du type d'image

nbstars: int = 0

Nombre d'étoiles détectées

roundness: float = 0.0

Moyenne de la rondeur des étoiles

timestamp: int = 0

00 UTC)

Type:

horodatage UNIX (secondes sur 64 bits depuis le 1/1/1970 00

wfwhm: float = 0.0

FWHM pondérée moyenne

width: int = 0

largeur de l'image

class sirilpy.models.ImageStats(total=0, ngoodpix=0, mean=0.0, median=0.0, sigma=0.0, avgDev=0.0, mad=0.0, sqrtbwmv=0.0, location=0.0, scale=0.0, min=0.0, max=0.0, normValue=0.0, bgnoise=0.0)

Bases : object

Équivalent Python de la structure Siril imstats. Contient les statistiques d'un canal particulier d'une image Siril.

classmethod deserialize(data)

Désérialise des données binaires en un objet ImageStats.

Paramètres:

data (bytes) -- (bytes) Données binaires à dépaqueter

Type renvoyé:

ImageStats

Renvoie : un objet ImageStats

Raises: SirilError: Si la taille des données reçues est incorrecte

struct.error : En cas d'échec du décompressage

avgDev: float = 0.0

écart moyen des pixels

bgnoise: float = 0.0

Bruit de fond RMS

location: float = 0.0

position des valeurs de pixels

mad: float = 0.0

écart moyen des pixels

max: float = 0.0

valeur maximale du pixel

mean: float = 0.0

valeur moyenne des pixels

median: float = 0.0

valeur médiane des pixels

min: float = 0.0

valeur minimale du pixel

ngoodpix: int = 0

nombre de pixels différents de zéro

normValue: float = 0.0

valeur normé des pixels

scale: float = 0.0

Valeur de normalisation des pixels

sigma: float = 0.0

déviation standard des pixels

sqrtbwmv: float = 0.0

racine carrée de la biweight midvariance des valeurs de pixels

total: int = 0

nombre total de pixels

class sirilpy.models.ImgData(filenum=0, incl=False, date_obs=None, airmass=0.0, rx=0, ry=0)

Bases : object

Équivalent Python de la structure Siril imgdata

classmethod deserialize(response)

Désérialise une réponse binaire en un objet ImgData.

Paramètres:

response (bytes) -- Données binaires à décompresser.

Renvoie:

Un objet ImgData contenant les données désérialisées.

Type renvoyé:

ImgData

Lève:
  • ValueError -- Si la taille des données reçues est incorrecte.

  • struct.error -- Si la décompression échoue.

airmass: float = 0.0

airmass de l'image

date_obs: datetime | None = None

date de l'observation

filenum: int = 0

index réel du fichier dans la séquence

incl: bool = False

sélectionné dans la séquence

rx: int = 0

width

ry: int = 0

height

class sirilpy.models.PSFStar(star_name=None, B=0.0, A=0.0, x0=0.0, y0=0.0, sx=0.0, sy=0.0, fwhmx=0.0, fwhmy=0.0, fwhmx_arcsec=0.0, fwhmy_arcsec=0.0, angle=0.0, rmse=0.0, sat=0.0, R=0, has_saturated=False, beta=0.0, profile=StarProfile.GAUSSIAN, xpos=0.0, ypos=0.0, mag=0.0, Bmag=0.0, s_mag=999.99, s_Bmag=999.99, SNR=0.0, phot_is_valid=False, BV=0.0, B_err=0.0, A_err=0.0, x_err=0.0, y_err=0.0, sx_err=0.0, sy_err=0.0, ang_err=0.0, beta_err=0.0, layer=0, units=None, ra=0.0, dec=0.0)

Bases : object

Équivalent Python de la structure Siril fwhm_struct. Contient les données d'un ajustement modélisé pour une étoile identifiée dans l'image.

classmethod deserialize(data)

Désérialise une portion d'un tampon en un objet PSFStar.

Paramètres:

data (bytes) -- (bytes) Le tampon binaire complet contenant les données PSFStar.

Type renvoyé:

PSFStar

Renvoie:

Objet PSFStar

Lève:
  • ValueError -- Si la taille de la tranche du tampon ne correspond pas à la taille attendue.

  • struct.error -- S'il y a une erreur lors du dépaquetage des données binaires.

A: float = 0.0

amplitude

A_err: float = 0.0

erreur en A

B: float = 0.0

valeur moyenne du fond du ciel

BV: float = 0.0

utilisé uniquement pour transmettre des données lors de l'étalonnage des couleurs par photométrie

B_err: float = 0.0

erreur en B

Bmag: float = 0.0

magnitude B

R: int = 0

Taille de boîte optimisée pour englober suffisamment de pixels dans le fond

SNR: float = 0.0

SNR de l'étoile

ang_err: float = 0.0

erreur sur l'angle

angle: float = 0.0

angle des axes x et y de l'étoile par rapport aux axes x et y de l'image

beta: float = 0.0

Paramètre beta de l'équation Moffat

beta_err: float = 0.0

erreur en beta

dec: float = 0.0

Déclinaison

fwhmx: float = 0.0

FWHM selon l'axe x en pixels

fwhmx_arcsec: float = 0.0

FWHM sur l'axe x en arc seconds

fwhmy: float = 0.0

FWHM selon l'axe y en pixels

fwhmy_arcsec: float = 0.0

FWHM sur l'axe xyen arc seconds

has_saturated: bool = False

Indique si l'étoile est saturée ou non

layer: int = 0

canal de l'image sur lequel la modélisation de l'étoile a été effectuée

mag: float = 0.0
  1. magnitude, approximatif ou précis

phot_is_valid: bool = False

True si mag, Bmag, s_mag, s_Bmag et SNR sont photométriquement précis, sans pixels saturés. Introduit dans sirilpy 1.0.4.

profile: StarProfile = 0
ra: float = 0.0

Ascension droite

rmse: float = 0.0

RMSE de la minimisation

s_Bmag: float = 999.99

Erreur sur la magnitude B

s_mag: float = 999.99

erreur sur la magnitude (V)

sat: float = 0.0

Niveau au dessus duquel les pixels sont saturés

star_name: str | None = None
sx: float = 0.0

Taille de la fonction ajustée sur l'axe x en coordonnées PSF

sx_err: float = 0.0

erreur en sx

sy: float = 0.0

Taille de la fonction ajustée sur l'axe y en coordonnées PSF

sy_err: float = 0.0

erreur en sy

units: str | None = None

Unité

x0: float = 0.0

coordonnée x du pic

x_err: float = 0.0

erreur en x

xpos: float = 0.0

position x de l'étoile dans l'image

y0: float = 0.0

coordonnée y du pic

y_err: float = 0.0

erreur en y

ypos: float = 0.0

position y de l'étoile dans l'image

class sirilpy.models.Polygon(points, polygon_id=0, color=4294967295, fill=False, legend=None)

Bases : object

Représente un polygone défini par l'utilisateur. Ceux-ci peuvent être remplis ou en contour seul, et peuvent avoir n'importe quelle couleur et valeur de transparence (alpha). Ils peuvent également avoir une étiquette facultative affichée centrée sur le polygone.

Notez que les Polygons doivent être considérés comme transitoires s'ils sont utilisés avec la superposition - ils peuvent être utilisés pour afficher des informations à l'utilisateur, mais ils peuvent être effacés à tout moment si l'utilisateur active le bouton de superposition dans l'interface principale de Siril pour effacer la superposition.

classmethod deserialize_polygon(data)

Crée un objet Polygon en désérialisant un tableau d'octets.

Renvoie:

Un objet Polygon et les octets restants dans le tableau d'octets. (Les octets restants sont destinés à être utilisés dans deserialize_polygon_list et peuvent être ignorés sans risque si vous désérialisez un seul polygone.)

Type renvoyé:

Tuple

Lève:

ValueError -- Si les données disponibles sont insuffisantes pour la désérialisation.

classmethod deserialize_polygon_list(data)

Crée une liste d'objets Polygon en désérialisant un tableau d'octets.

Renvoie:

Une liste d'objets Polygon.

Type renvoyé:

List

Lève:

ValueError -- S'il y a des données non valides à désérialiser.

classmethod from_rectangle(rect, **kwargs)

Crée un Polygon à partir d'un rectangle du type de celui renvoyé par sirilpy.connection.get_siril_selection().

Paramètres:
  • rect (Tuple[int, int, int, int]) -- Rectangle tel que (x,y largeur, hauteur)

  • **kwargs -- Arguments nommés supplémentaires à transmettre au constructeur de Polygon (polygon_id, color, fill, legend)

Renvoie:

Une nouvelle instance de Polygon représentant le rectangle

Type renvoyé:

Polygon

contains_point(x, y)

Détermine si un point se trouve à l'intérieur du polygone à l'aide de l'algorithme optimisé du nombre d'enroulement (winding number) de Dan Sunday.

Cet algorithme est plus robuste que le lancer de rayons pour les polygones complexes et gère mieux les cas limites, y compris les points situés sur les bords et les polygones auto-intersectants.

Paramètres:
  • x (float) -- Coordonnée X du point à tester.

  • y (float) -- Coordonnée Y du point à tester.

Renvoie:

True si le point est à l'intérieur du polygone, False sinon.

Type renvoyé:

bool

get_bounds()

Obtenir la boîte englobante du polygone.

Renvoie:

(min_x, min_y, max_x, max_y)

Type renvoyé:

Tuple[float, float, float, float]

Lève:

ValueError -- Si le polygone n'a aucun point.

get_max_x()

Obtenir la coordonnée x maximale du polygone.

Type renvoyé:

float

get_max_y()

Obtenir la coordonnée y maximale du polygone.

Type renvoyé:

float

get_min_x()

Obtenir la coordonnée x minimale du polygone.

Type renvoyé:

float

get_min_y()

Obtenir la coordonnée y minimale du polygone.

Type renvoyé:

float

serialize()

Sérialise un seul objet Polygon en un tableau d'octets.

Renvoie:

Un tableau d'octets représentant les données sérialisées du polygone.

Type renvoyé:

bytes

Lève:

ValueError -- Si le nombre de points dépasse la limite autorisée.

color: int = 4294967295

Couleur RGBA 32 bits (compactée, uint_8 par composant. La valeur par défaut est 0xFFFFFFFF)

fill: bool = False

indique si le polygone doit être rempli ou non lors du dessin

legend: str = None

une légende optionnelle

points: List[FPoint]

Liste de points définissant la forme du polygone

polygon_id: int = 0

identifiant unique

class sirilpy.models.RegData(fwhm=0.0, weighted_fwhm=0.0, roundness=0.0, quality=0.0, background_lvl=0.0, number_of_stars=0, H=<factory>)

Bases : object

Équivalent Python de la structure Siril regdata

classmethod deserialize(data)

Désérialise une réponse binaire en un objet RegData.

Paramètres:

data (bytes) -- Binary data to unpack

Type renvoyé:

RegData

Returns: RegData object

Raises: SirilError if the received data doesn't match the expected size'

struct.error If unpacking fails

H: Homography

Stocke une matrice d'homographie décrivant la transformation affine de cette image vers l'image de référence

background_lvl: float32 = 0.0

niveau du fond de ciel

fwhm: float = 0.0

copie de fwhm->fwhmx, utilisée comme indicateur de qualité

number_of_stars: int = 0

nombre d'étoiles détectées dans l'image

quality: float = 0.0

mesure de la qualité de l'image

roundness: float32 = 0.0

fwhm->fwhmy / fwhm->fwhmx, 0 si non initialisé, ]0, 1] si défini

weighted_fwhm: float32 = 0.0

utilisé pour exclure les images douteuses

class sirilpy.models.Sequence(seqname='', number=0, selnum=0, fixed=0, nb_layers=-1, rx=0, ry=0, is_variable=False, bitpix=0, reference_image=0, imgparam=None, regparam=None, stats=None, distoparam=None, beg=0, end=0, exposure=0.0, fz=False, type=None, cfa_opened_monochrome=False, current=0)

Bases : object

Équivalent Python de la structure Siril sequ

beg: int = 0

imgparam[0]->filenum

bitpix: int = 0

format des pixels de l'image, à partir du fits

cfa_opened_monochrome: bool = False

SER CFA ouvert en mode monochrome

current: int = 0

numéro du fichier actuellement chargé

distoparam: List[DistoData] = None

données de distorsion pour la séquence [nb_layers]

end: int = 0

imgparam[number-1]->filenum

exposure: float = 0.0

exposition de l'image

fixed: int = 0

longueur fixe de l'index d'image dans le nom de fichier

fz: bool = False

si le fichier est compressé

imgparam: List[ImgData] = None

une structure pour chaque image de la séquence [nombre]

is_variable: bool = False

La séquence contient des images de différentes tailles

nb_layers: int = -1

nombre de couches intégrées dans chaque fichier image

number: int = 0

nombres d'images dans la séquence

reference_image: int = 0

image de référence pour l'alignement

regparam: List[List[RegData]] = None

paramètres d'alignement pour chaque couche [nb_layers][number]

rx: int = 0

largeur de la première image

ry: int = 0

hauteur de la première image

selnum: int = 0

nombres d'images sélectionné

seqname: str = ''

nom de la séquence

stats: List[List[ImageStats]] = None

statistiques des images pour chaque couche [nb_couche][nombre]

type: SequenceType = None

le type de séquence

Sirilpy Enums

Ce module fournit toutes les énumérations utilisées au sein de sirilpy.

Sous-module d'énumérations pour Siril. Ce sous-module contient toutes les énumérations utilisées au sein de sirilpy.

class sirilpy.enums.BitpixType(value)

Bases : IntEnum

Reproduit l'énumération bitpix de Siril. Notez que bien que Siril puisse gérer l'ouverture de fichiers FITS de tout type de données, il ne traite en interne les images qu'en USHORT_IMG (uint16) ou FLOAT_IMG (float32).

BYTE_IMG = 8
DOUBLE_IMG = -64
FLOAT_IMG = -32
LONG_IMG = 32
SHORT_IMG = 16
USHORT_IMG = 20
class sirilpy.enums.CommandStatus(value)

Bases : IntEnum

Contient les codes de statut des commandes Siril, correspondant aux valeurs renvoyées en interne par Siril. Ils peuvent être utilisés pour la gestion des erreurs. CMD_OK et CMD_NO_WAIT sont des codes sans erreur ; tous les autres codes représentent des erreurs de commande. Ils sont accessibles via l'exception CommandError et peuvent généralement être traités sans être considérés comme fatals pour le script.

CMD_ALLOC_ERROR = 1048576
CMD_ARG_ERROR = 32
CMD_DIR_NOT_FOUND = 4194304
CMD_FILE_NOT_FOUND = 131072
CMD_FOR_CFA_IMAGE = 65536
CMD_FOR_PLATE_SOLVED = 262144
CMD_GENERIC_ERROR = 128
CMD_IMAGE_NOT_FOUND = 256
CMD_INVALID_IMAGE = 1024
CMD_LOAD_IMAGE_FIRST = 2048
CMD_NEED_INIT_FIRST = 524288
CMD_NOT_FOR_MONO = 16384
CMD_NOT_FOR_RGB = 32768
CMD_NOT_FOR_SINGLE = 8192
CMD_NOT_FOUND = 1
CMD_NOT_SCRIPTABLE = 8
CMD_NO_CWD = 4
CMD_NO_WAIT = 2
CMD_OK = 0
CMD_ONLY_SINGLE_IMAGE = 4096
CMD_SELECTION_ERROR = 64
CMD_SEQUENCE_NOT_FOUND = 512
CMD_THREAD_RUNNING = 2097152
CMD_WRONG_N_ARG = 16
class sirilpy.enums.DialogID(value)

Bases : IntEnum

classmethod from_name(name)

Safely create from a str containing a potential dialog name (e.g. "ASINH_DIALOG", returning None if the name no longer exists.

Type renvoyé:

DialogID | None

ABERRATION_DIALOG = 19
ABOUT_DIALOG = 0
ANNOTATE_DIALOG = 1
ASINH_DIALOG = 2
ASTROMETRY_DIALOG = 3
BACKGROUND_EXTRACTION_DIALOG = 4
BINXY_DIALOG = 6
CANON_FIXBANDING_DIALOG = 7
CCM_DIALOG = 8
CLAHE_DIALOG = 9
COLOR_CALIBRATION = 10
COMPOSITION_DIALOG = 12
COMPSTARS_DIALOG = 11
COSMETIC_DIALOG = 13
CURVES_DIALOG = 14
CWD_DIALOG = 15
DECONV_DIALOG = 5
DENOISE_DIALOG = 16
DIALOG_FFT = 17
DIALOG_STAR_REMIX = 18
EPF_DIALOG = 20
EXTRACT_CHANNEL_DIALOG = 21
EXTRACT_WAVELETS_LAYERS_DIALOG = 22
FILE_INFORMATION = 23
GHT_DIALOG = 24
HISTOGRAM_DIALOG = 25
ICC_DIALOG = 26
KEYWORDS_DIALOG = 27
LINEARMATCH_DIALOG = 28
MEDIAN_DIALOG = 29
MERGE_CFA_DIALOG = 30
NINA_LIGHT_CURVE = 31
OPEN_DIALOG = 32
PCC_DIALOG = 33
PIXEL_MATH_DIALOG = 34
PREFS_DIALOG = 35
RESAMPLE_DIALOG = 36
RGRADIENT_DIALOG = 37
ROTATION_DIALOG = 38
SATU_DIALOG = 40
SAVEAS_DIALOG = 41
SCNR_DIALOG = 42
SEQLIST_DIALOG = 43
SPLIT_CFA_DIALOG = 44
STARNET_DIALOG = 45
STARS_LIST_WINDOW = 46
STAT_WINDOW = 47
S_PCC_DIALOG = 39
UNPURPLE_DIALOG = 48
WAVELETS_DIALOG = 49
class sirilpy.enums.DialogReq(value)

Bases : IntEnum

Represents the requirements to open a dialog represented by a DialogID

ANY = 1

Image or sequence loaded

IMG = 2

Image loaded

MONO = 3

Mono image loaded

NONE = 4

No requirement, this action works at any time

PLTSOLVD = 5

Image or sequence frame loaded and plate solved

RGB = 6

RGB image loaded

RGBPLTSOLVD = 7

RGB image or sequence frame loaded and plate solved

SEQ = 8

Sequence loaded

class sirilpy.enums.DistoType(value)

Bases : IntEnum

Équivalent Python de l'énumération Siril disto_source

DISTO_FILE = 2

Distorsion provenant d'un fichier fourni

DISTO_FILES = 4

Distorsion stockée dans chaque fichier (vrai uniquement depuis seq platesolve ; même sans distorsion, elle sera vérifiée lors du rechargement)

DISTO_FILE_COMET = 5

spécial pour l'alignement cométaire, à détecter par apply reg

DISTO_IMAGE = 1

Distorsion par rapport à l'image actuelle

DISTO_MASTER = 3

Distorsion à partir d'un fichier maître

DISTO_UNDEF = 0

Aucune distorsion

class sirilpy.enums.ImageType(value)

Bases : IntEnum

énumération représentant les types fonctionnels d'image

BIAS = 4
DARK = 2
FLAT = 3
LIGHT = 1
UNKNOWN = 0
class sirilpy.enums.LogColor(value)

Bases : IntEnum

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.

BLUE = 4
DEFAULT = 0
GREEN = 3
RED = 1
SALMON = 2
class sirilpy.enums.PlotType(value)

Bases : IntEnum

Énumération des types de tracé disponibles pour visualiser des séries de données.

HYPHENS = 2
LINES = 3
LINESHYPHENS = 6
LINESMARKS = 5
LINESPOINTS = 4
MARKS = 1
POINTS = 0
class sirilpy.enums.STFType(value)

Bases : IntEnum

enum représentant les types STF

ASINH_DISPLAY = 4
AUTOSTRETCH_DISPLAY = 5
HISTEQ_DISPLAY = 6
LINEAR_DISPLAY = 0
LOG_DISPLAY = 1
SQRT_DISPLAY = 2
SQUARED_DISPLAY = 3
class sirilpy.enums.SequenceType(value)

Bases : IntEnum

Équivalent Python de l'énumération Siril sequence_type

SEQ_AVI = 3
SEQ_FITSEQ = 2
SEQ_INTERNAL = 4
SEQ_REGULAR = 0
SEQ_SER = 1
class sirilpy.enums.SirilVport

Bases : object

Définit les fenêtres d'affichage Siril

BLUE = 2
GREEN = 1
MONO = 0
RED = 0
RGB = 3
class sirilpy.enums.SlidersMode(value)

Bases : IntEnum

MINMAX = 1
MIPSLOHI = 0
USER = 2
class sirilpy.enums.StarProfile(value)

Bases : IntEnum

Équivalent Python de l'énumération Siril starprofile. Utilisée pour identifier le type d'ajustement utilisé pour modéliser une étoile dans l'image. Notez que MOFFAT_FIXED n'est actuellement pas utilisé dans Siril, mais est réservé pour un usage futur pour les étoiles de Moffat modélisées avec un paramètre bêta fixe

GAUSSIAN = 0
MOFFAT = 1
MOFFAT_FIXED = 2

Traçage de graphiques avec Sirilpy

Ce sous-module fournit des classes et des méthodes pour accéder à la fonctionnalité de tracé native de Siril. Bien sûr, vous pouvez également utiliser matplotlib, mais ce sous-module donne accès aux mêmes capacités de tracé que celles utilisées en interne par Siril, pour un résultat plus homogène. Tous ses membres sont disponibles au niveau racine du module, il n'est pas nécessaire d'importer models séparément.

Une fois rempli, l'objet PlotData peut être tracé à l'aide de SirilInterface.xy_plot().

Sous-module de tracé pour Siril, fournissant des classes pour la représentation et la sérialisation des données de tracé. Ce sous-module permet aux utilisateurs de créer et de configurer différents types de tracés avec une apparence personnalisable et des barres d'erreur.

class sirilpy.plot.PlotData(title='Data Plot', xlabel='X', ylabel='Y', savename='plot', show_legend=True, datamin=None, datamax=None)

Bases : object

Conteneur de métadonnées pour la configuration du tracé. Les données de série proprement dites sont contenues dans des objets SeriesData et peuvent être ajoutées à l'aide des méthodes de classe add_series ou add_series_obj après l'initialisation du PlotData.

Membres :

title : titre du tracé xlabel : étiquette de l'axe X ylabel : étiquette de l'axe Y savename : nom de fichier d'enregistrement (l'extension est ajoutée automatiquement) show_legend : booléen indiquant s'il faut afficher la légende datamin : liste [xmin, ymin] forçant l'affichage de la coordonnée inférieure gauche. Si omis, la plage est définie sur la plage des données. datamax : liste [xmax, ymax] forçant l'affichage de la coordonnée supérieure droite. Si omis, la plage est définie sur la plage des données.

classmethod serialize(plot_data)

Sérialise les données de tracé pour un transfert par mémoire partagée en utilisant l'ordre des octets réseau.

Paramètres:

plot_data (PlotData) -- Objet PlotData contenant la configuration du graphique

Type renvoyé:

Tuple[bytes, int]

Renvoie:

Tuple des octets sérialisés et de la longueur totale

add_series(x_coords, y_coords, label=None, plot_type=PlotType.LINES, n_error=None, p_error=None)

Ajouter une nouvelle série aux métadonnées du graphique.

Renvoie:

l'objet SeriesData créé, pour une manipulation ultérieure si nécessaire.

Type renvoyé:

SeriesData

add_series_obj(series)

Ajoute un objet SeriesData préalablement créé aux métadonnées du tracé.

Retourne : None

Type renvoyé:

None

class sirilpy.plot.SeriesData(x_coords, y_coords, label=None, plot_type=PlotType.LINES, n_error=None, p_error=None)

Bases : object

Représente une seule série de données à tracer.

Membres :

x_coords : soit une List[float], soit un np.ndarray contenant les valeurs des coordonnées x pour cette série

y_coords : soit une List[float], soit un np.ndarray contenant les valeurs des coordonnées y pour cette série

label : une chaîne de caractères contenant le libellé de la série (affiché dans la légende du graphique)

plot_type : un PlotType définissant le type de marques à utiliser

n_error : soit une List[float], soit un np.ndarray contenant les valeurs des erreurs négatives sur l'axe y pour cette série

p_error : soit une List[float], soit un np.ndarray contenant les valeurs des erreurs positives sur l'axe y pour cette série

Méthodes utilitaires Sirilpy

Ce sous-module fournit des méthodes utilitaires destinées à être utilisées dans les scripts Python de Siril. La plus importante est ensure_installed(), mais il existe aussi des méthodes telles que download_with_progress() qui offre une méthode très robuste pour télécharger de gros fichiers avec une bonne récupération d'erreurs grâce à un mécanisme de tentatives et de reprise.

Module utilitaire pour l'interface Python de Siril, fournissant des fonctions d'aide pour les opérations sur fichiers, la gestion des paquets et le contrôle des E/S standard, afin de prendre en charge les capacités de script de Siril.

class sirilpy.utility.SuppressedStderr

Bases : object

Ce gestionnaire de contexte permet de supprimer le stderr du script, ce qui peut être utile si vous utilisez des fonctions de module connues pour produire des avertissements que vous souhaitez éviter d'afficher à l'utilisateur, tels que des FutureWarnings de fonctionnalités devenues obsolètes mais présentes dans une dépendance plutôt que dans votre propre code. Cette classe doit être utilisée avec parcimonie et ne doit pas servir à masquer des traces de mauvais code.

class sirilpy.utility.SuppressedStdout

Bases : object

Ce gestionnaire de contexte permet de supprimer le stdout du script, ce qui peut être utile pour éviter de saturer le journal avec des messages stdout provenant d'un module trop verbeux utilisé dans le script.

Exemple

import sirilpy as s
siril = s.SirilInterface()
print("This message will appear in the Siril log")
with s.SuppressedStdout():
    print("This message will not appear")
print("This message will appear again")
sirilpy.utility.check_module_version(requires=None)

Vérifie que la version du module Siril est suffisante pour prendre en charge le script. Ceci n'est pas obligatoire si vous n'utilisez que des classes, méthodes, etc. fournies dans la version publique initiale, mais si vous vous appuyez sur des méthodes indiquées dans la documentation de l'API comme ayant été ajoutées à une version particulière du module, vous devez alors vérifier que le module sirilpy en cours d'exécution prend en charge votre script en appelant cette fonction.

Siril n'affichera pas les scripts dont les appels à check_module_version() ne sont pas satisfaits dans la liste du dépôt de « Obtenir des scripts », donc si vous voulez une fonction permettant différents chemins de code selon les versions, vous devriez plutôt utiliser needs_module_version().

Paramètres:

requires (str) -- Une chaîne spécifiant un format de version suivant le même format que celui utilisé par pip, c'est-à-dire qu'elle peut contenir '==1.2', '!=3.4', '>5.6', '>=7.8', ou une combinaison telle que '>=1.2,<3.4'

Renvoie:

True si requires = None ou si la version du module sirilpy disponible satisfait le spécificateur de version, False sinon

Lève:

ValueError -- si requires est un spécificateur de version non valide.

sirilpy.utility.download_with_progress(siril, url, file_path, max_retries=3, retry_delay=5, resume=True)

Méthode robuste de téléchargement de fichiers avec suivi natif de la progression par Siril et gestion des erreurs à l'aide de tentatives et d'un mécanisme de reprise.

Type renvoyé:

bool

sirilpy.utility.ensure_installed(*packages, version_constraints=None, reinstall=False)

S'assure que le(s) paquet(s) spécifié(s) est/sont installé(s) et respecte(nt) les contraintes de version facultatives.

Paramètres:
  • *packages (str or List[str]) -- Nom(s) du/des paquet(s) dont on doit s'assurer qu'ils sont installés.

  • version_constraints (str or List[str], optional) -- Chaîne(s) de contrainte de version (par exemple ">=1.5", "==2.0"). Peut être une contrainte unique ou une liste correspondant aux paquets.

  • reinstall (bool, optional) -- Force la réinstallation. La valeur par défaut est False.

Renvoie:

Vrai si tous les paquets sont installés avec succès ou répondent déjà aux contraintes.

Type renvoyé:

bool

Lève:
  • SirilError -- Si l'installation du paquet échoue.

  • ValueError -- Si le nombre de contraintes diffère du nombre de paquets à installer.

  • TimeoutError -- Si pip échoue avec un délai d'attente apparent.

  • SystemExit -- Si un paquet déjà importé doit être réinstallé avec une version différente.

sirilpy.utility.human_readable_size(bytes_size)

Convertir les bytes en un format lisible par l'homme.

Paramètres:

bytes_size (int) -- Taille en bytes

Renvoie:

Taille formatée avec l'unité appropriée (B, KB, MB, GB, TB)

Type renvoyé:

str

Lève:

TypeError -- sur un type d'entrée incorrect

sirilpy.utility.needs_module_version(requires=None)

Vérifie que la version du module Siril est suffisante pour prendre en charge une fonctionnalité. Cela permet d'écrire des chemins de code facultatifs pour différents niveaux d'API sirilpy. Cette fonction fonctionne comme check_module_version(), mais la présence d'un appel à needs_module_version() non satisfait n'empêchera pas un script d'apparaître dans la liste de « Obtenir des scripts »

Paramètres:

requires (str) -- Une chaîne spécifiant un format de version suivant le même format que celui utilisé par pip, c'est-à-dire qu'elle peut contenir '==1.2', '!=3.4', '>5.6', '>=7.8', ou une combinaison telle que '>=1.2,<3.4'

Renvoie:

True si requires = None ou si la version du module sirilpy disponible satisfait le spécificateur de version, False sinon

Lève:

ValueError -- si requires est un spécificateur de version non valide.

sirilpy.utility.parse_fits_header(header_text, include_comments=False)

Analyse un en-tête FITS à partir d'un contenu texte pour le convertir en dictionnaire, avec prise en charge des mots-clés HIERARCH et CONTINUE.

Gère le format d'en-tête FITS de Siril séparé par des retours à la ligne et le convertit en un dictionnaire compatible avec astropy.wcs.WCS. Prend en charge les mots-clés FITS étendus via HIERARCH et les longues valeurs de chaîne via CONTINUE.

Paramètres:
  • header_text (str) -- Chaîne brute d'en-tête avec les cartes d'en-tête séparées par des retours à la ligne. Format attendu : "KEYWORD = value / comment"

  • include_comments (bool) -- Si True, inclut les cartes COMMENT et HISTORY dans la sortie. Si False (par défaut), ces cartes sont ignorées.

Type renvoyé:

Dict[str, Union[str, int, float, bool]]

Renvoie:

Dictionnaire associant les mots-clés d'en-tête FITS (str) à leurs valeurs analysées. Les valeurs sont converties dans les types Python appropriés : - 'T'/'F' -> bool - Chaînes entre guillemets -> str (guillemets supprimés, avec prise en charge de CONTINUE pour les chaînes longues) - Chaînes numériques -> int ou float - Tout le reste -> str - Cartes COMMENT/HISTORY -> str (contenu après le mot-clé, si include_comments=True) - Mots-clés HIERARCH -> str (mot-clé hiérarchique complet conservé)

Notes

  • Filtre les messages d'avertissement, les trace d'appels et tout autre contenu ne faisant pas partie de l'en-tête

  • Par défaut les champs COMMENT et HISTORY sont ignorées (utilisez include_comments=True pour les inclure)

  • Ignore les champs mal formées ou les mots-clés non valides

  • Les mots-clés standard doivent comporter au maximum 8 caractères et être alphanumériques (plus, un underscore ou un tiret)

  • Les mots-clés HIERARCH peuvent être plus longs et contenir des espaces / points

  • Les champs CONTINUE sont automatiquement fusionnées avec la valeur de chaîne précédente

  • Les commentaires après '/' sont ignorés pour les cartes normales

Exemple

>>> 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'
sirilpy.utility.safe_subprocess_Popen(command, **kwargs)

Fournit une alternative sûre à subprocess.Popen, tenant compte du fait qu'une ligne de commande de sous-processus peut être exécutée depuis un environnement flatpak et nécessiter l'utilisation de flatpak-spawn pour garantir son exécution en dehors du bac à sable, évitant ainsi les problèmes avec les sous-processus qui dépendent de variables d'environnement, etc. safe_subprocess_Popen est un remplacement direct de subprocess.Popen à utiliser dans les scripts Siril.

Introduit dans la version 1.0.3 de Sirilpy

sirilpy.utility.safe_subprocess_run(command, **kwargs)

Fournit une alternative sûre à subprocess.Popen, tenant compte du fait qu'une ligne de commande de sous-processus peut être exécutée depuis un environnement flatpak et nécessiter l'utilisation de flatpak-spawn pour garantir son exécution en dehors du bac à sable, évitant ainsi les problèmes avec les sous-processus qui dépendent de variables d'environnement, etc. safe_subprocess_run est un remplacement direct de subprocess.run à utiliser dans les scripts Siril.

Introduit dans la version 1.0.3 de Sirilpy

sirilpy.utility.truncate_utf8(data, max_bytes)

Tronque l'entrée utf8. Accepte soit des octets, soit des chaînes de caractères en entrée et renvoie les données dans le même format que l'entrée.

Paramètres:

data (bytes or str) -- Les données à tronquer

Renvoie:

Les données tronquées

Type renvoyé:

bytes or str

Lève:

TypeError -- si l'entrée n'est pas de type bytes ou str

sirilpy.utility.uninstall_package(package_name)

Désinstalle un paquet à l'aide de pip, en diffusant la sortie vers stdout. Introduit dans sirilpy 1.0.15.

Paramètres:

package_name (str) -- Nom du paquet à désinstaller.

Lève:

subprocess.CalledProcessError -- Si la désinstallation avec pip échoue.

Assistants GPU Sirilpy

Ce sous-module fournit des classes d'aide pour faciliter la gestion des paquets de frameworks GPU tels qu'ONNX, Torch, etc. destinés à être utilisés dans les scripts Python de Siril. Le paysage du support de ces frameworks pour différentes architectures GPU sur différents systèmes d'exploitation évolue rapidement, et ces aides visent à suggérer des paquets/configurations fiables. Cela signifie que les configurations proposées peuvent dans certains cas être prudentes : l'objectif est de fournir un niveau de support GPU bon et robuste pour le plus grand nombre d'utilisateurs possible dans un environnement python automatisé, plutôt que la meilleure optimisation absolue, mais potentiellement fragile.

Module d'aide GPU pour l'interface Python de Siril, fournissant des fonctions d'aide pour la détection, l'installation et le test des modules liés au GPU. Le périmètre initial couvre ONNX, torch et jax

class sirilpy.gpuhelper.JaxHelper

Bases : object

Une classe d'aide pour détecter, installer et tester JAX avec l'accélération matérielle appropriée.

Cette classe détecte automatiquement la configuration du système et installe la variante JAX appropriée (CPU, CUDA, ROCm, etc.) en fonction du matériel disponible.

ensure_jax()

Wrapper pour install_jax() qui ne l'installe que si nécessaire, avec une surcharge négligeable s'il est déjà installé.

Type renvoyé:

bool

Détermine le backend JAX recommandé et les paramètres d'installation. Lorsque plusieurs GPU sont présents, utilise un système de priorité pour choisir le meilleur.

JAX dispose d'un support de plateforme limité : - NVIDIA : CUDA sous Linux (support Windows expérimental/limité) - AMD ROCm : Linux uniquement - Apple Silicon : backend Metal - Intel : plugin expérimental avec des problèmes de dépendances

Type renvoyé:

Dict[str, Any]

Renvoie:

Dict avec les clés 'backend', 'packages', 'extra_index_url'

install_jax(force_variant=None, version_constraint=None, force_reinstall=False)

Installe JAX avec la variante appropriée pour le matériel détecté. Utilisez ceci à la place de ensure_installed() pour vous assurer que jax est correctement installé pour le matériel/système d'exploitation donné

Paramètres:
  • force_variant (Optional[str]) -- Remplace la détection automatique par une variante spécifique (par exemple, 'jax[cpu]')

  • version_constraint (Optional[str]) -- Chaîne de contrainte de version (par exemple, '>=0.4.0')

force_reinstall : Force une réinstallation

Renvoie:

True si l'installation a réussi, False sinon

Type renvoyé:

bool

is_jax_installed()

Vérifie si PyTorch est installé sans l'importer.

Type renvoyé:

bool

status()

Affiche le statut actuel de la classe Jax Helper concernant sa prise en charge des différents systèmes d'exploitation et GPU. Le monde du calcul hétérogène évolue rapidement et, bien que la prise en charge de certains frameworks pour lesquels des aides sont disponibles ne soit pas encore universelle, elle devrait s'améliorer à l'avenir.

test_jax()

Teste la fonctionnalité de JAX et renvoie le fournisseur d'exécution.

Renvoie:

le booléen renvoyé est True si jax fonctionne ou False sinon, et la str vaut "gpu" si JAX utilise le GPU, "cpu" s'il utilise le CPU, ou None si

Type renvoyé:

Tuple[bool,str]

Lève:
  • RuntimeError -- Si le calcul JAX échoue ou si la vérification de précision échoue

  • ImportError -- Si JAX n'est pas installé

uninstall_jax(dry_run=False)

Détecte et désinstalle tout paquet lié à JAX existant.

Ceci est utile lorsque vous devez nettoyer une installation JAX problématique avant d'installer une variante différente (par exemple, revenir du GPU au CPU).

Paramètres:

dry_run (bool) -- Si True, détecter uniquement les paquets sans les désinstaller

Type renvoyé:

Dict[str, Any]

Renvoie:

Dictionnaire contenant des informations sur les paquets détectés et désinstallés

class sirilpy.gpuhelper.ONNXHelper

Bases : object

Une classe pour gérer la détection et l'installation du paquet ONNX Runtime approprié en fonction du matériel et de la configuration du système.

Exemple d'utilisation (ceci doit être utilisé à la place de sirilpy.ensure_installed("onnxruntime") pour installer le paquet correct pour le système de l'utilisateur.)

oh = sirilpy.ONNXHelper()
oh.ensure_onnxruntime()
ensure_onnxruntime()

Wrapper pour install_onnxruntime() qui ne l'installe que si nécessaire, avec une surcharge négligeable s'il est déjà installé.

Type renvoyé:

bool

get_execution_providers_ordered(ai_gpu_acceleration=True, force_check=False)

Récupère les fournisseurs d'exécution classés par priorité. Cette fonction renvoie une liste des fournisseurs d'exécution ONNX Runtime disponibles dans un ordre de priorité raisonnable, couvrant les principales plateformes GPU : le fournisseur CPU est toujours inclus comme option de repli finale.

Paramètres:
  • ai_gpu_acceleration (bool) -- Indique s'il faut inclure les fournisseurs d'accélération GPU. La valeur par défaut est True.

  • force_check (bool) -- Détermine s'il faut forcer une nouvelle vérification même si une configuration est mise en cache. La valeur par défaut est False.

Renvoie:

Liste triée des fournisseurs d'exécution disponibles.

Type renvoyé:

list

Détermine le backend ONNX Runtime recommandé en fonction du matériel. Lorsque plusieurs GPU sont présents, utilise un système de priorité pour choisir le meilleur.

Remarque : ONNX Runtime dispose d'un support de backend spécifique à chaque plateforme : - Windows : DirectML pour tous les GPU (NVIDIA, AMD, Intel) - plus fiable, sans dépendance aux pilotes - Linux : CUDA pour NVIDIA, CPU pour AMD (pas encore de support ROCm), OpenVINO pour Intel

Renvoie:

'gpu', 'directml', 'openvino', 'coreml', ou 'cpu'

Type renvoyé:

Backend name

import_onnxruntime()

Importe onnxruntime, l'ajoute au dictionnaire global, teste s'il est compilé avec CUDA et, si c'est le cas, précharge les bibliothèques CUDA et CUDNN pour améliorer les chances de les trouver si Torch[CUDA] est installé.

install_onnxruntime(force=False)

Détecter la configuration du système et installer le package ONNX Runtime approprié.

Paramètres:

force -- bool : Si True, force la réinstallation même si onnxruntime est déjà installé.

Renvoie:

True si l'installation a réussi ou si le paquet était déjà installé, False sinon.

Type renvoyé:

bool

Lève:

TimooutError -- si une TimeoutError se produit dans ensure_installed() - cela évite de revenir au paquet CPU uniquement purement à cause de problèmes réseau

is_onnxruntime_installed()

Vérifiez si un paquet onnxruntime est déjà installé et opérationnel.

Renvoie:

(is_installed, package_name) où package_name peut être 'onnxruntime', 'onnxruntime-gpu', 'onnxruntime-silicon', etc.

Type renvoyé:

tuple

run(session, model_path, output_names, input_feed, run_options=None, return_first_output=False)

Lancer l'inférence avec basculement automatique vers le CPU en cas d'échec de la session.

Paramètres:
  • session -- La session d'inférence ONNX runtime

  • model_path (str) -- Chemin vers le fichier de modèle ONNX (nécessaire pour le repli CPU)

  • output_names -- Noms des sorties à calculer, ou None pour toutes les sorties

  • input_feed -- Dictionnaire associant les noms d'entrée aux tenseurs d'entrée

  • run_options -- Options d'exécution facultatives pour la session d'inférence

  • return_first_output (bool) -- Si True, ne renvoie que la première sortie au lieu de la liste complète

Renvoie:

(result, session) où result est la sortie de l'inférence (ou la première sortie si return_first_output=True) et session est la session d'inférence (potentiellement mise à jour)

Type renvoyé:

tuple

status()

Affiche le statut actuel de la classe ONNX Helper concernant sa prise en charge des différents systèmes d'exploitation et GPU. Le monde du calcul hétérogène évolue rapidement et, bien que la prise en charge de certains frameworks pour lesquels des aides sont disponibles ne soit pas encore universelle, elle devrait s'améliorer à l'avenir.

test_onnxruntime(ort=None)

Tester un fichier onnxruntime importé.

Args:install_torch(cuda_version=cuda_version)
ort : le module ONNX runtime à tester. Si None, la méthode

tentera d'importer onnxruntime pour le test.

Renvoie:

une liste des ExecutionProviders ONNXRuntime confirmés fonctionnels, par ordre de priorité

Type renvoyé:

list

uninstall_onnxruntime()

Détecte et désinstalle toutes les variantes des paquets onnxruntime. Vérifie tout paquet commençant par 'onnxruntime'.

Renvoie:

Liste des paquets désinstallés

Type renvoyé:

list

class sirilpy.gpuhelper.TorchHelper

Bases : object

Classe d'aide pour la détection, l'installation et le test de PyTorch.

ensure_torch(cuda_version=None)

S'assurer que PyTorch est installé avec le backend approprié.

Paramètres:

cuda_version (Optional[str]) -- Version CUDA facultative pour outrepasser la détection automatique (par exemple, 'cu118', 'cu126', 'cu128')

Type renvoyé:

bool

Retourne : True en cas de succès, False dans le cas contraire

Détermine le backend PyTorch recommandé et les paramètres d'installation. Lorsque plusieurs GPU sont présents, utilise un système de priorité pour choisir le meilleur.

PyTorch dispose d'un bon support multiplateforme : - NVIDIA : CUDA sur toutes les plateformes - AMD compatible ROCm : ROCm sous Linux ET Windows - Intel Arc : backend XPU - Apple Silicon : backend MPS

Type renvoyé:

Dict[str, Any]

Renvoie:

Dictionnaire avec les clé 'backend', 'cuda_version', 'extra_index_url', 'packages'

get_torch_device(use_gpu=True)

Obtient un périphérique torch adapté en fonction des capacités du paquet torch installé. Si use_gpu est False, torch.device("cpu") sera renvoyé. Cette fonction est disponible depuis sirilpy 1.0.17

Type renvoyé:

torch.device

install_torch(cuda_version=None, extra_index_url=None, packages=None)

Installe PyTorch avec la configuration indiquée.

Paramètres:
  • cuda_version (Optional[str]) -- Version CUDA (ex : 'cu118', 'cu126', 'cu128')

  • extra_index_url (Optional[str]) -- URL du dépôt des wheels PyTorch

  • packages (Optional[list]) -- Liste des paquets à installer

is_torch_installed()

Vérifie si PyTorch est installé sans l'importer.

Type renvoyé:

bool

status()

Affiche le statut actuel de la classe Torch Helper concernant sa prise en charge des différents systèmes d'exploitation et GPU. Le monde du calcul hétérogène évolue rapidement et, bien que la prise en charge de certains frameworks pour lesquels des aides sont disponibles ne soit pas encore universelle, elle devrait s'améliorer à l'avenir.

test_torch()

Effectuez des tests pour vérifier que Torch est bien installé et fonctionne correctement.

uninstall_torch()

Détecte et désinstalle PyTorch et les paquets associés. Vérifie les paquets de l'écosystème torch. :returns: Une liste des paquets désinstallés :rtype: list

sirilpy.gpuhelper.detect_gpu_capabilities()

Détection GPU complète pour tout le matériel pris en charge.

Type renvoyé:

Dict[str, Any]

Renvoie:

Dict contenant les informations sur le matériel détecté et les recommandations pour les backends PyTorch, ONNX et JAX.

sirilpy.gpuhelper.get_gpu_detection_report()

Génère un rapport complet de détection GPU adapté à l'affichage dans une interface graphique.

Type renvoyé:

Dict[str, Any]

Renvoie:

Dict contenant tout le matériel détecté et les configurations recommandées pour ONNX, PyTorch et JAX, y compris les informations de priorité GPU.

Sirilpy TK GUI

Avertissement

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.

Ce sous-module fournit des fonctions d'aide pour faciliter une implémentation cohérente d'interfaces graphiques à l'aide de tkinter. Il doit être explicitement importé pour être utilisé. Notez que lors de l'écriture d'interfaces graphiques TKinter, vous devriez importer ThemedTK depuis le module ttkthemes, car l'interface TKinter brute s'affiche mal sous MacOS. ThemedTK et les méthodes disponibles dans le module tksiril aident à fournir un aspect cohérent pour les interfaces graphiques des scripts Siril sur toutes les plateformes.

Avertissement

Les utilisateurs Linux utilisant un bureau Wayland doivent noter que Tkinter ne prend pas encore en charge Wayland pur. Pour utiliser des scripts Python utilisant des interfaces graphiques Tkinter, vous devez avoir le paquet de compatibilité XWayland installé. Sinon, vous verrez des erreurs indiquant que DISPLAY n'est pas disponible.

from sirilpy import tksiril

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.

class sirilpy.tksiril.ScrollableFrame(container, *args, **kwargs)

Bases : Frame

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).

Usage:

scrollable = ScrollableFrame(parent) scrollable.pack(fill="both", expand=True)

# Add widgets to scrollable.scrollable_frame label = ttk.Label(scrollable.scrollable_frame, text="Hello") label.pack()

# Optionally bind mouse wheel to child widgets scrollable.add_mousewheel_binding(label)

add_mousewheel_binding(widget=None)

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.

Paramètres:

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.

Exemple

# 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)

sirilpy.tksiril.create_tooltip(widget, text, wrap_length=250)

Create a tooltip for a given Tkinter widget.

Paramètres:
  • widget (tk.Widget) -- The widget to attach the tooltip to

  • text (str) -- The tooltip text to display

  • max_width (int, optional) -- Maximum width of the tooltip. Defaults to 300.

  • wrap_length (int, optional) -- Length at which text wraps. Defaults to 250.

Lève:

TypeError -- If text is not a string or the provided widget is not a valid Tkinter widget

sirilpy.tksiril.elevate(root)

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.

sirilpy.tksiril.match_theme_to_siril(themed_tk, s, on_top=False)

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.

Paramètres:
  • 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

Lève:
  • 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

sirilpy.tksiril.standard_style()

Provide a standardised ttk style to allow consistent visual appearance between different Siril python scripts.

Paramètres:

none

Lève:

SirilError -- If the style creation or configuration fails

Sirilpy Tkfilebrowser

Avertissement

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.

Ce sous-module est un fork de tkfilebrowser. Ce fork corrige un bogue du code original où des entrées de périphériques en double pouvaient provoquer des erreurs lors de la génération du sélecteur de fichiers, et permet de garantir la maintenabilité du code, le paquet d'origine n'ayant pas été mis à jour depuis plusieurs années.

La documentation de tkfilebrowser se trouve ici. Notez que certaines améliorations de compatibilité ont été apportées dans la version incluse dans sirilpy :

  • sirilpy.tkfilebrowser.askdirectory() a été ajouté en tant qu'alias de tkfilebrowser.askopendirname() pour maintenir la compatibilité avec tk.filedialog.askdirectory().

  • Dans les spécifications de filefilter, tkfilebrowser exige que plusieurs extensions soient fournies séparées par | alors que filedialog exige des extensions séparées par des espaces : sirilpy.tkfilebrowser a été adapté pour accepter les deux formats.

Ce sous-module a pour seul objectif de servir de remplacement direct au filedialog Tk standard sous Linux, celui-ci étant peu agréable à utiliser sous Linux. Il peut être utilisé comme remplacement de la manière suivante :

if sys.platform.startswith("linux"):
    import sirilpy.tkfilebrowser as filedialog
else:
    from tkinter import filedialog

Exceptions Sirilpy

Ce sous-module fournit des exceptions personnalisées pour prendre en charge la gestion des erreurs spécifiques à Siril. Tous ses membres sont disponibles au niveau racine du module, il n'est pas nécessaire de l'importer séparément.

La politique de gestion des exceptions de sirilpy est la suivante :

  • À bas niveau, au sein des méthodes de sirilpy, divers types d'exceptions peuvent être levés (ceux présentés ci-dessous ainsi que des exceptions levées par d'autres modules tels que struct.error). Les types d'exceptions internes descendent tous de SirilError et peuvent donc être interceptés à l'aide de except SirilError. Les autres types d'exceptions sont relevés sous forme de SirilError afin d'indiquer la méthode où ils ont été générés, mais l'erreur sous-jacente reste visible soit dans une trace d'appel, soit à l'aide de la propriété __cause__ de l'exception.

  • Certains types d'erreurs sont des erreurs récupérables, telles que NoImageError, NoSequenceError et CommandError. Ces types d'exceptions peuvent être gérés au niveau du script (par exemple en affichant une boîte de dialogue d'avertissement rappelant à l'utilisateur de charger une image).

  • D'autres types d'erreurs ne sont généralement pas récupérables, comme SharedMemoryError ou SirilConnectionError.

Sous-module d'exceptions pour Siril, fournissant des classes d'exception destinées à être utilisées pour lever des exceptions au sein du module sirilpy.

exception sirilpy.exceptions.CommandError(message='Command execution failed', status_code=CommandStatus.CMD_GENERIC_ERROR)

Bases : SirilError

Levée lorsqu'une commande envoyée à Siril ne s'exécute pas correctement. (Remarque : « commande » désigne ici les commandes internes envoyées par le module python au gestionnaire python de Siril, et non les commandes Siril du type que l'on pourrait saisir dans la ligne de commande de Siril.) L'ensemble complet des codes de statut de commande est présenté dans l'énumération CommandStatus. Ces exceptions sont souvent récupérables et devraient donc être gérées avant de traiter génériquement les autres types de SirilError considérés comme fatals.

status_code

(CommandStatus) Indique le code de statut renvoyé par la commande Siril. Cela peut être utilisé dans les gestionnaires d'erreurs pour permettre aux scripts de traiter certains types d'erreurs de commande et de continuer (par exemple en demandant une intervention de l'utilisateur).

exception sirilpy.exceptions.DataError(message='Error handling data')

Bases : SirilError

Levée en cas de problème de traitement des données. Cela comprend des cas tels que :

  • Données d'image invalides

  • Erreurs de conversion des données

  • Échecs d'allocation de mémoire

  • Débordements du buffer

exception sirilpy.exceptions.ImageDialogOpenError(message='Siril image dialog is open')

Bases : SirilError

Exception levée lorsqu'une boîte de dialogue de traitement d'image est ouverte.

exception sirilpy.exceptions.MouseModeError(message='Siril mouse mode error')

Bases : SirilError

Exception levée lorsque Siril est dans le mauvais mode souris.

exception sirilpy.exceptions.NoImageError(message='No Siril image loaded')

Bases : SirilError

Levée lorsqu'une méthode nécessite qu'une image soit chargée, mais qu'aucune image n'est chargée. Ces exceptions sont souvent récupérables et devraient donc être gérées avant de traiter génériquement les autres types de SirilError considérés comme fatals.

exception sirilpy.exceptions.NoSequenceError(message='No Siril sequence loaded')

Bases : SirilError

Levée lorsqu'une méthode nécessite qu'une séquence soit chargée, mais qu'aucune séquence n'est chargée. Ces exceptions sont souvent récupérables et devraient donc être gérées avant de traiter génériquement les autres types de SirilError considérés comme fatals.

exception sirilpy.exceptions.ProcessingThreadBusyError(message='Siril processing thread is busy')

Bases : SirilError

Exception levée lorsque le thread de traitement est déjà utilisé.

exception sirilpy.exceptions.SharedMemoryError(message='Siril shared memory error')

Bases : SirilError

Levée en cas de problème de connexion ou de communication avec Siril via la mémoire partagée.

SharedMemoryError n'est pas levée directement mais sera encapsulée dans une SirilError. Elle doit généralement être considérée comme fatale et le script devrait s'arrêter proprement si possible, ou simplement s'arrêter.

exception sirilpy.exceptions.SirilConnectionError(message='Failed to connect to Siril')

Bases : SirilError

Soulevé en cas de problèmes de connexion ou de communication avec Siril. Cela inclut les cas suivants :

  • Siril n'est pas en fonctionnement

  • Échecs de connexion au socket

  • Erreurs de protocole de communication

  • Déconnexions inattendues

SirilConnectionError n'est pas levée directement mais sera encapsulée dans une SirilError. Elle doit généralement être considérée comme fatale et le script devrait s'arrêter proprement si possible, ou simplement s'arrêter.

exception sirilpy.exceptions.SirilError(message='An error occurred')

Bases : Exception

Classe d'exception de base pour toutes les erreurs liées à Siril.

Toutes les autres exceptions Siril héritent de cette classe, ce qui permet de détecter facilement toute erreur liée à Siril à l'aide d'une seule clause except.

Comment signaler des problèmes

Si, malgré l'étude de la documentation et des tutoriels, vous rencontrez un comportement étrange, cette page vous guidera sur la marche à suivre. Gardez à l'esprit que si quelque chose ne fonctionne pas, cela ne signifie pas nécessairement qu'il y a un bug. Le plus souvent, les problèmes sont dus à une utilisation incorrecte. Dans ce cas, il est essentiel de fournir des informations précises sur le problème, ce qui nous aidera à déterminer s'il s'agit d'un bug ou d'un malentendu. Reportez-vous à la section Envoyez nous des informations utiles pour obtenir des conseils. En effet, le simple fait de dire que cela ne fonctionne pas ne nous aidera pas à trouver une solution. Nous ne sommes pas des devins et nous avons besoin d'informations pour identifier le problème et trouver une solution. Il est donc important que vous nous disiez ce que vous faisiez au moment où le problème s'est produit, quel système d'exploitation vous utilisez, quelle version de Siril vous utilisez et surtout les logs !

Vérifier les listes de modifications et de bugs

Tout d'abord, si vous pensez avoir trouvé un bug dans Siril, il se peut qu'il ait déjà été signalé (parfois littéralement des dizaines de fois). Nous vous demandons donc de vérifier d'abord, par exemple en regardant les changelogs, ou les tickets qui ont déjà été ouverts, et même fermés.

Envoyez-nous des informations utiles

Comme indiqué dans l'introduction, nous avons besoin d'informations utiles pour résoudre le problème :

  1. Quel système d'exploitation utilisez-vous ? Siril peut se comporter très différemment sous Windows, Linux ou macOS, c'est pourquoi nous avons besoin de cette information. Soyez aussi précis que possible.

  2. Quelle version de Siril utilisez-vous ? Et comment l'avez-vous obtenue ? Paquet téléchargé sur le site web ? Par l'intermédiaire d'un tiers ? Compilé par vous-même ? Là encore, soyez le plus précis possible.

  3. Il est parfois utile de partager des captures d'écran. Cependant, s'il vous plaît NE PRENEZ PAS VOS CAPTURES D'ÉCRAN AVEC VOTRE SMARTPHONE - c'est illisible. Votre système d'exploitation est capable de faire des captures d'écran très facilement (Google peut vous aider) et Siril offre également une telle fonctionnalité (le bouton avec l'appareil photo). Enfin, les formats souhaités sont des formats d'images : jpg, bmp ou png, mais absolument pas pdf.

  4. Envoyez-nous des logs. Idéalement, nous préférons les logs en anglais ! Il suffit d'aller dans les préférences du Siril et de changer la langue en anglais dans l'onglet Interface utilisateur. Par ailleurs, il existe deux types de logs : celui affiché dans la console Siril, qui décrit les étapes effectuées par le logiciel et peut nous aider à déboguer, et les logs internes qui sont visibles lorsque Siril est exécuté à partir de la ligne de commande :

    • Les premiers sont très utiles dans la plupart des cas et peuvent être exportés très facilement à l'aide du bouton situé en bas à droite de ceux-ci. Cela crée un fichier qui peut facilement nous être envoyé.

    • Cependant, lorsque le logiciel crash (c'est-à-dire qu'il se ferme soudainement sans avertissement), vous devez lancer Siril à partir de la ligne de commande, en essayant de reproduire le crash et de récupérer les logs. Ici, la méthode dépend du système d'exploitation.

      • Microsoft Windows : Ouvrez une fenêtre cmd (tapez cmd dans la barre de recherche de Windows) et tapez ce qui suit :

        "C:\Program Files\Siril\bin\siril.exe" 2>&1 >output.log
        

        Ceci sauvegardera le fichier output.log dans le dossier où le terminal a été démarré (dans la plupart des cas dans le dossier %USERPROFILE%).

      • macOS : Si vous avez installé Siril dans le dossier Applications, comme cela est généralement recommandé, commencez par ouvrir l'application Terminal à partir du dossier Utilities dans Applications, puis copiez et collez la ligne suivante :

        /Applications/Siril.app/Contents/MacOS/siril > ~/Desktop/output.log 2>&1
        

        Après le crash, les logs seront disponibles sur le bureau dans le fichier output.log.

      • GNU/Linux : Lancez simplement Siril dans un terminal. Habituellement, le binaire est situé dans la variable $PATH, dans ce cas tapez :

        siril > output.log 2>&1
        

        est tout ce dont vous avez besoin pour rediriger les logs dans le fichier output.log. Le fichier output.log sera sauvegardé dans le dossier où le terminal a été démarré

  5. Envoyez-nous votre image. Si vous trouvez votre image étrange, n'hésitez pas à la partager avec nous, généralement au format FITS. C'est toujours plus intéressant qu'une capture d'écran. Pour ce faire, vous devez utiliser un service d'échange de fichiers volumineux. Il en existe beaucoup, et nous pouvons vous suggérer WeTransfer, par exemple. Dans ce cas, téléchargez vos données sur WeTransfer et obtenez un lien de téléchargement à partager.

Comment nous contacter ?

Il y a plusieurs façons de nous contacter et de signaler un bug. La plus simple est de nous trouver sur le forum (anglais), ou celui-ci (français). Mais il est également possible d'ouvrir un ticket sur notre dépôt gitlab. Dans ce cas, vérifiez d'abord que le même ticket n'a pas déjà été ouvert. Il se peut même qu'il ait été fermé parce qu'il a été résolu, dans ce cas, une courte description avec un numéro de ticket sera affichée dans le Changelog. Pour visualiser le ticket (même un ticket fermé) et confirmer que vous rencontrez ou non le même problème, rendez-vous à l'adresse https://gitlab.com/free-astro/siril/-/issues/XXXX avec XXXX le numéro de ticket.

Astuce

Les utilisateurs et les développeurs de Siril étant de nationalités différentes, la langue utilisée pour signaler un bug doit être l'anglais.