diff --git a/steps/findRefAnt_join.cwl b/steps/findRefAnt_join.cwl index a18ad13a1cd6527a5e548d681d87c2b20adddc5e..bf9bd2857977ed5255a9f3d37bdc52769f3854cc 100644 --- a/steps/findRefAnt_join.cwl +++ b/steps/findRefAnt_join.cwl @@ -46,19 +46,26 @@ requirements: with open('input.json', 'r') as f_stream: flagged_fraction_dict_list = json.load(f_stream) filter_station = '$(inputs.filter_station)' + no_station_selected = True - flagged_fraction_data = {} - for flagged_fraction_dict in flagged_fraction_dict_list: - entry = ast.literal_eval(flagged_fraction_dict) - antennas = entry.keys() - selected_stations = [ station_name for station_name in antennas if re.match(filter_station, station_name) ] - if len(selected_stations) == 0: - raiseError('No stations left after filtering.') - for antenna in selected_stations: - try: - flagged_fraction_data[antenna].append(float(entry[antenna])) - except KeyError: - flagged_fraction_data[antenna] = [float(entry[antenna])] + while no_station_selected: + print('Applying station filter ' + str(filter_station)) + flagged_fraction_data = {} + no_station_selected = False + for flagged_fraction_dict in flagged_fraction_dict_list: + entry = ast.literal_eval(flagged_fraction_dict) + antennas = entry.keys() + selected_stations = [ station_name for station_name in antennas if re.match(filter_station, station_name) ] + if len(selected_stations) == 0: + print('No stations left after filtering. Station(s) do(es) not exist in all subbands. No filter is used.') + filter_station = '' + no_station_selected = True + break + for antenna in selected_stations: + try: + flagged_fraction_data[antenna].append(float(entry[antenna])) + except KeyError: + flagged_fraction_data[antenna] = [float(entry[antenna])] flagged_fraction_list = [] sorted_stations = sorted(flagged_fraction_data.keys())