diff --git a/gridded_glm/libexec/_minute_gridder.py b/gridded_glm/libexec/_minute_gridder.py index bca1ffc600ab80d7252ee9a7f8a68e67350b2889..517afbeddeb425eef7d353f08080434af1363b44 100644 --- a/gridded_glm/libexec/_minute_gridder.py +++ b/gridded_glm/libexec/_minute_gridder.py @@ -185,26 +185,21 @@ def get_outpath_base(args): return dsname -def grid_setup(args, work_dir=os.getcwd()): +def grid_setup(glm_files, args, work_dir=os.getcwd()): # When passed None for the minimum event or group counts, the gridder will skip # the check, saving a bit of time. min_events = None min_groups = None - for f in args.filenames: - if not os.path.exists(f): - log.error("Tried to grid file that does not exist: {}".format(f)) - exit(1) - if args.goes_sector == "meso" and (args.ctr_lat == None or args.ctr_lon == None): log.error("sector 'meso' requires --ctr-lat & --ctr-lon") exit(1) try: - start_time, end_time = get_start_end(args.filenames) + start_time, end_time = get_start_end(glm_files) except: log.error("Could not parse start & end times from one or more of the files provided:") - log.error(", ".join(args.filenames)) + log.error(", ".join(glm_files)) exit(1) base_date = datetime(start_time.year, start_time.month, start_time.day) @@ -212,7 +207,7 @@ def grid_setup(args, work_dir=os.getcwd()): outputpath = os.path.join(work_dir, get_outpath_base(args)) # GLMTools expects a template in addition to the path - goes_position = get_goes_position(args.filenames) + goes_position = get_goes_position(glm_files) resln = get_resolution(args) view = get_GOESR_grid(position=goes_position, @@ -276,7 +271,7 @@ def grid_setup(args, work_dir=os.getcwd()): if (proj_name == 'pixel_grid') or (proj_name == 'geos'): grid_kwargs['pixel_coords'] = fixed_grid grid_kwargs['ellipse_rev'] = -1 # -1 (default) = infer from date in each GLM file - return gridder, args.filenames, start_time, end_time, grid_kwargs + return gridder, glm_files, start_time, end_time, grid_kwargs def get_cspp_gglm_version(): @@ -318,6 +313,7 @@ if __name__ == '__main__': log.info("Starting GLM Gridding") log.debug("Starting script with: %s", sys.argv) + # handle the realtime flag if args.realtime: if len(args.filenames) != 1: log.error("realtime mode only accepts one input file") @@ -331,6 +327,12 @@ if __name__ == '__main__': exit(0) args.filenames = fileglob + # check that all of our inputs exist + for f in args.filenames: + if not os.path.exists(f): + log.error("Tried to grid file that does not exist: {}".format(f)) + exit(1) + # set up output dir os.makedirs(args.output_dir, exist_ok=True) @@ -341,7 +343,7 @@ if __name__ == '__main__': atexit.register(shutil.rmtree, tempdir_path) # do the gridding - gridder, glm_filenames, start_time, end_time, grid_kwargs = grid_setup(args, work_dir=tempdir_path) + gridder, glm_filenames, start_time, end_time, grid_kwargs = grid_setup(args.filenames, args, work_dir=tempdir_path) gridder_return = gridder(glm_filenames, start_time, end_time, **grid_kwargs) gridded_files = []