4 # Script to request and transform data from the MII instrumented line.
5 # 1 - a request is formed to the DB 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 ASC 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)
15 if [ -z $JPP_DIR ];
then
16 echo "Variable JPP_DIR undefined."
20 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/
null
34 if ( do_usage $* );
then
35 usage "$script <tmin> <tmax> or"\
37 "\nwhere <tmin> and <tmax> are strings of the form 2019-05-01T12:00:00Z" \
38 "\nand clean will remove the output file" \
40 "\nScript to request sea current data from the erddap.osupytheas.fr database." \
41 "\nthe validity of the datetimes is not checked by the script."
48 *) fatal
"Wrong number of arguments.";;
65 *) fatal
"Wrong option $OPTION.";;
69 if [[ -
n "$TMIN" && -
n "$TMAX" ]];
then
71 uTMAX=`date -
d $TMAX +%s --utc`
72 echo "Obtaining sea current speed and direction between" $TMIN
"("$uTMIN
") and" $TMAX
"("$uTMAX
")"
73 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"
75 # The ASC use the comma as separator. We split the file in two simple "space separated text files.
76 # One for the strength of the sea current. One for the direction of the sea current.
77 # The direction value are converted from deg to rad and inverted from clockwise to anticlockwise
78 # The header is dropped for the moment since it has to be correctly handled using awk command.
79 # It has currently 11 lines. A smarter way of handling the header and the fields must be found.
81 if [[ -
f $MII_ASC ]];
then
82 awk -
F',' '{if ( NR>11 ) {print $1 " " $2 " " $3;};}' $MII_ASC > $CurSpeed_TXT
83 awk -
F',' '{if ( NR>11 ) {print $1 " " (90.0 - $4)/57.2958 " " $5/57.2958 ;}}' $MII_ASC > $CurDirec_TXT
85 if [[ -
f $CurSpeed_TXT ]];
then
95 -\^
"Current speed [m.s-1]" \
96 -
T "Sea current speed at ORCA site " \
99 if [[ -
f $CurDirec_TXT ]];
then
105 -
f $CurDirec_ROOT:\.\* \
109 -\^
"Current direction [rad]" \
110 -
T "Sea current direction at ORCA site " \
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
do echo Generating $dir eval DIR
case $OPTION in clean clean
do set_variable OUTPUT_DIRECTORY $WORKDIR T
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
alias put_queue eval echo n
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
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
then awk $MII_ASC $CurSpeed_TXT awk then JGraph f $CurSpeed_TXT o $CurSpeed_ROOT JPlot1D f $CurSpeed_ROOT
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
#define DEBUG(A)
Message macros.