Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
input-tables.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2script=${0##*/}
3
4# --------------------------------------------------------------------------------------------
5#
6# Auxiliary script to convert csv files from input-tables to input files.
7#
8# --------------------------------------------------------------------------------------------
9
10if [ -z $JPP_DIR ]; then
11 echo "Variable JPP_DIR undefined."
12 exit
13fi
14
15source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
16
17zmodload zsh/mathfunc
18
19set_variable DEBUG 2
20set_variable WORKDIR ${TMPDIR:-/tmp}
21
22if do_usage $*; then
23 usage "$script <directory> <detector identifier>"\
24 "\nThe directory corresponds to the GIT repository \"calibration/input-tables\""
25fi
26
27if (( $# != 2 )); then
28 fatal "Wrong number of arguments."
29fi
30
31set_variable DIR $1
32set_variable DETOID $2
33
34if [[ ! -d $DIR/data/${DETOID} ]]; then
35 fatal "No directory $DIR/data/${DETOID}"
36fi
37
38#
39# Create tripod file.
40#
41# \param 1 input file
42# \param 2 output file
43#
44function tripod()
45{
46 TRIPOD_CSV=$1
47 TRIPOD_TXT=$2
48
49 if [[ -f $TRIPOD_CSV ]]; then
50
51 printf "# Data from %s\n" ${TRIPOD_CSV:t} > $TRIPOD_TXT
52 egrep -v "^#" $TRIPOD_CSV | tail -n +2 | tr ',' ' ' >> $TRIPOD_TXT
53 fi
54}
55
56#
57# Create hydrophone file.
58#
59# \param 1 input file
60# \param 2 output file
61#
62function hydrophone()
63{
64 HYDROPHONE_CSV=$1
65 HYDROPHONE_TXT=$2
66
67 if [[ -f $HYDROPHONE_CSV ]]; then
68
69 egrep -v "^#" $HYDROPHONE_CSV | tail -n +2 | tr ',' ' ' > $WORKDIR/hydrophones.txt
70
71 printf "# Data from %s\n" ${HYDROPHONE_CSV:t} > $HYDROPHONE_TXT
72
73 while read -A BUFFER; do
74
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]
81
82 let "X0 = -1.0 * $Y"
83 let "Y0 = -1.0 * $X"
84
85 let "CT = cos($ANGLE_DEG * $PI / 180.0)"
86 let "ST = sin($ANGLE_DEG * $PI / 180.0)"
87
88 let "X1 = $ST * $X0 + $CT * $Y0"
89 let "Y1 = $CT * $X0 - $ST * $Y0"
90
91 printf "%4d %2d %6.2f %6.2f %6.2f\n" $STRING $FLOOR $X1 $Y1 $Z >> $HYDROPHONE_TXT
92
93 done < $WORKDIR/hydrophones.txt
94
95 rm -f $WORKDIR/hydrophones.txt
96 fi
97}
98
99#
100# Create transmitter file.
101#
102# \param 1 input file
103# \param 2 output file
104#
105function transmitter()
106{
107 TRANSMITTER_CSV=$1
108 TRANSMITTER_TXT=$2
109
110 if [[ -f $TRANSMITTER_CSV ]]; then
111
112 egrep -v "^#" $TRANSMITTER_CSV | tail -n +2 | tr ',' ' ' > $WORKDIR/transmitters.txt
113
114 printf "# Data from %s\n" ${TRANSMITTER_CSV:t} > $TRANSMITTER_TXT
115
116 while read -A BUFFER; do
117
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]
125
126 let "X0 = -1.0 * $Y"
127 let "Y0 = -1.0 * $X"
128
129 let "CT = cos($ANGLE_DEG * $PI / 180.0)"
130 let "ST = sin($ANGLE_DEG * $PI / 180.0)"
131
132 let "X1 = $ST * $X0 + $CT * $Y0"
133 let "Y1 = $CT * $X0 - $ST * $Y0"
134
135 printf "%2d %4d %2d %6.2f %6.2f %6.2f\n" $ID $STRING $FLOOR $X1 $Y1 $Z >> $TRANSMITTER_TXT
136
137 done < $WORKDIR/transmitters.txt
138
139 rm -f $WORKDIR/transmitters.txt
140 fi
141}
142
143#
144# Create waveform file.
145#
146# \param 1 input file
147# \param 2 output file
148#
149function waveform()
150{
151 WAVEFORM_CSV=$1
152 WAVEFORM_TXT=$2
153
154 if [[ -f $WAVEFORM_CSV ]]; then
155
156 egrep -v "^#" $WAVEFORM_CSV | tail -n +2 | tr ',' ' ' > $WORKDIR/waveforms.txt
157
158 printf "# Data from %s\n" ${WAVEFORM_CSV:t} > $WAVEFORM_TXT
159
160 while read -A BUFFER; do
161
162 set_variable WAVEFORM_ID $BUFFER[1]
163 set_variable EMITTER_ID $BUFFER[2]
164
165 printf "%3d %3d\n" $WAVEFORM_ID $EMITTER_ID >> $WAVEFORM_TXT
166
167 done < $WORKDIR/waveforms.txt
168
169 rm -f $WORKDIR/waveforms.txt
170 fi
171}
172
173#
174# Create mechanics file.
175#
176# \param 1 detector identifier
177# \param 2 output file
178#
179function mechanics()
180{
181 MECHANICS_TXT=$2
182
183 if [[ $1 =~ ORC ]]; then
184
185 cat>$MECHANICS_TXT<<EOF
186 -1 0.00311 85.966
187 9 0.00087 267.054
188EOF
189 elif [[ $1 =~ ARC ]]; then
190
191 cat>$MECHANICS_TXT<<EOF
192 -1 0.00094 294.291
193EOF
194 else
195 fatal "Invalid detector identifier $1."
196 fi
197}
198
199#
200# Create sound velocity file.
201#
202# \param 1 detector identifier
203# \param 2 output file
204#
205function sound_velocity()
206{
207 SOUND_VELOCITY_TXT=$2
208
209 if [[ $1 =~ ORC ]]; then
210
211 cat>$SOUND_VELOCITY_TXT<<EOF
2121538.00 -17e-3 -2000.00
213EOF
214 elif [[ $1 =~ ARC ]]; then
215
216 cat>$SOUND_VELOCITY_TXT<<EOF
2171541.00 -17e-3 -2000.00
218EOF
219 else
220 fatal "Invalid detector identifier $1."
221 fi
222}
223
224#
225# Create disable file.
226#
227# \param 1 detector identifier
228# \param 2 output file
229#
230function disable()
231{
232 DISABLE_TXT=$2
233
234 cat>$DISABLE_TXT<<EOF
235#list of bad transmissions
236EOF
237}
238
239#
240# Create trigger parameters file.
241#
242# \param 1 detector identifier
243# \param 2 output file
244#
245function trigger_parameters()
246{
247 TRIGGER_PARAMETERS_TXT=$2
248
249 cat>$TRIGGER_PARAMETERS_TXT<<EOF
250Q = 0.0;
251TMax_s = 0.020;
252numberOfHits = 300;
253EOF
254}
255
256#
257# Create fit parameters file.
258#
259# \param 1 detector identifier
260# \param 2 output file
261#
262function fit_parameters()
263{
264 FIT_PARAMETERS_TXT=$2
265
266 cat>$FIT_PARAMETERS_TXT<<EOF
267Nmin = 3;
268Tmax_s = 600.0;
269chi2perNDF = 100.0;
270mestimator = 1;
271option = 3;
272sigma_s = 50.0e-6;
273stdev = 10.0e+5;
274EOF
275}
276
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