def show_as_RT(event): """ Shows calculated SNR and CNR as a Results Table, read from saved csv Parameters ---------- event : Event Waits for show_as_RT_JB JButton to be pressed Returns ------- ResultsTable Contains calculated SNR and CNR for each combination of Gaussians """ # Open SNR_CNR_Results.csv as a ResultsTable SNR_CNR_fname = os.path.join(get_results_dir(), "SNR_CNR_Results.csv") SNR_CNR_RT = ResultsTable.open2(SNR_CNR_fname) SNR_CNR_RT.show("SNR and CNR") return SNR_CNR_RT
def main(): rt = RT.open2(table_file.getAbsolutePath()) if not rt: return log(" --- --- --- ") log("Loaded %s" % table_file.getAbsolutePath()) log("Loading column lists...") # Get column indices from imported file headings = getColumnHeadings(rt) id_col = getColumnIndex(headings, "TID") t_col = getColumnIndex(headings, "t [") d2p_col = getColumnIndex(headings, "D2P [") angle_col = getColumnIndex(headings, u'\u03B1 [deg]') delta_col = getColumnIndex(headings, u'\u0394\u03B1 [deg]') if angle_col == RT.COLUMN_NOT_FOUND: log("Failed to detect index for angle column. Re-trying...") angle_col = getColumnIndex(headings, u'? [deg]') if delta_col == RT.COLUMN_NOT_FOUND: log("Failed to detect index for delta angle column. Re-trying...") delta_col = getColumnIndex(headings, u'?? [deg]') log("Last column index is %s" % rt.getLastColumn()) if RT.COLUMN_NOT_FOUND in (id_col, d2p_col, delta_col, angle_col): uiservice.showDialog("Error: Some key columns were not found!", "Invalid Table?") return log("Settings: BOUT_WINDOW= %s, MIN_D2P= %s, DEF_FRAME_INTERVAL= %s" % (BOUT_WINDOW, '{0:.4f}'.format(MIN_D2P), DEF_FRAME_INTERVAL)) # Store all data on dedicated lists track_id_rows = rt.getColumnAsDoubles(id_col) d2p_rows = rt.getColumnAsDoubles(d2p_col) angle_rows = rt.getColumnAsDoubles(angle_col) delta_rows = rt.getColumnAsDoubles(delta_col) t_rows = rt.getColumnAsDoubles(t_col) # Assess n of data points and extract unique path ids n_rows = len(track_id_rows) row_indices = range(n_rows) track_ids = set(track_id_rows) n_tracks = len(track_ids) log("Table has %g rows" % n_rows) log("Table has %g tracks" % n_tracks) log("Parsing tracks...") for track_id in track_ids: for row, next_row in zip(row_indices, row_indices[1:]): if track_id_rows[row] != track_id: continue if not isNumber(angle_rows[row]): rt.setValue("FLAG", row, "NA") continue lower_bound = max(0, row - BOUT_WINDOW + 1) upper_bound = min(n_rows - 1, row + BOUT_WINDOW) win_d2p = [] for _ in range(lower_bound, upper_bound): win_d2p.append(d2p_rows[row]) if sum(win_d2p) <= MIN_D2P * len(win_d2p): rt.setValue("FLAG", row, 0) else: current_angle = angle_rows[row] next_angle = angle_rows[next_row] current_delta = delta_rows[row] flag = -1 if current_angle < 0 else 1 delta_change = (abs(current_delta) > 90) same_sign = ((current_angle < 0) == (next_angle < 0)) if delta_change and not same_sign: flag *= -1 rt.setValue("FLAG", row, flag) if next_row == n_rows - 1: rt.setValue("FLAG", next_row, flag) if rt.save(table_file.getAbsolutePath()): log("Processed table successfully saved (file overwritten)") else: log("Could not override input file. Displaying it...") rt.show(table_file.name) log("Creating onset table...") onset_rt = RT() onset_rt.showRowNumbers(False) frame_int = DEF_FRAME_INTERVAL if "table" in frame_rate_detection: frame_int = getFrameIntervalFromTable(row_indices, track_id_rows, t_rows) elif "image" in frame_rate_detection: frame_int = getFrameIntervalFromImage(image_file.getAbsolutePath()) else: log("Using default frame rate") for track_id in track_ids: for prev_row, row in zip(row_indices, row_indices[1:]): if not track_id in (track_id_rows[prev_row], track_id_rows[row]): continue flag = rt.getValue("FLAG", row) if not isNumber(flag): continue flag = int(flag) if flag == 0: continue if flag == 1 or flag == -1: srow = onset_rt.getCounter() onset_rt.incrementCounter() onset_rt.setValue("TID", srow, track_id) from_frame = int(t_rows[prev_row] / frame_int) + 1 to_frame = int(t_rows[row] / frame_int) + 1 onset_rt.setValue("First disp. [t]", srow, "%s to %s" % (t_rows[prev_row], t_rows[row])) onset_rt.setValue("First disp. [frames]", srow, "%s to %s" % (from_frame, to_frame)) onset_rt.setValue("ManualTag", srow, "") break out_path = suffixed_path(table_file.getAbsolutePath(), "ManualTagging") if onset_rt.save(out_path): log("Summary table successfully saved: %s" % out_path) else: log("File not saved... Displaying onset table") onset_rt.show("Onsets %s" % table_file.name)
def main(): rt = RT.open2(table_file.getAbsolutePath()) if not rt: return log(" --- --- --- ") log("Loaded %s" % table_file.getAbsolutePath()) log("Loading column lists...") # Get column indices from imported file headings = getColumnHeadings(rt) id_col = getColumnIndex(headings, "TID") t_col = getColumnIndex(headings, "t [") d2p_col = getColumnIndex(headings, "D2P [") angle_col = getColumnIndex(headings, u'\u03B1 [deg]') delta_col = getColumnIndex(headings, u'\u0394\u03B1 [deg]') if angle_col == RT.COLUMN_NOT_FOUND: log("Failed to detect index for angle column. Re-trying...") angle_col = getColumnIndex(headings, u'? [deg]') if delta_col == RT.COLUMN_NOT_FOUND: log("Failed to detect index for delta angle column. Re-trying...") delta_col = getColumnIndex(headings, u'?? [deg]') log("Last column index is %s" % rt.getLastColumn()) if RT.COLUMN_NOT_FOUND in (id_col, d2p_col, delta_col, angle_col): uiservice.showDialog("Error: Some key columns were not found!", "Invalid Table?") return log("Settings: BOUT_WINDOW= %s, MIN_D2P= %s, DEF_FRAME_INTERVAL= %s" % (BOUT_WINDOW, '{0:.4f}'.format(MIN_D2P), DEF_FRAME_INTERVAL)) # Store all data on dedicated lists track_id_rows = rt.getColumnAsDoubles(id_col) d2p_rows = rt.getColumnAsDoubles(d2p_col) angle_rows = rt.getColumnAsDoubles(angle_col) delta_rows = rt.getColumnAsDoubles(delta_col) t_rows = rt.getColumnAsDoubles(t_col) # Assess n of data points and extract unique path ids n_rows = len(track_id_rows) row_indices = range(n_rows) track_ids = set(track_id_rows) n_tracks = len(track_ids) log("Table has %g rows" % n_rows) log("Table has %g tracks" % n_tracks) log("Parsing tracks...") for track_id in track_ids: for row, next_row in zip(row_indices, row_indices[1:]): if track_id_rows[row] != track_id: continue if not isNumber(angle_rows[row]): rt.setValue("FLAG", row, "NA") continue lower_bound = max(0, row - BOUT_WINDOW + 1) upper_bound = min(n_rows-1, row + BOUT_WINDOW) win_d2p = [] for _ in range(lower_bound, upper_bound): win_d2p.append(d2p_rows[row]) if sum(win_d2p) <= MIN_D2P * len(win_d2p): rt.setValue("FLAG", row, 0) else: current_angle = angle_rows[row] next_angle = angle_rows[next_row] current_delta = delta_rows[row] flag = -1 if current_angle < 0 else 1 delta_change = (abs(current_delta) > 90) same_sign = ((current_angle<0) == (next_angle<0)) if delta_change and not same_sign: flag *= -1 rt.setValue("FLAG", row, flag) if next_row == n_rows - 1: rt.setValue("FLAG", next_row, flag) if rt.save(table_file.getAbsolutePath()): log("Processed table successfully saved (file overwritten)") else: log("Could not override input file. Displaying it...") rt.show(table_file.name) log("Creating onset table...") onset_rt = RT() onset_rt.showRowNumbers(False) frame_int = DEF_FRAME_INTERVAL if "table" in frame_rate_detection: frame_int = getFrameIntervalFromTable(row_indices, track_id_rows, t_rows) elif "image" in frame_rate_detection: frame_int = getFrameIntervalFromImage(image_file.getAbsolutePath()) else: log("Using default frame rate") for track_id in track_ids: for prev_row, row in zip(row_indices, row_indices[1:]): if not track_id in (track_id_rows[prev_row], track_id_rows[row]): continue flag = rt.getValue("FLAG", row) if not isNumber(flag): continue flag = int(flag) if flag == 0: continue if flag == 1 or flag == -1: srow = onset_rt.getCounter() onset_rt.incrementCounter() onset_rt.setValue("TID", srow, track_id) from_frame = int(t_rows[prev_row]/frame_int) + 1 to_frame = int(t_rows[row]/frame_int) + 1 onset_rt.setValue("First disp. [t]", srow, "%s to %s" % (t_rows[prev_row], t_rows[row])) onset_rt.setValue("First disp. [frames]", srow, "%s to %s" % (from_frame, to_frame)) onset_rt.setValue("ManualTag", srow, "") break out_path = suffixed_path(table_file.getAbsolutePath(), "ManualTagging") if onset_rt.save(out_path): log("Summary table successfully saved: %s" % out_path) else: log("File not saved... Displaying onset table") onset_rt.show("Onsets %s" % table_file.name)