Jpp  debug
the software that should make you happy
input-tables.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 # --------------------------------------------------------------------------------------------
5 #
6 # Auxiliary script to convert csv files from input-tables to input files.
7 #
8 # --------------------------------------------------------------------------------------------
9 
10 if [ -z $JPP_DIR ]; then
11  echo "Variable JPP_DIR undefined."
12  exit
13 fi
14 
15 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
16 
17 zmodload zsh/mathfunc
18 
19 set_variable DEBUG 2
20 set_variable WORKDIR ${TMPDIR:-/tmp}
21 
22 if do_usage $*; then
23  usage "$script <directory> <detector identifier>"\
24  "\nThe directory corresponds to the GIT repositiry \"calibration/input-tables\""\
25  "\nand the detector identifier to the DETOID."
26 fi
27 
28 if (( $# != 2 )); then
29  fatal "Wrong number of arguments."
30 fi
31 
32 set_variable DIR $1
33 set_variable DETOID $2
34 
35 if [[ ! -d $DIR/data/${DETOID} ]]; then
36  fatal "No directory $DIR/data/${DETOID}"
37 fi
38 
39 #
40 # Create tripod file.
41 #
42 # \param 1 input file
43 # \param 2 output file
44 #
45 function tripod()
46 {
47  TRIPOD_CSV=$1
48  TRIPOD_TXT=$2
49 
50  if [[ -f $TRIPOD_CSV ]]; then
51 
52  printf "# Data from %s\n" ${TRIPOD_CSV:t} > $TRIPOD_TXT
53  grep -E -v "^#" $TRIPOD_CSV | tail -n +2 | tr ',' ' ' >> $TRIPOD_TXT
54  fi
55 }
56 
57 #
58 # Create hydrophone file.
59 #
60 # \param 1 input file
61 # \param 2 output file
62 #
63 function hydrophone()
64 {
65  HYDROPHONE_CSV=$1
66  HYDROPHONE_TXT=$2
67 
68  if [[ -f $HYDROPHONE_CSV ]]; then
69 
70  grep -E -v "^#" $HYDROPHONE_CSV | tail -n +2 | tr ',' ' ' > $WORKDIR/hydrophones.txt
71 
72  printf "# Data from %s\n" ${HYDROPHONE_CSV:t} > $HYDROPHONE_TXT
73 
74  while read -A BUFFER; do
75 
76  set_variable STRING $BUFFER[1]
77  set_variable FLOOR $BUFFER[2]
78  set_variable X $BUFFER[3]
79  set_variable Y $BUFFER[4]
80  set_variable ANGLE_DEG $BUFFER[5]
81  set_variable Z $BUFFER[6]
82 
83  let "X0 = -1.0 * $Y"
84  let "Y0 = -1.0 * $X"
85 
86  let "CT = cos($ANGLE_DEG * $PI / 180.0)"
87  let "ST = sin($ANGLE_DEG * $PI / 180.0)"
88 
89  let "X1 = $ST * $X0 + $CT * $Y0"
90  let "Y1 = $CT * $X0 - $ST * $Y0"
91 
92  printf "%4d %2d %6.2f %6.2f %6.2f\n" $STRING $FLOOR $X1 $Y1 $Z >> $HYDROPHONE_TXT
93 
94  done < $WORKDIR/hydrophones.txt
95 
96  rm -f $WORKDIR/hydrophones.txt
97  fi
98 }
99 
100 #
101 # Create transmitter file.
102 #
103 # \param 1 input file
104 # \param 2 output file
105 #
106 function transmitter()
107 {
108  TRANSMITTER_CSV=$1
109  TRANSMITTER_TXT=$2
110 
111  if [[ -f $TRANSMITTER_CSV ]]; then
112 
113  grep -E -v "^#" $TRANSMITTER_CSV | tail -n +2 | tr ',' ' ' > $WORKDIR/transmitters.txt
114 
115  printf "# Data from %s\n" ${TRANSMITTER_CSV:t} > $TRANSMITTER_TXT
116 
117  while read -A BUFFER; do
118 
119  set_variable ID $BUFFER[1]
120  set_variable STRING $BUFFER[2]
121  set_variable FLOOR $BUFFER[3]
122  set_variable X $BUFFER[4]
123  set_variable Y $BUFFER[5]
124  set_variable ANGLE_DEG $BUFFER[6]
125  set_variable Z $BUFFER[7]
126 
127  let "X0 = -1.0 * $Y"
128  let "Y0 = -1.0 * $X"
129 
130  let "CT = cos($ANGLE_DEG * $PI / 180.0)"
131  let "ST = sin($ANGLE_DEG * $PI / 180.0)"
132 
133  let "X1 = $ST * $X0 + $CT * $Y0"
134  let "Y1 = $CT * $X0 - $ST * $Y0"
135 
136  printf "%2d %4d %2d %6.2f %6.2f %6.2f\n" $ID $STRING $FLOOR $X1 $Y1 $Z >> $TRANSMITTER_TXT
137 
138  done < $WORKDIR/transmitters.txt
139 
140  rm -f $WORKDIR/transmitters.txt
141  fi
142 }
143 
144 
145 tripod $DIR/data/${DETOID}/${DETOID}_tripods.csv tripod.txt
146 hydrophone $DIR/data/${DETOID}/${DETOID}_hydrophones.csv hydrophone.txt
147 transmitter $DIR/data/${DETOID}/${DETOID}_baseAcousticBeacon.csv transmitter.txt