From cc5abf6215d9a6e149550621e98f9afa2c18cbda Mon Sep 17 00:00:00 2001 From: Tykayn Date: Wed, 7 Feb 2024 22:30:01 +0100 Subject: [PATCH] =?UTF-8?q?:zap:=20cr=C3=A9ation=20d'un=20script=20de=20ba?= =?UTF-8?q?tch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hugin-gopro-fusion/README.md | 6 +++++- hugin-gopro-fusion/exif_batch.sh | 4 ++++ hugin-gopro-fusion/find_min_max.ts | 2 +- hugin-gopro-fusion/main.ts | 33 +++++++++++++++--------------- hugin-gopro-fusion/suite.sh | 16 +++++++++++++++ 5 files changed, 42 insertions(+), 19 deletions(-) create mode 100644 hugin-gopro-fusion/suite.sh diff --git a/hugin-gopro-fusion/README.md b/hugin-gopro-fusion/README.md index 5d77d097..c7c20721 100644 --- a/hugin-gopro-fusion/README.md +++ b/hugin-gopro-fusion/README.md @@ -23,6 +23,7 @@ mkdir -p /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/PANORAMA Une fois que vous avez vos dossiers de séquences, lancez le script pour trouver le min et le max des photos dans un dossier de séquence en particulier, ce script vous donnera les commandes à lancer pour assembler les photos. Les scripts d'assemblage prennent garde à ne pas lancer hugin si le fichier d'assemblage existe déjà. +### Exemple Exemple de commande pour assembler un dossier que l'on aurait nommé "123" dans `INBOX_a_assembler` après avoir cloné ce dépot dans un dossier `/var/www/html/scripts` @@ -33,7 +34,10 @@ bash /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_PTO_hu bash /var/www/html/scripts/hugin-gopro-fusion/exif_batch.sh 16263 17261 INBOX_a_assembler/vovo_dec_2023/130 ``` -Cette commande vous donnera des fichiers dans le dossier +Cette commande vous donnera des fichiers assemblés dans le dossier `hugin_assemblages_script_output` +situé ici par défaut: + +`/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/hugin_assemblages_script_output` ## Descriptions Le script `main.ts` ne lit pas les photos, il va juste créer un fichier **.pto** pour `hugin` pour assembler chaque paire de photos `GB***` et `GF***`, ainsi qu'un script bash afin de lancer l'assemblage en masse. La configuration de ce script pour Hugin est définie en dur dans le script. Vous pouvez faire des essais d'assemblages dans Hugin et sauvegarder un pto, puis copier sa configuration dans le script main.ts pour changer mes configurations. diff --git a/hugin-gopro-fusion/exif_batch.sh b/hugin-gopro-fusion/exif_batch.sh index b4ada78c..0bdab73c 100755 --- a/hugin-gopro-fusion/exif_batch.sh +++ b/hugin-gopro-fusion/exif_batch.sh @@ -13,6 +13,8 @@ #folder="rouen/rouen_oct23" function batch_exif_photos { + echo "# assemblage des infos exif en batch" + local min=$1 local max=$2 local folder=$3 @@ -34,6 +36,8 @@ function batch_exif_photos { echo "batch_exif_photos: File $file does not exist." fi done + + echo "# fin des assemblages exif" } batch_exif_photos $1 $2 $3 diff --git a/hugin-gopro-fusion/find_min_max.ts b/hugin-gopro-fusion/find_min_max.ts index bd2c807b..f02ab0ab 100644 --- a/hugin-gopro-fusion/find_min_max.ts +++ b/hugin-gopro-fusion/find_min_max.ts @@ -128,7 +128,7 @@ function getFileNames(): string[] { /** - * déplacer des imageries assemblées en masse dans un dossier "à envoyer" + * déplacer des imageries assemblées en masse dans un dossier "à envoyer" * @param startNumber * @param endNumber */ diff --git a/hugin-gopro-fusion/main.ts b/hugin-gopro-fusion/main.ts index d0206a51..701031e0 100644 --- a/hugin-gopro-fusion/main.ts +++ b/hugin-gopro-fusion/main.ts @@ -65,20 +65,20 @@ let dossier_assemblages_output = `${gopro_folder}/hugin_assemblages_script_outpu let minmax = findMinMaxNumberOfPhotos(folder) -console.log('minmax', minmax) +console.log('# minmax', minmax) goproMin = minmax.min goproMax = minmax.max let countPhotos = ((goproMax)) - ((goproMin)); -console.log('goproMax', goproMax) -console.log('goproMin', goproMin) -console.log('max - min', (goproMax) - (goproMin)) -console.log('la séquence', countPhotos, 'captures', (countPhotos / 60).toFixed(0), 'minutes'); +console.log('# goproMax', goproMax) +console.log('# goproMin', goproMin) +console.log('# max - min', (goproMax) - (goproMin)) +console.log('# la séquence', countPhotos, 'captures', (countPhotos / 60).toFixed(0), 'minutes'); -console.log('mini_arguments', mini_arguments) +console.log('# mini_arguments', mini_arguments) /** @@ -87,7 +87,7 @@ console.log('mini_arguments', mini_arguments) */ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number } { - console.log('dirPath', dirPath) + console.log('# dirPath', dirPath) let minNumber: number = 0; let maxNumber: number = 0; @@ -123,13 +123,13 @@ function makeBashScriptHugin(minmax: any) { let count_pto_made_files =0; // in each increment of a pair of photos, build a pto referencing absolute paths // write the pto in output - console.log('makeBashScriptHugin: parseInt(minmax.min)', parseInt(minmax.min)) + console.log('# makeBashScriptHugin: parseInt(minmax.min)', parseInt(minmax.min)) - console.log('makeBashScriptHugin: gopro_fusion_separated_photos_folder', gopro_fusion_separated_photos_folder) + console.log('# makeBashScriptHugin: gopro_fusion_separated_photos_folder', gopro_fusion_separated_photos_folder) if (!disable_pto_write) { - console.log('makeBashScriptHugin: début de l\'écriture des fichiers PTO') + console.log('# makeBashScriptHugin: début de l\'écriture des fichiers PTO') } for (let ii: any = parseInt(minmax.min); ii <= parseInt( @@ -169,12 +169,12 @@ function makeBashScriptHugin(minmax: any) { writeFile(ptoFileName, ptoContent) count_pto_made_files++; }else{ - console.log('l écriture de fichiers PTO a été désactivée') + console.log('# l écriture de fichiers PTO a été désactivée') } } if (!disable_pto_write) { - console.log('fin de l\'écriture des '+count_pto_made_files+' fichiers PTO') + console.log('# fin de l\'écriture des '+count_pto_made_files+' fichiers PTO') } let hugin_batch_command = 'bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax @@ -186,13 +186,12 @@ function makeBashScriptHugin(minmax: any) { '\n' + hugin_batch_command + '\n' } - console.log('##############\n pour lancer le script : \n', 'bash /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_PTO_hugin/hugin_executor_from_' + goproMin + '_to_' + goproMax + '.sh', + console.log('# ##############\n# pour lancer le script : \n', 'bash /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_PTO_hugin/hugin_executor_from_' + goproMin + '_to_' + goproMax + '.sh', '\n' + ' bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax + ' ' + gopro_fusion_separated_photos_folder, '\n' + '\n##############\n' ) - console.log('hugin_batch_command: \n', hugin_batch_command) writeFile('hugin_executor_from_' + goproMin + '_to_' + goproMax + '.sh', scriptsContent); @@ -210,8 +209,8 @@ function makePto(absolutePath: string, currentNumber: string):string { let back_picture_name = absolutePath + '/GB' + currentNumber + '.' + extension_photo_source; - // console.log('front_picture_name', front_picture_name) - // console.log('back_picture_name', front_picture_name) + // console.log('# front_picture_name', front_picture_name) + // console.log('# back_picture_name', front_picture_name) return ` # hugin project file @@ -301,7 +300,7 @@ k i1 t1 p"252 628 484 351 745 156 1008 41 1121 2 1992 4 2289 127 2571 317 2769 5 function writeFile(fileName: string, fileContent: any) { - // console.log('write file', dossier_pto_output , fileName) + // console.log('# write file', dossier_pto_output , fileName) return fs.writeFile( `${dossier_pto_output}/${fileName}`, diff --git a/hugin-gopro-fusion/suite.sh b/hugin-gopro-fusion/suite.sh new file mode 100644 index 00000000..7aaf3a4c --- /dev/null +++ b/hugin-gopro-fusion/suite.sh @@ -0,0 +1,16 @@ +#!/bin/bash +echo "génération de fichier de batch" + +echo "" > /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/assemble_plusieurs_dossiers.sh +dossier_start=$1 +dossier_end=$2 + +for i in $(seq $dossier_start 1 $dossier_end) +do + echo "# dossier : $i" + ts-node /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/main.ts --goproSubFolder=INBOX_a_assembler/belgique/$i >> /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/assemble_plusieurs_dossiers.sh +done + +cat /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/assemble_plusieurs_dossiers.sh + +echo "ça c'est fait"