-
Notifications
You must be signed in to change notification settings - Fork 11
make_daily.sh
Ricardo Torres edited this page Feb 16, 2022
·
1 revision
#!/usr/bin/env bash
#
# Make daily output files sequentially numbered for the offline Lagrangian code
# from a series of monthly runs.
#
# Pierre Cazenave, Plymouth Marine Laboratory.
#
# Revision history:
# 2014-10-27 First version.
set -eu
usage(){
echo "Error: received 0 file names; need at least one"
echo "$(basename "$0") file1.nc file2.nc ... fileN.nc"
exit 1
}
if [[ $# -eq 0 ]]; then
usage
fi
# Input configuration
sampling=1 # main FVCOM results file sampling frequency (hours)
outinc=24 # number of hours per subsampled file
dailydir='/local/LAG/daily/' # output directory
if [ ! -d "$dailydir" ]; then
mkdir -p "$dailydir"
fi
inc=$((sampling*outinc)) # increment for ncks
cc=0
ff=1
for file in "$@"; do
hoursinrun=$(ncdump -h "$file" | grep time\ = | cut -f2 -d \( | cut -f1 -d' ')
echo "$file ($(echo "scale=4; $hoursinrun/24" | bc -l) days) "
for i in $(seq $inc $inc "$hoursinrun"); do
# Set to non-zero to skip # time steps.
if [ $ff -lt 0 ]; then
continue
else
echo -n "$ff "
st=$((i - inc))
et=$((i - 1))
if [ $et -gt $hoursinrun ]; then
echo "BREAKING ON COUNT $ff"
break
fi
ncrcat -dtime,$st,$et "$file" "$dailydir/$(basename "${file%.*}" _0001)_$(printf %04d $ff).nc"
fi
((ff+=1))
done
((cc+=1))
done
For questions regarding FVCOM, to contribute to the wiki please subscribe to the mailing list uk-fvcom mailing list If you would like to cite FVCOM, please refer to its main publication and/or URLs.
Background
=== FVCOM Wiki ===
User guide
-
Additional information of less frequent usage in no particular order