黄乾

个人信息

Personal information

副教授     硕士生导师
性别:男
主要任职:大气物理系主任
在职信息:在岗
所在单位:大气物理学院
学科:大气科学

办公地点:气象楼1001

教师博客

下载GFS预报数据的shell脚本
发布时间:2023-11-27  点击次数:

#!/bin/bash

 

export

 

# date setting

if [ $# -eq 0 ];then

  echo "+++++ Error hours, please check argument! +++++"

  echo "  Usage: $0 00"

  exit 1

else

  hh=$1

  shift

fi

 

if [ $hh -ne 00 -a $hh -ne 06 -a $hh -ne 12 -a $hh -ne 18 ];then

  echo "+++++ Error hours, please check argument! +++++"

  echo "  Usage: $0 00"

  exit 1

fi

 

if [ $# -ne 0 ];then

  rundate=$1

else

  rundate=`date -u +%Y%m%d --date="-1 day"`

fi

rundate=20231105

gdate=$rundate 

resolution=0p25 

# download gfs files to tmp dir

tmppath=$PWD/${gdate}${hh}/$resolution

rm -rf $tmppath && mkdir -p $tmppath

cd $tmppath

for i in `seq 0 3 72`

do

#  filepath=ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/gfs/prod/gfs.${gdate}/${hh}/atmos/

  filepath=https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.${gdate}/${hh}/atmos/

  filename=gfs.t${hh}z.pgrb2.$resolution.f`printf %03d $i`

  # use axel as first chosen downloader, proz and wget as second and third

#  /usr/local/bin/axel -n 8 -v  ${filepath}/${filename} >& log.${filename}

 wget -c --no-check-certificate ${filepath}/${filename} --no-check-certificate

#  if ! grep "^Downloaded.*megabytes" log.${filename} ;then

#    echo "download with wget unsuccessfully! redownload with curl"

#    /usr/local/bin/proz -k=8 -r -f --no-curses --no-netrc --no-getch -v ${filepath}/${filename} >& log.${filename}

#    if ! grep "All Done" log.${filename} ;then

#      /usr/bin/wget ${filepath}/${filename} >& log.${filename}

#    fi

#  fi

done

 

#gfspath=/data/gfs/${gdate}${hh}

#test -d $gfspath || mkdir -p $gfspath

 

# move downloaded gfs files to final dir

cd $tmppath

for i in `seq 0 6 72`

do

  filename=gfs.t${hh}z.pgrb2f`printf %02d $i`

  cp $filename $gfspath && rm -f $filename

done

 

echo

echo "GFS data files downloaded successfully!"

date