def do_L2_batch(cf_level): #logger = pfp_log.change_logger_filename("pfp_log", "L2") for i in list(cf_level.keys()): cf_file_name = os.path.split(cf_level[i]) msg = "Starting L2 processing with " + cf_file_name[1] logger.info(msg) try: cf = pfp_io.get_controlfilecontents(cf_level[i]) infilename = pfp_io.get_infilenamefromcf(cf) ds1 = pfp_io.nc_read_series(infilename) if ds1.returncodes["value"] != 0: return ds2 = pfp_levels.l2qc(cf, ds1) outfilename = pfp_io.get_outfilenamefromcf(cf) nc_file = pfp_io.nc_open_write(outfilename) if nc_file is None: return pfp_io.nc_write_series(nc_file, ds2) msg = "Finished L2 processing with " + cf_file_name[1] logger.info(msg) logger.info("") except Exception: msg = "Error occurred during L2 processing " + cf_file_name[1] logger.error(msg) error_message = traceback.format_exc() logger.error(error_message) continue return
def do_run_l2(cfg=None): """ Purpose: Top level routine for running the L2 quality control. Usage: pfp_top_level.do_l2() Side effects: Creates an L2 netCDF file. Author: PRI Date: Back in the day Mods: December 2017: rewrite for use with new GUI """ try: logger.info("Starting L2 processing") if not cfg: cfg = pfp_io.load_controlfile() if len(cfg) == 0: logger.info("Quiting L2 processing (no control file)") return in_filepath = pfp_io.get_infilenamefromcf(cfg) if not pfp_utils.file_exists(in_filepath): in_filename = os.path.split(in_filepath) logger.error("File " + in_filename[1] + " not found") return ds1 = pfp_io.nc_read_series(in_filepath) ds2 = pfp_levels.l2qc(cfg, ds1) if ds2.returncodes["value"] != 0: logger.error("An error occurred during L2 processing") logger.error("") return out_filepath = pfp_io.get_outfilenamefromcf(cfg) nc_file = pfp_io.nc_open_write(out_filepath) pfp_io.nc_write_series(nc_file, ds2) logger.info("Finished L2 processing") if "Plots" in list(cfg.keys()): logger.info("Plotting L1 and L2 data") for nFig in cfg['Plots'].keys(): plt_cf = cfg['Plots'][str(nFig)] if 'Type' in plt_cf.keys(): if str(plt_cf['Type']).lower() == 'xy': pfp_plot.plotxy(cfg, nFig, plt_cf, ds1, ds2) else: pfp_plot.plottimeseries(cfg, nFig, ds1, ds2) else: pfp_plot.plottimeseries(cfg, nFig, ds1, ds2) logger.info("Finished plotting L1 and L2 data") except Exception: msg = " Error running L2, see below for details ..." logger.error(msg) error_message = traceback.format_exc() logger.error(error_message) logger.info("") return
def do_L2_batch(cf_level): for i in cf_level.keys(): cf_file_name = os.path.split(cf_level[i]) msg = "Starting L2 processing with " + cf_file_name[1] logger.info(msg) try: cf = pfp_io.get_controlfilecontents(cf_level[i]) infilename = pfp_io.get_infilenamefromcf(cf) ds1 = pfp_io.nc_read_series(infilename) ds2 = pfp_levels.l2qc(cf, ds1) outfilename = pfp_io.get_outfilenamefromcf(cf) ncFile = pfp_io.nc_open_write(outfilename) pfp_io.nc_write_series(ncFile, ds2) msg = "Finished L2 processing with " + cf_file_name[1] logger.info(msg) logger.info("") except Exception: msg = "Error occurred during L2 processing " + cf_file_name[1] logger.error(msg) error_message = traceback.format_exc() logger.error(error_message) continue return