1 /*
2 * Copyright (c) 2011-2021, The OSKAR Developers.
3 * See the LICENSE file at the top-level directory of this distribution.
4 */
5
6 #include "telescope/oskar_telescope.h"
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
oskar_telescope_load_station_coords_enu(oskar_Telescope * telescope,const char * filename,double longitude,double latitude,double altitude,int * status)12 void oskar_telescope_load_station_coords_enu(oskar_Telescope* telescope,
13 const char* filename, double longitude, double latitude,
14 double altitude, int* status)
15 {
16 int num_stations = 0;
17 oskar_Mem *x = 0, *y = 0, *z = 0, *x_err = 0, *y_err = 0, *z_err = 0;
18
19 /* Load columns from file into memory. */
20 x = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
21 y = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
22 z = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
23 x_err = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
24 y_err = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
25 z_err = oskar_mem_create(OSKAR_DOUBLE, OSKAR_CPU, 0, status);
26 num_stations = (int) oskar_mem_load_ascii(filename, 6, status,
27 x, "", y, "", z, "0.0", x_err, "0.0", y_err, "0.0", z_err, "0.0");
28
29 /* Set the station coordinates. */
30 oskar_telescope_set_station_coords_enu(telescope, longitude, latitude,
31 altitude, num_stations, x, y, z, x_err, y_err, z_err, status);
32
33 /* Free memory. */
34 oskar_mem_free(x, status);
35 oskar_mem_free(y, status);
36 oskar_mem_free(z, status);
37 oskar_mem_free(x_err, status);
38 oskar_mem_free(y_err, status);
39 oskar_mem_free(z_err, status);
40 }
41
42 #ifdef __cplusplus
43 }
44 #endif
45