From 8936f983604886ce3659fef4979a5eb154b0e2fe Mon Sep 17 00:00:00 2001 From: Nick Bearson <nickb@ssec.wisc.edu> Date: Thu, 12 May 2022 08:25:51 -0500 Subject: [PATCH] initial version of input handling where we determine minutes of interest and then work our way back to files --- gridded_glm/libexec/_minute_gridder.py | 31 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/gridded_glm/libexec/_minute_gridder.py b/gridded_glm/libexec/_minute_gridder.py index 517afbe..ff36565 100644 --- a/gridded_glm/libexec/_minute_gridder.py +++ b/gridded_glm/libexec/_minute_gridder.py @@ -118,6 +118,11 @@ def get_goes_position(filenames): # we require that all files are from the same sensor and raise an exception if not raise ValueError("could not determine GOES position - did you provide a mix of satellites?") +def glm_filename_to_minute(glm_filename): + glminfo = parse_glm_filename(os.path.basename(glm_filename)) + ftime = glminfo[3] + ftime = ftime.replace(second = 0, microsecond=0) + return ftime def get_start_end(filenames, start_time=None, end_time=None): """Compute start and end time of data based on filenames.""" @@ -342,14 +347,28 @@ if __name__ == '__main__': # clean our temporary dir on exit atexit.register(shutil.rmtree, tempdir_path) - # do the gridding - 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) + minutes = [] + for f in args.filenames: + m = glm_filename_to_minute(f) + if m not in minutes: + minutes.append(m) gridded_files = [] - for subgrid in gridder_return: - for gridded_file in subgrid[1]: - gridded_files.append(gridded_file) + for m in minutes: + # grab all input files for this minute + minute_files = [] + for f in args.filenames: + if glm_filename_to_minute(f) == m: + minute_files.append(f) + minute_files = sorted(minute_files) + + # do the gridding + gridder, glm_filenames, start_time, end_time, grid_kwargs = grid_setup(minute_files, args, work_dir=tempdir_path) + gridder_return = gridder(glm_filenames, start_time, end_time, **grid_kwargs) + + for subgrid in gridder_return: + for gridded_file in subgrid[1]: + gridded_files.append(gridded_file) # we need to add attributes here due to an issue where satpy (or its dependencies) are # holding the input gridded file open until the process exits -- GitLab