Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for ff in glob('%s/*.json'%folder)[:]:
- try:
- events = json.load(open(ff))
- except JSONDecodeError:
- undecodable_jsons.append(ff)
- for event in events[1:]:
- h = event['CHRHEADER']
- eventid = h['EventId']
- callid = h['CallId']
- serv_cellid = h['eNodeBId']*256+h['CellId']
- timestamp = calTimestamp(h)
- if eventid == 4097: # PUBLIC_INFORMATION
- sig = event_signatures[eventid]
- b = event[sig['name']]
- mtmsi = b[sig['id']]
- mtmsi_map[callid] = mtmsi
- if eventid == 4866: # PERIOD_INTRA_FREQ_MR_MDT
- sig = event_signatures[eventid]
- b = event[sig['name']]
- n = b[sig['n']]
- if not n:
- continue
- if not b['Location_Info_Present']:
- continue
- if not b['ShapeType'] == 2:
- continue
- shape = sig['shape']
- usr_loc_dict = b[shape]
- # %%%%
- lat = usr_loc_dict['Degrees_Latitude']
- lon = usr_loc_dict['Degrees_Longitude']
- # %%%%
- nCell_arr = b[sig['array']%n]
- nCell_arr_out = []
- serv_EARFCN = earfcn_map[serv_cellid]
- for i in range(n):
- pci = nCell_arr[i][sig['pci']]
- # since intra nbr_EARFCN==serv_EARFCN
- triad = (serv_cellid,pci,serv_EARFCN)
- try:
- nbr_cell_id = pci_map[(triad)]
- except KeyError:
- unknown_pci_keys.add(triad)
- continue
- else:
- nCell_arr[i]['EARFCN'] = serv_EARFCN
- nCell_arr[i]['Current_CI'] = nbr_cell_id
- nCell_arr_out.append(nCell_arr[i])
- serv_cell_rsrp = b['Serving_Cell_RSRP']
- serv_cell_rsrq = b['Serving_Cell_RSRQ']
- if nCell_arr_out:
- power_map[callid][serv_cellid][timestamp] = \
- [serv_cell_rsrp,serv_cell_rsrq,\
- nCell_arr_out,usr_loc_dict,serv_EARFCN]
- stats['Resolved_INTRA_MDT']+=1
- if eventid == 4867: # PERIOD_INTER_FREQ_MR_MDT
- sig = event_signatures[eventid]
- b = event[sig['name']]
- n = b[sig['n']]
- if not n:
- continue
- if not b['Location_Info_Present']:
- continue
- if not b['ShapeType'] == 2:
- continue
- shape = sig['shape']
- usr_loc_dict = b[shape]
- nCell_arr = b[sig['array']%n]
- nCell_arr_out = []
- serv_EARFCN = earfcn_map[serv_cellid]
- for i in range(n):
- pci = nCell_arr[i][sig['pci']]
- nbr_EARFCN = nCell_arr[i][sig['arfcn']]
- EUTRAN_cell_id = nCell_arr[i][sig['ci']]
- if EUTRAN_cell_id == 4294967295:
- continue # invalid cell
- triad = (serv_cellid,pci,nbr_EARFCN)
- if eutran: # don't use pci-map
- nbr_cell_id = EUTRAN_cell_id
- nCell_arr[i]['Current_CI'] = nbr_cell_id
- nCell_arr[i]['EARFCN'] = nbr_EARFCN
- nCell_arr_out.append(nCell_arr[i])
- else:
- try:
- nbr_cell_id = pci_map[(triad)]
- except KeyError:
- unknown_pci_keys.add(triad)
- continue
- else:
- if EUTRAN_cell_id!=nbr_cell_id:
- if debug:
- print('Wrong Neighbouring Cell Id?')
- print('\tEUTRAN_Cell_ID:%i'%EUTRAN_cell_id)
- print('\tResolved From Map:%i'%nbr_cell_id)
- else:
- nCell_arr[i]['EARFCN'] = nbr_EARFCN
- nCell_arr[i]['Current_CI'] = nbr_cell_id
- nCell_arr_out.append(nCell_arr[i])
- serv_cell_rsrp = b['Serving_Cell_RSRP']
- serv_cell_rsrq = b['Serving_Cell_RSRQ']
- if nCell_arr_out:
- if (callid,timestamp) in power_map:
- if debug:
- print('Same CallId-Timstamp')
- print('\t',(callid,timestamp))
- print('\t',power_map[(callid,timestamp)])
- print('\t',[serv_cellid,serv_cell_rsrp,serv_cell_rsrq,\
- nCell_arr_out,usr_loc_dict])
- power_map[callid][serv_cellid][timestamp] = \
- [serv_cell_rsrp,serv_cell_rsrq,\
- nCell_arr_out,usr_loc_dict,serv_EARFCN]
- stats['Resolved_INTER_MDT']+=1
- if eventid == 4626: # PERIOD_PRIVATE_UE_MEASUREMENT
- sig = event_signatures[eventid]
- b = event[sig['name']]
- ta = b[sig['ta']]
- delay_map[callid][serv_cellid][timestamp] = ta
- if eventid == 4097: # PUBLIC_INFORMATION
- sig = event_signatures[eventid]
- b = event[sig['name']]
- mtmsi_map[callid] = b[sig['id']]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement