-
William Roberts authoredWilliam Roberts authored
quality_control.py 2.58 KiB
#!/usr/bin/env python3
# imported from aeri_armory
from aeri_armory.utils import file_finder, parser_setup
from plotting.quick_vis import create_vis
import glob
from aeri_qc import main
import logging
matplotlib_logger = logging.getLogger('matplotlib')
# set WARNING for Matplotlib
matplotlib_logger.setLevel(logging.WARNING)
logger = logging.getLogger(__name__)
def qc_and_vis(args):
if args.skip_qc and args.skip_quick_vis:
logger.warning('Both --skip-qc and --skip-quick-vis were specified. Nothing processed')
elif args.skip_qc:
logger.info(f'--skip-qc specified. Searching for QC files')
for d, files in file_finder.get_files(*args.inputs, extensions=['QC.nc'], exclude=args.exclude_days, file_format='%Y%m%d'):
for f in files:
try:
create_vis(f, output=args.output)
except Exception as e:
logger.exception(f'Skipping {f}:')
else:
for d, files in file_finder.get_files(*args.inputs, extensions=['SUM', 'CXS'], exclude=args.exclude_days):
try:
sum_file = None
b1cxs_file = None
b2cxs_file = None
f1cxs_file = None
f2cxs_file = None
for f in files:
if f.endswith('.SUM'):
sum_file = f
if f.endswith('B1.CXS'):
b1cxs_file = f
if f.endswith('B2.CXS'):
b2cxs_file = f
if f.endswith('F1.CXS'):
f1cxs_file = f
if f.endswith('F2.CXS'):
f2cxs_file = f
if files:
main.update_all(d, sum_file, b1cxs_file, b2cxs_file, f1cxs_file, f2cxs_file, args.output, force=args.force, hint=args.hint, skip_quick_vis=args.skip_quick_vis)
except Exception as e:
logger.exception(f'Skipping {d}:')
if __name__ == '__main__':
parser = parser_setup.get_parser()
parser.add_argument('--hint', help='inspect this file and others in similar time period more closely')
parser.add_argument('-f', '--force', action='store_true', help='Overwrite any existing QC files in output directory')
parser.add_argument('--skip-quick-vis', action='store_true', help='Skip the generation of quick vis images')
parser.add_argument('--skip-qc', action='store_true', help='Skip the generation of quality control files. Changes input to take a directory containing QC netcdf output')
args = parser.parse_args()
qc_and_vis(args)