/
ut_diagn.py
59 lines (47 loc) · 1.66 KB
/
ut_diagn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from __future__ import absolute_import, division
import numpy as np
def ut_diagn(coef, opt):
print('diagnostics...')
coef['diagn'] = {}
if opt['twodim']:
PE = np.sum(coef['Lsmaj']**2 + coef['Lsmin']**2)
PE = 100 * (coef['Lsmaj']**2 + coef['Lsmin']**2) / PE
SNR = (coef['Lsmaj']**2 + coef['Lsmin']**2) / (
(coef['Lsmaj_ci']/1.96)**2 +
(coef['Lsmin_ci']/1.96)**2)
else:
PE = 100 * coef['A']**2 / np.sum(coef['A']**2)
SNR = (coef['A']**2) / (coef['A_ci']/1.96)**2
indPE = PE.argsort()[::-1]
coef['diagn']['name'] = coef['name'][indPE]
coef['diagn']['PE'] = PE[indPE]
coef['diagn']['SNR'] = SNR[indPE]
return coef, indPE
# [~,indPE] = sort(PE,'descend');
# coef.diagn.name = coef.name(indPE);
# coef.diagn.PE = PE(indPE);
# coef.diagn.SNR = SNR; % used in ut_diagntable; ordered by PE there
# if opt.twodim
# [coef.diagn,usnrc,vsnrc] = ut_diagntable(coef,cnstit,...
# t,u,v,xmod,m,B,W,varMSM,Gall,Hall,elor,varcov_mCw,indPE);
# else
# [coef.diagn,usnrc,~] = ut_diagntable(coef,cnstit,...
# t,u,[],xmod,m,B,W,varMSM,Gall,Hall,elor,varcov_mCw,indPE);
# end
# if opt.diagnplots
# tmp = nan*ones(size(uin));
# tmp(uvgd) = usnrc;
# usnrc = tmp;
# tmp = nan*ones(size(uin));
# tmp(uvgd) = e;
# e = tmp;
# if opt.twodim
# tmp = nan*ones(size(uin));
# tmp(uvgd) = vsnrc;
# vsnrc = tmp;
# ut_diagnfigs(coef,indPE,tin,uin,vin,usnrc,vsnrc,e);
# else
# ut_diagnfigs(coef,indPE,tin,uin,[],usnrc,[],e);
# end
# end
# end