Unpack an HDF5 group into its respective PyTTa object
(objH5Group)
| 996 | |
| 997 | |
| 998 | def __h5_unpack(objH5Group): |
| 999 | """ |
| 1000 | Unpack an HDF5 group into its respective PyTTa object |
| 1001 | """ |
| 1002 | if objH5Group.attrs['class'] == 'SignalObj': |
| 1003 | # PyTTaObj attrs unpacking |
| 1004 | samplingRate = objH5Group.attrs['samplingRate'] |
| 1005 | freqMin = _h5.none_parser(objH5Group.attrs['freqMin']) |
| 1006 | freqMax = _h5.none_parser(objH5Group.attrs['freqMax']) |
| 1007 | lengthDomain = objH5Group.attrs['lengthDomain'] |
| 1008 | comment = objH5Group.attrs['comment'] |
| 1009 | # SignalObj attr unpacking |
| 1010 | channels = eval(objH5Group.attrs['channels']) |
| 1011 | # Added with an if for compatibility issues |
| 1012 | if 'signalType' in objH5Group.attrs: |
| 1013 | signalType = _h5.attr_parser(objH5Group.attrs['signalType']) |
| 1014 | else: |
| 1015 | signalType = 'power' |
| 1016 | # Creating and conforming SignalObj |
| 1017 | SigObj = SignalObj(signalArray=np.array(objH5Group['timeSignal']), |
| 1018 | domain='time', |
| 1019 | signalType=signalType, |
| 1020 | samplingRate=samplingRate, |
| 1021 | freqMin=freqMin, |
| 1022 | freqMax=freqMax, |
| 1023 | comment=comment) |
| 1024 | SigObj.channels = channels |
| 1025 | SigObj.lengthDomain = lengthDomain |
| 1026 | return SigObj |
| 1027 | |
| 1028 | elif objH5Group.attrs['class'] == 'ImpulsiveResponse': |
| 1029 | systemSignal = __h5_unpack(objH5Group['systemSignal']) |
| 1030 | method = objH5Group.attrs['method'] |
| 1031 | winType = objH5Group.attrs['winType'] |
| 1032 | winSize = objH5Group.attrs['winSize'] |
| 1033 | overlap = objH5Group.attrs['overlap'] |
| 1034 | IR = ImpulsiveResponse(method=method, |
| 1035 | winType=winType, |
| 1036 | winSize=winSize, |
| 1037 | overlap=overlap, |
| 1038 | ir=systemSignal) |
| 1039 | return IR |
| 1040 | |
| 1041 | elif objH5Group.attrs['class'] == 'RecMeasure': |
| 1042 | # PyTTaObj attrs unpacking |
| 1043 | samplingRate = objH5Group.attrs['samplingRate'] |
| 1044 | freqMin = _h5.none_parser(objH5Group.attrs['freqMin']) |
| 1045 | freqMax = _h5.none_parser(objH5Group.attrs['freqMax']) |
| 1046 | comment = objH5Group.attrs['comment'] |
| 1047 | lengthDomain = objH5Group.attrs['lengthDomain'] |
| 1048 | fftDegree = objH5Group.attrs['fftDegree'] |
| 1049 | timeLength = objH5Group.attrs['timeLength'] |
| 1050 | # Measurement attrs unpacking |
| 1051 | device = _h5.list_w_int_parser(objH5Group.attrs['device']) |
| 1052 | inChannels = eval(objH5Group.attrs['inChannels']) |
| 1053 | blocking = objH5Group.attrs['blocking'] |
| 1054 | # Recreating the object |
| 1055 | rObj = measurement(kind='rec', |
no test coverage detected