Newer
Older

Olivier Sauter
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function mapping = jet_requests_mapping(data_request)
%
% Information pre-defined for gdat_jet, you can add cases here to match official cases in gdat_jet, allowing backward compatibility
%
% Defaults
mapping = struct(...
'label', '', ...
'method', '', ...
'expression','', ...
'timedim', -1, ... % dim which is the time is the database, to copy in .t, the other dims are in .x (-1 means last dimension)
'gdat_timedim',[], ... % if need to reshape data and dim orders to have timedim as gdat_timedim (shifting time to gdat_timedim)
'min', -inf, ...
'max', inf);
% Note that gdat_timedim is set to timedim at end of this function if empty
% gdat_timedim should have effective index of the time dimension in gdat
if ~exist('data_request') || isempty(data_request)
return
end
% default label: data_request keyword itself
mapping.label = data_request;
% for JET, following choices are set so far:
% method = 'signal' then expression contains the shotfile, diagnostic and if needed the experiment
% expression is a cell array
% method = 'expression', then expression is the expression to return gdat_tmp...
% method = 'switchcase', then there will be a specific case within gdat_jet (usual case when not directly a signal)
%
% label is used for plotting
if iscell(data_request) % || (~ischar(data_request) && length(data_request)>1)
mapping.label = data_request;
mapping.method = 'signal'; % assume a full tracename is given, so just try with tdi (could check there are some ":", etc...)
mapping.expression = data_request;
mapping.gdat_timedim = mapping.timedim;
return
end
switch lower(data_request)
case 'a_minor'
mapping.label = 'a\_minor';
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'CR0'}];
case 'b0'

Olivier Sauter
committed
mapping.label = 'B_0';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'ppf'},{'MAGN'},{'BVAC'}];
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''ppf'',''MAGN'',''BVAC''}; ' ...
'gdat_tmp=gdat_jet(shot,params_eff);gdat_tmp.r0=2.96;'];

Olivier Sauter
committed
case 'beta'

Olivier Sauter
committed
mapping.label = 'beta\_tor diag [%]';

Olivier Sauter
committed
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'BTTD'}];

Olivier Sauter
committed
case 'betan'
mapping.label = '\beta_N';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'BTND'}];

Olivier Sauter
committed
case 'betap'
mapping.label = '\beta_p';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'BTPD'}];

Olivier Sauter
committed
case 'cxrs'
mapping.timedim = 2;
mapping.label = 'cxrs';
mapping.method = 'switchcase';
mapping.expression = '';
case 'delta'
mapping.timedim = 1;
mapping.label = 'delta';
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''delta_bottom''; ' ...
'gdat_tmp=gdat_jet(shot,params_eff);params_eff.data_request=''delta_top'';' ...

Olivier Sauter
committed
'gdat_tmp2=gdat_jet(shot,params_eff);gdat_tmp.data = 0.5.*(gdat_tmp.data+gdat_tmp2.data);' ...
'gdat_tmp.label=gdat_data.label; gdat_tmp.gdat_request=gdat_data.gdat_request;'];

Olivier Sauter
committed
case 'delta_top'
mapping.label = 'delta\_top';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'ppf'},{'EFIT'},{'TRIU'}];

Olivier Sauter
committed
case 'delta_bottom'
mapping.label = 'delta\_bottom';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'ppf'},{'EFIT'},{'TRIL'}];

Olivier Sauter
committed
case {'ece', 'eced', 'ece_rho', 'eced_rho'}
mapping.timedim = 2;
mapping.method = 'switchcase';
mapping.expression = '';
case 'eqdsk'
mapping.timedim = 2;
mapping.method = 'switchcase'; % could use function make_eqdsk directly?
mapping.expression = '';
case 'equil'
mapping.gdat_timedim = 2;
mapping.method = 'switchcase'; % could use function make_eqdsk directly?
mapping.expression = '';
case 'halpha'
mapping.label = 'Halpha';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'jpf'},{'dd'},{'s3-ad08'}];

Olivier Sauter
committed
case 'ioh'
mapping.timedim = 1;
mapping.label = 'I ohmic transformer';
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [];

Olivier Sauter
committed
case 'ip'
mapping.timedim = 1;
mapping.label = 'Plasma current';
mapping.method = 'signal';
mapping.expression = [{'ppf'},{'efit'},{'xip'}];

Olivier Sauter
committed
mapping.expression = [{'ppf'},{'MAGN'},{'IPLA'}];

Olivier Sauter
committed
mapping.units = 'A';
case 'kappa'
mapping.timedim = 1;
mapping.label = '\kappa';
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'ppf'},{'EHTR'},{'ELON'}];
mapping.expression = [{'ppf'},{'EFIT'},{'ELON'}];

Olivier Sauter
committed
case {'li', 'l_i'}
mapping.timedim = 1;
mapping.label = 'l_i_3';
mapping.method = 'signal';
mapping.expression = [{'ppf'},{'EFIT'},{'LI3M'}];
case {'locked', 'locked_mode'}
mapping.timedim = 1;
mapping.label = 'locked mode';
mapping.method = 'signal';
mapping.expression = [{'jpf'},{'DA'},{'C2-LOCA'}];

Olivier Sauter
committed
case 'mhd'
mapping.timedim = 1;

Olivier Sauter
committed
mapping.label = 'n=1 and n=2 amplitude';
mapping.timedim = 1;
mapping.method = 'switchcase';
% $$$ mapping.method = 'expression'; % {'JPF','DA','C1M-H306'} {'JPF','DA','C1M-T009'} (big) {'JPF','DA','C1M-MIT27'}{'jpf' 'da' 'c1m-h304'} nfft=1024*3;
% $$$ mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''JPF'',''DA'',''C1H-I301''}; ' ...
% $$$ 'gdat_tmp=gdat_jet(shot,params_eff);gdat_tmp.data=reshape(gdat_tmp.data,length(gdat_tmp.data),1 );' ...
% $$$ 'gdat_tmp.dim{1}=gdat_tmp.t;gdat_tmp.dim{2}=[1 2];gdat_tmp.x=gdat_tmp.dim{2};' ...
% $$$ 'gdat_tmp.n_1.data = gdat_tmp.data;gdat_tmp.n_1.data_request=params_eff.data_request;' ...
% $$$ 'params_eff.data_request={''JPF'',''DA'',''C1H-I302''};' ...
% $$$ 'gdat_tmp2=gdat_jet(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
% $$$ 'gdat_tmp.n_2.data = gdat_tmp2.data;gdat_tmp.n_2.data_request=params_eff.data_request;gdat_tmp.label={''n=1'',''n=2''};' ...
% $$$ 'gdat_tmp.full_path=''n=1 in data and .n_1; .n_2'';' ...
% $$$ 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;'];
% $$$ mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''JPF'',''DA'',''C1M-T009''}; ' ...
% $$$ 'gdat_tmp=gdat_jet(shot,params_eff);gdat_tmp.data=reshape(gdat_tmp.data,length(gdat_tmp.data),1 );' ...
% $$$ 'gdat_tmp.dim{1}=gdat_tmp.t;gdat_tmp.dim{2}=[1 2];gdat_tmp.x=gdat_tmp.dim{2};' ...
% $$$ 'gdat_tmp.n_1.data = gdat_tmp.data;gdat_tmp.n_1.data_request=params_eff.data_request;' ...
% $$$ 'params_eff.data_request={''JPF'',''DA'',''C1M-H305''};' ...
% $$$ 'gdat_tmp2=gdat_jet(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
% $$$ 'gdat_tmp.n_2.data = gdat_tmp2.data;gdat_tmp.n_2.data_request=params_eff.data_request;gdat_tmp.label={''n=1'',''n=2''};' ...
% $$$ 'gdat_tmp.full_path=''n=1 in data and .n_1; .n_2'';' ...
% $$$ 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;' ...
% $$$ ''];

Olivier Sauter
committed
case 'mhd_ampl'
mapping.timedim = 1;
mapping.label = 'n=1 and n=2 amplitude';
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''JPF'',''DA'',''C1H-G101''}; ' ...
'gdat_tmp=gdat_jet(shot,params_eff);gdat_tmp.data=reshape(gdat_tmp.data,length(gdat_tmp.data),1 );' ...
'gdat_tmp.dim{1}=gdat_tmp.t;gdat_tmp.dim{2}=[1 2];gdat_tmp.x=gdat_tmp.dim{2};' ...
'gdat_tmp.n_1.data = gdat_tmp.data;gdat_tmp.n_1.data_request=params_eff.data_request;' ...
'params_eff.data_request={''JPF'',''DA'',''C1H-G102''};' ...
'gdat_tmp2=gdat_jet(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
'gdat_tmp.n_2.data = gdat_tmp2.data;gdat_tmp.n_2.data_request=params_eff.data_request;gdat_tmp.label={''n=1'',''n=2''};' ...
'gdat_tmp.full_path=''n=1 amplitude in data and .n_1; .n_2'';' ...
'gdat_tmp.gdat_request=''mhd_ampl'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;'];

Olivier Sauter
committed
case 'ne'
mapping.timedim = 2;
mapping.method = 'switchcase';
case 'neint'
mapping.timedim = 1;
mapping.label = 'line integrated el. density';
mapping.method = 'signal';
mapping.expression = [{'DCN'},{'H-1'},{'JETD'}];
case 'nel'
mapping.timedim = 1;

Olivier Sauter
committed
mapping.label = 'nel';
mapping.method = 'signal';
mapping.expression = [{'ppf'},{'KG1L'},{'LAD3'}];
mapping.expression = [{'ppf'},{'HRTX'},{'NELA'}];

Olivier Sauter
committed
case 'ne_rho'
mapping.timedim = 2;
mapping.label = 'ne';
mapping.method = 'switchcase';

Olivier Sauter
committed
case 'nete'
mapping.timedim = 2;
mapping.label = 'ne and Te'; % from chain2 or hrts with interpos fits
mapping.method = 'switchcase';

Olivier Sauter
committed
case 'nete_rho'
mapping.timedim = 2;
mapping.label = 'ne and Te';
mapping.method = 'switchcase';
case {'ng','ngreenwald','n_greenwald'}
mapping.timedim = 1;
mapping.label = 'nG=Ip[MA]/(\pi a^2)*1e20 on nel times';
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''nel'';' ...
'gdat_tmp=gdat_jet(shot,params_eff);params_eff.data_request=''ip'';' ...
'gdat_tmp2=gdat_jet(shot,params_eff);ij=find(gdat_tmp2.data==0);gdat_tmp2.data(ij)=NaN;' ...
'tmp_data2=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ...
'params_eff.data_request=''a_minor'';' ...
'gdat_tmp3=gdat_jet(shot,params_eff);ij=find(gdat_tmp3.data==0);gdat_tmp3.data(ij)=NaN;' ...
'tmp_data3=interp1(gdat_tmp3.t,gdat_tmp3.data,gdat_tmp.t,[],NaN);' ...
'gdat_tmp.data = abs(tmp_data2*1e-6./pi./(tmp_data3.^2+1e-5));' ...
'ij=find(gdat_tmp.data<0 | gdat_tmp.data>4);gdat_tmp.data(ij)=NaN;gdat_tmp.data = gdat_tmp.data * 1e20;'];
case {'ngf','greenwald_fraction','f_greenwald','ng_fraction'}
mapping.timedim = 1;
mapping.label = 'Greenwald\_fraction=n\_el/n\_G';
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''nel'';' ...
'gdat_tmp=gdat_jet(shot,params_eff);params_eff.data_request=''n_greenwald'';' ...
'gdat_tmp2=gdat_jet(shot,params_eff);ij=find(gdat_tmp2.data==0);gdat_tmp2.data(ij)=NaN;' ...
'tmp_data2=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ...
'gdat_tmp.data = gdat_tmp.data./(tmp_data2+1e-5);'];

Olivier Sauter
committed
case 'ni'
mapping.method = 'switchcase'; % especially since might have option fit, etc

Olivier Sauter
committed
case {'phi_tor', 'phitor', 'toroidal_flux'}
mapping.label = 'toroidal_flux';
mapping.timedim = 1;
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EQUI'},{'PHIT'}]; % note this is only chain2, so should check with efit...
% there is FTOR from EFIT but it's on psinorm
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''PPF''},{''EFIT''},{''FTOR''}];' ...
'gdat_tmp=gdat_jet(shot,params_eff);gdat_tmp.x=sqrt(gdat_tmp.x);gdat_tmp.dim{1}=gdat_tmp.x;'];
case {'p_lh', 'plh'}
mapping.label = 'p\_lh threshold';
mapping.timedim = 1;
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''nel'';' ...
'gdat_tmp=gdat_jet(shot,params_eff);params_eff.data_request=''b0'';gdat_tmpb0=gdat_jet(shot,params_eff);' ...
'params_eff.data_request=''surface_edge'';gdat_tmp_s=gdat_jet(shot,params_eff);' ...
's_nel=interpos(gdat_tmp_s.t,gdat_tmp_s.data,gdat_tmp.t,-1.);b0_nel=interpos(gdat_tmpb0.t,gdat_tmpb0.data,gdat_tmp.t,-1.);' ...
'gdat_tmp.data = 0.0488e6.*(gdat_tmp.data/1e20).^0.717.*abs(b0_nel).^0.803.*s_nel.^0.941;' ...
'gdat_tmp.label=''P\_LH threshold'';'];
case {'p_lh_a_r', 'plh_a_r'}
mapping.label = 'p\_lh threshold';
mapping.timedim = 1;
mapping.method = 'expression';
mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''nel'';' ...
'gdat_tmp=gdat_jet(shot,params_eff);params_eff.data_request=''b0'';gdat_tmpb0=gdat_jet(shot,params_eff);' ...
'params_eff.data_request=''a_minor'';gdat_tmp_a=gdat_jet(shot,params_eff);' ...
'a_nel=interpos(gdat_tmp_a.t,gdat_tmp_a.data,gdat_tmp.t,-1.);b0_nel=interpos(gdat_tmpb0.t,gdat_tmpb0.data,gdat_tmp.t,-1.);' ...
'gdat_tmp.data = 2.15e6.*abs(gdat_tmp.data/1e20).^0.782.*abs(b0_nel).^0.772.*abs(a_nel).^0.975.*abs(gdat_tmpb0.r0).^0.999;' ...
'gdat_tmp.label=''P\_LH threshold'';'];
case {'p_ohmic', 'p_ohm', 'pohm'}

Olivier Sauter
committed
mapping.label = 'p\_ohmic';
mapping.timedim = 1;
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'POHM'}];
case {'p_rad', 'prad'}
mapping.label = 'p\_rad';
mapping.timedim = 1;
% $$$ mapping.method = 'signal';
% $$$ mapping.expression = [{'PPF'},{'bolo'},{'topi'}];
mapping.method = 'switchcase';

Olivier Sauter
committed
case 'powers'
mapping.timedim = 1;
mapping.label = 'various powers';
mapping.method = 'switchcase';
case 'psi_axis'

Olivier Sauter
committed
mapping.label = 'psi\_axis';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'FAXS'}];

Olivier Sauter
committed
case 'psi_edge'
mapping.label = 'psi\_edge';
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'FBND'}];
case 'q0'

Olivier Sauter
committed
mapping.label = 'q_0';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'QAX'}];
% mapping.expression = [{'PPF'},{'EFIT'},{'QAXM'}];

Olivier Sauter
committed
case 'q95'
mapping.label = 'q_{95}';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'Q95'}];

Olivier Sauter
committed
case 'q_edge'
mapping.label = 'q_{edge}}';

Olivier Sauter
committed
mapping.timedim = 1;
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'QWL'}];

Olivier Sauter
committed
case 'q_rho'
mapping.timedim = 2;
mapping.gdat_timedim = 2;
mapping.label = 'q';
mapping.method = 'switchcase';
case 'rgeom'
mapping.label = 'Rgeom';
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'RGEO'}];

Olivier Sauter
committed
case 'r_inboard'
mapping.label = 'R\_inboard';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'RMJI'}];

Olivier Sauter
committed
case 'r_outboard'
mapping.label = 'R\_outboard';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'RMJO'}];

Olivier Sauter
committed
case 'rhotor'
mapping.timedim = 2;
mapping.method = 'switchcase';

Olivier Sauter
committed
mapping.label = 'rhotor';

Olivier Sauter
committed
case 'rhotor_edge'
mapping.timedim = 1;
mapping.method = 'switchcase';
mapping.label = 'rhotor\_edge';

Olivier Sauter
committed
mapping.timedim = 2;
mapping.method = 'switchcase';
mapping.label = 'rhotor\_norm';

Olivier Sauter
committed
case 'rhovol'
mapping.timedim = 2;
mapping.label = 'rhovol\_norm';
mapping.method = 'switchcase';
case 'rmag'
mapping.label = 'R\_magaxis';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'RMAG'}];

Olivier Sauter
committed
case 'sxr'
mapping.timedim = 1;
mapping.gdat_timedim = 2;
mapping.method = 'switchcase';
case 'te'
mapping.timedim = 2;
mapping.label = 'Te';
mapping.method = 'switchcase';
case 'te_rho'
mapping.timedim = 2;
mapping.label = 'Te';
mapping.method = 'switchcase';
case 'ti'
mapping.label = 'Ti';
mapping.method = 'switchcase';
case 'vloop'

Olivier Sauter
committed
mapping.label = 'Vloop Upper Restraint Ring Flux Flux Loop, non-integrated';

Olivier Sauter
committed
mapping.timedim = 1;
mapping.label = 'Vloop';
mapping.method = 'switchcase';
% $$$ mapping.method = 'signal';
% $$$ mapping.expression = [{'PPF'},{'MAGN'},{'VL'}]; % tension -1e2 (3rd signal good one
% $$$ mapping.expression = [{'JPF'},{'DA'},{'C2-VLRRU'}]; % tension -1e4

Olivier Sauter
committed
case 'volume'
mapping.label = 'Volume';
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'VOLM'}];

Olivier Sauter
committed
case 'volume_rho'
mapping.timedim = 2;
mapping.label = 'volume\_norm';
mapping.method = 'switchcase';

Olivier Sauter
committed
case {'wmhd', 'w_mhd'}
mapping.label = 'W_mhd';
mapping.timedim = 1;
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'WP'}];

Olivier Sauter
committed
case 'zeff'

Olivier Sauter
committed
mapping.label = 'zeff from KS3';

Olivier Sauter
committed
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'KS3'},{'ZEFV'}];

Olivier Sauter
committed
case 'zgeom'

Olivier Sauter
committed
mapping.label = 'Z_{geom}';

Olivier Sauter
committed
mapping.timedim = 1;

Olivier Sauter
committed
mapping.method = 'signal';
mapping.expression = [{'PPF'},{'EFIT'},{'ZGEO'}];

Olivier Sauter
committed
case 'zmag'
mapping.label = 'Z\_magaxis';
mapping.timedim = 1;
mapping.method = 'signal';

Olivier Sauter
committed
mapping.expression = [{'PPF'},{'EFIT'},{'ZMAG'}];

Olivier Sauter
committed
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% extra JET cases (not necessarily in official data_request name list)
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
case 'transp'
mapping.label = 'transp output';
mapping.method = 'switchcase';
otherwise
mapping.label = data_request;
mapping.method = 'signal'; % assume a full tracename is given, so just try with tdi (could check there are some ":", etc...)
mapping.expression = data_request;

Olivier Sauter
committed
end
if isempty(mapping.gdat_timedim)
mapping.gdat_timedim = mapping.timedim;
end