#''' 12 '''
# startT = time.time()
# estAngd_A = modDA.estimateSeries(s1_fit[:,:6], fingList, sensList[:2], jointList, bnds=True, met=1)
# d_A = time.time()-startT
# print "time d_A12: ", d_A
# datAc.saveStates("../datasets/niceOnes/"+dayString+'_'+sstring+"dipA12.txt", estAngd_A)
#
# startT = time.time()
# estAngc_A = modCA.estimateSeries(s1_fit[:,:6], fingList, sensList[:2], jointList, bnds=True, met=1)
# c_A = time.time()-startT
# datAc.saveStates("../datasets/niceOnes/"+dayString+'_'+sstring+"cylA12.txt", estAngc_A)
# print "time c_A12: ", c_A
#
""" 14 """
startT = time.time()
estAngd_A = modDA.estimateSeries(s1_fit, fingList, sensList, jointList, bnds=True, met=1)
d_A = time.time() - startT
print "time d_A14: ", d_A
datAc.saveStates("../datasets/44/" + dayString + "_" + sstring + "dipA44.txt", estAngd_A)

startT = time.time()
estAngc_A = modCA.estimateSeries(s1_fit, fingList, sensList, jointList, bnds=True, met=1)
c_A = time.time() - startT
datAc.saveStates("../datasets/44/" + dayString + "_" + sstring + "cylA44.txt", estAngc_A)
print "time c_A14: ", c_A


plo.plotLeapVsMag((tim, estAngd_A), (tim, s1, s1_fit[:, :3]), head="estAngd_A vs B-field " + sstring)


(timLeap, angInd, angMid, angRin, angPin) = datAc.readLeap("../datasets/160210/" + dayString + "_" + sstring + "_leap")
    s3_fit = s3*scale+off
    
    (scale, off) = datAc.getScaleOff(b90_A[:,9:],s4[start:end]) 
    s4_fit = s4*scale+off
    
    ## combining everything again...
    s1_fit = np.append(s1_fit,np.append(s2_fit,np.append(s3_fit,s4_fit,1),1),1)       
    
    
    ''' estimating measurements '''    
    print "estimating ", sstring
    ''' 11 '''
    print "11"
#    fi.write(sstring+',')
    startT = time.time()
    estAngd_A = modDA.estimateSeries(s1_fit[:,:3], fingList, [sensList[0]], jointList, bnds=True, met=1)
    d_A = time.time()-startT
    d_A /= len(s1_fit)
#    print "time d_A11: ", d_A 
#    fi.write(str(d_A)+',')
    datAc.saveStates("../datasets/evalSets/estResults/160217_real/"+sstring+"_dipA11.txt", estAngd_A)
    (mean_A, var_A) = sf.getMeanVar(lInd_re,estAngd_A)
#    fi.write(str(mean_A)+','+str(var_A)+',')
    print "cyl mean_A %s  var_A %s" % (mean_A, var_A)
    # neglecting ad-ab    
#    (mean, var) = sf.getMeanVar(lInd_re[:,:3], estAngd_A[:,:3])
#    fi.write(str(mean)+','+str(var)+',')
#    print "cyl mean %s  var %s" % (mean, var) 
    
    
    startT = time.time()
    resString = "model: cylindrical, without adduction-abduction\n"
    resString += "total time[sec] needed: " + str(endT) + "\n"
    resString += "avg time per step[sec]: " + str(endT/len(simValues_A)) + "\n\n"
    # resString += "max fun value: " + str(max(fun_cyl)) + "\n\n"
    print resString
    f.write(resString)
    datAc.saveStates(folderStr+"estAng_cyl"+str(i), estAng_cyl)
    plo.plotter2d((estAng_cyl[:,:3], estAng_cyl[:,3:6]),
                  ("model: cylindrical without Adduction index","middle"+methString))
#    plo.plotter2d((estAng_cyl[:,:3], estAng_cyl[:,3:6], estAng_cyl[:,6:9], estAng_cyl[:,9:]),
#             ("model: cylindrical without Adduction index","middle"+methString,"ring","pinky"))
    plt.savefig(folderStr+str(i)+"cyl_nA.png")

    ''' dip with ad-ab '''
    startT = time.time()
    estAng_dip_A = modDA.estimateSeries(b_cyl_A, fingList, sensList, jointList, bnds=True, met=i)
    endT = time.time()-startT
    
    resString = "model: dipole, with adduction-abduction\n"
    resString += "total time[sec] needed: " + str(endT) + "\n"
    resString += "avg time per step[sec]: " + str(endT/len(simValues_A)) + "\n\n"
    # resString += "max fun value: " + str(max(fun_dip_A)) + "\n\n"
    print resString
    f.write(resString)
    datAc.saveStates(folderStr+"estAng_dip_A"+str(i), estAng_dip_A)
    plo.plotter2d((estAng_dip_A[:,:4], estAng_dip_A[:,4:8]),
                  ("model: dip with Adduction index","middle"+methString))
#    plo.plotter2d((estAng_dip_A[:,:4], estAng_dip_A[:,4:8], estAng_dip_A[:,8:12], estAng_dip_A[:,12:]),
#             ("model: dip with Adduction index","middle"+methString,"ring","pinky"))
    plt.savefig(folderStr+str(i)+"dip_A.png")