def _check_pb_parms(img_dataset, pb_parms):
    import numbers
    parms_passed = True
    arc_sec_to_rad = np.pi / (3600 * 180)

    #if not(_check_parms(pb_parms, 'pb_name', [str], default='PB')): parms_passed = False

    if not (_check_parms(pb_parms, 'function', [str], default='casa_airy')):
        parms_passed = False

    if not (_check_parms(pb_parms,
                         'list_dish_diameters', [list],
                         list_acceptable_data_types=[numbers.Number],
                         list_len=-1)):
        parms_passed = False
    if not (_check_parms(pb_parms,
                         'list_blockage_diameters', [list],
                         list_acceptable_data_types=[numbers.Number],
                         list_len=-1)):
        parms_passed = False

    if len(pb_parms['list_dish_diameters']) != len(
            pb_parms['list_blockage_diameters']):
        print(
            '######### ERROR:Parameter ',
            'list_dish_diameters and list_blockage_diameters must be the same length.'
        )
        parms_passed = False

    return parms_passed
Esempio n. 2
0
def _check_mosaic_pb_parms(pb_mosaic_parms):
    parms_passed = True
    
    if not(_check_parms(pb_mosaic_parms, 'pb_name', [str], default='PB')): parms_passed = False
    
    if not(_check_parms(pb_mosaic_parms, 'weight_name', [str], default='WEIGHT_PB')): parms_passed = False
    
    return parms_passed
Esempio n. 3
0
def _check_rotation_parms(rotation_parms):
    import numbers
    parms_passed = True
    
    if not(_check_parms(rotation_parms, 'new_phase_center', [list], list_acceptable_data_types=[numbers.Number], list_len=2)): parms_passed = False
    
    if not(_check_parms(rotation_parms, 'common_tangent_reprojection', [bool], default=True)): parms_passed = False
    
    if not(_check_parms(rotation_parms, 'single_precision', [bool], default=True)): parms_passed = False
    
    return parms_passed
Esempio n. 4
0
def _check_norm_parms(norm_parms):
    import numbers
    parms_passed = True
    
    if not(_check_parms(norm_parms, 'norm_type', [str], default='flat_sky', acceptable_data=['flat_noise','flat_sky','none'])): parms_passed = False
    
    if not(_check_parms(norm_parms, 'single_precision', [bool], default=True)): parms_passed = False
    
    if not(_check_parms(norm_parms, 'pb_limit', [numbers.Number], default=0.2)): parms_passed = False
    
    return parms_passed
Esempio n. 5
0
def _check_self_cal(solve_parms):
    import numbers
    parms_passed = True
    if not (_check_parms(solve_parms,
                         'gaintype', [str],
                         acceptable_data=['G', 'T'],
                         default='T')):
        parms_passed = False
    if not (_check_parms(solve_parms,
                         'solint', [str],
                         acceptable_data=['int', 'all'],
                         default='int')):
        parms_passed = False
    if not (_check_parms(solve_parms, 'refant_id', [int], default=-1)):
        parms_passed = False
    if not (_check_parms(solve_parms, 'phase_only', [bool], default=False)):
        parms_passed = False
    if not (_check_parms(solve_parms, 'minsnr', [numbers.Number],
                         default=0.0)):
        parms_passed = False
    if not (_check_parms(solve_parms, 'minblperant', [int], default=4)):
        parms_passed = False
    if not (_check_parms(solve_parms, 'ginfo', [bool], default=False)):
        parms_passed = False

    if solve_parms['refant_id'] == -1:
        solve_parms['refant_id'] = None
    return parms_passed
