-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
#!/bin/bash --login | ||
|
||
# this file remaps 1/4 degree lat/lon grids to other grids | ||
# 236 201 244 130 224 242 | ||
|
||
# initialize | ||
module load gnu/13.2.0 intel/2023.2.0 netcdf/4.7.0 wgrib2/3.1.2_ncep | ||
module list | ||
ECHO=echo | ||
Check warning Code scanning / shellcheck Use var=$(command) to assign output (or quote to assign string). Warning
Use var=$(command) to assign output (or quote to assign string).
|
||
MKDIR=mkdir | ||
Check warning Code scanning / shellcheck Use var=$(command) to assign output (or quote to assign string). Warning
Use var=$(command) to assign output (or quote to assign string).
|
||
LN=ln | ||
Check warning Code scanning / shellcheck Use var=$(command) to assign output (or quote to assign string). Warning
Use var=$(command) to assign output (or quote to assign string).
|
||
echo entering remapgrib.sh.... | ||
echo "****************************" | ||
echo "ROTDIR = ${ROTDIR}" | ||
echo "CDUMP = ${CDUMP}" | ||
echo "COMPONENT = ${COMPONENT}" | ||
echo "yyyymmdd = ${yyyymmdd}" | ||
echo "hh = ${hh}" | ||
echo "fcst = ${fcst}" | ||
echo "GRID_NAMES = ${GRID_NAMES}" | ||
echo | ||
|
||
echo `which wgrib2` | ||
Check warning Code scanning / shellcheck Quote this to prevent word splitting. Warning
Quote this to prevent word splitting.
Check notice Code scanning / shellcheck Useless echo? Instead of 'echo $(cmd)', just use 'cmd'. Note
Useless echo? Instead of 'echo $(cmd)', just use 'cmd'.
Check notice Code scanning / shellcheck Use $(...) notation instead of legacy backticks .... Note
Use $(...) notation instead of legacy backticks ....
Check notice Code scanning / shellcheck 'which' is non-standard. Use builtin 'command -v' instead. Note
'which' is non-standard. Use builtin 'command -v' instead.
Check notice Code scanning / shellcheck Consider invoking this command separately to avoid masking its return value (or use '|| true' to ignore). Note
Consider invoking this command separately to avoid masking its return value (or use '|| true' to ignore).
|
||
|
||
######################### | ||
# Grid Definitions | ||
######################### | ||
# Full domain | ||
#--------- | ||
# 32 km | ||
export grid_specs_221="lambert:253:50.000000 214.500000:349:32463.000000 1.000000:277:32463.000000" | ||
|
||
#--------- | ||
# CONUS | ||
#--------- | ||
# 13 km | ||
export grid_specs_130="lambert:265:25.000000 233.862000:451:13545.000000 16.281000:337:13545.000000" | ||
# 20 km | ||
export grid_specs_252="lambert:265:25.000000 233.862000:301:20318.000000 16.281000:225:20318.000000" | ||
# 40 km | ||
export grid_specs_236="lambert:265:25.000000 233.862000:151:40635.000000 16.281000:113:40635.000000" | ||
|
||
#--------- | ||
# Alaska | ||
#--------- | ||
export grid_specs_242="nps:225:60.000000 187.000000:553:11250.000000 30.000000:425:11250.000000" | ||
|
||
#--------- | ||
# Hawaii | ||
#--------- | ||
export grid_specs_243="latlon 190.0:126:0.400 10.000:101:0.400" | ||
|
||
#--------- | ||
# Puerto Rico | ||
#--------- | ||
export grid_specs_200="lambert:253:50.000000 285.720000:108:16232.000000 16.201000:94:16232.000000" | ||
|
||
#--------- | ||
#HRRRE | ||
#--------- | ||
export grid_specs_999="lambert:253:50.000000 227.500000:675:13545.000000 7.500000:500:13545.000000" | ||
|
||
#--------- | ||
# North Polar Stereographic | ||
#--------- | ||
export grid_specs_201="nps:-105:60.000000 -150.000000:259:94512.000000 -20.826000:259:94512.000000" | ||
|
||
#--------- | ||
# South Polar Stereographic | ||
#--------- | ||
export grid_specs_224="sps:75:-60.000000 120.000000:257:95250.000000 20.826000:257:95250.000000" | ||
|
||
#--------- | ||
# North Atlantic | ||
#--------- | ||
export grid_specs_244="latlon 261.750:275:0.25 0.250:203:0.25" | ||
######################### | ||
|
||
# make post directory if doesn't exist | ||
postDir=${ROTDIR}/${CDUMP}.${yyyymmdd}/${hh}/products/${COMPONENT}/grib2/0p25/post | ||
echo "postDir: $postDir" | ||
Check notice Code scanning / shellcheck Prefer putting braces around variable references even when not strictly required. Note
Prefer putting braces around variable references even when not strictly required.
|
||
if [ ! -d ${postDir} ] | ||
Check notice Code scanning / shellcheck Prefer [[ ]] over [ ] for tests in Bash/Ksh. Note
Prefer [[ ]] over [ ] for tests in Bash/Ksh.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
then | ||
echo "creating ${postDir} " | ||
mkdir -p ${postDir} | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
fi | ||
|
||
# parse out domain | ||
grids=$(echo $GRID_NAMES|sed 's/D/ /g') | ||
Check notice Code scanning / shellcheck See if you can use ${variable//search/replace} instead. Note
See if you can use ${variable//search/replace} instead.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
Check notice Code scanning / shellcheck Prefer putting braces around variable references even when not strictly required. Note
Prefer putting braces around variable references even when not strictly required.
|
||
src_gribfile=gfs.t${hh}z.pgrb2.0p25.f${fcst} | ||
|
||
# loop through each domain and remap 1/4 degree grib2 file to new grid | ||
grids=$(echo $GRID_NAMES|sed 's/D/ /g') | ||
Check notice Code scanning / shellcheck See if you can use ${variable//search/replace} instead. Note
See if you can use ${variable//search/replace} instead.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
Check notice Code scanning / shellcheck Prefer putting braces around variable references even when not strictly required. Note
Prefer putting braces around variable references even when not strictly required.
|
||
for grid in $grids | ||
Check notice Code scanning / shellcheck Prefer putting braces around variable references even when not strictly required. Note
Prefer putting braces around variable references even when not strictly required.
|
||
do | ||
tgt_gribfile_dir=${postDir}/${grid} | ||
${MKDIR} -p ${tgt_gribfile_dir} | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
tgt_gribfile=${tgt_gribfile_dir}/${src_gribfile} | ||
${ECHO} "Processing grids for grid ${grid}" | ||
eval grid_specs=\${grid_specs_${grid}} | ||
Check warning Code scanning / shellcheck This { is literal. Check expression (missing ;/\n?) or quote it. Warning
This { is literal. Check expression (missing ;/\n?) or quote it.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
Check warning Code scanning / shellcheck This } is literal. Check expression (missing ;/\n?) or quote it. Warning
This } is literal. Check expression (missing ;/\n?) or quote it.
|
||
wgrib2 ${postDir}/../${src_gribfile} -set_grib_type c3 -new_grid_winds grid \ | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
-new_grid_interpolation bilinear \ | ||
-new_grid ${grid_specs} ${tgt_gribfile} | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
done | ||
|
||
# make links for full domain | ||
tgt_gribfile_dir=${postDir}/full | ||
${MKDIR} -p ${tgt_gribfile_dir} | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
cd ${tgt_gribfile_dir} | ||
Check warning Code scanning / shellcheck Use 'cd ... || exit' or 'cd ... || return' in case cd fails. Warning
Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|
||
${LN} -fs ../../${src_gribfile} | ||
Check notice Code scanning / shellcheck Double quote to prevent globbing and word splitting. Note
Double quote to prevent globbing and word splitting.
|