création d'un script de batch

This commit is contained in:
Tykayn 2024-02-07 22:30:01 +01:00 committed by tykayn
parent 47273beee5
commit cc5abf6215
5 changed files with 42 additions and 19 deletions

View File

@ -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. 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à. 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` 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 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 ## 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. 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.

View File

@ -13,6 +13,8 @@
#folder="rouen/rouen_oct23" #folder="rouen/rouen_oct23"
function batch_exif_photos { function batch_exif_photos {
echo "# assemblage des infos exif en batch"
local min=$1 local min=$1
local max=$2 local max=$2
local folder=$3 local folder=$3
@ -34,6 +36,8 @@ function batch_exif_photos {
echo "batch_exif_photos: File $file does not exist." echo "batch_exif_photos: File $file does not exist."
fi fi
done done
echo "# fin des assemblages exif"
} }
batch_exif_photos $1 $2 $3 batch_exif_photos $1 $2 $3

View File

@ -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 startNumber
* @param endNumber * @param endNumber
*/ */

View File

@ -65,20 +65,20 @@ let dossier_assemblages_output = `${gopro_folder}/hugin_assemblages_script_outpu
let minmax = findMinMaxNumberOfPhotos(folder) let minmax = findMinMaxNumberOfPhotos(folder)
console.log('minmax', minmax) console.log('# minmax', minmax)
goproMin = minmax.min goproMin = minmax.min
goproMax = minmax.max goproMax = minmax.max
let countPhotos = ((goproMax)) - ((goproMin)); let countPhotos = ((goproMax)) - ((goproMin));
console.log('goproMax', goproMax) console.log('# goproMax', goproMax)
console.log('goproMin', goproMin) console.log('# goproMin', goproMin)
console.log('max - min', (goproMax) - (goproMin)) console.log('# max - min', (goproMax) - (goproMin))
console.log('la séquence', countPhotos, 'captures', (countPhotos / 60).toFixed(0), 'minutes'); 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 } { function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number } {
console.log('dirPath', dirPath) console.log('# dirPath', dirPath)
let minNumber: number = 0; let minNumber: number = 0;
let maxNumber: number = 0; let maxNumber: number = 0;
@ -123,13 +123,13 @@ function makeBashScriptHugin(minmax: any) {
let count_pto_made_files =0; let count_pto_made_files =0;
// in each increment of a pair of photos, build a pto referencing absolute paths // in each increment of a pair of photos, build a pto referencing absolute paths
// write the pto in output // 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) { 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( for (let ii: any = parseInt(minmax.min); ii <= parseInt(
@ -169,12 +169,12 @@ function makeBashScriptHugin(minmax: any) {
writeFile(ptoFileName, ptoContent) writeFile(ptoFileName, ptoContent)
count_pto_made_files++; count_pto_made_files++;
}else{ }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) { 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 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' '\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' + '\n' +
' bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax + ' ' + gopro_fusion_separated_photos_folder, ' 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##############\n' '\n##############\n'
) )
console.log('hugin_batch_command: \n', hugin_batch_command)
writeFile('hugin_executor_from_' + goproMin + '_to_' + goproMax + '.sh', scriptsContent); 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; let back_picture_name = absolutePath + '/GB' + currentNumber + '.' + extension_photo_source;
// console.log('front_picture_name', front_picture_name) // console.log('# front_picture_name', front_picture_name)
// console.log('back_picture_name', front_picture_name) // console.log('# back_picture_name', front_picture_name)
return ` return `
# hugin project file # 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) { 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( return fs.writeFile(
`${dossier_pto_output}/${fileName}`, `${dossier_pto_output}/${fileName}`,

View File

@ -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"