Пример #1
0
    def openMat(self, path, dat2p0):
        try:
            print(f'\nExtracting {os.path.basename(path)}...')

            if os.path.exists(path):
                mat = dt.loadmat(path,
                                 variableName='mudp',
                                 sort=True,
                                 reBarrierMarge=False if dat2p0 else True,
                                 dat2p0=dat2p0)
            else:
                print("Path does not exist: ", path)
            if dat2p0:
                if not len(mat['mudp']['vis']['vision_AEB_info']['visAEB']
                           ['imageIndex']):
                    print('Mat corrupted!')
                    return
            else:
                if not len(mat['mudp']['vis']['vision_function_info']
                           ['imageIndex']):
                    print('Mat corrupted!')
                    return
            return mat
        except:
            print(f'Error while loading {os.path.basename(path)}!')
            return
Пример #2
0
def openMat(parent, path):
    is_dat2p0 = False
    var_name = None

    if parent.matLoadBox.isChecked():
        var_name = 'mudp'
    if parent.matLoadDAT2p0.isChecked():
        is_dat2p0 = True

    try:
        mat = dt.loadmat(path,
                         variableName=var_name,
                         sort=True,
                         reBarrierMarge=False,
                         dat2p0=is_dat2p0,
                         dot_dict=False)
        if not is_dat2p0:
            objData = mat['mudp']['vis']['vision_obstacles_info']['visObs']
            for key in objData.keys():
                if key in ['tlet_match', 'tlet_match_conf']:
                    newData = objData[key]
                    tempData = {}
                    for j in range(15):
                        tempData[key + '_' +
                                 str(j + 1).zfill(2)] = newData[:, j, :]
                    objData[key] = tempData
        return mat

    except:
        traceback.print_exc()
        QtWidgets.QMessageBox.warning(
            parent, 'Error',
            'Error while loading ' + path.split(os.sep)[-1] + '!')
        return
Пример #3
0
 def openData(self, data):
     if data and isinstance(data, dict):
         return data
     elif data and os.path.isfile(data):
         return loadmat(data,
                        variableName='mudp',
                        reBarrierMarge=True,
                        sort=True)
     else:
         print('Cannot open data file!')
         return None
Пример #4
0
    def ef_CMbBevents(self):
        """
            EF6: CMbB events

            :return: EF gives back dict structure with data len and data itself
            """
        try:
            from delphiTools3 import base
            dvlExt = base.loadmat(self.mat['__path__'],
                                  variableName='dvlExt')['dvlExt']
            self.visIndex = self.get_closest(
                self.mat['mudp']['vis']['header']['cTime'],
                dvlExt['veh']['acc']['ctimeu'] * 1000000)
            self.visLen = len(self.mat['mudp']['vis']['header']['cTime'])
        except:
            print('error, missing structures')
            return {'len': 0, 'data': []}

        CMBBEvents = {
            'brk_accel': dvlExt['veh']['cmbb']['brk_accel'],
            'fcw_aud_warn': dvlExt['veh']['cmbb']['fcw_aud_warn'],
            'fcw_denied': dvlExt['veh']['cmbb']['fcw_denied'],
            'brk_decel_req': dvlExt['veh']['cmbb']['brk_decel_req'],
            'cmbb_denied': dvlExt['veh']['cmbb']['cmbb_denied'],
            'cmbb_denied_brk': dvlExt['veh']['cmbb']['cmbb_denied_brk'],
            'cmbb_denied_prpl': dvlExt['veh']['cmbb']['cmbb_denied_prpl'],
            'brk_precharge': dvlExt['veh']['cmbb']['brk_precharge']
        }

        data = []

        for key in CMBBEvents.keys():
            indexes = []
            datamatrix = CMBBEvents[key]
            if (key in ('brk_accel', 'brk_precharge')):
                index = (np.argwhere(abs(datamatrix) >= 0.1))
                for each in index:
                    indexes += list(each)
                if indexes:
                    data.append([
                        self.groupIndexes(indexes), 'CMBBevents',
                        key + ' change occured ', -1
                    ])
            else:
                index = (np.argwhere(datamatrix == 1))
                for each in index:
                    indexes += list(each)
                if indexes:
                    data.append([
                        self.groupIndexes(indexes), 'CMBBevents',
                        key + ' occured ', -1
                    ])
        return {'len': len(data), 'data': data}
Пример #5
0
 def __init__(self, mat_path, ffs_path=None):
     self.logname = os.path.basename(mat_path[:-4])
     self.mat = dtb.loadmat(mat_path, sort=True)
     if not ffs_path:
         ffs_path = mat_path[:-3] + 'ffs'
     self.ffs_path = ffs_path
     self.signals = {'ego_vel': self.mat['mudp']['vis']['vision_vehicle_info']['vehicleVelocity'],
                     'ttc_accel': self.mat['mudp']['vis']['vision_obstacles_info']['visObs']['ttc_const_accel'],
                     'ttc_vel': self.mat['mudp']['vis']['vision_obstacles_info']['visObs']['ttc_const_vel'],
                     'uniqueID': self.mat['mudp']['vis']['vision_obstacles_info']['visObs']['uniqueID'],
                     'class': self.mat['mudp']['vis']['vision_obstacles_info']['visObs']['obstacle_class']}
     self.vis_func_info = self.mat['mudp']['vis']['vision_function_info']
     self.flags = [key for key in self.vis_func_info.keys() if 'VRU' in key]
     self.extra_info = {'ego_vel': self.mat['mudp']['vis']['vision_vehicle_info']['vehicleVelocity'],
                        'grab_idx': self.mat['mudp']['vis']['vision_function_info']['imageIndex']}
     self.events = self.find_events()
     self.out_df = self.get_vru_aeb_data() if self.events else None
Пример #6
0
    def ef_dvlExt_template(self):
        """
            EF4:

            :return: EF gives back dict structure with data len and data itself
            """
        try:
            from delphiTools3 import base
            dvlExt = base.loadmat(self.mat['__path__'],
                                  variableName='dvlExt')['dvlExt']
        except:
            print('error')
            return {'len': 0, 'data': []}
        self.mat

        ### EF here
        data = []

        return {'len': len(data), 'data': data}
Пример #7
0
def main():
    parser = argparse.ArgumentParser(
        description=
        "Read DIDs from a .mat file. Currently supported DIDs: DE00, DE04. Checked with INST-CAN versions: v05.16."
    )
    parser.add_argument('input', help='Input .mat file.')

    parser.add_argument(
        '-ch',
        dest='channel',
        default='all',
        help=
        'INST-CAN channel. Default value: "all" (the script checks all CAN channels searching for messages with required IDs).'
    )
    parser.add_argument(
        '-lwc',
        dest='lowercase',
        action='store_true',
        help='Print in lowercase (e.g. "f7 f2 0a ..." instead of "F7 F2 0A ..."'
    )
    args = parser.parse_args()

    mat = dtb.loadmat(args.input)
    reader = DIDReader(uppercase=(not args.lowercase))
    reader.add_did(DidDe00())
    reader.add_did(DidDe04())

    channels_to_check = []
    if args.channel == 'all':
        print(
            "WARNING: all CAN channels are being checked. Please note that the results might not be correct."
        )
        channels_to_check = get_CAN_channels(mat)
    else:
        try:
            channels_to_check = [int(args.channel)]
        except ValueError:
            raise ValueError('channel must be an integer or "all"')

    for channel in channels_to_check:
        print("-" * 10)
        print("Checking channel " + str(channel))
        reader.read_dids(mat, channel)
Пример #8
0
def openMat(path, dat2p0):
    try:
        print('\nExtracting {}...'.format(os.path.basename(path)))
        print(path)
        mat = dt.loadmat(path,
                         variableName='mudp',
                         sort=True,
                         reBarrierMarge=False,
                         dat2p0=dat2p0)
        if dat2p0:
            if not (len(mat['mudp']['vis']['vision_traffic_sign_info']
                        ['tsrInfo']['imageIndex'])):
                print('Mat corrupted!')
                return
        else:
            if not len(
                    mat['mudp']['vis']['vision_function_info']['imageIndex']):
                print('Mat corrupted!')
                return
        return mat
    except Exception as E:
        print('Error while loading {}!'.format(os.path.basename(path)), '\n',
              E)
        return
Пример #9
0
        self.sRelDec = self.signs['signRelevantDecision']
    #     self.changeConfidence()

    # def changeConfidence(self):
    #     # For better visualisation if conf==0.99 assume it's 0.5
    #     self.sConf[self.sConf < 0.5,:] = 0
    #     self.sConf[0.5 <= self.sConf <= 0.99,:] = 0.5


