#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         R E D U C T I O N   8 x 8   D ' U N E   S E Q U E N C E   E N   V R A I E S   C O U L E U R S  :                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#         $xci/reduction_64$Z <sequenceA> <imageR> [<premiere> [<pas> [<moyenne> [<maximum>]]]]                                       #
#         $xci/reduction_64$Z <sequenceA> <imageR> [<premiere> [<derniere> [<moyenne> [<maximum> [<dilater> [<pr_der> [<Wait>]]]]]]]  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xci/reduction_64$Z' :                                                                                           #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set                 sequenceA=$1
set                 imageR=$2
set                 premiere=$3

#19961210114817____:set                 pas=$4                                                                                        #
set                 derniere=$4
                                        # Le passage de 'pas' a 'derniere' a ete effectue le 19961210114817.                          #

set                 moyenne=$5
set                 maximum=$6
set                 dilater=$7

set                 premiere_derniere=$8
                                        # Introduit le 20000523092915 ('v $xci/reduction.01$I 20000523092915').                       #

set                 attendre=$9
                                        # Introduit le 20011112114927.                                                                #

setArgum            premiere                      1

if                  ($?pas == $EXIST) then
                    if                  ("$pas" == "$K_VIDE") then
                                        set                 pas=2
                    else
                    endif
else
endif

if                  ($?derniere == $EXIST) then
                    if                  ("$derniere" == "$K_VIDE") then
                                        set                 derniere=128
                    else
                    endif
else
endif

setArgum            moyenne                       VRAI

setArgum            maximum                       VRAI

setArgum            dilater                       FAUX
                                        # Cette option a ete introduite le 19990408154414.                                            #

if                  ("$premiere_derniere" == "$K_VIDE") then
#20070824154529____:                    set                 premiere_derniere=FAUX                                                    #
                    set                 premiere_derniere=VRAI
                                        # Cette option a ete introduite le 20000523092915.                                            #
else
endif

setArgum            attendre                      VRAI
                                        # Cette option a ete introduite le 20011112114927.                                            #

if                  ($?pas == $EXIST) then
                    set                 descripteur="premiere=$premiere pas=$pas calculer=FAUX"
else
endif

if                  ($?derniere == $EXIST) then
                    set                 reduites=64

                    if                  ($derniere >= $premiere) then
                                        # Test rajoute le 20000720163946 ('v $xci/reduction.02$I 20000720163946').                    #
                                        @                   nombre = $derniere - $premiere
                                        # Cas de l'ordre direct (derniere >= premiere).                                               #
                    else
                                        @                   nombre = $premiere - $derniere
                                        # Cas de l'ordre inverse (derniere < premiere).                                               #
                    endif

                    @                   nombre = $nombre + 1

                    if                  ($nombre < $reduites) then
                                        EROR                "Il peut y avoir confusion entre 'pas' et 'derniere',"
                                        EROR                "a moins que le mode 'modulo' des numeros d'images soit utilise."

                                        set                 Calculer="calculer=FAUX pas=1 modulo=VRAI"
                    else
                                        set                 Calculer="calculer=VRAI modulo=FAUX premiere_derniere=$premiere_derniere"
                    endif

                    set                 descripteur="premiere=$premiere derniere=$derniere $Calculer"
                                        # L'option '$Calculer' a ete ajoutees a cause de 'v $xci/reduction.02$I 20000421105653',      #
                                        # sachant qu'il est difficile (en meme temps que logique) de faire autre chose que "pas=1"    #
                                        # dans le cas des utilisations "modulo" des numeros d'images...                               #
else
endif

if                  ("$attendre" == "VRAI") then
                    set                 descripteur="$descripteur"" Attendre=VRAI"
                                        # L'attente sur image inexistante (option "Attendre=VRAI") a ete introduite le 19970211181457 #
                                        # afin de permettre la parallelisation d'un calcul de sequence d'images, puis ensuite leur    #
                                        # reduction, ce qui ne peut que se faire sequentiellement ; une seule machine doit donc la    #
                                        # faire et elle doit donc attendre que les autres aient fini leur calcul, d'ou cette option.  #
                                        # On verra avec interet la sequence :                                                         #
                                        #                                                                                             #
                                        #                   xivPdf 11 1 / 020117_020250                                               #
                                        #                                                                                             #
                                        # qui fut la premiere a exploiter cette possibilite...                                        #
else
                    set                 descripteur="$descripteur"" Attendre=FAUX CAL1=FAUX"
                                        # Ceci a ete introduit le 20011112114927 afin de permettre en particulier l'existence de      #
                                        # sequences d'images incompletes...                                                           #
endif

set                 Options="$K_VIDE"
set                 Options="$Options ""moyenne=$moyenne maximum=$maximum dilater=$dilater"
set                 Options="$Options ""tous_niveaux=VRAI dilatation_carree=VRAI"
set                 Options="$Options ""points=121"
                                        # On pourra, si besoin est, utiliser l'option 'points=' et augmenter la valeur par defaut     #
                                        # dans 'v $xci/reduction_64$K DIMENSION_DILATATION' (81), afin d'ameliorer la generation      #
                                        # des fichiers '$MPEG' dans 'v $xiMo/creation$Z' car, finalement, les images de type '$R64'   #
                                        # ne servent pratiquement qu'a cela... Le 20000622092811 un noyau circulaire de 225 points    #
                                        # a ete essaye ; malheureusement, cela conduisait a des temps de calcul trop important. Le    #
                                        # 20000626125551, un noyau carre de 121 points a ete mis en place...                          #

execRVB             $xci/reduction_64$X                                                                                                 \
                                        A=$sequenceA                                                                                    \
                                        $descripteur                                                                                    \
                                        postfixe=%s                                                                                     \
                                        $Options                                                                                        \
                                        R=$imageR$R64%s                                                                                 \
                                                                                                                        $formatI
                                        # Et reduction des trois composantes en parallele si possible...                              #



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.