Beispiel #1
0
 def from_measurement(cls, ID, mic, Paths):
     found=False
     if Paths:
         for p in Paths:
             presults=p.joinpath('raw_signals')
             listfiles= os.listdir(presults.as_posix())
             if listfiles.count(str(ID)+"_"+str(mic)+".mat")>0:
                 measuredSignal.setup(p)
                 pathmes=p
                 found=True
                 print(str(p))
                 break
             
     if not found:
         return None
     mS = measuredSignal(ID,mic)
     if mS.initialized:
         y,t,sR = mS.get_signal(mic)
         ch_info = mS.channel_info(mic)
         var = ['Tb','Te','Tp_b','Tp_e','LAEQ']
         mesValues= measuredValues.from_json(pathmes)
         micValues = mesValues.get_variables_values(ID, mic, var)
         micValues.update(ch_info)
         return(cls(ID,mic,y,t,sR, micValues), mesValues)
     else:#if the signal could not be found return None
         return None
Beispiel #2
0
 def from_wavfolder(cls, ID, mic, Paths):
     found=False
     if Paths:
         for p in Paths:
             if not isinstance(p,pathlib.Path):
                 presults=pathlib.Path(p)
             else:
                 presults=p
             presults=presults.joinpath('wav')
             listfiles= os.listdir(presults.as_posix())
             if listfiles.count(str(ID)+"_mic_"+str(mic)+".wav")>0:
                 try : 
                     measuredSignal.setup(p)
                 except:
                     pass
                 else:
                     pathmes=p
                     found=True
                     print(str(p))
                     break
     if found:
         return cls.from_wav(pathmes.joinpath('wav/'+str(ID)+'_mic_'+str(mic)+'.wav'))
     else:
         return None
     """does the same as from_measurement but calls from_wav to initialise"""
Beispiel #3
0
#     print(casePath.absolute())
#     return(casePath)
# #     
# # @decorator
# # def init2( mesPath, author ):
# #     authP = mesPath.joinpath('test_cases').joinpath(author)
# #     #collect cases
# #     casePaths = [ cp  for cp in authP.iterdir() if cp.match('case_**.json') ]
# #     print(casePaths)
# #     return(casePaths[0])
# # 
# # 

## Test
if __name__ == "__main__":
    from kg.detect import MicSignal
    from kg.algorithm import *
    from kg.algorithm import Case
    from kg.widgets import *
    from kg.measurement_values import measuredValues
    from kg.measurement_signal import measuredSignal
    mesPath = pathlib.Path('Measurements_example\MBBMZugExample')
    mesVal = measuredValues.from_json(mesPath)
    measuredSignal.setup(mesPath)
    W = CaseCreatorWidget.from_measurement(mesVal,'m_0100',[6])
    W.show()
##save
    casePath = mesPath.joinpath('test_cases/esr/case_m_0100_6_esr.json').absolute()
    case = Case.from_JSON(casePath)

    
Beispiel #4
0
     algorithmclass, valid=QtGui.QInputDialog.getItem(CTW,"Algorithm","Please select an algorithm type", [str(cls.__name__) for cls in vars()['Algorithm'].__subclasses__()])
     if valid:
         algorithm=eval(algorithmclass+".askforattributes(CTW)")
 # setup algorithms
 # todo: parametrize alg parameter in the best possible way 
 algorithms = [ZischenDetetkt2(4000,0.79088,0.02)]
 
 ##load cases
 # load measured values
 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)