Aller au contenu

Appli renommer en masse fichiers avec infos du header


Messages recommandés

Posté

Bonjour.

Existe-t-il une appli qui permet de renommer en masse des fichiers d'acquisition en fonction du contenu du FITS header?

Ex: <nom cible><date><Bin><tpspause><t°C><filtre>><n°>.FITS

Merci d'avance.

Eric

 

Posté (modifié)

Une ébauche de petit script, plus unix-like que windows-like, qui utilise bash et astropy :

#!/bin/bash
#
# renommage de fichiers en fonction du contenu du fits
#
# renomme tous les fichiers du repertoire courant
#
# utilise fitsheader de astropy
# 
# le 5 dans ... printf "%.5s",$2 ... 
# limite le nombre de caracteres a 5. Modifiable.
#
# donner les headers fis sur la ligne de commande :
# par exemple :
#
# renomme.fits FOCALLEN CCD-TEMP
# en sortie :
#
#   mv Flat_20181024_165040.fits Flat_20181024_165040_3910_-41.6.fits
#   mv Flat_20181024_165051.fits Flat_20181024_165051_3910_-41.6.fits
#   mv Flat_20181024_165101.fits Flat_20181024_165101_3910_-41.6.fits
#   mv flum_20181004_173446.fits flum_20181004_173446_3910_-44.1.fits
#   mv ugc12613_20180929_214346.fits ugc12613_20180929_214346_3910_-43.8.fits
#   mv ugc12613_20180929_214950.fits ugc12613_20180929_214950_3910_-43.8.fits
#   mv ugc12613_20180929_215159.fits ugc12613_20180929_215159_3910_-43.5.fits

HEADERS=/tmp/headers

for fichier in $(ls *.fits); do
    fitshdr $fichier >$HEADERS
    basename=$(basename $fichier .fits)
    data=$basename
    for i in $@; do
        data=$data"_"$(grep "$i" $HEADERS |sed 's/ //g' |awk -F= '{printf "%.5s",$2}' |awk -F/ '{print $1}')
    done
    echo mv $fichier $data.fits
    #
    # decommenter la ligne suivante  pour rendre le renommage effectif
    # mv $fichier $data.fits
done

Si ça intéresse du monde, on peut le raffiner pas mal (mais, d'un point de vue général,  je pense que dupliquer les entetes fits

dans le nom de fichier est une fausse bonne idée)

 

(renommage + quelques simplifications ; si des windowsiens testent, je suis preneur d'un retour, je n'ai jamais testé bash (le langage du script) sous windows)

 

renomme.bash

Modifié par euldulle

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.