gelinive

Créer des profils du manteau neigeux - retour accueil

git clone git://bebou.netlib.re/gelinive
Log | Files | Refs | README |

gelinivetest (1833B)


      1 #! /bin/sh
      2 
      3 t=$(date +"%a %d/%m/%Y")
      4 help="no"
      5 while getopts "ht:f:c:" opt; do
      6 	case $opt in
      7 		t | f | c)
      8 			[ ! -z "$OPTARG" ] && eval "$opt='$OPTARG'" ;;
      9 		h | \?)
     10 			help="yes" ;;
     11   esac
     12 done
     13 
     14 if [ $help = "yes" ]
     15 then
     16 <<. cat
     17 Utilisation : [< fichier_profil] gelinive [-t titre_du_graph] [-f fichier_tableau]  [-c fichier_température]
     18 
     19 Le fichier_profil, seule donnée nécessaire pour que gelinive produise un
     20 graphique, doit être passé via stdin. Si aucun fichier n'est donné gelinive
     21 lira les données entrées au clavier.
     22 
     23 Si fichier_température est omis le grah généré n'aura pas de courbe de
     24 température.
     25 
     26 Si titre_du_graph est omis le graph généré aura pour titre la date du jour sous
     27 le format "jour_de_la_semaine dd/mm/yyyy".
     28 
     29 fichier_tableau est le chemin du fichier à créer contenant les données d'entrée
     30 complétées de l'enfoncement après n coups, de la résistance au battage et de la
     31 hauteur au-dessus du sol. S'il n'existe pas aucun fichier ne sera créé.
     32 .
     33 exit 0
     34 fi
     35 
     36 # Calcule les variables R e et H et les ajoute à la fin de change ligne
     37 calc_R_e_H() {
     38 awk -vH="$1" -vOFS='\t' '
     39 {
     40 q=$1;P=$2;n=$3;h=$4;e=$5;d=e-olde
     41 H=H-(olde-volde)
     42 if(d!=0) { R=int(n*h/d+q+P) } else { R="/" }
     43 print $0,d,R,H
     44 volde=olde;olde=e
     45 }'
     46 }
     47 
     48 tempdir=$(mktemp -d);trap "rm -rf $tempdir" EXIT # Dossier temporaire dans lequel bosser
     49 cat > $tempdir/profil                         # On stocke les données dans un fichier
     50 
     51 topheight=$(tail -n1 $tempdir/profil | cut -f5) # On récupère le dernier champ de la dernière ligne
     52 < $tempdir/profil calc_R_e_H $topheight |       # On met dans stdin de la fonction les données, en argument la hauteur
     53 	tee "$f" 2> /dev/null |                     # On stocke le résultat dans un fichier, si l'argument existe
     54 	./geliniveplot "$t" "$c" 2> /dev/null       # On créé le graph
     55