Commit ed7729f3 authored by Federico Felici's avatar Federico Felici
Browse files

Merge branch 'feature/testsuite' into 'master'

Feature/testsuite

See merge request spc/tcv/tbx/gdat!4
parents aefd5ff9 c614993d
Pipeline #13980 canceled with stage
in 7 seconds
*.nfs*
fort.*
# Includes a common template
include:
- project: 'spc/tcv/tbx/git-tools-spc'
file: 'gitlab-ci-tbx-template.yml'
# no build for gdat, so don't define jobs for this phase
test-matlab850:
extends: .test-template
before_script:
- cd matlab
variables:
MATLABCMD: matlab850
TESTCASE: basic-tcv
test-matlab:
extends: .test-template
before_script:
- cd matlab
variables:
MATLABCMD: matlab
TESTCASE: basic-tcv
test-matlab850-all:
extends: test-matlab850
variables:
TESTCASE: all
only:
- schedules
- web
deploy:
extends: .deploy-to-lac-template
test-matlab850-deployed:
extends: .test-template-deployed
variables:
MATLABCMD: matlab850
test-matlab-deployed:
extends: .test-template-deployed
variables:
MATLABCMD: matlab
*.m~
*.mat
*.fig
......@@ -1090,35 +1090,42 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case {'ids'}
ids_empty_path = fullfile(fileparts(mfilename('fullpath')),'..','TCV_IMAS','ids_empty');
params_eff = gdat_data.gdat_params;
if isfield(params_eff,'source') && ~isempty(params_eff.source)
ids_top_name = params_eff.source;
else
ids_top_name = [];
disp('need an ids name in ''source'' parameter');
disp('check substructure gdat_params.source_available for an ids list');
end
ids_gen_ok = ~isempty(which('ids_gen'));
ids_empty = struct([]);
if ~ids_gen_ok
ids_struct_saved = '/home/sauter/matlab/gdat_develop/crpptbx/TCV_IMAS/ids_structures_20190312.mat';
if ~exist(ids_struct_saved,'file')
warning(['function ids_gen not available neither file ids_structures_20190312.mat thus cannot create empty ids: ids_gen(''' ids_top_name ''')']);
return
else
load(ids_struct_saved)
if isfield(ids_structures,ids_top_name)
ids_empty = ids_structures.(ids_top_name);
else
if ~isempty(ids_top_name);
warning(['ids ''' ids_top_name ''' does not exist in ids_structures saved in ' ids_struct_saved]);
end
gdat_data.gdat_params.source_available = ids_list;
return
end
end
warning('gdat:EmptyIDSName','Need an ids name in ''source'' parameter\n check substructure gdat_params.sources_available for an ids list');
addpath(ids_empty_path);
assert(~~exist('ids_list','file'),'could not find ids_list.m in %s',ids_empty_path);
gdat_data.gdat_params.sources_available = ids_list;
rmpath(ids_empty_path);
return
end
ids_gen_ok = ~~exist('ids_gen','file');
if ids_gen_ok
ids_empty = ids_gen(ids_top_name); % generate ids from gateway function ids_gen
else
ids_empty = ids_gen(ids_top_name);
% load empty ids structure from template file
fname = sprintf('ids_empty_%s',ids_top_name);
try
assert(~~exist(ids_empty_path,'dir'),'folder %s not found',ids_empty_path);
addpath(ids_empty_path);
assert(~~exist(fname,'file'),'file %s does not exist in %s',fname,ids_empty_path);
ids_empty = eval(fname);
rmpath(ids_empty_path);
catch ME
fprintf('Could not load empty template for %s\n',ids_top_name);
fprintf('Available templates:\n');
disp(dir(ids_empty_path));
rmpath(ids_empty_path);
rethrow(ME);
end
end
if ~isfield(gdat_data.gdat_params,'error_bar') || isempty(gdat_data.gdat_params.error_bar)
gdat_data.gdat_params.error_bar = 'delta';
......@@ -1129,12 +1136,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
gdat_data.(ids_top_name) = ids_top;
gdat_data.([ids_top_name '_description']) = ids_top_description;
else
gdat_data.(ids_top_name) = ids_empty;
gdat_data.([ids_top_name '_description']) = ['shot empty so return default empty structure for ' ids_top_name];
gdat_data.(ids_top_name) = ids_empty;
gdat_data.([ids_top_name '_description']) = ['shot empty so return default empty structure for ' ids_top_name];
end
catch ME_tcv_get_ids
disp(['there is a problem with: tcv_get_ids_' ids_top_name ...
' , may be check if it exists in your path or test it by itself'])
' , may be check if it exists in your path or test it by itself'])
gdat_data.(ids_top_name) = ids_empty;
gdat_data.([ids_top_name '_description']) = getReport(ME_tcv_get_ids);
rethrow(ME_tcv_get_ids)
......
......@@ -333,12 +333,12 @@ switch lower(data_request)
mapping.timedim = 2;
mapping.label = 'R B_\phi';
mapping.method = 'switchcase';
case 'r_contour'
mapping.timedim = 2;
mapping.method = 'tdiliuqe';
mapping.expression = '\results::r_contour';
mapping.expression = '\tcv_shot::top.results.equil_1.results:r_rho'; % several flux surfaces R coordinates (irho,itheta,t)
mapping.expression = 'tcv_eq(''''r_rho'''',''''LIUQE.M'''')';
% $$$ case 'r_contour' % r_rho not yet implemented
% $$$ mapping.timedim = 2;
% $$$ mapping.method = 'tdiliuqe';
% $$$ mapping.expression = '\results::r_contour';
% $$$ mapping.expression = '\tcv_shot::top.results.equil_1.results:r_rho'; % several flux surfaces R coordinates (irho,itheta,t)
% $$$ mapping.expression = 'tcv_eq(''''r_rho'''',''''LIUQE.M'''')';
case 'r_contour_edge'
mapping.timedim = 2;
mapping.method = 'tdiliuqe';
......@@ -461,12 +461,12 @@ switch lower(data_request)
mapping.expression = '\tcv_shot::top.results.equil_1.results:w_mhd';
mapping.expression = 'tcv_eq(''''w_mhd'''',''''LIUQE.M'''')';
% $$$ end
case 'z_contour'
mapping.timedim = 2;
mapping.method = 'tdiliuqe';
mapping.expression = '\results::z_contour';
mapping.expression = '\tcv_shot::top.results.equil_1.results:z_rho'; % several flux surfaces Z coordinates (irho,itheta,t)
mapping.expression = 'tcv_eq(''''z_rho'''',''''LIUQE.M'''')';
% $$$ case 'z_contour' % z_rho not yet implemented
% $$$ mapping.timedim = 2;
% $$$ mapping.method = 'tdiliuqe';
% $$$ mapping.expression = '\results::z_contour';
% $$$ mapping.expression = '\tcv_shot::top.results.equil_1.results:z_rho'; % several flux surfaces Z coordinates (irho,itheta,t)
% $$$ mapping.expression = 'tcv_eq(''''z_rho'''',''''LIUQE.M'''')';
case 'z_contour_edge'
mapping.timedim = 2;
mapping.method = 'tdiliuqe';
......
function S = ids_empty_amns_data
% function S = ids_empty_amns_data
%
% File written automatically using struct2m.m
S = ...
struct(...
'a',double(-9.0000000000000006360851714687e+40),...
'a_error_index',double(-999999999),...
'a_error_lower',double(-9.0000000000000006360851714687e+40),...
'a_error_upper',double(-9.0000000000000006360851714687e+40),...
'code',struct(...
'commit',double([]),...
'name',double([]),...
'output_flag',double([]),...
'parameters',double([]),...
'repository',double([]),...
'version',double([])),...
'coordinate_system',{{struct(...
'coordinate',{{struct(...
'extrapolation_type',double([]),...
'interpolation_type',double(-999999999),...
'label',double([]),...
'spacing',double(-999999999),...
'transformation',double(-999999999),...
'units',double([]),...
'value_labels',{{double([]);}},...
'values',double([]),...
'values_error_index',double(-999999999),...
'values_error_lower',double([]),...
'values_error_upper',double([]))
;}})
;}},...
'ids_properties',struct(...
'comment',double([]),...
'creation_date',double([]),...
'homogeneous_time',double(-999999999),...
'provider',double([]),...
'source',double([])),...
'process',{{struct(...
'charge_state',{{struct(...
'label',double([]),...
'table_0d',double(-9.0000000000000006360851714687e+40),...
'table_0d_error_index',double(-999999999),...
'table_0d_error_lower',double(-9.0000000000000006360851714687e+40),...
'table_0d_error_upper',double(-9.0000000000000006360851714687e+40),...
'table_1d',double([]),...
'table_1d_error_index',double(-999999999),...
'table_1d_error_lower',double([]),...
'table_1d_error_upper',double([]),...
'table_2d',double([]),...
'table_2d_error_index',double(-999999999),...
'table_2d_error_lower',double([]),...
'table_2d_error_upper',double([]),...
'table_3d',double([]),...
'table_3d_error_index',double(-999999999),...
'table_3d_error_lower',double([]),...
'table_3d_error_upper',double([]),...
'table_4d',double([]),...
'table_4d_error_index',double(-999999999),...
'table_4d_error_lower',double([]),...
'table_4d_error_upper',double([]),...
'table_5d',double([]),...
'table_5d_error_index',double(-999999999),...
'table_5d_error_lower',double([]),...
'table_5d_error_upper',double([]),...
'table_6d',double([]),...
'table_6d_error_index',double(-999999999),...
'table_6d_error_lower',double([]),...
'table_6d_error_upper',double([]),...
'z_max',double(-9.0000000000000006360851714687e+40),...
'z_max_error_index',double(-999999999),...
'z_max_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_max_error_upper',double(-9.0000000000000006360851714687e+40),...
'z_min',double(-9.0000000000000006360851714687e+40),...
'z_min_error_index',double(-999999999),...
'z_min_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_min_error_upper',double(-9.0000000000000006360851714687e+40))
;}},...
'citation',double([]),...
'coordinate_index',double(-999999999),...
'label',double([]),...
'products',{{struct(...
'charge',double(-9.0000000000000006360851714687e+40),...
'charge_error_index',double(-999999999),...
'charge_error_lower',double(-9.0000000000000006360851714687e+40),...
'charge_error_upper',double(-9.0000000000000006360851714687e+40),...
'element',{{struct(...
'a',double(-9.0000000000000006360851714687e+40),...
'a_error_index',double(-999999999),...
'a_error_lower',double(-9.0000000000000006360851714687e+40),...
'a_error_upper',double(-9.0000000000000006360851714687e+40),...
'atoms_n',double(-999999999),...
'multiplicity',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_index',double(-999999999),...
'multiplicity_error_lower',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_upper',double(-9.0000000000000006360851714687e+40),...
'z_n',double(-9.0000000000000006360851714687e+40),...
'z_n_error_index',double(-999999999),...
'z_n_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_n_error_upper',double(-9.0000000000000006360851714687e+40))
;}},...
'label',double([]),...
'mass',double(-9.0000000000000006360851714687e+40),...
'mass_error_index',double(-999999999),...
'mass_error_lower',double(-9.0000000000000006360851714687e+40),...
'mass_error_upper',double(-9.0000000000000006360851714687e+40),...
'metastable',double([]),...
'metastable_label',double([]),...
'multiplicity',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_index',double(-999999999),...
'multiplicity_error_lower',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_upper',double(-9.0000000000000006360851714687e+40),...
'relative_charge',double(-999999999),...
'role',struct(...
'description',double([]),...
'index',double(-999999999),...
'name',double([])))
;}},...
'provider',double([]),...
'reactants',{{struct(...
'charge',double(-9.0000000000000006360851714687e+40),...
'charge_error_index',double(-999999999),...
'charge_error_lower',double(-9.0000000000000006360851714687e+40),...
'charge_error_upper',double(-9.0000000000000006360851714687e+40),...
'element',{{struct(...
'a',double(-9.0000000000000006360851714687e+40),...
'a_error_index',double(-999999999),...
'a_error_lower',double(-9.0000000000000006360851714687e+40),...
'a_error_upper',double(-9.0000000000000006360851714687e+40),...
'atoms_n',double(-999999999),...
'multiplicity',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_index',double(-999999999),...
'multiplicity_error_lower',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_upper',double(-9.0000000000000006360851714687e+40),...
'z_n',double(-9.0000000000000006360851714687e+40),...
'z_n_error_index',double(-999999999),...
'z_n_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_n_error_upper',double(-9.0000000000000006360851714687e+40))
;}},...
'label',double([]),...
'mass',double(-9.0000000000000006360851714687e+40),...
'mass_error_index',double(-999999999),...
'mass_error_lower',double(-9.0000000000000006360851714687e+40),...
'mass_error_upper',double(-9.0000000000000006360851714687e+40),...
'metastable',double([]),...
'metastable_label',double([]),...
'multiplicity',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_index',double(-999999999),...
'multiplicity_error_lower',double(-9.0000000000000006360851714687e+40),...
'multiplicity_error_upper',double(-9.0000000000000006360851714687e+40),...
'relative_charge',double(-999999999),...
'role',struct(...
'description',double([]),...
'index',double(-999999999),...
'name',double([])))
;}},...
'result_label',double([]),...
'result_transformation',double(-999999999),...
'result_units',double([]),...
'source',double([]),...
'table_dimension',double(-999999999))
;}},...
'release',{{struct(...
'data_entry',{{struct(...
'description',double([]),...
'run',double(-999999999),...
'shot',double(-999999999))
;}},...
'date',double([]),...
'description',double([]))
;}},...
'time',double([]),...
'z_n',double(-9.0000000000000006360851714687e+40),...
'z_n_error_index',double(-999999999),...
'z_n_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_n_error_upper',double(-9.0000000000000006360851714687e+40));
function S = ids_empty_barometry
% function S = ids_empty_barometry
%
% File written automatically using struct2m.m
S = ...
struct(...
'code',struct(...
'commit',double([]),...
'name',double([]),...
'output_flag',double([]),...
'parameters',double([]),...
'repository',double([]),...
'version',double([])),...
'gauge',{{struct(...
'calibration_coefficient',double(-9.0000000000000006360851714687e+40),...
'calibration_coefficient_error_index',double(-999999999),...
'calibration_coefficient_error_lower',double(-9.0000000000000006360851714687e+40),...
'calibration_coefficient_error_upper',double(-9.0000000000000006360851714687e+40),...
'name',double([]),...
'position',struct(...
'phi',double(-9.0000000000000006360851714687e+40),...
'phi_error_index',double(-999999999),...
'phi_error_lower',double(-9.0000000000000006360851714687e+40),...
'phi_error_upper',double(-9.0000000000000006360851714687e+40),...
'r',double(-9.0000000000000006360851714687e+40),...
'r_error_index',double(-999999999),...
'r_error_lower',double(-9.0000000000000006360851714687e+40),...
'r_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'pressure',struct(...
'data',double([]),...
'data_error_index',double(-999999999),...
'data_error_lower',double([]),...
'data_error_upper',double([]),...
'time',double([])),...
'type',struct(...
'description',double([]),...
'index',double(-999999999),...
'name',double([])))
;}},...
'ids_properties',struct(...
'comment',double([]),...
'creation_date',double([]),...
'homogeneous_time',double(-999999999),...
'provider',double([]),...
'source',double([])),...
'time',double([]));
function S = ids_empty_bolometer
% function S = ids_empty_bolometer
%
% File written automatically using struct2m.m
S = ...
struct(...
'channel',{{struct(...
'aperture',{{struct(...
'centre',struct(...
'phi',double(-9.0000000000000006360851714687e+40),...
'phi_error_index',double(-999999999),...
'phi_error_lower',double(-9.0000000000000006360851714687e+40),...
'phi_error_upper',double(-9.0000000000000006360851714687e+40),...
'r',double(-9.0000000000000006360851714687e+40),...
'r_error_index',double(-999999999),...
'r_error_lower',double(-9.0000000000000006360851714687e+40),...
'r_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'geometry_type',double(-999999999),...
'outline',struct(...
'x1',double([]),...
'x1_error_index',double(-999999999),...
'x1_error_lower',double([]),...
'x1_error_upper',double([]),...
'x2',double([]),...
'x2_error_index',double(-999999999),...
'x2_error_lower',double([]),...
'x2_error_upper',double([])),...
'radius',double(-9.0000000000000006360851714687e+40),...
'radius_error_index',double(-999999999),...
'radius_error_lower',double(-9.0000000000000006360851714687e+40),...
'radius_error_upper',double(-9.0000000000000006360851714687e+40),...
'surface',double(-9.0000000000000006360851714687e+40),...
'surface_error_index',double(-999999999),...
'surface_error_lower',double(-9.0000000000000006360851714687e+40),...
'surface_error_upper',double(-9.0000000000000006360851714687e+40),...
'x1_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'x2_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'x3_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)))
;}},...
'detector',struct(...
'centre',struct(...
'phi',double(-9.0000000000000006360851714687e+40),...
'phi_error_index',double(-999999999),...
'phi_error_lower',double(-9.0000000000000006360851714687e+40),...
'phi_error_upper',double(-9.0000000000000006360851714687e+40),...
'r',double(-9.0000000000000006360851714687e+40),...
'r_error_index',double(-999999999),...
'r_error_lower',double(-9.0000000000000006360851714687e+40),...
'r_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'geometry_type',double(-999999999),...
'outline',struct(...
'x1',double([]),...
'x1_error_index',double(-999999999),...
'x1_error_lower',double([]),...
'x1_error_upper',double([]),...
'x2',double([]),...
'x2_error_index',double(-999999999),...
'x2_error_lower',double([]),...
'x2_error_upper',double([])),...
'radius',double(-9.0000000000000006360851714687e+40),...
'radius_error_index',double(-999999999),...
'radius_error_lower',double(-9.0000000000000006360851714687e+40),...
'radius_error_upper',double(-9.0000000000000006360851714687e+40),...
'surface',double(-9.0000000000000006360851714687e+40),...
'surface_error_index',double(-999999999),...
'surface_error_lower',double(-9.0000000000000006360851714687e+40),...
'surface_error_upper',double(-9.0000000000000006360851714687e+40),...
'x1_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'x2_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40)),...
'x3_unit_vector',struct(...
'x',double(-9.0000000000000006360851714687e+40),...
'x_error_index',double(-999999999),...
'x_error_lower',double(-9.0000000000000006360851714687e+40),...
'x_error_upper',double(-9.0000000000000006360851714687e+40),...
'y',double(-9.0000000000000006360851714687e+40),...
'y_error_index',double(-999999999),...
'y_error_lower',double(-9.0000000000000006360851714687e+40),...
'y_error_upper',double(-9.0000000000000006360851714687e+40),...
'z',double(-9.0000000000000006360851714687e+40),...
'z_error_index',double(-999999999),...
'z_error_lower',double(-9.0000000000000006360851714687e+40),...
'z_error_upper',double(-9.0000000000000006360851714687e+40))),...
'etendue',double(-9.0000000000000006360851714687e+40),...
'etendue_error_index',double(-999999999),...
'etendue_error_lower',double(-9.0000000000000006360851714687e+40),...
'etendue_error_upper',double(-9.0000000000000006360851714687e+40),...
'etendue_method',struct(...
'description',double([]),...
'index',double(-999999999),...
'name',double([])),...
'identifier',double([]),...
'line_of_sight',struct(...
'first_point',struct(...
'phi',double(-9.0000000000000006360851714687e+40),...
'phi_error_index',double(-999999999),...
'phi_error_lower',double(-9.0000000000000006360851714687e+40),...
'phi_error_upper',double(-9.0000000000000006360851714687e+40),...