Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
getMIIseacurrent.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 # Script to request and transform data from the MII instrumented line.
5 # 1 - a request is formed to the database storing the data. The order of the fields is
6 # fixed and must stay the same for the next steps :
7 # time, current speed, error on current speed, current direction, error on current direction
8 # A given period can be specified by providing two strings of the form 2019-05-01T12:00:00Z
9 # The data are written into a ASCII file (csv text file).
10 # 2 - The awk program splits the file in two separated text files with the header dropped for the
11 # moment. The angles are converted from degrees with 0 at North and counting clockwise into
12 # radians with 0 at East and counting anticlockwise. They are not further reduded to [-pi,+pi]
13 # to keep a continuity of values (the current is often directed toward West)
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
21 
23 set_variable DIR $JPP_DIR/examples/JAcoustics/
25 set_variable: FORMAT GRAPHICS_FORMAT gif
26 set_variable+ BATCH GRAPHICS_BATCH -B
27 
28 set_variable MII_ASC $WORKDIR/MII.asc
29 set_variable CurSpeed_TXT $WORKDIR/MII_CurrentSpeed.txt
30 set_variable CurSpeed_ROOT $WORKDIR/MII_CurrentSpeed.root
31 set_variable CurSpeed_GIF $WORKDIR/MII_CurrentSpeed.$FORMAT
32 set_variable CurDirec_TXT $WORKDIR/MII_CurrentDirection.txt
33 set_variable CurDirec_ROOT $WORKDIR/MII_CurrentDirection.root
34 set_variable CurDirec_GIF $WORKDIR/MII_CurrentDirection.$FORMAT
35 
36 if do_usage $*; then
37  usage "$script <tmin> <tmax> or"\
38  "\n$script clean" \
39  "\nwhere <tmin> and <tmax> are strings of the form 2019-05-01T12:00:00Z" \
40  "\nand clean will remove the output file" \
41  "\n" \
42  "\nScript to request sea current data from the erddap.osupytheas.fr database." \
43  "\nthe validity of the datetimes is not checked by the script."
44 fi
45 
46 case $# in
48  2) set_variable TMAX $argv[2];
49  set_variable TMIN $argv[1];;
50  *) fatal "Wrong number of arguments.";;
51 esac
52 
53 function clean()
54 {
55  rm -f $MII_ASC
56  rm -f $CurSpeed_TXT
57  rm -f $CurDirec_TXT
59  rm -f $CurDirec_ROOT
60  rm -f $CurSpeed_GIF
61  rm -f $CurDirec_GIF
62  exit
63 }
64 
65 case "$OPTION" in
67  "") ;;
68  *) fatal "Wrong option $OPTION.";;
69 esac
70 
71 
72 if [[ -n "$TMIN" && -n "$TMAX" ]]; then
73  uTMIN=`date -d $TMIN +%s --utc`
74  uTMAX=`date -d $TMAX +%s --utc`
75  echo "Obtaining sea current speed and direction between" $TMIN "("$uTMIN") and" $TMAX "("$uTMAX")"
76  wget -O $MII_ASC "https://erddap.osupytheas.fr/erddap/tabledap/Emso_Aquadopp_64c7_8059_4af9.asc?time,Speed_mean,Speed_std,Direction_mean,Direction_std&time>=$uTMIN&time<=$uTMAX"
77 fi
78 
79 # The ASCII use the comma as separator. We split the file in two simple space separated text files.
80 # One for the strength of the sea current. One for the direction of the sea current.
81 # The direction value are converted from deg to rad and inverted from clockwise to anticlockwise
82 # The header is dropped for the moment since it has to be correctly handled using awk command.
83 # It has currently 11 lines. A smarter way of handling the header and the fields must be found.
84 
85 if [[ -f $MII_ASC ]]; then
86  awk -F',' '{if ( NR>11 ) {print $1 " " $2 " " $3;};}' $MII_ASC > $CurSpeed_TXT
87  awk -F',' '{if ( NR>11 ) {print $1 " " (90.0 - $4)/57.2958 " " $5/57.2958 ;}}' $MII_ASC > $CurDirec_TXT
88 fi
89 
90 if [[ -f $CurSpeed_TXT ]]; then
91 
92  JGraph \
93  -f $CurSpeed_TXT \
95 
96  JPlot1D \
97  -f $CurSpeed_ROOT:\.\* \
98  -w 2000x500 \
99  -t "$TIMESTAMP" \
100  -\> "Date" \
101  -\^ "Current speed [m.s-1]" \
102  -T "Sea current speed at ORCA site " \
103  -o $CurSpeed_GIF $BATCH
104 fi
105 
106 if [[ -f $CurDirec_TXT ]]; then
107 
108  JGraph \
109  -f $CurDirec_TXT \
110  -o $CurDirec_ROOT
111 
112  JPlot1D \
113  -f $CurDirec_ROOT:\.\* \
114  -w 2000x500 \
115  -t "$TIMESTAMP" \
116  -\> "Date" \
117  -\^ "Current direction [rad]" \
118  -T "Sea current direction at ORCA site " \
119  -o $CurDirec_GIF $BATCH
120 fi
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn only modules within the given range of floors are used fi case set_variable RANGE $argv[3]
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
data_type w[N+1][M+1]
Definition: JPolint.hh:741
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
exit
Definition: JPizza.sh:36
do echo Generating $dir eval DIR
Definition: JPlotNPE1D.sh:54
then uTMIN
then echo
const int n
Definition: JPolint.hh:660
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
do set_variable STRING_TXT awk
case $OPTION in clean clean
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
then awk F
* usage
then JConvertDetectorFormat a $DETECTOR[1] o
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
then display $WORKDIR
Definition: plot-Domino.sh:128
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
script
Definition: JAcoustics.sh:2
then awk $MII_ASC $CurSpeed_TXT awk then JGraph f $CurSpeed_TXT o $CurSpeed_ROOT JPlot1D f $CurSpeed_ROOT
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null