Skip to content
Snippets Groups Projects
_glm_trio_picker.py 2.24 KiB
#!/usr/bin/env python3

import sys
import os
from glob import glob
from datetime import datetime
import subprocess
from glmtools.io.glm import parse_glm_filename

if __name__ == '__main__':
    # FIXME: handle args better if this goes beyond my testing
    _, glmfile = sys.argv

# bad (start of period)
#    glmfile = '/scratch/nickb/cspp-geo-grb-1.0/output/product/OR_GLM-L2-LCFA_G16_s20210131854000_e20210131854204_c20210131854225.nc'

# good (end of period)
#    glmfile = '/scratch/nickb/cspp-geo-grb-1.0/output/product/OR_GLM-L2-LCFA_G16_s20210131854400_e20210131855004_c20210131855027.nc'
#    glmfile = '/data/users/nickb/cspp-geo-gridded-glm/testing/2020-11-05/CLASS/OR_GLM-L2-LCFA_G16_s20203101529400_e20203101530004_c20203101530021.nc'

    # check that glmfile is actually a GLM file
    glminfo = parse_glm_filename(os.path.basename(glmfile))
    filename_starts = glminfo[3]
    filename_ends = glminfo[4]

    # if this isn't the last file of the minute, exit
    if filename_starts.second != 40:
        print("This is not the last GLM file from this minute. Exiting.")
        exit(0)

    # if this is the last file of the minute, grab all files of the minute (three)
    # example trio:
    # OR_GLM-L2-LCFA_G16_s20203101529000_e20203101529205_c20203101529215.nc
    # OR_GLM-L2-LCFA_G16_s20203101529200_e20203101529405_c20203101529430.nc
    # OR_GLM-L2-LCFA_G16_s20203101529400_e20203101530004_c20203101530021.nc
    globstring = "{}_{}_{}_s{}*".format(glminfo[0], glminfo[1], glminfo[2], glminfo[3].strftime("%Y%j%H%M"))
    fileglob = glob(os.path.join(os.path.dirname(glmfile), globstring))
    print("Gridding {} files".format(len(fileglob)))

    # and run gridded glm a'la:
    #    minute_gridder.sh \
    #     --goes-sector full \
    #     --create-tiles \
    #     ./2020-11-05/CLASS/OR_GLM-L2-LCFA_G16_s20203101529000_e20203101529205_c20203101529215.nc \
    #     ./2020-11-05/CLASS/OR_GLM-L2-LCFA_G16_s20203101529200_e20203101529405_c20203101529430.nc \
    #     ./2020-11-05/CLASS/OR_GLM-L2-LCFA_G16_s20203101529400_e20203101530004_c20203101530021.nc
    subprocess.run(["cspp-geo-gglm-minute-gridder.sh",
                    "--goes-sector", "full",
                    "--create-tiles",
                    fileglob[0], fileglob[1], fileglob[2]]
    )