def calcMetrics(repRto, sampRate=1, offset=0, thi=.25, tho=.25, thw=.25, tap=50, thp=(.025, .975), finalDay=-1): (minS, maxS, _, _) = monet.calcMinMax(repRto) mtrRep = { 'TTI': monet.calcTTI(repRto, thi, sampRate=sampRate, offset=offset), 'TTO': monet.calcTTO(repRto, tho, sampRate=sampRate, offset=offset), 'WOP': monet.calcWOP(repRto, thw, sampRate=sampRate), 'MIN': minS, 'MAX': maxS, 'RAP': monet.getRatioAtTime(repRto, tap, sampRate=sampRate), 'POE': monet.calcPOE(repRto, finalDay=finalDay, thresholds=thp), 'CPT': monet.calcCPT(repRto) } return mtrRep
# Iterate through experiments ########################################################################### fmtStr = '{}+ File: {}/{}' # (i, fPath) = (0, fPaths[0]) for (i, fPath) in enumerate(fPaths): repRto = np.load(fPath) (reps, days) = repRto.shape print( fmtStr.format(monet.CBBL, str(i+1).zfill(digs), fNum, monet.CEND) , end='\r' ) ####################################################################### # Calculate Metrics ####################################################################### (ttiS, ttoS, wopS) = ( monet.calcTTI(repRto, aux.THI), monet.calcTTO(repRto, aux.THO), monet.calcWOP(repRto, aux.THW) ) (minS, maxS, _, _) = monet.calcMinMax(repRto) rapS = monet.getRatioAtTime(repRto, aux.TAP) poe = monet.calcPOE(repRto) cpt = monet.calcCPT(repRto) der = monet.calcDER(repRto, smoothing=10, magnitude=0.1) ####################################################################### # Calculate Quantiles ####################################################################### ttiSQ = [np.nanquantile(tti, qnt) for tti in ttiS] ttoSQ = [np.nanquantile(tto, 1-qnt) for tto in ttoS] wopSQ = [np.nanquantile(wop, 1-qnt) for wop in wopS] rapSQ = [np.nanquantile(rap, qnt) for rap in rapS]
outDFs = monet.initDFsForDA(fPaths, header, thiS, thoS, thwS, tapS) (ttiDF, ttoDF, wopDF, tapDF, rapDF) = outDFs ############################################################################### # Iterate through experiments ############################################################################### fmtStr = '{}+ File: {}/{}' for (i, fPath) in enumerate(fPaths): repRto = np.load(fPath) (reps, days) = repRto.shape print(fmtStr.format(monet.CBBL, str(i + 1).zfill(digs), fNum, monet.CEND), end='\r') ####################################################################### # Calculate Metrics ####################################################################### (ttiS, ttoS, wopS) = (monet.calcTTI(repRto, thiS), monet.calcTTO(repRto, thoS), monet.calcWOP(repRto, thwS)) (minS, maxS) = monet.calcMinMax(repRto) rapS = monet.getRatioAtTime(repRto, tapS) ####################################################################### # Calculate Quantiles ####################################################################### ttiSQ = [np.nanquantile(tti, qnt) for tti in ttiS] ttoSQ = [np.nanquantile(tto, 1 - qnt) for tto in ttoS] wopSQ = [np.nanquantile(wop, 1 - qnt) for wop in wopS] rapSQ = [np.nanquantile(rap, qnt) for rap in rapS] mniSQ = (np.nanquantile(minS[0], qnt), np.nanquantile(minS[1], qnt)) mnxSQ = (np.nanquantile(maxS[0], qnt), np.nanquantile(maxS[1], 1 - qnt)) ####################################################################### # Update in Dataframes #######################################################################
# Iterate through experiments ############################################################################### fmtStr = '{}+ File: {}/{}' # (i, fPath) = (0, fPaths[0]) for (i, fPath) in enumerate(fPaths): repRto = np.load(fPath) (reps, days) = repRto.shape print( fmtStr.format(monet.CBBL, str(i+1).zfill(digs), fNum, monet.CEND) , end='\r' ) ####################################################################### # Calculate Metrics ####################################################################### (ttiS, ttoS, wopS) = ( monet.calcTTI(repRto, thiS), monet.calcTTO(repRto, thoS), monet.calcWOP(repRto, thwS) ) (minS, maxS, _, _) = monet.calcMinMax(repRto) rapS = monet.getRatioAtTime(repRto, tapS) poe = fun.calcPOE(repRto) ####################################################################### # Calculate Quantiles ####################################################################### ttiSQ = [np.nanquantile(tti, qnt) for tti in ttiS] ttoSQ = [np.nanquantile(tto, 1-qnt) for tto in ttoS] wopSQ = [np.nanquantile(wop, 1-qnt) for wop in wopS] rapSQ = [np.nanquantile(rap, qnt) for rap in rapS] mniSQ = (np.nanquantile(minS[0], qnt), np.nanquantile(minS[1], qnt)) mnxSQ = (np.nanquantile(maxS[0], qnt), np.nanquantile(maxS[1], 1-qnt))
(ttiDF, ttoDF, wopDF, tapDF, rapDF, poeDF, cptDF, derDF) = outDFs ########################################################################### # Iterate through experiments ########################################################################### fmtStr = '{}+ File: {}/{}' # (i, fPath) = (0, fPaths[0]) for (i, fPath) in enumerate(fPaths): repRto = np.load(fPath) (reps, days) = repRto.shape print(fmtStr.format(monet.CBBL, str(i + 1).zfill(digs), fNum, monet.CEND), end='\r') ####################################################################### # Calculate Metrics ####################################################################### (ttiS, ttoS, wopS) = (monet.calcTTI(repRto, aux.THI), monet.calcTTO(repRto, aux.THO), monet.calcWOP(repRto, aux.THW)) (minS, maxS, _, _) = monet.calcMinMax(repRto) rapS = monet.getRatioAtTime(repRto, aux.TAP) poe = monet.calcPOE(repRto) cpt = monet.calcCPT(repRto) der = monet.calcDER(repRto, smoothing=10, magnitude=0.1) ####################################################################### # Calculate Quantiles ####################################################################### ttiSQ = [np.nanquantile(tti, qnt) for tti in ttiS] ttoSQ = [np.nanquantile(tto, 1 - qnt) for tto in ttoS] wopSQ = [np.nanquantile(wop, 1 - qnt) for wop in wopS] rapSQ = [np.nanquantile(rap, qnt) for rap in rapS] mniSQ = (np.nanquantile(minS[0], qnt), np.nanquantile(minS[1], qnt))