Script de pré-traitement
-
- Messages : 1269
- Enregistré le : 20 juin 2009, 01:01
Re: Script de pré-traitement
Je ne suis pas sûr de bien comprendre ton besoin.
La commande INCLUDESCRIPT permet d'appeler dans un script d'autres scripts. La seule contrainte c'est que ces scripts appelés via INCLUDESCRIPT soient tous dans un seul et même répertoire qui est configuré dans Prism.
Cette possibilité est intéressante quand tu écris plusieurs scripts, qui vont utiliser des traitements communs. Tu mets dans un "sous-script" le traitement commun et dans chacun des scripts, tu appelles le traitement commun via INCLUDESCRIPT.
Maintenant, dans ta question, tu parles de dossier. Mais je ne comprends pas bien ce que tu mets dans tes dossiers.
Ton script fait du prétraitement et du renommage.
Donc tu as un ou plusieurs répertoires qui vont contenir les fichiers maitres pour l'Offset, le Dark (Noir) et le Flat (PLU).
Puis tu auras a priori un ou plusieurs répertoires pour tes images à traiter.
Si ton idée est de dupliquer ton script juste pour changer le répertoire le répertoire de travail, ce n'est pas très intéressant.
Dans ce cas, autant ajouter à ton script une interface utilisateur dans laquelle tu vas pouvoir indiquer à ton script le répertoire de travail à utiliser.
Marc
La commande INCLUDESCRIPT permet d'appeler dans un script d'autres scripts. La seule contrainte c'est que ces scripts appelés via INCLUDESCRIPT soient tous dans un seul et même répertoire qui est configuré dans Prism.
Cette possibilité est intéressante quand tu écris plusieurs scripts, qui vont utiliser des traitements communs. Tu mets dans un "sous-script" le traitement commun et dans chacun des scripts, tu appelles le traitement commun via INCLUDESCRIPT.
Maintenant, dans ta question, tu parles de dossier. Mais je ne comprends pas bien ce que tu mets dans tes dossiers.
Ton script fait du prétraitement et du renommage.
Donc tu as un ou plusieurs répertoires qui vont contenir les fichiers maitres pour l'Offset, le Dark (Noir) et le Flat (PLU).
Puis tu auras a priori un ou plusieurs répertoires pour tes images à traiter.
Si ton idée est de dupliquer ton script juste pour changer le répertoire le répertoire de travail, ce n'est pas très intéressant.
Dans ce cas, autant ajouter à ton script une interface utilisateur dans laquelle tu vas pouvoir indiquer à ton script le répertoire de travail à utiliser.
Marc
-
- Messages : 154
- Enregistré le : 04 mars 2021, 15:23
Re: Script de pré-traitement
Oubliez ce que j'ai dit à propos de "INCLUDESCRIPT". Maintenant, je n'ai plus qu'un seul script, avec tout ce que je veux, que je peux appliquer à un dossier.
Mais est-il possible d'appliquer ce script à n'importe quel dossier sans intervention ?
Voir l'image du dossier principal, avec les sous-dossiers.
Et voici le code complet pour l'instant pour 1 dossier.
(L'ini-dir ne correspond en effet pas à l'image, mais l'image est à titre d'exemple uniquement.)
Que pensez-vous est le meilleur? 1 grand dossier avec toutes les images qui sont ensuite placées dans un dossier correct par le script ?
Ce sont des dossiers contenant des sous-dossiers.
ou similaire ci-dessus et commencez avec déjà une subdivision faite par PRISM Automatisering.
Mais est-il possible d'appliquer ce script à n'importe quel dossier sans intervention ?
Voir l'image du dossier principal, avec les sous-dossiers.
Et voici le code complet pour l'instant pour 1 dossier.
(L'ini-dir ne correspond en effet pas à l'image, mais l'image est à titre d'exemple uniquement.)
Code : Tout sélectionner
REM PREPROCESS Script 20221024_V00.6
Now year month day hour minute second millisecond
PRINT "MASTER SCRIPT (20221024_V00.6)"
PRINT "Current date " Year "/" Month "/" Day
PRINT "at " hour ":" minute ":" Second "," millisecond "( Universal Time ! )"
PRINT "###### Automated rename has started. ######"
REM DIR_INI IMPORTANCE!
///////////////////////////////////////////////////////////////////////////////
dir_ini$="E:\OBSERVATION DATA\STILL TO PROCEED\M09_Opglabbeek\OBS_SERVER\"
//////////////////////////////////////////////////////////////////////////////
filtre$="*.fits"
GETREPDIR dir_ini$ filtre$ sAFileList$ nImageCount
For nImage=1 nImageCount
OPEN Img sAFileList[nImage]$
extractfilename sAFileList[nImage]$ oldname$
extractfilepath sAFileList[nImage]$ path$
PRINT "- - - - - - ! NEW IMAGE SELECTING ! - - - - - -"
PRINT sAFileList[nImage]$
REM EXTRACT FITS DATA AND RENAME
GetDate Img Yr Mo day
STR Yr Yr$
IF Yr<10
Yr$="0"+Yr$
ENDIF
STR Mo Mo$
IF Mo<10
Mo$="0"+Mo$
ENDIF
STR day day$
IF day<10
day$="0"+day$
ENDIF
Print "OBSERVATION DATE (UTC): " Yr$ "" Mo$ "" day$ ""
GetTime Img HR MM SS MS
STR HR HR$
IF HR<10
HR$="0"+HR$
ENDIF
STR MM MM$
IF MM<10
MM$="0"+MM$
ENDIF
STR SS SS$
IF SS<10
SS$="0"+SS$
ENDIF
Print "OBSERVATION TIME (UTC): " HR$ "h" MM$ "m" SS$ "s"
GETOBJECTNAME Img Name$
PRINT "Observed Object is " Name$ "."
GetExpTime Img ExpTime
ExpTime = ExpTime/1000
PRINT "Exposure time of the image is " ExpTime " seconds."
STR ExpTime Exp$
GetTCCD Img Temp
PRINT "Actual CCD temperature is " Temp "DEGC."
STR Temp Tmp$
GetFILTER Img Filter$
PRINT "Used filter is " Filter$ "."
STR nImage sCounter$
IF nImage<10
sCounter$="00"+sCounter$
ELSE
IF nImage<100
sCounter$="0"+sCounter$
ENDIF
ENDIF
newname$=""+Yr$+""+Mo$+""+day$+"_"+HR$+""+MM$+""+SS$+"_"+Name$+"_"+Exp$+"S_"+Tmp$+"DEGC_"+Filter$+"_1X1_M09_"+sCounter$+""
PRINT newname$
Rename path$+oldname$ path$+newname$+".fits"
PRINT "###### Automated substraction has started. ######"
GetExpTime Img ExpTime
ExpTime = ExpTime/1000
PRINT "Exposure time of the image is " ExpTime " seconds."
STR ExpTime Exp$
REM START PREPROCESS - LOAD CURRENT MASTERS -
MASTER_dir$="E:\OBSERVATION DATA\Additional files\CCD Calibration files\Current files\M09\FLI ML3200ME\"
ImageMB$=MASTER_dir$+"20220430_MB_0.1S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
ImageMF$=MASTER_dir$+"20221009_MF_2.4S_-35DEGC_SDSS_R'2_ESHRCC_1MHZ_1X1_MEAN_M09.fits"
MD30$=MASTER_dir$+"20220430_MD_30S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD60$=MASTER_dir$+"20220430_MD_60S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD90$=MASTER_dir$+"20220430_MD_90S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD120$=MASTER_dir$+"20220430_MD_120S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD150$=MASTER_dir$+"20220430_MD_150S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD180$=MASTER_dir$+"20220430_MD_180S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD210$=MASTER_dir$+"20220430_MD_210S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD240$=MASTER_dir$+"20220430_MD_240S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD270$=MASTER_dir$+"20220430_MD_270S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
MD300$=MASTER_dir$+"20220430_MD_300S_-35DEGC_1MHZ_1X1_MEAN_M09.fits"
IF ExpTime<45
ImageMD$=MD30$
ELSE
IF ExpTime<75
ImageMD$=MD60$
ELSE
IF ExpTime<105
ImageMD$=MD90$
ELSE
IF ExpTime<135
ImageMD$=MD120$
ELSE
IF ExpTime<165
ImageMD$=MD150$
ELSE
IF ExpTime<195
ImageMD$=MD180$
ELSE
IF ExpTime<225
ImageMD$=MD210$
ELSE
IF ExpTime<255
ImageMD$=MD240$
ELSE
IF ExpTime<285
ImageMD$=MD270$
ELSE
ImageMD$=MD300$
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
PRINT "Used MASTERDARK is " ImageMD$ "."
OPEN ImgMB ImageMB$
OPEN ImgMF ImageMF$
OPEN ImgMD ImageMD$
PREPROCESS Img ImgMB ImgMD ImgMF 1
dir_m$=path$+"PreProcess"
CreateDir dir_m$
PreProcess$=path$+"PreProcess\"
savefit Img PreProcess$+"P_"+newname$
CLOSE Img
next nImage
REM SAVE CURRENT MASTERS.
PRINT "Saving used MASTERS"
ExtractFileName ImageMB$ MBName$
savefit ImgMB path$+MBName$
PRINT MBName$
ExtractFileName ImageMD$ MDName$
savefit ImgMD path$+MDName$
PRINT MDName$
ExtractFileName ImageMF$ MFName$
savefit ImgMF path$+MFName$
PRINT MFName$
CLOSE ImgMB
CLOSE ImgMD
CLOSE ImgMF
PRINT "###### Automated SkyBackGround Gradient Substratcion has started. ######"
REM AUTO SELECTING FILES
dir_sky$=dir_ini$+"PreProcess"
filtre$="*.fits"
GETREPDIR dir_sky$ filtre$ sAFileList$ nImageCount
For nImage=1 nImageCount
OPEN Img sAFileList[nImage]$
extractfilename sAFileList[nImage]$ newname$
extractfilepath sAFileList[nImage]$ path$
PRINT sAFileList[nImage]$
DEFLAT_SKY_BKGND Img 32148 2
dir_skyb$=dir_ini$+"SkyBack"
CreateDir dir_skyb$
SkyBack$=dir_ini$+"SkyBack\"
savefit Img SkyBack$+"S_"+newname$
CLOSE Img
next nImage
end
Ce sont des dossiers contenant des sous-dossiers.
ou similaire ci-dessus et commencez avec déjà une subdivision faite par PRISM Automatisering.
-
- Messages : 1269
- Enregistré le : 20 juin 2009, 01:01
Re: Script de pré-traitement
Salut,
Solution 1:
Tu ajoutes dans ton script une interface utilisateur pour permettre la sélection d'un répertoire des images à traiter.
Solution 2:
Tu mets en place une structure de dossiers qui permet de faire le choix automatiquement.
Exemple:
.\Working_Directory\
.\Working_Directory\To_be_processed\
.\Working_Directory\Object_1\
.\Working_Directory\Object_2\
.\Working_Directory\Object_3\
Dans le répertoire To_be_processed tu mets tes images brutes que ton script va traiter.
A la fin du traitement, les images brutes et les images traitées doivent être mises dans le répertoire Object_1 pour l'objet 1, dans le répertoire Object_2 pour l'objet 2 et ainsi de suite.
Marc
Tu n'as à mon avis que 2 solutions:Dekelver Pieter-Jan a écrit : ↑24 oct. 2022, 21:24 Mais est-il possible d'appliquer ce script à n'importe quel dossier sans intervention ?
Solution 1:
Tu ajoutes dans ton script une interface utilisateur pour permettre la sélection d'un répertoire des images à traiter.
Solution 2:
Tu mets en place une structure de dossiers qui permet de faire le choix automatiquement.
Exemple:
.\Working_Directory\
.\Working_Directory\To_be_processed\
.\Working_Directory\Object_1\
.\Working_Directory\Object_2\
.\Working_Directory\Object_3\
Dans le répertoire To_be_processed tu mets tes images brutes que ton script va traiter.
A la fin du traitement, les images brutes et les images traitées doivent être mises dans le répertoire Object_1 pour l'objet 1, dans le répertoire Object_2 pour l'objet 2 et ainsi de suite.
Marc
-
- Messages : 154
- Enregistré le : 04 mars 2021, 15:23
Re: Script de pré-traitement
Merci beaucoup. J'ai en fait complètement révisé mon script et ça marche maintenant ! J'ai toutes les images placées dans 1 dossier tout en observant. Après le script, chaque image est dans le bon dossier etc etc. Le seul truc c'est que la numérotation continue dans les dossiers, mais bon, pas de problème.
À la fin du script, un fichier bat est ouvert qui déplace toutes les images de ce dossier vers un serveur.
Le seul problème que j'ai encore est que j'essaie de m'assurer que les masters ne sont pas enregistrés dans le dossier à chaque fois. J'essaie d'utiliser la fonction fileexist, mais cela ne fonctionne tout simplement pas très bien. "IF - ELSE - ENDIF"
Je soupçonne une transition de Boolean à Variable ou Integer quelque part ....
Voici ce morceau de code :
À la fin du script, un fichier bat est ouvert qui déplace toutes les images de ce dossier vers un serveur.
Le seul problème que j'ai encore est que j'essaie de m'assurer que les masters ne sont pas enregistrés dans le dossier à chaque fois. J'essaie d'utiliser la fonction fileexist, mais cela ne fonctionne tout simplement pas très bien. "IF - ELSE - ENDIF"
Je soupçonne une transition de Boolean à Variable ou Integer quelque part ....
Voici ce morceau de code :
Code : Tout sélectionner
ExtractFileName ImageMB$ MBName$
CheckMB$=path$+foldername$+"\"+MBName$
FileExists CheckMB$ YesNo$
If YesNo$="Yes" then
savefit ImgMB path$+foldername$+"\"+MBName$
PRINT CheckMB$
PRINT "ImageMB file does not exists: saved to object directory"
Else
"PRINT "ImageMB file exists"
ENDIF
PRINT MBName$
-
- Messages : 1269
- Enregistré le : 20 juin 2009, 01:01
Re: Script de pré-traitement
Tu as une coquille sur la fonction FileExists, elle retourne un boolean, pas une string:
Marc
Code : Tout sélectionner
FILEEXISTS UserFullFilename$ YesNo
IF YesNo=FALSE
// File is NOT existing
ELSE
// File is existing
ENDIF
-
- Messages : 154
- Enregistré le : 04 mars 2021, 15:23
Re: Script de pré-traitement
Mais bien sûr... Stupide de ma part. Merci.
Tout fonctionne parfaitement maintenant !
Maintenant je peux lancer le script suivant : post-processing.
Tout fonctionne parfaitement maintenant !
Maintenant je peux lancer le script suivant : post-processing.
-
- Messages : 154
- Enregistré le : 04 mars 2021, 15:23
Re: Script de pré-traitement
Bonjour,
Quel est le code pour interroger de quel côté de la jetée se trouvait le télescope dans le "FITS HEADER"
Je ne le trouve pas dans le livre d'aide sur les scripts.
Je veux donc lire le pierside qui se trouve dans le "FITS HEADER". Est-ce possible?
Merci
Quel est le code pour interroger de quel côté de la jetée se trouvait le télescope dans le "FITS HEADER"
Je ne le trouve pas dans le livre d'aide sur les scripts.
Je veux donc lire le pierside qui se trouve dans le "FITS HEADER". Est-ce possible?
Merci
-
- Messages : 1269
- Enregistré le : 20 juin 2009, 01:01
-
- Messages : 154
- Enregistré le : 04 mars 2021, 15:23
Re: Script de pré-traitement
Merci! Mon miroir de télescope est actuellement mesuré, j'ai donc un peu de temps pour écrire des scripts.
Est-il aussi possible d'ajouter du texte à une image en mode script ? Cela aiderait encore beaucoup mon automatisation.
Est-il aussi possible d'ajouter du texte à une image en mode script ? Cela aiderait encore beaucoup mon automatisation.
-
- Messages : 1269
- Enregistré le : 20 juin 2009, 01:01
Re: Script de pré-traitement
Salut,
Marc
Regarde la fonctionDekelver Pieter-Jan a écrit : ↑05 nov. 2022, 17:29 Est-il aussi possible d'ajouter du texte à une image en mode script ?
Code : Tout sélectionner
WRITETEXT