for row in range(len(logsData)):
# for row in range(1):
    log = logsData['matPath'].iloc[row]
    beg = logsData['startEvent'].iloc[row]
    end = logsData['endEvent'].iloc[row]
    logName = logsData['matName'].iloc[row]
    log = dtb.loadmat(log, sort=True, variableName='mudp')
    data = SignData(log)
    print(f"***** Processing: {logName} ****")

    #rozmiar obrazka w calach = A4, rodzielczosc=100dpi
    #plt.figure( figsize=(8.27, 11.69), dpi=100 )
    plt.figure( figsize=(9, 9) )
    #tytul wykresu, zkres wspolrzednych 0,0=bottom-left 1,1=top-right
    plt.suptitle( logName+f':range [{beg}:{end}]', fontsize=10, ha='left', x=0.03, y=0.97)

    colorsDict = {0: 'b', 1: 'g', 2: 'r', 3: 'c',4: 'm', 5: 'y', 6: 'k', 7: 'b'}

    print(len(data.sType))

    for i in range(8):
        #kolumna i w tablicy sType
Пример #10
0
 def fromFile(self, mat_file):
     self.mat = dtb.loadmat(mat_file)
Пример #11
0
    def appendDetails(self):
        try:
            from delphiTools3 import base
            self.dvlExt = base.loadmat(self.mat['__path__'],
                                       variableName='dvlExt')['dvlExt']
        except:
            print('error')

        self.header += [
            'duration[s]', 'time_gap', 'brake_accel', 'propulsion_accel',
            'fcw_sens', 'brk_assist_sens'
        ]
        self.tselIndex = self.get_closest(
            self.mat['mudp']['vis']['header']['cTime'],
            self.dvlExt['tsel']['sys']['ctimeu'] * 1000000)
        self.dvlvisIndex = self.get_closest(
            self.mat['mudp']['vis']['header']['cTime'],
            self.dvlExt['vis']['sys']['ctimeu'] * 1000000)
        self.appendHeader()

        errorNameList = []
        for eventsDict in self.eventsDictList:
            index = int(
                np.where(self.visIndex == eventsDict['eventIndex'])[0][0])
            columnID = eventsDict['eventColumnID']
            try:
                eventsDict['duration[s]'] = round(
                    self.dvlExt['veh']['acc']['ctimeu'][
                        index + eventsDict['eventDuration'] - 1] -
                    self.dvlExt['veh']['acc']['ctimeu'][index], 3)
            except:
                errorNameList.append('duration[s]')
            try:
                eventsDict['time_gap'] = self.dvlExt['veh']['acc']['time_gap'][
                    index]
            except:
                errorNameList.append('time_gap')
            try:
                eventsDict['brake_accel'] = self.dvlExt['veh']['acc'][
                    'brake_accel'][index]
            except:
                errorNameList.append('brake_accel')
            try:
                eventsDict['propulsion_accel'] = self.dvlExt['veh']['acc'][
                    'propulsion_accel'][index]
            except:
                errorNameList.append('propulsion_accel')
            try:
                eventsDict['brk_assist_sens'] = self.dvlExt['veh']['cmbb'][
                    'brk_assist_sens'][index]
            except:
                errorNameList.append('brk_assist_sens')
            try:
                eventsDict['fcw_sens'] = self.dvlExt['veh']['cmbb'][
                    'fcw_sens'][index]
            except:
                errorNameList.append('fcw_sens')
            if (eventsDict['eventFinderID'] == 'ACCevents'):
                if 'pcas' in self.dvlExt['tsel'].keys(
                ) and 'pcav' in self.dvlExt['tsel'].keys():
                    self.TselRtvDetails(eventsDict, errorNameList)
                else:
                    self.PedsDetails(eventsDict, errorNameList)
            elif (eventsDict['eventFinderID'] == 'CMBBevents'):
                self.TselPcasDetails(eventsDict, errorNameList)
            self.dvlVisDetails(eventsDict, errorNameList)

        return list(set(errorNameList))
