sunday Posté 11 février 2022 Posté 11 février 2022 Bonjour à tous, Je débute pour créer des scripts avec Siril. Et je rencontre un problème (basique) pour réaliser un script qui permet d'appliquer un filtre médian à l'ensemble des images qui sont dans une séquence et dans le répertoire de travail. Comment faire ? Je ne vois nulle part la syntaxe de la boucle FOR ..... Marc.
vinvin Posté 11 février 2022 Posté 11 février 2022 Bonjour, la fonction fmedian existe pour une image mais pas pour une séquence, donc pour l'instant ce n'est pas possible. Désolé
lock042 Posté 11 février 2022 Posté 11 février 2022 On peut cependant utiliser le bash ou autres, comme expliqué ici : https://siril.org/fr/tutorials/bash-scripts/
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 Il y a 2 heures, lock042 a dit : On peut cependant utiliser le bash ou autres, comme expliqué ici : https://siril.org/fr/tutorials/bash-scripts/ Merci pour l'info. Bon cela commence bien avec déjà un problème pour suivre le tutorial. Cela fait des années que je n'ai plus utilisé les commandes DOS et le PowerShell ( je suis sous windows). Déjà pour créer le fichier vide "copy NUL resample.bat", cela ne marche pas. Voici la commande pas acceptée sous PowerShell: C:\users\Marc\AppData\Roaming\siril\scripts> copy NUL resample.bat
lock042 Posté 11 février 2022 Posté 11 février 2022 Sinon pour créer un fichier vide sous windows il y a le clique droit.
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 c'est à dire, dans le répertoire des scripts de Siril, chez moi C:\Users\Marc\AppData\Roaming\siril clic droit pour créer le fichier texte "resample.txt" que je renomme en "resample.bat" C'est bien cela?
Cissou8 Posté 11 février 2022 Posté 11 février 2022 Salut, Ce tuto a été fait en cmd. Mais si tu veux passer par du powershell, y a un exemple un peu similaire (en tout cas pour voir comment faire les appels et les boucles) dans le tuto sur les comètes la: https://siril.org/fr/tutorials/comet/scripts/superstack_v0.1.ps1 Cécile
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 Merci Cécile. J'analyse cela. Mais à première vue, cela n'a pas l'air très simple....
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 il y a 40 minutes, Cissou8 a dit : Ce tuto a été fait en cmd OK, j'essaie en mode cmd alors. Je me "suis mis" en commande DOS. La création du Batch vide se fait bien par la commande "copy NUL resample.bat". Puis j'édite le texte pour le batch du tuto. Je double clic pour l'exécution du batch et là Siril n'est pas reconnu.... C:\Users\Marc\AppData\Roaming\siril\scripts>echo OFF 'siril' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. Appuyez sur une touche pour continuer...
Cissou8 Posté 11 février 2022 Posté 11 février 2022 Ah oui, ça dépend de si siril est dans le PATH ou pas. @lock042,faudrait qu'on modif dans le tuto pour que c marche à tous les coups. Alors de tête (je suis sur le tel....) Il faut remplacer FOR /F "tokens=2 " %%g IN ('siril --version') do (SET version=%%g) Par FOR /F "tokens=2 " %%g IN ('"C:\Program Files\SiriL\bin\siril.exe" --version') do (SET version=%%g)
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 Ok, merci Cécile. Plus de message d'erreur avec ce remplacement J'ai aussi remplacer dans l'exemple resample 2.0 par rotate 30 pour directement voir le résulat sur l'image sauvegardée. Et en chargeant l'image pas de rotation de 30° effectuée ??? J'essaie d'avancer pas à pas mais pas simple...
Fred_76 Posté 11 février 2022 Posté 11 février 2022 Sous Windows, je ne vois pas l’intérêt de créer au préalable un fichier vide. On peut directement créer le fichier dans Notepad et le sauver avec le nom qu’on veut suivi de .bat pour le rendre batchable. Le tutoriel deviendrait alors, sous Windows : Lancer Notepad et saisir ou copier coller le texte suivant : echo OFF FOR /F "tokens=2 " %%g IN ('siril --version') do (SET version=%%g) set ext=fits ( echo requires %version% echo setext %ext% echo load %1 echo resample 2.0 echo save %1 echo close ) | "C:\Program Files\SiriL\bin\siril-cli.exe" -s - >nul 2>&1 pause Puis sauver le fichier sous le nom « resample.bat ».
sunday Posté 11 février 2022 Auteur Posté 11 février 2022 il y a 15 minutes, Fred_76 a dit : Sous Windows, je ne vois pas l’intérêt de créer au préalable un fichier vide Moi non plus.... Bon voici mon premier essai très simpliste pour une rotation de 30° et sauvegarde de l'image : echo OFF FOR /F "tokens=2 " %%g IN ('"C:\Program Files\SiriL\bin\siril.exe" --version') do (SET version=%%g) set ext=fits ( echo requires %version% echo setext %ext% echo load %1 echo rotate 30 echo save %1 echo close ) | "C:\Program Files\SiriL\bin\siril-cli.exe" -s - >nul 2>&1 pause Cela marche en plaçant le batch dans le dossier de travail.... Je regarde maintenant pour effectuer une boucle for, pour appliquer à toute la séquence.
Cissou8 Posté 12 février 2022 Posté 12 février 2022 (modifié) Bon, parce que c'est bien pratique et que ca en depannera d'autres en attendant qu'on ait le temps/le besoin d'ecrire toutes les commandes qui ne s'appliquent aujourd'hui qu'a une image a une sequence, un bout de powershell qui permet de passer la commande de son choix sur toutes les images d'une sequence. Example: .\genseqscript.ps1 "fmedian 5 1" "C:\MyImages\r_pp_light_.seq" med_ fit Qui applique la commande fmedian 5 1 a toutes les images de C:\MyImages\r_pp_light_.seq en ajoutant le prefixe med_ Y a un autre exemple et les descriptions de commande au debut du fichier. J'essaie de me motiver pour l'ecrire en bash demain et on l'ajoutera au tuto. C. EDIT: je laisse le fichier original ici, mais voir plus bas le lien vers le site siril pour avoir des fichiers avec des updates eventuels genseqscript.ps1 Modifié 14 février 2022 par Cissou8 1
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 Il y a 6 heures, Cissou8 a dit : le besoin d'ecrire toutes les commandes qui ne s'applique aujourd'hui qu'a une image a une sequence, C'est ce que je pense aussi et c'est ma motivation. Il y a 6 heures, Cissou8 a dit : un bout de powershell qui permet de passer la commande de son choix sur toutes les images d'une sequence Beau travail Cécile. Un tout grand merci. J'essaie cela ce matin. Bon week-end à tous. 1
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 Pour faire l'essai, j'ai placé 5 images de nom "light" qui forme la séquence light-seq dans le répertoire de travail de Siril. Dans PowerShell je lance la commande .\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossier travail SIRIL\light_.seq" med_ fit Tout se passe bien, sauf pour l'accés au chemin C:\log Voici le message d'erreur dans la fenêtre Powershell : Command to be run: fmedian 5 1 prefix: med_ FITS extension: fit Working directory: C:\Users\Marc\Desktop\dossier travail SIRIL Sequence to be processed: light_.seq processing file: light_00001.fit out-file : L'accès au chemin d'accès 'C:\log' est refusé. Au caractère C:\genseqscript.ps1:67 : 3 + @" + ~~ + CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
Cissou8 Posté 12 février 2022 Posté 12 février 2022 Doit y avoir des histoires de droit d'ecriture qqpart chez toi Tu peux remplacer: "@ | & $sirilcliexe -s - >log 2>&1 par "@ | & $sirilcliexe -s - >$null 2>&1 Ca reglera le probleme normalement
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 OK, problème résolu avec "$null 2". Mais après traitement, les images traitées "med_light" ne se trouvent pas dans le dossier de travail. En faisant une recherche de "med_light" sur C:\ , aucun résultat.....
Cissou8 Posté 12 février 2022 Posté 12 février 2022 est-ce que tu pourrais faire un test en te mettant dans un dossier de travail ou il n'y a pas d'espaces? C:\Users\Marc\Desktop\dossiertravailSIRIL par exemple Si c'est ca, je ferai ensuite une modif, sinon, faut qu'on continue de chercher....
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 J'ai renommé mon dossier de travail par dossierTravailSiril, et j'ai le même résultat: pas d'images med_light
Cissou8 Posté 12 février 2022 Posté 12 février 2022 ouais....je seche un peu la.... tu me ferais un screenshot de ta console powershell stp? Que je vois la commande que tu passes et ce que ca ecrit, si jamais je vois une difference avec chez moi.
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 (modifié) Le problème est résolu...... J'avais mes images avec "Prism" en light.fits. J'ai modifié en light.fit. Cécile, tu as fourni un beau travail là. Je t'en remercie... Modifié 12 février 2022 par sunday
Cissou8 Posté 12 février 2022 Posté 12 février 2022 (modifié) ah ben du coup, au lieu de modifier tes fichiers, tu peux directement lui passer ton extension preferee, c'est un des parametres optionnels que tu peux lui passer (c'est indique en haut du ps1, ce que tu peux lui passer et comment): .\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossiertravailSIRIL\light_.seq" med_ fits ou ne rien lui passer du tout puisque 'fits', c'est l'extension que j'ai mise par defaut (j'image avec NINA et c'est pareil) .\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossiertravailSIRIL\light_.seq" med_ J'essaie quand meme une modif pour que ca gere si il y a des espaces dans le path et je renvoie un truc.... et j'essaie d'envoyer une version bash aussi...mais deja que powershell et moi, ca fait 2, alors bash et moi.... Modifié 12 février 2022 par Cissou8 1
sunday Posté 12 février 2022 Auteur Posté 12 février 2022 Pour info.... Voici la commande à placer dans PowerShell : PS C:\Users\Marc\Desktop\dossierTravailSiril>.\genseqscript.ps1 "fmedian 5 1" "C:\Users\Marc\Desktop\dossierTravailSiril\light_.seq" med_ fit Le script "genseqscript.ps1" est placé dans ce cas dans le dossier : "dossierTravailSiril" Il faut aussi modifier les paramètres de sécurité, c'est expliquer ici : https://syskb.com/comment-executer-un-script-en-powershell/ il y a 6 minutes, Cissou8 a dit : deja que powershell et moi, ca fait 2, alors bash et moi.... et pour moi cela fait 3 si pas plus.....
Cissou8 Posté 14 février 2022 Posté 14 février 2022 Pour info, si jamais qq'un tombe sur ce topic au gré de ses recherches, les versions powershell et bash sont maintenant sur cette page: https://siril.org/fr/tutorials/bash-scripts/#appliquer-une-commande-pour-image-seule-à-toute-une-séquence 1
lock042 Posté 14 février 2022 Posté 14 février 2022 Un grand merci à @Cissou8 qui s'est tapé la rédaction des scripts dans des langages qu'elle affectionne tout particulièrement (ironie inside). Et ce, sans même proposer un exemplaire en python ^^. 1 1
Cissou8 Posté 14 février 2022 Posté 14 février 2022 Just now, lock042 said: Et ce, sans même proposer un exemplaire en python Je sais pas ce qui me retient 🙂 Si, le fait que ce soit un tuto sur les script shell... je verrai si je fais pas la meme chose dans le tuto sur Pysiril tiens... 2
sunday Posté 14 février 2022 Auteur Posté 14 février 2022 Une remarque de détail.. Avec l'ancienne version : https://www.webastro.net/applications/core/interface/file/attachment.php?id=190610&key=f037cbd36ba3c264c256e137767c21c5 J'ai placé le fichier genseqscript dans un répertoire que j'ai nommé "ScriptSell" donc autre que le répertoire de travail et je lance le pgm par une commande batch : Powershell.exe -executionpolicy unrestricted -File C:\Users\Marc\Desktop\dossierTravailSiril\ScriptShell\genseqscript.ps1 "fmedian 3 1" "C:\Users\Marc\Desktop\dossierTravailSiril\light_.seq" med_3_1_ fits Je trouve plus pratique d'avoir le pgm "ps1" hors du dossier de travail des images. On peut par inadvertance supprimer le pgm en supprimant des images par exemple... La commande "bat" facilite aussi (double clic pour exécuter). Il me semble qu'avec la nouvelle version en ligne, le fichier genseqscipt.ps1 doit nécessairement se trouver dans répertoire de travail de Siril pour qu'il fonctionne. C'est vraiment du détail....
Cissou8 Posté 14 février 2022 Posté 14 février 2022 (modifié) Ah oui, effectivement, j'avais oublie un bout de chemin lorsque je teste pour l'existence du premier light (je l'avais bien fait en bash....un comble!). Je fais une modif et elle sera en ligne sous peu est en ligne. La, ca marchera peu importe ou se trouve le ps1. Il faut toutefois dans ce cas envoyer le chemin complet vers le .seq Si tu aimes bien les .bat, tu peux meme te faire un petit dossier (j'ai mis dans C:\Astro\SirilShell\, j'aime pas ranger des trucs sur le bureau, ca fait tjs des histoires avec les droits d'ecriture) dans lequel tu ranges le .ps1 et plusieurs .bat dans ce genre: Powershell.exe -executionpolicy unrestricted -File C:\Astro\SirilShell\genseqscript.ps1 "fmedian 3 1" %1 med_3_1_ pause Tu le sauves par exemple en fmedian_3_1.bat Il te suffit ensuite de tirer le .seq de ton choix sur son icone. Ca permet de pas se conformer a un emplacement unique pour le .seq Et tu peux t'en faire autant que tu veux en variant les commandes. Par exemple un autre avec une commande rotate de 90deg: Powershell.exe -executionpolicy unrestricted -File C:\Astro\SirilShell\genseqscript.ps1 "rotate 90 -nocrop" %1 rot90_ pause que tu sauves en rotate90.bat, etc etc.... Modifié 14 février 2022 par Cissou8 1
sunday Posté 14 février 2022 Auteur Posté 14 février 2022 il y a 29 minutes, Cissou8 a dit : Je fais une modif et elle sera en ligne sous peu. OK, merci beaucoup.. il y a 29 minutes, Cissou8 a dit : Il te suffit ensuite de tirer le .seq de ton choix sur son icone. Ca permet de pas se conformer a un emplacement unique pour le .seq Génial. Je viens d'essayer et c'est vrai ...... c'est encore plus pratique. il y a 33 minutes, Cissou8 a dit : Et tu peux t'en faire autant que tu veux en variant les commandes. C'est ce que je fais pour avoir une sorte de bibliothèque de commandes du genre: fmedian_3_1 ; fmedian_5_1 ; rot_90, etc.. Pour moi c'est Top. il y a 49 minutes, Cissou8 a dit : elle sera en ligne sous peu est en ligne. Et bien, quelle rapidité😃 Je fais la modif de suite et j'étend ma bibliothèque de cmd. Encore merci.
Messages recommandés