1 /* 2 * Copyright (c) 2015-2021, The OSKAR Developers. 3 * See the LICENSE file at the top-level directory of this distribution. 4 */ 5 6 #ifndef OSKAR_VIS_HEADER_ACCESSORS_H_ 7 #define OSKAR_VIS_HEADER_ACCESSORS_H_ 8 9 /** 10 * @file oskar_vis_header_accessors.h 11 */ 12 13 #include <oskar_global.h> 14 #include <mem/oskar_mem.h> 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 OSKAR_EXPORT 21 oskar_Mem* oskar_vis_header_telescope_path(oskar_VisHeader* vis); 22 23 OSKAR_EXPORT 24 const oskar_Mem* oskar_vis_header_telescope_path_const( 25 const oskar_VisHeader* vis); 26 27 OSKAR_EXPORT 28 oskar_Mem* oskar_vis_header_settings(oskar_VisHeader* vis); 29 30 OSKAR_EXPORT 31 const oskar_Mem* oskar_vis_header_settings_const(const oskar_VisHeader* vis); 32 33 OSKAR_EXPORT 34 int oskar_vis_header_num_tags_header(const oskar_VisHeader* vis); 35 36 OSKAR_EXPORT 37 int oskar_vis_header_num_tags_per_block(const oskar_VisHeader* vis); 38 39 OSKAR_EXPORT 40 int oskar_vis_header_write_auto_correlations(const oskar_VisHeader* vis); 41 42 OSKAR_EXPORT 43 int oskar_vis_header_write_cross_correlations(const oskar_VisHeader* vis); 44 45 OSKAR_EXPORT 46 int oskar_vis_header_amp_type(const oskar_VisHeader* vis); 47 48 OSKAR_EXPORT 49 int oskar_vis_header_coord_precision(const oskar_VisHeader* vis); 50 51 OSKAR_EXPORT 52 int oskar_vis_header_max_times_per_block(const oskar_VisHeader* vis); 53 54 OSKAR_EXPORT 55 int oskar_vis_header_max_channels_per_block(const oskar_VisHeader* vis); 56 57 OSKAR_EXPORT 58 int oskar_vis_header_num_blocks(const oskar_VisHeader* vis); 59 60 OSKAR_EXPORT 61 int oskar_vis_header_num_channels_total(const oskar_VisHeader* vis); 62 63 OSKAR_EXPORT 64 int oskar_vis_header_num_elements_in_station( 65 const oskar_VisHeader* vis, int station); 66 67 OSKAR_EXPORT 68 int oskar_vis_header_num_times_total(const oskar_VisHeader* vis); 69 70 OSKAR_EXPORT 71 int oskar_vis_header_num_stations(const oskar_VisHeader* vis); 72 73 OSKAR_EXPORT 74 int oskar_vis_header_pol_type(const oskar_VisHeader* vis); 75 76 OSKAR_EXPORT 77 int oskar_vis_header_phase_centre_coord_type(const oskar_VisHeader* vis); 78 79 OSKAR_EXPORT 80 double oskar_vis_header_phase_centre_longitude_deg(const oskar_VisHeader* vis); 81 82 OSKAR_EXPORT 83 double oskar_vis_header_phase_centre_latitude_deg(const oskar_VisHeader* vis); 84 85 /* DEPRECATED. */ 86 OSKAR_EXPORT 87 double oskar_vis_header_phase_centre_ra_deg(const oskar_VisHeader* vis); 88 89 /* DEPRECATED. */ 90 OSKAR_EXPORT 91 double oskar_vis_header_phase_centre_dec_deg(const oskar_VisHeader* vis); 92 93 OSKAR_EXPORT 94 double oskar_vis_header_freq_start_hz(const oskar_VisHeader* vis); 95 96 OSKAR_EXPORT 97 double oskar_vis_header_freq_inc_hz(const oskar_VisHeader* vis); 98 99 OSKAR_EXPORT 100 double oskar_vis_header_channel_bandwidth_hz(const oskar_VisHeader* vis); 101 102 OSKAR_EXPORT 103 double oskar_vis_header_time_start_mjd_utc(const oskar_VisHeader* vis); 104 105 OSKAR_EXPORT 106 double oskar_vis_header_time_inc_sec(const oskar_VisHeader* vis); 107 108 OSKAR_EXPORT 109 double oskar_vis_header_time_average_sec(const oskar_VisHeader* vis); 110 111 OSKAR_EXPORT 112 double oskar_vis_header_telescope_lon_deg(const oskar_VisHeader* vis); 113 114 OSKAR_EXPORT 115 double oskar_vis_header_telescope_lat_deg(const oskar_VisHeader* vis); 116 117 OSKAR_EXPORT 118 double oskar_vis_header_telescope_alt_metres(const oskar_VisHeader* vis); 119 120 OSKAR_EXPORT 121 oskar_Mem* oskar_vis_header_station_offset_ecef_metres( 122 oskar_VisHeader* vis, int dim); 123 124 OSKAR_EXPORT 125 const oskar_Mem* oskar_vis_header_station_offset_ecef_metres_const( 126 const oskar_VisHeader* vis, int dim); 127 128 OSKAR_EXPORT 129 oskar_Mem* oskar_vis_header_element_enu_metres( 130 oskar_VisHeader* vis, int dim, int station); 131 132 OSKAR_EXPORT 133 const oskar_Mem* oskar_vis_header_element_enu_metres_const( 134 const oskar_VisHeader* vis, int dim, int station); 135 136 137 /* Setters. */ 138 OSKAR_EXPORT 139 void oskar_vis_header_set_freq_start_hz(oskar_VisHeader* vis, double value); 140 141 OSKAR_EXPORT 142 void oskar_vis_header_set_freq_inc_hz(oskar_VisHeader* vis, double value); 143 144 OSKAR_EXPORT 145 void oskar_vis_header_set_channel_bandwidth_hz(oskar_VisHeader* vis, 146 double value); 147 148 OSKAR_EXPORT 149 void oskar_vis_header_set_time_start_mjd_utc(oskar_VisHeader* vis, 150 double value); 151 152 OSKAR_EXPORT 153 void oskar_vis_header_set_time_inc_sec(oskar_VisHeader* vis, double value); 154 155 OSKAR_EXPORT 156 void oskar_vis_header_set_time_average_sec(oskar_VisHeader* vis, double value); 157 158 OSKAR_EXPORT 159 void oskar_vis_header_set_phase_centre(oskar_VisHeader* vis, 160 int coord_type, double longitude_deg, double latitude_deg); 161 162 OSKAR_EXPORT 163 void oskar_vis_header_set_telescope_centre(oskar_VisHeader* vis, 164 double longitude_deg, double latitude_deg, double alt_metres); 165 166 OSKAR_EXPORT 167 void oskar_vis_header_set_pol_type(oskar_VisHeader* vis, int value, 168 int* status); 169 170 #ifdef __cplusplus 171 } 172 #endif 173 174 #endif /* include guard */ 175