4# --------------------------------------------------------------------------------------------
 
    6# Auxiliary script to convert csv files from input-tables to input files.
 
    8# --------------------------------------------------------------------------------------------
 
   10if [ -z $JPP_DIR ]; then
 
   11    echo "Variable JPP_DIR undefined."
 
   15source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   20set_variable  WORKDIR        ${TMPDIR:-/tmp}
 
   23    usage "$script <directory> <detector identifier>"\
 
   24          "\nThe directory corresponds to the GIT repository \"calibration/input-tables\""
 
   28    fatal "Wrong number of arguments."
 
   34if [[ ! -d $DIR/data/${DETOID} ]]; then
 
   35    fatal "No directory $DIR/data/${DETOID}"
 
   49    if [[ -f $TRIPOD_CSV ]]; then
 
   51        printf "# Data from %s\n" ${TRIPOD_CSV:t}                >  $TRIPOD_TXT
 
   52        egrep -v "^#" $TRIPOD_CSV  |  tail -n +2  |  tr ',' ' '  >> $TRIPOD_TXT
 
   57# Create hydrophone file.
 
   67    if [[ -f $HYDROPHONE_CSV ]]; then
 
   69        egrep -v "^#" $HYDROPHONE_CSV  |  tail -n +2  |  tr ',' ' '  >  $WORKDIR/hydrophones.txt
 
   71        printf "# Data from %s\n" ${HYDROPHONE_CSV:t}                >  $HYDROPHONE_TXT
 
   73        while read -A BUFFER; do
 
   75            set_variable STRING     $BUFFER[1]
 
   76            set_variable FLOOR      $BUFFER[2]
 
   77            set_variable X          $BUFFER[3]
 
   78            set_variable Y          $BUFFER[4]
 
   79            set_variable ANGLE_DEG  $BUFFER[5]
 
   80            set_variable Z          $BUFFER[6]
 
   85            let "CT = cos($ANGLE_DEG * $PI / 180.0)"
 
   86            let "ST = sin($ANGLE_DEG * $PI / 180.0)"
 
   88            let "X1 = $ST * $X0  +  $CT * $Y0"
 
   89            let "Y1 = $CT * $X0  -  $ST * $Y0"
 
   91            printf "%4d %2d %6.2f %6.2f %6.2f\n" $STRING $FLOOR $X1 $Y1 $Z  >>  $HYDROPHONE_TXT
 
   93        done < $WORKDIR/hydrophones.txt
 
   95        rm -f  $WORKDIR/hydrophones.txt
 
  100# Create transmitter file.
 
  103# \param  2    output file
 
  105function transmitter()
 
  110    if [[ -f $TRANSMITTER_CSV ]]; then
 
  112        egrep -v "^#" $TRANSMITTER_CSV  |  tail -n +2  |  tr ',' ' '  >  $WORKDIR/transmitters.txt
 
  114        printf "# Data from %s\n" ${TRANSMITTER_CSV:t}                >  $TRANSMITTER_TXT
 
  116        while read -A BUFFER; do
 
  118            set_variable ID         $BUFFER[1]
 
  119            set_variable STRING     $BUFFER[2]
 
  120            set_variable FLOOR      $BUFFER[3]
 
  121            set_variable X          $BUFFER[4]
 
  122            set_variable Y          $BUFFER[5]
 
  123            set_variable ANGLE_DEG  $BUFFER[6]
 
  124            set_variable Z          $BUFFER[7]
 
  129            let "CT = cos($ANGLE_DEG * $PI / 180.0)"
 
  130            let "ST = sin($ANGLE_DEG * $PI / 180.0)"
 
  132            let "X1 = $ST * $X0  +  $CT * $Y0"
 
  133            let "Y1 = $CT * $X0  -  $ST * $Y0"
 
  135            printf "%2d %4d %2d %6.2f %6.2f %6.2f\n" $ID $STRING $FLOOR $X1 $Y1 $Z  >>  $TRANSMITTER_TXT
 
  137        done < $WORKDIR/transmitters.txt
 
  139        rm -f  $WORKDIR/transmitters.txt
 
  144# Create waveform file.
 
  147# \param  2    output file
 
  154    if [[ -f $WAVEFORM_CSV ]]; then
 
  156        egrep -v "^#" $WAVEFORM_CSV  |  tail -n +2  |  tr ',' ' '  >  $WORKDIR/waveforms.txt
 
  158        printf "# Data from %s\n" ${WAVEFORM_CSV:t}                >  $WAVEFORM_TXT
 
  160        while read -A BUFFER; do
 
  162            set_variable WAVEFORM_ID  $BUFFER[1]
 
  163            set_variable EMITTER_ID   $BUFFER[2]
 
  165            printf "%3d %3d\n" $WAVEFORM_ID $EMITTER_ID  >>  $WAVEFORM_TXT
 
  167        done < $WORKDIR/waveforms.txt
 
  169        rm -f  $WORKDIR/waveforms.txt
 
  174# Create mechanics file.
 
  176# \param  1    detector identifier
 
  177# \param  2    output file
 
  183    if   [[ $1 =~ ORC ]]; then
 
  185        cat>$MECHANICS_TXT<<EOF
 
  189    elif [[ $1 =~ ARC ]]; then
 
  191        cat>$MECHANICS_TXT<<EOF
 
  195        fatal "Invalid detector identifier $1."
 
  200# Create sound velocity file.
 
  202# \param  1    detector identifier
 
  203# \param  2    output file
 
  205function sound_velocity()
 
  207    SOUND_VELOCITY_TXT=$2
 
  209    if   [[ $1 =~ ORC ]]; then
 
  211        cat>$SOUND_VELOCITY_TXT<<EOF
 
  2121538.00 -17e-3 -2000.00
 
  214    elif [[ $1 =~ ARC ]]; then
 
  216        cat>$SOUND_VELOCITY_TXT<<EOF
 
  2171541.00 -17e-3 -2000.00
 
  220        fatal "Invalid detector identifier $1."
 
  225# Create disable file.
 
  227# \param  1    detector identifier
 
  228# \param  2    output file
 
  234    cat>$DISABLE_TXT<<EOF
 
  235#list of bad transmissions
 
  240# Create trigger parameters file.
 
  242# \param  1    detector identifier
 
  243# \param  2    output file
 
  245function trigger_parameters()
 
  247    TRIGGER_PARAMETERS_TXT=$2
 
  249    cat>$TRIGGER_PARAMETERS_TXT<<EOF
 
  257# Create fit parameters file.
 
  259# \param  1    detector identifier
 
  260# \param  2    output file
 
  262function fit_parameters()
 
  264    FIT_PARAMETERS_TXT=$2
 
  266    cat>$FIT_PARAMETERS_TXT<<EOF
 
  277tripod               $DIR/data/${DETOID}/${DETOID}_tripods.csv       tripod.txt
 
  278hydrophone           $DIR/data/${DETOID}/${DETOID}_hydrophones.csv   hydrophone.txt
 
  279transmitter          $DIR/data/${DETOID}/${DETOID}_transmitters.csv  transmitter.txt
 
  280waveform             $DIR/data/${DETOID}/${DETOID}_waveforms.csv     waveform.txt
 
  281mechanics            ${DETOID}                                       mechanics.txt 
 
  282sound_velocity       ${DETOID}                                       sound_velocity.txt 
 
  283disable              ${DETOID}                                       disable.txt 
 
  284trigger_parameters   ${DETOID}                                       acoustics_trigger_parameters.txt
 
  285fit_parameters       ${DETOID}                                       acoustics_fit_parameters.txt