def load_burnin_x_temp(cb, x_temp): # burnin_id_dict = {2:"8f334a00-dd2c-e911-a2c5-c4346bcb7273", # 3:"90334a00-dd2c-e911-a2c5-c4346bcb7273", # 4:"91334a00-dd2c-e911-a2c5-c4346bcb7273", # 5:"92334a00-dd2c-e911-a2c5-c4346bcb7273", # 6:"93334a00-dd2c-e911-a2c5-c4346bcb7273", # 7:"94334a00-dd2c-e911-a2c5-c4346bcb7273", # 8:"95334a00-dd2c-e911-a2c5-c4346bcb7273", # 9:"96334a00-dd2c-e911-a2c5-c4346bcb7273", # 10:"97334a00-dd2c-e911-a2c5-c4346bcb7273"} burnin_id_dict = {2:"f80b7373-da2d-e911-a2c5-c4346bcb7273", 3:"f90b7373-da2d-e911-a2c5-c4346bcb7273", 4:"fa0b7373-da2d-e911-a2c5-c4346bcb7273", 5:"fb0b7373-da2d-e911-a2c5-c4346bcb7273", 6:"fc0b7373-da2d-e911-a2c5-c4346bcb7273", 7:"fd0b7373-da2d-e911-a2c5-c4346bcb7273", 8:"fe0b7373-da2d-e911-a2c5-c4346bcb7273", 9:"000c7373-da2d-e911-a2c5-c4346bcb7273", 10:"010c7373-da2d-e911-a2c5-c4346bcb7273"} sim = retrieve_simulation(burnin_id_dict[x_temp]) serialized_file_path = sim.get_path() cb.update_params({ 'Serialized_Population_Path': os.path.join(serialized_file_path, 'output'), # 'Serialized_Population_Filenames': ['state-19710.dtk'] 'Serialized_Population_Filenames': ['state-19710-000.dtk', 'state-19710-001.dtk'] }) return {"x_temp": x_temp}
def add_simulation(self, simulation): from simtools.DataAccess.Schema import Simulation if not isinstance(simulation, Simulation): simulation = retrieve_simulation(simulation) self.filter_simulations([simulation]) self.experiments.add(simulation.experiment)
def draw_from_burnin(cb, burnin_sim_id): sim = retrieve_simulation(burnin_sim_id) serialized_file_path = sim.get_path() cb.update_params({ 'Serialized_Population_Path': os.path.join(serialized_file_path, 'output'), 'Serialized_Population_Filenames': ['state-19710-000.dtk', 'state-19710-001.dtk'] })
def draw_from_burnin(cb, burnin_sim_id): sim = retrieve_simulation(burnin_sim_id) serialized_file_path = sim.get_path() cb.update_params({ 'Serialized_Population_Path': os.path.join(serialized_file_path, 'output'), 'Serialized_Population_Filenames': ['state-{}.dtk'.format(str(time).zfill(5)) for time in [200]] })
def add_simulation(self, simulation): from simtools.DataAccess.Schema import Simulation if not isinstance(simulation, Simulation): simulation = retrieve_simulation(simulation) experiment = simulation.experiment if experiment.exp_id not in self.experiments_simulations: self.experiments_simulations[experiment.exp_id] = [simulation] else: self.experiments_simulations[experiment.exp_id].append(simulation)
def draw_from_burnin(cb, burnin_sim_id, t, n_cores=2): sim = retrieve_simulation(burnin_sim_id) serialized_file_path = sim.get_path() if n_cores == 1: raise NotImplementedError() cb.update_params({ 'Serialized_Population_Path': os.path.join(serialized_file_path, 'output'), 'Serialized_Population_Filenames': [ 'state-{}-{}.dtk'.format(str(t).zfill(5), str(c).zfill(3)) for c in range(n_cores) ] })
def retrieve_item(itemid): """ Return the object identified by id. Can be an experiment, a suite or a batch. If it is a suite, all experiments with this suite_id will be returned. """ # First try to get an experiment from simtools.Utilities.Experiments import retrieve_experiment from simtools.DataAccess.DataStore import DataStore from simtools.Utilities.COMPSUtilities import exps_for_suite_id from simtools.Utilities.Experiments import retrieve_simulation # Try experiments first try: return retrieve_experiment(itemid) except: pass # This was not an experiment, maybe a batch ? batch = DataStore.get_batch_by_id(itemid) if batch: return batch batch = DataStore.get_batch_by_name(itemid) if batch: return batch # Still no item found -> test the suites exps = DataStore.get_experiments_by_suite(itemid) if exps: return exps # Still no item found -> test the simulations sim = DataStore.get_simulation(itemid) if sim: return sim # Still not -> last chance is a COMPS suite exps = exps_for_suite_id(itemid) if exps: return [retrieve_experiment(str(exp.id)) for exp in exps] # Nothing, consider COMPS simulation try: return retrieve_simulation(itemid) except: pass # Didnt find anything sorry raise (Exception('Could not find any item corresponding to %s' % itemid))
def collect_experiments_simulations(ids): experiments = dict() simulations = dict() if not ids: return experiments, simulations # For each, treat it differently depending on what it is for itemid in ids: item = retrieve_item(itemid) # We got back a list of experiment (itemid was a suite) if isinstance(item, list): experiments.update({i.exp_id: i for i in item}) elif isinstance(item, Experiment): experiments[item.exp_id] = item elif isinstance(item, Simulation): simulations[item.id] = item elif isinstance(item, Batch): # We have to retrieve_experiment even if we already have the experiment object # to make sure we are loading the simulations associated with it experiments.update({i.exp_id: retrieve_experiment(i.exp_id) for i in item.experiments}) simulations.update({i.id: retrieve_simulation(i.id) for i in item.simulations}) return experiments, simulations
set(sims_this_rd["id"]) & set(available_sims["id"])) sims_so_far["sample"] = list( set(sims_this_rd["sample"]) & set(available_sims["sample"])) rounds_so_far.append(r) print( "For all rounds included so far: {} -- there are {} sims that fit all criteria." .format(rounds_so_far, len(sims_so_far["id"]))) available_sims = sims_so_far.copy() print("Samples : {}".format(available_sims["sample"])) if len(available_sims) > 0: am = AnalyzeManager() for sim_id in available_sims["id"]: am.add_simulation(retrieve_simulation(sim_id)) am.add_analyzer( comparison_channel_plotter( "Blood Smear Parasite Prevalence", filenames=['output/ReportMalariaFilteredCatchment.json'], reference_data=prev_ref_data, ref_date=ref_date, legend=False, working_dir=catch_folder, save_type="other", save_name="excl_prev_test")) am.analyze() plt.figure()