Example #1
0
    def test_on_case(self, case, mesValues, micSn = None):
        '''
        test algorithm  on Case
        '''
        loc = mesValues.location
        mes = mesValues.measurement
        assert((case.case['location'] == loc and\
                    case.case['measurement'] == mes))
        mID = case.case['mID']
        mic = case.case['mic']
        self.currentauthor = case.case['author']
        quality = case.case['quality']
        if micSn == None:
            micSn = MicSignal.from_measurement(mesValues, mID, mic)
        else:
            assert((case.case['mID'] == micSn.ID and\
                    case.case['mic'] == micSn.mic))
        #output = self.func(micSn)
        micSn.calc_kg(self)
        output= micSn.get_KG_results(self)['result']
        # compare case and alg results
        comparation, disc = case.compare(output['result'], output['t'],sum =True)

        #fill test cases
        # todo: if ROC evaluation
        # todo: addr BPR vector to case_tests masked in Te Tb
        # todo: add TF vectors
        self.case_tests[str(case)] = {'mic':mic,'mID':mID,'location':loc,\
                                    'measurement':mes,'author':self.currentauthor, \
                                    'quality':quality, 'disc':disc, 'te':case.get_bounds()[1], 'tb':case.get_bounds()[0]}
        #export for R
        if self.Rexport:
            for i in range(0,len(disc)):
                self.forR.append({'mic':mic, 'mID':mID, 'location':loc, 'author':self.currentauthor,'quality':quality, 'BPR':output['BPR'][i], 'time':output['t'][i], 'disc':disc[i], 'NoiseT':self.noiseType, 'Alg':"Z2", 'AlgProp': self.stringsummary()})
            
        self.case_tests[str(case)].update(output)
        self.case_tests[str(case)].update(comparation)
        # add rates
        self.case_tests[str(case)].update(rates(**comparation))
        return(micSn)
Example #2
0
 #collect cases
 cases = []
 for authP in  casePath.iterdir():
     if authP.is_dir():
         print(authP)
         cases.extend([Case.from_JSON(cp) for cp in authP.iterdir()\
                         if cp.match('case_**.json') ])
 notfound=[]
 print('Case cases:')
 print('----------------------')
 for case in cases:
     print(str(case))
     mID = case.case['mID']
     mic = case.case['mic']
     # initaite mic signal
     micSn, mesVal = MicSignal.from_measurement(mID, mic, Paths=Paths)
     if micSn:
         for alg in algorithms:
             print(str(alg),end = ', ')
             alg.test_on_case(case, mesVal, micSn)
             print('.')
     else:
         notfound.append(mID)
         print(mID+" not found. Pass.")
 
 #calc global Rates
 print('Calculate global Rates')
 for alg in algorithms:
     alg.calc_rates()
 # save
 print('save to json')
Example #3
0
 jsonpath=mesPath.joinpath(pathlib.Path('measurements_example/MBBMZugExample'))
 mesVal = measuredValues.from_json(jsonpath)
 location =  mesVal.location
 measurement = mesVal.measurement
 
 # setup  measured signal 
 measuredSignal.setup(jsonpath)
 # todo: if necessary serialize on mesVal
 mesValues = measuredValues.from_json(jsonpath)
 casePath1 = mesValues.path.joinpath('test_cases/luc/case_m_1656_4_luc.json')
 case1 = Case.from_JSON(casePath1)
 casePath2 = mesValues.path.joinpath('test_cases/luc/case_m_2791_1_luc.json')
 case2 = Case.from_JSON(casePath2)
 ##
 case = case2
 micSn, mesVal = MicSignal.from_measurement(case.case['mID'],case.case['mic'], Paths)
 micSn.calc_kg(algorithms[0])
 ##
 if 2<1:
     f,axes = plt.subplots(2,sharex = True)
     ax = axes[0]
     micSn.plot_triggers(ax,color = '#272822',lw=1)
     micSn.plot_BPR(algorithm, ax, color = '#272822', linewidth=1)
     case.plot(ax)
     ax.set_xlim(-0.5,8)
     ymin,ymax = ax.get_ylim()
     ax=axes[1]
     alg_res = micSn.get_KG_results(algorithm)['result']
     micSn.plot_BPR(algorithms[0], ax, color = '#272822', lw=1)
     case.plot_compare(ax,alg_res['result'], alg_res['t'])
     plt.show()