4 # --------------------------------------------------------------------------------------------
6 # Auxiliary script to convert csv files from input-tables to input files.
8 # --------------------------------------------------------------------------------------------
10 if [ -z $JPP_DIR ]; then
11 echo "Variable JPP_DIR undefined."
15 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
20 set_variable WORKDIR ${TMPDIR:-/tmp}
23 usage "$script <directory> <detector identifier>"\
24 "\nThe directory corresponds to the GIT repository \"calibration/input-tables\""
27 if (( $# != 2 )); then
28 fatal "Wrong number of arguments."
32 set_variable DETOID $2
34 if [[ ! -d $DIR/data/${DETOID} ]]; then
35 fatal "No directory $DIR/data/${DETOID}"
42 # \param 2 output file
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.
60 # \param 2 output 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.
102 # \param 1 input file
103 # \param 2 output file
105 function 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.
146 # \param 1 input 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 =~ ORCA ]]; then
185 cat>$MECHANICS_TXT<<EOF
189 elif [[ $1 =~ ARCA ]]; 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
205 function sound_velocity()
207 SOUND_VELOCITY_TXT=$2
209 if [[ $1 =~ ORCA ]]; then
211 cat>$SOUND_VELOCITY_TXT<<EOF
212 1538.00 -17e-3 -2000.00
214 elif [[ $1 =~ ARCA ]]; then
216 cat>$SOUND_VELOCITY_TXT<<EOF
217 1541.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
239 # Create trigger parameters file.
241 # \param 1 detector identifier
242 # \param 2 output file
244 function trigger_parameters()
246 TRIGGER_PARAMETERS_TXT=$2
248 cat>$TRIGGER_PARAMETERS_TXT<<EOF
256 # Create fit parameters file.
258 # \param 1 detector identifier
259 # \param 2 output file
261 function fit_parameters()
263 FIT_PARAMETERS_TXT=$2
265 cat>$FIT_PARAMETERS_TXT<<EOF
276 tripod $DIR/data/${DETOID}/${DETOID}_tripods.csv tripod.txt
277 hydrophone $DIR/data/${DETOID}/${DETOID}_hydrophones.csv hydrophone.txt
278 transmitter $DIR/data/${DETOID}/${DETOID}_transmitters.csv transmitter.txt
279 waveform $DIR/data/${DETOID}/${DETOID}_waveforms.csv waveform.txt
280 mechanics ${DETOID} mechanics.txt
281 sound_velocity ${DETOID} sound_velocity.txt
282 disable ${DETOID} disable.txt
283 trigger_parameters ${DETOID} acoustics_trigger_parameters.txt
284 fit_parameters ${DETOID} acoustics_fit_parameters.txt