Skip to content
Snippets Groups Projects

ensure --ctr-lat and --ctr-lon are valid latitudes & longitudes

1 file
+ 12
4
Compare changes
  • Side-by-side
  • Inline
@@ -64,7 +64,15 @@ import dask
dask.config.set(num_workers=1)
def create_parser():
def bounded_float(afloat, inclusive_min, inclusive_max):
value = float(afloat)
if inclusive_min <= value <= inclusive_max:
return value
else:
raise argparse.ArgumentTypeError('valid range %s to %s' % (inclusive_min, inclusive_max))
import argparse
from functools import partial
prog = os.getenv('PROG_NAME', sys.argv[0])
parser = argparse.ArgumentParser(prog=prog,
description=parse_desc,
@@ -83,10 +91,10 @@ def create_parser():
"(default: full)")
parser.add_argument("-t", "--create-tiles", default=False, action='store_true',
help="create AWIPS-compatible tiles (default: off)")
parser.add_argument('--ctr-lat', metavar='latitude',
type=float, help='center latitude (required for meso)')
parser.add_argument('--ctr-lon', metavar='longitude',
type=float, help='center longitude (required for meso)')
parser.add_argument('--ctr-lat', metavar='LATITUDE',
type=partial(bounded_float, inclusive_min=-90, inclusive_max=90), help='center latitude (required for meso)')
parser.add_argument('--ctr-lon', metavar='LONGITUDE',
type=partial(bounded_float, inclusive_min=-180, inclusive_max=180), help='center longitude (required for meso)')
parser.add_argument('-r', "--realtime", default=False, action='store_true',
help="enable 'realtime' mode, where we expect only one input file,\n"
"find the surrounding trio, and automatically determine if a full minute\n"
Loading