⚡ création d'un script de batch
This commit is contained in:
parent
47273beee5
commit
cc5abf6215
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}`,
|
||||||
|
|
|
@ -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"
|
Loading…
Reference in New Issue