diff --git a/PE_CBL.py b/PE_CBL.py index e37393f049d3d61ef810a91503c29ae4183e3794..f348c9ca395331fd027ffc0c57e258904141cadc 100644 --- a/PE_CBL.py +++ b/PE_CBL.py @@ -98,10 +98,10 @@ if __name__ == '__main__': # Decide what figures to plot fig01 = False fig02 = True - fig03 = False - fig04 = False - fig05 = False - fig06 = False + fig03 = True + fig04 = True + fig05 = True + fig06 = True fig07 = True fig08 = True @@ -110,9 +110,11 @@ if __name__ == '__main__': opt02 = False # assimilation of profiles at two times # Whether or not to run experiments without parameter estimation + # Applies only to sets B&C; no-PE run is always computed for experiments A&D noPE_runs = False - # Default PE experiment + ############################################################################ + # Experiment A (control) # Create a copy of the default settings cbl_settings_A = dict(default_cbl_settings) da_settings_A = dict(default_da_settings) @@ -148,6 +150,279 @@ if __name__ == '__main__': exp_A_noPE = experiment(da_settings_A_noPE) pickle.dump(exp_A_noPE, open('exp_A_noPE.pickle', 'wb')) + ######################################################################## + # Experiment B1 + # Create a copy of the default settings + # Then re-use the available nature run and derived information + cbl_settings_B1 = dict(default_cbl_settings) + da_settings_B1 = dict(default_da_settings) + da_settings_B1['nr'] = deepcopy(nature_run) + da_settings_B1['truths'] = truths + da_settings_B1['observations'] = observations + + # Change settings as necessary + cbl_settings_B1['perturbations_theta_amplitude'] = sigma_b_init*10 + cbl_settings_B1['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + da_settings_B1['cbl_settings'] = cbl_settings_B1 + da_settings_B1['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as + + # Run and save to disk + try: + exp_B1 = pickle.load(open("exp_B1.pickle", "rb")) + except: + exp_B1 = experiment(da_settings_B1) + setattr(exp_B1,'label','B1') + pickle.dump(exp_B1, open('exp_B1.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_B1_noPE = dict(cbl_settings_B1) + da_settings_B1_noPE = dict(da_settings_B1) + cbl_settings_B1_noPE['do_parameter_estimation'] = False + da_settings_B1_noPE['nr'] = deepcopy(nature_run) + da_settings_B1_noPE['nr'].do_parameter_estimation = False + da_settings_B1_noPE['cbl_settings'] = cbl_settings_B1_noPE + + # Run and save to disk + try: + exp_B1_noPE = pickle.load(open("exp_B1_noPE.pickle", "rb")) + except: + exp_B1_noPE = experiment(da_settings_B1_noPE) + pickle.dump(exp_B1_noPE, open('exp_B1_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment B2 + # Create a copy of the default settings + # Then re-use the available nature run and derived information + cbl_settings_B2 = dict(default_cbl_settings) + da_settings_B2 = dict(default_da_settings) + da_settings_B2['nr'] = deepcopy(nature_run) + da_settings_B2['truths'] = truths + da_settings_B2['observations'] = observations + + # Change settings as necessary + cbl_settings_B2['perturbations_theta_amplitude'] = sigma_b_init + cbl_settings_B2['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + da_settings_B2['cbl_settings'] = cbl_settings_B2 + da_settings_B2['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 + + # Run and save to disk + try: + exp_B2 = pickle.load(open("exp_B2.pickle", "rb")) + except: + exp_B2 = experiment(da_settings_B2) + setattr(exp_B2,'label','B2') + pickle.dump(exp_B2, open('exp_B2.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_B2_noPE = dict(cbl_settings_B2) + da_settings_B2_noPE = dict(da_settings_B2) + cbl_settings_B2_noPE['do_parameter_estimation'] = False + da_settings_B2_noPE['nr'] = deepcopy(nature_run) + da_settings_B2_noPE['nr'].do_parameter_estimation = False + da_settings_B2_noPE['cbl_settings'] = cbl_settings_B2_noPE + + # Run and save to disk + try: + exp_B2_noPE = pickle.load(open("exp_B2_noPE.pickle", "rb")) + except: + exp_B2_noPE = experiment(da_settings_B2_noPE) + pickle.dump(exp_B2_noPE, open('exp_B2_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment B3 + # Create a copy of the default settings + # Then re-use the available nature run and derived information + cbl_settings_B3 = dict(default_cbl_settings) + da_settings_B3 = dict(default_da_settings) + da_settings_B3['nr'] = deepcopy(nature_run) + da_settings_B3['truths'] = truths + da_settings_B3['observations'] = observations + + # Change settings as necessary + cbl_settings_B3['perturbations_theta_amplitude'] = sigma_b_init*10 + cbl_settings_B3['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + da_settings_B3['cbl_settings'] = cbl_settings_B3 + da_settings_B3['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 + + # Run and save to disk + try: + exp_B3 = pickle.load(open("exp_B3.pickle", "rb")) + except: + exp_B3 = experiment(da_settings_B3) + setattr(exp_B3,'label','B3') + pickle.dump(exp_B3, open('exp_B3.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_B3_noPE = dict(cbl_settings_B3) + da_settings_B3_noPE = dict(da_settings_B3) + cbl_settings_B3_noPE['do_parameter_estimation'] = False + da_settings_B3_noPE['nr'] = deepcopy(nature_run) + da_settings_B3_noPE['nr'].do_parameter_estimation = False + da_settings_B3_noPE['cbl_settings'] = cbl_settings_B3_noPE + + # Run and save to disk + try: + exp_B3_noPE = pickle.load(open("exp_B3_noPE.pickle", "rb")) + except: + exp_B3_noPE = experiment(da_settings_B3_noPE) + pickle.dump(exp_B3_noPE, open('exp_B3_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment B4 + # Create a copy of the default settings + cbl_settings_B4 = dict(default_cbl_settings) + da_settings_B4 = dict(default_da_settings) + + # Change settings as necessary + # Changes include generation of observations, so the existing nature run + # can't be reused. + cbl_settings_B4['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + da_settings_B4['cbl_settings'] = cbl_settings_B4 + da_settings_B4['obs_error_sdev_generate'] = np.ones(nobs)*sigma_o_as*5 + da_settings_B4['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 + + # Run and save to disk + try: + exp_B4 = pickle.load(open("exp_B4.pickle", "rb")) + except: + exp_B4 = experiment(da_settings_B4) + setattr(exp_B4,'label','B4') + pickle.dump(exp_B4, open('exp_B4.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_B4_noPE = dict(cbl_settings_B4) + da_settings_B4_noPE = dict(da_settings_B4) + cbl_settings_B4_noPE['do_parameter_estimation'] = False + da_settings_B4_noPE['cbl_settings'] = cbl_settings_B4_noPE + + # Run and save to disk + try: + exp_B4_noPE = pickle.load(open("exp_B4_noPE.pickle", "rb")) + except: + exp_B4_noPE = experiment(da_settings_B4_noPE) + pickle.dump(exp_B4_noPE, open('exp_B4_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment C1 + # Create a copy of the default settings + cbl_settings_C1 = dict(default_cbl_settings) + da_settings_C1 = dict(default_da_settings) + + # Re-use the available nature run and derived information + da_settings_C1['nr'] = deepcopy(nature_run) + da_settings_C1['truths'] = truths + da_settings_C1['observations'] = observations + + # Change settings as necessary + cbl_settings_C1['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + cbl_settings_C1['is_cgrad'] = False + da_settings_C1['cbl_settings'] = cbl_settings_C1 + + # Run and save to disk + try: + exp_C1 = pickle.load(open("exp_C1.pickle", "rb")) + except: + exp_C1 = experiment(da_settings_C1) + setattr(exp_C1,'label','C1') + pickle.dump(exp_C1, open('exp_C1.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_C1_noPE = dict(cbl_settings_C1) + da_settings_C1_noPE = dict(da_settings_C1) + cbl_settings_C1_noPE['do_parameter_estimation'] = False + da_settings_C1_noPE['cbl_settings'] = cbl_settings_C1_noPE + + # Run and save to disk + try: + exp_C1_noPE = pickle.load(open("exp_C1_noPE.pickle", "rb")) + except: + exp_C1_noPE = experiment(da_settings_C1_noPE) + pickle.dump(exp_C1_noPE, open('exp_C1_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment C2 + # Create a copy of the default settings + cbl_settings_C2 = dict(default_cbl_settings) + da_settings_C2 = dict(default_da_settings) + + # Re-use the available nature run and derived information + da_settings_C2['nr'] = deepcopy(nature_run) + da_settings_C2['truths'] = truths + da_settings_C2['observations'] = observations + + # Change settings as necessary + cbl_settings_C2['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + cbl_settings_C2['Hmax'] = 0.15 + da_settings_C2['cbl_settings'] = cbl_settings_C2 + + # Run and save to disk + try: + exp_C2 = pickle.load(open("exp_C2.pickle", "rb")) + except: + exp_C2 = experiment(da_settings_C2) + setattr(exp_C2,'label','C2') + pickle.dump(exp_C2, open('exp_C2.pickle', 'wb')) + + if noPE_runs: + # Corresponding experiment without parameter estimation + cbl_settings_C2_noPE = dict(cbl_settings_C2) + da_settings_C2_noPE = dict(da_settings_C2) + cbl_settings_C2_noPE['do_parameter_estimation'] = False + da_settings_C2_noPE['cbl_settings'] = cbl_settings_C2_noPE + + # Run and save to disk + try: + exp_C2_noPE = pickle.load(open("exp_C2_noPE.pickle", "rb")) + except: + exp_C2_noPE = experiment(da_settings_C2_noPE) + pickle.dump(exp_C2_noPE, open('exp_C2_noPE.pickle', 'wb')) + + ######################################################################## + # Experiment D + # Create a copy of the default settings + cbl_settings_D = dict(default_cbl_settings) + da_settings_D = dict(default_da_settings) + + # Change settings as necessary + # Changes include generation of observations, so the existing nature run + # can't be reused. + cbl_settings_D['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters + cbl_settings_D['perturbations_theta_amplitude'] = sigma_b_init*10 + cbl_settings_D['Hmax'] = 0.15 + cbl_settings_D['is_cgrad'] = False + cbl_settings_D['simulate_error_growth'] = True + cbl_settings_D['error_growth_perturbations_amplitude'] = sigma_b_init*5 + da_settings_D['cbl_settings'] = cbl_settings_D + da_settings_D['obs_error_sdev_generate'] = np.ones(nobs)*sigma_o_as*5 + da_settings_D['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 + + # Run and save to disk + try: + exp_D = pickle.load(open("exp_D.pickle", "rb")) + except: + exp_D = experiment(da_settings_D) + setattr(exp_D,'label','D') + pickle.dump(exp_D, open('exp_D.pickle', 'wb')) + + # Experiment matching D, but without parameter estimation + cbl_settings_D_noPE = dict(cbl_settings_D) + da_settings_D_noPE = dict(da_settings_D) + cbl_settings_D_noPE['do_parameter_estimation'] = False + da_settings_D_noPE['cbl_settings'] = cbl_settings_D_noPE + + try: + exp_D_noPE = pickle.load(open("exp_D_noPE.pickle", "rb")) + except: + exp_D_noPE = experiment(da_settings_D_noPE) + pickle.dump(exp_A_noPE, open('exp_D_noPE.pickle', 'wb')) + + ######################################################################## + if fig01: # Create a copy of the default settings @@ -234,7 +509,6 @@ if __name__ == '__main__': if fig02: - # Make plots fig, [[ax0, ax1], [ax2, ax3]] = p.subplots(2,2,constrained_layout=True) fig.set_size_inches(6,6) # @@ -272,137 +546,6 @@ if __name__ == '__main__': if fig04: - ######################################################################## - # Create a copy of the default settings - # Then re-use the available nature run and derived information - cbl_settings_B1 = dict(default_cbl_settings) - da_settings_B1 = dict(default_da_settings) - da_settings_B1['nr'] = deepcopy(nature_run) - da_settings_B1['truths'] = truths - da_settings_B1['observations'] = observations - - # Change settings as necessary - cbl_settings_B1['perturbations_theta_amplitude'] = sigma_b_init*10 - cbl_settings_B1['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - da_settings_B1['cbl_settings'] = cbl_settings_B1 - da_settings_B1['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as - - # Run and save to disk - exp_B1 = experiment(da_settings_B1) - setattr(exp_B1,'label','B1') - pickle.dump(exp_B1, open('exp_B1.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_B1_noPE = dict(cbl_settings_B1) - da_settings_B1_noPE = dict(da_settings_B1) - cbl_settings_B1_noPE['do_parameter_estimation'] = False - da_settings_B1_noPE['nr'] = deepcopy(nature_run) - da_settings_B1_noPE['nr'].do_parameter_estimation = False - da_settings_B1_noPE['cbl_settings'] = cbl_settings_B1_noPE - - # Run and save to disk - exp_B1_noPE = experiment(da_settings_B1_noPE) - pickle.dump(exp_B1_noPE, open('exp_B1_noPE.pickle', 'wb')) - - ######################################################################## - # Create a copy of the default settings - # Then re-use the available nature run and derived information - cbl_settings_B2 = dict(default_cbl_settings) - da_settings_B2 = dict(default_da_settings) - da_settings_B2['nr'] = deepcopy(nature_run) - da_settings_B2['truths'] = truths - da_settings_B2['observations'] = observations - - # Change settings as necessary - cbl_settings_B2['perturbations_theta_amplitude'] = sigma_b_init - cbl_settings_B2['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - da_settings_B2['cbl_settings'] = cbl_settings_B2 - da_settings_B2['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 - - # Run and save to disk - exp_B2 = experiment(da_settings_B2) - setattr(exp_B2,'label','B2') - pickle.dump(exp_B2, open('exp_B2.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_B2_noPE = dict(cbl_settings_B2) - da_settings_B2_noPE = dict(da_settings_B2) - cbl_settings_B2_noPE['do_parameter_estimation'] = False - da_settings_B2_noPE['nr'] = deepcopy(nature_run) - da_settings_B2_noPE['nr'].do_parameter_estimation = False - da_settings_B2_noPE['cbl_settings'] = cbl_settings_B2_noPE - - # Run and save to disk - exp_B2_noPE = experiment(da_settings_B2_noPE) - pickle.dump(exp_B2_noPE, open('exp_B2_noPE.pickle', 'wb')) - - ######################################################################## - # Create a copy of the default settings - # Then re-use the available nature run and derived information - cbl_settings_B3 = dict(default_cbl_settings) - da_settings_B3 = dict(default_da_settings) - da_settings_B3['nr'] = deepcopy(nature_run) - da_settings_B3['truths'] = truths - da_settings_B3['observations'] = observations - - # Change settings as necessary - cbl_settings_B3['perturbations_theta_amplitude'] = sigma_b_init*10 - cbl_settings_B3['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - da_settings_B3['cbl_settings'] = cbl_settings_B3 - da_settings_B3['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 - - # Run and save to disk - exp_B3 = experiment(da_settings_B3) - setattr(exp_B3,'label','B3') - pickle.dump(exp_B3, open('exp_B3.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_B3_noPE = dict(cbl_settings_B3) - da_settings_B3_noPE = dict(da_settings_B3) - cbl_settings_B3_noPE['do_parameter_estimation'] = False - da_settings_B3_noPE['nr'] = deepcopy(nature_run) - da_settings_B3_noPE['nr'].do_parameter_estimation = False - da_settings_B3_noPE['cbl_settings'] = cbl_settings_B3_noPE - - # Run and save to disk - exp_B3_noPE = experiment(da_settings_B3_noPE) - pickle.dump(exp_B3_noPE, open('exp_B3_noPE.pickle', 'wb')) - - ######################################################################## - # Create a copy of the default settings - cbl_settings_B4 = dict(default_cbl_settings) - da_settings_B4 = dict(default_da_settings) - - # Change settings as necessary - # Changes include generation of observations, so the existing nature run - # can't be reused. - cbl_settings_B4['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - da_settings_B4['cbl_settings'] = cbl_settings_B4 - da_settings_B4['obs_error_sdev_generate'] = np.ones(nobs)*sigma_o_as*5 - da_settings_B4['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 - - # Run and save to disk - exp_B4 = experiment(da_settings_B4) - setattr(exp_B4,'label','B4') - pickle.dump(exp_B4, open('exp_B4.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_B4_noPE = dict(cbl_settings_B4) - da_settings_B4_noPE = dict(da_settings_B4) - cbl_settings_B4_noPE['do_parameter_estimation'] = False - da_settings_B4_noPE['cbl_settings'] = cbl_settings_B4_noPE - - # Run and save to disk - exp_B4_noPE = experiment(da_settings_B4_noPE) - pickle.dump(exp_B4_noPE, open('exp_B4_noPE.pickle', 'wb')) - - ######################################################################## - - # Make plots fig, [[ax1, ax2], [ax3, ax4]] = p.subplots(2,2,constrained_layout=True) fig.set_size_inches(6,4) # @@ -436,70 +579,6 @@ if __name__ == '__main__': if fig05: - ######################################################################## - # Create a copy of the default settings - cbl_settings_C1 = dict(default_cbl_settings) - da_settings_C1 = dict(default_da_settings) - - # Re-use the available nature run and derived information - da_settings_C1['nr'] = deepcopy(nature_run) - da_settings_C1['truths'] = truths - da_settings_C1['observations'] = observations - - # Change settings as necessary - cbl_settings_C1['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - cbl_settings_C1['is_cgrad'] = False - da_settings_C1['cbl_settings'] = cbl_settings_C1 - - # Run and save to disk - exp_C1 = experiment(da_settings_C1) - setattr(exp_C1,'label','C1') - pickle.dump(exp_C1, open('exp_C1.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_C1_noPE = dict(cbl_settings_C1) - da_settings_C1_noPE = dict(da_settings_C1) - cbl_settings_C1_noPE['do_parameter_estimation'] = False - da_settings_C1_noPE['cbl_settings'] = cbl_settings_C1_noPE - - # Run and save to disk - exp_C1_noPE = experiment(da_settings_C1_noPE) - pickle.dump(exp_C1_noPE, open('exp_C1_noPE.pickle', 'wb')) - - ######################################################################## - # Create a copy of the default settings - cbl_settings_C2 = dict(default_cbl_settings) - da_settings_C2 = dict(default_da_settings) - - # Re-use the available nature run and derived information - da_settings_C2['nr'] = deepcopy(nature_run) - da_settings_C2['truths'] = truths - da_settings_C2['observations'] = observations - - # Change settings as necessary - cbl_settings_C2['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - cbl_settings_C2['Hmax'] = 0.15 - da_settings_C2['cbl_settings'] = cbl_settings_C2 - - # Run and save to disk - exp_C2 = experiment(da_settings_C2) - setattr(exp_C2,'label','C2') - pickle.dump(exp_C2, open('exp_C2.pickle', 'wb')) - - if noPE_runs: - # Corresponding experiment without parameter estimation - cbl_settings_C2_noPE = dict(cbl_settings_C2) - da_settings_C2_noPE = dict(da_settings_C2) - cbl_settings_C2_noPE['do_parameter_estimation'] = False - da_settings_C2_noPE['cbl_settings'] = cbl_settings_C2_noPE - - # Run and save to disk - exp_C2_noPE = experiment(da_settings_C2_noPE) - pickle.dump(exp_C2_noPE, open('exp_C2_noPE.pickle', 'wb')) - - ######################################################################## - # Make plots fig, [ax1, ax2] = p.subplots(1,2,constrained_layout=True) fig.set_size_inches(6,2) # @@ -550,29 +629,6 @@ if __name__ == '__main__': if fig07: - # Create a copy of the default settings - cbl_settings_D = dict(default_cbl_settings) - da_settings_D = dict(default_da_settings) - - # Change settings as necessary - # Changes include generation of observations, so the existing nature run - # can't be reused. - cbl_settings_D['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - cbl_settings_D['perturbations_theta_amplitude'] = sigma_b_init*10 - cbl_settings_D['Hmax'] = 0.15 - cbl_settings_D['is_cgrad'] = False - cbl_settings_D['simulate_error_growth'] = True - cbl_settings_D['error_growth_perturbations_amplitude'] = sigma_b_init*10 - da_settings_D['cbl_settings'] = cbl_settings_D - da_settings_D['obs_error_sdev_generate'] = np.ones(nobs)*sigma_o_as*5 - da_settings_D['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 - - # Run and save to disk - exp_D = experiment(da_settings_D) - setattr(exp_D,'label','D') - pickle.dump(exp_D, open('exp_D.pickle', 'wb')) - - # Make plots fig, [[ax0, ax1],[ax2,ax3]] = p.subplots(2,2,constrained_layout=True) fig.set_size_inches(6,6) # @@ -600,41 +656,15 @@ if __name__ == '__main__': if fig08: - # Create a copy of the default settings - cbl_settings_D = dict(default_cbl_settings) - da_settings_D = dict(default_da_settings) - - # Change settings as necessary - # Changes include generation of observations, so the existing nature run - # can't be reused. - cbl_settings_D['initial_perturbed_parameters'] = exp_A.da.initial_perturbed_parameters - cbl_settings_D['perturbations_theta_amplitude'] = sigma_b_init*10 - cbl_settings_D['Hmax'] = 0.15 - cbl_settings_D['is_cgrad'] = False - cbl_settings_D['simulate_error_growth'] = True - cbl_settings_D['error_growth_perturbations_amplitude'] = sigma_b_init*10 - da_settings_D['cbl_settings'] = cbl_settings_D - da_settings_D['obs_error_sdev_generate'] = np.ones(nobs)*sigma_o_as*10 - da_settings_D['obs_error_sdev_assimilate'] = np.ones(nobs)*sigma_o_as*10 - - # Experiment matching D, but without parameter estimation - cbl_settings_D_noPE = dict(cbl_settings_D) - da_settings_D_noPE = dict(da_settings_D) - cbl_settings_D_noPE['do_parameter_estimation'] = False - da_settings_D_noPE['cbl_settings'] = cbl_settings_D_noPE - - exp_D = pickle.load(open("exp_D.pickle", "rb")) - try: - exp_D_noPE = pickle.load(open("exp_D_noPE.pickle", "rb")) - except: - exp_D_noPE = experiment(da_settings_D_noPE) - pickle.dump(exp_A_noPE, open('exp_D_noPE.pickle', 'wb')) + experiments_pe = [exp_A] + experiments_nope = [exp_A_noPE] + labels = ["Exp. A"] + plot_diagnostics(experiments_pe,experiments_nope,labels,'fig08a.png') experiments_pe = [exp_D] experiments_nope = [exp_D_noPE] labels = ["Exp. D"] - - plot_diagnostics(experiments_pe,experiments_nope,labels,'fig08.png') + plot_diagnostics(experiments_pe,experiments_nope,labels,'fig08d.png') if opt01: