def write_comparison_csv(file_name: str, data, model: Model, parameters: Union[list, dict], model_dt: float, headers: Optional[List[str]] = None): if isinstance(parameters, dict): parameters = [parameters] x0, y0 = find_t0_data_point(data) t_max = find_max_t_data_point(data)[0] x_data = [[t, xt] for t, xt, yt in data] y_data = [[t, yt] for t, xt, yt in data] x_datas = [] y_datas = [] for parameters0 in parameters: model_data = model.get_data(parameters0, x0, y0, 0, t_max, math.ceil(t_max / model_dt + 1)) x_datas.append([[t, xt] for t, xt, yt in model_data]) y_datas.append([[t, yt] for t, xt, yt in model_data]) final_data = x_data for model_x_data in x_datas: final_data = unite_data(final_data, model_x_data) final_data = unite_data(final_data, y_data) for model_y_data in y_datas: final_data = unite_data(final_data, model_y_data) new_headers = None if headers is None else [""] + [ "x " + h for h in headers ] + ["y " + h for h in headers] export_array_array_to_csv(final_data, file_name, headers=new_headers)
def write_comparison_csv(file_name: str, data, model: Model, parameters: Union[list, dict], model_dt: float): if isinstance(parameters, dict): parameters = [parameters] t0, x0, y0 = find_t0_data_point(data) t_max = find_max_t_data_point(data)[0] for parameters0 in parameters: model_data = model.get_data(parameters0, x0, y0, 0, t_max, math.ceil(t_max/model_dt+1)) data = unite_data(data, model_data) export_data_to_svg(data, file_name)
) result_file_content += "\n" # write some files that are used to create graphs to visually compare the model x0, y0 = find_t0_data_point(datas[i]) t_max = find_max_t_data_point(datas[i])[0] model_data1 = model.get_data(new_parameters1, x0, y0, 0, t_max, math.ceil(t_max/model_graph_dt+1)) model_data2 = model.get_data(new_parameters2, x0, y0, 0, t_max, math.ceil(t_max/model_graph_dt+1)) model_prey_data1 = [data_point[:2] for data_point in model_data1] model_prey_data2 = [data_point[:2] for data_point in model_data2] model_predator_data1 = [[data_point[0], data_point[2]] for data_point in model_data1] model_predator_data2 = [[data_point[0], data_point[2]] for data_point in model_data2] # write prey graph prey_graph_data = [data_point[:2] for data_point in datas[i]] prey_graph_data = unite_data(prey_graph_data, model_prey_data1) prey_graph_data = unite_data(prey_graph_data, model_prey_data2) export_array_array_to_csv(prey_graph_data, output_folder + "/" + single_data_set_prey_graph_format.format(i+1)) # write predator graph predator_graph_data = [[data_point[0], data_point[2]] for data_point in datas[i]] predator_graph_data = unite_data(predator_graph_data, model_predator_data1) predator_graph_data = unite_data(predator_graph_data, model_predator_data2) export_array_array_to_csv(predator_graph_data, output_folder + "/" + single_data_set_predator_graph_format.format(i+1)) # write the error graph file single_data_errors_data = [[i] + [single_data_errors[j][i] for j in range(2*len(data_file_names))] for i in range(single_data_set_num_steps+1)] export_array_array_to_csv(single_data_errors_data, output_folder + "/" + single_data_set_errors_out)