Esempio n. 6
0
def _check_grid_parms(grid_parms):
    import numbers
    parms_passed = True
    arc_sec_to_rad = np.pi / (3600 * 180)
    
    if not(_check_parms(grid_parms, 'image_size', [list], list_acceptable_data_types=[np.int], list_len=2)): parms_passed = False
    if not(_check_parms(grid_parms, 'image_center', [list], list_acceptable_data_types=[np.int], list_len=2, default = np.array(grid_parms['image_size'])//2)): parms_passed = False
    if not(_check_parms(grid_parms, 'cell_size', [list], list_acceptable_data_types=[numbers.Number], list_len=2)): parms_passed = False
    if not(_check_parms(grid_parms, 'fft_padding', [numbers.Number], default=1.2,acceptable_range=[1,10])): parms_passed = False
    if not(_check_parms(grid_parms, 'chan_mode', [str], acceptable_data=['cube','continuum'], default='cube')): parms_passed = False
    
    if parms_passed == True:
        grid_parms['image_size'] = np.array(grid_parms['image_size']).astype(int)
        grid_parms['image_size_padded'] = (grid_parms['fft_padding']* grid_parms['image_size']).astype(int)
        grid_parms['image_center'] = np.array(grid_parms['image_center'])
        grid_parms['cell_size'] = arc_sec_to_rad * np.array(grid_parms['cell_size'])
        grid_parms['cell_size'][0] = -grid_parms['cell_size'][0]
    
    return parms_passed
def _check_imaging_weights_parms(imaging_weights_parms):
    import numbers
    parms_passed = True
    arc_sec_to_rad = np.pi / (3600 * 180)
    '''
    if not(_check_parms(imaging_weights_parms, 'data_name', [str], default='DATA')): parms_passed = False
    if not(_check_dataset(vis_dataset,imaging_weights_parms['data_name'])): parms_passed = False
    
    if not(_check_parms(imaging_weights_parms, 'uvw_name', [str], default='UVW')): parms_passed = False
    if not(_check_dataset(vis_dataset,imaging_weights_parms['uvw_name'])): parms_passed = False
    
    if not(_check_parms(imaging_weights_parms, 'imaging_weight_name', [str], default='IMAGING_WEIGHT')): parms_passed = False
    '''

    if not (_check_parms(
            imaging_weights_parms,
            'weighting', [str],
            acceptable_data=['natural', 'uniform', 'briggs', 'briggs_abs'],
            default='natural')):
        parms_passed = False

    if imaging_weights_parms['weighting'] == 'briggs_abs':
        if not (_check_parms(imaging_weights_parms,
                             'briggs_abs_noise', [numbers.Number],
                             default=1.0)):
            parms_passed = False

    if (imaging_weights_parms['weighting']
            == 'briggs') or (imaging_weights_parms['weighting']
                             == 'briggs_abs'):
        if not (_check_parms(imaging_weights_parms,
                             'robust', [numbers.Number],
                             default=0.5,
                             acceptable_range=[-2, 2])):
            parms_passed = False

    return parms_passed
Esempio n. 8
0
def _check_gcf_parms(gcf_parms):
    import numbers
    parms_passed = True
    
    if not(_check_parms(gcf_parms, 'function', [str], acceptable_data=['alma_airy','airy'], default='alma_airy')): parms_passed = False
    if not(_check_parms(gcf_parms, 'freq_chan', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
    if not(_check_parms(gcf_parms, 'list_dish_diameters', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
    if not(_check_parms(gcf_parms, 'list_blockage_diameters', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
    if not(_check_parms(gcf_parms, 'unique_ant_indx', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
 
    if not(_check_parms(gcf_parms, 'pol', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
    if not(_check_parms(gcf_parms, 'chan_tolerance_factor', [numbers.Number], default=0.005)): parms_passed = False
    if not(_check_parms(gcf_parms, 'oversampling', [list,np.array], list_acceptable_data_types=[np.int], list_len=2, default=[10,10])): parms_passed = False
    if not(_check_parms(gcf_parms, 'max_support', [list,np.array], list_acceptable_data_types=[np.int], list_len=2, default=[15,15])): parms_passed = False
    #if not(_check_parms(gcf_parms, 'image_phase_center', [list,np.array], list_acceptable_data_types=[numbers.Number], list_len=2)): parms_passed = False
    if not(_check_parms(gcf_parms, 'support_cut_level', [numbers.Number], default=2.5*10**-2)): parms_passed = False
    if not(_check_parms(gcf_parms, 'a_chan_num_chunk', [np.int], default=3)): parms_passed = False
    
    if gcf_parms['function'] == 'airy' or gcf_parms['function'] == 'alma_airy':
        if not(_check_parms(gcf_parms, 'list_dish_diameters', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
        if not(_check_parms(gcf_parms, 'list_blockage_diameters', [list,np.array],list_acceptable_data_types=[numbers.Number],list_len=-1)): parms_passed = False
    
        if len(gcf_parms['list_dish_diameters']) != len(gcf_parms['list_blockage_diameters']):
            print('######### ERROR:Parameter ', 'list_dish_diameters and list_blockage_diameters must be the same length.')
            parms_passed = False
    
    
    
    if parms_passed == True:
        gcf_parms['oversampling'] = np.array(gcf_parms['oversampling']).astype(int)
        gcf_parms['max_support'] = np.array(gcf_parms['max_support']).astype(int)
        #gcf_parms['image_phase_center'] =  np.array(gcf_parms['image_phase_center'])
        gcf_parms['freq_chan'] =  np.array(gcf_parms['freq_chan'])
        gcf_parms['list_dish_diameters'] =  np.array(gcf_parms['list_dish_diameters'])
        gcf_parms['list_blockage_diameters'] =  np.array(gcf_parms['list_blockage_diameters'])
        gcf_parms['unique_ant_indx'] =  np.array(gcf_parms['unique_ant_indx'])
        #gcf_parms['basline_ant'] =  np.array(gcf_parms['basline_ant'])
        gcf_parms['pol'] =  np.array(gcf_parms['pol'])
        
    return parms_passed