Пример #12
0
    def ef_ACCevents(self):
        """
            EF4: ACC Events

            :return: EF gives back dict structure with data len and data itself
            """

        try:
            from delphiTools3 import base
            dvlExt = base.loadmat(self.mat['__path__'],
                                  variableName='dvlExt')['dvlExt']
            self.visIndex = self.get_closest(
                self.mat['mudp']['vis']['header']['cTime'],
                dvlExt['veh']['acc']['ctimeu'] * 1000000)

            self.visLen = len(self.mat['mudp']['vis']['header']['cTime'])
        except:
            print('error, missing structures')
            return {'len': 0, 'data': []}

        ACCEvents = {
            'stop_stat': dvlExt['veh']['acc']['stop_stat'],
            'stop_mode': dvlExt['veh']['acc']['stop_mode'],
            'follow_mode': dvlExt['veh']['acc']['follow_mode'],
            'warning': dvlExt['veh']['acc']['warning'],
            'brk_req': dvlExt['veh']['acc']['brk_req'],
            'cc_stat': dvlExt['veh']['acc']['cc_stat']
        }

        data = []

        for key in ACCEvents.keys():
            indexes = []
            datamatrix = ACCEvents[key]
            if (key in ('stop_mode', 'warning')):
                for i in (1, 2, 3, 4):
                    indexes = []
                    index = (np.argwhere(datamatrix == i))
                    for each in index:
                        indexes += list(each)
                    if indexes:
                        data.append([
                            self.groupIndexes(indexes), 'ACCevents',
                            key + ' occured ', -1
                        ])
            elif (key == 'cc_stat'):
                index = (np.argwhere(np.diff(datamatrix) != 0))
                for each in index:
                    indexes += list(each)
                if indexes:
                    data.append([
                        self.groupIndexes(indexes), 'ACCevents',
                        key + ' change occured ', -1
                    ])
            else:
                index = (np.argwhere(datamatrix == 1))
                for each in index:
                    indexes += list(each)
                if indexes:
                    data.append([
                        self.groupIndexes(indexes), 'ACCevents',
                        key + ' occured ', -1
                    ])
        return {'len': len(data), 'data': data}
Пример #13
0
# ----------------------------- PREDICTED PATH -------------------------

# mat_name = "KR6N086_FTP112_TC8_20180710_105309_002"
# in_path = r"Z:\JIRA\Crossing"
# mat_path = os.path.join(in_path, mat_name + '.mat')
# out_path = r"F:\ADAS-1901\figures"
# mat = dtb.loadmat(mat_path, sort=True)
# plot_in_predicted_path(mat, mat_path, out_path)

matlist = glob.glob(r"E:\EuNCAP_s414\NCAP_20180917\*mat")

output_dir = os.path.join(r'E:\EuNCAP_s414\NCAP_20180917', 'plots_ped')
if not os.path.exists(output_dir):
    os.makedirs(output_dir)
for matfile in matlist:
    # out_path = r"F:\ADAS-1901\figures"
    # mat = dtb.loadmat(os.path.join(in_path, matfile + '.mat'), sort=True)

    print('-------------------------------------------------')
    print(f'Processing {matfile}')
    # plot_signals(mat, matfile, out_path)
    try:
        mat = dtb.loadmat(matfile, sort=True)
        confidence_plot(mat, matfile, output_dir)
        # plot_in_predicted_path(mat, matfile, output_dir)
    except Exception as err:
        # print(err)
        traceback.print_exc()
        continue
Пример #14
0
    #     self.changeConfidence()

    # def changeConfidence(self):
    #     # For better visualisation if conf==0.99 assume it's 0.5
    #     self.sConf[self.sConf < 0.5,:] = 0
    #     self.sConf[0.5 <= self.sConf <= 0.99,:] = 0.5


for row in range(len(logsData)):
    # for row in range(1):
    log1 = logsData['matPath1'].iloc[row]
    log2 = logsData['matPath2'].iloc[row]
    beg = logsData['startEvent'].iloc[row]
    end = logsData['endEvent'].iloc[row]
    logName = logsData['matName'].iloc[row]
    log1 = dtb.loadmat(log1, sort=True, variableName='mudp')
    log2 = dtb.loadmat(log2, sort=True, variableName='mudp')
    data1 = SignData(log1)
    data2 = SignData(log2)
    print(f"***** Processing: {logName} ****")

    #rozmiar obrazka w calach = A4, rodzielczosc=100dpi
    #plt.figure( figsize=(8.27, 11.69), dpi=100 )
    plt.figure(figsize=(9, 9))
    #tytul wykresu, zkres wspolrzednych 0,0=bottom-left 1,1=top-right
    plt.suptitle(logName)

    for i in range(8):
        #kolumna i w tablicy sType
        sType1 = data1.sType[:, i]
        sType2 = data2.sType[:, i]
