[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