Commit 560937f1 authored by Alejandro Saez's avatar Alejandro Saez

md_val for TSM

parent 7a934361
...@@ -432,7 +432,7 @@ m_md1, m_md2 = md_val(m, corr_pp[1], derm[1]) ...@@ -432,7 +432,7 @@ m_md1, m_md2 = md_val(m, corr_pp[1], derm[1])
m_shifted = m + dm1 * m_md1 + dm2 * m_md2 m_shifted = m + dm1 * m_md1 + dm2 * m_md2
``` ```
""" """
function md_val(a::uwreal, obs::Corr, derm::Vector{Corr}; new_version::Bool=false) function md_val(a::uwreal, obs::Corr, derm::Vector{Corr}; new_version::Bool=false, TSM::Bool=false)
nid = neid(a) nid = neid(a)
if nid != 1 if nid != 1
error("Error: neid > 1") error("Error: neid > 1")
...@@ -471,27 +471,31 @@ function md_val(a::uwreal, obs::Corr, derm::Vector{Corr}; new_version::Bool=fals ...@@ -471,27 +471,31 @@ function md_val(a::uwreal, obs::Corr, derm::Vector{Corr}; new_version::Bool=fals
=# =#
der = length(a.der) >= maximum(n_ow) ? a.der[n_ow] * w_mean : 0.0 der = length(a.der) >= maximum(n_ow) ? a.der[n_ow] * w_mean : 0.0
elseif all(count.(prop) .== 3) elseif all(count.(prop) .== 3)
corr_der = getfield.(corr, :der) if TSM == false
n = findall.(t-> t==1, prop) return nothing
n = vcat(n'...) else
if all(n[:, 1] .== n[1, 1]) # find ow and w corr_der = getfield.(corr, :der)
n_w = n[1, 1] n = findall.(t-> t==1, prop)
n_ow1 = n[:, 2] n = vcat(n'...)
n_ow2 = n[:, 3] if all(n[:, 1] .== n[1, 1]) # find ow and w
elseif all(n[:, 2] .== n[1, 2]) n_w = n[1, 1]
n_w = n[1, 2] n_ow1 = n[:, 2]
n_ow1 = n[:, 1] n_ow2 = n[:, 3]
n_ow2 = n[:, 3] elseif all(n[:, 2] .== n[1, 2])
elseif all(n[:, 3] .== n[1, 3]) n_w = n[1, 2]
n_w = n[1, 3] n_ow1 = n[:, 1]
n_ow1 = n[:, 1] n_ow2 = n[:, 3]
n_ow2 = n[:, 2] elseif all(n[:, 3] .== n[1, 3])
end n_w = n[1, 3]
w_mean = 1 / getindex.(corr_der, n_ow1)[1] n_ow1 = n[:, 1]
if 1 / getindex.(corr_der, n_ow1)[1] != 1 / getindex.(corr_der, n_ow2)[1] n_ow2 = n[:, 2]
error("w_mean with n_ow1 and with n_ow2 different") end
w_mean = 1 / getindex.(corr_der, n_ow1)[1]
if 1 / getindex.(corr_der, n_ow1)[1] != 1 / getindex.(corr_der, n_ow2)[1]
error("w_mean with n_ow1 and with n_ow2 different")
end
der = length(a.der) >= maximum(n_ow1) && length(a.der) >= maximum(n_ow2) ? a.der[n_ow1] * w_mean : 0.0
end end
der = length(a.der) >= maximum(n_ow1) && length(a.der) >= maximum(n_ow2) ? a.der[n_ow1] * w_mean : 0.0
else else
return nothing return nothing
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment