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