5 from multiprocessing
import Pool
7 from pathlib
import Path
9 IODA_CONV_PATH = Path(__file__).parent/
"@SCRIPT_LIB_PATH@"
10 if not IODA_CONV_PATH.is_dir():
11 IODA_CONV_PATH = Path(__file__).parent/
'..'/
'lib-python'
12 sys.path.append(
str(IODA_CONV_PATH.resolve()))
14 import wrfda_ncdiag
as wrfdad
18 print(
"Processing run_radiances_obs:")
19 print(
"Processing:"+
str(radfile))
20 Diag = wrfdad.Radiances(radfile)
22 Diag.toIODAobs(outdir, dateSubDirs=datesubs)
27 ScriptName = os.path.basename(sys.argv[0])
30 ap = argparse.ArgumentParser()
31 ap.add_argument(
"-n",
"--nprocs",
32 help=
"Number of tasks/processors for multiprocessing")
33 ap.add_argument(
"input_dir", help=
"Path to concatenated WRFDA diag files")
34 ap.add_argument(
"-o",
"--obs_dir",
35 help=
"Path to directory to output observations")
36 ap.add_argument(
"-d",
"--date_subdirs",
37 help=
"Whether to place output observations in date-specific subdirectories")
39 MyArgs = ap.parse_args()
42 nprocs =
int(MyArgs.nprocs)
46 if MyArgs.date_subdirs:
47 print(MyArgs.date_subdirs)
48 print(bool(MyArgs.date_subdirs))
50 datesubs = bool(MyArgs.date_subdirs)
54 DiagDir = MyArgs.input_dir
56 obspool = Pool(processes=nprocs)
59 ObsDir = MyArgs.obs_dir
61 radfiles = glob.glob(DiagDir+
'/diags_*')
62 for radfile
in radfiles:
64 for p
in wrfdad.rad_platform_sensor_combos:
68 res = obspool.apply_async(run_radiances_obs, args=(radfile, ObsDir, datesubs))
def run_radiances_obs(radfile, outdir, datesubs)