From 9c6c60093a497320a2167206ab7a89328534df7a Mon Sep 17 00:00:00 2001 From: yeye Date: Fri, 5 Nov 2021 10:58:16 +0100 Subject: [PATCH] asd --- kalman/graphics/figure2.py | 218 ---------------------------------- kalman/input_files/aorta.yaml | 83 +++++-------- 2 files changed, 31 insertions(+), 270 deletions(-) delete mode 100644 kalman/graphics/figure2.py diff --git a/kalman/graphics/figure2.py b/kalman/graphics/figure2.py deleted file mode 100644 index 5021274..0000000 --- a/kalman/graphics/figure2.py +++ /dev/null @@ -1,218 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -from itertools import cycle -import argparse -import pickle -import yaml - -def is_ipython(): - ''' Check if script is run in IPython. - - Returns: - bool: True if IPython, else False ''' - try: - get_ipython() - ipy = True - except NameError: - ipy = False - - return ipy - - -def load_data(file): - ''' Load numpy data from file. - - Returns - dict: data dictionary - ''' - dat = np.load(file) - - return dat - - -def plot_parameters(dat, input_file, deparameterize=False, ref=None): - ''' Plot the parameters in separate subplots with uncertainties. - - Args: - dat (dict): data dictionary - deparameterize (bool): flag indicating if parameters should be - deparameterized via 2**theta - ref: reference value to be plotted with parameters - ''' - if is_ipython(): - plt.ion() - - idx_a = input_file.find('/') - idx_b = input_file[idx_a+1::].find('/') - name_file = input_file[idx_a+1:idx_b+idx_a+1] - inputfile_path = 'results/' + name_file + '/input.yaml' - - - with open(inputfile_path) as file: - inputfile = yaml.full_load(file) - - - - true_values = { - 3: 4800, - 4: 7200, - 5: 11520, - 6: 11520, - 2: 75 - } - - true_values_C = { - 3: 0.0004, - 4: 0.0004, - 5: 0.0003, - 6: 0.0003, - } - - - - - meas_flag = False - RC_mod = True - line_split = 1.5 - current_val = [] - current_val_C = [] - ids_type = [] - labels = [] - ids = [] - - for bnd_c in inputfile['estimation']['boundary_conditions']: - - if 'windkessel' in bnd_c['type']: - for bnd_set in inputfile['boundary_conditions']: - if bnd_c['id'] == bnd_set['id']: - ids.append(bnd_c['id']) - ids_type.append('windkessel') - current_val.append(bnd_set['parameters']['R_d']) - labels.append('$R_' + str(bnd_c['id'])) - if RC_mod: - current_val_C.append(bnd_set['parameters']['C']) - labels.append('$C_' + str(bnd_c['id'])) - - - elif 'dirichlet' in bnd_c['type']: - current_val.append(inputfile['boundary_conditions'][0]['parameters']['U']) - ids.append(bnd_c['id']) - ids_type.append('dirichlet') - labels.append('$U') - - - - - dim = dat['theta'].shape[-1] - fig1, axes = plt.subplots(1,1,figsize=(8,6)) - - axes.set_ylabel(r'$\theta$',fontsize=18) - - t = dat['times'] - theta = dat['theta'] - P = dat['P_theta'] - - col = cycle(['C0', 'C1', 'C2', 'C3','C4']) - ls = cycle(['-', '-', '--', '--', ':', ':', '-.', '-.']) - legends = cycle(labels) - - if meas_flag: - t_und = t[0::30] - t_und = np.append( t_und , [t[-1]]) - meas_mark = t_und*0 - - col_ = next(col) - ls_ = next(ls) - legends_=next(legends) - - if dim == 1: - theta = theta.reshape((-1, 1)) - P = P.reshape((-1, 1, 1)) - - - - idx = 0 - idc = 0 - - for i in range(len(ids)): - cur_key = ids[i] - - true_level = np.log(true_values[ids[i]]/current_val[i])/np.log(2) - rec_value = np.round(2**theta[-1, idx]*current_val[i],2) - - #curve = theta[:,i] + line_split*i - #dash_curve = line_split*i + t*0 + true_level - - curve = theta[:,idx] + line_split*idx - true_level - dash_curve = line_split*idx + t*0 - - axes.plot(t, curve , '-', color=col_,label= legends_ + '= ' + str(rec_value) + '/' + str(true_values[cur_key]) + '$') - axes.fill_between(t, curve - np.sqrt(P[:, idx, idx]), curve + np.sqrt(P[:, idx, idx]), alpha=0.3, color=col_) - legends_=next(legends) - axes.plot(t, dash_curve , color=col_,ls='--') - - - if RC_mod: - - if i1.6) + (t<2.4)*(1.6+Th