Пример #15
0
        if file.endswith(".mat"):
            FileList.append(os.path.join(path, file))
    return FileList


data_table = []
# mat_path = os.getcwd()
# lista plików *.mat w folderze
matList = getFiles(r".")

for item in tqdm(matList):
    print(f"***** Processing: {item} ****")

    # tu jest ładowany cały plik *.mat do zmiennej mat
    try:
        mat = loadmat(item)
    except Exception as e:
        # w razie wyjatku dodajemny nazwe pliku do data_table
        data_table.append([item, e, None])
        continue

    # tu z elementu mat wybieramy właściwe wartosci
    vdID = mat['mudp']['vis']['vision_active_light_sensor_info'][
        'activeLightSensorInfo']['activeLightSpots']['vdID']
    id = mat['mudp']['vis']['vision_obstacles_info']['visObjects']['visObs'][
        'id']

    for coordinates, val_vdID in np.ndenumerate(vdID):
        if val_vdID != 0:  # jesli wartość w macierzy vdID jest różna od zera
            id_l = id[
                coordinates[0]]  # to znajdz w macierzy id odpowiadający wiersz
Пример #16
0
    def appendDetails(self):
        try:
            from delphiTools3 import base
            self.dvlExt = base.loadmat(self.mat['__path__'],
                                       variableName='dvlExt')['dvlExt']
        except:
            print('error')
        mapDayNight = {0: 'day', 1: 'dusk', 2: 'night'}
        mapLaneConf = {240: 0, 150: 2, 105: 1}
        car_id_list = [
            'KQW3213', 'KQW3211', 'KQW3215', 'KQW3210', 'KQW6524', 'KQZ7442',
            'KQZ7441', 'EU64FVF', '564W756', '517W750', '516W341', '565W051',
            '565W081', '565W696', '565W697', '565W698', 'AH359H', 'AH555G',
            'AG628D', 'GA62099', 'GA62048', 'A0H1C9', 'STELIAN'
        ]

        self.header += [
            'severity_level', 'carID', 'day/night', 'detected_vru',
            'detected_veh', 'detected_obj', 'detected_signs',
            'leftlaneMarkerConf2 duration', 'leftlaneMarkerConf3 duration',
            'rightlaneMarkerConf2 duration', 'rightlaneMarkerConf3 duration',
            'f_ambiguousLinePatternRight duration',
            'f_ambiguousLinePatternLeft duration', 'roadPredictionLeft',
            'roadPredictionRight', 'activeLightSpots', 'camera_dist_lwheel_mm',
            'camera_dist_rwheel_mm', 'vcs_camera_height', 'vcs_camera_lat',
            'vcs_camera_long', 'f_tunnelEntryOrExit duration',
            'f_constructionArea duration', 'urban_area duration',
            'leftWheel_mm', 'rightWheel_mm', 'amb_air_tempMax',
            'amb_air_tempMin', 'villageDetected', 'imagerTemperatureMin',
            'imagerTemperatureMax', 'mipsTemperatureMin', 'mipsTemperatureMax',
            'vmpTemperatureMin', 'vmpTemperatureMax', 'ddrTemperatureMin',
            'ddrTemperatureMax', 'imagerChipVersion', 'imagerFuseID',
            'hardwareRevision', 'vehicle_type', 'vehicle_region',
            'vehicle_country', 'horizonKA', 'yawKA', 'rollAngleKA',
            'cameraAlignmentValidKA', 'drivingSideKA', 'currentMarketKA',
            'tsrMarketKA', 'PercentRamUsage', 'autoFixOk', 'horizon', 'yaw',
            'rollAngle', 'washerFrontcmd', 'wiperFrontCmd', 'wiperSpeedInfo'
        ]

        errorNameList = []
        for eventsDict in self.eventsDictList:
            index = int(
                np.where(self.visIndex == eventsDict['eventIndex'])[0][0])
            columnID = eventsDict['eventColumnID']
            try:
                eventsDict['day/night'] = \
                    mapDayNight[int(round(np.mean(self.mat['mudp']['vis']['vision_ahbc_info']['ahbcAvailable'])))]
            except:
                errorNameList.append('day/night')
            try:
                eventsDict['severity_level'] = \
                    self.mat['mudp']['vis']['vision_failsafes'][eventsDict['eventComment']][index]
            except:
                errorNameList.append('severity_level')
            try:
                eventsDict['carID'] = \
                    [x for x in car_id_list if x in eventsDict['logName'].upper()][0]
            except:
                errorNameList.append('carID')
            try:
                eventsDict['detected_vru'] = \
                    self.object_counter(index, eventsDict['eventDuration'], 4,9)
            except:
                errorNameList.append('detected_vru')
            try:
                eventsDict['detected_veh'] = \
                    self.object_counter(index,eventsDict['eventDuration'],1,3)
            except:
                errorNameList.append('detected_veh')
            try:
                eventsDict['detected_obj'] = \
                    (self.mat['mudp']['vis']['vision_obstacles_info']['visObs']['detection_status']
                     [index:index + eventsDict['eventDuration']] == 1).sum()
            except:
                errorNameList.append('detected_obj')
            try:
                eventsDict['detected_signs'] = \
                    (self.mat['mudp']['vis']['vision_traffic_sign_info']['trafficSigns']['signStatus']
                    [index:index + eventsDict['eventDuration']] == 2).sum()
            except:
                errorNameList.append('detected_signs')
            try:
                eventsDict['leftlaneMarkerConf2 duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['hostLeftIndividualMarker'][
                        'laneMarkerConf']['confLKA'][index:index+eventsDict['eventDuration']] == 105).sum()
            except:
                errorNameList.append('leftlaneMarkerConf2 duration')
            try:
                eventsDict['rightlaneMarkerConf2 duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['hostRightIndividualMarker'][
                        'laneMarkerConf']['confLKA'][index:index+eventsDict['eventDuration']] == 105).sum()
            except:
                errorNameList.append('rightlaneMarkerConf2 duration')
            try:
                eventsDict['leftlaneMarkerConf3 duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['hostLeftIndividualMarker'][
                        'laneMarkerConf']['confLKA'][index:index+eventsDict['eventDuration']] == 150).sum()
            except:
                errorNameList.append('leftlaneMarkerConf3 duration')
            try:
                eventsDict['rightlaneMarkerConf3 duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['hostRightIndividualMarker'][
                        'laneMarkerConf']['confLKA'][index:index+eventsDict['eventDuration']] == 150).sum()
            except:
                errorNameList.append('rightlaneMarkerConf3 duration')
            try:
                eventsDict['f_ambiguousLinePatternLeft duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['f_ambiguousLinePatternLeft'][
                        index:index+eventsDict['eventDuration']] == 1).sum()
            except:
                errorNameList.append('f_ambiguousLinePatternLeft duration')
            try:
                eventsDict['f_ambiguousLinePatternRight duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['f_ambiguousLinePatternRight'][
                        index:index+eventsDict['eventDuration']] == 1).sum()
            except:
                errorNameList.append('f_ambiguousLinePatternRight duration')
            try:
                eventsDict['roadPredictionLeft'] = \
                    dict(collections.Counter(self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['roadPredictionLeft'][
                        index:index+eventsDict['eventDuration']]))
            except:
                errorNameList.append('roadPredictionLeft')
            try:
                eventsDict['roadPredictionRight'] = \
                    dict(collections.Counter(self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['roadPredictionRight'][
                        index:index+eventsDict['eventDuration']]))
            except:
                errorNameList.append('roadPredictionRight')
            try:
                eventsDict['activeLightSpots'] = \
                    (np.unique(self.mat['mudp']['vis']['vision_active_light_sensor_info']['activeLightSpots']['id']
                              [index:index+eventsDict['eventDuration']]) > 0).sum()
            except:
                errorNameList.append('activeLightSpots')
            try:
                eventsDict['camera_dist_lwheel_mm'] = \
                    self.mat['mudp']['vfpState']['cals']['corse_sensor_cals']['camera_mounting']['camera_dist_lwheel_mm'][index]
            except:
                errorNameList.append('camera_dist_lwheel_mm')
            try:
                eventsDict['camera_dist_rwheel_mm'] = \
                    self.mat['mudp']['vfpState']['cals']['corse_sensor_cals']['camera_mounting']['camera_dist_rwheel_mm'][index]
            except:
                errorNameList.append('camera_dist_rwheel_mm')
            try:
                eventsDict['vcs_camera_height'] = \
                    self.mat['mudp']['vfpState']['cals']['corse_sensor_cals']['camera_mounting']['vcs_camera_height'][index]
            except:
                errorNameList.append('vcs_camera_height')
            try:
                eventsDict['vcs_camera_lat'] = \
                    self.mat['mudp']['vfpState']['cals']['corse_sensor_cals']['camera_mounting']['vcs_camera_lat'][index]
            except:
                errorNameList.append('vcs_camera_lat')
            try:
                eventsDict['vcs_camera_long'] = \
                    self.mat['mudp']['vfpState']['cals']['corse_sensor_cals']['camera_mounting']['vcs_camera_long'][index]
            except:
                errorNameList.append('vcs_camera_long')
            try:
                eventsDict['f_tunnelEntryOrExit duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['f_tunnelEntryOrExit']
                     [index:index + eventsDict['eventDuration']] != 0).sum()
            except:
                errorNameList.append('f_tunnelEntryOrExit duration')
            try:
                eventsDict['f_constructionArea duration'] = \
                    (self.mat['mudp']['vis']['vision_road_info']['roadMarkerInfo']['f_constructionArea']
                     [index:index + eventsDict['eventDuration']] != 0).sum()
            except:
                errorNameList.append('f_constructionArea duration')
            try:
                eventsDict['urban_area duration'] = \
                    (self.dvlExt['vis']['ahbc']['urban_area'][index:index + eventsDict['eventDuration']] != 0).sum()
            except:
                errorNameList.append('urban_area duration')
            try:
                eventsDict['leftWheel_mm'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['vehDependentParam']['leftWheel_mm'][index]
            except:
                errorNameList.append('leftWheel_mm')
            try:
                eventsDict['rightWheel_mm'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['vehDependentParam']['rightWheel_mm'][index]
            except:
                errorNameList.append('rightWheel_mm')
            try:
                eventsDict['amb_air_tempMax'] = \
                    max(self.dvlExt['veh']['ahbc']['amb_air_temp'])
            except:
                errorNameList.append('amb_air_tempMax')
            try:
                eventsDict['amb_air_tempMin'] = \
                    min(self.dvlExt['veh']['ahbc']['amb_air_temp'])
            except:
                errorNameList.append('amb_air_tempMin')
            try:
                eventsDict['villageDetected'] = \
                    self.mat['mudp']['vis']['vision_active_light_sensor_info']['villageDetected'][index]
            except:
                errorNameList.append('villageDetected')
            try:
                eventsDict['imagerTemperatureMin'] = \
                    min(self.mat['mudp']['vfpDiag']['vision_temperature_info']['imagerTemperature'])
            except:
                errorNameList.append('imagerTemperatureMin')
            try:
                eventsDict['mipsTemperatureMin'] = \
                    min(self.mat['mudp']['vfpDiag']['vision_temperature_info']['mipsTemperature'])
            except:
                errorNameList.append('mipsTemperatureMin')
            try:
                eventsDict['vmpTemperatureMin'] = \
                    min(self.mat['mudp']['vfpDiag']['vision_temperature_info']['vmpTemperature'])
            except:
                errorNameList.append('vmpTemperatureMin')
            try:
                eventsDict['ddrTemperatureMin'] = \
                    min(self.mat['mudp']['vfpDiag']['vision_temperature_info']['ddrTemperature'])
            except:
                errorNameList.append('ddrTemperatureMin')
            try:
                eventsDict['imagerTemperatureMax'] = \
                    max(self.mat['mudp']['vfpDiag']['vision_temperature_info']['imagerTemperature'])
            except:
                errorNameList.append('imagerTemperatureMax')
            try:
                eventsDict['mipsTemperatureMax'] = \
                    max(self.mat['mudp']['vfpDiag']['vision_temperature_info']['mipsTemperature'])
            except:
                errorNameList.append('mipsTemperatureMax')
            try:
                eventsDict['vmpTemperatureMax'] = \
                    max(self.mat['mudp']['vfpDiag']['vision_temperature_info']['vmpTemperature'])
            except:
                errorNameList.append('vmpTemperatureMax')
            try:
                eventsDict['ddrTemperatureMax'] = \
                    max(self.mat['mudp']['vfpDiag']['vision_temperature_info']['ddrTemperature'])
            except:
                errorNameList.append('ddrTemperaturMaxe')
            try:
                eventsDict['imagerChipVersion'] = \
                    max(self.mat['mudp']['vfpDiag']['vision_app_init_info']['imagerChipVersion'])
            except:
                errorNameList.append('imagerChipVersion')
            try:
                eventsDict['imagerFuseID'] = \
                    self.mat['mudp']['vfpDiag']['vision_app_init_info']['imagerFuseID'][round(index/9)]
            except:
                errorNameList.append('imagerFuseID')
            try:
                eventsDict['hardwareRevision'] = \
                    self.mat['mudp']['vfpDiag']['vision_app_init_info']['hardwareRevision'][round(index/9)]
            except:
                errorNameList.append('hardwareRevision')
            try:
                eventsDict['vehicle_type'] = \
                    self.mat['mudp']['vfpState']['cals']['delphi_sw_params']['vehicle_type'][index]
            except:
                errorNameList.append('vehicle_type')
            try:
                eventsDict['vehicle_region'] = \
                    self.mat['mudp']['vfpState']['cals']['delphi_sw_params']['vehicle_region'][index]
            except:
                errorNameList.append('vehicle_region')
            try:
                eventsDict['vehicle_country'] = \
                    self.mat['mudp']['vfpState']['cals']['delphi_sw_params']['vehicle_country'][index]
            except:
                errorNameList.append('vehicle_country')
            try:
                eventsDict['horizonKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['horizonKA'][index]
            except:
                errorNameList.append('horizonKA')
            try:
                eventsDict['yawKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['yawKA'][index]
            except:
                errorNameList.append('yawKA')
            try:
                eventsDict['rollAngleKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['rollAngleKA'][index]
            except:
                errorNameList.append('rollAngleKA')
            try:
                eventsDict['cameraAlignmentValidKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam'][
                        'cameraAlignmentValidKA'][index]
            except:
                errorNameList.append('cameraAlignmentValidKA')
            try:
                eventsDict['drivingSideKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['drivingSideKA'][index]
            except:
                errorNameList.append('drivingSideKA')
            try:
                eventsDict['currentMarketKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['currentMarketKA'][index]
            except:
                errorNameList.append('currentMarketKA')
            try:
                eventsDict['tsrMarketKA'] = \
                    self.mat['mudp']['vfpState']['cals']['vision_params']['driveCycleParam']['tsrMarketKA'][index]
            except:
                errorNameList.append('tsrMarketKA')
            try:
                eventsDict['PercentRamUsage'] = \
                    max(self.mat['mudp']['vfpDiag']['PercentRamUsage'])
            except:
                errorNameList.append('PercentRamUsage')
            try:
                eventsDict['autoFixOk'] = \
                    self.mat['mudp']['vis']['vision_camera_alignment_info']['autoFixOk'][index]
            except:
                errorNameList.append('autoFixOk')
            try:
                eventsDict['horizon'] = \
                    self.mat['mudp']['vis']['vision_camera_alignment_info']['cameraAlignment']['horizon'][index]
            except:
                errorNameList.append('horizon')
            try:
                eventsDict['yaw'] = \
                    self.mat['mudp']['vis']['vision_camera_alignment_info']['cameraAlignment']['yaw'][index]
            except:
                errorNameList.append('yaw')
            try:
                eventsDict['rollAngle'] = \
                    self.mat['mudp']['vis']['vision_camera_alignment_info']['cameraAlignment']['rollAngle'][index]
            except:
                errorNameList.append('rollAngle')
            try:
                eventsDict['washerFrontcmd'] = \
                    round((self.mat['mudp']['vfpState']['cmd_msg']['veh_state_info']['washerFrontcmd']
                     [round(index*3.7):round((index + eventsDict['eventDuration'])*3.7)] > 0).sum()/3.6)
            except:
                errorNameList.append('washerFrontcmd')
            try:
                eventsDict['wiperFrontCmd'] = \
                    round((self.mat['mudp']['vfpState']['cmd_msg']['veh_state_info']['wiperFrontCmd']
                     [round(index*3.6):round((index + eventsDict['eventDuration'])*3.6)] > 0).sum()/3.6)
            except:
                errorNameList.append('wiperFrontCmd')
            try:
                eventsDict['wiperSpeedInfo'] = \
                    round((self.mat['mudp']['vfpState']['cmd_msg']['veh_state_info']['wiperSpeedInfo']
                     [round(index*3.7):round((index + eventsDict['eventDuration'])*3.6)] > 0).sum()/3.6)
            except:
                errorNameList.append('rollAngle')

        return list(set(errorNameList))