def load_seperated_simulations(folder_name, plot_settings): folder_dir = 'save/{}'.format(folder_name) dir_list = all_folders_in_dir_with(folder_dir, 'sim') attrs_lists_all_sims_critical = [] attrs_lists_all_sims_sub_critical = [] for dir in dir_list: sim_name = dir[(dir.rfind('save/') + 5):] isings_list = load_isings_specific_path('{}/isings'.format(dir)) if plot_settings['attr'] == 'norm_avg_energy' or plot_settings[ 'attr'] == 'norm_food_and_ts_avg_energy': settings = load_settings(sim_name) calc_normalized_fitness(isings_list, plot_settings, settings) isings_list_seperated = seperate_isolated_populations(isings_list) isings_list_critical = isings_list_seperated[0] isings_list_sub_critical = isings_list_seperated[1] attrs_list_critical = [ attribute_from_isings(isings_crit, plot_settings['attr']) for isings_crit in isings_list_critical ] attrs_list_sub_critical = [ attribute_from_isings(isings_sub, plot_settings['attr']) for isings_sub in isings_list_sub_critical ] attrs_lists_all_sims_critical.append(attrs_list_critical) attrs_lists_all_sims_sub_critical.append(attrs_list_sub_critical) return attrs_lists_all_sims_critical, attrs_lists_all_sims_sub_critical
def load_data(sim_name, folder_name, dynamic_range_folder_includes, plot_settings): sim_dir = 'save/{}'.format(sim_name) attrs_list_each_food_num_all = [] attrs_list_each_food_num_critical = [] attrs_list_each_food_num_sub_critical = [] food_num_list = [] dir_list = all_folders_in_dir_with('{}/repeated_generations'.format(sim_dir), dynamic_range_folder_includes) for dir in dir_list: if plot_settings['compress_save_isings']: isings_list = load_isings_specific_path_decompress(dir) else: isings_list = load_isings_specific_path(dir) if plot_settings['only_copied']: isings_list = [choose_copied_isings(isings) for isings in isings_list] if plot_settings['attr'] == 'norm_avg_energy' or plot_settings['attr'] == 'norm_food_and_ts_avg_energy': settings = load_settings(sim_name) calc_normalized_fitness(isings_list, plot_settings, settings) # MERGING INDIVIDUALS OF ALL REPEATS WITH SIMILAR SETTINGS INTO ONE LIST: isings = make_2d_list_1d(isings_list) # isings_populations_seperated = seperate_isolated_populations([isings]) # isings_critical = isings_populations_seperated[0][0] # isings_sub_critical = isings_populations_seperated[1][0] attrs_list_each_food_num_all.append(attribute_from_isings(isings, plot_settings['attr'])) # attrs_list_each_food_num_critical.append(attribute_from_isings(isings_critical, attr)) # attrs_list_each_food_num_sub_critical.append(attribute_from_isings(isings_sub_critical, attr)) food_num_list.append(get_int_end_of_str(dir)) return attrs_list_each_food_num_all, food_num_list
def load_attrs(folder_name, plot_settings): folder_dir = 'save/{}'.format(folder_name) dir_list = all_folders_in_dir_with(folder_dir, 'sim') attrs_list_all_sims = [] settings_list = [] for dir in dir_list: sim_name = dir[(dir.rfind('save/')+5):] settings = load_settings(sim_name) if plot_settings['only_plot_certain_generations']: load_generations = np.arange(plot_settings['lowest_and_highest_generations_to_be_plotted'][0], plot_settings['lowest_and_highest_generations_to_be_plotted'][1]+1) isings_list = load_isings_from_list(sim_name, load_generations, decompress=plot_settings['decompress']) else: isings_list = load_isings_specific_path('{}/isings'.format(dir), decompress=plot_settings['decompress']) if plot_settings['only_copied']: isings_list = [choose_copied_isings(isings) for isings in isings_list] if plot_settings['attr'] == 'norm_avg_energy' or plot_settings['attr'] == 'norm_food_and_ts_avg_energy': calc_normalized_fitness(isings_list, plot_settings, settings) isings_list = below_threshold_nan(isings_list, settings) attrs_list = [attribute_from_isings(isings, plot_settings['attr']) if isings is not None else np.nan for isings in isings_list] attrs_list_all_sims.append(attrs_list) del isings_list # settings_list.append(load_settings(dir)) return attrs_list_all_sims
def load_simulations_single_population(folder_name, plot_settings): ''' Untested!! ''' folder_dir = 'save/{}'.format(folder_name) dir_list = all_folders_in_dir_with(folder_dir, 'sim') attrs_lists_sims = [] for sim_name in dir_list: attrs_list = load_isings_attr(sim_name, plot_settings['attr']) attrs_lists_sims.append(attrs_list) return attrs_lists_sims
def load_all_sims_parallel_folder(folder_name, include_name, sim_num, plot_settings): folder_dir = 'save/{}'.format(folder_name) dir_list = all_folders_in_dir_with(folder_dir, 'sim') for dir in dir_list: sim_name = dir[(dir.rfind('save/') + 5):] sim_num_str = sim_name[(sim_name.rfind('Run_')):] sim_num_str = sim_num_str[sim_num_str.rfind('Run_') + 4:] if sim_num_str == str(sim_num): ising = load_from_dynamic_range_data_one_sim( sim_name, include_name, plot_settings) return ising
def load_all_sims_parallel_folder(folder_name, df_each_sim, plot_settings): folder_dir = 'save/{}'.format(folder_name) dir_list = all_folders_in_dir_with(folder_dir, 'sim') for dir in dir_list: sim_name = dir[(dir.rfind('save/') + 5):] sim_run_num_str = sim_name[(sim_name.rfind('Run_')):] isings = load_from_dynamic_range_data_one_sim(sim_name, plot_settings) if not isings is None: avg_avg_energy = np.mean([I.avg_energy for I in isings]) # Fill data frame df_each_sim[sim_run_num_str] = [ isings, avg_avg_energy, plot_settings['plot_varying_number'] ] return df_each_sim
def load_data(attr, sim_name): sim_dir = 'save/{}'.format(sim_name) attrs_list_each_food_num_all = [] attrs_list_each_food_num_critical = [] attrs_list_each_food_num_sub_critical = [] food_num_list = [] dir_list = all_folders_in_dir_with('{}/repeated_generations'.format(sim_dir), 'foods_dynamic_range_run') for dir in dir_list: isings_list = load_isings_specific_path(dir) isings = make_2d_list_1d(isings_list) isings_populations_seperated = seperate_isolated_populations([isings]) isings_critical = isings_populations_seperated[0][0] isings_sub_critical = isings_populations_seperated[1][0] attrs_list_each_food_num_all.append(attribute_from_isings(isings, attr)) attrs_list_each_food_num_critical.append(attribute_from_isings(isings_critical, attr)) attrs_list_each_food_num_sub_critical.append(attribute_from_isings(isings_sub_critical, attr)) food_num_list.append(get_int_end_of_str(dir)) return attrs_list_each_food_num_all, attrs_list_each_food_num_critical, attrs_list_each_food_num_sub_critical, food_num_list
def load_from_dynamic_range_data_one_sim(sim_name, plot_settings): dir = 'save/{}/repeated_generations'.format(sim_name) dir_list = all_folders_in_dir_with(dir, plot_settings['include_name']) # plot_settings['plot_varying_number'] if plot_settings['plot_largest_varying_number']: # find largest varying number plot_settings['plot_varying_number'] = np.max( [get_int_end_of_str(dir) for dir in dir_list]) elif plot_settings['plot_original_varying_number']: plot_settings['plot_varying_number'] = plot_settings[ 'original_varying_number'] # Find dirs that shall be plotted dirs_to_plot = [] for dir in dir_list: if get_int_end_of_str(dir) == plot_settings['plot_varying_number']: dirs_to_plot.append(dir) if len(dirs_to_plot) > 1: print( 'Found more than one simulation in repeated generation folder! Choos ing first detected!' ) if len(dirs_to_plot) == 0: print( 'Did not find varying number (time step) {} in {}. Skip plotting this' .format(plot_settings['plot_varying_number'], sim_name)) return None else: # TODO: Change loading all isings in this path as soon as we have more than one ising for speed if plot_settings['compress_save_isings']: isings = load_isings_specific_path_decompress(dirs_to_plot[0])[0] else: isings = load_isings_specific_path(dirs_to_plot[0])[0] if plot_settings['only_copied_isings']: isings = choose_copied_isings(isings) plot_ind_nums = np.random.randint(0, len(isings) - 1, plot_settings['number_individuals']) return [isings[i] for i in plot_ind_nums]