Skip to content

Instantly share code, notes, and snippets.

@prl900
Created September 9, 2019 05:32
Show Gist options
  • Save prl900/af75842e1f1cfa5340370722ea22d5f7 to your computer and use it in GitHub Desktop.
Save prl900/af75842e1f1cfa5340370722ea22d5f7 to your computer and use it in GitHub Desktop.
module load gdal/1.9.2
module load cdo
module load nco
YEAR=2017
DATE=$(date -u -d $YEAR"-01-01")
END=$(date -u -d "2018-01-01")
COUNTER=0
while [ "$DATE" != "$END" ]; do
echo $DATE
echo $END
END_DATE=$(date -u -d "$DATE + 29 minutes + 59 seconds")
MINS=$((10#$(date -u +%H -d "$DATE")*60+10#$(date -u +%M -d "$DATE")))
FORMATTED_MINS=$(echo 00000$MINS | tail -c 5)
FILE="/g/data/fj4/SatellitePrecip/GPM/global/final/"$(date -u +%Y%m -d "$DATE")"/3B-HHR.MS.MRG.3IMERG."$(date -u +%Y%m%d -d "$DATE")"-S"$(date -u +%H%M%S -d "$DATE")"-E"$(date -u +%H%M%S -d "$END_DATE")"."$FORMATTED_MINS".V05B.HDF5"
echo $FILE
if [ ! -f $FILE ]; then
DATE=$(date -u -d "$DATE + 30 minutes")
continue
fi
./gpm_transformer.py -src $FILE -dst aux.nc
gdalwarp -of netCDF -co WRITE_BOTTOMUP=NO -r bilinear -t_srs '+proj=longlat +datum=WGS84 +no_defs' -te 147.0 -36.56 152.12 -34.0 -tr 0.02 -0.02 aux.nc B$COUNTER.nc
rm aux.nc
ncrename -v Band1,PrecCal B$COUNTER.nc
cdo settaxis,$(date -u +%Y%m%d -d "$DATE"),$(date -u +%H%M%S -d "$DATE") B$COUNTER.nc C$COUNTER.nc
rm B$COUNTER.nc
DATE=$(date -u -d "$DATE + 30 minutes")
COUNTER=$(( $COUNTER + 1 ))
if [ $COUNTER -gt 100 ] || [ "$DATE" == "$END" ]; then
cdo mergetime C*.nc batch.nc
rm C*.nc
if [ ! -f "GPM_AU_SE_"$YEAR".nc" ]; then
mv batch.nc "GPM_AU_SE_"$YEAR".nc"
else
mv "GPM_AU_SE_"$YEAR".nc" aux.nc
cdo mergetime aux.nc batch.nc "GPM_AU_SE_"$YEAR".nc"
rm aux.nc
rm batch.nc
fi
COUNTER=0
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment