Skip to content
Snippets Groups Projects
Commit d29544ca authored by Antoine Merle's avatar Antoine Merle
Browse files

Fix magnetics: mostly error bars to match LIUQE weights.

parent deec45a1
No related branches found
No related tags found
1 merge request!39Set same error_bars as LIUQE weights for eqreconstruct IDSs
Pipeline #31121 passed
...@@ -5,7 +5,7 @@ function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magne ...@@ -5,7 +5,7 @@ function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magne
% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options % gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options
% %
if exist('gdat_params') if exist('gdat_params','var')
[ids_magnetics, params_magnetics] = tcv_ids_headpart(shot, ids_magnetics_empty,'magnetics','homogeneous_time',0, ... [ids_magnetics, params_magnetics] = tcv_ids_headpart(shot, ids_magnetics_empty,'magnetics','homogeneous_time',0, ...
'gdat_params',gdat_params,varargin{:}); 'gdat_params',gdat_params,varargin{:});
else else
...@@ -21,7 +21,7 @@ end ...@@ -21,7 +21,7 @@ end
% make arrays not filled in empty: not the case for magnetics % make arrays not filled in empty: not the case for magnetics
% cocos automatic transform % cocos automatic transform
if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2 if exist('ids_generic_cocos_nodes_transformation_symbolic','file')
[ids_magnetics,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_magnetics,'magnetics',gdat_params.cocos_in, ... [ids_magnetics,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_magnetics,'magnetics',gdat_params.cocos_in, ...
gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in, ... gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in, ...
gdat_params.error_bar,gdat_params.nverbose); gdat_params.error_bar,gdat_params.nverbose);
......
...@@ -11,24 +11,25 @@ function [sub_ids_struct_out,sub_ids_struct_out_description, varargout] = tcv_i ...@@ -11,24 +11,25 @@ function [sub_ids_struct_out,sub_ids_struct_out_description, varargout] = tcv_i
% %
error_bar = 'delta'; error_bar = 'delta';
if exist('gdat_params') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar) if exist('gdat_params','var') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
error_bar = gdat_params.error_bar; error_bar = gdat_params.error_bar;
end end
params_eff_ref = gdat_params; params_eff_ref.doplot=0; params_eff_ref = gdat_params; params_eff_ref.doplot=0;
try;params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def) try params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def)
% Get data % Get data
params_eff = params_eff_ref; params_eff = params_eff_ref;
params_eff.data_request = '\MAGNETICS::BPOL_003'; params_eff.data_request = '\MAGNETICS::BPOL_003';
tmp = gdat_tcv( shot,params_eff); tmp = gdat_tcv( shot,params_eff);
tmp_desc = params_eff.data_request; % tmp_desc = params_eff.data_request;
names = tmp.dim{2}; names = tmp.dim{2};
time = tmp.dim{1}; time = tmp.dim{1};
data = tmp.data; data = tmp.data;
params_eff.data_request = 'static("ANG_M")'; params_eff.data_request = 'static("ANG_M")';
ang_m = gdat_tcv(shot,params_eff); % ang_m = gdat_tcv(shot,params_eff);
ang_m_desc = params_eff.data_request; % ang_m_desc = params_eff.data_request;
%TODO find this either in the static or the magnetics tree.
% from mapping file from Holger: % from mapping file from Holger:
probes_name={ '001' '002' '003' '004' '005' '006' '007' '008' '009' '010' '011' '012' '013' '014' '015' '016' '017' '018' '019' ... probes_name={ '001' '002' '003' '004' '005' '006' '007' '008' '009' '010' '011' '012' '013' '014' '015' '016' '017' '018' '019' ...
'020' '021' '022' '023' '024' '025' '026' '027' '028' '029' '030' '031' '032' '033' '034' '035' '036' '037' '038'}; '020' '021' '022' '023' '024' '025' '026' '027' '028' '029' '030' '031' '032' '033' '034' '035' '036' '037' '038'};
...@@ -46,6 +47,7 @@ probes_length = [2.400000D-02, 2.400000D-02, 2.400000D-02, 2.400000D-02, 2.40000 ...@@ -46,6 +47,7 @@ probes_length = [2.400000D-02, 2.400000D-02, 2.400000D-02, 2.400000D-02, 2.40000
% Preallocate output structure % Preallocate output structure
Nprobes = size(tmp.data,2); Nprobes = size(tmp.data,2);
sub_ids_struct_out(1:Nprobes) = ids_structures; sub_ids_struct_out(1:Nprobes) = ids_structures;
sub_ids_struct_out_description = cell(1,Nprobes);
for ii=1:Nprobes for ii=1:Nprobes
sub_ids_struct_out{ii}.name = [names{ii}]; sub_ids_struct_out{ii}.name = [names{ii}];
...@@ -62,7 +64,7 @@ for ii=1:Nprobes ...@@ -62,7 +64,7 @@ for ii=1:Nprobes
params_eff.data_request = ['static("ANG_M")[$1]'',''' sub_ids_struct_out{ii}.name '']; params_eff.data_request = ['static("ANG_M")[$1]'',''' sub_ids_struct_out{ii}.name ''];
aa = gdat_tcv(shot,params_eff); aa = gdat_tcv(shot,params_eff);
sub_ids_struct_out{ii}.poloidal_angle = -aa.data; sub_ids_struct_out{ii}.poloidal_angle = -aa.data;
ij=strmatch(names{ii},probes_name); ij=strcmp(names{ii},probes_name);
sub_ids_struct_out{ii}.area = probes_area(ij); sub_ids_struct_out{ii}.area = probes_area(ij);
sub_ids_struct_out{ii}.length = probes_length(ij); sub_ids_struct_out{ii}.length = probes_length(ij);
sub_ids_struct_out_description{ii}.poloidal_angle = ['from ' aa.data_fullpath]; sub_ids_struct_out_description{ii}.poloidal_angle = ['from ' aa.data_fullpath];
...@@ -71,13 +73,13 @@ for ii=1:Nprobes ...@@ -71,13 +73,13 @@ for ii=1:Nprobes
sub_ids_struct_out_description{ii}.length = 'from array in machine description file'; sub_ids_struct_out_description{ii}.length = 'from array in machine description file';
end end
fixed_error = 0.009999999776483; fixed_error = 0.01;
switch error_bar switch error_bar
case 'delta' case 'delta'
for ii=1:Nprobes for ii=1:Nprobes
sub_ids_struct_out{ii}.field.data_error_upper = fixed_error.*ones(size(sub_ids_struct_out{ii}.field.data));% TO BE FOUND; sub_ids_struct_out{ii}.field.data_error_upper = fixed_error.*ones(size(sub_ids_struct_out{ii}.field.data));% TO BE FOUND;
sub_ids_struct_out_description{ii}.field_data_error_upper = ['from fixed error value in case ' error_bar]; sub_ids_struct_out_description{ii}.field_data_error_upper = ['from fixed error value in case ' error_bar];
sub_ids_struct_out_description{ii}.field_data_error_lower = ['not provided since symmetric']; sub_ids_struct_out_description{ii}.field_data_error_lower = 'not provided since symmetric';
end end
case 'delta_with_lower' case 'delta_with_lower'
for ii=1:Nprobes for ii=1:Nprobes
......
...@@ -11,17 +11,17 @@ function [sub_ids_struct_out,sub_ids_struct_out_description] = tcv_ids_flux_loop ...@@ -11,17 +11,17 @@ function [sub_ids_struct_out,sub_ids_struct_out_description] = tcv_ids_flux_loop
% %
error_bar = 'delta'; error_bar = 'delta';
if exist('gdat_params') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar) if exist('gdat_params','var') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
error_bar = gdat_params.error_bar; error_bar = gdat_params.error_bar;
end end
params_eff_ref = gdat_params; params_eff_ref.doplot=0; params_eff_ref = gdat_params; params_eff_ref.doplot=0;
try;params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def) try params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def)
% Get data % Get data
params_eff = params_eff_ref; params_eff = params_eff_ref;
params_eff.data_request = 'tcv_idealloop("FLUX")'; params_eff.data_request = 'tcv_idealloop("FLUX")';
tmp = gdat_tcv(shot,params_eff); tmp = gdat_tcv(shot,params_eff);
tmp_desc = params_eff.data_request; % tmp_desc = params_eff.data_request;
names = tmp.dim{2}; names = tmp.dim{2};
time = tmp.dim{1}; time = tmp.dim{1};
data = tmp.data; data = tmp.data;
...@@ -29,6 +29,7 @@ data = tmp.data; ...@@ -29,6 +29,7 @@ data = tmp.data;
% Preallocate output structure % Preallocate output structure
Nprobes = size(tmp.data,2); Nprobes = size(tmp.data,2);
sub_ids_struct_out(1:Nprobes) = ids_structures; sub_ids_struct_out(1:Nprobes) = ids_structures;
sub_ids_struct_out_description = cell(1,Nprobes);
% Put data on ids structure % Put data on ids structure
for ii=1:Nprobes for ii=1:Nprobes
...@@ -38,21 +39,20 @@ for ii=1:Nprobes ...@@ -38,21 +39,20 @@ for ii=1:Nprobes
sub_ids_struct_out_description{ii}.position_r = ['from ''STATIC("R_F" )[' sub_ids_struct_out{ii}.name ']''']; sub_ids_struct_out_description{ii}.position_r = ['from ''STATIC("R_F" )[' sub_ids_struct_out{ii}.name ']'''];
sub_ids_struct_out{ii}.position{1}.z = mdsvalue('STATIC("Z_F" )[$1]',sub_ids_struct_out{ii}.name); sub_ids_struct_out{ii}.position{1}.z = mdsvalue('STATIC("Z_F" )[$1]',sub_ids_struct_out{ii}.name);
sub_ids_struct_out_description{ii}.position_z = ['from ''STATIC("Z_F" )[' sub_ids_struct_out{ii}.name ']''']; sub_ids_struct_out_description{ii}.position_z = ['from ''STATIC("Z_F" )[' sub_ids_struct_out{ii}.name ']'''];
sub_ids_struct_out{ii}.position{1}.phi = 0.; % sub_ids_struct_out{ii}.position{1}.phi = 0.; % TO BE FOUND
sub_ids_struct_out_description{ii}.position_phi = ['assumed 0']; % sub_ids_struct_out_description{ii}.position_phi = 'assumed 0';
sub_ids_struct_out{ii}.flux.data = data(:,ii); sub_ids_struct_out{ii}.flux.data = data(:,ii);
sub_ids_struct_out_description{ii}.flux_data = 'from ''tcv_idealloop("FLUX")'''; sub_ids_struct_out_description{ii}.flux_data = 'from ''tcv_idealloop("FLUX")''';
sub_ids_struct_out{ii}.flux.time = time; sub_ids_struct_out{ii}.flux.time = time;
% sub_ids_struct_out{ii}.position.phi = 0; % TO BE FOUND
end end
fixed_error = 0.001200000056997; fixed_error = 0.0012*2*pi; % Convert old LIUQE error to Webers
switch error_bar switch error_bar
case 'delta' case 'delta'
for ii=1:Nprobes for ii=1:Nprobes
sub_ids_struct_out{ii}.flux.data_error_upper = fixed_error.*ones(size(sub_ids_struct_out{ii}.flux.data)); sub_ids_struct_out{ii}.flux.data_error_upper = fixed_error.*ones(size(sub_ids_struct_out{ii}.flux.data));
sub_ids_struct_out_description{ii}.flux_data_error_upper = ['from fixed error value in case ' error_bar]; sub_ids_struct_out_description{ii}.flux_data_error_upper = ['from fixed error value in case ' error_bar];
sub_ids_struct_out_description{ii}.flux_data_error_lower = ['not provided since symmetric']; sub_ids_struct_out_description{ii}.flux_data_error_lower = 'not provided since symmetric';
%(not filled if symmetric) sub_ids_struct_out{ii}.flux.data_error_lower = 0.0012;%.*ones(size(sub_ids_struct_out{ii}.flux.data)); %(not filled if symmetric) sub_ids_struct_out{ii}.flux.data_error_lower = 0.0012;%.*ones(size(sub_ids_struct_out{ii}.flux.data));
end end
case 'delta_with_lower' case 'delta_with_lower'
......
...@@ -11,22 +11,22 @@ function [ids_struct_out,ids_struct_out_description] = tcv_ids_ip(shot, ids_stru ...@@ -11,22 +11,22 @@ function [ids_struct_out,ids_struct_out_description] = tcv_ids_ip(shot, ids_stru
% %
error_bar = 'delta'; error_bar = 'delta';
if exist('gdat_params') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar) if exist('gdat_params','var') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
error_bar = gdat_params.error_bar; error_bar = gdat_params.error_bar;
end end
params_eff_ref = gdat_params; params_eff_ref.doplot=0; params_eff_ref = gdat_params; params_eff_ref.doplot=0;
try;params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def) try params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def)
% Get data % Get data
params_eff = params_eff_ref; params_eff = params_eff_ref;
params_eff.data_request = 'ip_trapeze'; params_eff.data_request = 'ip_trapeze';
tmp = gdat_tcv(shot,params_eff); tmp = gdat_tcv(shot,params_eff);
tmp_desc = params_eff.data_request; % tmp_desc = params_eff.data_request;
time = tmp.dim{1}; time = tmp.dim{1};
data = tmp.data; data = tmp.data;
params_eff.data_request = '\results::dmlcor'; params_eff.data_request = '\results::dmlcor';
tmpdml = gdat_tcv(shot,params_eff); tmpdml = gdat_tcv(shot,params_eff);
tmpdml_desc = params_eff.data_request; % tmpdml_desc = params_eff.data_request;
% Preallocate dimension % Preallocate dimension
ids_struct_out = ids_structures; ids_struct_out = ids_structures;
...@@ -40,16 +40,16 @@ ids_struct_out{1}.diamagnetic_flux.data = tmpdml.data; ...@@ -40,16 +40,16 @@ ids_struct_out{1}.diamagnetic_flux.data = tmpdml.data;
ids_struct_out_description{1}.diamagnetic_flux = ['from ' tmpdml.data_fullpath]; ids_struct_out_description{1}.diamagnetic_flux = ['from ' tmpdml.data_fullpath];
ids_struct_out{1}.diamagnetic_flux.time = tmpdml.t; ids_struct_out{1}.diamagnetic_flux.time = tmpdml.t;
fixed_error_ip = 2.4e3; fixed_error_ip = 24e3;
fixed_error_diamagnetic_flux = 0.01; fixed_error_diamagnetic_flux = 0.13e-3;
switch error_bar switch error_bar
case 'delta' case 'delta'
ids_struct_out{1}.ip.data_error_upper = fixed_error_ip.*ones(size(ids_struct_out{1}.ip.data)); ids_struct_out{1}.ip.data_error_upper = fixed_error_ip.*ones(size(ids_struct_out{1}.ip.data));
ids_struct_out_description{1}.ip_data_error_upper = ['from fixed error value in case ' error_bar]; ids_struct_out_description{1}.ip_data_error_upper = ['from fixed error value in case ' error_bar];
ids_struct_out_description{1}.ip_data_error_lower = ['not provided since symmetric']; ids_struct_out_description{1}.ip_data_error_lower = 'not provided since symmetric';
ids_struct_out{1}.diamagnetic_flux.data_error_upper = fixed_error_diamagnetic_flux.*ones(size(ids_struct_out{1}.diamagnetic_flux.data)); ids_struct_out{1}.diamagnetic_flux.data_error_upper = fixed_error_diamagnetic_flux.*ones(size(ids_struct_out{1}.diamagnetic_flux.data));
ids_struct_out_description{1}.diamagnetic_flux_data_error_upper = ['from fixed error value in case ' error_bar]; ids_struct_out_description{1}.diamagnetic_flux_data_error_upper = ['from fixed error value in case ' error_bar];
ids_struct_out_description{1}.diamagnetic_flux_data_error_lower = ['not provided since symmetric']; ids_struct_out_description{1}.diamagnetic_flux_data_error_lower = 'not provided since symmetric';
case 'delta_with_lower' case 'delta_with_lower'
ids_struct_out{1}.ip.data_error_upper = fixed_error_ip.*ones(size(ids_struct_out{1}.ip.data)); ids_struct_out{1}.ip.data_error_upper = fixed_error_ip.*ones(size(ids_struct_out{1}.ip.data));
ids_struct_out{1}.ip.data_error_lower = ids_struct_out{1}.ip.data_error_upper; ids_struct_out{1}.ip.data_error_lower = ids_struct_out{1}.ip.data_error_upper;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment