-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcopy_data.sh
More file actions
executable file
·68 lines (60 loc) · 1.8 KB
/
copy_data.sh
File metadata and controls
executable file
·68 lines (60 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
RES=${RES:-T799L91}
ERA=${ERA:-Present}
MEM=${MEM:-1}
DATE=${DATE:-20020101}
SOURCE=${SOURCE:-$PWD}
TARGET=${TARGET:-$PWD}
STARTMEM=${STARTMEM:-0}
STOPMEM=${STOPMEM:-9}
EXP=${EXP:-b0if}
CP=cp
UNZIP=gunzip
GRIB_CP=grib_copy
CDO=cdo
if [ "$SYS" == "ECMWF" ]; then
CP=ecp
module unload eccodes
module load grib_api
module load cdo
fi
function show_help {
echo "Usage: ./copy_data.sh -r <resolution> -p <Present/Future> -m <FW-member> -d <yyyymmdd> -s <source dir> -t <target dir> -i <fc-member>"
}
OPTIND=1
while getopts "hr:p:m:d:s:t:i:" opt; do
case "$opt" in
h) show_help
exit 0 ;;
r) RES=$OPTARG ;;
p) ERA=$OPTARG ;;
m) MEM=$OPTARG ;;
d) DATE=$OPTARG ;;
s) SOURCE=$OPTARG ;;
t) TARGET=$OPTARG ;;
i) STARTMEM=$OPTARG && STOPMEM=$OPTARG ;;
esac
done
shift $((OPTIND-1))
[ "$1" == "--" ] && shift
SRC=$SOURCE/$RES/$ERA/MEM${MEM}_${DATE}
TGT=$TARGET/$RES/$ERA/MEM${MEM}_${DATE}
for mem in `seq $STARTMEM $STOPMEM` ; do
TGTDIR=$TGT/member_$mem
echo "Creating directory $TGTDIR..."
mkdir -p $TGTDIR
echo "Copying gridpoint files to $TGTDIR..."
$CP $SRC/member_$mem/ICMGG${EXP}+[0-9][0-9][0-9][0-9][0-9][0-9].gz $TGTDIR
echo "Processing gridpoint files in $TGTDIR"
for FNAME in $TGTDIR/ICMGG${EXP}+[0-9][0-9][0-9][0-9][0-9][0-9].gz ; do
$UNZIP $FNAME
GRIBFILE=$(echo "$FNAME" | cut -d'.' -f1)
TMPFILE=$(mktemp $TGTDIR/ECE.XXXXXXXX)
$GRIB_CP -w,paramId=78/79/136/137/142/143/151/164/165/166/167/186/187/188 $GRIBFILE $TMPFILE
$CDO -setgridtype,regular -aexpr,var228=var142+var143 $TMPFILE $TGTDIR/ICMGG${EXP}.grib
$CDO -f nc4 -z zip -t ecmwf -copy $TGTDIR/ICMGG${EXP}.grib $TGTDIR/ICMGG${EXP}.nc
rm -f $GRIBFILE
rm -f $TMPFILE
rm -f $TGTDIR/ICMGG${EXP}.grib
done
done