Apprendre
Les scripts Siril
Il est 4 h du matin, la séquence vient de se terminer, et 280 fichiers attendent sur le disque. Vous rangez quatre dossiers, vous choisissez une ligne dans le menu, vous allez dormir : au réveil, l'image empilée est là. Ce tutoriel ouvre le capot de cette mécanique — l'anatomie d'un fichier .ssf commande par commande, l'arborescence exacte qu'il réclame et ce qui casse quand un nom dérape, la lecture d'un script officiel pour l'adapter à VOTRE configuration, puis l'écriture d'un script à soi qui pioche ses maîtres dans une bibliothèque et nomme son résultat depuis l'en-tête FITS. Il paie aussi la contrepartie, qu'on tait rarement : un script empile les étapes sans jamais les montrer, et le jour où l'image finale déçoit, il faut savoir quel fichier rouvrir.
- 4
- dossiers à créer et à nommer à la lettre — biases, flats, darks, lights — avant que la moindre commande accepte de tourner
- 28
- lignes utiles dans le script couleur officiel, commentaires exclus : le prétraitement entier tient sur un écran
- 0 €
- le prix de Siril et de ses scripts, publiés sous licence GPL sur le dépôt du projet
- 3 ×
- le volume des brutes que le dossier de travail réclame sur le disque avant d'être vidé
- 4
- fichiers intermédiaires à rouvrir, dans l'ordre où le script les a écrits, quand le résultat déçoit
Le principe
Une liste de commandes, exécutée sans vous
L'automatisation apporte trois bénéfices tenaces — répétabilité, travail nocturne, absence d'oubli — et se paie d'une chaîne qui défile entièrement hors de vue.
Un fichier texte, une commande par ligne
.ssf et tient dans un simple fichier texte. Chaque ligne appelle une commande, celles-là mêmes que vous taperiez dans la barre du bas de la fenêtre principale ; l'espace sépare les arguments, et une chaîne contenant un espace se met entre guillemets, comme dans un terminal. Les lignes ouvertes par un dièse sont des commentaires. L'exécution est strictement séquentielle et impitoyable : dès qu'une commande retourne une erreur, le script s'arrête là où il en est. Certaines commandes portent d'ailleurs une pastille « non scriptable » dans la documentation — tout ce qui réclame un clic ou une sélection à la souris en fait partie, et un script qui en appelle une se plante immédiatement. Quatre façons de le lancer coexistent : le menu Scripts, le jeton @nom_du_script tapé dans la barre de commandes, l'éditeur intégré, et l'exécutable siril-cli avec l'argument -s suivi du chemin — cette dernière voie servant les machines sans écran. Pendant l'exécution, l'interface se fige : seul le bouton d'arrêt répond.Le gain se mesure en nuits, pas en minutes
-equalize_cfa décochée un soir de fatigue produit une image teintée dont personne ne comprend l'origine trois semaines plus tard, alors qu'une ligne écrite une fois ne se décoche jamais. Ce tutoriel se concentre sur cette mécanique ; l'enchaînement complet du traitement, de la conversion à l'export, le retrait de gradient et l'étalonnage des couleurs, les formules PixelMath des palettes HOO et SHO, et le rôle propre de chaque image de calibration font chacun l'objet d'un tutoriel dédié.Le prix à payer : plus rien ne s'affiche
L'arborescence
Quatre dossiers, à la lettre près
Le partage des tâches se lit dans l'arborescence : les dossiers de départ relèvent de vous, tous les répertoires suivants naissent de l'exécution.
Ce que vous rangez, ce que le script fabrique
biases, flats, darks et lights, au pluriel, en minuscules, et vous y déposez les fichiers bruts — RAW d'un boîtier reflex ou FITS d'une caméra dédiée, le script accepte les deux depuis que la commande convert a remplacé les anciennes commandes spécialisées. Le reste lui appartient. Il crée process/, où transitent toutes les séquences de travail, et masters/, où il range les trois images maîtresses. L'image finale, elle, ressort à la racine. Notez le sens des chemins : convert bias -out=../process écrit un cran plus haut que le dossier courant, et le cd ../process qui suit va y travailler. Cette gymnastique de répertoires occupe à elle seule un tiers des lignes du script officiel.L'espace disque, la contrainte qu'on découvre trop tard
process/ accumule trois générations de la même série : la séquence convertie, la séquence calibrée préfixée pp_, la séquence alignée préfixée r_pp_. Comptez donc trois fois le volume de vos brutes, et davantage encore si l'option -32b double la profondeur au moment de l'empilement. Une nuit de 280 poses sur un capteur de 26 mégapixels dépasse largement les capacités d'une carte mémoire et met une machine à disque mécanique à genoux. Deux parades tiennent debout. La première : substituer link à convert lorsque les brutes sont déjà en FITS — la commande pose des liens symboliques au lieu de recopier les fichiers, et le script Seestar l'a adoptée précisément pour cela. La seconde : vider process/ entre deux exécutions, sans quoi les anciennes séquences se mélangent aux nouvelles et le script empile un fichier de la semaine passée sans prévenir.Anatomie
Lire un script officiel, commande par commande
Sept familles de commandes, et rien d'autre
cd déplace le répertoire courant. convert (ou link) fabrique une séquence numérotée à partir d'un tas de fichiers. calibrate soustrait les maîtres et sort une séquence préfixée pp_. register mesure les décalages entre images et sort une séquence préfixée r_. stack combine et écrit un fichier unique. load, mirrorx et save travaillent sur cette image finale. close libère la séquence. C'est tout. Les préfixes sont la clé de lecture : ils s'empilent, si bien qu'une image passée par la calibration puis par l'alignement s'appelle r_pp_light_00001.fit, et cette pile de préfixes raconte à elle seule l'histoire du fichier.
| Commande | Ce qu'elle fait | Ce qu'elle écrit |
|---|---|---|
| cd | Change le répertoire courant du script | rien — mais tout le reste en dépend |
| convert / link | Rassemble des fichiers épars en une séquence numérotée ; link pose des liens au lieu de copier | bias_00001.fit, light_00001.fit… |
| calibrate | Applique les maîtres, corrige les pixels chauds, dématrice si demandé | séquence préfixée pp_ |
| register | Détecte les étoiles et calcule les transformations ; l'option -2pass sépare le calcul de la production | séquence préfixée r_ (ou seulement les données d'alignement) |
| seqapplyreg | Produit les images alignées et écarte les poses en dehors des seuils demandés | séquence préfixée r_, expurgée |
| stack | Combine la séquence avec rejet et normalisation | une image unique, nommée par -out= |
| load · mirrorx · save · close | Ouvre l'empilement, le remet à l'endroit, l'enregistre, rend la main | le fichier final, à la racine |
| Aucune ligne ne correspond au filtre. | ||
La ligne de calibration porte toute la configuration
calibrate light -dark=../masters/dark_stacked -flat=../masters/pp_flat_stacked -cc=dark -cfa -equalize_cfa -debayer. Décomposons. -cc=dark demande la détection des pixels chauds et froids à partir du maître dark, avec un seuil de trois écarts-types par défaut ; il existe une variante -cc=bpm qui lit une carte de pixels défectueux préparée à l'avance. -cfa indique que le capteur porte une mosaïque de Bayer, ce qui change la façon dont les pixels voisins sont interpolés. -equalize_cfa égalise l'intensité moyenne des trois couches du maître flat, faute de quoi l'image calibrée sort avec une dominante colorée. -debayer dématrice à la volée. Un capteur monochrome supprime les trois derniers arguments, et rien d'autre ne change dans le script : c'est précisément la différence entre les deux scripts officiels, couleur et monochrome.Le rejet et la normalisation, écrits une fois pour toutes
stack se ressemblent et diffèrent par un seul argument, qui n'est jamais arbitraire. Les maîtres bias et dark s'empilent avec -nonorm : ce sont des signaux d'instrument, ils ne se renormalisent pas d'une pose à l'autre. Le maître flat s'empile avec -norm=mul, parce qu'un flat exprime un rapport de niveaux et non une somme. Les poses de la cible, enfin, prennent -norm=addscale -output_norm, l'addition avec mise à l'échelle qui absorbe les variations de fond de ciel entre le début et la fin de la nuit. Le fragment rej 3 3 qui les précède demande un rejet à trois sigma bas et trois sigma haut ; sans autre précision, Siril applique la méthode de Winsor, et les valeurs se resserrent à rej 2 2 si la série dépasse la centaine de poses. L'argument -rgb_equal de la dernière ligne égalise les fonds des trois couches, ce qui reste utile quand l'étalonnage photométrique ne suivra pas.Adapter
Du script officiel au vôtre
Le catalogue livré et le dépôt public couvrent déjà l'essentiel des configurations, et quelques bifurcations suffisent ensuite à désigner la variante qui correspond au matériel en place.
Six scripts livrés, une dizaine d'autres au dépôt
free-astro/siril-scripts, que le programme sait synchroniser tout seul au démarrage : depuis la version 1.4, le menu Scripts → Get Scripts ouvre la liste, classée en catégories, et vous cochez ceux que vous voulez voir apparaître. On y trouve les variantes que l'installation ne fournit plus — la version qui se passe de dark, celle qui se passe des trois images de calibration, celle qui traite les fichiers d'un télescope intelligent. Un double-clic sur une ligne de cette liste ouvre le script dans l'éditeur intégré : c'est la manière recommandée de lire le code avant de l'exécuter, et accessoirement de retrouver le nom de son auteur.Quatre bifurcations, quatre scripts
register pp_light -drizzle -scale=1.0 -pixfrac=1.0 -kernel=square et exige, pour donner autre chose que des artefacts, une série longue et un échantillonnage sous-résolu.| Script | Dossiers exigés | Quand c'est le vôtre |
|---|---|---|
| OSC_Preprocessing | biases · flats · darks · lights | capteur couleur, jeu de calibration complet — le cas standard |
| Mono_Preprocessing | biases · flats · darks · lights | capteur monochrome, une couche à la fois derrière une roue à filtres |
| OSC_Preprocessing_BayerDrizzle | biases · flats · darks · lights | série longue et image sous-échantillonnée, couleur reconstruite par drizzle |
| OSC_Extract_HaOIII | biases · flats · darks · lights | filtre double bande sur capteur couleur : deux images, H-alpha et OIII |
| OSC_Preprocessing_WithoutDark | biases · flats · lights | boîtier non refroidi dont les darks ne se reproduisent pas |
| OSC_Preprocessing_WithoutDBF | lights | la nuit où la calibration a été oubliée — dépannage, pas méthode |
| Seestar_Preprocessing | lights | télescope intelligent qui ne livre aucune image de calibration |
| RGB_Composition | un dossier contenant R.fit, G.fit, B.fit | recomposer une couleur à partir de trois couches déjà empilées |
| Aucune ligne ne correspond au filtre. | ||
-
Créez un dossier de scripts qui vous appartienne
Un répertoire quelconque de votre disque personnel fera l'affaire. Ne posez jamais vos scripts dans le dossier d'installation : sous Windows une mise à jour les efface, sous macOS l'ajout casse le paquet applicatif au point d'empêcher Siril de démarrer.
-
Déclarez ce dossier dans les préférences
Menu hamburger, Préférences, section Scripts, une ligne par emplacement — la liste en accepte autant que vous voulez. La liste des chemins survit aux mises à jour, elle vit dans votre fichier de configuration.
-
Ouvrez le script d'origine, enregistrez-le sous un autre nom
Double-clic sur sa ligne dans la liste des préférences : l'éditeur intégré s'ouvre. Renommez immédiatement — le dossier du dépôt est réinitialisé à chaque synchronisation, et une copie qui y resterait disparaîtrait à la mise à jour suivante.
-
Modifiez une seule chose à la fois, puis rechargez
La commande reloadscripts tapée dans la barre du bas, ou l'icône de rafraîchissement des préférences, rescanne tous les dossiers déclarés et rebâtit le menu. Testez chaque ligne douteuse à la main dans la barre de commandes avant de la coller : le message d'erreur y est bien plus lisible.
-
Datez et versionnez l'en-tête
L'en-tête de commentaires du script officiel porte un numéro de version et un mois — décembre 2024 pour la version couleur 1.4, juillet 2020 pour la toute première. Reprenez l'habitude : dans deux ans, c'est ce bloc qui vous dira lequel de vos trois scripts a produit l'image accrochée au mur.
Le script à soi
Un script complet, commenté ligne par ligne
Le fichier qui suit sert de base réutilisable : il vaut pour un capteur couleur quel que soit l'instrument, et chacun de ses écarts avec la version officielle porte sa justification.
Ce que ce script change par rapport à l'officiel
-bias= de la calibration des flats, et le dossier d'entrée s'appelle darkflats/. L'arbitrage entre offset et dark-flat, avec la formule de calibration qui le justifie, appartient au tutoriel consacré aux images de calibration. Deuxième écart : l'alignement passe en deux temps, avec un tri des poses. Troisième : le nom du fichier de sortie se fabrique tout seul à partir de l'en-tête FITS. Le script vaut pour une lunette de 72 mm à f/5,9 comme pour un astrographe de 200 mm à f/4 — rien dedans ne dépend de l'instrument.############################################
#
# OSC_DarkFlat_Perso.ssf — v1.0, juillet 2026
# Copie personnelle, rangee dans un dossier a soi
#
########### SCRIPT DE PRETRAITEMENT ##########
#
# Camera couleur, offset remplace par le dark-flat.
# Dossiers attendus dans le repertoire de travail :
# darkflats/ flats/ darks/ lights/
# Les maitres sont ecrits dans ./masters/
#
############################################
# Garde-fou de version : Siril refuse de lancer le
# script s'il est plus ancien que ce numero.
requires 1.3.4
# ---------- 1. Le maitre dark-flat ----------
# On entre dans le dossier des dark-flats.
cd darkflats
# Les brutes deviennent dflat_00001.fit, 00002...
# et sont ecrites dans le dossier process/.
convert dflat -out=../process
# Tout le travail se poursuit dans process/.
cd ../process
# Empilement par rejet sigma 3 3, sans
# normalisation : un signal d'offset ne se
# renormalise pas. Sortie rangee dans masters/.
stack dflat rej 3 3 -nonorm -out=../masters/dflat_stacked
# On remonte a la racine du repertoire de travail.
cd ..
# ---------- 2. Le maitre flat ----------
cd flats
convert flat -out=../process
cd ../process
# Le dark-flat joue ici le role que le script
# officiel confie au bias : c'est le meme argument.
calibrate flat -bias=../masters/dflat_stacked
# Normalisation multiplicative : un flat est un
# rapport de niveaux, pas une somme de signaux.
stack pp_flat rej 3 3 -norm=mul -out=../masters/pp_flat_stacked
cd ..
# ---------- 3. Le maitre dark ----------
cd darks
convert dark -out=../process
cd ../process
stack dark rej 3 3 -nonorm -out=../masters/dark_stacked
cd ..
# ---------- 4. Les poses de la cible ----------
cd lights
convert light -out=../process
cd ../process
# Une seule ligne porte toute la configuration :
# -cc=dark detection des pixels chauds sur le dark
# -cfa correction cosmetique en mosaique de Bayer
# -equalize_cfa egalise les trois couches du flat
# -debayer dematricage a la volee
calibrate light -dark=../masters/dark_stacked -flat=../masters/pp_flat_stacked -cc=dark -cfa -equalize_cfa -debayer
# ---------- 5. Alignement, puis tri ----------
# Premiere passe : Siril calcule les transformations
# et choisit lui-meme l'image de reference.
register pp_light -2pass
# Seconde passe : les images sont reellement
# produites, et les moins bonnes sont ecartees.
seqapplyreg pp_light -filter-fwhm=90% -filter-round=2.5k
# ---------- 6. Empilement ----------
stack r_pp_light rej 3 3 -norm=addscale -output_norm -rgb_equal -32b -out=result
# ---------- 7. Sortie nommee par l'en-tete FITS ----------
load result
# Remet l'image dans le bon sens si l'en-tete
# indique une lecture par le bas.
mirrorx -bottomup
# Le nom se fabrique a partir des mots-cles FITS :
# cible, nombre de poses, duree, gain, temperature,
# date du debut de nuit.
save ../$OBJECT:%s$_$STACKCNT:%d$x$EXPTIME:%d$s_G$GAIN:%d$_T$CCD-TEMP:%d$C_$DATE-OBS:dm12$
cd ..
# Libere la sequence et rend la main.
close Le tri des poses, la ligne qui sauve une nuit moyenne
register pp_light -2pass puis seqapplyreg mérite un mot, parce qu'il n'existe pas dans le script officiel. La première passe se contente de mesurer : elle détecte les étoiles, calcule les transformations, et choisit elle-même l'image de référence sur des critères de qualité et de cadrage plutôt que de prendre la première venue. La seconde produit les images alignées, et c'est là que le tri s'opère. -filter-fwhm=90% conserve les 90 % de poses les plus fines ; -filter-round=2.5k écarte celles dont la rondeur des étoiles s'écarte de plus de 2,5 écarts-types de la médiane — la formulation exacte du script fourni pour les télescopes intelligents, qui invite d'ailleurs son utilisateur à relever cette valeur si le tri devient trop sévère. D'autres critères existent sur le même modèle : la largeur pondérée, le nombre d'étoiles détectées, le niveau de fond de ciel. Un seuil en pourcentage garde une fraction, un seuil suffixé par k travaille en écarts à la médiane.La bibliothèque de maîtres, ou comment cesser de renommer des fichiers
DARK_120s_G120_O30_T-10C_bin1.fit, et la ligne de calibration va chercher toute seule celui qui correspond aux poses en cours de traitement. Trois mots-clés réservés — $defdark, $defflat, $defbias — pointent vers les répertoires de bibliothèque déclarés dans les préférences, ce qui réduit la ligne de calibration à calibrate light -dark=$defdark -flat=$defflat -cc=dark -cfa -equalize_cfa -debayer. Le même mécanisme fonctionne à l'écriture : stack dark rej 3 3 -nonorm -out=$defdark range le maître fraîchement empilé à sa place dans la bibliothèque, sans qu'aucun nom soit tapé.Le diagnostic
Où regarder quand l'image finale déçoit
Le disque conserve chaque étape intermédiaire, et cette trace remplace le contrôle visuel dont l'exécution automatique vous prive.
Remonter la chaîne dans l'ordre où elle a été écrite
load, appliquez un étirement d'affichage automatique — il ne modifie pas les données, il rend seulement le défaut visible — et regardez. Le premier suspect est le maître offset, dont le fond doit être uniforme et le grain fin ; une trame ou un dégradé à ce stade contamine le maître flat qui s'en nourrit. Vient le maître flat, où l'on veut voir le vignetage et les poussières, rien de plus : une étoile qui pointe trahit un flat pris sur un ciel déjà trop sombre. Puis la première image calibrée, dont les coins et le centre doivent afficher le même niveau ; un halo clair au centre signe un flat mal apparié à ces poses. Enfin la première image alignée, où les étoiles doivent être rondes et posées sur la trame de l'image de référence.-
Relisez la console avant tout le reste
Siril y écrit chaque commande exécutée, le nombre d'images traitées à chaque étape et la raison de son arrêt éventuel. Un script qui s'est interrompu à la ligne 14 ne dit rien sur vos données : il dit qu'un chemin ou un argument est faux.
-
Comptez les images empilées
L'en-tête du fichier final porte le mot-clé STACKCNT, que la commande dumpheader affiche. Quarante poses attendues devenues vingt-huit signalent que le tri de seqapplyreg a mordu trop large, ou que l'alignement a échoué sur les poses de fin de nuit, quand la cible passait derrière un arbre.
-
Vérifiez l'appariement des maîtres
Toujours avec dumpheader, comparez la durée de pose, le gain, l'offset et la température de consigne entre une pose de la cible et le maître dark employé. Un dark tiré à -10 °C soustrait d'une pose à 0 °C laisse un tapis de pixels chauds que rien ne rattrapera plus tard.
-
Demandez la carte des pixels rejetés
L'option -rejmap ajoutée à la commande stack produit une image supplémentaire montrant où le rejet a mordu. Un ciel constellé de traces de satellites y apparaît en clair ; un rejet qui couvre uniformément le champ signale au contraire des seuils trop serrés pour le nombre de poses.
-
Rejouez l'étape suspecte à la main
Le dossier de travail contient tout le nécessaire. Chargez la séquence pp_light dans l'interface, refaites l'alignement au clic avec d'autres réglages de détection d'étoiles, et comparez. C'est le seul moment où le mode manuel reste irremplaçable — raison de plus pour l'avoir pratiqué avant d'automatiser.
Le matériel qui rend l'automatisation fiable
convert avale sans conversion préalable, et la Svbony SV205 (102,99 €) rend le même service en prenant la place d'un oculaire sur le porte-oculaire. Seconde exigence, la plus prosaïque : la machine doit rester allumée. Un script lancé à 3 h du matin sur un ordinateur de terrain tourne quarante minutes après la fin de la séquence ; une coupure au milieu de l'empilement laisse un dossier de travail à moitié rempli qu'il faudra vider. Une TalentCell LiFePO4 12 V à 69,99 € couvre le cas d'un mini-ordinateur seul ; la Celestron PowerTank Lithium Pro (238,16 €) tient la nuit entière avec la monture et le refroidissement. Prix relevés fin juillet 2026.Ce que les scripts ne feront jamais
.ssf ignore les conditions et les boucles. Il exécute une liste, point. Traiter trois cibles dans la même nuit demande trois lancements successifs, ou le passage au langage Python introduit en version de développement 1.3.5 et appelé par la commande pyscript — une capacité que l'équipe présente elle-même comme expérimentale, et dont les scripts, sur le dépôt public, sont écrits par des tiers dont il faut juger la confiance. La seconde : un script fige des réglages, et un réglage figé vieillit. Le tri à 90 % qui convenait à une monture correctement guidée devient trop sévère le soir où le vent se lève. Relisez vos scripts une fois par saison, comme on relit une liste de matériel avant de partir ; c'est trente secondes contre une nuit perdue.Continuer
Autour de la chaîne automatisée
Le traitement Siril au clic, pas à pas L'initiation qui précède l'automatisation : découvrir l'interface, charger une séquence et dérouler le flux à la main une première fois, pour savoir ce que le script fera à votre place.
L'empileur historique sous Windows L'autre voie gratuite pour empiler une série : son flux, ses réglages et la logique de dossiers qu'il attend, très différente de celle des scripts Siril. L'automatisation commence à la prise de vue
Un script rend fidèlement ce que la nuit lui a donné : des poses régulières, une température stable, une machine qui reste allumée jusqu'au bout. Notre sélection de matériel d'astrophotographie, du premier capteur à la source d'énergie qui tient jusqu'à l'aube.