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 deSirilInterface.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 :
objectSirilInterface 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é:
- 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:
DataError -- si aucune réponse n'est reçu,
SirilError -- si une autre erreur est survenue.
- 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'erreurmodal (
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 Truepreview (
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:
NoImageError -- si aucune image n'est chargé,
SirilError -- si une erreur de décodage se produit.
- 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:
NoImageError -- Si aucune image n'est actuellement chargée,
SirilError -- Si une autre erreur se produit.
- 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:
NoImageError -- si aucune image n'est chargé,
SirilError -- si une erreur est survenue.
- 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 toretrieve 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 0assume_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é:
- 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é:
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
DataError -- en cas de réception de données erronées,
SirilError -- si une erreur est survenue.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
NoSequenceError -- si aucune séquence n'est chargée dans Siril,
SirilError -- si une erreur de décodage se produit.
- 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:
DataError -- si aucune réponse n'est reçue,
SirilError -- pour toutes les autres erreurs.
- 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:
NoImageError -- Si aucune image n'est actuellement chargée,
SirilError -- Si une autre erreur se produit.
- 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é:
- 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:
DataError -- si aucune réponse n'est reçue,
SirilError -- pour toutes les autres erreurs.
- 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:
DataError -- si aucune réponse n'est reçue,
SirilError -- pour toutes les autres erreurs.
- 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:
ProcessingThreadBusyError -- Si le thread est déjà utilisé
ImageDialogOpenError -- Si une boîte de dialogue de traitement d'image est ouverte
SirilError -- Si le thread ne peut pas être acquis ou libéré pour d'autres raisons
- 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'informationmodal (
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:
DataError -- si aucune réponse n'est reçue,
SirilError -- pour toutes les autres erreurs.
- 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:
DataError -- si aucune réponse n'est reçue,
SirilError -- pour toutes les autres erreurs.
- 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 = Truelinked (
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 à logercolor (
LogColor) -- Définit la couleur du texte, blanc par défaut. Voir la documentationwhich (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é:
- 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:
SirilError -- si une erreur s'est produite
SharedMemoryError -- si une erreur de mémoire partagée s'est produite
- 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é:
- 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:
SirilError -- si une erreur s'est produite
SharedMemoryError -- si une erreur de mémoire partagée s'est produite
- 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 à convertiry (
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 à convertirdec (
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 BGSampleshow_samples (
bool) -- Afficher ou non les points d'échantillonnage dans Sirilrecalculate -- 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.17incl (
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 à afficherprogress (
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'avertissementmodal (
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é:
- 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)
- 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.
- 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é:
- 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 :
objectRepré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 :
objectStructure 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é:
- 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
- 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é:
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é:
- 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é:
- 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
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 :
objectRepré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é:
- 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
- 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é:
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é
- 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é
- 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 :
IntEnumReproduit 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 :
IntEnumContient 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 :
IntEnumRepresents 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 :
IntEnumDefines colors available for use with
SirilInterface.log()For consistencyLogColor.Defaultshould be used for normal messages,LogColor.Redshould be used for error messages,LogColor.Salmonshould be used for warning messages, LogColor.Green should be used for completion notifications, andLogColor.Blueshould 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 :
IntEnumenum 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 :
objectDéfinit les fenêtres d'affichage Siril
- BLUE = 2
- GREEN = 1
- MONO = 0
- RED = 0
- RGB = 3
- 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 :
objectConteneur 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é:
- 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 :
objectRepré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 :
objectCe 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 :
objectCe 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 :
objectUne 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
- get_recommended_backend()
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 :
objectUne 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
- get_recommended_backend()
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 :
objectClasse 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
- get_recommended_backend()
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 PyTorchpackages (
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 :
FrameA 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 detkfilebrowser.askopendirname()pour maintenir la compatibilité avectk.filedialog.askdirectory().Dans les spécifications de filefilter,
tkfilebrowserexige que plusieurs extensions soient fournies séparées par | alors que filedialog exige des extensions séparées par des espaces :sirilpy.tkfilebrowsera é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 :
SirilErrorLevé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 :
SirilErrorLevé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 :
SirilErrorException levée lorsqu'une boîte de dialogue de traitement d'image est ouverte.
- exception sirilpy.exceptions.MouseModeError(message='Siril mouse mode error')
Bases :
SirilErrorException levée lorsque Siril est dans le mauvais mode souris.
- exception sirilpy.exceptions.NoImageError(message='No Siril image loaded')
Bases :
SirilErrorLevé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 :
SirilErrorLevé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 :
SirilErrorException levée lorsque le thread de traitement est déjà utilisé.
Bases :
SirilErrorLevé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 :
SirilErrorSoulevé 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 :
ExceptionClasse 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.