[Dart-dev] DART/branches Revision: 12891

dart at ucar.edu dart at ucar.edu
Wed Oct 3 08:31:47 MDT 2018


thoar at ucar.edu
2018-10-03 08:31:47 -0600 (Wed, 03 Oct 2018)
62
Hopefully this is the last change to replicate the git repo.




Modified: DART/branches/rma_wrfHydro/R/PlotEnsTimeSeries.R
===================================================================
--- DART/branches/rma_wrfHydro/R/PlotEnsTimeSeries.R	2018-10-03 14:09:02 UTC (rev 12890)
+++ DART/branches/rma_wrfHydro/R/PlotEnsTimeSeries.R	2018-10-03 14:31:47 UTC (rev 12891)
@@ -25,7 +25,7 @@
     pinfo <- list()
     pinfo$truth_file  = 'True_State.nc'
     pinfo$diagn_file  = 'Prior_Diag.nc'
-    pinfo$model       = 'wrfHydro'      ## not really necessary currently
+    pinfo$model       = 'wrf_hydro'      ## not really necessary currently
 
     pinfo$var         = 'qlink1'
     ##pinfo$var_inds  = which(trimws(ncdump("../DOMAIN/RouteLink.nc",'gages', q=TRUE))!='')

Modified: DART/branches/rma_wrfHydro/models/wrf_hydro/hydro_dart_py/hydrodartpy/core/advance_ensemble.py
===================================================================
--- DART/branches/rma_wrfHydro/models/wrf_hydro/hydro_dart_py/hydrodartpy/core/advance_ensemble.py	2018-10-03 14:09:02 UTC (rev 12890)
+++ DART/branches/rma_wrfHydro/models/wrf_hydro/hydro_dart_py/hydrodartpy/core/advance_ensemble.py	2018-10-03 14:31:47 UTC (rev 12891)
@@ -1,10 +1,13 @@
 import argparse
+import multiprocessing
 import os
+import pathlib
 import pickle
+import shutil
 import sys
-import wrfhydropy
+from wrfhydropy.core.ensemble_tools import mute
+import yaml
 
-
 # advance_ensemble --help
 # Will print the help.
 parser = argparse.ArgumentParser(
@@ -77,18 +80,68 @@
     default=None
 )
 
+parser.add_argument(
+    '--hold',
+    required=False,
+    metavar='holdflag',
+    type=bool,
+    help='Flag to hold the job array. (Default = False).',
+    default=False
+)
 
+
 args = parser.parse_args()
 
-hydro_dart_run = pickle.load(open(args.run_dir + '/experiment_dir/HydroDartRun.pkl', 'rb'))
 
-hydro_dart_run.advance_ensemble(
-    model_start_time=args.model_start_time,
-    model_end_time=args.model_end_time,
-    job_entry_cmd=args.job_entry_cmd,
-    job_exit_cmd=args.job_exit_cmd,
-    afterok=args.afterok,
-    afterany=args.afterany
-)
+def parallel_update_job(member_dir):
 
+    orig_dir = os.getcwd()
+    os.chdir(str(member_dir))
+
+    shutil.rmtree('previous_job_ens_adv', ignore_errors=True)
+    shutil.move('job_ens_adv', 'previous_job_ens_adv')
+    os.mkdir('job_ens_adv')
+
+    sim = pickle.load(open("WrfHydroSim.pkl", "rb"))
+    job = sim.jobs[-1]
+
+    new_start_time = job.model_end_time
+    new_end_time = new_start_time + (job.model_end_time - job.model_start_time)
+
+    print('new_start_time: ', new_start_time)
+    print('new_end_time: ', new_end_time)
+
+    job._model_start_time = new_start_time
+    job._model_end_time = new_end_time
+    job._set_hrldas_times()
+    job._set_hydro_times()
+    job._write_namelists()
+
+    sim.jobs = [job]
+    sim.pickle('WrfHydroSim.pkl')
+
+    os.chdir(orig_dir)
+
+
+run_dir = pathlib.Path(args.run_dir)
+experiment_dir = run_dir / 'experiment_dir'
+config_file = sorted(experiment_dir.glob("*.original.*.yaml"))[0]
+with open(config_file) as ff:
+    config = yaml.safe_load(ff)
+
+# Run the current ensemble
+n_concurrent = config['run_experiment']['dart']['scheduler']['ppn_max'] - 1
+e = pickle.load(open('WrfHydroEnsembleSim.pkl', 'rb'))
+e.run(n_concurrent=n_concurrent)
+


More information about the Dart-dev mailing list