diff --git a/matlab/AUG/CEZ_CMZ_fit.m b/matlab/AUG/CEZ_CMZ_fit.m index 69e4ec5c552df7110a4705def2b18399a21259bb..9adb62c28c44f959695f61e2e5aff55d405c6622 100644 --- a/matlab/AUG/CEZ_CMZ_fit.m +++ b/matlab/AUG/CEZ_CMZ_fit.m @@ -81,7 +81,7 @@ for i=1:length(ij) it_cxrs = find(cxrs.t>=t1(i) & cxrs.t<t2(i)); it_cmz = find(cmz.t>=t1(i) & cmz.t<t2(i)); % construct 1D array with data from both cxrs, cmz - rhotor_data_tofit = []; + rhotor_data_tofit = []; tidata_tofit = []; vrotdata_tofit = []; tierr_tofit = []; @@ -90,11 +90,11 @@ for i=1:length(ij) for it=1:length(it_cxrs) idata = find(cxrs.ti.data(:,it_cxrs(it))>0 & cxrs.rhotornorm(:,it_cxrs(it))<1.01); if length(idata)>0 - rhotor_data_tofit(end+1:end+length(idata)) = cxrs.rhotornorm(idata,it_cxrs(it)); - tidata_tofit(end+1:end+length(idata)) = cxrs.ti.data(idata,it_cxrs(it)); - vrotdata_tofit(end+1:end+length(idata)) = cxrs.vrot.data(idata,it_cxrs(it)); - tierr_tofit(end+1:end+length(idata)) = cxrs.ti.error_bar(idata,it_cxrs(it))./ticoeff_err_cxrs; - vroterr_tofit(end+1:end+length(idata)) = cxrs.vrot.error_bar(idata,it_cxrs(it))./vrotcoeff_err_cxrs; + rhotor_data_tofit(end+1:end+length(idata)) = cxrs.rhotornorm(idata,it_cxrs(it)); + tidata_tofit(end+1:end+length(idata)) = cxrs.ti.data(idata,it_cxrs(it)); + vrotdata_tofit(end+1:end+length(idata)) = cxrs.vrot.data(idata,it_cxrs(it)); + tierr_tofit(end+1:end+length(idata)) = cxrs.ti.error_bar(idata,it_cxrs(it))./ticoeff_err_cxrs; + vroterr_tofit(end+1:end+length(idata)) = cxrs.vrot.error_bar(idata,it_cxrs(it))./vrotcoeff_err_cxrs; end end end @@ -102,11 +102,11 @@ for i=1:length(ij) for it=1:length(it_cmz) idata = find(cmz.ti.data(:,it_cmz(it))>0 & cmz.rhotornorm(:,it_cmz(it))<1.01); if length(idata)>0 - rhotor_data_tofit(end+1:end+length(idata)) = cmz.rhotornorm(idata,it_cmz(it)); - tidata_tofit(end+1:end+length(idata)) = cmz.ti.data(idata,it_cmz(it)); - vrotdata_tofit(end+1:end+length(idata)) = cmz.vrot.data(idata,it_cmz(it)); - tierr_tofit(end+1:end+length(idata)) = cmz.ti.error_bar(idata,it_cmz(it))./ticoeff_err_cmz; - vroterr_tofit(end+1:end+length(idata)) = cmz.vrot.error_bar(idata,it_cmz(it))./vrotcoeff_err_cmz; + rhotor_data_tofit(end+1:end+length(idata)) = cmz.rhotornorm(idata,it_cmz(it)); + tidata_tofit(end+1:end+length(idata)) = cmz.ti.data(idata,it_cmz(it)); + vrotdata_tofit(end+1:end+length(idata)) = cmz.vrot.data(idata,it_cmz(it)); + tierr_tofit(end+1:end+length(idata)) = cmz.ti.error_bar(idata,it_cmz(it))./ticoeff_err_cmz; + vroterr_tofit(end+1:end+length(idata)) = cmz.vrot.error_bar(idata,it_cmz(it))./vrotcoeff_err_cmz; end end rhotor_data_tofit_cmz = cmz.rhotornorm(:,it_cmz); @@ -166,4 +166,3 @@ cez_cmz_fit.vrotcoeff_err_cmz = vrotcoeff_err_cmz; cez_cmz_data.shot = shot; eval(['save ' filename_withfits ' cez_cmz_fit cez_cmz_data']) - diff --git a/matlab/AUG/aug_help_parameters.m b/matlab/AUG/aug_help_parameters.m index f936f614c00a1cd1f7140e13e5dc07c17e87d208..8f7f54a9122cdee58e47d2a0eec1abc060b41766 100644 --- a/matlab/AUG/aug_help_parameters.m +++ b/matlab/AUG/aug_help_parameters.m @@ -5,22 +5,22 @@ function help_struct = aug_help_parameters(parameter_list) % % return the whole help structure if parameter_list empty or not provided % -% do: +% do: % help_struct = aug_help_parameters(fieldnames(gdat_data.gdat_params)); -% +% % to get relevant help description % % Defaults help_struct_all = struct(... - 'data_request', ['automatically filled in by gdat, name of request used in gdat call.' char(10) ... - 'contains current list of keywords if gdat called with no arguments: aa=gdat;' char(10) ... - 'Note shot value should not be in params so params can be used to load same data from another shot'] ... - ,'machine', 'machine name like ''TCV'', ''AUG'', case insensitive' ... - ,'doplot', '0 (default), if 1 calls gdat_plot for a new figure, -1 plot over current figure with hold all, see gdat_plot for details' ... - ,'liuqe','liuqe version 1 (default), 2, 3 for LIUQE1, 2, 3 resp. or -1 for model values' ... - ,'nverbose','1 (default) displays warnings, 0: only errors, >=3: displays all extra information' ... - ); + 'data_request', ['automatically filled in by gdat, name of request used in gdat call.' char(10) ... + 'contains current list of keywords if gdat called with no arguments: aa=gdat;' char(10) ... + 'Note shot value should not be in params so params can be used to load same data from another shot'] ... + ,'machine', 'machine name like ''TCV'', ''AUG'', case insensitive' ... + ,'doplot', '0 (default), if 1 calls gdat_plot for a new figure, -1 plot over current figure with hold all, see gdat_plot for details' ... + ,'liuqe','liuqe version 1 (default), 2, 3 for LIUQE1, 2, 3 resp. or -1 for model values' ... + ,'nverbose','1 (default) displays warnings, 0: only errors, >=3: displays all extra information' ... + ); % AUG related % $$$ help_struct_all.cxrs_plot = '0 (default) no plots, 1 get plots from CXRS_get_profiles see ''help CXRS_get_profiles'' for k_plot values'; @@ -31,7 +31,7 @@ help_struct_all.extra_arg_sf2sig = 'extra parameters given to sf2sig type of cal help_struct_all.special_signal = 'specific parameter,area-base,param-set,time-base signal, can be provided as 4th signal in data_request if explicit. Example: ''special_signal'',''param:gyro_freq'''; help_struct_all.fit_tension = ['smoothing value used in interpos fitting routine, -30 means ''30 times default value'', thus -1 often a' ... ' good value' char(10) ... - 'cxrs, nete: if numeric, default for all cases, if structure, default for non given fields']; + 'cxrs, nete: if numeric, default for all cases, if structure, default for non given fields']; help_struct_all.time = 'time(s) value(s) if relevant, for example eqdsk is provided by default only for time=1.0s'; % $$$ help_struct_all.zshift = 'vertical shift of equilibrium, either for eqdsk (1 to shift to zaxis=0) or for mapping measurements on to rho surfaces [m]'; help_struct_all.cocos = ['cocos value desired in output, uses eqdsk_cocos_transform. Note should use latter if a specific Ip and/or B0 sign' ... @@ -41,8 +41,8 @@ help_struct_all.fit = '0, no fit profiles, 1 (default) if fit profiles desired a help_struct_all.fit_type = 'type of fits ''std'' (default) uses diagnostic error bars, ''pedestal'', uses manual error bars with smaller values outside 0.8'; help_struct_all.fit_nb_rho_points = 'nb of points for the radial mesh over which the fits are evaluated for the fitted profiles, it uses an equidistant mesh at this stage'; help_struct_all.source = ['sxr: ''G'' (default, with ssx), camera name ''J'', ''G'', ...[F-M], case insensitive;' char(10) ... - 'cxrs: ''CEZ'' (default), ''CMZ'',''CUZ'',''COZ'',''all'';' char(10) ... - 'raptor: ''observer'', ''predictive'' (or ''obs'', ''pre'') to restrict the ouput to these signals']; + 'cxrs: ''CEZ'' (default), ''CMZ'',''CUZ'',''COZ'',''all'';' char(10) ... + 'raptor: ''observer'', ''predictive'' (or ''obs'', ''pre'') to restrict the ouput to these signals']; help_struct_all.source_exp_name = ['ne_rho, te_rho, nete_rho for fit from TRA source typically or IDA when expname not the same as formain signal']; help_struct_all.camera = ['[] (default, all), [i1 i2 ...] chord nbs ([1 3 5] if only chords 1, 3 and 5 are desired), ''central'' uses J_049']; help_struct_all.freq = '''slow'', default (means ssx, 500kHz), lower sampling; ''fast'' full samples 2MHz; integer value nn for downsampling every nn''th points'; diff --git a/matlab/AUG/aug_requests_mapping.m b/matlab/AUG/aug_requests_mapping.m index 4ec989ebce289664a0df30a814a73b94cee0e5fb..43a991fbd99a2a8e3d054eec5134ee65c273898c 100644 --- a/matlab/AUG/aug_requests_mapping.m +++ b/matlab/AUG/aug_requests_mapping.m @@ -5,13 +5,13 @@ function mapping = aug_requests_mapping(data_request) % 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); + '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 @@ -38,166 +38,166 @@ if iscell(data_request) % || (~ischar(data_request) && length(data_request)>1) end switch lower(data_request) - case 'a_minor' - mapping.timedim = 1; - mapping.label = 'a\_minor'; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''r_inboard'';' ... + case 'a_minor' + mapping.timedim = 1; + mapping.label = 'a\_minor'; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''r_inboard'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);gdat_tmp.r_inboard=gdat_tmp.data;' ... - 'params_eff.data_request=''r_outboard'';' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.r_outboard=gdat_tmp2.data;' ... - 'gdat_tmp.data = 0.5.*(gdat_tmp2.data-gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... - 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'b0' - mapping.timedim = 1; - mapping.label = 'B_0'; - % mapping.method = 'signal'; - % mapping.expression = [{'FPC'},{'BTF'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPC''},{''BTF''}];' ... - 'gdat_tmp=gdat_aug(shot,params_eff);r0exp=1.65;gdat_tmp.r0 = r0exp; gdat_tmp.request_description = ' ... - '[''vacuum magnetic field at R0='' num2str(r0exp) ''m; COCOS=17''];' ... + 'params_eff.data_request=''r_outboard'';' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.r_outboard=gdat_tmp2.data;' ... + 'gdat_tmp.data = 0.5.*(gdat_tmp2.data-gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.gdat_request=''' data_request ''';']; + case 'b0' + mapping.timedim = 1; + mapping.label = 'B_0'; + % mapping.method = 'signal'; + % mapping.expression = [{'FPC'},{'BTF'}]; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPC''},{''BTF''}];' ... + 'gdat_tmp=gdat_aug(shot,params_eff);r0exp=1.65;gdat_tmp.r0 = r0exp; gdat_tmp.request_description = ' ... + '[''vacuum magnetic field at R0='' num2str(r0exp) ''m; COCOS=17''];' ... 'gdat_tmp.label=''' mapping.label ''';' ... - 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'beta' - mapping.timedim = 1; - mapping.label = '\beta'; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''betan'';' ... + 'gdat_tmp.gdat_request=''' data_request ''';']; + case 'beta' + mapping.timedim = 1; + mapping.label = '\beta'; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''betan'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);' ... - 'params_eff.data_request=''ip'';gdat_tmp2=gdat_aug(shot,params_eff);' ... - 'params_eff.data_request=''b0'';gdat_tmp3=gdat_aug(shot,params_eff);' ... - 'params_eff.data_request=''a_minor'';gdat_tmp4=gdat_aug(shot,params_eff);' ... - 'tmp_data_ip=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ... - 'tmp_data_b0=interp1(gdat_tmp3.t,gdat_tmp3.data,gdat_tmp.t,[],NaN);' ... - 'tmp_data_a=interp1(gdat_tmp4.t,gdat_tmp4.data,gdat_tmp.t,[],NaN);' ... - 'gdat_tmp.data = 0.01.*abs(gdat_tmp.data.*tmp_data_ip./1e6./tmp_data_a./tmp_data_b0);']; - case 'betan' - mapping.timedim = 1; - mapping.label = '\beta_N'; - mapping.method = 'signal'; - mapping.expression = [{'TOT'},{'beta_N'}]; - % in many cases, in particular just after an experiment, betaN is not present in TOT, thus compute it from 2/3Wmhd/V /(B0^2/2mu0) + 'params_eff.data_request=''ip'';gdat_tmp2=gdat_aug(shot,params_eff);' ... + 'params_eff.data_request=''b0'';gdat_tmp3=gdat_aug(shot,params_eff);' ... + 'params_eff.data_request=''a_minor'';gdat_tmp4=gdat_aug(shot,params_eff);' ... + 'tmp_data_ip=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ... + 'tmp_data_b0=interp1(gdat_tmp3.t,gdat_tmp3.data,gdat_tmp.t,[],NaN);' ... + 'tmp_data_a=interp1(gdat_tmp4.t,gdat_tmp4.data,gdat_tmp.t,[],NaN);' ... + 'gdat_tmp.data = 0.01.*abs(gdat_tmp.data.*tmp_data_ip./1e6./tmp_data_a./tmp_data_b0);']; + case 'betan' + mapping.timedim = 1; + mapping.label = '\beta_N'; + mapping.method = 'signal'; + mapping.expression = [{'TOT'},{'beta_N'}]; + % in many cases, in particular just after an experiment, betaN is not present in TOT, thus compute it from 2/3Wmhd/V /(B0^2/2mu0) % $$$ mapping.method = 'expression'; % $$$ mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''TOT''},{''beta_2N''},{''AUGD''}];' ... % $$$ 'gdat_tmp=gdat_aug(shot,params_eff); if isempty(gdat_tmp.data);' ... -% $$$ 'params_eff.data_request=''ip'';gdat_ip=gdat_aug(shot,params_eff);' ... -% $$$ 'params_eff.data_request=''b0'';gdat_b0=gdat_aug(shot,params_eff);' ... -% $$$ 'params_eff.data_request=''a_minor'';gdat_aminor=gdat_aug(shot,params_eff);' ... -% $$$ 'params_eff.data_request=''wmhd'';gdat_tmp=gdat_aug(shot,params_eff);' ... -% $$$ 'params_eff.data_request=''volume'';gdat_vol=gdat_aug(shot,params_eff);' ... -% $$$ 'tmp_data_ip=interp1(gdat_ip.t,gdat_ip.data,gdat_tmp.t,[],NaN);' ... -% $$$ 'tmp_data_b0=interp1(gdat_b0.t,gdat_b0.data,gdat_tmp.t,[],NaN);' ... -% $$$ 'tmp_data_a=interp1(gdat_aminor.t,gdat_aminor.data,gdat_tmp.t,[],NaN);' ... -% $$$ 'tmp_data_vol=interp1(gdat_vol.t,gdat_vol.data,gdat_tmp.t,[],NaN);' ... -% $$$ 'gdat_tmp.data = 100.*abs(2./3.*gdat_tmp.data./tmp_data_vol.*8e-7.*pi./tmp_data_b0.^2./tmp_data_ip.*1e6.*tmp_data_a.*tmp_data_b0);end;']; - case {'betap', 'beta_p', 'beta_pol'} - mapping.timedim = 1; - mapping.label = '\beta_p'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'betpol'}]; - case {'cxrs', 'cxrs_rho'} - 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''; ' ... +% $$$ 'params_eff.data_request=''ip'';gdat_ip=gdat_aug(shot,params_eff);' ... +% $$$ 'params_eff.data_request=''b0'';gdat_b0=gdat_aug(shot,params_eff);' ... +% $$$ 'params_eff.data_request=''a_minor'';gdat_aminor=gdat_aug(shot,params_eff);' ... +% $$$ 'params_eff.data_request=''wmhd'';gdat_tmp=gdat_aug(shot,params_eff);' ... +% $$$ 'params_eff.data_request=''volume'';gdat_vol=gdat_aug(shot,params_eff);' ... +% $$$ 'tmp_data_ip=interp1(gdat_ip.t,gdat_ip.data,gdat_tmp.t,[],NaN);' ... +% $$$ 'tmp_data_b0=interp1(gdat_b0.t,gdat_b0.data,gdat_tmp.t,[],NaN);' ... +% $$$ 'tmp_data_a=interp1(gdat_aminor.t,gdat_aminor.data,gdat_tmp.t,[],NaN);' ... +% $$$ 'tmp_data_vol=interp1(gdat_vol.t,gdat_vol.data,gdat_tmp.t,[],NaN);' ... +% $$$ 'gdat_tmp.data = 100.*abs(2./3.*gdat_tmp.data./tmp_data_vol.*8e-7.*pi./tmp_data_b0.^2./tmp_data_ip.*1e6.*tmp_data_a.*tmp_data_b0);end;']; + case {'betap', 'beta_p', 'beta_pol'} + mapping.timedim = 1; + mapping.label = '\beta_p'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'betpol'}]; + case {'cxrs', 'cxrs_rho'} + 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_aug(shot,params_eff);params_eff.data_request=''delta_top'';' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data = 0.5.*(gdat_tmp.data+gdat_tmp2.data);']; - case 'delta_top' - mapping.label = 'delta\_top'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'delRoben'}]; - case 'delta_bottom' - mapping.label = 'delta\_bottom'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'delRuntn'}]; - 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 {'gas', 'gas_valve'} - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - case 'halpha' - mapping.timedim = 1; - mapping.label = 'Halpha'; - mapping.method = 'signal'; - mapping.expression = [{'POT'},{'ELMa-Han'}]; - case 'h_scalings' - mapping.label = 'H_{scal}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'TTH'},{'H/L-facs'},{'AUGD'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''TTH''},{''H/L-facs''},{''AUGD''}];params_eff.source=''TTH'';' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data = 0.5.*(gdat_tmp.data+gdat_tmp2.data);']; + case 'delta_top' + mapping.label = 'delta\_top'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'delRoben'}]; + case 'delta_bottom' + mapping.label = 'delta\_bottom'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'delRuntn'}]; + 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 {'gas', 'gas_valve'} + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + case 'halpha' + mapping.timedim = 1; + mapping.label = 'Halpha'; + mapping.method = 'signal'; + mapping.expression = [{'POT'},{'ELMa-Han'}]; + case 'h_scalings' + mapping.label = 'H_{scal}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'TTH'},{'H/L-facs'},{'AUGD'}]; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''TTH''},{''H/L-facs''},{''AUGD''}];params_eff.source=''TTH'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);S = rdaAUG_eff(shot,''TTH'',''scal_par'',''AUGD'',[],[],''param:descript'');gdat_tmp.dimunits{1}=cellstr(deblank(S.data''));' ... 'gdat_tmp.data = min(gdat_tmp.data,10.);']; - case 'ids' - mapping.timedim = 1; - mapping.label = 'ids ala imas'; - mapping.method = 'switchcase'; - case 'ioh' - mapping.timedim = 1; - mapping.label = 'I ohmic transformer'; - mapping.method = 'signal'; - mapping.expression = [{'MBI'},{'IOH'}]; - case 'ip' - mapping.timedim = 1; - mapping.label = 'Plasma current'; - mapping.method = 'signal'; - mapping.expression = [{'MAG'},{'Ipa'}]; - mapping.expression = [{'FPC'},{'IpiFP'}]; - case 'kappa' - mapping.timedim = 1; - mapping.label = '\kappa'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'k'}]; - case 'kappa_top' - mapping.timedim = 1; - mapping.label = '\kappa^{top}'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'koben'}]; - case 'kappa_bottom' - mapping.timedim = 1; - mapping.label = '\kappa_{bottom}'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'kuntn'}]; - case 'li' - mapping.timedim = 1; - mapping.label = 'l_i'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'li'}]; - case 'li3' - mapping.timedim = 1; - mapping.label = 'li3'; - mapping.method = 'expression'; - % li and betapol should have similar "normalization", using Bpa=int(Bp dlp)/int(dlp) and V=2pi R0 pi a^2 kappa and int(dlp)=2pi a sqrt(kappa) we get 2/R0 = int(dlp)^2/V so li3 is defined as [ - % li3 = 2 int(Bp^2 dV) / (mu0^2 Ip^2 R0) - % while li ala EFIT [https://iopscience.iop.org/article/10.1088/0029-5515/25/10/004 Eq.(5)] or CLISTE/IDE/GPEC [https://doi.org/10.13182/FST15-154 p.5] by - % li1 = int(Bp^2 dV) / (V Bpa^2) = int(Bp^2 dV) / (mu0^2 Ip^2) * int(dlp)^2 / V = CONVF * li3 - % CONVF = conversion_factor_liefit_li3 = int(dlp)^2/V * R0/2 - help_text = ['sprintf(''%s\n%s\n%s%s\n%s\n%s'',''li3 = 2 int(Bp^2 dV) / (mu0^2 Ip^2 R0), see Freidberg or '',', ... - '''CHEASE https://doi.org/10.1016/0010-4655(96)00046-X p. 5'',', ... - '''li ala EFIT [https://iopscience.iop.org/article/10.1088/0029-5515/25/10/004 Eq.(5)], CLISTE, IDE, '',', ... - '''GPEC [https://doi.org/10.13182/FST15-154 p.5]'',', ... - '''li = int(Bp^2 dV) / (V Bpa^2) = int(Bp^2 dV) / (mu0^2 Ip^2) * int(dlp)^2 / V = CONVF * li3'',', ... - '''CONVF = conversion_factor_liefit_li3 = int(dlp)^2/V * R0/2'')']; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''li'';' ... + case 'ids' + mapping.timedim = 1; + mapping.label = 'ids ala imas'; + mapping.method = 'switchcase'; + case 'ioh' + mapping.timedim = 1; + mapping.label = 'I ohmic transformer'; + mapping.method = 'signal'; + mapping.expression = [{'MBI'},{'IOH'}]; + case 'ip' + mapping.timedim = 1; + mapping.label = 'Plasma current'; + mapping.method = 'signal'; + mapping.expression = [{'MAG'},{'Ipa'}]; + mapping.expression = [{'FPC'},{'IpiFP'}]; + case 'kappa' + mapping.timedim = 1; + mapping.label = '\kappa'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'k'}]; + case 'kappa_top' + mapping.timedim = 1; + mapping.label = '\kappa^{top}'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'koben'}]; + case 'kappa_bottom' + mapping.timedim = 1; + mapping.label = '\kappa_{bottom}'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'kuntn'}]; + case 'li' + mapping.timedim = 1; + mapping.label = 'l_i'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'li'}]; + case 'li3' + mapping.timedim = 1; + mapping.label = 'li3'; + mapping.method = 'expression'; + % li and betapol should have similar "normalization", using Bpa=int(Bp dlp)/int(dlp) and V=2pi R0 pi a^2 kappa and int(dlp)=2pi a sqrt(kappa) we get 2/R0 = int(dlp)^2/V so li3 is defined as [ + % li3 = 2 int(Bp^2 dV) / (mu0^2 Ip^2 R0) + % while li ala EFIT [https://iopscience.iop.org/article/10.1088/0029-5515/25/10/004 Eq.(5)] or CLISTE/IDE/GPEC [https://doi.org/10.13182/FST15-154 p.5] by + % li1 = int(Bp^2 dV) / (V Bpa^2) = int(Bp^2 dV) / (mu0^2 Ip^2) * int(dlp)^2 / V = CONVF * li3 + % CONVF = conversion_factor_liefit_li3 = int(dlp)^2/V * R0/2 + help_text = ['sprintf(''%s\n%s\n%s%s\n%s\n%s'',''li3 = 2 int(Bp^2 dV) / (mu0^2 Ip^2 R0), see Freidberg or '',', ... + '''CHEASE https://doi.org/10.1016/0010-4655(96)00046-X p. 5'',', ... + '''li ala EFIT [https://iopscience.iop.org/article/10.1088/0029-5515/25/10/004 Eq.(5)], CLISTE, IDE, '',', ... + '''GPEC [https://doi.org/10.13182/FST15-154 p.5]'',', ... + '''li = int(Bp^2 dV) / (V Bpa^2) = int(Bp^2 dV) / (mu0^2 Ip^2) * int(dlp)^2 / V = CONVF * li3'',', ... + '''CONVF = conversion_factor_liefit_li3 = int(dlp)^2/V * R0/2'')']; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''li'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(gdat_tmp.data<=0);gdat_tmp.data(ij)=NaN;' ... 'r0exp=1.65;gdat_tmp.r0=r0exp;' ... 'params_eff.data_request=''volume'';' ... @@ -205,117 +205,117 @@ switch lower(data_request) 'params_eff.data_request=[{''FPG''},{''Circumf''}];' ... 'gdat_pol_length=gdat_aug(shot,params_eff);ij=find(gdat_pol_length.data<=0);gdat_pol_length.data(ij)=NaN;' ... 'gdat_tmp.conversion_factor_liefit_li3=gdat_tmp.r0./2.*gdat_pol_length.data.^2./max(abs(gdat_vol.data),1e-1);' ... - 'gdat_tmp.data = gdat_tmp.data./gdat_tmp.conversion_factor_liefit_li3;' ... + 'gdat_tmp.data = gdat_tmp.data./gdat_tmp.conversion_factor_liefit_li3;' ... 'gdat_tmp.help = ' help_text ';']; - case 'mhd' - mapping.timedim = 1; - mapping.label = {'n\_odd','n\_even'};% this superseeds the expression - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''MOD'',''OddN''}; ' ... + case 'mhd' + mapping.timedim = 1; + mapping.label = {'n\_odd','n\_even'};% this superseeds the expression + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''MOD'',''OddN''}; ' ... 'gdat_tmp=gdat_aug(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_odd.data = gdat_tmp.data;gdat_tmp.n_odd.data_request=params_eff.data_request;' ... - 'params_eff.data_request={''MOD'',''EvenN''};' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ... - 'params_eff.data_request={''MOD'',''OddNAmp''};' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ... - 'params_eff.data_request={''MOD'',''EvenNAmp''};' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ... - 'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ... - 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; - case 'ne' - mapping.timedim = 2; - mapping.method = 'switchcase'; - case 'neint' - mapping.timedim = 1; - mapping.label = 'line integrated el. density'; - % mapping.method = 'signal'; - mapping.method = 'expression'; - mapping.expression = [{'DCN'},{'H-1'},{'AUGD'}]; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''DCN'',''H-1'',''AUGD''};' ... + 'gdat_tmp.dim{1}=gdat_tmp.t;gdat_tmp.dim{2}=[1 2];gdat_tmp.x=gdat_tmp.dim{2};' ... + 'gdat_tmp.n_odd.data = gdat_tmp.data;gdat_tmp.n_odd.data_request=params_eff.data_request;' ... + 'params_eff.data_request={''MOD'',''EvenN''};' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ... + 'params_eff.data_request={''MOD'',''OddNAmp''};' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ... + 'params_eff.data_request={''MOD'',''EvenNAmp''};' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ... + 'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ... + 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; + case 'ne' + mapping.timedim = 2; + mapping.method = 'switchcase'; + case 'neint' + mapping.timedim = 1; + mapping.label = 'line integrated el. density'; + % mapping.method = 'signal'; + mapping.method = 'expression'; + mapping.expression = [{'DCN'},{'H-1'},{'AUGD'}]; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''DCN'',''H-1'',''AUGD''};' ... 'if any(shot==[39311, 39599]);params_eff.data_request={''TTH'',''dcn_reco'',''PUETTI''};end;' ... 'gdat_tmp=gdat_aug(shot,params_eff);']; - case 'nel' - mapping.timedim = 1; - mapping.label = 'line-averaged el. density'; - mapping.expression = [{'FPG'},{'lenH-1'},{'AUGD'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''neint'';' ... + case 'nel' + mapping.timedim = 1; + mapping.label = 'line-averaged el. density'; + mapping.expression = [{'FPG'},{'lenH-1'},{'AUGD'}]; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''neint'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);params_eff.data_request=[{''FPG''},{''lenH-1''},{''AUGD''}];' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);ij=find(gdat_tmp2.data==0);gdat_tmp2.data(ij)=NaN;' ... - 'tmp_data=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ... - 'gdat_tmp.data = gdat_tmp.data./(tmp_data+1e-5);']; - case 'ne_rho' - mapping.timedim = 2; - mapping.label = 'ne'; - mapping.method = 'switchcase'; - 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_tmp2=gdat_aug(shot,params_eff);ij=find(gdat_tmp2.data==0);gdat_tmp2.data(ij)=NaN;' ... + 'tmp_data=interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t,[],NaN);' ... + 'gdat_tmp.data = gdat_tmp.data./(tmp_data+1e-5);']; + case 'ne_rho' + mapping.timedim = 2; + mapping.label = 'ne'; + mapping.method = 'switchcase'; + 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_aug(shot,params_eff);params_eff.data_request=''ip'';' ... - 'gdat_tmp2=gdat_aug(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_tmp2=gdat_aug(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_aug(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 = 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_tmp3=gdat_aug(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 = 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_aug(shot,params_eff);params_eff.data_request=''n_greenwald'';' ... - 'gdat_tmp2=gdat_aug(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);']; + 'gdat_tmp2=gdat_aug(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);']; % $$$ case 'ni' % $$$ mapping.method = 'switchcase'; % especially since might have option fit, etc - case 'pellet' - mapping.timedim = 1; - mapping.label = 'line integrated el. density'; - mapping.method = 'signal'; - mapping.expression = [{'PEL'},{'5Co'},{'AUGD'}]; - case 'pgyro' - mapping.timedim = 1; - mapping.label = 'EC gyros'; - mapping.method = 'switchcase'; - case 'powers' - mapping.timedim = 1; - mapping.label = 'various powers'; - mapping.method = 'switchcase'; - case {'prad', 'p_rad'} - mapping.timedim = 1; - mapping.label = 'P_{rad}'; - mapping.method = 'signal'; - mapping.expression = [{'BPD'},{'Pradtot'},{'AUGD'}]; - case 'psi_axis' - mapping.timedim = 1; - mapping.method = 'switchcase'; % there is psi_axis-psi_edge in FPG but otherwise complicated to get from equil, thus needs swticth case - mapping.label ='psi_\axis' ; - case 'psi_edge' - mapping.timedim = 1; - mapping.method = 'switchcase'; % is set to zero, so not in tree nodes - mapping.label = 'psi\_edge'; - case 'q0' - mapping.timedim = 1; - mapping.label = 'q_0'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'q0'},{'AUGD'}]; - case 'q95' - mapping.timedim = 1; - mapping.label = 'q_{95}'; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'q95'},{'AUGD'}]; + case 'pellet' + mapping.timedim = 1; + mapping.label = 'line integrated el. density'; + mapping.method = 'signal'; + mapping.expression = [{'PEL'},{'5Co'},{'AUGD'}]; + case 'pgyro' + mapping.timedim = 1; + mapping.label = 'EC gyros'; + mapping.method = 'switchcase'; + case 'powers' + mapping.timedim = 1; + mapping.label = 'various powers'; + mapping.method = 'switchcase'; + case {'prad', 'p_rad'} + mapping.timedim = 1; + mapping.label = 'P_{rad}'; + mapping.method = 'signal'; + mapping.expression = [{'BPD'},{'Pradtot'},{'AUGD'}]; + case 'psi_axis' + mapping.timedim = 1; + mapping.method = 'switchcase'; % there is psi_axis-psi_edge in FPG but otherwise complicated to get from equil, thus needs swticth case + mapping.label ='psi_\axis' ; + case 'psi_edge' + mapping.timedim = 1; + mapping.method = 'switchcase'; % is set to zero, so not in tree nodes + mapping.label = 'psi\_edge'; + case 'q0' + mapping.timedim = 1; + mapping.label = 'q_0'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'q0'},{'AUGD'}]; + case 'q95' + mapping.timedim = 1; + mapping.label = 'q_{95}'; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'q95'},{'AUGD'}]; % $$$ case 'q_edge' % should use q_rho and then take q_edge since does not make sense for diverted shots and mainly diverted shots... % $$$ mapping.timedim = 1; % $$$ mapping.label = 'q_{edge}}'; @@ -323,146 +323,146 @@ switch lower(data_request) % $$$ mapping.method = 'switchcase'; % $$$ mapping.expression = [{'FPG'},{'q95'},{'AUGD'}]; % $$$ mapping.expression = []; - case 'q_rho' - mapping.timedim = 2; - mapping.gdat_timedim = 2; - mapping.label = 'q'; - mapping.method = 'switchcase'; - case 'raptor' - mapping.timedim = 2; - mapping.gdat_timedim = 2; - mapping.label = 'Raptor signals'; - mapping.method = 'switchcase'; - case 'rgeom' - mapping.label = 'Rgeom'; - mapping.timedim = 1; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''r_inboard'';' ... + case 'q_rho' + mapping.timedim = 2; + mapping.gdat_timedim = 2; + mapping.label = 'q'; + mapping.method = 'switchcase'; + case 'raptor' + mapping.timedim = 2; + mapping.gdat_timedim = 2; + mapping.label = 'Raptor signals'; + mapping.method = 'switchcase'; + case 'rgeom' + mapping.label = 'Rgeom'; + mapping.timedim = 1; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''r_inboard'';' ... 'gdat_tmp=gdat_aug(shot,params_eff);gdat_tmp.r_inboard=gdat_tmp.data;' ... - 'params_eff.data_request=''r_outboard'';' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.r_outboard=gdat_tmp2.data;' ... - 'gdat_tmp.data = 0.5.*(gdat_tmp2.data+gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... - 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'r_inboard' - mapping.label = 'R\_inboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Rin'},{'AUGD'}]; - case 'r_outboard' - mapping.label = 'R\_outboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Raus'},{'AUGD'}]; - case 'rhotor' - mapping.timedim = 2; - mapping.method = 'switchcase'; - mapping.label = 'rhotor'; - case 'rhotor_edge' - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_edge'; - case 'rhotor_norm' - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_norm'; - case 'rhovol' - mapping.timedim = 2; - mapping.label = 'rhovol\_norm'; - mapping.method = 'switchcase'; - case {'rmag', 'r_axis', 'r_mag'} - mapping.label = 'R\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Rmag'},{'AUGD'}]; - case 'sxr' - mapping.timedim = 1; - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - case 'tau_tot' - mapping.label = '\tau_{tot}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'TOT'},{'tau_tot'},{'AUGD'}]; - case 'te' - mapping.timedim = 2; - mapping.label = 'Te'; - mapping.method = 'switchcase'; - case 'te_rho' - mapping.timedim = 2; - mapping.label = 'Te'; - mapping.method = 'switchcase'; + 'params_eff.data_request=''r_outboard'';' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.r_outboard=gdat_tmp2.data;' ... + 'gdat_tmp.data = 0.5.*(gdat_tmp2.data+gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.gdat_request=''' data_request ''';']; + case 'r_inboard' + mapping.label = 'R\_inboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Rin'},{'AUGD'}]; + case 'r_outboard' + mapping.label = 'R\_outboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Raus'},{'AUGD'}]; + case 'rhotor' + mapping.timedim = 2; + mapping.method = 'switchcase'; + mapping.label = 'rhotor'; + case 'rhotor_edge' + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_edge'; + case 'rhotor_norm' + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_norm'; + case 'rhovol' + mapping.timedim = 2; + mapping.label = 'rhovol\_norm'; + mapping.method = 'switchcase'; + case {'rmag', 'r_axis', 'r_mag'} + mapping.label = 'R\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Rmag'},{'AUGD'}]; + case 'sxr' + mapping.timedim = 1; + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + case 'tau_tot' + mapping.label = '\tau_{tot}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'TOT'},{'tau_tot'},{'AUGD'}]; + 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' % case to be set % $$$ mapping.label = 'Ti'; % $$$ mapping.method = 'switchcase'; - case 'vloop' - mapping.label = 'Vloop'; - mapping.timedim = 1; - % mapping.method = 'signal'; - % mapping.expression = [{'MAG'},{'ULid12'},{'AUGD'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''MAG''},{''ULid12''},{''AUGD''}];' ... - 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data));' ... - 'tmp_data=interpos(gdat_tmp.t,gdat_tmp.data,-3e4);' ... - 'gdat_tmp.data_smooth = tmp_data;gdat_tmp.gdat_request=''vloop'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; - case {'volume', 'volume_edge'} - mapping.label = 'Volume'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Vol'},{'AUGD'}]; - case 'volume_rho' - mapping.timedim = 2; - mapping.label = 'Volume'; - mapping.method = 'switchcase'; - case {'wmhd' 'w_mhd'} - mapping.label = 'Wmhd'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Wmhd'},{'AUGD'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPG''},{''Wmhd''},{''AUGD''}];' ... - 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data)); gdat_tmp.data_raw=gdat_tmp.data;' ... - 'tmp_data=interpos(gdat_tmp.t(ij),gdat_tmp.data(ij),gdat_tmp.t,-1e5);' ... - 'gdat_tmp.data = max(tmp_data,0.);']; - case {'zeff', 'z_eff'} - mapping.timedim = 1; - mapping.label = 'zeff'; - mapping.method = 'switchcase'; + case 'vloop' + mapping.label = 'Vloop'; + mapping.timedim = 1; + % mapping.method = 'signal'; + % mapping.expression = [{'MAG'},{'ULid12'},{'AUGD'}]; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''MAG''},{''ULid12''},{''AUGD''}];' ... + 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data));' ... + 'tmp_data=interpos(gdat_tmp.t,gdat_tmp.data,-3e4);' ... + 'gdat_tmp.data_smooth = tmp_data;gdat_tmp.gdat_request=''vloop'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; + case {'volume', 'volume_edge'} + mapping.label = 'Volume'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Vol'},{'AUGD'}]; + case 'volume_rho' + mapping.timedim = 2; + mapping.label = 'Volume'; + mapping.method = 'switchcase'; + case {'wmhd' 'w_mhd'} + mapping.label = 'Wmhd'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Wmhd'},{'AUGD'}]; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPG''},{''Wmhd''},{''AUGD''}];' ... + 'gdat_tmp=gdat_aug(shot,params_eff);ij=find(~isnan(gdat_tmp.data)); gdat_tmp.data_raw=gdat_tmp.data;' ... + 'tmp_data=interpos(gdat_tmp.t(ij),gdat_tmp.data(ij),gdat_tmp.t,-1e5);' ... + 'gdat_tmp.data = max(tmp_data,0.);']; + case {'zeff', 'z_eff'} + mapping.timedim = 1; + mapping.label = 'zeff'; + mapping.method = 'switchcase'; % $$$ ZES obsolete, use cxrs % $$$ mapping.label = 'zeff from cxrs'; % $$$ mapping.timedim = 1; % $$$ mapping.method = 'signal'; % $$$ mapping.expression = [{'ZES'},{'Zeff'},{'AUGD'}]; - case 'zgeom' - mapping.label = 'Zgeom'; - mapping.timedim = 1; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPG''},{''Zoben''},{''AUGD''}];' ... + case 'zgeom' + mapping.label = 'Zgeom'; + mapping.timedim = 1; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPG''},{''Zoben''},{''AUGD''}];' ... 'gdat_tmp=gdat_aug(shot,params_eff);gdat_tmp.z_top=gdat_tmp.data;' ... - 'params_eff.data_request=[{''FPG''},{''Zunt''},{''AUGD''}];' ... - 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.z_bottom=gdat_tmp2.data;' ... - 'gdat_tmp.data = 0.5.*(gdat_tmp2.data+gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... - 'gdat_tmp.gdat_request=''' data_request ''';']; + 'params_eff.data_request=[{''FPG''},{''Zunt''},{''AUGD''}];' ... + 'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.z_bottom=gdat_tmp2.data;' ... + 'gdat_tmp.data = 0.5.*(gdat_tmp2.data+gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.gdat_request=''' data_request ''';']; - case {'zmag', 'z_mag', 'z_axis'} - mapping.label = 'Z\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Zmag'},{'AUGD'}]; - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % extra AUG cases (not necessarily in official data_request name list) - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - case 'transp' - mapping.label = 'transp output'; - mapping.method = 'switchcase'; + case {'zmag', 'z_mag', 'z_axis'} + mapping.label = 'Z\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Zmag'},{'AUGD'}]; + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % extra AUG 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; - mapping.not_found = true; + 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; + mapping.not_found = true; end diff --git a/matlab/AUG/loadAUGdata.m b/matlab/AUG/loadAUGdata.m index 94704f20f2fb47df8eb5a749409674c6e51f939d..78341cdc44d5f400ed63e6d213afcc00d9983325 100644 --- a/matlab/AUG/loadAUGdata.m +++ b/matlab/AUG/loadAUGdata.m @@ -3,8 +3,8 @@ function [trace,error,varargout]=loadAUGdata(shot,data_type,varargin) % data_type: % 'Ip' = current % 'zmag' = vertical position of the center of the plasma (magnetic axis) -% 'rmag' = radial position of the center of the plasma -% 'sxr' = soft x-ray emission +% 'rmag' = radial position of the center of the plasma +% 'sxr' = soft x-ray emission % 'sxR' = soft x-ray emission with varargout{1} option (requires varargin{5}!) % 'SXB' = soft x-ray emission from (by default camera J) SXB/J_xx camera (sxb, sxB, etc all work) % 'SXF' = soft x-ray emission from (by default camera J) SXF/I_xx camera (sxf, sxF, etc all work) @@ -14,8 +14,8 @@ function [trace,error,varargout]=loadAUGdata(shot,data_type,varargin) % gdat(15133,'MAG/Ipa',1,'AUG') % uses experiment=AUGD shotfiles per default % gdat(15133,'MAG/Ipa',1) (sufficient at AUG since 'AUG' per defaut, same with gdat(15133,'ip',1) % gdat(15133,'AUGD/MAG/Ipa',1,'AUG') % to specify experiment explicitely like in: -% gdat(30230,'ECED/RMD/Trad-A',1,'AUG') % -% gdat(30230,'ECED/CEC/Trad-A',1,'AUG') % +% gdat(30230,'ECED/RMD/Trad-A',1,'AUG') % +% gdat(30230,'ECED/CEC/Trad-A',1,'AUG') % % gdat(31053,'MSP/IGP_07Co',1); % N gas opening at -6s (03 as well) % % INPUT: @@ -36,12 +36,12 @@ function [trace,error,varargout]=loadAUGdata(shot,data_type,varargin) % varargin{3}: zmag for varargout{1} computation % varargin{4}: time range [t1 t2] (to limit data collected) % varargin{5}: nth to keep only nth time points of traces -% varargin{6}: camera to use: 'B' (default), 'A', +% varargin{6}: camera to use: 'B' (default), 'A', % % OUTPUT: % trace.data: data structure -% trace.t: time of reference -% trace.x: space of reference +% trace.t: time of reference +% trace.x: space of reference % .... others related to data % error: error in loading signal (0=> OK, 1=> error) % @@ -59,20 +59,20 @@ function [trace,error,varargout]=loadAUGdata(shot,data_type,varargin) % % List of keywords (can be used in adition to 'DIAG/tracenam'), with comments when not obvious: % -% Ip : -% b0 : -% zmag : -% rmag : -% rgeo : -% zgeo : -% q0 : -% q95 : -% kappa : -% delta : -% deltatop : -% deltabot : -% neint : -% neterho : +% Ip : +% b0 : +% zmag : +% rmag : +% rgeo : +% zgeo : +% q0 : +% q95 : +% kappa : +% delta : +% deltatop : +% deltabot : +% neint : +% neterho : % cxrs : CXRS structure from CEZ with vrot, Ti, ... % cxrs_rho : same as cxrs but project on rho as well (using 'equil' information) % equil : equilibrium structure, rhopol, rhotor, rhovol, etc from EQI @@ -85,12 +85,12 @@ function [trace,error,varargout]=loadAUGdata(shot,data_type,varargin) % sxb : 'SXB/J' chords % sxf : 'SXF/I' chords % transp_EXPNAME : data from TRA using experiment name = "EXPNAME" -% ece : -% ece_rho : -% eced : -% eced_rho : -% eced_rmd : -% Halpha : +% ece : +% ece_rho : +% eced : +% eced_rho : +% eced_rmd : +% Halpha : % pgyro : for each gyrotrons, power, freq, etc (ask for more) % powers : power traces for each sources % @@ -112,7 +112,7 @@ if size(data_type,1)==1 for ij=1:length(inotok) ijk=find(iok>inotok(ij)); if ~isempty(ijk) - iok(ijk) = iok(ijk) - 1; + iok(ijk) = iok(ijk) - 1; end end end @@ -285,11 +285,11 @@ end % all keywords and corresponding case to run below AUGkeywrdall=[{'Ip'} {'b0'} {'zmag'} {'rmag'} {'rgeo'} {'zgeo'} {'vol'} {'qrho'} {'qrho_fpp'} {'q0'} {'q95'} {'kappa'} ... - {'delta'} {'deltatop'} {'deltabot'} {'neint'} {'ne'} {'te'} ... - {'nerho'} {'neterho'} {'terho'} {'cxrs'} {'cxrs_rho'} {'equil'} {'equil_fpp'} {'equil_eqm'} ... - {'equil_eqr'} {'equil_eqh'} {'sxr'} {'sxR'} {'sxb'} {'sxf'} {'ssx_g'} {'ssx_h'} {'ssx_i'} {'ssx_j'} {'ssx'} ... - {'transp'} {'ece'} {'ece_rho'} {'eced'} {'eced_rho'} {'eced_rmd'} {'Halpha'} {'pgyro'} {'powers'} ... - {'betan'} {'betap'}]; % rm, not yet implemented: {'rcont'} {'zcont'} + {'delta'} {'deltatop'} {'deltabot'} {'neint'} {'ne'} {'te'} ... + {'nerho'} {'neterho'} {'terho'} {'cxrs'} {'cxrs_rho'} {'equil'} {'equil_fpp'} {'equil_eqm'} ... + {'equil_eqr'} {'equil_eqh'} {'sxr'} {'sxR'} {'sxb'} {'sxf'} {'ssx_g'} {'ssx_h'} {'ssx_i'} {'ssx_j'} {'ssx'} ... + {'transp'} {'ece'} {'ece_rho'} {'eced'} {'eced_rho'} {'eced_rmd'} {'Halpha'} {'pgyro'} {'powers'} ... + {'betan'} {'betap'}]; % rm, not yet implemented: {'rcont'} {'zcont'} AUGsig.iip=strmatch('Ip',AUGkeywrdall,'exact'); AUGsig.ib0=strmatch('b0',AUGkeywrdall,'exact'); AUGsig.izmag=strmatch('zmag',AUGkeywrdall,'exact'); @@ -459,8 +459,8 @@ if size(data_type_eff,1)==2 % $$$ disp('********************') % $$$ disp('trace not yet registered.') % $$$ disp('If standard data, ask andrea.scarabosio@epfl.ch or olivier.sauter@epfl.ch to create a keyqord entry for this data') -% eval(['!mail -s ''' data_type_eff{1} ' ' data_type_eff{2} ' ' num2str(shot) ' ' ... -% getenv('USER') ' AUG'' olivier.sauter@epfl.ch < /dev/null']) + % eval(['!mail -s ''' data_type_eff{1} ' ' data_type_eff{2} ' ' num2str(shot) ' ' ... + % getenv('USER') ' AUG'' olivier.sauter@epfl.ch < /dev/null']) disp('********************') % temporarily add entry in arrays, so can work below index=length(AUGkeywrdall)+1; @@ -485,7 +485,7 @@ if size(data_type_eff,1)==2 AUGsiglocation(1:2,end+1)=[data_type_eff(1) ; {data_type_eff_noext}]; AUGexplocation{end+1}=shotfile_exp; AUGsigtimeindx(end+1)=0; - AUGkeywrdcase{index} + AUGkeywrdcase{index} end else index=strmatch(data_type_eff_noext,AUGkeywrdall,'exact'); @@ -506,9 +506,9 @@ else end disp(' ') if iscell(data_type_eff) - disp(['loading' ' ' data_type_eff{1} '/' data_type_eff{2} ' from AUG shot #' num2str(shot)]); + disp(['loading' ' ' data_type_eff{1} '/' data_type_eff{2} ' from AUG shot #' num2str(shot)]); else - disp(['loading' ' ' data_type_eff ' from AUG shot #' num2str(shot)]); + disp(['loading' ' ' data_type_eff ' from AUG shot #' num2str(shot)]); end disp(['case ' AUGkeywrdcase{index}]) disp(' ') @@ -520,7 +520,7 @@ switch AUGkeywrdcase{index} ppftype=AUGsiglocation{1,index}; shotfile_exp_eff = AUGexplocation{index}; - if i_efitm; + if i_efitm; tracename=['eftm' AUGsiglocation{2,index}(5:end) name_ext]; else tracename=[AUGsiglocation{2,index} name_ext]; @@ -528,10 +528,10 @@ switch AUGkeywrdcase{index} ij=find(tracename~=''''); tracename=tracename(ij) [a,e]=rdaAUG_eff(shot,ppftype,tracename,shotfile_exp_eff); -% switch tracename -% special cases if traces do not exist for some shot or other -% end - + % switch tracename + % special cases if traces do not exist for some shot or other + % end + trace=a; clear error error=e; @@ -549,23 +549,23 @@ switch AUGkeywrdcase{index} ilentime=length(trace.t); ij=find(size(trace.value)==ilentime); if ij==1; - % as expected - trace.x = [1:size(trace.value,2)]; - trace.dim=[{trace.t} ; {trace.x} ; {[1:size(trace.value,3)]}]; - trace.dimunits=[{'time [s]'} ; {''} ; {''}]; + % as expected + trace.x = [1:size(trace.value,2)]; + trace.dim=[{trace.t} ; {trace.x} ; {[1:size(trace.value,3)]}]; + trace.dimunits=[{'time [s]'} ; {''} ; {''}]; else - trace.dim=[{[]} ; {[]} ; {[]}]; - trace.dim{ij} = trace.t; - trace.dimunits=[{[]} ; {[]} ; {[]}]; - trace.dimunits{ij}='time [s]'; + trace.dim=[{[]} ; {[]} ; {[]}]; + trace.dim{ij} = trace.t; + trace.dimunits=[{[]} ; {[]} ; {[]}]; + trace.dimunits{ij}='time [s]'; end end trace.name=[num2str(shot) '/' ppftype '/' tracename]; - - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'sxr','sxR'} - % LOAD MULTI CHANNEL DATA - % load AUG soft x-ray data + % LOAD MULTI CHANNEL DATA + % load AUG soft x-ray data shotfile_exp_eff = AUGexplocation{index}; @@ -610,7 +610,7 @@ switch AUGkeywrdcase{index} trace.t=trace.t(1:nth:end); trace.data=trace.data(:,1:nth:end); trace.dim{2}=trace.t; - % calculating intersection of the view lines with magnetics axis + % calculating intersection of the view lines with magnetics axis if strcmp(data_type_eff_noext,'sxR') if nargin>=5 & ~isempty(varargin{3}) zmag=varargin{3}; @@ -632,10 +632,10 @@ switch AUGkeywrdcase{index} trace.R=radius; end - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'sxb', 'sxf', 'ssx', 'ssx_g', 'ssx_h', 'ssx_i', 'ssx_j'} % LOAD MULTI CHANNEL DATA SXB/J_0xx (or other than J camera if specified in varargin{8}) - % load AUG soft x-ray data + % load AUG soft x-ray data shotfile_exp_eff = AUGexplocation{index}; @@ -670,15 +670,15 @@ switch AUGkeywrdcase{index} tracename=varargin{6}; else if strcmp(AUGkeywrdcase{index},'sxb') - tracename='J'; + tracename='J'; elseif strcmp(AUGkeywrdcase{index},'sxf') - tracename='I'; + tracename='I'; elseif strcmp(AUGkeywrdcase{index},'ssx') - tracename='G'; + tracename='G'; elseif strcmp(AUGkeywrdcase{index}(1:4),'ssx_') - tracename=upper(AUGkeywrdcase{index}(5)); + tracename=upper(AUGkeywrdcase{index}(5)); else - disp('should not be here, ask O. Sauter'); + disp('should not be here, ask O. Sauter'); end end trace.t=[]; @@ -688,25 +688,25 @@ switch AUGkeywrdcase{index} for ichord=starti:endi tracename_eff = [tracename '_' num2str(ichord,'%.3d')]; try - [a,e]=rdaAUG_eff(shot,ppftype,tracename_eff,shotfile_exp_eff,timerange); + [a,e]=rdaAUG_eff(shot,ppftype,tracename_eff,shotfile_exp_eff,timerange); catch - a = []; + a = []; end if isempty(a) || e~=0 - if ~exist('trace_all') - trace_all = struct([]); - else - end + if ~exist('trace_all') + trace_all = struct([]); + else + end else - if iok==0 - trace_all = a; - trace_all = rmfield(trace_all,[{'value'},{'data'}]); - iok = iok+1; - else - iok = iok+1; - end - trace_all.value(ichord,:) = a.value; - trace_all.data(ichord,:) = a.data; + if iok==0 + trace_all = a; + trace_all = rmfield(trace_all,[{'value'},{'data'}]); + iok = iok+1; + else + iok = iok+1; + end + trace_all.value(ichord,:) = a.value; + trace_all.data(ichord,:) = a.data; end end if ~isempty(trace_all) @@ -731,10 +731,10 @@ switch AUGkeywrdcase{index} trace.units = []; trace.name=[num2str(shot) '/' ppftype '/' tracename]; end - - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'ece','eced','ece_rho','eced_rho'} - % LOAD MULTI CHANNEL DATA + % LOAD MULTI CHANNEL DATA % load AUG ece data shotfile_exp_eff = AUGexplocation{index}; @@ -793,8 +793,8 @@ switch AUGkeywrdcase{index} if domatchRtime % interpolate R structure on ece data time array, to ease plot vs R for i=starti:endi - radius.data(i,:) = interp1(aR.t,aR.data(i,:),trace.t); - zheight.data(i,:) = interp1(aZ.t,aZ.data(i,:),trace.t); + radius.data(i,:) = interp1(aR.t,aR.data(i,:),trace.t); + zheight.data(i,:) = interp1(aZ.t,aZ.data(i,:),trace.t); end radius.t=trace.t; zheight.t=trace.t; @@ -822,24 +822,24 @@ switch AUGkeywrdcase{index} time_equil=[1.5*equil.t(1)-0.5*equil.t(2) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) 1.5*equil.t(end)-0.5*equil.t(end-1)]; iok=find(aR.data(:,1)>0); for itequil=1:length(time_equil)-1 - rr=equil.Rmesh(:,itequil); - zz=equil.Zmesh(:,itequil); - psirz_in = equil.psi2D(:,:,itequil); - it_ece_inequil = find(trace.R.t>=time_equil(itequil) & trace.R.t<=time_equil(itequil+1)); - if ~isempty(it_ece_inequil) - rout=trace.R.data(iok,it_ece_inequil); - ijok=find(~isnan(rout)); - if ~isempty(ijok) - zout=trace.Z.data(iok,it_ece_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); - psi_out(iok,it_ece_inequil) = reshape(psi_at_routzout,length(iok),length(it_ece_inequil)); - rhopsinorm_out(iok,it_ece_inequil) = sqrt(abs((psi_out(iok,it_ece_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil)))); - for it_cx=1:length(it_ece_inequil) - rhotornorm_out(iok,it_ece_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out(iok,it_ece_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out(iok,it_ece_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out(iok,it_ece_inequil(it_cx)),-3,[2 2],[0 1]); - end - end - end + rr=equil.Rmesh(:,itequil); + zz=equil.Zmesh(:,itequil); + psirz_in = equil.psi2D(:,:,itequil); + it_ece_inequil = find(trace.R.t>=time_equil(itequil) & trace.R.t<=time_equil(itequil+1)); + if ~isempty(it_ece_inequil) + rout=trace.R.data(iok,it_ece_inequil); + ijok=find(~isnan(rout)); + if ~isempty(ijok) + zout=trace.Z.data(iok,it_ece_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); + psi_out(iok,it_ece_inequil) = reshape(psi_at_routzout,length(iok),length(it_ece_inequil)); + rhopsinorm_out(iok,it_ece_inequil) = sqrt(abs((psi_out(iok,it_ece_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil)))); + for it_cx=1:length(it_ece_inequil) + rhotornorm_out(iok,it_ece_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out(iok,it_ece_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out(iok,it_ece_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out(iok,it_ece_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + end end trace.rhos.psi_on_rztime = psi_out; trace.rhos.rhopsinorm_on_rztime = rhopsinorm_out; @@ -848,10 +848,10 @@ switch AUGkeywrdcase{index} trace.rhos.t = trace.R.t; end - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'cxrs', 'cxrs_rho'} % LOAD CEZ data - % + % shotfile_exp_eff = AUGexplocation{index}; @@ -889,39 +889,39 @@ switch AUGkeywrdcase{index} cxrs.ti_c.error = aerr.value; % if strcmp(AUGkeywrdcase{index},'cxrs_rho') - equil=gdat(shot,'equil',0); - inb_chord_cxrs=size(cxrs.r_time,1); - inb_time_cxrs=size(cxrs.r_time,2); - psi_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhopsinorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhotornorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhovolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] - time_equil=[1.5*equil.t(1)-0.5*equil.t(2) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) 1.5*equil.t(end)-0.5*equil.t(end-1)]; - iok=find(cxrs.r_time(:,1)>0); - for itequil=1:length(time_equil)-1 - rr=equil.Rmesh(:,itequil); - zz=equil.Zmesh(:,itequil); - psirz_in = equil.psi2D(:,:,itequil); - it_cxrs_inequil = find(cxrs.t>=time_equil(itequil) & cxrs.t<=time_equil(itequil+1)); - if ~isempty(it_cxrs_inequil) - rout=cxrs.r_time(iok,it_cxrs_inequil); - zout=cxrs.z_time(iok,it_cxrs_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); - psi_out(iok,it_cxrs_inequil) = reshape(psi_at_routzout,length(iok),length(it_cxrs_inequil)); - rhopsinorm_out(iok,it_cxrs_inequil) = sqrt((psi_out(iok,it_cxrs_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_cxrs_inequil) - rhotornorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); - end - end - end - cxrs.psi_on_rztime = psi_out; - cxrs.rhopsinorm_on_rztime = rhopsinorm_out; - cxrs.rhotornorm_on_rztime = rhotornorm_out; - cxrs.rhovolnorm_on_rztime = rhovolnorm_out; + equil=gdat(shot,'equil',0); + inb_chord_cxrs=size(cxrs.r_time,1); + inb_time_cxrs=size(cxrs.r_time,2); + psi_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhopsinorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhotornorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhovolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] + time_equil=[1.5*equil.t(1)-0.5*equil.t(2) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) 1.5*equil.t(end)-0.5*equil.t(end-1)]; + iok=find(cxrs.r_time(:,1)>0); + for itequil=1:length(time_equil)-1 + rr=equil.Rmesh(:,itequil); + zz=equil.Zmesh(:,itequil); + psirz_in = equil.psi2D(:,:,itequil); + it_cxrs_inequil = find(cxrs.t>=time_equil(itequil) & cxrs.t<=time_equil(itequil+1)); + if ~isempty(it_cxrs_inequil) + rout=cxrs.r_time(iok,it_cxrs_inequil); + zout=cxrs.z_time(iok,it_cxrs_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); + psi_out(iok,it_cxrs_inequil) = reshape(psi_at_routzout,length(iok),length(it_cxrs_inequil)); + rhopsinorm_out(iok,it_cxrs_inequil) = sqrt((psi_out(iok,it_cxrs_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_cxrs_inequil) + rhotornorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + end + cxrs.psi_on_rztime = psi_out; + cxrs.rhopsinorm_on_rztime = rhopsinorm_out; + cxrs.rhotornorm_on_rztime = rhotornorm_out; + cxrs.rhovolnorm_on_rztime = rhovolnorm_out; end - + trace = cxrs; else trace.data = []; @@ -932,9 +932,9 @@ switch AUGkeywrdcase{index} trace.units = []; trace.name=[num2str(shot) '/' ppftype '/' 'vrot, Ti_c,...']; end - - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - case {'neterho'} % 'nerho', 'terho', + + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + case {'neterho'} % 'nerho', 'terho', % LOAD VTA data % Vertical Thomson core and edge @@ -943,7 +943,7 @@ switch AUGkeywrdcase{index} trace.t=[]; trace.x=[]; ppftype='VTA'; - % if strcmp(AUGkeywrdcase{index},'terho') + % if strcmp(AUGkeywrdcase{index},'terho') [a,e]=rdaAUG_eff(shot,ppftype,'Te_c',shotfile_exp_eff); if isempty(a) || e~=0 thomson = struct([]); @@ -997,67 +997,67 @@ switch AUGkeywrdcase{index} thomson.z_edge_time = z_time.value' * ones(1,size(thomson.te_edge.value,2)); % if strcmp(AUGkeywrdcase{index},'neterho') - equil=gdat(shot,'equil',0); - % core - inb_chord_thomson_core=size(thomson.r_core_time,1); - inb_time_thomson_core=size(thomson.r_core_time,2); - psi_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); - rhopsinorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); - rhotornorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); - rhovolnorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); - % edge - inb_chord_thomson_edge=size(thomson.r_edge_time,1); - inb_time_thomson_edge=size(thomson.r_edge_time,2); - psi_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); - rhopsinorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); - rhotornorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); - rhovolnorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); - % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] - time_equil=[1.5*equil.t(1)-0.5*equil.t(2) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) 1.5*equil.t(end)-0.5*equil.t(end-1)]; - for itequil=1:length(time_equil)-1 - rr=equil.Rmesh(:,itequil); - zz=equil.Zmesh(:,itequil); - psirz_in = equil.psi2D(:,:,itequil); - it_thomson_core_inequil = find(thomson.time_core>=time_equil(itequil) & thomson.time_core<=time_equil(itequil+1)); - if ~isempty(it_thomson_core_inequil) - rout_core=thomson.r_core_time(:,it_thomson_core_inequil); - zout_core=thomson.z_core_time(:,it_thomson_core_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_core,zout_core); - psi_out_core(:,it_thomson_core_inequil) = reshape(psi_at_routzout,inb_chord_thomson_core,length(it_thomson_core_inequil)); - rhopsinorm_out_core(:,it_thomson_core_inequil) = sqrt((psi_out_core(:,it_thomson_core_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_thomson_core_inequil) - rhotornorm_out_core(:,it_thomson_core_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out_core(:,it_thomson_core_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out_core(:,it_thomson_core_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out_core(:,it_thomson_core_inequil(it_cx)),-3,[2 2],[0 1]); - end - end - % edge - it_thomson_edge_inequil = find(thomson.time_edge>=time_equil(itequil) & thomson.time_edge<=time_equil(itequil+1)); - if ~isempty(it_thomson_edge_inequil) - rout_edge=thomson.r_edge_time(:,it_thomson_edge_inequil); - zout_edge=thomson.z_edge_time(:,it_thomson_edge_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_edge,zout_edge); - psi_out_edge(:,it_thomson_edge_inequil) = reshape(psi_at_routzout,inb_chord_thomson_edge,length(it_thomson_edge_inequil)); - rhopsinorm_out_edge(:,it_thomson_edge_inequil) = sqrt((psi_out_edge(:,it_thomson_edge_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_thomson_edge_inequil) - rhotornorm_out_edge(:,it_thomson_edge_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out_edge(:,it_thomson_edge_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out_edge(:,it_thomson_edge_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out_edge(:,it_thomson_edge_inequil(it_cx)),-3,[2 2],[0 1]); - end - end - end - thomson.core_psi_on_rztime = psi_out_core; - thomson.core_rhopsinorm_on_rztime = rhopsinorm_out_core; - thomson.core_rhotornorm_on_rztime = rhotornorm_out_core; - thomson.core_rhovolnorm_on_rztime = rhovolnorm_out_core; - thomson.edge_psi_on_rztime = psi_out_edge; - thomson.edge_rhopsinorm_on_rztime = rhopsinorm_out_edge; - thomson.edge_rhotornorm_on_rztime = rhotornorm_out_edge; - thomson.edge_rhovolnorm_on_rztime = rhovolnorm_out_edge; + equil=gdat(shot,'equil',0); + % core + inb_chord_thomson_core=size(thomson.r_core_time,1); + inb_time_thomson_core=size(thomson.r_core_time,2); + psi_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); + rhopsinorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); + rhotornorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); + rhovolnorm_out_core = NaN*ones(inb_chord_thomson_core,inb_time_thomson_core); + % edge + inb_chord_thomson_edge=size(thomson.r_edge_time,1); + inb_time_thomson_edge=size(thomson.r_edge_time,2); + psi_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); + rhopsinorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); + rhotornorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); + rhovolnorm_out_edge = NaN*ones(inb_chord_thomson_edge,inb_time_thomson_edge); + % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] + time_equil=[1.5*equil.t(1)-0.5*equil.t(2) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) 1.5*equil.t(end)-0.5*equil.t(end-1)]; + for itequil=1:length(time_equil)-1 + rr=equil.Rmesh(:,itequil); + zz=equil.Zmesh(:,itequil); + psirz_in = equil.psi2D(:,:,itequil); + it_thomson_core_inequil = find(thomson.time_core>=time_equil(itequil) & thomson.time_core<=time_equil(itequil+1)); + if ~isempty(it_thomson_core_inequil) + rout_core=thomson.r_core_time(:,it_thomson_core_inequil); + zout_core=thomson.z_core_time(:,it_thomson_core_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_core,zout_core); + psi_out_core(:,it_thomson_core_inequil) = reshape(psi_at_routzout,inb_chord_thomson_core,length(it_thomson_core_inequil)); + rhopsinorm_out_core(:,it_thomson_core_inequil) = sqrt((psi_out_core(:,it_thomson_core_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_thomson_core_inequil) + rhotornorm_out_core(:,it_thomson_core_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out_core(:,it_thomson_core_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out_core(:,it_thomson_core_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out_core(:,it_thomson_core_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + % edge + it_thomson_edge_inequil = find(thomson.time_edge>=time_equil(itequil) & thomson.time_edge<=time_equil(itequil+1)); + if ~isempty(it_thomson_edge_inequil) + rout_edge=thomson.r_edge_time(:,it_thomson_edge_inequil); + zout_edge=thomson.z_edge_time(:,it_thomson_edge_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_edge,zout_edge); + psi_out_edge(:,it_thomson_edge_inequil) = reshape(psi_at_routzout,inb_chord_thomson_edge,length(it_thomson_edge_inequil)); + rhopsinorm_out_edge(:,it_thomson_edge_inequil) = sqrt((psi_out_edge(:,it_thomson_edge_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_thomson_edge_inequil) + rhotornorm_out_edge(:,it_thomson_edge_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopsinorm_out_edge(:,it_thomson_edge_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out_edge(:,it_thomson_edge_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopsinorm_out_edge(:,it_thomson_edge_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + end + thomson.core_psi_on_rztime = psi_out_core; + thomson.core_rhopsinorm_on_rztime = rhopsinorm_out_core; + thomson.core_rhotornorm_on_rztime = rhotornorm_out_core; + thomson.core_rhovolnorm_on_rztime = rhovolnorm_out_core; + thomson.edge_psi_on_rztime = psi_out_edge; + thomson.edge_rhopsinorm_on_rztime = rhopsinorm_out_edge; + thomson.edge_rhotornorm_on_rztime = rhotornorm_out_edge; + thomson.edge_rhovolnorm_on_rztime = rhovolnorm_out_edge; end - + trace = thomson; else trace.data = []; @@ -1068,12 +1068,12 @@ switch AUGkeywrdcase{index} trace.units = []; trace.name=[num2str(shot) '/' ppftype '/' tracename]; end - - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'te', 'ne'} shotfile_exp_eff = AUGexplocation{index} - + if strcmp(AUGkeywrdcase{index},'te') [a,e]=rdaAUG_eff(shot,'YPR','Te',shotfile_exp_eff); else @@ -1091,9 +1091,9 @@ switch AUGkeywrdcase{index} % In shotfiles time is 1st index in 2D arrays while gdat convention is to have time as last dimension % so change equil.xxx to (rho,time) on the way... - + shotfile_exp_eff = AUGexplocation{index}; - + if strcmp(AUGkeywrdcase{index},'equil_fpp') || strcmp(AUGkeywrdcase{index},'qrho_fpp') DIAG = 'FPP'; elseif strcmp(AUGkeywrdcase{index},'equil_eqm') @@ -1193,9 +1193,9 @@ switch AUGkeywrdcase{index} ijok=find(qpsi.value(:,1)); % note: eqr fills in only odd points radially % set NaNs to zeroes if qpsi.value(ijok(1),1)<0 - equil.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); + equil.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); else - equil.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); + equil.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); end % get x values equil.psi(:,it)=psi_tree.value(it,Lpf1:-1:1)'; @@ -1203,74 +1203,74 @@ switch AUGkeywrdcase{index} equil.psi_lcfs(it)= equil.psi(end,it); equil.rhopolnorm(:,it) = sqrt(abs((equil.psi(:,it)-equil.psi_axis(it)) ./(equil.psi_lcfs(it)-equil.psi_axis(it)))); if strcmp(DIAG,'EQR'); - % q value has only a few values and from center to edge, assume they are from central rhopol values on - % But they are every other point starting from 3rd - ijk=find(equil.qvalue(:,it)~=0); - if length(ijk)>2 - % now shots have non-zero axis values in eqr - rhoeff=equil.rhopolnorm(ijk,it); - qeff=equil.qvalue(ijk,it); % radial order was already inverted above - if ijk(1)>1 - rhoeff = [0.; rhoeff]; - qeff = [qeff(1) ;qeff]; - end - ij_nonan=find(~isnan(equil.rhopolnorm(:,it))); - qfit = zeros(size(equil.rhopolnorm(:,it))); - qfit(ij_nonan)=interpos(rhoeff,qeff,equil.rhopolnorm(ij_nonan,it),-0.01,[1 0],[0 0],[300; ones(size(qeff(1:end-1)))]); - else - qfit = zeros(size(equil.rhopolnorm(:,it))); - end - equil.qvalue(:,it) = qfit; - end + % q value has only a few values and from center to edge, assume they are from central rhopol values on + % But they are every other point starting from 3rd + ijk=find(equil.qvalue(:,it)~=0); + if length(ijk)>2 + % now shots have non-zero axis values in eqr + rhoeff=equil.rhopolnorm(ijk,it); + qeff=equil.qvalue(ijk,it); % radial order was already inverted above + if ijk(1)>1 + rhoeff = [0.; rhoeff]; + qeff = [qeff(1) ;qeff]; + end + ij_nonan=find(~isnan(equil.rhopolnorm(:,it))); + qfit = zeros(size(equil.rhopolnorm(:,it))); + qfit(ij_nonan)=interpos(rhoeff,qeff,equil.rhopolnorm(ij_nonan,it),-0.01,[1 0],[0 0],[300; ones(size(qeff(1:end-1)))]); + else + qfit = zeros(size(equil.rhopolnorm(:,it))); + end + equil.qvalue(:,it) = qfit; + end % get rhotor values equil.phi(:,it) = phi_tree.value(it,Lpf1:-1:1)'; equil.rhotornorm(:,it) = sqrt(abs(equil.phi(:,it) ./ equil.phi(end,it))); % get rhovol values - equil.vol(:,it)=Vol.value(it,2*Lpf1-1:-2:1)'; + equil.vol(:,it)=Vol.value(it,2*Lpf1-1:-2:1)'; equil.dvoldpsi(:,it)=Vol.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi equil.rhovolnorm(:,it) = sqrt(abs(equil.vol(:,it) ./ equil.vol(end,it))); - equil.area(:,it)=Area.value(it,2*Lpf1-1:-2:1)'; + equil.area(:,it)=Area.value(it,2*Lpf1-1:-2:1)'; equil.dareadpsi(:,it)=Area.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi equil.Rmesh(:,it) = Ri.value(it,1:M_Rmesh); equil.Zmesh(:,it) = Zj.value(it,1:N_Zmesh); equil.psi2D(1:M_Rmesh,1:N_Zmesh,it) = PFM_tree.value(1:M_Rmesh,1:N_Zmesh,it); - equil.pressure(:,it)=Pres.value(it,2*Lpf1-1:-2:1)'; + equil.pressure(:,it)=Pres.value(it,2*Lpf1-1:-2:1)'; equil.dpressuredpsi(:,it)=Pres.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi if ~isempty(Jpol.value) - equil.jpol(:,it)=Jpol.value(it,2*Lpf1-1:-2:1)'; - equil.djpolpsi(:,it)=Jpol.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi + equil.jpol(:,it)=Jpol.value(it,2*Lpf1-1:-2:1)'; + equil.djpolpsi(:,it)=Jpol.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi else - equil.jpol = []; - equil.djpolpsi = []; + equil.jpol = []; + equil.djpolpsi = []; end equil.ffprime(:,it) = FFP.value(it,Lpf1:-1:1)'; equil.Xpoints.psi(1:LPFx.value(it)+1,it) = PFxx.value(it,1:LPFx.value(it)+1); equil.Xpoints.Rvalue(1:LPFx.value(it)+1,it) = RPFx.value(it,1:LPFx.value(it)+1); equil.Xpoints.Zvalue(1:LPFx.value(it)+1,it) = zPFx.value(it,1:LPFx.value(it)+1); if ~isempty(Rinv.value) - equil.rinv(:,it) = Rinv.value(it,Lpf1:-1:1)'; + equil.rinv(:,it) = Rinv.value(it,Lpf1:-1:1)'; else - equil.rinv = []; + equil.rinv = []; end if ~isempty(R2inv.value) - equil.r2inv(:,it) = R2inv.value(it,Lpf1:-1:1)'; + equil.r2inv(:,it) = R2inv.value(it,Lpf1:-1:1)'; else - equil.r2inv = []; + equil.r2inv = []; end if ~isempty(Bave.value) - equil.bave(:,it) = Bave.value(it,Lpf1:-1:1)'; + equil.bave(:,it) = Bave.value(it,Lpf1:-1:1)'; else - equil.bave = []; + equil.bave = []; end if ~isempty(B2ave.value) - equil.b2ave(:,it) = B2ave.value(it,Lpf1:-1:1)'; + equil.b2ave(:,it) = B2ave.value(it,Lpf1:-1:1)'; else - equil.b2ave = []; + equil.b2ave = []; end if ~isempty(FTRA.value) - equil.ftra(:,it) = FTRA.value(it,Lpf1:-1:1)'; + equil.ftra(:,it) = FTRA.value(it,Lpf1:-1:1)'; else - equil.ftra = []; + equil.ftra = []; end % end @@ -1297,10 +1297,10 @@ switch AUGkeywrdcase{index} trace.dimunits{1} = ''; trace.dimunits{2} = 's'; - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'pgyro'} % LOAD MULTI CHANNEL DATA ECS - % powers, frequencies, etc + % powers, frequencies, etc shotfile_exp_eff = AUGexplocation{index}; @@ -1324,94 +1324,94 @@ switch AUGkeywrdcase{index} [a,e]=rdaAUG_eff(shot,ppftype,tracename_eff,shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.ecrh1(i) = a; - trace_all.pgyro(:,i) = reshape(a.data,nb_timepoints,1); + trace_all.ecrh1(i) = a; + trace_all.pgyro(:,i) = reshape(a.data,nb_timepoints,1); end try - a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]); + a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]); catch - % gyr_freq not present (old shots for example) - a=[]; + % gyr_freq not present (old shots for example) + a=[]; end if isempty(a) else - trace_all.freq_ecrh1(i) = a; - trace_all.freq_ech(i) = a.value; + trace_all.freq_ecrh1(i) = a; + trace_all.freq_ech(i) = a.value; end try - a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]); + a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]); catch - % GPolPos not present - a=[]; + % GPolPos not present + a=[]; end if isempty(a) else - trace_all.polpos_ecs(i) = a.value; + trace_all.polpos_ecs(i) = a.value; end try - a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]); + a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]); catch - a=[]; + a=[]; end if isempty(a) else - trace_all.torpos_ecs(i) = a.value; + trace_all.torpos_ecs(i) = a.value; end % "new" ECRH2 gyrotrons: gyro 5 to 8 in pgyro tracename_eff = ['PG' num2str(i) 'N']; [a,e]=rdaAUG_eff(shot,ppftype,tracename_eff,shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.ecrh2(i) = a; - trace_all.pgyro(:,i+4) = reshape(a.data,nb_timepoints,1); + trace_all.ecrh2(i) = a; + trace_all.pgyro(:,i+4) = reshape(a.data,nb_timepoints,1); end try - a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]); + a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]); catch - a=[]; + a=[]; end if isempty(a) else - trace_all.freq_ecrh2(i) = a; - trace_all.freq_ech(i+4) = a.value; + trace_all.freq_ecrh2(i) = a; + trace_all.freq_ech(i+4) = a.value; end try - a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]); + a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]); catch - a=[]; + a=[]; end if isempty(a) else - trace_all.polpos_ecs(i+4) = a.value; + trace_all.polpos_ecs(i+4) = a.value; end try - a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]); + a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]); catch - a=[]; + a=[]; end if isempty(a) else - trace_all.torpos_ecs(i+4) = a.value; + trace_all.torpos_ecs(i+4) = a.value; end [a,e]=rdaAUG_eff(shot,'ECN',['G' num2str(i) 'POL'],shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.gpol_ecn(i+4) = a; + trace_all.gpol_ecn(i+4) = a; end [a,e]=rdaAUG_eff(shot,'ECN',['G' num2str(i) 'TOR'],shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.gtor_ecn(i+4) = a; + trace_all.gtor_ecn(i+4) = a; end [a,e]=rdaAUG_eff(shot,'ECN',['G' num2str(i) 'PO4'],shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.gpo4_ecn(i+4) = a; + trace_all.gpo4_ecn(i+4) = a; end [a,e]=rdaAUG_eff(shot,'ECN',['G' num2str(i) 'PO8'],shotfile_exp_eff); if isempty(a) || e~=0 else - trace_all.gpo8_ecn(i+4) = a; + trace_all.gpo8_ecn(i+4) = a; end end if ~isempty(trace_all) @@ -1431,13 +1431,13 @@ switch AUGkeywrdcase{index} trace.t = []; trace.units = []; trace.freq_ech_units =[]'; - trace.name=[num2str(shot) '/' ppftype '/' 'PGi and PGiN']; + trace.name=[num2str(shot) '/' ppftype '/' 'PGi and PGiN']; end - - %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'powers'} % load powers from TOT timebase as well - % + % shotfile_exp_eff = AUGexplocation{index}; @@ -1519,10 +1519,10 @@ switch AUGkeywrdcase{index} trace.t = []; trace.units = []; trace.freq_ech_units =[]'; - trace.name=[num2str(shot) '/' ppftype '/' 'P_OH, PNBI_TOT, PECR_TOT, PICR_TOT']; + trace.name=[num2str(shot) '/' ppftype '/' 'P_OH, PNBI_TOT, PECR_TOT, PICR_TOT']; end -%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'transp'} % for TRANSP % LOAD TRA data into substructures shotfile_exp_eff = AUGexplocation{index} @@ -1535,31 +1535,31 @@ switch AUGkeywrdcase{index} TRANSP_signals; for i=1:size(transp_sig,1) if strcmp(lower(transp_sig{i,2}),'signal') || strcmp(lower(transp_sig{i,2}),'signal-group') - try - eval(['[trace.' transp_sig{i,1} ',e]=rdaAUG_eff(shot,ppftype,''' transp_sig{i,1} ''',shotfile_exp_eff);']); - catch - eval(['trace.' transp_sig{i,1} '=[];']); - end + try + eval(['[trace.' transp_sig{i,1} ',e]=rdaAUG_eff(shot,ppftype,''' transp_sig{i,1} ''',shotfile_exp_eff);']); + catch + eval(['trace.' transp_sig{i,1} '=[];']); + end elseif strcmp(lower(transp_sig{i,2}),'area-base') - clear adata_area - try - [adata_area]=sf2ab(ppftype,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); - catch - adata_area.value = cell(0); - end - eval(['trace.' transp_sig{i,1} '=adata_area;']); + clear adata_area + try + [adata_area]=sf2ab(ppftype,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); + catch + adata_area.value = cell(0); + end + eval(['trace.' transp_sig{i,1} '=adata_area;']); elseif strcmp(lower(transp_sig{i,2}),'time-base') - clear adata_time - try - [adata_time]=sf2tb(ppftype,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); - catch - adata_time.value = cell(0); - end - eval(['trace.' transp_sig{i,1} '=adata_time;']); + clear adata_time + try + [adata_time]=sf2tb(ppftype,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); + catch + adata_time.value = cell(0); + end + eval(['trace.' transp_sig{i,1} '=adata_time;']); end end otherwise disp('case not yet defined') - + end diff --git a/matlab/AUG/plot_torbeam.m b/matlab/AUG/plot_torbeam.m index 2943eb9056773eab5fcb6eecfdb8e3347b60057b..a8a0955c133cba958da8eb176db0183a1d56481e 100644 --- a/matlab/AUG/plot_torbeam.m +++ b/matlab/AUG/plot_torbeam.m @@ -28,7 +28,7 @@ if nargin >= 2 h_for_waitfor=figure; global field_chosen h1=uicontrol('Style','listbox','string',tb_fields,'pos',[20 20 200 300],'Max',20, ... - 'callback', ['global field_chosen;field_chosen=get(gcbo,''value'') ;']); + 'callback', ['global field_chosen;field_chosen=get(gcbo,''value'') ;']); h2=uicontrol('Style','text','pos',[20 330 200 30],'string','choose fields to plot (ctrl-enter for multiple choices) then quit'); h3=uicontrol('Style','pushbutton','string','quit','pos',[300 20 30 20],'callback', ['close gcf;']); waitfor(h_for_waitfor); diff --git a/matlab/AUG/rdaAUG_eff.m b/matlab/AUG/rdaAUG_eff.m index d1ac063d39559dd2bee11f50758cffaf606ad2c8..e023ab44a0b16e22b32d6d2f24cc63afe63c61b6 100644 --- a/matlab/AUG/rdaAUG_eff.m +++ b/matlab/AUG/rdaAUG_eff.m @@ -90,15 +90,15 @@ time_base=false; time_base_name=[]; time_base_dimof=[]; if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... - && length(varargin_eff{3})>=7 && strcmp(lower(varargin_eff{3}(1:6)),'param:') + && length(varargin_eff{3})>=7 && strcmp(lower(varargin_eff{3}(1:6)),'param:') param_name=varargin_eff{3}(7:end); end if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... - && length(varargin_eff{3})>=11 && strcmp(lower(varargin_eff{3}(1:10)),'param-set:') + && length(varargin_eff{3})>=11 && strcmp(lower(varargin_eff{3}(1:10)),'param-set:') param_set_name=varargin_eff{3}(11:end); end if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... - && length(varargin_eff{3})>=9 && strcmp(lower(varargin_eff{3}(1:9)),'area-base') + && length(varargin_eff{3})>=9 && strcmp(lower(varargin_eff{3}(1:9)),'area-base') area_base = true; ij=findstr(varargin_eff{3},':'); if length(ij)==2 @@ -109,7 +109,7 @@ if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... end end if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... - && length(varargin_eff{3})>=9 && strcmp(lower(varargin_eff{3}(1:9)),'time-base') + && length(varargin_eff{3})>=9 && strcmp(lower(varargin_eff{3}(1:9)),'time-base') time_base = true; ij=findstr(varargin_eff{3},':'); if length(ij)==2 @@ -166,7 +166,7 @@ if usemdsplus if isempty(param_name) && isempty(param_set_name) && ~area_base && ~time_base % use augsignal to get effective layout as in ISIS and sf2sig, for example for EQI/PFM eval(['[data,error]=mdsvalue(''_rdaeff' user diagname '=augsignal(' num2str(shot) ',"' diagname '","' sigtype '","' shotfile_exp ... - '",' ed_number ',' tstart ',' tend ',_oshot' user diagname ',_oed' user diagname ',' ask_raw ')'');']); + '",' ed_number ',' tstart ',' tend ',_oshot' user diagname ',_oed' user diagname ',' ask_raw ')'');']); if isnumeric(data) data=double(data); end @@ -242,42 +242,42 @@ if usemdsplus if prod(ss)==length(data); nbofdim=1; end nbofdim=max(nbofdim,1); switch nbofdim - case 1 - adata.data=reshape(adata.data,1,length(adata.data)); - idim0 = 0; - eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']); - if numel(time) ~= numel(adata.data) - idim0 = 1; + case 1 + adata.data=reshape(adata.data,1,length(adata.data)); + idim0 = 0; eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']); - if numel(time) ~= numel(adata.data) && (ischar(adata.data) && isempty(strfind(lower(adata.data),'abort'))) - warning(['problem with dim for: ' diagname ', ' sigtype]) + if numel(time) ~= numel(adata.data) + idim0 = 1; + eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']); + if numel(time) ~= numel(adata.data) && (ischar(adata.data) && isempty(strfind(lower(adata.data),'abort'))) + warning(['problem with dim for: ' diagname ', ' sigtype]) + end end - end - time = reshape(time,1,length(time)); - x=[]; - adata.dim = {time}; - eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim0) '))'');']); - adata.dimunits = {tunits}; - case 2 - if strcmp(upper(diagname),'IDA') && ~usemdsplus - % rho, time in original dimension, so do not transpose (seems different with mdsplus... to check) - idim_x = 0; - idim_t = 1; - else - adata.data = adata.data'; - did_transpose = 1; - idim_x = 1; - idim_t = 0; - end - % transposed because of C relation and backward compatibility with sf2sig part - eval(['x=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim_x) ')'');']); - if prod(size(x))==length(x); x = reshape(x,1,length(x)); end - eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim_t) ')'');']); - time = reshape(time,1,length(time)); - adata.dim = {x, time}; - eval(['xunits=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim_x) '))''));']); - eval(['tunits=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim_t) '))''));']); - adata.dimunits = {xunits, tunits}; + time = reshape(time,1,length(time)); + x=[]; + adata.dim = {time}; + eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim0) '))'');']); + adata.dimunits = {tunits}; + case 2 + if strcmp(upper(diagname),'IDA') && ~usemdsplus + % rho, time in original dimension, so do not transpose (seems different with mdsplus... to check) + idim_x = 0; + idim_t = 1; + else + adata.data = adata.data'; + did_transpose = 1; + idim_x = 1; + idim_t = 0; + end + % transposed because of C relation and backward compatibility with sf2sig part + eval(['x=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim_x) ')'');']); + if prod(size(x))==length(x); x = reshape(x,1,length(x)); end + eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim_t) ')'');']); + time = reshape(time,1,length(time)); + adata.dim = {x, time}; + eval(['xunits=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim_x) '))''));']); + eval(['tunits=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim_t) '))''));']); + adata.dimunits = {xunits, tunits}; % $$$ case 3 % $$$ eval(['x=mdsvalue(''dim_of(_rdaeff' user diagname ',0)'');']); @@ -307,20 +307,20 @@ if usemdsplus % $$$ hsigunits = adata.dimunits{ihsig}; % $$$ adata.dimunits = {xunits, tunits, hsigunits}; - otherwise - itime = 1; % default - for i=1:nbofdim - eval(['dimarray=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(i-1) ')'');']); - if prod(size(dimarray)) == length(dimarray) - eval(['adata.dim{' num2str(i) '}=reshape(dimarray,1,length(dimarray));']); - else + otherwise + itime = 1; % default + for i=1:nbofdim + eval(['dimarray=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(i-1) ')'');']); + if prod(size(dimarray)) == length(dimarray) + eval(['adata.dim{' num2str(i) '}=reshape(dimarray,1,length(dimarray));']); + else eval(['adata.dim{' num2str(i) '} = dimarray;']); + end + eval(['adata.dimunits{' num2str(i) '}=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(i-1) '))''));']); + if strcmp(adata.dimunits{i},'s'); itime = i; end end - eval(['adata.dimunits{' num2str(i) '}=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(i-1) '))''));']); - if strcmp(adata.dimunits{i},'s'); itime = i; end - end - x = adata.dim{min(setdiff([1:2],itime))}; - time = adata.dim{itime}; + x = adata.dim{min(setdiff([1:2],itime))}; + time = adata.dim{itime}; end adata.value = adata.data; % for backward compatibility might need to keep .value, to be checked later, .data for sure @@ -346,7 +346,7 @@ else else [adata,adata_time, adata_area]=sf2sig(diagname,shot,sigtype,'-exp',shotfile_exp); end - adata.data = adata.value; % at this stage keep both but try to work only on .data + adata.data = adata.value; % at this stage keep both but try to work only on .data catch ME throw(ME) end @@ -358,7 +358,7 @@ else else [adata,adata_time, adata_area]=sf2sig(diagname,shot,sigtype,[time_int(1);time_int(end)],'-exp',shotfile_exp); end - adata.data = adata.value; % at this stage keep both but try to work only on .data (for adata which can be from sf2.. or mds) + adata.data = adata.value; % at this stage keep both but try to work only on .data (for adata which can be from sf2.. or mds) catch ME throw(ME) end @@ -444,13 +444,13 @@ else end end adata.units = adata.unit; -elseif isempty(param_set_name) && ~area_base && ~time_base + elseif isempty(param_set_name) && ~area_base && ~time_base % use sf2par try if ~isempty(extra_arg_sf2sig) && ~strcmp(extra_arg_sf2sig,'[]') - eval(['[adata]=sf2par(diagname,shot,param_name,sigtype,''-exp'',shotfile_exp,' extra_arg_sf2sig ');']); + eval(['[adata]=sf2par(diagname,shot,param_name,sigtype,''-exp'',shotfile_exp,' extra_arg_sf2sig ');']); else - eval(['[adata]=sf2par(diagname,shot,param_name,sigtype,''-exp'',shotfile_exp);']); + eval(['[adata]=sf2par(diagname,shot,param_name,sigtype,''-exp'',shotfile_exp);']); end adata.data = adata.value; catch ME @@ -460,9 +460,9 @@ elseif isempty(param_set_name) && ~area_base && ~time_base % use sf2ps try if ~isempty(extra_arg_sf2sig) && ~strcmp(extra_arg_sf2sig,'[]') - eval(['[adata]=sf2ps(diagname,shot,param_set_name,sigtype,''-exp'',shotfile_exp,' extra_arg_sf2sig ');']); + eval(['[adata]=sf2ps(diagname,shot,param_set_name,sigtype,''-exp'',shotfile_exp,' extra_arg_sf2sig ');']); else - eval(['[adata]=sf2ps(diagname,shot,param_set_name,sigtype,''-exp'',shotfile_exp);']); + eval(['[adata]=sf2ps(diagname,shot,param_set_name,sigtype,''-exp'',shotfile_exp);']); end adata.data = adata.value; catch ME diff --git a/matlab/AUG/run_torbeam_fullshot.m b/matlab/AUG/run_torbeam_fullshot.m index cc84f4ac30cd26b25ead58fae36929d6358740d3..6b1c1fdb05de0fcdf5276fecadbf178b6877d84d 100644 --- a/matlab/AUG/run_torbeam_fullshot.m +++ b/matlab/AUG/run_torbeam_fullshot.m @@ -4,7 +4,7 @@ function [torbeam_out_struct, file_out_prefix]=run_torbeam_fullshot(shot,varargi % % Run tbdemo, using line command execution of TORBEAM, to run torbeam acroos full shot on reduced time axis % -% shot: shot number for which to run Torbeam. +% shot: shot number for which to run Torbeam. % If empty or not given, ask for it % if negative, assume output file exists, do not re-run TORBEAM and just reads data into structure torbeam_out_struct % @@ -32,13 +32,13 @@ if nargin>=3 && mod(length(varargin),2)==0 for i=1:2:length(varargin)-1 if ~isempty(varargin{i}) && ~isempty(varargin{i+1}) switch lower(varargin{i}) - case {'time'} - time_array = varargin{i+1}; - case {'file_prefix'} - file_out_prefix = varargin{i+1}; - otherwise - disp(['case ' lower(varargin{i}) ' not yet implemented, ask Olivier.Sauter@epfl.ch']) - return + case {'time'} + time_array = varargin{i+1}; + case {'file_prefix'} + file_out_prefix = varargin{i+1}; + otherwise + disp(['case ' lower(varargin{i}) ' not yet implemented, ask Olivier.Sauter@epfl.ch']) + return end end end @@ -74,7 +74,7 @@ if shot>0 else disp('do not use IDA since shotfile does not seem to exist') end - + for igyro=1:8 filename=[file_out_prefix num2str(igyro) '.dat']; unix(['rm ' filename ' >& /dev/null']); % since cannot write over an existing file by default @@ -84,14 +84,14 @@ if shot>0 if ~isempty(itt) itt_tok=find(time_array>=pgyro.t(itt(1)) & time_array<=pgyro.t(itt(end))); if ~isempty(itt_tok) - pgyro_tok=interp1(pgyro.data(itt,igyro),time_array(itt_tok)); - disp(['running system ' num2str(igyro) '...']); - for j=1:length(itt_tok) - if pgyro_tok(j)>1e5 - [a,b]=unix(['~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm ' dousedcr ' ' dousebetapol ' -eqdiag EQI -usemirror -cdrive 1 >> ' ['.' filename]]); % -exp AUGE - end - end - [a,b]=unix(['egrep -e ''^Shot''' ' .' filename ' > ' filename]); + pgyro_tok=interp1(pgyro.data(itt,igyro),time_array(itt_tok)); + disp(['running system ' num2str(igyro) '...']); + for j=1:length(itt_tok) + if pgyro_tok(j)>1e5 + [a,b]=unix(['~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm ' dousedcr ' ' dousebetapol ' -eqdiag EQI -usemirror -cdrive 1 >> ' ['.' filename]]); % -exp AUGE + end + end + [a,b]=unix(['egrep -e ''^Shot''' ' .' filename ' > ' filename]); end end end @@ -100,16 +100,16 @@ end for igyro=1:8 try eval(['[shot_tbnam,tbout{igyro}.shot,time_tbnam,tbout{igyro}.time,gyro_tbnam,tbout{igyro}.gyro,pol_tbnam,tbout{igyro}.pol,tor_tbnam,tbout{igyro}.tor,' ... - 'pow_tbnam,tbout{igyro}.pow,r_tbnam,tbout{igyro}.r,z_tbnam,tbout{igyro}.z,rho_tbnam,tbout{igyro}.rhopol_dep,pwr_dep_tbnam,tbout{igyro}.rhopol_pwr_dep,rhopol_cd_dep_tbnam,tbout{igyro}.rhopol_cd_dep,pdens_peak_tbnam,' ... - 'tbout{igyro}.pdens_peak,rhopol_pdens_wid_tbnam,tbout{igyro}.rhopol_pdens_width,jcd_peak_tbnam,tbout{igyro}.jcd_peak,rhopol_c_wid_tbnam,tbout{igyro}.rhopol_jcd_width,pni_tbnam,tbout{igyro}.pni,picr_tbnam,tbout{igyro}.picr,prad_tbnam,tbout{igyro}.prad,' ... - 'betan_tbnam,tbout{igyro}.betan,ipl_tbnam,tbout{igyro}.ipl,bt_tbnam,tbout{igyro}.bt,a1_tbnam,tbout{igyro}.ampN1,a2_tbnam,tbout{igyro}.ampN2,rhopolntm_tbnam,tbout{igyro}.rhopolntm]=' ... - 'textread(''' file_out_prefix num2str(igyro) '.dat'',''%s%d%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f'');']); + 'pow_tbnam,tbout{igyro}.pow,r_tbnam,tbout{igyro}.r,z_tbnam,tbout{igyro}.z,rho_tbnam,tbout{igyro}.rhopol_dep,pwr_dep_tbnam,tbout{igyro}.rhopol_pwr_dep,rhopol_cd_dep_tbnam,tbout{igyro}.rhopol_cd_dep,pdens_peak_tbnam,' ... + 'tbout{igyro}.pdens_peak,rhopol_pdens_wid_tbnam,tbout{igyro}.rhopol_pdens_width,jcd_peak_tbnam,tbout{igyro}.jcd_peak,rhopol_c_wid_tbnam,tbout{igyro}.rhopol_jcd_width,pni_tbnam,tbout{igyro}.pni,picr_tbnam,tbout{igyro}.picr,prad_tbnam,tbout{igyro}.prad,' ... + 'betan_tbnam,tbout{igyro}.betan,ipl_tbnam,tbout{igyro}.ipl,bt_tbnam,tbout{igyro}.bt,a1_tbnam,tbout{igyro}.ampN1,a2_tbnam,tbout{igyro}.ampN2,rhopolntm_tbnam,tbout{igyro}.rhopolntm]=' ... + 'textread(''' file_out_prefix num2str(igyro) '.dat'',''%s%d%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f'');']); % eval(['[gyro_tbnam,tbout{igyro}.gyro,shot_tbnam,tbout{igyro}.shot,time_tbnam,tbout{igyro}.time,pol_tbnam,tbout{igyro}.pol,tor_tbnam,tbout{igyro}.tor,' ... % 'pow_tbnam,tbout{igyro}.pow,r_tbnam,tbout{igyro}.r,z_tbnam,tbout{igyro}.z,pwr_dep_tbnam,tbout{igyro}.rhopol_pwr_dep,rhopol_cd_dep_tbnam,tbout{igyro}.rhopol_cd_dep,jcd_peak_tbnam,' ... % 'tbout{igyro}.jcd_peak,rhopol_c_wid_tbnam,tbout{igyro}.rhopol_c_wid,pni_tbnam,tbout{igyro}.pni,picr_tbnam,tbout{igyro}.picr,prad_tbnam,tbout{igyro}.prad,' ... - % 'betan_tbnam,tbout{igyro}.betan,ipl_tbnam,tbout{igyro}.ipl,bt_tbnam,tbout{igyro}.bt,a1_tbnam,tbout{igyro}.a1,a2_tbnam,tbout{igyro}.a2,rhopolntm_tbnam,tbout{igyro}.rhopolntm]=' ... - % 'textread(''' file_out_prefix num2str(igyro) '.dat'',''%s%d%s%d%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f'');']); + % 'betan_tbnam,tbout{igyro}.betan,ipl_tbnam,tbout{igyro}.ipl,bt_tbnam,tbout{igyro}.bt,a1_tbnam,tbout{igyro}.a1,a2_tbnam,tbout{igyro}.a2,rhopolntm_tbnam,tbout{igyro}.rhopolntm]=' ... + % 'textread(''' file_out_prefix num2str(igyro) '.dat'',''%s%d%s%d%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f%s%f'');']); catch disp(['problems reading file ' file_out_prefix num2str(igyro) '.dat: may be some errors with tbdemo, check file, skipped']) @@ -127,11 +127,11 @@ end % comments for hiytory backup: -% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -usedcr -eqdiag EQI -betapol -usemirror -cdrive 1 >> ' ['.' filename]]); +% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -usedcr -eqdiag EQI -betapol -usemirror -cdrive 1 >> ' ['.' filename]]); -% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm -usedcr -eqdiag EQI -betapol -usemirror -cdrive 1 >> ' ['.' filename]]); +% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm -usedcr -eqdiag EQI -betapol -usemirror -cdrive 1 >> ' ['.' filename]]); % -shot 29672 -time 3.0 -system 5 -batch -ntm -silent -usemirror -cdrive 1 -% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm -usemirror -cdrive 1 >> ' ['.' filename]]); +% [a,b]=unix(['ssh sxaug21.aug.ipp.mpg.de ~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm -usemirror -cdrive 1 >> ' ['.' filename]]); % [a,b]=unix(['grep -v ''could not''' ' .' filename '| grep -v ''invalid'' | grep -v ''Error'' | egrep -e ''^$'' -v > ' filename]); diff --git a/matlab/AUG/torbeam_prepare_inputs_and_run.m b/matlab/AUG/torbeam_prepare_inputs_and_run.m index efc7d853c74f58ced7e48ed255a9e4f3e0695112..295ad894da2cfdf10b7ed3e3781c289144a9f6e3 100644 --- a/matlab/AUG/torbeam_prepare_inputs_and_run.m +++ b/matlab/AUG/torbeam_prepare_inputs_and_run.m @@ -1,7 +1,7 @@ function [torbeam_out,torbeam_in,varargout] = torbeam_prepare_inputs_and_run(shot,times_in,varargin); % % [torbeam_out,torbeam_in,varargout] = torbeam_prepare_inputs_and_run(shot,times_in,varargin); -% +% % varargin{1}: torbeam_in (from a previous run, so avoids to reload all the data) % leave then times_in empty to rerun at all times in torbeam_in.inbeam.t_some_beam_on or select times points from that array % varargin{2}: source for gdat profiles/equilibrium related: [] (default sources), 'IDA' (IDA/IDE sources), {'TRA','expname'} for TRANSP @@ -93,7 +93,7 @@ if doload && (~exist('times_for_torbeam_eff') || isempty(times_for_torbeam_eff)) times_for_torbeam_eff = torbeam_in.nete.fit.t(torbeam_in.nete.fit.t>0); end % load beam releated data including theta,phi in torbeam reference -if doload, +if doload, [torbeam_in.inbeam] = read_ech_py(shot,times_for_torbeam_eff,[],tbangles_source); times_for_torbeam_eff = torbeam_in.inbeam.t_some_beam_on; else @@ -134,7 +134,7 @@ if doload; disp(['time for reading data: ' num2str(toc)]); end if doload, nb_points_prof = 46; rhofit = linspace(0,1,nb_points_prof)'; - + tb_par_fields=fieldnames(torbeam_in.inbeam.tb_par); itime_te = iround_os(torbeam_in.nete.fit.t,times_for_torbeam_eff); @@ -202,7 +202,7 @@ if doload, fprintf(fid,'%14.6f %14.6f %14.6f %14.6f %14.6f %14.6f %14.6f %14.6f\n',eqd_with_b.psi(1:nb_rmesh,1:nb_zmesh)); if mod(nb_rmesh*nb_zmesh,8) ~= 0; fprintf(fid,'\n'); end fclose(fid); - + if isempty(torbeam_in.zeff.data) || torbeam_in.prepare_run_options.zeff_default < 0. zeff_eff = abs(torbeam_in.prepare_run_options.zeff_default); else @@ -214,10 +214,10 @@ if doload, torbeam_in.fname{it}.inbeam{ibeam} = fullfile(torbeam_in.dir_torbeam,['inbeam' '_t' num2str(torbeam_in.inbeam.t_some_beam_on(it)) 'g' num2str(ibeam) '.dat']); [aa,bb]=unix(['cp /afs/ipp-garching.mpg.de/home/o/osauter/TORBEAM/inbeam_default.dat ' torbeam_in.fname{it}.inbeam{ibeam}]); fid=fopen(torbeam_in.fname{it}.inbeam{ibeam},'a'); - fprintf(fid,' xf = %f, ! wave frequency om=2*pi*xf\n',torbeam_in.inbeam.freq(ibeam)); - fprintf(fid,' nmod = %d, ! mode selection: O-mode (1), X-mode (-1)\n',torbeam_in.inbeam.rfmod(ibeam)); - fprintf(fid,' xtordeg = %f, ! geom. optics injection angle\n',torbeam_in.inbeam.phi_t(ibeam,it_inb(it))); - fprintf(fid,' xpoldeg = %f, ! geom. optics injection angle\n',torbeam_in.inbeam.theta_t(ibeam,it_inb(it))); + fprintf(fid,' xf = %f, ! wave frequency om=2*pi*xf\n',torbeam_in.inbeam.freq(ibeam)); + fprintf(fid,' nmod = %d, ! mode selection: O-mode (1), X-mode (-1)\n',torbeam_in.inbeam.rfmod(ibeam)); + fprintf(fid,' xtordeg = %f, ! geom. optics injection angle\n',torbeam_in.inbeam.phi_t(ibeam,it_inb(it))); + fprintf(fid,' xpoldeg = %f, ! geom. optics injection angle\n',torbeam_in.inbeam.theta_t(ibeam,it_inb(it))); % may be position and curvature, but get defaults from tb_gui. Check with tb_gui how several launchers are given for i=1:length(tb_par_fields) fprintf(fid,[' ' tb_par_fields{i} ' = %f,\n'],torbeam_in.inbeam.tb_par.(tb_par_fields{i})(ibeam)); @@ -230,7 +230,7 @@ if doload, end disp(['time for creating all input files: ' num2str(toc)]) end - + % run TORBEAM current_dir = pwd; eval(['cd ' torbeam_in.dir_torbeam]) diff --git a/matlab/D3D/d3d_help_parameters.m b/matlab/D3D/d3d_help_parameters.m index ec8d86a7d139db3a5d5a77e3ef1e8252b8066558..e88c176dd9ddaa9734574f5dfd6645972010821a 100644 --- a/matlab/D3D/d3d_help_parameters.m +++ b/matlab/D3D/d3d_help_parameters.m @@ -5,9 +5,9 @@ function help_struct = d3d_help_parameters(parameter_list) % % return the whole help structure if parameter_list empty or not provided % -% do: +% do: % help_struct = d3d_help_parameters(fieldnames(gdat_data.gdat_params)); -% +% % to get relevant help description % @@ -29,7 +29,7 @@ help_struct_all = struct(... % $$$ ' as well']; help_struct_all.fit_tension = ['smoothing value used in interpos fitting routine, -30 means ''30 times default value'', thus -1 often a' ... ' good value' char(10) ... - 'cxrs, nete: if numeric, default for all cases, if structure, default for non given fields']; + 'cxrs, nete: if numeric, default for all cases, if structure, default for non given fields']; help_struct_all.time = 'time(s) value(s) if relevant, for example eqdsk is provided by default only for time=1.0s'; % $$$ help_struct_all.zshift = 'vertical shift of equilibrium, either for eqdsk (1 to shift to zaxis=0) or for mapping measurements on to rho surfaces [m]'; help_struct_all.cocos = ['cocos value desired in output, uses eqdsk_cocos_transform. Note should use latter if a specific Ip and/or B0 sign' ... diff --git a/matlab/D3D/d3d_requests_mapping.m b/matlab/D3D/d3d_requests_mapping.m index 8eb80c6cbd70ab8405269fff92b77b90d362c98d..f3789d1c9ea3c580ad858d56dfa15119a416dda2 100644 --- a/matlab/D3D/d3d_requests_mapping.m +++ b/matlab/D3D/d3d_requests_mapping.m @@ -4,13 +4,13 @@ function mapping = d3d_requests_mapping(data_request) % % 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); + '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 @@ -41,100 +41,100 @@ if iscell(data_request) % || (~ischar(data_request) && length(data_request)>1) end switch lower(data_request) - case 'a_minor' - mapping.timedim = 1; - mapping.label = 'a\_minor'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\aminor'}]; - case 'b0' - mapping.timedim = 1; - mapping.label = 'B_0'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\bcentr'}]; - case 'beta' - mapping.timedim = 1; - mapping.label = '\beta'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\betat'}]; - case 'betan' - mapping.timedim = 1; - mapping.label = '\beta_N'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\betan'}]; - case 'betap' - mapping.timedim = 1; - mapping.label = '\beta_p'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\betap'}]; - case {'bolo', 'bolom'} - mapping.timedim = 1; - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - 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''; ' ... + case 'a_minor' + mapping.timedim = 1; + mapping.label = 'a\_minor'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\aminor'}]; + case 'b0' + mapping.timedim = 1; + mapping.label = 'B_0'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\bcentr'}]; + case 'beta' + mapping.timedim = 1; + mapping.label = '\beta'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\betat'}]; + case 'betan' + mapping.timedim = 1; + mapping.label = '\beta_N'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\betan'}]; + case 'betap' + mapping.timedim = 1; + mapping.label = '\beta_p'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\betap'}]; + case {'bolo', 'bolom'} + mapping.timedim = 1; + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + 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_d3d(shot,params_eff);params_eff.data_request=''delta_top'';' ... - 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.data = 0.5.*(gdat_tmp.data+gdat_tmp2.data);']; - case 'delta_top' - mapping.label = 'delta\_top'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\tritop'}]; - case 'delta_bottom' - mapping.label = 'delta\_bottom'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\tribot'}]; - case 'den_target' - mapping.timedim = 1; - mapping.label = {'density_ref','density'}; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''\dstdenp'';' ... + 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.data = 0.5.*(gdat_tmp.data+gdat_tmp2.data);']; + case 'delta_top' + mapping.label = 'delta\_top'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\tritop'}]; + case 'delta_bottom' + mapping.label = 'delta\_bottom'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\tribot'}]; + case 'den_target' + mapping.timedim = 1; + mapping.label = {'density_ref','density'}; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''\dstdenp'';' ... 'gdat_tmp=gdat_d3d(shot,params_eff);params_eff.data_request=''\dssdenest'';' ... 'gdat_tmp2=gdat_d3d(shot,params_eff);' ... - 'gdat_tmp.data(:,2) = gdat_tmp2.data;' ... + 'gdat_tmp.data(:,2) = gdat_tmp2.data;' ... 'gdat_tmp.dim{2}=[1 2];gdat_tmp.dimunits{1}=''s'';gdat_tmp.dimunits{2}={''dstdenp'',''dssdenest''};' ... 'gdat_tmp.gdat_request=''' data_request ''';']; - case {'ece', 'ece_rho'} - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.expression = ''; - case 'eqdsk' - mapping.timedim = 2; - mapping.method = 'switchcase'; - mapping.expression = ''; - case 'equil' - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - mapping.expression = ''; - case 'halpha' - mapping.timedim = 1; - mapping.label = 'Halpha'; - mapping.method = 'signal'; - mapping.expression = [{'SPECTROSCOPY'},{'\fs04'}]; - case {'h_scalings', 'h98y2'} - mapping.label = 'H_{98y2}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'results.confinement.times.scalings:h_thh98y2'}]; - mapping.expression = [{'D3D'},{'\h_thh98y2'}]; - case 'ioh' - mapping.timedim = 1; - mapping.label = 'I ohmic transformer'; - mapping.method = 'signal'; - mapping.expression = [{'MBI'},{'IOH'}]; - case 'ip' - mapping.timedim = 1; - mapping.label = 'Plasma current'; - mapping.method = 'signal'; - mapping.expression = [{'efit01'},{'\cpasma'}]; - case 'kappa' - mapping.timedim = 1; - mapping.label = '\kappa'; - mapping.method = 'signal'; - mapping.expression = [{'efit01'},{'\kappa'}]; + case {'ece', 'ece_rho'} + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.expression = ''; + case 'eqdsk' + mapping.timedim = 2; + mapping.method = 'switchcase'; + mapping.expression = ''; + case 'equil' + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + mapping.expression = ''; + case 'halpha' + mapping.timedim = 1; + mapping.label = 'Halpha'; + mapping.method = 'signal'; + mapping.expression = [{'SPECTROSCOPY'},{'\fs04'}]; + case {'h_scalings', 'h98y2'} + mapping.label = 'H_{98y2}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'results.confinement.times.scalings:h_thh98y2'}]; + mapping.expression = [{'D3D'},{'\h_thh98y2'}]; + case 'ioh' + mapping.timedim = 1; + mapping.label = 'I ohmic transformer'; + mapping.method = 'signal'; + mapping.expression = [{'MBI'},{'IOH'}]; + case 'ip' + mapping.timedim = 1; + mapping.label = 'Plasma current'; + mapping.method = 'signal'; + mapping.expression = [{'efit01'},{'\cpasma'}]; + case 'kappa' + mapping.timedim = 1; + mapping.label = '\kappa'; + mapping.method = 'signal'; + mapping.expression = [{'efit01'},{'\kappa'}]; % $$$ case 'kappa_top' % $$$ mapping.timedim = 1; % $$$ mapping.label = '\kappa^{top}'; @@ -145,16 +145,16 @@ switch lower(data_request) % $$$ mapping.label = '\kappa_{bottom}'; % $$$ mapping.method = 'signal'; % $$$ mapping.expression = [{'FPG'},{'kuntn'}]; - case 'li' - mapping.timedim = 1; - mapping.label = 'l_i'; - mapping.method = 'signal'; - mapping.expression = [{'efit01'},{'\li3'}]; - case 'mhd' - mapping.timedim = 1; - mapping.label = 'Odd and Even n'; - mapping.method = 'expression'; - table_mhd_from_Strait = { ... + case 'li' + mapping.timedim = 1; + mapping.label = 'l_i'; + mapping.method = 'signal'; + mapping.expression = [{'efit01'},{'\li3'}]; + case 'mhd' + mapping.timedim = 1; + mapping.label = 'Odd and Even n'; + mapping.method = 'expression'; + table_mhd_from_Strait = { ... 'MPI66M020D', 19.5 , 'MPI66M200D' , 199.7, 180.2; ... 'MPI66M067D', 67.5 , 'MPI66M247D' , 246.4, 178.9; ... 'MPI66M097D', 97.4, 'MPI66M277D', 277.5, 180.1; ... @@ -163,43 +163,43 @@ switch lower(data_request) 'MPI66M137D', 137.4, 'MPI66M322D', 317.4, 180.0; ... 'MPI66M157D', 157.6, 'MPI66M340D', 339.7, 182.2}; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''MOD'',''OddN''}; ' ... + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''MOD'',''OddN''}; ' ... 'gdat_tmp=gdat_d3d(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_odd.data = gdat_tmp.data;gdat_tmp.n_odd.data_request=params_eff.data_request;' ... - 'params_eff.data_request={''MOD'',''EvenN''};' ... - 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ... - 'params_eff.data_request={''MOD'',''OddNAmp''};' ... - 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ... - 'params_eff.data_request={''MOD'',''EvenNAmp''};' ... - 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... - 'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ... - 'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ... - 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; - case 'nbi' - mapping.timedim = 1; - mapping.label = 'Pnbi [W]'; + 'gdat_tmp.dim{1}=gdat_tmp.t;gdat_tmp.dim{2}=[1 2];gdat_tmp.x=gdat_tmp.dim{2};' ... + 'gdat_tmp.n_odd.data = gdat_tmp.data;gdat_tmp.n_odd.data_request=params_eff.data_request;' ... + 'params_eff.data_request={''MOD'',''EvenN''};' ... + 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ... + 'params_eff.data_request={''MOD'',''OddNAmp''};' ... + 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ... + 'params_eff.data_request={''MOD'',''EvenNAmp''};' ... + 'gdat_tmp2=gdat_d3d(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ... + 'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ... + 'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ... + 'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;']; + case 'nbi' + mapping.timedim = 1; + mapping.label = 'Pnbi [W]'; % $$$ mapping.method = 'signal'; % $$$ mapping.expression = [{'nb'},{'pinj'}]; % in kW, use expression to have it in W - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''nb''},{''pinj''}];' ... + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''nb''},{''pinj''}];' ... 'gdat_tmp=gdat_d3d(shot,params_eff);gdat_tmp.units=''W'';' ... - 'gdat_tmp.data = 1e3.*gdat_tmp.data;gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.data = 1e3.*gdat_tmp.data;gdat_tmp.label=''' mapping.label ''';' ... 'gdat_tmp.gdat_request=''' data_request ''';' ... 'gdat_tmp.data_smooth=interpos(gdat_tmp.t,gdat_tmp.data,-3e7);' ... 'gdat_tmp.data_smooth=max(0.,gdat_tmp.data_smooth);']; - case {'neint'} - mapping.timedim = 1; - mapping.label = 'line integrated el. density'; - mapping.method = 'signal'; - mapping.expression = {'d3d','\d3d::top.electrons.bci:denv1'}; - case {'neints'} - mapping.timedim = 1; - mapping.label = {'denv1','denv2','denv3'}; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''\d3d::top.electrons.bci:denv1'';' ... + case {'neint'} + mapping.timedim = 1; + mapping.label = 'line integrated el. density'; + mapping.method = 'signal'; + mapping.expression = {'d3d','\d3d::top.electrons.bci:denv1'}; + case {'neints'} + mapping.timedim = 1; + mapping.label = {'denv1','denv2','denv3'}; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''\d3d::top.electrons.bci:denv1'';' ... 'gdat_tmp=gdat_d3d(shot,params_eff);gdat_tmp.denv1=gdat_tmp;' ... 'params_eff.data_request=''\d3d::top.electrons.bci:denv2'';gdat_denv2=gdat_d3d(shot,params_eff);' ... 'gdat_tmp.denv2=gdat_denv2;gdat_tmp.data(:,2)=gdat_denv2.data;' ... @@ -207,26 +207,26 @@ switch lower(data_request) 'gdat_tmp.denv3=gdat_denv3;gdat_tmp.data(:,3)=gdat_denv3.data;' ... 'gdat_tmp.dim{2} = [1:3];gdat_tmp.dimunits{2} = {''denv1'',''denv2'',''denv3''};' ... ';gdat_tmp.dimunits{1}=''s'';']; - case 'nel' - mapping.timedim = 1; - mapping.label = 'NEBAR\_R0'; - mapping.method = 'signal'; - mapping.expression = [{'efit01'},{'\NEBAR_R0'}]; - case {'ne', 'ne_rho'} - mapping.timedim = 2; - mapping.label = 'ne'; - mapping.method = 'switchcase'; - case 'nete_rho' - mapping.timedim = 2; - mapping.label = 'ne and Te'; - mapping.method = 'switchcase'; - case 'ni' - mapping.method = 'switchcase'; % especially since might have option fit, etc - 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'';' ... + case 'nel' + mapping.timedim = 1; + mapping.label = 'NEBAR\_R0'; + mapping.method = 'signal'; + mapping.expression = [{'efit01'},{'\NEBAR_R0'}]; + case {'ne', 'ne_rho'} + mapping.timedim = 2; + mapping.label = 'ne'; + mapping.method = 'switchcase'; + case 'nete_rho' + mapping.timedim = 2; + mapping.label = 'ne and Te'; + mapping.method = 'switchcase'; + case 'ni' + mapping.method = 'switchcase'; % especially since might have option fit, etc + 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_d3d(shot,params_eff);params_eff.data_request=''ip'';' ... 'gdat_tmp2=gdat_d3d(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);' ... @@ -235,39 +235,39 @@ switch lower(data_request) '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'';' ... + 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_d3d(shot,params_eff);params_eff.data_request=''n_greenwald'';' ... 'gdat_tmp2=gdat_d3d(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*1e6./(tmp_data2+1e-5);' ... 'gdat_tmp.units='''';gdat_tmp.dimunits{1}=''s'';']; - case {'f2b', 'pcf2b'} - mapping.label = {'pcf2b','f2b'}'; - mapping.timedim = 1; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''d3d''},{''ptdata("pcf2b")''}];' ... + case {'f2b', 'pcf2b'} + mapping.label = {'pcf2b','f2b'}'; + mapping.timedim = 1; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''d3d''},{''ptdata("pcf2b")''}];' ... 'gdat_tmp=gdat_d3d(shot,params_eff);params_eff = gdat_data.gdat_params;' ... 'params_eff.data_request=[{''d3d''},{''ptdata("f2b")''}];gdat_tmp2=gdat_d3d(shot,params_eff);' ... - 'if ~isempty(gdat_tmp2.t); gdat_tmp.data(:,2) = interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t);else;' ... + 'if ~isempty(gdat_tmp2.t); gdat_tmp.data(:,2) = interp1(gdat_tmp2.t,gdat_tmp2.data,gdat_tmp.t);else;' ... 'gdat_tmp.data(:,2) = NaN(size(gdat_tmp.t)); end;' ... 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'pgyro' - mapping.timedim = 1; - mapping.label = 'EC gyros'; - mapping.method = 'switchcase'; - case 'powers' - mapping.timedim = 1; - mapping.label = 'various powers'; - mapping.method = 'switchcase'; - case {'prad','prad_tot','rad','rad_tot'} - mapping.timedim = 1; - mapping.label = {'PRAD_divl','PRAD_divu','prad_core','tot-divL-divU','PRAD_TOT'}; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''bolom'',''PRAD_01.PRAD:PRAD_divl''};' ... + case 'pgyro' + mapping.timedim = 1; + mapping.label = 'EC gyros'; + mapping.method = 'switchcase'; + case 'powers' + mapping.timedim = 1; + mapping.label = 'various powers'; + mapping.method = 'switchcase'; + case {'prad','prad_tot','rad','rad_tot'} + mapping.timedim = 1; + mapping.label = {'PRAD_divl','PRAD_divu','prad_core','tot-divL-divU','PRAD_TOT'}; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''bolom'',''PRAD_01.PRAD:PRAD_divl''};' ... 'gdat_tmp=gdat_d3d(shot,params_eff);gdat_tmp.divl=gdat_tmp;' ... 'params_eff.data_request{2}=''PRAD_01.PRAD:PRAD_divu'';gdat_tmpU=gdat_d3d(shot,params_eff);' ... 'gdat_tmp.divu=gdat_tmpU;gdat_tmp.data(:,2)=gdat_tmpU.data;' ... @@ -278,175 +278,175 @@ switch lower(data_request) 'gdat_tmp.data(:,4) = gdat_tmp.data(:,5)-gdat_tmp.data(:,1)-gdat_tmp.data(:,2);' ... 'gdat_tmp.dim{2} = [1:5];gdat_tmp.dimunits{2} = {''divl'',''divu'',''core'',''tot-divl-divu'',''prad_tot''};' ... 'gdat_tmp.units=''W'';gdat_tmp.dimunits{1}=''s'';']; - case 'psi_axis' - mapping.timedim = 1; - mapping.label ='psi_\axis' ; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\ssimag'}]; - case 'psi_edge' - mapping.timedim = 1; - mapping.label = 'psi\_edge'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\ssibry'}]; - case 'q0' - mapping.timedim = 1; - mapping.label = 'q_0'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\q0'}]; - case 'qmin' - mapping.timedim = 1; - mapping.label = 'q_min'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\qmin'}]; - case 'q95' - mapping.timedim = 1; - mapping.label = 'q_{95}'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\q95'}]; - case 'q_edge' - mapping.timedim = 1; - mapping.label = 'q_{edge}}'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\ql'}]; - case 'q_rho' - mapping.timedim = 2; - mapping.gdat_timedim = 2; - mapping.label = 'q'; - mapping.method = 'switchcase'; - case {'rot', 'cerqrot'} - mapping.timedim = 2; - mapping.label = 'cerqrot'; - mapping.method = 'switchcase'; - mapping.expression = ''; - case 'r0' - mapping.timedim = 1; - mapping.label = 'R_0'; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\rzero'}]; - case 'rgeom' - mapping.label = 'Rgeom'; - mapping.timedim = 1; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''EFIT01''},{''results.geqdsk:rbbbs''}];' ... + case 'psi_axis' + mapping.timedim = 1; + mapping.label ='psi_\axis' ; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\ssimag'}]; + case 'psi_edge' + mapping.timedim = 1; + mapping.label = 'psi\_edge'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\ssibry'}]; + case 'q0' + mapping.timedim = 1; + mapping.label = 'q_0'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\q0'}]; + case 'qmin' + mapping.timedim = 1; + mapping.label = 'q_min'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\qmin'}]; + case 'q95' + mapping.timedim = 1; + mapping.label = 'q_{95}'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\q95'}]; + case 'q_edge' + mapping.timedim = 1; + mapping.label = 'q_{edge}}'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\ql'}]; + case 'q_rho' + mapping.timedim = 2; + mapping.gdat_timedim = 2; + mapping.label = 'q'; + mapping.method = 'switchcase'; + case {'rot', 'cerqrot'} + mapping.timedim = 2; + mapping.label = 'cerqrot'; + mapping.method = 'switchcase'; + mapping.expression = ''; + case 'r0' + mapping.timedim = 1; + mapping.label = 'R_0'; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\rzero'}]; + case 'rgeom' + mapping.label = 'Rgeom'; + mapping.timedim = 1; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''EFIT01''},{''results.geqdsk:rbbbs''}];' ... 'gdat_tmp2=gdat_d3d(shot,params_eff);params_eff = gdat_data.gdat_params;' ... 'params_eff.data_request=[{''EFIT01''},{''\zmaxis''}];gdat_tmp=gdat_d3d(shot,params_eff);' ... 'ij=find(gdat_tmp2.data==0);if (~isempty(ij));gdat_tmp2.data(ij)=NaN;end;' ... - 'gdat_tmp.data = 0.5.*(nanmax(gdat_tmp2.data'',[],2)+nanmin(gdat_tmp2.data'',[],2));gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.data = 0.5.*(nanmax(gdat_tmp2.data'',[],2)+nanmin(gdat_tmp2.data'',[],2));gdat_tmp.label=''' mapping.label ''';' ... 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'r_inboard' - mapping.label = 'R\_inboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Rin'}]; - case 'r_outboard' - mapping.label = 'R\_outboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'FPG'},{'Raus'},{'D3DD'}]; - case 'rhotor' - mapping.timedim = 2; - mapping.method = 'switchcase'; - mapping.label = 'rhotor'; - case 'rhotor_edge' - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_edge'; - case 'rhotor_norm' - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_norm'; - case 'rhovol' - mapping.timedim = 2; - mapping.label = 'rhovol\_norm'; - mapping.method = 'switchcase'; - case {'rmag', 'r_mag', 'r_axis'} - mapping.label = 'R\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\rmaxis'}]; - case 'sxr' - mapping.timedim = 1; - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - case 'tau_tot' - mapping.label = '\tau_{tot}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'TOT'},{'tau_tot'},{'D3DD'}]; - case {'te', 'te_rho'} - mapping.timedim = 2; - mapping.label = 'Te'; - mapping.method = 'switchcase'; - case 'ti' - mapping.label = 'Ti'; - mapping.method = 'switchcase'; - case 'vloop' - mapping.label = 'Vloop'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\vloopmhd'}]; - case 'volume' - mapping.label = 'Volume'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\volume'}]; - case 'volume_rho' - mapping.timedim = 2; - mapping.label = 'volume\_norm'; - mapping.method = 'switchcase'; - case 'wmhd' - mapping.label = 'Wmhd'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\Wmhd'}]; - case 'zeff' - mapping.label = 'zeff from cxrs'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'ZES'},{'Zeff'},{'D3DD'}]; - case 'zeff_cerq' - mapping.timedim = 2; - mapping.method = 'switchcase'; - case 'zgeom' - mapping.label = 'Zgeom'; - mapping.timedim = 1; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''EFIT01''},{''results.geqdsk:zbbbs''}];' ... + case 'r_inboard' + mapping.label = 'R\_inboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Rin'}]; + case 'r_outboard' + mapping.label = 'R\_outboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'FPG'},{'Raus'},{'D3DD'}]; + case 'rhotor' + mapping.timedim = 2; + mapping.method = 'switchcase'; + mapping.label = 'rhotor'; + case 'rhotor_edge' + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_edge'; + case 'rhotor_norm' + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_norm'; + case 'rhovol' + mapping.timedim = 2; + mapping.label = 'rhovol\_norm'; + mapping.method = 'switchcase'; + case {'rmag', 'r_mag', 'r_axis'} + mapping.label = 'R\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\rmaxis'}]; + case 'sxr' + mapping.timedim = 1; + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + case 'tau_tot' + mapping.label = '\tau_{tot}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'TOT'},{'tau_tot'},{'D3DD'}]; + case {'te', 'te_rho'} + mapping.timedim = 2; + mapping.label = 'Te'; + mapping.method = 'switchcase'; + case 'ti' + mapping.label = 'Ti'; + mapping.method = 'switchcase'; + case 'vloop' + mapping.label = 'Vloop'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\vloopmhd'}]; + case 'volume' + mapping.label = 'Volume'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\volume'}]; + case 'volume_rho' + mapping.timedim = 2; + mapping.label = 'volume\_norm'; + mapping.method = 'switchcase'; + case 'wmhd' + mapping.label = 'Wmhd'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\Wmhd'}]; + case 'zeff' + mapping.label = 'zeff from cxrs'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'ZES'},{'Zeff'},{'D3DD'}]; + case 'zeff_cerq' + mapping.timedim = 2; + mapping.method = 'switchcase'; + case 'zgeom' + mapping.label = 'Zgeom'; + mapping.timedim = 1; + mapping.method = 'expression'; + mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''EFIT01''},{''results.geqdsk:zbbbs''}];' ... 'gdat_tmp2=gdat_d3d(shot,params_eff);params_eff = gdat_data.gdat_params;' ... 'params_eff.data_request=[{''EFIT01''},{''\zmaxis''}];gdat_tmp=gdat_d3d(shot,params_eff);' ... 'ij=find(gdat_tmp2.data==0);if (~isempty(ij));gdat_tmp2.data(ij)=NaN;end;' ... - 'gdat_tmp.data = 0.5.*(nanmax(gdat_tmp2.data'',[],2)+nanmin(gdat_tmp2.data'',[],2));gdat_tmp.label=''' mapping.label ''';' ... + 'gdat_tmp.data = 0.5.*(nanmax(gdat_tmp2.data'',[],2)+nanmin(gdat_tmp2.data'',[],2));gdat_tmp.label=''' mapping.label ''';' ... 'gdat_tmp.gdat_request=''' data_request ''';']; - case 'zmag' - mapping.label = 'Z\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\zmaxis'}]; - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % extra D3D cases (not necessarily in official data_request name list) - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - case {'zxpt1', 'xpt'} - mapping.label = 'zxpt1'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'EFIT01'},{'\zxpt1'}]; - case 'transp' - mapping.label = 'transp output'; - mapping.method = 'switchcase'; + case 'zmag' + mapping.label = 'Z\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\zmaxis'}]; + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % extra D3D cases (not necessarily in official data_request name list) + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + case {'zxpt1', 'xpt'} + mapping.label = 'zxpt1'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'EFIT01'},{'\zxpt1'}]; + 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...) - % pseudo point name: '\ptdata' given, or {'\ptdata'} add D3D as tree - if ischar(data_request) && strcmp(data_request(1),'\') - mapping.expression = {'d3d',data_request}; - else - mapping.expression = data_request; - end - + 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...) + % pseudo point name: '\ptdata' given, or {'\ptdata'} add D3D as tree + if ischar(data_request) && strcmp(data_request(1),'\') + mapping.expression = {'d3d',data_request}; + else + mapping.expression = data_request; + end + end if isempty(mapping.gdat_timedim) diff --git a/matlab/D3D/gdat_d3d.m b/matlab/D3D/gdat_d3d.m index a4fe1657e61f1cc9f87a582c1f75707723aa8ab7..89596d87d6e5bbdd0dfa8bc6281957440e43fe17 100644 --- a/matlab/D3D/gdat_d3d.m +++ b/matlab/D3D/gdat_d3d.m @@ -359,260 +359,260 @@ elseif strcmp(mapping_for_d3d.method,'expression') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% elseif strcmp(mapping_for_d3d.method,'switchcase') switch data_request_eff % not lower(...) since data_request_eff should be lower case already at this stage - case {'cxrs', 'cxrs_rho'} - % if 'fit' option is added: 'fit',1, then the fitted profiles are returned which means "_rho" is effectively called - if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) - gdat_data.gdat_params.fit = 0; - elseif gdat_data.gdat_params.fit==1 - data_request_eff = 'cxrs_rho'; - end - exp_name_eff = gdat_data.gdat_params.exp_name; - if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) || strcmp(upper(gdat_data.gdat_params.source),'CEZ') - gdat_data.gdat_params.source = 'CEZ'; - r_node = 'R_time'; - z_node = 'z_time'; - elseif strcmp(upper(gdat_data.gdat_params.source),'CMZ') - gdat_data.gdat_params.source = 'CMZ'; - r_node = 'R'; - z_node = 'z'; - else - warning(['source = ' gdat_data.gdat_params.source ' not expected with data_request= ' data_request_eff]); - return - end - diag_name = gdat_data.gdat_params.source; - % R, Z positions of measurements - try - [r_time]=sf2ab(diag_name,shot,r_node,'-exp',exp_name_eff); - catch ME_R_time - % assume no shotfile - getReport(ME_R_time,'basic'); - return - end - gdat_data.r = r_time.value{1}; - inotok=find(gdat_data.r<=0); - gdat_data.r(inotok) = NaN; - [z_time]=sf2ab(diag_name,shot,z_node,'-exp',exp_name_eff); - gdat_data.z = z_time.value{1}; - inotok=find(gdat_data.z<=0); - gdat_data.z(inotok) = NaN; - [time]=sf2tb(diag_name,shot,'time','-exp',exp_name_eff); - gdat_data.t = time.value; - gdat_data.dim{1} = {gdat_data.r , gdat_data.z}; - gdat_data.dimunits{1} = 'R, Z [m]'; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits{2} = 't [s]'; - gdat_data.x = gdat_data.dim{1}; - % vrot - [a,error_status]=rdaD3D_eff(shot,diag_name,'vrot',exp_name_eff); - if isempty(a.data) || isempty(a.t) || error_status>0 - if gdat_params.nverbose>=3; - a - disp(['with data_request= ' data_request_eff]) + case {'cxrs', 'cxrs_rho'} + % if 'fit' option is added: 'fit',1, then the fitted profiles are returned which means "_rho" is effectively called + if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) + gdat_data.gdat_params.fit = 0; + elseif gdat_data.gdat_params.fit==1 + data_request_eff = 'cxrs_rho'; end - end - gdat_data.vrot.data = a.data; - if any(strcmp(fieldnames(a),'units')); gdat_data.vrot.units=a.units; end - if any(strcmp(fieldnames(a),'name')); gdat_data.vrot.name=a.name; end - gdat_data.vrot.label = 'vrot_tor'; - [aerr,e]=rdaD3D_eff(shot,diag_name,'err_vrot',exp_name_eff); - gdat_data.vrot.error_bar = aerr.data; - % Ti - % [a,e]=rdaD3D_eff(shot,diag_name,'Ti',exp_name_eff); - % [aerr,e]=rdaD3D_eff(shot,diag_name,'err_Ti',exp_name_eff); - [a,e]=rdaD3D_eff(shot,diag_name,'Ti_c',exp_name_eff); - [aerr,e]=rdaD3D_eff(shot,diag_name,'err_Ti_c',exp_name_eff); - gdat_data.ti.data = a.data; - gdat_data.data = a.data; - gdat_data.label = [gdat_data.label '/Ti']; - if any(strcmp(fieldnames(a),'units')); gdat_data.ti.units=a.units; end - if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end - if any(strcmp(fieldnames(a),'name')); gdat_data.ti.name=a.name; end - gdat_data.ti.label = 'Ti_c'; - gdat_data.ti.error_bar = aerr.data; - gdat_data.error_bar = aerr.data; - gdat_data.data_fullpath=[exp_name_eff '/' diag_name '/' a.name ';vrot, Ti in data, {r;z} in .x']; - % - if strcmp(data_request_eff,'cxrs_rho') - params_equil = gdat_data.gdat_params; - params_equil.data_request = 'equil'; - [equil,params_equil,error_status] = gdat_d3d(shot,params_equil); - if error_status>0 - if gdat_params.nverbose>=3; disp(['problems with ' params_equil.data_request]); end - return + exp_name_eff = gdat_data.gdat_params.exp_name; + if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) || strcmp(upper(gdat_data.gdat_params.source),'CEZ') + gdat_data.gdat_params.source = 'CEZ'; + r_node = 'R_time'; + z_node = 'z_time'; + elseif strcmp(upper(gdat_data.gdat_params.source),'CMZ') + gdat_data.gdat_params.source = 'CMZ'; + r_node = 'R'; + z_node = 'z'; + else + warning(['source = ' gdat_data.gdat_params.source ' not expected with data_request= ' data_request_eff]); + return end - gdat_data.gdat_params.equil = params_equil.equil; - gdat_data.equil = equil; - inb_chord_cxrs=size(gdat_data.data,1); - inb_time_cxrs=size(gdat_data.data,2); - psi_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhopolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhotornorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - rhovolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); - % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] - time_equil=[min(gdat_data.t(1)-0.1,equil.t(1)-0.1) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) max(equil.t(end)+0.1,gdat_data.t(end)+0.1)]; - iok=find(~isnan(gdat_data.r(:,1))); - for itequil=1:length(time_equil)-1 - rr=equil.Rmesh(:,itequil); - zz=equil.Zmesh(:,itequil); - psirz_in = equil.psi2D(:,:,itequil); - it_cxrs_inequil = find(gdat_data.t>time_equil(itequil) & gdat_data.t<=time_equil(itequil+1)); - if ~isempty(it_cxrs_inequil) - if strcmp(upper(gdat_data.gdat_params.source),'CEZ') - rout=gdat_data.r(iok,it_cxrs_inequil); - zout=gdat_data.z(iok,it_cxrs_inequil); - else - rout=gdat_data.r(iok); - zout=gdat_data.z(iok); - end - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); - if strcmp(upper(gdat_data.gdat_params.source),'CEZ') - psi_out(iok,it_cxrs_inequil) = reshape(psi_at_routzout,length(iok),length(it_cxrs_inequil)); - else - psi_out(iok,it_cxrs_inequil) = repmat(psi_at_routzout,[1,length(it_cxrs_inequil)]); - end - rhopolnorm_out(iok,it_cxrs_inequil) = sqrt((psi_out(iok,it_cxrs_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_cxrs_inequil) - rhotornorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); - end - end - end - gdat_data.psi = psi_out; - gdat_data.rhopolnorm = rhopolnorm_out; - gdat_data.rhotornorm = rhotornorm_out; - gdat_data.rhovolnorm = rhovolnorm_out; - % defaults for fits, so user always gets std structure - gdat_data.fit.rhotornorm = []; % same for both ti and vrot - gdat_data.fit.rhopolnorm = []; - gdat_data.fit.t = []; - gdat_data.fit.ti.data = []; - gdat_data.fit.ti.drhotornorm = []; - gdat_data.fit.vrot.data = []; - gdat_data.fit.vrot.drhotornorm = []; - gdat_data.fit.raw.rhotornorm = []; - gdat_data.fit.raw.ti.data = []; - gdat_data.fit.raw.vrot.data = []; - fit_tension_default = -1; - if isfield(gdat_data.gdat_params,'fit_tension') - fit_tension = gdat_data.gdat_params.fit_tension; + diag_name = gdat_data.gdat_params.source; + % R, Z positions of measurements + try + [r_time]=sf2ab(diag_name,shot,r_node,'-exp',exp_name_eff); + catch ME_R_time + % assume no shotfile + getReport(ME_R_time,'basic'); + return + end + gdat_data.r = r_time.value{1}; + inotok=find(gdat_data.r<=0); + gdat_data.r(inotok) = NaN; + [z_time]=sf2ab(diag_name,shot,z_node,'-exp',exp_name_eff); + gdat_data.z = z_time.value{1}; + inotok=find(gdat_data.z<=0); + gdat_data.z(inotok) = NaN; + [time]=sf2tb(diag_name,shot,'time','-exp',exp_name_eff); + gdat_data.t = time.value; + gdat_data.dim{1} = {gdat_data.r , gdat_data.z}; + gdat_data.dimunits{1} = 'R, Z [m]'; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits{2} = 't [s]'; + gdat_data.x = gdat_data.dim{1}; + % vrot + [a,error_status]=rdaD3D_eff(shot,diag_name,'vrot',exp_name_eff); + if isempty(a.data) || isempty(a.t) || error_status>0 + if gdat_params.nverbose>=3; + a + disp(['with data_request= ' data_request_eff]) + end + end + gdat_data.vrot.data = a.data; + if any(strcmp(fieldnames(a),'units')); gdat_data.vrot.units=a.units; end + if any(strcmp(fieldnames(a),'name')); gdat_data.vrot.name=a.name; end + gdat_data.vrot.label = 'vrot_tor'; + [aerr,e]=rdaD3D_eff(shot,diag_name,'err_vrot',exp_name_eff); + gdat_data.vrot.error_bar = aerr.data; + % Ti + % [a,e]=rdaD3D_eff(shot,diag_name,'Ti',exp_name_eff); + % [aerr,e]=rdaD3D_eff(shot,diag_name,'err_Ti',exp_name_eff); + [a,e]=rdaD3D_eff(shot,diag_name,'Ti_c',exp_name_eff); + [aerr,e]=rdaD3D_eff(shot,diag_name,'err_Ti_c',exp_name_eff); + gdat_data.ti.data = a.data; + gdat_data.data = a.data; + gdat_data.label = [gdat_data.label '/Ti']; + if any(strcmp(fieldnames(a),'units')); gdat_data.ti.units=a.units; end + if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end + if any(strcmp(fieldnames(a),'name')); gdat_data.ti.name=a.name; end + gdat_data.ti.label = 'Ti_c'; + gdat_data.ti.error_bar = aerr.data; + gdat_data.error_bar = aerr.data; + gdat_data.data_fullpath=[exp_name_eff '/' diag_name '/' a.name ';vrot, Ti in data, {r;z} in .x']; + % + if strcmp(data_request_eff,'cxrs_rho') + params_equil = gdat_data.gdat_params; + params_equil.data_request = 'equil'; + [equil,params_equil,error_status] = gdat_d3d(shot,params_equil); + if error_status>0 + if gdat_params.nverbose>=3; disp(['problems with ' params_equil.data_request]); end + return + end + gdat_data.gdat_params.equil = params_equil.equil; + gdat_data.equil = equil; + inb_chord_cxrs=size(gdat_data.data,1); + inb_time_cxrs=size(gdat_data.data,2); + psi_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhopolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhotornorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + rhovolnorm_out = NaN*ones(inb_chord_cxrs,inb_time_cxrs); + % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] + time_equil=[min(gdat_data.t(1)-0.1,equil.t(1)-0.1) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) max(equil.t(end)+0.1,gdat_data.t(end)+0.1)]; + iok=find(~isnan(gdat_data.r(:,1))); + for itequil=1:length(time_equil)-1 + rr=equil.Rmesh(:,itequil); + zz=equil.Zmesh(:,itequil); + psirz_in = equil.psi2D(:,:,itequil); + it_cxrs_inequil = find(gdat_data.t>time_equil(itequil) & gdat_data.t<=time_equil(itequil+1)); + if ~isempty(it_cxrs_inequil) + if strcmp(upper(gdat_data.gdat_params.source),'CEZ') + rout=gdat_data.r(iok,it_cxrs_inequil); + zout=gdat_data.z(iok,it_cxrs_inequil); + else + rout=gdat_data.r(iok); + zout=gdat_data.z(iok); + end + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout,zout); + if strcmp(upper(gdat_data.gdat_params.source),'CEZ') + psi_out(iok,it_cxrs_inequil) = reshape(psi_at_routzout,length(iok),length(it_cxrs_inequil)); + else + psi_out(iok,it_cxrs_inequil) = repmat(psi_at_routzout,[1,length(it_cxrs_inequil)]); + end + rhopolnorm_out(iok,it_cxrs_inequil) = sqrt((psi_out(iok,it_cxrs_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_cxrs_inequil) + rhotornorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out(iok,it_cxrs_inequil(it_cx)) = interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out(iok,it_cxrs_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + end + gdat_data.psi = psi_out; + gdat_data.rhopolnorm = rhopolnorm_out; + gdat_data.rhotornorm = rhotornorm_out; + gdat_data.rhovolnorm = rhovolnorm_out; + % defaults for fits, so user always gets std structure + gdat_data.fit.rhotornorm = []; % same for both ti and vrot + gdat_data.fit.rhopolnorm = []; + gdat_data.fit.t = []; + gdat_data.fit.ti.data = []; + gdat_data.fit.ti.drhotornorm = []; + gdat_data.fit.vrot.data = []; + gdat_data.fit.vrot.drhotornorm = []; + gdat_data.fit.raw.rhotornorm = []; + gdat_data.fit.raw.ti.data = []; + gdat_data.fit.raw.vrot.data = []; + fit_tension_default = -1; + if isfield(gdat_data.gdat_params,'fit_tension') + fit_tension = gdat_data.gdat_params.fit_tension; + else + fit_tension = fit_tension_default; + end + if ~isstruct(fit_tension) + fit_tension_eff.ti = fit_tension; + fit_tension_eff.vrot = fit_tension; + fit_tension = fit_tension_eff; + else + if ~isfield(fit_tension,'ti'); fit_tension.ti = fit_tension_default; end + if ~isfield(fit_tension,'vrot '); fit_tension.vrot = fit_tension_default; end + end + gdat_data.gdat_params.fit_tension = fit_tension; + if isfield(gdat_data.gdat_params,'fit_nb_rho_points') + fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; + else + fit_nb_rho_points = 201; + end + gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; + % + if gdat_data.gdat_params.fit==1 + % add fits + gdat_data.fit.raw.rhotornorm = NaN*ones(size(gdat_data.ti.data)); + gdat_data.fit.raw.ti.data = NaN*ones(size(gdat_data.ti.data)); + gdat_data.fit.raw.vrot.data = NaN*ones(size(gdat_data.vrot.data)); + rhotornormfit = linspace(0,1,fit_nb_rho_points)'; + gdat_data.fit.rhotornorm = rhotornormfit; + gdat_data.fit.t = gdat_data.t; + for it=1:length(gdat_data.t) + % make rhotor->rhopol transformation for each time since equilibrium might have changed + irhook=find(gdat_data.rhotornorm(:,it)>0 & gdat_data.rhotornorm(:,it)<1); % no need for ~isnan + [rhoeff isort]=sort(gdat_data.rhotornorm(irhook,it)); + gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]); + idata = find(gdat_data.ti.data(:,it)>0 & gdat_data.rhotornorm(:,it)<1.01); + if length(idata)>0 + gdat_data.fit.ti.raw.rhotornorm(idata,it) = gdat_data.rhotornorm(idata,it); + gdat_data.fit.ti.raw.data(idata,it) = gdat_data.ti.data(idata,it); + gdat_data.fit.ti.raw.error_bar(idata,it) = gdat_data.ti.error_bar(idata,it); + gdat_data.fit.vrot.raw.rhotornorm(idata,it) = gdat_data.rhotornorm(idata,it); + gdat_data.fit.vrot.raw.data(idata,it) = gdat_data.vrot.data(idata,it); + gdat_data.fit.vrot.raw.error_bar(idata,it) = gdat_data.vrot.error_bar(idata,it); + [rhoeff,irhoeff] = sort(gdat_data.rhotornorm(idata,it)); + rhoeff = [0; rhoeff]; + % they are some strange low error_bars, so remove these by max(Ti/error_bar)<=10; and changing it to large error bar + tieff = gdat_data.ti.data(idata(irhoeff),it); + ti_err_eff = gdat_data.ti.error_bar(idata(irhoeff),it); + ij=find(tieff./ti_err_eff>10.); + if ~isempty(ij); ti_err_eff(ij) = tieff(ij)./0.1; end + vroteff = gdat_data.vrot.data(idata(irhoeff),it); + vrot_err_eff = gdat_data.vrot.error_bar(idata(irhoeff),it); + ij=find(vroteff./vrot_err_eff>10.); + if ~isempty(ij); vrot_err_eff(ij) = vroteff(ij)./0.1; end + % + tieff = [tieff(1); tieff]; + ti_err_eff = [1e4; ti_err_eff]; + vroteff = [vroteff(1); vroteff]; + vrot_err_eff = [1e5; vrot_err_eff]; + [gdat_data.fit.ti.data(:,it), gdat_data.fit.ti.drhotornorm(:,it)] = interpos(rhoeff,tieff,rhotornormfit,fit_tension.ti,[1 0],[0 0],ti_err_eff); + [gdat_data.fit.vrot.data(:,it), gdat_data.fit.vrot.drhotornorm(:,it)] = interpos(rhoeff,vroteff,rhotornormfit,fit_tension.vrot,[1 0],[0 0],vrot_err_eff); + end + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ece', 'ece_rho'} + nth_points = 13; + if isfield(gdat_data.gdat_params,'nth_points') && ~isempty(gdat_data.gdat_params.nth_points) + nth_points = gdat_data.gdat_params.nth_points; else - fit_tension = fit_tension_default; + gdat_data.gdat_params.nth_points = nth_points; end - if ~isstruct(fit_tension) - fit_tension_eff.ti = fit_tension; - fit_tension_eff.vrot = fit_tension; - fit_tension = fit_tension_eff; + channels = -1; + if isfield(gdat_data.gdat_params,'channels') && ~isempty(gdat_data.gdat_params.channels) + channels = gdat_data.gdat_params.channels; + end + diag_name = 'ece'; + if nth_points>=10 + match_rz_to_time = 1; else - if ~isfield(fit_tension,'ti'); fit_tension.ti = fit_tension_default; end - if ~isfield(fit_tension,'vrot '); fit_tension.vrot = fit_tension_default; end + match_rz_to_time = 0; end - gdat_data.gdat_params.fit_tension = fit_tension; - if isfield(gdat_data.gdat_params,'fit_nb_rho_points') - fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; + if isfield(gdat_data.gdat_params,'match_rz_to_time') && ~isempty(gdat_data.gdat_params.match_rz_to_time) + match_rz_to_time = gdat_data.gdat_params.match_rz_to_time; else - fit_nb_rho_points = 201; + gdat_data.gdat_params.match_rz_to_time = match_rz_to_time; + end + time_interval = [-Inf +Inf]; + if isfield(gdat_data.gdat_params,'time_interval') && ~isempty(gdat_data.gdat_params.time_interval) + time_interval = gdat_data.gdat_params.time_interval; + else + gdat_data.gdat_params.time_interval = time_interval; end - gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; % - if gdat_data.gdat_params.fit==1 - % add fits - gdat_data.fit.raw.rhotornorm = NaN*ones(size(gdat_data.ti.data)); - gdat_data.fit.raw.ti.data = NaN*ones(size(gdat_data.ti.data)); - gdat_data.fit.raw.vrot.data = NaN*ones(size(gdat_data.vrot.data)); - rhotornormfit = linspace(0,1,fit_nb_rho_points)'; - gdat_data.fit.rhotornorm = rhotornormfit; - gdat_data.fit.t = gdat_data.t; - for it=1:length(gdat_data.t) - % make rhotor->rhopol transformation for each time since equilibrium might have changed - irhook=find(gdat_data.rhotornorm(:,it)>0 & gdat_data.rhotornorm(:,it)<1); % no need for ~isnan - [rhoeff isort]=sort(gdat_data.rhotornorm(irhook,it)); - gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]); - idata = find(gdat_data.ti.data(:,it)>0 & gdat_data.rhotornorm(:,it)<1.01); - if length(idata)>0 - gdat_data.fit.ti.raw.rhotornorm(idata,it) = gdat_data.rhotornorm(idata,it); - gdat_data.fit.ti.raw.data(idata,it) = gdat_data.ti.data(idata,it); - gdat_data.fit.ti.raw.error_bar(idata,it) = gdat_data.ti.error_bar(idata,it); - gdat_data.fit.vrot.raw.rhotornorm(idata,it) = gdat_data.rhotornorm(idata,it); - gdat_data.fit.vrot.raw.data(idata,it) = gdat_data.vrot.data(idata,it); - gdat_data.fit.vrot.raw.error_bar(idata,it) = gdat_data.vrot.error_bar(idata,it); - [rhoeff,irhoeff] = sort(gdat_data.rhotornorm(idata,it)); - rhoeff = [0; rhoeff]; - % they are some strange low error_bars, so remove these by max(Ti/error_bar)<=10; and changing it to large error bar - tieff = gdat_data.ti.data(idata(irhoeff),it); - ti_err_eff = gdat_data.ti.error_bar(idata(irhoeff),it); - ij=find(tieff./ti_err_eff>10.); - if ~isempty(ij); ti_err_eff(ij) = tieff(ij)./0.1; end - vroteff = gdat_data.vrot.data(idata(irhoeff),it); - vrot_err_eff = gdat_data.vrot.error_bar(idata(irhoeff),it); - ij=find(vroteff./vrot_err_eff>10.); - if ~isempty(ij); vrot_err_eff(ij) = vroteff(ij)./0.1; end - % - tieff = [tieff(1); tieff]; - ti_err_eff = [1e4; ti_err_eff]; - vroteff = [vroteff(1); vroteff]; - vrot_err_eff = [1e5; vrot_err_eff]; - [gdat_data.fit.ti.data(:,it), gdat_data.fit.ti.drhotornorm(:,it)] = interpos(rhoeff,tieff,rhotornormfit,fit_tension.ti,[1 0],[0 0],ti_err_eff); - [gdat_data.fit.vrot.data(:,it), gdat_data.fit.vrot.drhotornorm(:,it)] = interpos(rhoeff,vroteff,rhotornormfit,fit_tension.vrot,[1 0],[0 0],vrot_err_eff); - end - end + if channels(1)<=0 + channels = [1:40]; end - end - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ece', 'ece_rho'} - nth_points = 13; - if isfield(gdat_data.gdat_params,'nth_points') && ~isempty(gdat_data.gdat_params.nth_points) - nth_points = gdat_data.gdat_params.nth_points; - else - gdat_data.gdat_params.nth_points = nth_points; - end - channels = -1; - if isfield(gdat_data.gdat_params,'channels') && ~isempty(gdat_data.gdat_params.channels) - channels = gdat_data.gdat_params.channels; - end - diag_name = 'ece'; - if nth_points>=10 - match_rz_to_time = 1; - else - match_rz_to_time = 0; - end - if isfield(gdat_data.gdat_params,'match_rz_to_time') && ~isempty(gdat_data.gdat_params.match_rz_to_time) - match_rz_to_time = gdat_data.gdat_params.match_rz_to_time; - else - gdat_data.gdat_params.match_rz_to_time = match_rz_to_time; - end - time_interval = [-Inf +Inf]; - if isfield(gdat_data.gdat_params,'time_interval') && ~isempty(gdat_data.gdat_params.time_interval) - time_interval = gdat_data.gdat_params.time_interval; - else - gdat_data.gdat_params.time_interval = time_interval; - end - % - if channels(1)<=0 - channels = [1:40]; - end - chanelles=sort(channels); - gdat_data.dim{1} = channels; - gdat_data.gdat_params.channels = channels; - for i=channels - a = gdat_d3d(shot,{'ece',['\tece' num2str(i,'%.2d')]}); - if nth_points>1 - gdat_data.data(i,:) = a.data(1:nth_points:end); - gdat_data.dim{2} = a.t(1:nth_points:end); - else - gdat_data.data(i,:) = a.data; - gdat_data.dim{2} = a.t; + chanelles=sort(channels); + gdat_data.dim{1} = channels; + gdat_data.gdat_params.channels = channels; + for i=channels + a = gdat_d3d(shot,{'ece',['\tece' num2str(i,'%.2d')]}); + if nth_points>1 + gdat_data.data(i,:) = a.data(1:nth_points:end); + gdat_data.dim{2} = a.t(1:nth_points:end); + else + gdat_data.data(i,:) = a.data; + gdat_data.dim{2} = a.t; + end end - end - gdat_data.x = gdat_data.dim{1}; - gdat_data.t = gdat_data.dim{2}; - gdat_data.dimunits=[{'channels'} ; {'time [s]'}]; - if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end + gdat_data.x = gdat_data.dim{1}; + gdat_data.t = gdat_data.dim{2}; + gdat_data.dimunits=[{'channels'} ; {'time [s]'}]; + if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end % $$$ if match_rz_to_time % $$$ % interpolate R structure on ece data time array, to ease plot vs R % $$$ for i=1:length(channels) -% $$$ radius.data(i,:) = interp1(aR.t,aR.data(channels(i),:),gdat_data.t); -% $$$ zheight.data(i,:) = interp1(aZ.t,aZ.data(channels(i),:),gdat_data.t); +% $$$ radius.data(i,:) = interp1(aR.t,aR.data(channels(i),:),gdat_data.t); +% $$$ zheight.data(i,:) = interp1(aZ.t,aZ.data(channels(i),:),gdat_data.t); % $$$ end % $$$ radiuszheight.t=gdat_data.t; % $$$ else @@ -620,12 +620,12 @@ elseif strcmp(mapping_for_d3d.method,'switchcase') % $$$ radiuszheight.t=aR.t; % $$$ zheight.data = aZ.data(channels,:); % $$$ end - ij=find(gdat_data.data<=0); - gdat_data.data(ij)=NaN; + ij=find(gdat_data.data<=0); + gdat_data.data(ij)=NaN; % $$$ gdat_data.rz.r=radius.data; % $$$ gdat_data.rz.z=zheight.data; % $$$ gdat_data.rz.t = radiuszheight.t; - gdat_data.data_fullpath = [diag_name '\tece' num2str(channels(1)) '...' num2str(channels(end))]; + gdat_data.data_fullpath = [diag_name '\tece' num2str(channels(1)) '...' num2str(channels(end))]; % $$$ gdat_data.rhos.psi = psi_out; % $$$ gdat_data.rhos.rhopolnorm = rhopolnorm_out; @@ -634,1208 +634,1208 @@ elseif strcmp(mapping_for_d3d.method,'switchcase') % $$$ gdat_data.rhos.t = gdat_data.rz.t; % $$$ end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'eqdsk'} - % - time_eqdsks=2000.; % default time - if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) - time_eqdsks = gdat_data.gdat_params.time; - else - gdat_data.gdat_params.time = time_eqdsks; - disp(['"time" is expected as an option, choose default time = ' num2str(time_eqdsks)]); - end - if time_eqdsks < 10; - % assume given in seconds, d3d time is in ms - time_eqdsks = time_eqdsks * 1e3; - end - gdat_data.gdat_params.time = time_eqdsks; - gdat_data.t = time_eqdsks; - zshift = 0.; - if isfield(gdat_data.gdat_params,'zshift') && ~isempty(gdat_data.gdat_params.zshift) - zshift = gdat_data.gdat_params.zshift; - else - gdat_data.gdat_params.zshift = zshift; - end - gdat_data.gdat_params.zshift = zshift; - params_equil = gdat_data.gdat_params; - params_equil.data_request = 'equil'; - [equil,params_equil,error_status] = gdat_d3d(shot,params_equil); - if error_status>0 - if gdat_params.nverbose>=3; disp(['problems with ' params_equil.data_request]); end - return - end - gdat_data.gdat_params = params_equil; - gdat_data.equil = equil; - for itime=1:length(time_eqdsks) - time_eff = time_eqdsks(itime); - % use read_results updated to effectively obtain an eqdsk with sign correct with COCOS=2 - [eqdskD3D, equil_all_t, equil_t_index]=get_eqdsk_d3d(equil,time_eff,gdat_data.gdat_params.zshift,'source',gdat_data.gdat_params.equil); - eqdskD3D.fnamefull = fullfile(['/tmp/' getenv('USER')],['EQDSK_' num2str(shot) 't' num2str(time_eff,'%.4f')]); - cocos_out = equil.cocos; - if isfield(gdat_data.gdat_params,'cocos') && ~isempty(gdat_data.gdat_params.cocos) - cocos_out = gdat_data.gdat_params.cocos; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'eqdsk'} + % + time_eqdsks=2000.; % default time + if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) + time_eqdsks = gdat_data.gdat_params.time; else - gdat_data.gdat_params.cocos = cocos_out; + gdat_data.gdat_params.time = time_eqdsks; + disp(['"time" is expected as an option, choose default time = ' num2str(time_eqdsks)]); end - if equil.cocos ~= cocos_out - [eqdsk_cocosout, eqdsk_cocosout_IpB0pos,cocos_inout]=eqdsk_cocos_transform(eqdskD3D,[equil.cocos cocos_out]); + if time_eqdsks < 10; + % assume given in seconds, d3d time is in ms + time_eqdsks = time_eqdsks * 1e3; + end + gdat_data.gdat_params.time = time_eqdsks; + gdat_data.t = time_eqdsks; + zshift = 0.; + if isfield(gdat_data.gdat_params,'zshift') && ~isempty(gdat_data.gdat_params.zshift) + zshift = gdat_data.gdat_params.zshift; else - eqdsk_cocosout = eqdskD3D; - end - % for several times, use array of structure for eqdsks, - % cannot use it for psi(R,Z) in .data and .x since R, Z might be different at different times, - % so project psi(R,Z) on Rmesh, Zmesh of 1st time - if length(time_eqdsks) > 1 - gdat_data.eqdsk{itime} = write_eqdsk(eqdskD3D.fnamefull,eqdsk_cocosout); - if itime==1 - gdat_data.data(:,:,itime) = gdat_data.eqdsk{itime}.psi; - gdat_data.dim{1} = gdat_data.eqdsk{itime}.rmesh; - gdat_data.dim{2} = gdat_data.eqdsk{itime}.zmesh; + gdat_data.gdat_params.zshift = zshift; + end + gdat_data.gdat_params.zshift = zshift; + params_equil = gdat_data.gdat_params; + params_equil.data_request = 'equil'; + [equil,params_equil,error_status] = gdat_d3d(shot,params_equil); + if error_status>0 + if gdat_params.nverbose>=3; disp(['problems with ' params_equil.data_request]); end + return + end + gdat_data.gdat_params = params_equil; + gdat_data.equil = equil; + for itime=1:length(time_eqdsks) + time_eff = time_eqdsks(itime); + % use read_results updated to effectively obtain an eqdsk with sign correct with COCOS=2 + [eqdskD3D, equil_all_t, equil_t_index]=get_eqdsk_d3d(equil,time_eff,gdat_data.gdat_params.zshift,'source',gdat_data.gdat_params.equil); + eqdskD3D.fnamefull = fullfile(['/tmp/' getenv('USER')],['EQDSK_' num2str(shot) 't' num2str(time_eff,'%.4f')]); + cocos_out = equil.cocos; + if isfield(gdat_data.gdat_params,'cocos') && ~isempty(gdat_data.gdat_params.cocos) + cocos_out = gdat_data.gdat_params.cocos; else - xx=repmat(reshape(gdat_data.dim{1},length(gdat_data.dim{1}),1),1,size(gdat_data.eqdsk{itime}.psi,2)); - yy=repmat(reshape(gdat_data.dim{2},1,length(gdat_data.dim{2})),size(gdat_data.eqdsk{itime}.psi,1),1); - aa = interpos2Dcartesian(gdat_data.eqdsk{itime}.rmesh,gdat_data.eqdsk{itime}.zmesh ... - ,gdat_data.eqdsk{itime}.psi,xx,yy,-1,-1); - gdat_data.data(:,:,itime) = aa; + gdat_data.gdat_params.cocos = cocos_out; + end + if equil.cocos ~= cocos_out + [eqdsk_cocosout, eqdsk_cocosout_IpB0pos,cocos_inout]=eqdsk_cocos_transform(eqdskD3D,[equil.cocos cocos_out]); + else + eqdsk_cocosout = eqdskD3D; + end + % for several times, use array of structure for eqdsks, + % cannot use it for psi(R,Z) in .data and .x since R, Z might be different at different times, + % so project psi(R,Z) on Rmesh, Zmesh of 1st time + if length(time_eqdsks) > 1 + gdat_data.eqdsk{itime} = write_eqdsk(eqdskD3D.fnamefull,eqdsk_cocosout); + if itime==1 + gdat_data.data(:,:,itime) = gdat_data.eqdsk{itime}.psi; + gdat_data.dim{1} = gdat_data.eqdsk{itime}.rmesh; + gdat_data.dim{2} = gdat_data.eqdsk{itime}.zmesh; + else + xx=repmat(reshape(gdat_data.dim{1},length(gdat_data.dim{1}),1),1,size(gdat_data.eqdsk{itime}.psi,2)); + yy=repmat(reshape(gdat_data.dim{2},1,length(gdat_data.dim{2})),size(gdat_data.eqdsk{itime}.psi,1),1); + aa = interpos2Dcartesian(gdat_data.eqdsk{itime}.rmesh,gdat_data.eqdsk{itime}.zmesh ... + ,gdat_data.eqdsk{itime}.psi,xx,yy,-1,-1); + gdat_data.data(:,:,itime) = aa; + end + else + gdat_data.eqdsk = write_eqdsk(eqdskD3D.fnamefull,eqdsk_cocosout); + gdat_data.data = gdat_data.eqdsk.psi; + gdat_data.dim{1} = gdat_data.eqdsk.rmesh; + gdat_data.dim{2} = gdat_data.eqdsk.zmesh; end - else - gdat_data.eqdsk = write_eqdsk(eqdskD3D.fnamefull,eqdsk_cocosout); - gdat_data.data = gdat_data.eqdsk.psi; - gdat_data.dim{1} = gdat_data.eqdsk.rmesh; - gdat_data.dim{2} = gdat_data.eqdsk.zmesh; end - end - gdat_data.dim{3} = gdat_data.t; - gdat_data.x = gdat_data.dim(1:2); - gdat_data.data_fullpath=['psi(R,Z) and eqdsk from geteqdskD3D with ' gdat_data.gdat_params.equil ' ;zshift=' num2str(zshift)]; - gdat_data.units = 'T m^2'; - gdat_data.dimunits = {'m','m','s'}; - gdat_data.request_description = ['data=psi, x=(R,Z), eqdsk contains eqdsk structure with which ' ... + gdat_data.dim{3} = gdat_data.t; + gdat_data.x = gdat_data.dim(1:2); + gdat_data.data_fullpath=['psi(R,Z) and eqdsk from geteqdskD3D with ' gdat_data.gdat_params.equil ' ;zshift=' num2str(zshift)]; + gdat_data.units = 'T m^2'; + gdat_data.dimunits = {'m','m','s'}; + gdat_data.request_description = ['data=psi, x=(R,Z), eqdsk contains eqdsk structure with which ' ... 'plot_eqdsk, write_eqdsk, read_eqdsk can be used']; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'equil'} - if ~isfield(gdat_data.gdat_params,'equil') || isempty(gdat_data.gdat_params.equil) || ~ischar(gdat_data.gdat_params.equil) - gdat_data.gdat_params.equil = 'efit03'; - else - end - if exist('read_mds_eq_func')<=0 - if gdat_params.nverbose>=3; disp(['addpath(''/m/GAtools/matlab/efit'',''end'') since needs function read_mds_eq_func']); end - addpath('/m/GAtools/matlab/efit','end'); - end - [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,'d3d'); - gdat_data.rhovolnorm = eq.results.geqdsk.rhovn; - gdat_data.equil_all_t = equil_all_t; - gdat_data.eq_raw = eq; - % extract main parameters, can add more later - gdat_data.phi = []; - gdat_data.rhotornorm = []; - gdat_data.t = equil_all_t.time; - for it=1:length(equil_all_t.time) - gdat_data.qvalue(:,it) = equil_all_t.gdata(it).qpsi; - gdat_data.psi(:,it) = (equil_all_t.gdata(it).ssibry - equil_all_t.gdata(it).ssimag) ... - .* linspace(0,1,equil_all_t.gdata(it).nw)' + equil_all_t.gdata(it).ssimag; - gdat_data.psi_axis(it)= equil_all_t.gdata(it).ssimag; - gdat_data.psi_lcfs(it)= equil_all_t.gdata(it).ssibry; - gdat_data.rhopolnorm(:,it) = sqrt(abs((gdat_data.psi(:,it)-gdat_data.psi_axis(it)) ./(gdat_data.psi_lcfs(it)-gdat_data.psi_axis(it)))); - gdat_data.rhopolnorm(end,it) = 1.; - gdat_data.vol(:,it)=gdat_data.rhovolnorm(:,it).^2 .* eq.results.aeqdsk.volume(it); - gdat_data.Rmesh(:,it) = eq.results.geqdsk.r; - gdat_data.Zmesh(:,it) = eq.results.geqdsk.z; - gdat_data.psi2D(:,:,it) = equil_all_t.gdata(it).psirz; - gdat_data.pressure(:,it) = equil_all_t.gdata(it).pres; - gdat_data.dpressuredpsi(:,it) = equil_all_t.gdata(it).pprime; % 2nd index are dV/dpsi - gdat_data.ffprime(:,it) = equil_all_t.gdata(it).ffprim; - gdat_data.rwall(:,it) = equil_all_t.gdata(it).xlim; - gdat_data.zwall(:,it) = equil_all_t.gdata(it).ylim; - if equil_all_t.adata(it).rxpt1 < -9.5 - gdat_data.R_Xpoints(:,it,1) = NaN; - else - gdat_data.R_Xpoints(:,it,1) = equil_all_t.adata(it).rxpt1; - end - if equil_all_t.adata(it).rxpt1 < -9.5 - gdat_data.Z_Xpoints(:,it,1) = NaN; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'equil'} + if ~isfield(gdat_data.gdat_params,'equil') || isempty(gdat_data.gdat_params.equil) || ~ischar(gdat_data.gdat_params.equil) + gdat_data.gdat_params.equil = 'efit03'; else - gdat_data.Z_Xpoints(:,it,1) = equil_all_t.adata(it).zxpt1; end - if equil_all_t.adata(it).rxpt2 < -9.5 - gdat_data.R_Xpoints(:,it,2) = NaN; - else - gdat_data.R_Xpoints(:,it,2) = equil_all_t.adata(it).rxpt2; + if exist('read_mds_eq_func')<=0 + if gdat_params.nverbose>=3; disp(['addpath(''/m/GAtools/matlab/efit'',''end'') since needs function read_mds_eq_func']); end + addpath('/m/GAtools/matlab/efit','end'); end - if equil_all_t.adata(it).rxpt2 < -9.5 - gdat_data.Z_Xpoints(:,it,2) = NaN; - else - gdat_data.Z_Xpoints(:,it,2) = equil_all_t.adata(it).zxpt2; + [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,'d3d'); + gdat_data.rhovolnorm = eq.results.geqdsk.rhovn; + gdat_data.equil_all_t = equil_all_t; + gdat_data.eq_raw = eq; + % extract main parameters, can add more later + gdat_data.phi = []; + gdat_data.rhotornorm = []; + gdat_data.t = equil_all_t.time; + for it=1:length(equil_all_t.time) + gdat_data.qvalue(:,it) = equil_all_t.gdata(it).qpsi; + gdat_data.psi(:,it) = (equil_all_t.gdata(it).ssibry - equil_all_t.gdata(it).ssimag) ... + .* linspace(0,1,equil_all_t.gdata(it).nw)' + equil_all_t.gdata(it).ssimag; + gdat_data.psi_axis(it)= equil_all_t.gdata(it).ssimag; + gdat_data.psi_lcfs(it)= equil_all_t.gdata(it).ssibry; + gdat_data.rhopolnorm(:,it) = sqrt(abs((gdat_data.psi(:,it)-gdat_data.psi_axis(it)) ./(gdat_data.psi_lcfs(it)-gdat_data.psi_axis(it)))); + gdat_data.rhopolnorm(end,it) = 1.; + gdat_data.vol(:,it)=gdat_data.rhovolnorm(:,it).^2 .* eq.results.aeqdsk.volume(it); + gdat_data.Rmesh(:,it) = eq.results.geqdsk.r; + gdat_data.Zmesh(:,it) = eq.results.geqdsk.z; + gdat_data.psi2D(:,:,it) = equil_all_t.gdata(it).psirz; + gdat_data.pressure(:,it) = equil_all_t.gdata(it).pres; + gdat_data.dpressuredpsi(:,it) = equil_all_t.gdata(it).pprime; % 2nd index are dV/dpsi + gdat_data.ffprime(:,it) = equil_all_t.gdata(it).ffprim; + gdat_data.rwall(:,it) = equil_all_t.gdata(it).xlim; + gdat_data.zwall(:,it) = equil_all_t.gdata(it).ylim; + if equil_all_t.adata(it).rxpt1 < -9.5 + gdat_data.R_Xpoints(:,it,1) = NaN; + else + gdat_data.R_Xpoints(:,it,1) = equil_all_t.adata(it).rxpt1; + end + if equil_all_t.adata(it).rxpt1 < -9.5 + gdat_data.Z_Xpoints(:,it,1) = NaN; + else + gdat_data.Z_Xpoints(:,it,1) = equil_all_t.adata(it).zxpt1; + end + if equil_all_t.adata(it).rxpt2 < -9.5 + gdat_data.R_Xpoints(:,it,2) = NaN; + else + gdat_data.R_Xpoints(:,it,2) = equil_all_t.adata(it).rxpt2; + end + if equil_all_t.adata(it).rxpt2 < -9.5 + gdat_data.Z_Xpoints(:,it,2) = NaN; + else + gdat_data.Z_Xpoints(:,it,2) = equil_all_t.adata(it).zxpt2; + end + % end + gdat_data.x = gdat_data.rhopolnorm; % - end - gdat_data.x = gdat_data.rhopolnorm; - % - gdat_data.ip = [equil_all_t.gdata(:).cpasma]; - % - gdat_data.data = gdat_data.qvalue; % put q in data - gdat_data.units='q'; % not applicable - gdat_data.data_fullpath = ... - ['q(:,time) in .data, all from [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,''d3d'');']; - gdat_data.cocos = 2; - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.dimunits{2} = 'time [s]'; + gdat_data.ip = [equil_all_t.gdata(:).cpasma]; + % + gdat_data.data = gdat_data.qvalue; % put q in data + gdat_data.units='q'; % not applicable + gdat_data.data_fullpath = ... + ['q(:,time) in .data, all from [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,''d3d'');']; + gdat_data.cocos = 2; + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits{1} = 'rhopolnorm'; + gdat_data.dimunits{2} = 'time [s]'; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ne','te'} - exp_name_eff = gdat_data.gdat_params.exp_name; - % ne or Te from Thomson data on raw z mesh vs (z,t) - if strcmp(data_request_eff,'te') - node_leaf = 'TEMP'; - else - node_leaf = 'DENSITY'; - end - % core - nodenameeff = ['TS.BLESSED.CORE:' node_leaf]; - a = gdat_d3d(shot,{'electrons',nodenameeff}); - if isempty(a.data) || isempty(a.t) - if gdat_params.nverbose>=3; - a - disp(['with data_request= ' data_request_eff]) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ne','te'} + exp_name_eff = gdat_data.gdat_params.exp_name; + % ne or Te from Thomson data on raw z mesh vs (z,t) + if strcmp(data_request_eff,'te') + node_leaf = 'TEMP'; + else + node_leaf = 'DENSITY'; end - return - end - gdat_data.t = a.t; - gdat_data.x = a.x; - gdat_data.gdat_params.tree = a.gdat_params.tree; - gdat_data.gdat_params.equil = a.gdat_params.equil; - if any(strcmp(fieldnames(a),'units')) - gdat_data.units=a.units; - end - gdat_data.core.data = a.data'; - gdat_data.core.t = a.t; - gdat_data.core.x = a.x; + % core + nodenameeff = ['TS.BLESSED.CORE:' node_leaf]; + a = gdat_d3d(shot,{'electrons',nodenameeff}); + if isempty(a.data) || isempty(a.t) + if gdat_params.nverbose>=3; + a + disp(['with data_request= ' data_request_eff]) + end + return + end + gdat_data.t = a.t; + gdat_data.x = a.x; + gdat_data.gdat_params.tree = a.gdat_params.tree; + gdat_data.gdat_params.equil = a.gdat_params.equil; + if any(strcmp(fieldnames(a),'units')) + gdat_data.units=a.units; + end + gdat_data.core.data = a.data'; + gdat_data.core.t = a.t; + gdat_data.core.x = a.x; % $$$ gdat_data.(lower(node_child_nameeff)).error_bar = max(aup.value-gdat_data.(lower(node_child_nameeff)).data,gdat_data.(lower(node_child_nameeff)).data-alow.value); % $$$ [a,error_status]=rdaD3D_eff(shot,'VTA','R_core',exp_name_eff); % $$$ gdat_data.(lower(node_child_nameeff)).r = repmat(a.data,size(gdat_data.(lower(node_child_nameeff)).data,1),1); % $$$ [a,error_status]=rdaD3D_eff(shot,'VTA','Z_core',exp_name_eff); - gdat_data.z = gdat_data.x; - gdat_data.data_fullpath=[data_request_eff 'from ' nodenameeff]; - nb_core = numel(gdat_data.x); - gdat_data.data = a.data'; % to get time as 2nd dim - % gdat_data.data(1:nb_core,:) = gdat_data.data(1:nb_core,:); - gdat_data.dim=[{gdat_data.z};{gdat_data.t}]; - gdat_data.dimunits=[{'Z [m]'}; {'time [s]'}]; + gdat_data.z = gdat_data.x; + gdat_data.data_fullpath=[data_request_eff 'from ' nodenameeff]; + nb_core = numel(gdat_data.x); + gdat_data.data = a.data'; % to get time as 2nd dim + % gdat_data.data(1:nb_core,:) = gdat_data.data(1:nb_core,:); + gdat_data.dim=[{gdat_data.z};{gdat_data.t}]; + gdat_data.dimunits=[{'Z [m]'}; {'time [s]'}]; % $$$ gdat_data.error_bar(1:nb_core,:) = gdat_data.error_bar(1:nb_core,:); - return - % add edge part - nodenameeff_e = [upper(data_request_eff(1)) 'e_e']; - node_child_nameeff_e = [upper(data_request_eff(1)) 'e_edge']; - [a,error_status]=rdaD3D_eff(shot,'VTA',nodenameeff_e,exp_name_eff); - gdat_data.(lower(node_child_nameeff_e)).data = a.data; - ij_edge_notok = find(a.data>5e21); - gdat_data.(lower(node_child_nameeff_e)).data(ij_edge_notok) = NaN; - gdat_data.(lower(node_child_nameeff_e)).t = a.t; - if ~isempty(a.data) - [a,error_status]=rdaD3D_eff(shot,'VTA','R_edge',exp_name_eff); - gdat_data.(lower(node_child_nameeff_e)).r = repmat(a.data,size(gdat_data.(lower(node_child_nameeff_e)).data,1),1); - [a,error_status]=rdaD3D_eff(shot,'VTA','Z_edge',exp_name_eff); - gdat_data.(lower(node_child_nameeff_e)).z = repmat(a.data',1,size(gdat_data.(lower(node_child_nameeff_e)).data,2)); - nb_edge = size(gdat_data.(lower(node_child_nameeff_e)).z,1); - iaaa=iround_os(gdat_data.(lower(node_child_nameeff_e)).t,gdat_data.(lower(node_child_nameeff)).t); - gdat_data.data(nb_core+1:nb_core+nb_edge,:) = gdat_data.(lower(node_child_nameeff_e)).data(1:nb_edge,iaaa); - gdat_data.dim{1}(nb_core+1:nb_core+nb_edge,:)=gdat_data.(lower(node_child_nameeff_e)).z(1:nb_edge,iaaa); - [alow,e]=rdaD3D_eff(shot,'VTA',[upper(data_request_eff(1)) 'elow_e'],exp_name_eff); - [aup,e]=rdaD3D_eff(shot,'VTA',[upper(data_request_eff(1)) 'eupp_e'],exp_name_eff); - gdat_data.(lower(node_child_nameeff_e)).error_bar = max(aup.value-gdat_data.(lower(node_child_nameeff_e)).data, ... - gdat_data.(lower(node_child_nameeff_e)).data-alow.value); - gdat_data.error_bar(nb_core+1:nb_core+nb_edge,:) = gdat_data.(lower(node_child_nameeff_e)).error_bar(1:nb_edge,iaaa); - else - gdat_data.(lower(node_child_nameeff_e)).data = []; - gdat_data.(lower(node_child_nameeff_e)).t = []; - gdat_data.(lower(node_child_nameeff_e)).error_bar = []; - gdat_data.(lower(node_child_nameeff_e)).r = []; - gdat_data.(lower(node_child_nameeff_e)).z = []; - end - gdat_data.x=gdat_data.dim{1}; - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ne_rho', 'te_rho', 'nete_rho'} - if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) - gdat_data.gdat_params.fit = 1; % default do fit - end - params_eff = gdat_data.gdat_params; - params_eff.data_request=data_request_eff(1:2); % start with ne if nete_rho - % get raw data - [gdat_data,params_kin,error_status]=gdat_d3d(shot,params_eff); - gdat_data.gdat_params.data_request=data_request_eff; - gdat_data.gdat_request=data_request_eff; - if error_status>0 - if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end return - end - % add rho coordinates - params_eff.data_request='equil'; - [equil,params_equil,error_status]=gdat_d3d(shot,params_eff); - if error_status>0 - if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end - return - end - gdat_data.gdat_params.equil = params_equil.equil; - %gdat_data.equil = equil; + % add edge part + nodenameeff_e = [upper(data_request_eff(1)) 'e_e']; + node_child_nameeff_e = [upper(data_request_eff(1)) 'e_edge']; + [a,error_status]=rdaD3D_eff(shot,'VTA',nodenameeff_e,exp_name_eff); + gdat_data.(lower(node_child_nameeff_e)).data = a.data; + ij_edge_notok = find(a.data>5e21); + gdat_data.(lower(node_child_nameeff_e)).data(ij_edge_notok) = NaN; + gdat_data.(lower(node_child_nameeff_e)).t = a.t; + if ~isempty(a.data) + [a,error_status]=rdaD3D_eff(shot,'VTA','R_edge',exp_name_eff); + gdat_data.(lower(node_child_nameeff_e)).r = repmat(a.data,size(gdat_data.(lower(node_child_nameeff_e)).data,1),1); + [a,error_status]=rdaD3D_eff(shot,'VTA','Z_edge',exp_name_eff); + gdat_data.(lower(node_child_nameeff_e)).z = repmat(a.data',1,size(gdat_data.(lower(node_child_nameeff_e)).data,2)); + nb_edge = size(gdat_data.(lower(node_child_nameeff_e)).z,1); + iaaa=iround_os(gdat_data.(lower(node_child_nameeff_e)).t,gdat_data.(lower(node_child_nameeff)).t); + gdat_data.data(nb_core+1:nb_core+nb_edge,:) = gdat_data.(lower(node_child_nameeff_e)).data(1:nb_edge,iaaa); + gdat_data.dim{1}(nb_core+1:nb_core+nb_edge,:)=gdat_data.(lower(node_child_nameeff_e)).z(1:nb_edge,iaaa); + [alow,e]=rdaD3D_eff(shot,'VTA',[upper(data_request_eff(1)) 'elow_e'],exp_name_eff); + [aup,e]=rdaD3D_eff(shot,'VTA',[upper(data_request_eff(1)) 'eupp_e'],exp_name_eff); + gdat_data.(lower(node_child_nameeff_e)).error_bar = max(aup.value-gdat_data.(lower(node_child_nameeff_e)).data, ... + gdat_data.(lower(node_child_nameeff_e)).data-alow.value); + gdat_data.error_bar(nb_core+1:nb_core+nb_edge,:) = gdat_data.(lower(node_child_nameeff_e)).error_bar(1:nb_edge,iaaa); + else + gdat_data.(lower(node_child_nameeff_e)).data = []; + gdat_data.(lower(node_child_nameeff_e)).t = []; + gdat_data.(lower(node_child_nameeff_e)).error_bar = []; + gdat_data.(lower(node_child_nameeff_e)).r = []; + gdat_data.(lower(node_child_nameeff_e)).z = []; + end + gdat_data.x=gdat_data.dim{1}; - % core - node_child_nameeff = [upper(data_request_eff(1)) 'e_core']; - inb_chord_core=size(gdat_data.(lower(node_child_nameeff)).r,1); - inb_time_core=size(gdat_data.(lower(node_child_nameeff)).r,2); - psi_out_core = NaN*ones(inb_chord_core,inb_time_core); - rhopolnorm_out_core = NaN*ones(inb_chord_core,inb_time_core); - rhotornorm_out_core = NaN*ones(inb_chord_core,inb_time_core); - rhovolnorm_out_core = NaN*ones(inb_chord_core,inb_time_core); - % edge - node_child_nameeff_e = [upper(data_request_eff(1)) 'e_edge']; - inb_chord_edge=size(gdat_data.(lower(node_child_nameeff_e)).r,1); - inb_time_edge=size(gdat_data.(lower(node_child_nameeff_e)).r,2); - psi_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); - rhopolnorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); - rhotornorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); - rhovolnorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); - % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] - time_equil=[min(gdat_data.(lower(node_child_nameeff)).t(1)-0.1,equil.t(1)-0.1) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) max(equil.t(end)+0.1,gdat_data.(lower(node_child_nameeff)).t(end)+0.1)]; - for itequil=1:length(time_equil)-1 - rr=equil.Rmesh(:,itequil); - zz=equil.Zmesh(:,itequil); - psirz_in = equil.psi2D(:,:,itequil); - it_core_inequil = find(gdat_data.(lower(node_child_nameeff)).t>time_equil(itequil) & gdat_data.(lower(node_child_nameeff)).t<=time_equil(itequil+1)); - if ~isempty(it_core_inequil) - rout_core=gdat_data.(lower(node_child_nameeff)).r(:,it_core_inequil); - zout_core=gdat_data.(lower(node_child_nameeff)).z(:,it_core_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_core,zout_core); - psi_out_core(:,it_core_inequil) = reshape(psi_at_routzout,inb_chord_core,length(it_core_inequil)); - rhopolnorm_out_core(:,it_core_inequil) = sqrt((psi_out_core(:,it_core_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_core_inequil) - rhotornorm_out_core(:,it_core_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out_core(:,it_core_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out_core(:,it_core_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out_core(:,it_core_inequil(it_cx)),-3,[2 2],[0 1]); - end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ne_rho', 'te_rho', 'nete_rho'} + if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) + gdat_data.gdat_params.fit = 1; % default do fit + end + params_eff = gdat_data.gdat_params; + params_eff.data_request=data_request_eff(1:2); % start with ne if nete_rho + % get raw data + [gdat_data,params_kin,error_status]=gdat_d3d(shot,params_eff); + gdat_data.gdat_params.data_request=data_request_eff; + gdat_data.gdat_request=data_request_eff; + if error_status>0 + if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end + return end + % add rho coordinates + params_eff.data_request='equil'; + [equil,params_equil,error_status]=gdat_d3d(shot,params_eff); + if error_status>0 + if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end + return + end + gdat_data.gdat_params.equil = params_equil.equil; + %gdat_data.equil = equil; + + % core + node_child_nameeff = [upper(data_request_eff(1)) 'e_core']; + inb_chord_core=size(gdat_data.(lower(node_child_nameeff)).r,1); + inb_time_core=size(gdat_data.(lower(node_child_nameeff)).r,2); + psi_out_core = NaN*ones(inb_chord_core,inb_time_core); + rhopolnorm_out_core = NaN*ones(inb_chord_core,inb_time_core); + rhotornorm_out_core = NaN*ones(inb_chord_core,inb_time_core); + rhovolnorm_out_core = NaN*ones(inb_chord_core,inb_time_core); % edge - it_edge_inequil = find(gdat_data.(lower(node_child_nameeff_e)).t>time_equil(itequil) & gdat_data.(lower(node_child_nameeff_e)).t<=time_equil(itequil+1)); - if ~isempty(it_edge_inequil) - rout_edge=gdat_data.(lower(node_child_nameeff_e)).r(:,it_edge_inequil); - zout_edge=gdat_data.(lower(node_child_nameeff_e)).z(:,it_edge_inequil); - psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_edge,zout_edge); - psi_out_edge(:,it_edge_inequil) = reshape(psi_at_routzout,inb_chord_edge,length(it_edge_inequil)); - rhopolnorm_out_edge(:,it_edge_inequil) = sqrt((psi_out_edge(:,it_edge_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); - for it_cx=1:length(it_edge_inequil) - rhotornorm_out_edge(:,it_edge_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out_edge(:,it_edge_inequil(it_cx)),-3,[2 2],[0 1]); - rhovolnorm_out_edge(:,it_edge_inequil(it_cx)) = ... - interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out_edge(:,it_edge_inequil(it_cx)),-3,[2 2],[0 1]); - end + node_child_nameeff_e = [upper(data_request_eff(1)) 'e_edge']; + inb_chord_edge=size(gdat_data.(lower(node_child_nameeff_e)).r,1); + inb_time_edge=size(gdat_data.(lower(node_child_nameeff_e)).r,2); + psi_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); + rhopolnorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); + rhotornorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); + rhovolnorm_out_edge = NaN*ones(inb_chord_edge,inb_time_edge); + % constructs intervals within which a given equil is used: [time_equil(i),time_equil(i+1)] + time_equil=[min(gdat_data.(lower(node_child_nameeff)).t(1)-0.1,equil.t(1)-0.1) 0.5.*(equil.t(1:end-1)+equil.t(2:end)) max(equil.t(end)+0.1,gdat_data.(lower(node_child_nameeff)).t(end)+0.1)]; + for itequil=1:length(time_equil)-1 + rr=equil.Rmesh(:,itequil); + zz=equil.Zmesh(:,itequil); + psirz_in = equil.psi2D(:,:,itequil); + it_core_inequil = find(gdat_data.(lower(node_child_nameeff)).t>time_equil(itequil) & gdat_data.(lower(node_child_nameeff)).t<=time_equil(itequil+1)); + if ~isempty(it_core_inequil) + rout_core=gdat_data.(lower(node_child_nameeff)).r(:,it_core_inequil); + zout_core=gdat_data.(lower(node_child_nameeff)).z(:,it_core_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_core,zout_core); + psi_out_core(:,it_core_inequil) = reshape(psi_at_routzout,inb_chord_core,length(it_core_inequil)); + rhopolnorm_out_core(:,it_core_inequil) = sqrt((psi_out_core(:,it_core_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_core_inequil) + rhotornorm_out_core(:,it_core_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out_core(:,it_core_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out_core(:,it_core_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out_core(:,it_core_inequil(it_cx)),-3,[2 2],[0 1]); + end + end + % edge + it_edge_inequil = find(gdat_data.(lower(node_child_nameeff_e)).t>time_equil(itequil) & gdat_data.(lower(node_child_nameeff_e)).t<=time_equil(itequil+1)); + if ~isempty(it_edge_inequil) + rout_edge=gdat_data.(lower(node_child_nameeff_e)).r(:,it_edge_inequil); + zout_edge=gdat_data.(lower(node_child_nameeff_e)).z(:,it_edge_inequil); + psi_at_routzout = interpos2Dcartesian(rr,zz,psirz_in,rout_edge,zout_edge); + psi_out_edge(:,it_edge_inequil) = reshape(psi_at_routzout,inb_chord_edge,length(it_edge_inequil)); + rhopolnorm_out_edge(:,it_edge_inequil) = sqrt((psi_out_edge(:,it_edge_inequil)-equil.psi_axis(itequil))./(equil.psi_lcfs(itequil)-equil.psi_axis(itequil))); + for it_cx=1:length(it_edge_inequil) + rhotornorm_out_edge(:,it_edge_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhotornorm(:,itequil),rhopolnorm_out_edge(:,it_edge_inequil(it_cx)),-3,[2 2],[0 1]); + rhovolnorm_out_edge(:,it_edge_inequil(it_cx)) = ... + interpos(equil.rhopolnorm(:,itequil),equil.rhovolnorm(:,itequil),rhopolnorm_out_edge(:,it_edge_inequil(it_cx)),-3,[2 2],[0 1]); + end + end end - end - gdat_data.(lower(node_child_nameeff)).psi = psi_out_core; - gdat_data.(lower(node_child_nameeff)).rhopolnorm = rhopolnorm_out_core; - gdat_data.(lower(node_child_nameeff)).rhotornorm = rhotornorm_out_core; - gdat_data.(lower(node_child_nameeff)).rhovolnorm = rhovolnorm_out_core; - gdat_data.(lower(node_child_nameeff_e)).psi = psi_out_edge; - gdat_data.(lower(node_child_nameeff_e)).rhopolnorm = rhopolnorm_out_edge; - gdat_data.(lower(node_child_nameeff_e)).rhotornorm = rhotornorm_out_edge; - gdat_data.(lower(node_child_nameeff_e)).rhovolnorm = rhovolnorm_out_edge; - % put values of rhopolnorm for dim{1} by default, all radial mesh for combined core, edge in grids_1d - gdat_data.x = gdat_data.(lower(node_child_nameeff)).rhopolnorm; - iaaa=iround_os(gdat_data.(lower(node_child_nameeff_e)).t,gdat_data.(lower(node_child_nameeff)).t); - gdat_data.x(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhopolnorm(:,iaaa); - gdat_data.dim{1} = gdat_data.x; - gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.grids_1d.rhopolnorm = gdat_data.x; - gdat_data.grids_1d.psi = gdat_data.(lower(node_child_nameeff)).psi; - gdat_data.grids_1d.psi(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).psi(:,iaaa); - gdat_data.grids_1d.rhotornorm = gdat_data.(lower(node_child_nameeff)).rhotornorm; - gdat_data.grids_1d.rhotornorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhotornorm(:,iaaa); - gdat_data.grids_1d.rhovolnorm = gdat_data.(lower(node_child_nameeff)).rhovolnorm; - gdat_data.grids_1d.rhovolnorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhovolnorm(:,iaaa); + gdat_data.(lower(node_child_nameeff)).psi = psi_out_core; + gdat_data.(lower(node_child_nameeff)).rhopolnorm = rhopolnorm_out_core; + gdat_data.(lower(node_child_nameeff)).rhotornorm = rhotornorm_out_core; + gdat_data.(lower(node_child_nameeff)).rhovolnorm = rhovolnorm_out_core; + gdat_data.(lower(node_child_nameeff_e)).psi = psi_out_edge; + gdat_data.(lower(node_child_nameeff_e)).rhopolnorm = rhopolnorm_out_edge; + gdat_data.(lower(node_child_nameeff_e)).rhotornorm = rhotornorm_out_edge; + gdat_data.(lower(node_child_nameeff_e)).rhovolnorm = rhovolnorm_out_edge; + % put values of rhopolnorm for dim{1} by default, all radial mesh for combined core, edge in grids_1d + gdat_data.x = gdat_data.(lower(node_child_nameeff)).rhopolnorm; + iaaa=iround_os(gdat_data.(lower(node_child_nameeff_e)).t,gdat_data.(lower(node_child_nameeff)).t); + gdat_data.x(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhopolnorm(:,iaaa); + gdat_data.dim{1} = gdat_data.x; + gdat_data.dimunits{1} = 'rhopolnorm'; + gdat_data.grids_1d.rhopolnorm = gdat_data.x; + gdat_data.grids_1d.psi = gdat_data.(lower(node_child_nameeff)).psi; + gdat_data.grids_1d.psi(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).psi(:,iaaa); + gdat_data.grids_1d.rhotornorm = gdat_data.(lower(node_child_nameeff)).rhotornorm; + gdat_data.grids_1d.rhotornorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhotornorm(:,iaaa); + gdat_data.grids_1d.rhovolnorm = gdat_data.(lower(node_child_nameeff)).rhovolnorm; + gdat_data.grids_1d.rhovolnorm(inb_chord_core+1:inb_chord_core+inb_chord_edge,:) = gdat_data.(lower(node_child_nameeff_e)).rhovolnorm(:,iaaa); - gdat_data.data_fullpath = [gdat_data.data_fullpath ' projected on equilibrium ' gdat_data.gdat_params.equil]; + gdat_data.data_fullpath = [gdat_data.data_fullpath ' projected on equilibrium ' gdat_data.gdat_params.equil]; - % if nete_rho, copy data as .ne, get .te and put pe=e ne Te in data: - gdat_data.(data_request_eff(1:2)).data = gdat_data.data; - gdat_data.(data_request_eff(1:2)).error_bar = gdat_data.error_bar; - gdat_data.(data_request_eff(1:2)).units = gdat_data.units; - gdat_data.(data_request_eff(1:2)).core = gdat_data.([data_request_eff(1:2) '_core']); - gdat_data.(data_request_eff(1:2)).edge = gdat_data.([data_request_eff(1:2) '_edge']); - gdat_data = rmfield(gdat_data,{[data_request_eff(1:2) '_core'],[data_request_eff(1:2) '_edge']}); - if strcmp(data_request_eff(1:4),'nete') - params_eff.data_request=data_request_eff(3:4); - [gdat_data_te,params_kin,error_status]=gdat_d3d(shot,params_eff); - gdat_data.te.data = gdat_data_te.data; - gdat_data.te.error_bar = gdat_data_te.error_bar; - gdat_data.te.units = gdat_data_te.units; - gdat_data.te.core = gdat_data_te.te_core; - gdat_data.te.edge = gdat_data_te.te_edge; - gdat_data.te.error_bar = gdat_data_te.error_bar; - gdat_data.te.core.psi = gdat_data.ne.core.psi; - gdat_data.te.core.rhopolnorm = gdat_data.ne.core.rhopolnorm; - gdat_data.te.core.rhotornorm = gdat_data.ne.core.rhotornorm; - gdat_data.te.core.rhovolnorm = gdat_data.ne.core.rhovolnorm; - gdat_data.te.edge.psi = gdat_data.ne.edge.psi; - gdat_data.te.edge.rhopolnorm = gdat_data.ne.edge.rhopolnorm; - gdat_data.te.edge.rhotornorm = gdat_data.ne.edge.rhotornorm; - gdat_data.te.edge.rhovolnorm = gdat_data.ne.edge.rhovolnorm; - % put pe in main gdat_data - gdat_data.data = 1.6022e-19.*gdat_data.ne.data.*gdat_data.te.data; - gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ... + % if nete_rho, copy data as .ne, get .te and put pe=e ne Te in data: + gdat_data.(data_request_eff(1:2)).data = gdat_data.data; + gdat_data.(data_request_eff(1:2)).error_bar = gdat_data.error_bar; + gdat_data.(data_request_eff(1:2)).units = gdat_data.units; + gdat_data.(data_request_eff(1:2)).core = gdat_data.([data_request_eff(1:2) '_core']); + gdat_data.(data_request_eff(1:2)).edge = gdat_data.([data_request_eff(1:2) '_edge']); + gdat_data = rmfield(gdat_data,{[data_request_eff(1:2) '_core'],[data_request_eff(1:2) '_edge']}); + if strcmp(data_request_eff(1:4),'nete') + params_eff.data_request=data_request_eff(3:4); + [gdat_data_te,params_kin,error_status]=gdat_d3d(shot,params_eff); + gdat_data.te.data = gdat_data_te.data; + gdat_data.te.error_bar = gdat_data_te.error_bar; + gdat_data.te.units = gdat_data_te.units; + gdat_data.te.core = gdat_data_te.te_core; + gdat_data.te.edge = gdat_data_te.te_edge; + gdat_data.te.error_bar = gdat_data_te.error_bar; + gdat_data.te.core.psi = gdat_data.ne.core.psi; + gdat_data.te.core.rhopolnorm = gdat_data.ne.core.rhopolnorm; + gdat_data.te.core.rhotornorm = gdat_data.ne.core.rhotornorm; + gdat_data.te.core.rhovolnorm = gdat_data.ne.core.rhovolnorm; + gdat_data.te.edge.psi = gdat_data.ne.edge.psi; + gdat_data.te.edge.rhopolnorm = gdat_data.ne.edge.rhopolnorm; + gdat_data.te.edge.rhotornorm = gdat_data.ne.edge.rhotornorm; + gdat_data.te.edge.rhovolnorm = gdat_data.ne.edge.rhovolnorm; + % put pe in main gdat_data + gdat_data.data = 1.6022e-19.*gdat_data.ne.data.*gdat_data.te.data; + gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ... + gdat_data.te.data .* gdat_data.ne.error_bar); - gdat_data.units='N/m^2; 1.6022e-19 ne Te'; - gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te ' gdat_data.data_fullpath(3:end)]; - gdat_data.label = 'pe'; - end - - % defaults for fits, so user always gets std structure - gdat_data.fit.rhotornorm = []; % same for both ne and te - gdat_data.fit.rhopolnorm = []; - gdat_data.fit.t = []; - gdat_data.fit.te.data = []; - gdat_data.fit.te.drhotornorm = []; - gdat_data.fit.ne.data = []; - gdat_data.fit.ne.drhotornorm = []; - gdat_data.fit.raw.te.data = []; - gdat_data.fit.raw.te.rhotornorm = []; - gdat_data.fit.raw.ne.data = []; - gdat_data.fit.raw.ne.rhotornorm = []; - fit_tension_default = -0.1; - if isfield(gdat_data.gdat_params,'fit_tension') - fit_tension = gdat_data.gdat_params.fit_tension; - else - fit_tension = fit_tension_default; - end - if ~isstruct(fit_tension) - fit_tension_eff.te = fit_tension; - fit_tension_eff.ne = fit_tension; - fit_tension = fit_tension_eff; - else - if ~isfield(fit_tension,'te'); fit_tension.te = fit_tension_default; end - if ~isfield(fit_tension,'ne '); fit_tension.ne = fit_tension_default; end - end - gdat_data.gdat_params.fit_tension = fit_tension; - if isfield(gdat_data.gdat_params,'fit_nb_rho_points') - fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; - else - fit_nb_rho_points = 201; - end - gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; - % - if gdat_data.gdat_params.fit==1 - % add fits - gdat_data.fit.t = gdat_data.t; - rhotornormfit = linspace(0,1,fit_nb_rho_points)'; - gdat_data.fit.rhotornorm = rhotornormfit; - gdat_data.fit.rhopolnorm = NaN*ones(length(rhotornormfit),length(gdat_data.fit.t)); - if any(strfind(data_request_eff,'te')) - gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.rhotornorm = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.te.data = gdat_data.fit.rhopolnorm; - gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm; - end - if any(strfind(data_request_eff,'ne')) - gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.raw.ne.rhotornorm = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm; - gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm; - end - for it=1:length(gdat_data.t) - % make rhotor->rhopol transformation for each time since equilibrium might have changed - irhook=find(gdat_data.grids_1d.rhotornorm(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<1); % no need for ~isnan - [rhoeff isort]=sort(gdat_data.grids_1d.rhotornorm(irhook,it)); - gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.grids_1d.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]); - if any(strfind(data_request_eff,'te')) - idatate = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); - if length(idatate)>0 - gdat_data.fit.raw.te.rhotornorm(idatate,it) = gdat_data.grids_1d.rhotornorm(idatate,it); - gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it); - gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it); - [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatate,it)); - rhoeff = [0; rhoeff]; - teeff = gdat_data.te.data(idatate(irhoeff),it); - te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it); - % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar - ij=find(teeff./te_err_eff>10.); - if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end - % - teeff = [teeff(1); teeff]; - te_err_eff = [1e4; te_err_eff]; - [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff); - end - end - if any(strfind(data_request_eff,'ne')) - idatane = find(gdat_data.ne.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); - if length(idatane)>0 - gdat_data.fit.raw.ne.rhotornorm(idatane,it) = gdat_data.grids_1d.rhotornorm(idatane,it); - gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it); - gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it); - [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatane,it)); - rhoeff = [0; rhoeff]; - % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar - neeff = gdat_data.ne.data(idatane(irhoeff),it); - ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it); - ij=find(neeff./ne_err_eff>10.); - if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end - % - neeff = [neeff(1); neeff]; - ne_err_eff = [1e21; ne_err_eff]; - [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff); - end - end + gdat_data.units='N/m^2; 1.6022e-19 ne Te'; + gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te ' gdat_data.data_fullpath(3:end)]; + gdat_data.label = 'pe'; end - end - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'pgyro'} - % LOAD MULTI CHANNEL DATA ECS - % powers, frequencies, etc - params_eff = gdat_data.gdat_params; - params_eff.data_request={'rf' '\echpwrc'}; -% $$$ gyro_names={'leia','luke','scarecrow','tinman','chewbacca','nasa'}; -% $$$ power_names={'ecleifpwrc','eclukfpwrc','ecscafpwrc','ectinfpwrc','ecchefpwrc','ecnasfpwrc'}; - gyro_names={'leia','luke','r2d2','yoda','han'}; - power_names={'ecleifpwrc','eclukfpwrc','ecr2dfpwrc','ecyodfpwrc','echanfpwrc'}; - % pgyro tot in index=length(gyro_names)+1 - try - gdat_data=gdat_d3d(shot,params_eff); - gdat_data.data_request = data_request_eff; - gdat_data.gdat_params.data_request = data_request_eff; - catch - if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end - gdat_data.data_request = data_request_eff; - return - end - nb_timepoints = length(gdat_data.t); - pgyro = NaN*ones(nb_timepoints,length(gyro_names)+1); - pgyro(:,length(gyro_names)+1) = reshape(gdat_data.data,nb_timepoints,1); - gdat_data.data = pgyro; - labels{length(gyro_names)+1} = 'ECtot'; - for i=1:length(gyro_names) - % "old" ECRH1 gyrotrons: gyro 1 to 4 in pgyro - params_eff.data_request={'rf',['ech.' gyro_names{i} ':' power_names{i}]}; - gdat_data_i=gdat_d3d(shot,params_eff); - if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + % defaults for fits, so user always gets std structure + gdat_data.fit.rhotornorm = []; % same for both ne and te + gdat_data.fit.rhopolnorm = []; + gdat_data.fit.t = []; + gdat_data.fit.te.data = []; + gdat_data.fit.te.drhotornorm = []; + gdat_data.fit.ne.data = []; + gdat_data.fit.ne.drhotornorm = []; + gdat_data.fit.raw.te.data = []; + gdat_data.fit.raw.te.rhotornorm = []; + gdat_data.fit.raw.ne.data = []; + gdat_data.fit.raw.ne.rhotornorm = []; + fit_tension_default = -0.1; + if isfield(gdat_data.gdat_params,'fit_tension') + fit_tension = gdat_data.gdat_params.fit_tension; else - gdat_data.ec{i} = gdat_data_i; - gdat_data.data(:,i) = reshape(gdat_data_i.data,nb_timepoints,1); - gdat_data.dim = [{gdat_data_i.t} {[1:length(gyro_names)+1]}]; - if max(gdat_data_i.data) > 0. - % labels{i} = [gyro_names{i} ':' power_names{i}]; - labels{i} = [gyro_names{i}]; - end - end - try - params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'polang']}; - a=gdat_d3d(shot,params_eff); - catch - % polang not present - a=[]; + fit_tension = fit_tension_default; end - if isempty(a) + if ~isstruct(fit_tension) + fit_tension_eff.te = fit_tension; + fit_tension_eff.ne = fit_tension; + fit_tension = fit_tension_eff; else - gdat_data.ec{i}.polang_t = a.t; - gdat_data.ec{i}.polang = a.data; - gdat_data.polang_ec{i} = a; + if ~isfield(fit_tension,'te'); fit_tension.te = fit_tension_default; end + if ~isfield(fit_tension,'ne '); fit_tension.ne = fit_tension_default; end end - try - params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'polcnt']}; - a=gdat_d3d(shot,params_eff); - catch - a=[]; - end - if isempty(a) + gdat_data.gdat_params.fit_tension = fit_tension; + if isfield(gdat_data.gdat_params,'fit_nb_rho_points') + fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; else - gdat_data.ec{i}.polcnt = a.data; - gdat_data.polcnt_ec{i} = a; + fit_nb_rho_points = 201; + end + gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; + % + if gdat_data.gdat_params.fit==1 + % add fits + gdat_data.fit.t = gdat_data.t; + rhotornormfit = linspace(0,1,fit_nb_rho_points)'; + gdat_data.fit.rhotornorm = rhotornormfit; + gdat_data.fit.rhopolnorm = NaN*ones(length(rhotornormfit),length(gdat_data.fit.t)); + if any(strfind(data_request_eff,'te')) + gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.rhotornorm = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.te.data = gdat_data.fit.rhopolnorm; + gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm; + end + if any(strfind(data_request_eff,'ne')) + gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.rhotornorm = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm; + gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm; + end + for it=1:length(gdat_data.t) + % make rhotor->rhopol transformation for each time since equilibrium might have changed + irhook=find(gdat_data.grids_1d.rhotornorm(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<1); % no need for ~isnan + [rhoeff isort]=sort(gdat_data.grids_1d.rhotornorm(irhook,it)); + gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.grids_1d.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]); + if any(strfind(data_request_eff,'te')) + idatate = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); + if length(idatate)>0 + gdat_data.fit.raw.te.rhotornorm(idatate,it) = gdat_data.grids_1d.rhotornorm(idatate,it); + gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it); + gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatate,it)); + rhoeff = [0; rhoeff]; + teeff = gdat_data.te.data(idatate(irhoeff),it); + te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it); + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + ij=find(teeff./te_err_eff>10.); + if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end + % + teeff = [teeff(1); teeff]; + te_err_eff = [1e4; te_err_eff]; + [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff); + end + end + if any(strfind(data_request_eff,'ne')) + idatane = find(gdat_data.ne.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); + if length(idatane)>0 + gdat_data.fit.raw.ne.rhotornorm(idatane,it) = gdat_data.grids_1d.rhotornorm(idatane,it); + gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it); + gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatane,it)); + rhoeff = [0; rhoeff]; + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + neeff = gdat_data.ne.data(idatane(irhoeff),it); + ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it); + ij=find(neeff./ne_err_eff>10.); + if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end + % + neeff = [neeff(1); neeff]; + ne_err_eff = [1e21; ne_err_eff]; + [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff); + end + end + end end + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'pgyro'} + % LOAD MULTI CHANNEL DATA ECS + % powers, frequencies, etc + params_eff = gdat_data.gdat_params; + params_eff.data_request={'rf' '\echpwrc'}; +% $$$ gyro_names={'leia','luke','scarecrow','tinman','chewbacca','nasa'}; +% $$$ power_names={'ecleifpwrc','eclukfpwrc','ecscafpwrc','ectinfpwrc','ecchefpwrc','ecnasfpwrc'}; + gyro_names={'leia','luke','r2d2','yoda','han'}; + power_names={'ecleifpwrc','eclukfpwrc','ecr2dfpwrc','ecyodfpwrc','echanfpwrc'}; + % pgyro tot in index=length(gyro_names)+1 try - params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'torcnt']}; - a=gdat_d3d(shot,params_eff); + gdat_data=gdat_d3d(shot,params_eff); + gdat_data.data_request = data_request_eff; + gdat_data.gdat_params.data_request = data_request_eff; catch - a=[]; + if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end + gdat_data.data_request = data_request_eff; + return end - if isempty(a) + nb_timepoints = length(gdat_data.t); + pgyro = NaN*ones(nb_timepoints,length(gyro_names)+1); + pgyro(:,length(gyro_names)+1) = reshape(gdat_data.data,nb_timepoints,1); + gdat_data.data = pgyro; + labels{length(gyro_names)+1} = 'ECtot'; + for i=1:length(gyro_names) + % "old" ECRH1 gyrotrons: gyro 1 to 4 in pgyro + params_eff.data_request={'rf',['ech.' gyro_names{i} ':' power_names{i}]}; + gdat_data_i=gdat_d3d(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i} = gdat_data_i; + gdat_data.data(:,i) = reshape(gdat_data_i.data,nb_timepoints,1); + gdat_data.dim = [{gdat_data_i.t} {[1:length(gyro_names)+1]}]; + if max(gdat_data_i.data) > 0. + % labels{i} = [gyro_names{i} ':' power_names{i}]; + labels{i} = [gyro_names{i}]; + end + end + try + params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'polang']}; + a=gdat_d3d(shot,params_eff); + catch + % polang not present + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.polang_t = a.t; + gdat_data.ec{i}.polang = a.data; + gdat_data.polang_ec{i} = a; + end + try + params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'polcnt']}; + a=gdat_d3d(shot,params_eff); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.polcnt = a.data; + gdat_data.polcnt_ec{i} = a; + end + try + params_eff.data_request={'rf',['ech.' gyro_names{i} ':ec' gyro_names{i}(1:3) 'torcnt']}; + a=gdat_d3d(shot,params_eff); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.torcnt = a.data; + gdat_data.torcnt_ec{i} = a; + end + end + gdat_data.gyro_names = gyro_names; + gdat_data.power_names = power_names; + % add ech on time_interval from total power>3% of max; + ij=find(gdat_data.data(:,end)>0.03.*max(gdat_data.data(:,end))); + if ~isempty(ij) + gdat_data.ec_t_on = [gdat_data.t(ij(1)) gdat_data.t(ij(end))]; else - gdat_data.ec{i}.torcnt = a.data; - gdat_data.torcnt_ec{i} = a; + gdat_data.ec_t_on = [0 0]; end - end - gdat_data.gyro_names = gyro_names; - gdat_data.power_names = power_names; - % add ech on time_interval from total power>3% of max; - ij=find(gdat_data.data(:,end)>0.03.*max(gdat_data.data(:,end))); - if ~isempty(ij) - gdat_data.ec_t_on = [gdat_data.t(ij(1)) gdat_data.t(ij(end))]; - else - gdat_data.ec_t_on = [0 0]; - end - if ~isempty(gdat_data.dim) - gdat_data.t = gdat_data.dim{1}; - gdat_data.x = gdat_data.dim{2}; - gdat_data.dimunits=[{'time [ms]'} gyro_names{:} {'ECtot'}]; - gdat_data.units='W'; - gdat_data.data_fullpath=['rf::ech.gyro_names:ec..pwrc']; - icount=0; - for i=1:length(labels) - if ~isempty(labels{i}) - icount=icount+1; - if icount==1 & ~iscell(gdat_data.label) - gdat_data = rmfield(gdat_data,'label'); + if ~isempty(gdat_data.dim) + gdat_data.t = gdat_data.dim{1}; + gdat_data.x = gdat_data.dim{2}; + gdat_data.dimunits=[{'time [ms]'} gyro_names{:} {'ECtot'}]; + gdat_data.units='W'; + gdat_data.data_fullpath=['rf::ech.gyro_names:ec..pwrc']; + icount=0; + for i=1:length(labels) + if ~isempty(labels{i}) + icount=icount+1; + if icount==1 & ~iscell(gdat_data.label) + gdat_data = rmfield(gdat_data,'label'); + end + gdat_data.label{icount} = labels{i}; end - gdat_data.label{icount} = labels{i}; - end + end + else + gdat_data.freq_ech_units =[]'; + gdat_data.ec = []; + gdat_data.polpos_ec = []; + gdat_data.torpos_ec = []; end - else - gdat_data.freq_ech_units =[]'; - gdat_data.ec = []; - gdat_data.polpos_ec = []; - gdat_data.torpos_ec = []; - end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'powers'} - sources_avail = {'ohm','ec','nbi','ic'}; % note should allow ech, nbh, ohmic in parameter sources - sources_avail = {'ohm','ec','nbi'}; % note should allow ech, nbh, ohmic in parameter sources - for i=1:length(sources_avail) - gdat_data.(sources_avail{i}).data = []; - gdat_data.(sources_avail{i}).units = []; - gdat_data.(sources_avail{i}).dim=[]; - gdat_data.(sources_avail{i}).dimunits=[]; - gdat_data.(sources_avail{i}).t=[]; - gdat_data.(sources_avail{i}).x=[]; - gdat_data.(sources_avail{i}).data_fullpath=[]; - gdat_data.(sources_avail{i}).label=[]; - end - if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = sources_avail; - elseif ~iscell(gdat_data.gdat_params.source) - if ischar(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); - if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) - if (gdat_params.nverbose>=1) - warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'powers'} + sources_avail = {'ohm','ec','nbi','ic'}; % note should allow ech, nbh, ohmic in parameter sources + sources_avail = {'ohm','ec','nbi'}; % note should allow ech, nbh, ohmic in parameter sources + for i=1:length(sources_avail) + gdat_data.(sources_avail{i}).data = []; + gdat_data.(sources_avail{i}).units = []; + gdat_data.(sources_avail{i}).dim=[]; + gdat_data.(sources_avail{i}).dimunits=[]; + gdat_data.(sources_avail{i}).t=[]; + gdat_data.(sources_avail{i}).x=[]; + gdat_data.(sources_avail{i}).data_fullpath=[]; + gdat_data.(sources_avail{i}).label=[]; + end + if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) + gdat_data.gdat_params.source = sources_avail; + elseif ~iscell(gdat_data.gdat_params.source) + if ischar(gdat_data.gdat_params.source) + gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); + if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) + if (gdat_params.nverbose>=1) + warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); + end + return + else + gdat_data.gdat_params.source = {gdat_data.gdat_params.source}; end - return else - gdat_data.gdat_params.source = {gdat_data.gdat_params.source}; + if (gdat_params.nverbose>=1); warning([' source parameter not compatible with: ' sprintf('''%s'' ',sources_avail{:})]); end + return end else - if (gdat_params.nverbose>=1); warning([' source parameter not compatible with: ' sprintf('''%s'' ',sources_avail{:})]); end - return - end - else - for i=1:length(gdat_data.gdat_params.source) - gdat_data.gdat_params.source{i} = lower(gdat_data.gdat_params.source{i}); - if ~any(strmatch(gdat_data.gdat_params.source{i},lower(sources_avail))) - if gdat_data.gdat_params.nverbose>=1 - warning(['source = ' gdat_data.gdat_params.source{i} ' not expected with data_request= ' data_request_eff]) + for i=1:length(gdat_data.gdat_params.source) + gdat_data.gdat_params.source{i} = lower(gdat_data.gdat_params.source{i}); + if ~any(strmatch(gdat_data.gdat_params.source{i},lower(sources_avail))) + if gdat_data.gdat_params.nverbose>=1 + warning(['source = ' gdat_data.gdat_params.source{i} ' not expected with data_request= ' data_request_eff]) + end end end end - end - % always start from ohmic so can use this time as base time since should yield full shot + % always start from ohmic so can use this time as base time since should yield full shot - fields_to_copy = {'data','units','dim','dimunits','t','x','data_fullpath','label','help','gdat_params'}; - fields_to_not_copy = {'shot','gdat_request'}; - % total of each source in .data, but full data in subfield like pgyro in .ec, to check for nbi - params_eff = gdat_data.gdat_params; - % ohmic, use its time-base - params_eff.data_request={'EFIT01','\vloopmhd'}; %poh too noisy even if vloop*ip is not quite correct - try - ohm=gdat_d3d(shot,params_eff); - catch - ohm.data = []; - ohm.dim = []; - end - if ~isempty(ohm.data) && ~isempty(ohm.dim) - ip=gdat_d3d(shot,'ip'); - ip_ohm=interp1(ip.t,ip.data,ohm.t); - ohm.data = ohm.data .* ip_ohm; - for i=1:length(fields_to_copy) - if isfield(ohm,fields_to_copy{i}) - gdat_data.ohm.(fields_to_copy{i}) = ohm.(fields_to_copy{i}); - end - end - gdat_data.ohm.raw_data = gdat_data.ohm.data; - else - if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end - return - end - mapping_for_d3d.timedim = 1; mapping_for_d3d.gdat_timedim = 1; - taus = -10; - % - % add each source in main.data, on ohm time array - gdat_data.t = gdat_data.ohm.t; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dimunits{1} = 's'; - gdat_data.ohm.data = interpos(gdat_data.t,gdat_data.ohm.raw_data,5.*taus); - gdat_data.data = reshape(gdat_data.ohm.data,length(gdat_data.t),1); - gdat_data.ohm.tension = 5.*taus; - gdat_data.x =[1]; - gdat_data.label={'P_{ohm}'}; - gdat_data.units = 'W'; - % - if any(strmatch('ec',gdat_data.gdat_params.source)) - % ec - params_eff.data_request='pgyro'; + fields_to_copy = {'data','units','dim','dimunits','t','x','data_fullpath','label','help','gdat_params'}; + fields_to_not_copy = {'shot','gdat_request'}; + % total of each source in .data, but full data in subfield like pgyro in .ec, to check for nbi + params_eff = gdat_data.gdat_params; + % ohmic, use its time-base + params_eff.data_request={'EFIT01','\vloopmhd'}; %poh too noisy even if vloop*ip is not quite correct try - ec=gdat_d3d(shot,params_eff); + ohm=gdat_d3d(shot,params_eff); catch + ohm.data = []; + ohm.dim = []; end - if ~isempty(ec.data) && ~isempty(ec.dim) - for i=1:length(fields_to_copy) - % if has pgyro, use not_copy - if isfield(ec,fields_to_copy{i}) && ~any(strmatch(fields_to_not_copy,fields_to_copy{i})) - gdat_data.ec.(fields_to_copy{i}) = ec.(fields_to_copy{i}); - end - end - gdat_data.data(:,end+1) = interpos(-21,gdat_data.ec.t,gdat_data.ec.data(:,end),gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{ec}'; - end - end - % - if any(strmatch('nb',gdat_data.gdat_params.source)) - % nbi - params_eff.data_request='nbi'; - try - nbi=gdat_d3d(shot,params_eff); - catch - end - if ~isempty(nbi.data) && ~isempty(nbi.dim) - for i=1:length(fields_to_copy) - if isfield(nbi,fields_to_copy{i}) - gdat_data.nbi.(fields_to_copy{i}) = nbi.(fields_to_copy{i}); - end - end - % add to main with linear interpolation and 0 for extrapolated values - gdat_data.data(:,end+1) = interpos(-21,gdat_data.nbi.t,gdat_data.nbi.data(:,end),gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{nbi}'; + if ~isempty(ohm.data) && ~isempty(ohm.dim) + ip=gdat_d3d(shot,'ip'); + ip_ohm=interp1(ip.t,ip.data,ohm.t); + ohm.data = ohm.data .* ip_ohm; + for i=1:length(fields_to_copy) + if isfield(ohm,fields_to_copy{i}) + gdat_data.ohm.(fields_to_copy{i}) = ohm.(fields_to_copy{i}); + end + end + gdat_data.ohm.raw_data = gdat_data.ohm.data; + else + if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end + return end - end - % - if any(strmatch('ic',gdat_data.gdat_params.source)) - % ic - params_eff.data_request={'ICP','PICRN'}; - try - ic=gdat_d3d(shot,params_eff); - catch + mapping_for_d3d.timedim = 1; mapping_for_d3d.gdat_timedim = 1; + taus = -10; + % + % add each source in main.data, on ohm time array + gdat_data.t = gdat_data.ohm.t; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dimunits{1} = 's'; + gdat_data.ohm.data = interpos(gdat_data.t,gdat_data.ohm.raw_data,5.*taus); + gdat_data.data = reshape(gdat_data.ohm.data,length(gdat_data.t),1); + gdat_data.ohm.tension = 5.*taus; + gdat_data.x =[1]; + gdat_data.label={'P_{ohm}'}; + gdat_data.units = 'W'; + % + if any(strmatch('ec',gdat_data.gdat_params.source)) + % ec + params_eff.data_request='pgyro'; + try + ec=gdat_d3d(shot,params_eff); + catch + end + if ~isempty(ec.data) && ~isempty(ec.dim) + for i=1:length(fields_to_copy) + % if has pgyro, use not_copy + if isfield(ec,fields_to_copy{i}) && ~any(strmatch(fields_to_not_copy,fields_to_copy{i})) + gdat_data.ec.(fields_to_copy{i}) = ec.(fields_to_copy{i}); + end + end + gdat_data.data(:,end+1) = interpos(-21,gdat_data.ec.t,gdat_data.ec.data(:,end),gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{ec}'; + end end - if ~isempty(ic.data) && ~isempty(ic.dim) - for i=1:length(fields_to_copy) - if isfield(ic,fields_to_copy{i}) - gdat_data.ic.(fields_to_copy{i}) = ic.(fields_to_copy{i}); - end - end - gdat_data.data(:,end+1) = interpos(-21,gdat_data.ic.t,gdat_data.ic.data,gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{ic}'; + % + if any(strmatch('nb',gdat_data.gdat_params.source)) + % nbi + params_eff.data_request='nbi'; + try + nbi=gdat_d3d(shot,params_eff); + catch + end + if ~isempty(nbi.data) && ~isempty(nbi.dim) + for i=1:length(fields_to_copy) + if isfield(nbi,fields_to_copy{i}) + gdat_data.nbi.(fields_to_copy{i}) = nbi.(fields_to_copy{i}); + end + end + % add to main with linear interpolation and 0 for extrapolated values + gdat_data.data(:,end+1) = interpos(-21,gdat_data.nbi.t,gdat_data.nbi.data(:,end),gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{nbi}'; + end end - end - % add tot power - gdat_data.data(:,end+1) = sum(gdat_data.data,2); - gdat_data.label{end+1}='P_{tot}'; - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.dim{2} = gdat_data.x; gdat_data.dimunits{2} = ''; - gdat_data.data_fullpath = 'tot powers from each sources, and total power in .data(:,end)'; - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'q_rho'} - [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL] = get_EQ_params(gdat_data); - % since Lpf depends on time, need to load all first and then loop over time for easier mapping - [qpsi,e]=rdaD3D_eff(shot,DIAG,'Qpsi',exp_name_eff); - ndimrho = size(qpsi.data,2); - if ndimrho==NTIME_Lpf - % data seems to be transposed - ndimrho = size(qpsi.data,1); - itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t - else - itotransposeback = 0; - end - qpsi=adapt_rda(qpsi,NTIME,ndimrho,itotransposeback); - ijnan=find(isnan(qpsi.value)); - qpsi.value(ijnan)=0; - [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); - psi_tree=adapt_rda(psi_tree,NTIME,ndimrho,itotransposeback); - [phi_tree,e]=rdaD3D_eff(shot,DIAG,'TFLx',exp_name_eff); - phi_tree=adapt_rda(phi_tree,NTIME,ndimrho,itotransposeback); - [Vol,e]=rdaD3D_eff(shot,DIAG,'Vol',exp_name_eff); - Vol=adapt_rda(Vol,NTIME,2*ndimrho,itotransposeback); - % seems "LCFS" q-value is far too large, limit to some max (when diverted) - max_qValue = 30.; % Note could just put a NaN on LCFS value since ill-defined when diverted - for it=1:NTIME - Lpf1 = Lpf1_t(it); - % Qpsi and similar data is on (time,radius) with radius being: LCFS..Lpf_points dummy LCFS..SOL part - % change it to (radial,time) and use only Lpf+1 points up to LCFS - ijok=find(qpsi.value(:,1)); % note: eqr fills in only odd points radially - % set NaNs to zeroes - if qpsi.value(ijok(1),1)<0 - gdat_data.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); - else - gdat_data.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); - end - % get x values - psi_it=psi_tree.value(it,Lpf1:-1:1)'; - gdat_data.psi_axis(it)= psi_it(1); - gdat_data.psi_lcfs(it)= psi_it(end); - gdat_data.rhopolnorm(:,it) = sqrt(abs((psi_it-gdat_data.psi_axis(it)) ./(gdat_data.psi_lcfs(it)-gdat_data.psi_axis(it)))); - if strcmp(DIAG,'EQR'); - % q value has only a few values and from center to edge, assume they are from central rhopol values on - % But they are every other point starting from 3rd - ijk=find(gdat_data.qvalue(:,it)~=0); - if length(ijk)>2 - % now shots have non-zero axis values in eqr - rhoeff=gdat_data.rhopolnorm(ijk,it); - qeff=gdat_data.qvalue(ijk,it); % radial order was already inverted above - if ijk(1)>1 - rhoeff = [0.; rhoeff]; - qeff = [qeff(1) ;qeff]; - end - ij_nonan=find(~isnan(gdat_data.rhopolnorm(:,it))); - qfit = zeros(size(gdat_data.rhopolnorm(:,it))); - qfit(ij_nonan)=interpos(rhoeff,qeff,gdat_data.rhopolnorm(ij_nonan,it),-0.01,[1 0],[0 0],[300; ones(size(qeff(1:end-1)))]); - else - qfit = zeros(size(gdat_data.rhopolnorm(:,it))); - end - gdat_data.qvalue(:,it) = qfit; - end - % get rhotor values - phi_it = phi_tree.value(it,Lpf1:-1:1)'; - gdat_data.rhotornorm(:,it) = sqrt(abs(phi_it ./ phi_it(end))); - % get rhovol values - vol_it=Vol.value(it,2*Lpf1-1:-2:1)'; - gdat_data.rhovolnorm(:,it) = sqrt(abs(vol_it ./ vol_it(end))); - % Qpsi and similar data is on (time,radius) with radius being: LCFS..Lpf_points dummy LCFS..SOL part - % change it to (radial,time) and use only Lpf+1 points up to LCFS - ijok=find(qpsi.value(:,1)); % note: eqr fills in only odd points radially - % max value 1e6, change to 2*extrapolation (was max_qValue before) - q_edge=interpos(gdat_data.rhotornorm(1:end-1,it),qpsi.value(it,Lpf1:-1:2),1,-0.1); - gdat_data.qvalue(:,it) = qpsi.value(it,Lpf1:-1:1)'; - if abs(gdat_data.qvalue(end,it)) > 1e3 - % assume diverted - gdat_data.qvalue(end,it) = 2. * q_edge; + % + if any(strmatch('ic',gdat_data.gdat_params.source)) + % ic + params_eff.data_request={'ICP','PICRN'}; + try + ic=gdat_d3d(shot,params_eff); + catch + end + if ~isempty(ic.data) && ~isempty(ic.dim) + for i=1:length(fields_to_copy) + if isfield(ic,fields_to_copy{i}) + gdat_data.ic.(fields_to_copy{i}) = ic.(fields_to_copy{i}); + end + end + gdat_data.data(:,end+1) = interpos(-21,gdat_data.ic.t,gdat_data.ic.data,gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{ic}'; + end end -% $$$ if qpsi.value(ijok(1),1)<0 -% $$$ gdat_data.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); -% $$$ else -% $$$ gdat_data.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); -% $$$ end - end - gdat_data.x = gdat_data.rhopolnorm; - % get time values - gdat_data.data = gdat_data.qvalue; % put q in data - gdat_data.units=[]; % not applicable - gdat_data.data_fullpath = [DIAG ' from expname: ' gdat_data.gdat_params.exp_name '; q(rhopolnorm,t) in .data(.x,.t)']; - gdat_data.cocos = 17; % should check FPP - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.dimunits{2} = 'time [s]'; + % add tot power + gdat_data.data(:,end+1) = sum(gdat_data.data,2); + gdat_data.label{end+1}='P_{tot}'; + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.dim{2} = gdat_data.x; gdat_data.dimunits{2} = ''; + gdat_data.data_fullpath = 'tot powers from each sources, and total power in .data(:,end)'; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'psi_axis', 'psi_edge'} - if strcmp(upper(gdat_data.gdat_params.equil),'FPG') - gdat_params_prev = gdat_data.gdat_params; gdat_params_eff = gdat_params_prev; - gdat_params_eff.data_request = [{'FPG'},{'fax-bnd'},{'D3DD'}]; - gdat_data = gdat_d3d(gdat_data.shot,gdat_params_eff); - gdat_data.gdat_params = gdat_params_prev; - gdat_data.label = 'psi\_axis-psi\_edge'; - gdat_data.data_fullpath = [gdat_data.data_fullpath ' yields only psi\_axis-psi\_edge from FPG/fax-bnd']; - else + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'q_rho'} [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL] = get_EQ_params(gdat_data); % since Lpf depends on time, need to load all first and then loop over time for easier mapping - [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); - ndimrho = size(psi_tree.data,2); + [qpsi,e]=rdaD3D_eff(shot,DIAG,'Qpsi',exp_name_eff); + ndimrho = size(qpsi.data,2); if ndimrho==NTIME_Lpf - % data seems to be transposed - ndimrho = size(psi_tree.data,1); - itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t + % data seems to be transposed + ndimrho = size(qpsi.data,1); + itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t else - itotransposeback = 0; + itotransposeback = 0; end + qpsi=adapt_rda(qpsi,NTIME,ndimrho,itotransposeback); + ijnan=find(isnan(qpsi.value)); + qpsi.value(ijnan)=0; + [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); psi_tree=adapt_rda(psi_tree,NTIME,ndimrho,itotransposeback); - ijnan=find(isnan(psi_tree.value)); - psi_tree.value(ijnan)=0; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dimunits{1} = 'time [s]'; + [phi_tree,e]=rdaD3D_eff(shot,DIAG,'TFLx',exp_name_eff); + phi_tree=adapt_rda(phi_tree,NTIME,ndimrho,itotransposeback); + [Vol,e]=rdaD3D_eff(shot,DIAG,'Vol',exp_name_eff); + Vol=adapt_rda(Vol,NTIME,2*ndimrho,itotransposeback); + % seems "LCFS" q-value is far too large, limit to some max (when diverted) + max_qValue = 30.; % Note could just put a NaN on LCFS value since ill-defined when diverted for it=1:NTIME - Lpf1 = Lpf1_t(it); - psi_it=psi_tree.value(it,Lpf1:-1:1)'; - if strcmp(data_request_eff,'psi_axis') - gdat_data.data(it)= psi_it(1); - elseif strcmp(data_request_eff,'psi_edge') - gdat_data.data(it)= psi_it(end); - else - end - end - gdat_data.units = psi_tree.units; - gdat_data.data_fullpath = [DIAG '/PFL extract ' data_request_eff]; - end - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'rot', 'cerqrot'} - nth_points = 13; - if isfield(gdat_data.gdat_params,'nth_points') && ~isempty(gdat_data.gdat_params.nth_points) - nth_points = gdat_data.gdat_params.nth_points; - else - gdat_data.gdat_params.nth_points = nth_points; - end - channels = -1; - if isfield(gdat_data.gdat_params,'channels') && ~isempty(gdat_data.gdat_params.channels) - channels = gdat_data.gdat_params.channels; - end - diag_name = 'cerqrot'; - if nth_points>=10 - match_rz_to_time = 1; - else - match_rz_to_time = 0; - end - if isfield(gdat_data.gdat_params,'match_rz_to_time') && ~isempty(gdat_data.gdat_params.match_rz_to_time) - match_rz_to_time = gdat_data.gdat_params.match_rz_to_time; - else - gdat_data.gdat_params.match_rz_to_time = match_rz_to_time; - end - time_interval = [-Inf +Inf]; - if isfield(gdat_data.gdat_params,'time_interval') && ~isempty(gdat_data.gdat_params.time_interval) - time_interval = gdat_data.gdat_params.time_interval; - else - gdat_data.gdat_params.time_interval = time_interval; - end - % - if channels(1)<=0 - channels = [1:24]; - end - chanelles=sort(channels); - gdat_data.dim{1} = channels; - gdat_data.gdat_params.channels = channels; - max_points = 0; - for i=channels - aall{i} = gdat_d3d(shot,['\cerqrott' num2str(i)]); - if isnumeric(aall{i}.data) - gdat_data.channels_ok(i) = 1; - if numel(aall{i}.data) > max_points - max_points = numel(aall{i}.data); - gdat_data.t = aall{i}.t; - end - else - gdat_data.channels_ok(i) = 0; - end - end - gdat_data.dim{2} = gdat_data.t; - gdat_data.data = NaN(max(channels),max_points); - for i=channels - if gdat_data.channels_ok(i) - if nth_points>1 - ieff = [1:nth_points:numel(aall{i}.data)]; - iteff = iround_os(gdat_data.t,aall{i}.t(ieff)); - gdat_data.data(i,iteff) = interp1(aall{i}.t,aall{i}.data,gdat_data.t(iteff)); + Lpf1 = Lpf1_t(it); + % Qpsi and similar data is on (time,radius) with radius being: LCFS..Lpf_points dummy LCFS..SOL part + % change it to (radial,time) and use only Lpf+1 points up to LCFS + ijok=find(qpsi.value(:,1)); % note: eqr fills in only odd points radially + % set NaNs to zeroes + if qpsi.value(ijok(1),1)<0 + gdat_data.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); else - iteff = iround_os(gdat_data.t,aall{i}.t); - gdat_data.data(i,iteff) = interp1(aall{i}.t,aall{i}.data,gdat_data.t(iteff)); + gdat_data.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); end + % get x values + psi_it=psi_tree.value(it,Lpf1:-1:1)'; + gdat_data.psi_axis(it)= psi_it(1); + gdat_data.psi_lcfs(it)= psi_it(end); + gdat_data.rhopolnorm(:,it) = sqrt(abs((psi_it-gdat_data.psi_axis(it)) ./(gdat_data.psi_lcfs(it)-gdat_data.psi_axis(it)))); + if strcmp(DIAG,'EQR'); + % q value has only a few values and from center to edge, assume they are from central rhopol values on + % But they are every other point starting from 3rd + ijk=find(gdat_data.qvalue(:,it)~=0); + if length(ijk)>2 + % now shots have non-zero axis values in eqr + rhoeff=gdat_data.rhopolnorm(ijk,it); + qeff=gdat_data.qvalue(ijk,it); % radial order was already inverted above + if ijk(1)>1 + rhoeff = [0.; rhoeff]; + qeff = [qeff(1) ;qeff]; + end + ij_nonan=find(~isnan(gdat_data.rhopolnorm(:,it))); + qfit = zeros(size(gdat_data.rhopolnorm(:,it))); + qfit(ij_nonan)=interpos(rhoeff,qeff,gdat_data.rhopolnorm(ij_nonan,it),-0.01,[1 0],[0 0],[300; ones(size(qeff(1:end-1)))]); + else + qfit = zeros(size(gdat_data.rhopolnorm(:,it))); + end + gdat_data.qvalue(:,it) = qfit; + end + % get rhotor values + phi_it = phi_tree.value(it,Lpf1:-1:1)'; + gdat_data.rhotornorm(:,it) = sqrt(abs(phi_it ./ phi_it(end))); + % get rhovol values + vol_it=Vol.value(it,2*Lpf1-1:-2:1)'; + gdat_data.rhovolnorm(:,it) = sqrt(abs(vol_it ./ vol_it(end))); + % Qpsi and similar data is on (time,radius) with radius being: LCFS..Lpf_points dummy LCFS..SOL part + % change it to (radial,time) and use only Lpf+1 points up to LCFS + ijok=find(qpsi.value(:,1)); % note: eqr fills in only odd points radially + % max value 1e6, change to 2*extrapolation (was max_qValue before) + q_edge=interpos(gdat_data.rhotornorm(1:end-1,it),qpsi.value(it,Lpf1:-1:2),1,-0.1); + gdat_data.qvalue(:,it) = qpsi.value(it,Lpf1:-1:1)'; + if abs(gdat_data.qvalue(end,it)) > 1e3 + % assume diverted + gdat_data.qvalue(end,it) = 2. * q_edge; + end +% $$$ if qpsi.value(ijok(1),1)<0 +% $$$ gdat_data.qvalue(:,it) = max(qpsi.value(it,Lpf1:-1:1)',-max_qValue); +% $$$ else +% $$$ gdat_data.qvalue(:,it) = min(qpsi.value(it,Lpf1:-1:1)',max_qValue); +% $$$ end end - end - gdat_data.x = gdat_data.dim{1}; - gdat_data.dimunits=[{'channels'} ; {'time [s]'}]; - %if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end - gdat_data.data_fullpath = [diag_name '\tcerqrot' num2str(channels(1)) '...' num2str(channels(end))]; - gdat_data.allchannels = aall; - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'rhotor', 'rhotor_edge', 'rhotor_norm', 'rhovol', 'volume_rho'} - if strcmp(upper(gdat_data.gdat_params.equil),'FPG') - gdat_params_prev = gdat_data.gdat_params; gdat_params_eff = gdat_params_prev; - gdat_params_eff.data_request = [{'FPG'},{'Vol'},{'D3DD'}]; - gdat_data = gdat_d3d(gdat_data.shot,gdat_params_eff); - gdat_data.gdat_params = gdat_params_prev; - gdat_data.label = 'Vol'; - gdat_data.data_fullpath = [gdat_data.data_fullpath ' yields only edge Volume from FPG/Vol']; - return - end - [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL] = get_EQ_params(gdat_data); - % since Lpf depends on time, need to load all first and then loop over time for easier mapping - [phi_tree,e]=rdaD3D_eff(shot,DIAG,'TFLx',exp_name_eff); - ndimrho = size(phi_tree.data,2); - if ndimrho==NTIME_Lpf - % data seems to be transposed - ndimrho = size(phi_tree.data,1); - itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t - else - itotransposeback = 0; - end - phi_tree=adapt_rda(phi_tree,NTIME,ndimrho,itotransposeback); - ijnan=find(isnan(phi_tree.value)); - phi_tree.value(ijnan)=0; - [Vol,e]=rdaD3D_eff(shot,DIAG,'Vol',exp_name_eff); - Vol=adapt_rda(Vol,NTIME,2*ndimrho,itotransposeback); - [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); - psi_tree=adapt_rda(psi_tree,NTIME,ndimrho,itotransposeback); - % - switch data_request_eff - case {'volume_rho', 'rhovol'} - for it=1:NTIME - Lpf1 = Lpf1_t(it); - psi_it=psi_tree.value(it,Lpf1:-1:1)'; - psi_axis(it)= psi_it(1); - psi_lcfs(it)= psi_it(end); - gdat_data.x(:,it) = sqrt(abs((psi_it-psi_axis(it)) ./(psi_lcfs(it)-psi_axis(it)))); - gdat_data.vol(:,it)=Vol.value(it,2*Lpf1-1:-2:1)'; - % gdat_data.dvoldpsi(:,it)=Vol.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi - gdat_data.rhovolnorm(:,it) = sqrt(abs(gdat_data.vol(:,it) ./ gdat_data.vol(end,it))); - end + gdat_data.x = gdat_data.rhopolnorm; + % get time values + gdat_data.data = gdat_data.qvalue; % put q in data + gdat_data.units=[]; % not applicable + gdat_data.data_fullpath = [DIAG ' from expname: ' gdat_data.gdat_params.exp_name '; q(rhopolnorm,t) in .data(.x,.t)']; + gdat_data.cocos = 17; % should check FPP gdat_data.dim{1} = gdat_data.x; gdat_data.dim{2} = gdat_data.t; gdat_data.dimunits{1} = 'rhopolnorm'; gdat_data.dimunits{2} = 'time [s]'; - if strcmp(data_request_eff,'volume_rho') - gdat_data.data = gdat_data.vol; - gdat_data.units = Vol.units; - else strcmp(data_request_eff,'rhovol') - gdat_data.data = gdat_data.rhovolnorm; - gdat_data.units = ' '; - end - case {'rhotor', 'rhotor_edge', 'rhotor_norm'} - b0=gdat(shot,'b0'); - gdat_data.b0 = interpos(b0.t,b0.data,gdat_data.t,-1); - for it=1:NTIME - Lpf1 = Lpf1_t(it); - gdat_data.phi(:,it) = phi_tree.value(it,Lpf1:-1:1)'; - gdat_data.rhotornorm(:,it) = sqrt(abs(gdat_data.phi(:,it) ./ gdat_data.phi(end,it))); - gdat_data.rhotor(:,it) = sqrt(abs(gdat_data.phi(:,it) ./ gdat_data.b0(it) ./ pi)); - psi_it=psi_tree.value(it,Lpf1:-1:1)'; - psi_axis(it)= psi_it(1); - psi_lcfs(it)= psi_it(end); - gdat_data.x(:,it) = sqrt(abs((psi_it-psi_axis(it)) ./(psi_lcfs(it)-psi_axis(it)))); - end - if strcmp(data_request_eff,'rhotor') - gdat_data.data = gdat_data.rhotor; - gdat_data.units = 'm'; - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.dimunits{2} = 'time [s]'; - elseif strcmp(data_request_eff,'rhotor_edge') - gdat_data.data = gdat_data.rhotor(end,:); - gdat_data.units = 'm'; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dimunits{1} = 'time [s]'; - elseif strcmp(data_request_eff,'rhotor_norm') - gdat_data.data = gdat_data.rhotornorm; - gdat_data.units = ' '; - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits{1} = 'rhopolnorm'; - gdat_data.dimunits{2} = 'time [s]'; + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'psi_axis', 'psi_edge'} + if strcmp(upper(gdat_data.gdat_params.equil),'FPG') + gdat_params_prev = gdat_data.gdat_params; gdat_params_eff = gdat_params_prev; + gdat_params_eff.data_request = [{'FPG'},{'fax-bnd'},{'D3DD'}]; + gdat_data = gdat_d3d(gdat_data.shot,gdat_params_eff); + gdat_data.gdat_params = gdat_params_prev; + gdat_data.label = 'psi\_axis-psi\_edge'; + gdat_data.data_fullpath = [gdat_data.data_fullpath ' yields only psi\_axis-psi\_edge from FPG/fax-bnd']; + else + [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL] = get_EQ_params(gdat_data); + % since Lpf depends on time, need to load all first and then loop over time for easier mapping + [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); + ndimrho = size(psi_tree.data,2); + if ndimrho==NTIME_Lpf + % data seems to be transposed + ndimrho = size(psi_tree.data,1); + itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t + else + itotransposeback = 0; + end + psi_tree=adapt_rda(psi_tree,NTIME,ndimrho,itotransposeback); + ijnan=find(isnan(psi_tree.value)); + psi_tree.value(ijnan)=0; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dimunits{1} = 'time [s]'; + for it=1:NTIME + Lpf1 = Lpf1_t(it); + psi_it=psi_tree.value(it,Lpf1:-1:1)'; + if strcmp(data_request_eff,'psi_axis') + gdat_data.data(it)= psi_it(1); + elseif strcmp(data_request_eff,'psi_edge') + gdat_data.data(it)= psi_it(end); + else + end + end + gdat_data.units = psi_tree.units; + gdat_data.data_fullpath = [DIAG '/PFL extract ' data_request_eff]; end - end - gdat_data.data_fullpath = [DIAG '/PFL extract in .data: ' data_request_eff]; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'sxr'} - % sxr from sx90rm1s by default or else if 'source' is provided - if ~isfield(gdat_data.gdat_params,'freq')|| isempty(gdat_data.gdat_params.freq) - gdat_data.gdat_params.freq = 1; - end - if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = 'sx90rm1s'; - end - if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) - gdat_data.gdat_params.camera = [1:28]; - end - gdat_data.gdat_params.source = upper(gdat_data.gdat_params.source); - % - if ~isfield(gdat_data.gdat_params,'time_interval') - gdat_data.gdat_params.time_interval = []; - end - exp_name_eff = 'D3D'; - icount = 0; - nnth = 1; - if isnumeric(gdat_data.gdat_params.freq) && gdat_data.gdat_params.freq>1; - nnth = floor(gdat_data.gdat_params.freq+0.5); - gdat_data.gdat_params.freq = nnth; - end - for i=1:length(gdat_data.gdat_params.camera) - tree = 'spectroscopy'; - ichord = gdat_data.gdat_params.camera(i); - diagname = ['sxr:' gdat_data.gdat_params.source ':' gdat_data.gdat_params.source num2str(ichord,'%.2d')]; - a = gdat_d3d(shot,{tree,diagname}); - if ~isempty(a.data) - icount = icount + 1; - if icount == 1 - % first time has data - gdat_data.t = a.t(1:nnth:end); - gdat_data.units = a.units; - gdat_data.data = NaN*ones(max(gdat_data.gdat_params.camera),length(gdat_data.t)); - gdat_data.x = [1:max(gdat_data.gdat_params.camera)]; % simpler to have index corresponding to chord number, except for central - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits = [{'chord nb'}; {'s'}]; - gdat_data.data_fullpath = ['sxr from source=''' gdat_data.gdat_params.source '''']; - gdat_data.label = ['SXR/' upper(gdat_data.gdat_params.source)]; - end - try - gdat_data.data(ichord,:) = a.data(1:nnth:end); - catch - if (gdat_params.nverbose>=1); disp(['problem with ' gdat_data.gdat_params.source '...' num2str(ichord)]); end - end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'rot', 'cerqrot'} + nth_points = 13; + if isfield(gdat_data.gdat_params,'nth_points') && ~isempty(gdat_data.gdat_params.nth_points) + nth_points = gdat_data.gdat_params.nth_points; else - % add fields not yet defined in case all cases have empty data + gdat_data.gdat_params.nth_points = nth_points; end - end - gdat_data.chords = gdat_data.gdat_params.camera; + channels = -1; + if isfield(gdat_data.gdat_params,'channels') && ~isempty(gdat_data.gdat_params.channels) + channels = gdat_data.gdat_params.channels; + end + diag_name = 'cerqrot'; + if nth_points>=10 + match_rz_to_time = 1; + else + match_rz_to_time = 0; + end + if isfield(gdat_data.gdat_params,'match_rz_to_time') && ~isempty(gdat_data.gdat_params.match_rz_to_time) + match_rz_to_time = gdat_data.gdat_params.match_rz_to_time; + else + gdat_data.gdat_params.match_rz_to_time = match_rz_to_time; + end + time_interval = [-Inf +Inf]; + if isfield(gdat_data.gdat_params,'time_interval') && ~isempty(gdat_data.gdat_params.time_interval) + time_interval = gdat_data.gdat_params.time_interval; + else + gdat_data.gdat_params.time_interval = time_interval; + end + % + if channels(1)<=0 + channels = [1:24]; + end + chanelles=sort(channels); + gdat_data.dim{1} = channels; + gdat_data.gdat_params.channels = channels; + max_points = 0; + for i=channels + aall{i} = gdat_d3d(shot,['\cerqrott' num2str(i)]); + if isnumeric(aall{i}.data) + gdat_data.channels_ok(i) = 1; + if numel(aall{i}.data) > max_points + max_points = numel(aall{i}.data); + gdat_data.t = aall{i}.t; + end + else + gdat_data.channels_ok(i) = 0; + end + end + gdat_data.dim{2} = gdat_data.t; + gdat_data.data = NaN(max(channels),max_points); + for i=channels + if gdat_data.channels_ok(i) + if nth_points>1 + ieff = [1:nth_points:numel(aall{i}.data)]; + iteff = iround_os(gdat_data.t,aall{i}.t(ieff)); + gdat_data.data(i,iteff) = interp1(aall{i}.t,aall{i}.data,gdat_data.t(iteff)); + else + iteff = iround_os(gdat_data.t,aall{i}.t); + gdat_data.data(i,iteff) = interp1(aall{i}.t,aall{i}.data,gdat_data.t(iteff)); + end + end + end + gdat_data.x = gdat_data.dim{1}; + gdat_data.dimunits=[{'channels'} ; {'time [s]'}]; + %if any(strcmp(fieldnames(a),'units')); gdat_data.units=a.units; end + gdat_data.data_fullpath = [diag_name '\tcerqrot' num2str(channels(1)) '...' num2str(channels(end))]; + gdat_data.allchannels = aall; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'bolo', 'bolom'} - % sxr from sx90rm1s by default or else if 'source' is provided - if ~isfield(gdat_data.gdat_params,'freq')|| isempty(gdat_data.gdat_params.freq) - gdat_data.gdat_params.freq = 1; - end - if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = 'BOL_L'; - end - if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) - gdat_data.gdat_params.camera = [1:24]; - end - gdat_data.gdat_params.source = upper(gdat_data.gdat_params.source); - % - if ~isfield(gdat_data.gdat_params,'time_interval') - gdat_data.gdat_params.time_interval = []; - end - exp_name_eff = 'D3D'; - icount = 0; - nnth = 1; - if isnumeric(gdat_data.gdat_params.freq) && gdat_data.gdat_params.freq>1; - nnth = floor(gdat_data.gdat_params.freq+0.5); - gdat_data.gdat_params.freq = nnth; - end - tree = 'spectroscopy'; - gdat_data.gdat_params.tree = tree; - for i=1:length(gdat_data.gdat_params.camera) - ichord = gdat_data.gdat_params.camera(i); - diagname = ['PRAD.BOLOM.PRAD_01.POWER:' gdat_data.gdat_params.source num2str(ichord,'%.2d') '_P']; - a = gdat_d3d(shot,{tree,diagname}); - if ~isempty(a.data) - icount = icount + 1; - if icount == 1 - % first time has data - gdat_data.t = a.t(1:nnth:end); - gdat_data.units = a.units; - gdat_data.data = NaN*ones(max(gdat_data.gdat_params.camera),length(gdat_data.t)); - gdat_data.x = [1:max(gdat_data.gdat_params.camera)]; % simpler to have index corresponding to chord number, except for central - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits = [{'chord nb'}; {'s'}]; - gdat_data.data_fullpath = ['bolo from source=''' gdat_data.gdat_params.source '''']; - gdat_data.label = ['PRAD.BOLOM.PRAD\_01.POWER:' upper(gdat_data.gdat_params.source)]; - end - try - gdat_data.data(ichord,:) = a.data(1:nnth:end); - catch - if (gdat_params.nverbose>=1); disp(['problem with ' gdat_data.gdat_params.source '...' num2str(ichord)]); end - end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'rhotor', 'rhotor_edge', 'rhotor_norm', 'rhovol', 'volume_rho'} + if strcmp(upper(gdat_data.gdat_params.equil),'FPG') + gdat_params_prev = gdat_data.gdat_params; gdat_params_eff = gdat_params_prev; + gdat_params_eff.data_request = [{'FPG'},{'Vol'},{'D3DD'}]; + gdat_data = gdat_d3d(gdat_data.shot,gdat_params_eff); + gdat_data.gdat_params = gdat_params_prev; + gdat_data.label = 'Vol'; + gdat_data.data_fullpath = [gdat_data.data_fullpath ' yields only edge Volume from FPG/Vol']; + return + end + [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL] = get_EQ_params(gdat_data); + % since Lpf depends on time, need to load all first and then loop over time for easier mapping + [phi_tree,e]=rdaD3D_eff(shot,DIAG,'TFLx',exp_name_eff); + ndimrho = size(phi_tree.data,2); + if ndimrho==NTIME_Lpf + % data seems to be transposed + ndimrho = size(phi_tree.data,1); + itotransposeback = 1; % seems x,time inverted so transpose and exchange .x and .t else - % add fields not yet defined in case all cases have empty data + itotransposeback = 0; end - end - gdat_data.chords = gdat_data.gdat_params.camera; + phi_tree=adapt_rda(phi_tree,NTIME,ndimrho,itotransposeback); + ijnan=find(isnan(phi_tree.value)); + phi_tree.value(ijnan)=0; + [Vol,e]=rdaD3D_eff(shot,DIAG,'Vol',exp_name_eff); + Vol=adapt_rda(Vol,NTIME,2*ndimrho,itotransposeback); + [psi_tree,e]=rdaD3D_eff(shot,DIAG,'PFL',exp_name_eff); + psi_tree=adapt_rda(psi_tree,NTIME,ndimrho,itotransposeback); + % + switch data_request_eff + case {'volume_rho', 'rhovol'} + for it=1:NTIME + Lpf1 = Lpf1_t(it); + psi_it=psi_tree.value(it,Lpf1:-1:1)'; + psi_axis(it)= psi_it(1); + psi_lcfs(it)= psi_it(end); + gdat_data.x(:,it) = sqrt(abs((psi_it-psi_axis(it)) ./(psi_lcfs(it)-psi_axis(it)))); + gdat_data.vol(:,it)=Vol.value(it,2*Lpf1-1:-2:1)'; + % gdat_data.dvoldpsi(:,it)=Vol.value(it,2*Lpf1:-2:2)'; % 2nd index are dV/dpsi + gdat_data.rhovolnorm(:,it) = sqrt(abs(gdat_data.vol(:,it) ./ gdat_data.vol(end,it))); + end + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits{1} = 'rhopolnorm'; + gdat_data.dimunits{2} = 'time [s]'; + if strcmp(data_request_eff,'volume_rho') + gdat_data.data = gdat_data.vol; + gdat_data.units = Vol.units; + else strcmp(data_request_eff,'rhovol') + gdat_data.data = gdat_data.rhovolnorm; + gdat_data.units = ' '; + end + case {'rhotor', 'rhotor_edge', 'rhotor_norm'} + b0=gdat(shot,'b0'); + gdat_data.b0 = interpos(b0.t,b0.data,gdat_data.t,-1); + for it=1:NTIME + Lpf1 = Lpf1_t(it); + gdat_data.phi(:,it) = phi_tree.value(it,Lpf1:-1:1)'; + gdat_data.rhotornorm(:,it) = sqrt(abs(gdat_data.phi(:,it) ./ gdat_data.phi(end,it))); + gdat_data.rhotor(:,it) = sqrt(abs(gdat_data.phi(:,it) ./ gdat_data.b0(it) ./ pi)); + psi_it=psi_tree.value(it,Lpf1:-1:1)'; + psi_axis(it)= psi_it(1); + psi_lcfs(it)= psi_it(end); + gdat_data.x(:,it) = sqrt(abs((psi_it-psi_axis(it)) ./(psi_lcfs(it)-psi_axis(it)))); + end + if strcmp(data_request_eff,'rhotor') + gdat_data.data = gdat_data.rhotor; + gdat_data.units = 'm'; + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits{1} = 'rhopolnorm'; + gdat_data.dimunits{2} = 'time [s]'; + elseif strcmp(data_request_eff,'rhotor_edge') + gdat_data.data = gdat_data.rhotor(end,:); + gdat_data.units = 'm'; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dimunits{1} = 'time [s]'; + elseif strcmp(data_request_eff,'rhotor_norm') + gdat_data.data = gdat_data.rhotornorm; + gdat_data.units = ' '; + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits{1} = 'rhopolnorm'; + gdat_data.dimunits{2} = 'time [s]'; + end + end + gdat_data.data_fullpath = [DIAG '/PFL extract in .data: ' data_request_eff]; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'transp'} - % most of the times the exp for the shotfile should be provided - shotfile_exp_eff = gdat_params.exp_name; - diagname='TRA'; - TRANSP_signals; - for i=1:size(transp_sig,1) - if strcmp(lower(transp_sig{i,2}),'signal') || strcmp(lower(transp_sig{i,2}),'signal-group') - try - eval(['[gdat_data.' transp_sig{i,1} ',e]=rdaD3D_eff(shot,diagname,''' transp_sig{i,1} ''',shotfile_exp_eff);']); - catch - eval(['gdat_data.' transp_sig{i,1} '=[];']); - end - elseif strcmp(lower(transp_sig{i,2}),'area-base') - clear adata_area - try - [adata_area]=sf2ab(diagname,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); - catch - adata_area.value = cell(0); - end - eval(['gdat_data.' transp_sig{i,1} '=adata_area;']); - elseif strcmp(lower(transp_sig{i,2}),'time-base') - clear adata_time - try - [adata_time]=sf2tb(diagname,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); - catch - adata_time.value = cell(0); - end - eval(['gdat_data.' transp_sig{i,1} '=adata_time;']); + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'sxr'} + % sxr from sx90rm1s by default or else if 'source' is provided + if ~isfield(gdat_data.gdat_params,'freq')|| isempty(gdat_data.gdat_params.freq) + gdat_data.gdat_params.freq = 1; end - end - % copy TIME to .t - if isfield(gdat_data,'TIME') && isfield(gdat_data.TIME,'value') - gdat_data.t = gdat_data.TIME.value; - gdat_data.dim{1} = gdat_data.t, - gdat_data.dimunits{1} = gdat_data.TIME.unit; - end + if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) + gdat_data.gdat_params.source = 'sx90rm1s'; + end + if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) + gdat_data.gdat_params.camera = [1:28]; + end + gdat_data.gdat_params.source = upper(gdat_data.gdat_params.source); + % + if ~isfield(gdat_data.gdat_params,'time_interval') + gdat_data.gdat_params.time_interval = []; + end + exp_name_eff = 'D3D'; + icount = 0; + nnth = 1; + if isnumeric(gdat_data.gdat_params.freq) && gdat_data.gdat_params.freq>1; + nnth = floor(gdat_data.gdat_params.freq+0.5); + gdat_data.gdat_params.freq = nnth; + end + for i=1:length(gdat_data.gdat_params.camera) + tree = 'spectroscopy'; + ichord = gdat_data.gdat_params.camera(i); + diagname = ['sxr:' gdat_data.gdat_params.source ':' gdat_data.gdat_params.source num2str(ichord,'%.2d')]; + a = gdat_d3d(shot,{tree,diagname}); + if ~isempty(a.data) + icount = icount + 1; + if icount == 1 + % first time has data + gdat_data.t = a.t(1:nnth:end); + gdat_data.units = a.units; + gdat_data.data = NaN*ones(max(gdat_data.gdat_params.camera),length(gdat_data.t)); + gdat_data.x = [1:max(gdat_data.gdat_params.camera)]; % simpler to have index corresponding to chord number, except for central + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits = [{'chord nb'}; {'s'}]; + gdat_data.data_fullpath = ['sxr from source=''' gdat_data.gdat_params.source '''']; + gdat_data.label = ['SXR/' upper(gdat_data.gdat_params.source)]; + end + try + gdat_data.data(ichord,:) = a.data(1:nnth:end); + catch + if (gdat_params.nverbose>=1); disp(['problem with ' gdat_data.gdat_params.source '...' num2str(ichord)]); end + end + else + % add fields not yet defined in case all cases have empty data + end + end + gdat_data.chords = gdat_data.gdat_params.camera; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'zeff_cerq', 'zeff_cer'} - % zeff from specific cer lines, C, N, ... - if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) - gdat_data.gdat_params.camera = [9 18 20 41]; - end - gdat_data.label = {}; - for i=1:numel(gdat_data.gdat_params.camera) - gdat_data.label{i} = ['cerqzefft' num2str(gdat_data.gdat_params.camera(i))]; - end - % - if ~isfield(gdat_data.gdat_params,'time_interval') - gdat_data.gdat_params.time_interval = []; - end - icount = 0; - for i=1:length(gdat_data.gdat_params.camera) - ichord = gdat_data.gdat_params.camera(i); - diagname = ['\' gdat_data.label{i}]; - a = gdat_d3d(shot,diagname); - if ~isempty(a.data) && isnumeric(a.data) - icount = icount + 1; - if icount == 1 - % first time has data - gdat_data.t = a.t; - gdat_data.units = a.units; - gdat_data.data = NaN*ones(numel(gdat_data.gdat_params.camera),length(gdat_data.t)); - gdat_data.data(icount,:) = a.data; - gdat_data.x = gdat_data.gdat_params.camera; - gdat_data.dim{1} = gdat_data.x; - gdat_data.dim{2} = gdat_data.t; - gdat_data.dimunits = [{'t nb'}; {'s'}]; - gdat_data.data_fullpath = '\cerqzefftii'; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'bolo', 'bolom'} + % sxr from sx90rm1s by default or else if 'source' is provided + if ~isfield(gdat_data.gdat_params,'freq')|| isempty(gdat_data.gdat_params.freq) + gdat_data.gdat_params.freq = 1; + end + if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) + gdat_data.gdat_params.source = 'BOL_L'; + end + if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) + gdat_data.gdat_params.camera = [1:24]; + end + gdat_data.gdat_params.source = upper(gdat_data.gdat_params.source); + % + if ~isfield(gdat_data.gdat_params,'time_interval') + gdat_data.gdat_params.time_interval = []; + end + exp_name_eff = 'D3D'; + icount = 0; + nnth = 1; + if isnumeric(gdat_data.gdat_params.freq) && gdat_data.gdat_params.freq>1; + nnth = floor(gdat_data.gdat_params.freq+0.5); + gdat_data.gdat_params.freq = nnth; + end + tree = 'spectroscopy'; + gdat_data.gdat_params.tree = tree; + for i=1:length(gdat_data.gdat_params.camera) + ichord = gdat_data.gdat_params.camera(i); + diagname = ['PRAD.BOLOM.PRAD_01.POWER:' gdat_data.gdat_params.source num2str(ichord,'%.2d') '_P']; + a = gdat_d3d(shot,{tree,diagname}); + if ~isempty(a.data) + icount = icount + 1; + if icount == 1 + % first time has data + gdat_data.t = a.t(1:nnth:end); + gdat_data.units = a.units; + gdat_data.data = NaN*ones(max(gdat_data.gdat_params.camera),length(gdat_data.t)); + gdat_data.x = [1:max(gdat_data.gdat_params.camera)]; % simpler to have index corresponding to chord number, except for central + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits = [{'chord nb'}; {'s'}]; + gdat_data.data_fullpath = ['bolo from source=''' gdat_data.gdat_params.source '''']; + gdat_data.label = ['PRAD.BOLOM.PRAD\_01.POWER:' upper(gdat_data.gdat_params.source)]; + end + try + gdat_data.data(ichord,:) = a.data(1:nnth:end); + catch + if (gdat_params.nverbose>=1); disp(['problem with ' gdat_data.gdat_params.source '...' num2str(ichord)]); end + end else + % add fields not yet defined in case all cases have empty data + end + end + gdat_data.chords = gdat_data.gdat_params.camera; + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'transp'} + % most of the times the exp for the shotfile should be provided + shotfile_exp_eff = gdat_params.exp_name; + diagname='TRA'; + TRANSP_signals; + for i=1:size(transp_sig,1) + if strcmp(lower(transp_sig{i,2}),'signal') || strcmp(lower(transp_sig{i,2}),'signal-group') try - gdat_data.data(icount,:) = interp1(a.t,a.data,gdat_data.t); + eval(['[gdat_data.' transp_sig{i,1} ',e]=rdaD3D_eff(shot,diagname,''' transp_sig{i,1} ''',shotfile_exp_eff);']); catch - if (gdat_params.nverbose>=1); disp(['problem with ichord = ' num2str(ichord)]); end + eval(['gdat_data.' transp_sig{i,1} '=[];']); end + elseif strcmp(lower(transp_sig{i,2}),'area-base') + clear adata_area + try + [adata_area]=sf2ab(diagname,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); + catch + adata_area.value = cell(0); + end + eval(['gdat_data.' transp_sig{i,1} '=adata_area;']); + elseif strcmp(lower(transp_sig{i,2}),'time-base') + clear adata_time + try + [adata_time]=sf2tb(diagname,shot,transp_sig{i,1},'-exp',shotfile_exp_eff); + catch + adata_time.value = cell(0); + end + eval(['gdat_data.' transp_sig{i,1} '=adata_time;']); end - else - % add fields not yet defined in case all cases have empty data end - end - gdat_data.chords = gdat_data.gdat_params.camera; + % copy TIME to .t + if isfield(gdat_data,'TIME') && isfield(gdat_data.TIME,'value') + gdat_data.t = gdat_data.TIME.value; + gdat_data.dim{1} = gdat_data.t, + gdat_data.dimunits{1} = gdat_data.TIME.unit; + end - otherwise - if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_d3d']); end - error_status=901; - return + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'zeff_cerq', 'zeff_cer'} + % zeff from specific cer lines, C, N, ... + if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) + gdat_data.gdat_params.camera = [9 18 20 41]; + end + gdat_data.label = {}; + for i=1:numel(gdat_data.gdat_params.camera) + gdat_data.label{i} = ['cerqzefft' num2str(gdat_data.gdat_params.camera(i))]; + end + % + if ~isfield(gdat_data.gdat_params,'time_interval') + gdat_data.gdat_params.time_interval = []; + end + icount = 0; + for i=1:length(gdat_data.gdat_params.camera) + ichord = gdat_data.gdat_params.camera(i); + diagname = ['\' gdat_data.label{i}]; + a = gdat_d3d(shot,diagname); + if ~isempty(a.data) && isnumeric(a.data) + icount = icount + 1; + if icount == 1 + % first time has data + gdat_data.t = a.t; + gdat_data.units = a.units; + gdat_data.data = NaN*ones(numel(gdat_data.gdat_params.camera),length(gdat_data.t)); + gdat_data.data(icount,:) = a.data; + gdat_data.x = gdat_data.gdat_params.camera; + gdat_data.dim{1} = gdat_data.x; + gdat_data.dim{2} = gdat_data.t; + gdat_data.dimunits = [{'t nb'}; {'s'}]; + gdat_data.data_fullpath = '\cerqzefftii'; + else + try + gdat_data.data(icount,:) = interp1(a.t,a.data,gdat_data.t); + catch + if (gdat_params.nverbose>=1); disp(['problem with ichord = ' num2str(ichord)]); end + end + end + else + % add fields not yet defined in case all cases have empty data + end + end + gdat_data.chords = gdat_data.gdat_params.camera; + + otherwise + if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_d3d']); end + error_status=901; + return end else diff --git a/matlab/IMAS/complete_IDS_CORSICA.m b/matlab/IMAS/complete_IDS_CORSICA.m index f167093c5d619ee5c67213e3657e8a58285efc20..cebd796d5411b084a8c063d77fed1142915804e7 100644 --- a/matlab/IMAS/complete_IDS_CORSICA.m +++ b/matlab/IMAS/complete_IDS_CORSICA.m @@ -55,7 +55,7 @@ for ii = 1:numel(tmp.names) % Remove strange character in coil names IDS_out.pf_active.coil{jj}.name = regexprep(IDS_out.pf_active.coil{jj}.name,'[\n\r]+',''); if strcmp(tmp.names{ii},IDS_out.pf_active.coil{jj}.name) - if isempty(IDS_out.pf_active.coil{jj}.element); IDS_out.pf_active.coil{jj}.element(1) = pf_active_default.coil{1}.element(1); end + if isempty(IDS_out.pf_active.coil{jj}.element); IDS_out.pf_active.coil{jj}.element(1) = pf_active_default.coil{1}.element(1); end IDS_out.pf_active.coil{jj}.element{1}.geometry.geometry_type = 2; % Rectangle description IDS_out.pf_active.coil{jj}.element{1}.geometry.rectangle.r = tmp.R(ii); IDS_out.pf_active.coil{jj}.element{1}.geometry.rectangle.z = tmp.Z(ii); @@ -77,10 +77,10 @@ IDS_out.pf_active.time = []; IDS_out.pf_active.ids_properties.homogeneous_time = 0; if Ncircuit_eff > Ncircuit_in IDS_out.pf_active.circuit(Ncircuit_in+1:Ncircuit_eff,1) = pf_active_default.circuit(1); -end +end if Ncircuit_eff > Nsupply_in IDS_out.pf_active.supply(Nsupply_in+1:Ncircuit_eff,1) = pf_active_default.supply(1); -end +end for ii=1:Ncircuit_eff IDS_out.pf_active.circuit{ii}.name = tmp{ii,1}{1}; IDS_out.pf_active.supply{ii}.name = tmp{ii,1}{1}; @@ -95,16 +95,16 @@ for ii=1:Ncircuit_eff % The coils must share the same current in the circuit so just take the first one. IDS_out.pf_active.circuit{ii}.current.data = IDS_out.pf_active.coil{index_coil(1)}.current.data/IDS_out.pf_active.coil{index_coil(1)}.element{1}.turns_with_sign; IDS_out.pf_active.circuit{ii}.current.time = IDS_out.pf_active.coil{index_coil(1)}.current.time; - + IDS_out.pf_active.circuit{ii}.connections = zeros(2*numel(index_coil) -1 , 2*Ncircuit_eff + 2*Ncoils); for jj = 1:numel(index_coil) IDS_out.pf_active.circuit{ii}.connections( jj , 2*Ncircuit_eff + 2*(index_coil(jj)-1) +1) = 1; IDS_out.pf_active.circuit{ii}.connections( jj +1 , 2*Ncircuit_eff + 2*(index_coil(jj)-1) +2) = 1; end - + % Add the connection to the power supply - IDS_out.pf_active.circuit{ii}.connections(1, 2*ii -1) = 1; - IDS_out.pf_active.circuit{ii}.connections(end, 2*ii ) =1; + IDS_out.pf_active.circuit{ii}.connections(1, 2*ii -1) = 1; + IDS_out.pf_active.circuit{ii}.connections(end, 2*ii ) =1; end %% Limiter description diff --git a/matlab/IMAS/data_limiter.m b/matlab/IMAS/data_limiter.m index 25c05615178e26d33dbd5c6b5314931b9d288fc2..f816c3ecaff935c2272a2aade8e229c298285c43 100644 --- a/matlab/IMAS/data_limiter.m +++ b/matlab/IMAS/data_limiter.m @@ -1,7 +1,7 @@ function data_struct = data_limiter() -% Data from -%Plasma facing line of First Wall and Divertor -%Reference: [2N9J75, v.1.7], [PCR 641, PS4HQW] +% Data from +%Plasma facing line of First Wall and Divertor +%Reference: [2N9J75, v.1.7], [PCR 641, PS4HQW] R = [... 4.1761 diff --git a/matlab/IMAS/data_vessel.m b/matlab/IMAS/data_vessel.m index d2ebe7f592f82567db19690d8486217b87fee47f..9ccdcdebd124f2106c7072e904db5bf9eb5a7d31 100644 --- a/matlab/IMAS/data_vessel.m +++ b/matlab/IMAS/data_vessel.m @@ -1,6 +1,6 @@ function vessel_data = data_vessel() -% Plasma facing line of First Wall and Divertor -%Reference: [2N9J75, v.1.7], [PCR 641, PS4HQW] +% Plasma facing line of First Wall and Divertor +%Reference: [2N9J75, v.1.7], [PCR 641, PS4HQW] rin = [ ... diff --git a/matlab/IMAS/gdat_imas.m b/matlab/IMAS/gdat_imas.m index 24c3e6db505c8a10fe9e28ec27b1a275547e252f..88b72b2f647f2f8ca0bb8b09601439ac62e11e9d 100644 --- a/matlab/IMAS/gdat_imas.m +++ b/matlab/IMAS/gdat_imas.m @@ -211,7 +211,7 @@ if (nargin>=ivarargin_first_char) if mod(nargin-ivarargin_first_char+1,2)==0 for i=1:2:nargin-ivarargin_first_char+1 if ischar(varargin_eff{i}) - gdat_params.(lower(varargin_eff{i})) = varargin_eff{i+1}; % cannot enforce lower(params value) if filename or else are case sensitive + gdat_params.(lower(varargin_eff{i})) = varargin_eff{i+1}; % cannot enforce lower(params value) if filename or else are case sensitive else if gdat_params.nverbose>=1; warning(['input argument nb: ' num2str(i) ' is incorrect, expects a character string']); end error_status=401; @@ -286,7 +286,7 @@ if do_mdsopen_mdsclose end try gdat_data.gdat_params.idx_imas_open_env = imas_open_env('ids', shot, gdat_data.gdat_params.run,gdat_data.gdat_params.database_user, ... - gdat_data.gdat_params.tokamak_name,gdat_data.gdat_params.data_major_version); + gdat_data.gdat_params.tokamak_name,gdat_data.gdat_params.data_major_version); disp('') catch ME warning('could not imas_open_env with following gdat_data.gdat_params:'); @@ -304,16 +304,16 @@ else if isfield(gdat_data.gdat_params,'idx_imas_open_env') if gdat_data.gdat_params.idx_imas_open_env < 0 if gdat_data.gdat_params.nverbose>=1 - warning(['idx < 0, shot/run not opened properly with gdat_data.gdat_params:']); - gdat_data.gdat_params + warning(['idx < 0, shot/run not opened properly with gdat_data.gdat_params:']); + gdat_data.gdat_params end return end else if ~isempty(shot) if gdat_data.gdat_params.nverbose>=1 - warning(['no idx in gdat_params, cannot open shot with gdat_data.gdat_params:']); - gdat_data.gdat_params + warning(['no idx in gdat_params, cannot open shot with gdat_data.gdat_params:']); + gdat_data.gdat_params end return end @@ -389,167 +389,167 @@ elseif strcmp(mapping_for_imas.method,'switchcase') % First the request names valid for "all" machines: % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ids'} - ids_empty_path = fullfile(fileparts(mfilename('fullpath')),'..','IMAS_IMAS','ids_empty'); + case {'ids'} + ids_empty_path = fullfile(fileparts(mfilename('fullpath')),'..','IMAS_IMAS','ids_empty'); - params_eff = gdat_data.gdat_params; - if isfield(params_eff,'source') && ~isempty(params_eff.source) - ids_top_names = params_eff.source; - if ischar(ids_top_names); ids_top_names = {ids_top_names}; end - else - ids_top_name = []; - 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 - if ~isfield(params_eff,'fix_homogeneous') || isempty(params_eff.fix_homogeneous) - params_eff.fix_homogeneous = 0; - gdat_data.gdat_params.fix_homogeneous = params_eff.fix_homogeneous; - end - ids_gen_ok = ~~exist('ids_gen','file'); - if ~isfield(gdat_data.gdat_params,'error_bar') || isempty(gdat_data.gdat_params.error_bar) - gdat_data.gdat_params.error_bar = 'delta'; - end - if ~isfield(gdat_data.gdat_params,'cocos_in') || isempty(gdat_data.gdat_params.cocos_in) - gdat_data.gdat_params.cocos_in = 11; - end - if ~isfield(gdat_data.gdat_params,'cocos_out') || isempty(gdat_data.gdat_params.cocos_out) - gdat_data.gdat_params.cocos_out = 11; - end - if ~isfield(gdat_data.gdat_params,'ipsign_out') || isempty(gdat_data.gdat_params.ipsign_out) - gdat_data.gdat_params.ipsign_out = 0; - end - if ~isfield(gdat_data.gdat_params,'b0sign_out') || isempty(gdat_data.gdat_params.b0sign_out) - gdat_data.gdat_params.b0sign_out = 0; - end - if ~isfield(gdat_data.gdat_params,'ipsign_in') || isempty(gdat_data.gdat_params.ipsign_in) - if gdat_data.gdat_params.ipsign_out~=0 - gdat_data.gdat_params.ipsign_in = -1; + params_eff = gdat_data.gdat_params; + if isfield(params_eff,'source') && ~isempty(params_eff.source) + ids_top_names = params_eff.source; + if ischar(ids_top_names); ids_top_names = {ids_top_names}; end else - gdat_data.gdat_params.ipsign_in = 0; + ids_top_name = []; + 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 - end - if ~isfield(gdat_data.gdat_params,'b0sign_in') || isempty(gdat_data.gdat_params.b0sign_in) - if gdat_data.gdat_params.b0sign_out~=0 - gdat_data.gdat_params.b0sign_in = -1; - else - gdat_data.gdat_params.b0sign_in = 0; + if ~isfield(params_eff,'fix_homogeneous') || isempty(params_eff.fix_homogeneous) + params_eff.fix_homogeneous = 0; + gdat_data.gdat_params.fix_homogeneous = params_eff.fix_homogeneous; end - end - for i=1:length(ids_top_names) - ids_top_name = ids_top_names{i}; - if ids_gen_ok - ids_empty = ids_gen(ids_top_name); % generate ids from ids_gen - else - % 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); - disp(['use structure in .mat file: ' ids_empty_path '/' 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 + ids_gen_ok = ~~exist('ids_gen','file'); + if ~isfield(gdat_data.gdat_params,'error_bar') || isempty(gdat_data.gdat_params.error_bar) + gdat_data.gdat_params.error_bar = 'delta'; end - % load data - try - if isfield(gdat_data.gdat_params,'idx_imas_open_env') && gdat_data.gdat_params.idx_imas_open_env >= 0 - if gdat_data.gdat_params.occurence == 0 - ids_top = ids_get(gdat_data.gdat_params.idx_imas_open_env,ids_top_name); - else - ids_top = ids_get(gdat_data.gdat_params.idx_imas_open_env,[ids_top_name '/' num2str(gdat_data.gdat_params.occurence)]); - end - gdat_data.(ids_top_name) = ids_top; - else - gdat_data.(ids_top_name) = ids_empty; - return - end - catch ME_imas_ids_get - disp(['there is a problem with: imas_get_ids_' ids_top_name ... - ' , 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 '_help']) = getReport(ME_imas_ids_get); - rethrow(ME_imas_ids_get) + if ~isfield(gdat_data.gdat_params,'cocos_in') || isempty(gdat_data.gdat_params.cocos_in) + gdat_data.gdat_params.cocos_in = 11; end - % check homogeneous - switch gdat_data.(ids_top_name).ids_properties.homogeneous_time - case -999999999 - warning([ids_top_name '.ids_properties.homogeneous_time is not defined']); - if isempty(gdat_data.(ids_top_name).time) - if gdat_data.gdat_params.fix_homogeneous - gdat_data.(ids_top_name).ids_properties.homogeneous_time = 0; - warning([ids_top_name '.ids_properties.homogeneous_time set to 0 since .time empty']); - end - elseif isfinite(gdat_data.(ids_top_name).time) - if gdat_data.gdat_params.fix_homogeneous - gdat_data.(ids_top_name).ids_properties.homogeneous_time = 1; - warning([ids_top_name '.ids_properties.homogeneous_time set to 1 since .time finite']); - end - end - case 0 - if ~isempty(gdat_data.(ids_top_name).time) - disp([ids_top_name '.ids_properties.homogeneous_time=0 but .time not empty, to check']) - end - case 1 - if isempty(gdat_data.(ids_top_name).time) - disp([ids_top_name '.ids_properties.homogeneous_time=1 but .time empty, to check']) - end - otherwise - warning([ids_top_name '.ids_properties.homogeneous_time = ' num2str(gdat_data.(ids_top_name).ids_properties.homogeneous_time) ... - ' not sure what to check']) + if ~isfield(gdat_data.gdat_params,'cocos_out') || isempty(gdat_data.gdat_params.cocos_out) + gdat_data.gdat_params.cocos_out = 11; end - % Perform cocos transformation if cocos_out ~= cocos_in - if gdat_data.gdat_params.cocos_in ~= gdat_data.gdat_params.cocos_out - [ids_out,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(gdat_data.(ids_top_name),ids_top_name, ... - gdat_data.gdat_params.cocos_in, gdat_data.gdat_params.cocos_out, gdat_data.gdat_params.ipsign_out,gdat_data.gdat_params.b0sign_out, ... - gdat_data.gdat_params.ipsign_in, gdat_data.gdat_params.b0sign_in); - gdat_data.(ids_top_name) = ids_out; + if ~isfield(gdat_data.gdat_params,'ipsign_out') || isempty(gdat_data.gdat_params.ipsign_out) + gdat_data.gdat_params.ipsign_out = 0; end - end - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'eqdsk'} - % add defaults - if ~isfield(gdat_data.gdat_params,'time') - gdat_data.gdat_params.time = 1.; % default time - end - if ~isfield(gdat_data.gdat_params,'write') - gdat_data.gdat_params.write = 1; % default write eqdsk to /tmp/username - end - params_eff = gdat_data.gdat_params; - params_eff = rmfield(params_eff,'time'); - params_eff.data_request = 'ids'; - params_eff.source = 'equilibrium'; - gdat_equil = gdat_imas(shot,params_eff); - params_eff.source = 'wall'; - gdat_wall = gdat_imas(shot,params_eff); - % - eqdsk_filename_suffix = [num2str(gdat_data.shot) '_' num2str(gdat_data.gdat_params.run) 't' num2str(gdat_data.gdat_params.time) ... - gdat_data.gdat_params.tokamak_name '_' gdat_data.gdat_params.database_user]; - [eqdsk_out] = ids2eqdsk(gdat_equil.equilibrium,gdat_wall.wall,gdat_data.gdat_params.time,eqdsk_filename_suffix,gdat_data.gdat_params.write); - gdat_data.equilibrium = gdat_equil.equilibrium; - gdat_data.wall = gdat_wall.wall; - gdat_data.eqdsk = eqdsk_out; - if isfield(gdat_data.gdat_params,'doplot') && gdat_data.gdat_params.doplot == 1 - plot_eqdsk(gdat_data.eqdsk) - end - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - otherwise - if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_imas']); end - error_status=901; - return + if ~isfield(gdat_data.gdat_params,'b0sign_out') || isempty(gdat_data.gdat_params.b0sign_out) + gdat_data.gdat_params.b0sign_out = 0; + end + if ~isfield(gdat_data.gdat_params,'ipsign_in') || isempty(gdat_data.gdat_params.ipsign_in) + if gdat_data.gdat_params.ipsign_out~=0 + gdat_data.gdat_params.ipsign_in = -1; + else + gdat_data.gdat_params.ipsign_in = 0; + end + end + if ~isfield(gdat_data.gdat_params,'b0sign_in') || isempty(gdat_data.gdat_params.b0sign_in) + if gdat_data.gdat_params.b0sign_out~=0 + gdat_data.gdat_params.b0sign_in = -1; + else + gdat_data.gdat_params.b0sign_in = 0; + end + end + for i=1:length(ids_top_names) + ids_top_name = ids_top_names{i}; + if ids_gen_ok + ids_empty = ids_gen(ids_top_name); % generate ids from ids_gen + else + % 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); + disp(['use structure in .mat file: ' ids_empty_path '/' 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 + % load data + try + if isfield(gdat_data.gdat_params,'idx_imas_open_env') && gdat_data.gdat_params.idx_imas_open_env >= 0 + if gdat_data.gdat_params.occurence == 0 + ids_top = ids_get(gdat_data.gdat_params.idx_imas_open_env,ids_top_name); + else + ids_top = ids_get(gdat_data.gdat_params.idx_imas_open_env,[ids_top_name '/' num2str(gdat_data.gdat_params.occurence)]); + end + gdat_data.(ids_top_name) = ids_top; + else + gdat_data.(ids_top_name) = ids_empty; + return + end + catch ME_imas_ids_get + disp(['there is a problem with: imas_get_ids_' ids_top_name ... + ' , 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 '_help']) = getReport(ME_imas_ids_get); + rethrow(ME_imas_ids_get) + end + % check homogeneous + switch gdat_data.(ids_top_name).ids_properties.homogeneous_time + case -999999999 + warning([ids_top_name '.ids_properties.homogeneous_time is not defined']); + if isempty(gdat_data.(ids_top_name).time) + if gdat_data.gdat_params.fix_homogeneous + gdat_data.(ids_top_name).ids_properties.homogeneous_time = 0; + warning([ids_top_name '.ids_properties.homogeneous_time set to 0 since .time empty']); + end + elseif isfinite(gdat_data.(ids_top_name).time) + if gdat_data.gdat_params.fix_homogeneous + gdat_data.(ids_top_name).ids_properties.homogeneous_time = 1; + warning([ids_top_name '.ids_properties.homogeneous_time set to 1 since .time finite']); + end + end + case 0 + if ~isempty(gdat_data.(ids_top_name).time) + disp([ids_top_name '.ids_properties.homogeneous_time=0 but .time not empty, to check']) + end + case 1 + if isempty(gdat_data.(ids_top_name).time) + disp([ids_top_name '.ids_properties.homogeneous_time=1 but .time empty, to check']) + end + otherwise + warning([ids_top_name '.ids_properties.homogeneous_time = ' num2str(gdat_data.(ids_top_name).ids_properties.homogeneous_time) ... + ' not sure what to check']) + end + % Perform cocos transformation if cocos_out ~= cocos_in + if gdat_data.gdat_params.cocos_in ~= gdat_data.gdat_params.cocos_out + [ids_out,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(gdat_data.(ids_top_name),ids_top_name, ... + gdat_data.gdat_params.cocos_in, gdat_data.gdat_params.cocos_out, gdat_data.gdat_params.ipsign_out,gdat_data.gdat_params.b0sign_out, ... + gdat_data.gdat_params.ipsign_in, gdat_data.gdat_params.b0sign_in); + gdat_data.(ids_top_name) = ids_out; + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'eqdsk'} + % add defaults + if ~isfield(gdat_data.gdat_params,'time') + gdat_data.gdat_params.time = 1.; % default time + end + if ~isfield(gdat_data.gdat_params,'write') + gdat_data.gdat_params.write = 1; % default write eqdsk to /tmp/username + end + params_eff = gdat_data.gdat_params; + params_eff = rmfield(params_eff,'time'); + params_eff.data_request = 'ids'; + params_eff.source = 'equilibrium'; + gdat_equil = gdat_imas(shot,params_eff); + params_eff.source = 'wall'; + gdat_wall = gdat_imas(shot,params_eff); + % + eqdsk_filename_suffix = [num2str(gdat_data.shot) '_' num2str(gdat_data.gdat_params.run) 't' num2str(gdat_data.gdat_params.time) ... + gdat_data.gdat_params.tokamak_name '_' gdat_data.gdat_params.database_user]; + [eqdsk_out] = ids2eqdsk(gdat_equil.equilibrium,gdat_wall.wall,gdat_data.gdat_params.time,eqdsk_filename_suffix,gdat_data.gdat_params.write); + gdat_data.equilibrium = gdat_equil.equilibrium; + gdat_data.wall = gdat_wall.wall; + gdat_data.eqdsk = eqdsk_out; + if isfield(gdat_data.gdat_params,'doplot') && gdat_data.gdat_params.doplot == 1 + plot_eqdsk(gdat_data.eqdsk) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + otherwise + if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_imas']); end + error_status=901; + return end else @@ -625,7 +625,7 @@ else end if ~isempty(tracefirrat.data) && ~ischar(tracefirrat.data) && any(isfinite(tracefirrat.data)) ... - && ~isempty(tracefirrat.dim) && ~isempty(tracefirrat.dim{1}) + && ~isempty(tracefirrat.dim) && ~isempty(tracefirrat.dim{1}) firthomratio = interp1(tracefirrat.dim{1},tracefirrat.data,timebase); end diff --git a/matlab/JET/gdat_jet.m b/matlab/JET/gdat_jet.m index 28b88ef5f6820c6173966b4fbf3cdb4b58a47e17..d522d546b81f183e28ccfc711951c545308688c7 100644 --- a/matlab/JET/gdat_jet.m +++ b/matlab/JET/gdat_jet.m @@ -220,8 +220,8 @@ if ~isempty(ij); else if ~iscell(data_request_eff) && ischar(data_request_eff) warning(['data_request: ' data_request_eff ' is not a pre-defined data_request nor a cell array with signal to get' char(10) ... - 'data_request probably not yet defined, ask O. Sauter if needed; check data_requests defined with' char(10) ... - 'aa=gdat(''machine'',''jet'');aa.gdat_request']); + 'data_request probably not yet defined, ask O. Sauter if needed; check data_requests defined with' char(10) ... + 'aa=gdat(''machine'',''jet'');aa.gdat_request']); return end end @@ -280,9 +280,9 @@ if strcmp(mapping_for_jet.method,'signal') elseif length(size(aatmp.data))==2 % 2 true dimensions if length(aatmp.t) == size(aatmp.data,1) - mapping_for_jet.timedim = 1; + mapping_for_jet.timedim = 1; else - mapping_for_jet.timedim = 2; + mapping_for_jet.timedim = 2; end else % more than 2 dimensions, find the one with same length to define timedim @@ -304,9 +304,9 @@ if strcmp(mapping_for_jet.method,'signal') nbdims = length(size(gdat_data.data)); for i=1:nbdims if i~=mapping_for_jet.timedim - ieff=i; - if i>mapping_for_jet.timedim; ieff=i-1; end - gdat_data.dim{i} = gdat_data.x{ieff}; + ieff=i; + if i>mapping_for_jet.timedim; ieff=i-1; end + gdat_data.dim{i} = gdat_data.x{ieff}; end end end @@ -401,80 +401,122 @@ elseif strcmp(mapping_for_jet.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'cxrs'} - %not yet finished, just started - % load typical data from cxrs, Ti, ni, vtori and vpoli (if available), as well as zeff from cxrs - % if 'fit' option is added: 'fit',1, then the fitted profiles are returned - % - % sub_nodes names from CXRS_get_profiles function, lower case when used in gdat - sub_nodes = {'Ti','vTor','vPol','nC','Zeff'}; % first node is also copied into data, choose "default' one - sub_nodes_out = lower({'Ti','vTor','vPol','ni','Zeff'}); % - sub_nodes_units = {'eV','m/s','m/s','m^{-3}',''}; % first node is also copied into data, choose "default' one - % use A. Karpushov routine to get profiles and then copy the data or the fitted profiles - aa=CXRS_get_profiles; cxrs_params = aa.param; - cxrs_params.k_plot=0; cxrs_params.k_debug=0; - % add params from gdat call - params_eff = gdat_data.gdat_params; - if isfield(params_eff,'cxrs_plot') && params_eff.cxrs_plot>0 - cxrs_plot = params_eff.cxrs_plot; - else - cxrs_plot = 0; - end - gdat_data.gdat_params.cxrs_plot = cxrs_plot; - if isfield(params_eff,'source') && ~isempty(params_eff.source) - source = params_eff.source; - else - source = [1 2 3]; - end - gdat_data.gdat_params.source = source; - if isfield(params_eff,'time_interval') && ~isempty(params_eff.time_interval) && length(params_eff.time_interval)>=2 - time_interval = params_eff.time_interval; - cxrs_plot=1; - else - time_interval = []; - end - gdat_data.gdat_params.time_interval = time_interval; - gdat_data.gdat_params.cxrs_plot = cxrs_plot; - fit_tension_default = -100.; - if isfield(params_eff,'fit_tension') - fit_tension = params_eff.fit_tension; - else - fit_tension = fit_tension_default; - end - if ~isstruct(fit_tension) - fit_tension_eff.ti = fit_tension; - fit_tension_eff.vi = fit_tension; - fit_tension_eff.ni = fit_tension; - fit_tension_eff.zeff = fit_tension; - fit_tension = fit_tension_eff; - else - if ~isfield(fit_tension,'ti'); fit_tension.ti = fit_tension_default; end - if ~isfield(fit_tension,'vi'); fit_tension.vi = fit_tension_default; end - if ~isfield(fit_tension,'ni') && ~isfield(fit_tension,'nc'); fit_tension.ni = fit_tension_default; end - if ~isfield(fit_tension,'zeff'); fit_tension.zeff = fit_tension_default; end - end - gdat_data.gdat_params.fit_tension = fit_tension; - cxrs_params.prof.Ti.taus = fit_tension.ti; - cxrs_params.prof.vi.taus = fit_tension.vi; - cxrs_params.prof.nc.taus = fit_tension.ni; - cxrs_params.prof.zeff.taus = fit_tension.zeff; - cxrs_params.k_plot = cxrs_plot; - cxrs_profiles = CXRS_get_profiles(shot,source,time_interval,cxrs_params); - inb_times = length(cxrs_profiles.Times); - gdat_data.cxrs_params = cxrs_profiles.param; - if isempty(cxrs_profiles.Times) || ~isfield(cxrs_profiles,'proffit') - if (gdat_params.nverbose>=1); warning(['problems loading data with CXRS_get_profiles for data_request= ' data_request_eff]); end + case {'cxrs'} + %not yet finished, just started + % load typical data from cxrs, Ti, ni, vtori and vpoli (if available), as well as zeff from cxrs + % if 'fit' option is added: 'fit',1, then the fitted profiles are returned + % + % sub_nodes names from CXRS_get_profiles function, lower case when used in gdat + sub_nodes = {'Ti','vTor','vPol','nC','Zeff'}; % first node is also copied into data, choose "default' one + sub_nodes_out = lower({'Ti','vTor','vPol','ni','Zeff'}); % + sub_nodes_units = {'eV','m/s','m/s','m^{-3}',''}; % first node is also copied into data, choose "default' one + % use A. Karpushov routine to get profiles and then copy the data or the fitted profiles + aa=CXRS_get_profiles; cxrs_params = aa.param; + cxrs_params.k_plot=0; cxrs_params.k_debug=0; + % add params from gdat call + params_eff = gdat_data.gdat_params; + if isfield(params_eff,'cxrs_plot') && params_eff.cxrs_plot>0 + cxrs_plot = params_eff.cxrs_plot; + else + cxrs_plot = 0; + end + gdat_data.gdat_params.cxrs_plot = cxrs_plot; + if isfield(params_eff,'source') && ~isempty(params_eff.source) + source = params_eff.source; + else + source = [1 2 3]; + end + gdat_data.gdat_params.source = source; + if isfield(params_eff,'time_interval') && ~isempty(params_eff.time_interval) && length(params_eff.time_interval)>=2 + time_interval = params_eff.time_interval; + cxrs_plot=1; + else + time_interval = []; + end + gdat_data.gdat_params.time_interval = time_interval; + gdat_data.gdat_params.cxrs_plot = cxrs_plot; + fit_tension_default = -100.; + if isfield(params_eff,'fit_tension') + fit_tension = params_eff.fit_tension; + else + fit_tension = fit_tension_default; + end + if ~isstruct(fit_tension) + fit_tension_eff.ti = fit_tension; + fit_tension_eff.vi = fit_tension; + fit_tension_eff.ni = fit_tension; + fit_tension_eff.zeff = fit_tension; + fit_tension = fit_tension_eff; + else + if ~isfield(fit_tension,'ti'); fit_tension.ti = fit_tension_default; end + if ~isfield(fit_tension,'vi'); fit_tension.vi = fit_tension_default; end + if ~isfield(fit_tension,'ni') && ~isfield(fit_tension,'nc'); fit_tension.ni = fit_tension_default; end + if ~isfield(fit_tension,'zeff'); fit_tension.zeff = fit_tension_default; end + end + gdat_data.gdat_params.fit_tension = fit_tension; + cxrs_params.prof.Ti.taus = fit_tension.ti; + cxrs_params.prof.vi.taus = fit_tension.vi; + cxrs_params.prof.nc.taus = fit_tension.ni; + cxrs_params.prof.zeff.taus = fit_tension.zeff; + cxrs_params.k_plot = cxrs_plot; + cxrs_profiles = CXRS_get_profiles(shot,source,time_interval,cxrs_params); + inb_times = length(cxrs_profiles.Times); + gdat_data.cxrs_params = cxrs_profiles.param; + if isempty(cxrs_profiles.Times) || ~isfield(cxrs_profiles,'proffit') + if (gdat_params.nverbose>=1); warning(['problems loading data with CXRS_get_profiles for data_request= ' data_request_eff]); end + for i=1:length(sub_nodes) + sub_eff_out = sub_nodes_out{i}; + gdat_data.(sub_eff_out).fit.data = []; + gdat_data.(sub_eff_out).fit.rho = []; + gdat_data.(sub_eff_out).fit.error_bar = []; + gdat_data.(sub_eff_out).raw.data = []; + gdat_data.(sub_eff_out).raw.rho = []; + gdat_data.(sub_eff_out).raw.error_bar = []; + gdat_data.(sub_eff_out).raw.error_bar_rho = []; + gdat_data.(sub_eff_out).raw.cxrs_system = []; + gdat_data.time_interval = []; + gdat_data.(sub_eff_out).units = sub_nodes_units{i}; + if i==1 + gdat_data.data = gdat_data.(sub_eff_out).fit.data; + gdat_data.x = gdat_data.(sub_eff_out).fit.rho; + gdat_data.error_bar = gdat_data.(sub_eff_out).fit.error_bar; + gdat_data.units = gdat_data.(sub_eff_out).units; + end + end + return + end + inb_channels =120; % need to change if gets bigger!!! but easier to prefill with NaNs and use the "use" part for i=1:length(sub_nodes) + sub_eff = sub_nodes{i}; sub_eff_out = sub_nodes_out{i}; - gdat_data.(sub_eff_out).fit.data = []; - gdat_data.(sub_eff_out).fit.rho = []; - gdat_data.(sub_eff_out).fit.error_bar = []; - gdat_data.(sub_eff_out).raw.data = []; - gdat_data.(sub_eff_out).raw.rho = []; - gdat_data.(sub_eff_out).raw.error_bar = []; - gdat_data.(sub_eff_out).raw.error_bar_rho = []; - gdat_data.(sub_eff_out).raw.cxrs_system = []; + % fits + if isfield(cxrs_profiles.proffit,sub_eff) + gdat_data.(sub_eff_out).fit.data = cxrs_profiles.proffit.(sub_eff); + gdat_data.(sub_eff_out).fit.rho = cxrs_profiles.proffit.([sub_eff '_rho']); + gdat_data.(sub_eff_out).fit.error_bar = cxrs_profiles.proffit.(['d' sub_eff]); + else + gdat_data.(sub_eff_out).fit.data = []; + gdat_data.(sub_eff_out).fit.rho = []; + gdat_data.(sub_eff_out).fit.error_bar = []; + end + % raw data (use all data so keep same size) + gdat_data.(sub_eff_out).raw.data = NaN * ones(inb_channels,inb_times); + gdat_data.(sub_eff_out).raw.rho = NaN * ones(inb_channels,inb_times); + gdat_data.(sub_eff_out).raw.error_bar = NaN * ones(inb_channels,inb_times); + gdat_data.(sub_eff_out).raw.error_bar_rho = NaN * ones(inb_channels,inb_times); + gdat_data.(sub_eff_out).raw.cxrs_system = NaN * ones(inb_channels,inb_times); gdat_data.time_interval = []; + for it=1:inb_times + if isfield(cxrs_profiles,sub_eff) + nb_raw_points = length(cxrs_profiles.(sub_eff){it}.use.y); + gdat_data.(sub_eff_out).raw.data(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.y; + gdat_data.(sub_eff_out).raw.rho(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.x; + gdat_data.(sub_eff_out).raw.error_bar(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.dy; + gdat_data.(sub_eff_out).raw.error_bar_rho(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.dx; + gdat_data.(sub_eff_out).raw.cxrs_system(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.sys; + gdat_data.time_interval{it} = cxrs_profiles.(sub_eff){it}.t_lim; + end + end gdat_data.(sub_eff_out).units = sub_nodes_units{i}; if i==1 gdat_data.data = gdat_data.(sub_eff_out).fit.data; @@ -483,557 +525,515 @@ elseif strcmp(mapping_for_jet.method,'switchcase') gdat_data.units = gdat_data.(sub_eff_out).units; end end - return - end - inb_channels =120; % need to change if gets bigger!!! but easier to prefill with NaNs and use the "use" part - for i=1:length(sub_nodes) - sub_eff = sub_nodes{i}; - sub_eff_out = sub_nodes_out{i}; - % fits - if isfield(cxrs_profiles.proffit,sub_eff) - gdat_data.(sub_eff_out).fit.data = cxrs_profiles.proffit.(sub_eff); - gdat_data.(sub_eff_out).fit.rho = cxrs_profiles.proffit.([sub_eff '_rho']); - gdat_data.(sub_eff_out).fit.error_bar = cxrs_profiles.proffit.(['d' sub_eff]); + gdat_data.t = cxrs_profiles.proffit.time; + gdat_data.dim = {gdat_data.x; gdat_data.t}; + if isempty(time_interval) + gdat_data.data_fullpath=['CXRS_get_profiles(' num2str(shot) ',[1 2 3],[],cxrs_params); % with cxrs_params']; else - gdat_data.(sub_eff_out).fit.data = []; - gdat_data.(sub_eff_out).fit.rho = []; - gdat_data.(sub_eff_out).fit.error_bar = []; - end - % raw data (use all data so keep same size) - gdat_data.(sub_eff_out).raw.data = NaN * ones(inb_channels,inb_times); - gdat_data.(sub_eff_out).raw.rho = NaN * ones(inb_channels,inb_times); - gdat_data.(sub_eff_out).raw.error_bar = NaN * ones(inb_channels,inb_times); - gdat_data.(sub_eff_out).raw.error_bar_rho = NaN * ones(inb_channels,inb_times); - gdat_data.(sub_eff_out).raw.cxrs_system = NaN * ones(inb_channels,inb_times); - gdat_data.time_interval = []; - for it=1:inb_times - if isfield(cxrs_profiles,sub_eff) - nb_raw_points = length(cxrs_profiles.(sub_eff){it}.use.y); - gdat_data.(sub_eff_out).raw.data(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.y; - gdat_data.(sub_eff_out).raw.rho(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.x; - gdat_data.(sub_eff_out).raw.error_bar(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.dy; - gdat_data.(sub_eff_out).raw.error_bar_rho(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.dx; - gdat_data.(sub_eff_out).raw.cxrs_system(1:nb_raw_points,it) = cxrs_profiles.(sub_eff){it}.use.sys; - gdat_data.time_interval{it} = cxrs_profiles.(sub_eff){it}.t_lim; - end + gdat_data.data_fullpath=['CXRS_get_profiles(' num2str(shot) ',[1 2 3],[' num2str(time_interval) '],cxrs_params); % with cxrs_params']; end - gdat_data.(sub_eff_out).units = sub_nodes_units{i}; - if i==1 - gdat_data.data = gdat_data.(sub_eff_out).fit.data; - gdat_data.x = gdat_data.(sub_eff_out).fit.rho; - gdat_data.error_bar = gdat_data.(sub_eff_out).fit.error_bar; - gdat_data.units = gdat_data.(sub_eff_out).units; - end - end - gdat_data.t = cxrs_profiles.proffit.time; - gdat_data.dim = {gdat_data.x; gdat_data.t}; - if isempty(time_interval) - gdat_data.data_fullpath=['CXRS_get_profiles(' num2str(shot) ',[1 2 3],[],cxrs_params); % with cxrs_params']; - else - gdat_data.data_fullpath=['CXRS_get_profiles(' num2str(shot) ',[1 2 3],[' num2str(time_interval) '],cxrs_params); % with cxrs_params']; - end - gdat_data.dimunits{1} = ''; - gdat_data.dimunits{2} = 's'; + gdat_data.dimunits{1} = ''; + gdat_data.dimunits{2} = 's'; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ece', 'eced', 'ece_rho', 'eced_rho'} - params_eff = gdat_data.gdat_params; - channel_index = [1 96]; - if ~isfield(params_eff,'channel_index') || isempty(params_eff.channel_index) - params_eff.channel_index = channel_index; - else - channel_index = params_eff.channel_index; - end - channel_index_list = channel_index; - if numel(channel_index) == 2; channel_index_list=[channel_index(1):channel_index(2)]; end - if isfield(params_eff,'time_interval') && ~isempty(params_eff.time_interval) && length(params_eff.time_interval)>=2 - time_interval = params_eff.time_interval; - else - time_interval = []; - end - gdat_data.gdat_params.time_interval = time_interval; - fit_tension_default = -3.; - if isfield(params_eff,'fit_tension') - fit_tension = params_eff.fit_tension; - else - fit_tension = fit_tension_default; - end - i = channel_index_list(1); - aa.data = []; - for i=channel_index_list(2:end) - if isempty(aa.data) - params_eff.data_request = {'ppf','kk3',num2str(i,'te%.2d')}; - aa = gdat_jet(shot,params_eff); - if ~isempty(aa.data) - aa_data_start(i,:) = reshape(aa.data,1,numel(aa.data)); - aa.data = aa_data_start; - params_eff.data_request = {'ppf','kk3',num2str(i,'rc%.2d')}; - gdat_data.rc = gdat_jet(shot,params_eff); - rc_data(i,:) = reshape(gdat_data.rc.data,1,numel(gdat_data.rc.data)); - gdat_data.rc.data = rc_data; - end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ece', 'eced', 'ece_rho', 'eced_rho'} + params_eff = gdat_data.gdat_params; + channel_index = [1 96]; + if ~isfield(params_eff,'channel_index') || isempty(params_eff.channel_index) + params_eff.channel_index = channel_index; else - % assume same time for all - % mds_dir = '/home/amerle/public/mds-ssh'; - mds_dir = '/home/amerle/public/mds-ssh3'; - if exist(mds_dir,'dir') && ~strcmp(which('mdsipmex'),fullfile(mds_dir,'mdsipmex.mexa64')) - addpath(mds_dir); - end - mdsconnect(['ssh://' gdat_params.jet_user '@mdsplus.jetdata.eu']); - if exist(mds_dir,'dir') && ~strcmp(which('mdsipmex'),fullfile(mds_dir,'mdsipmex.mexa64')) - rmpath(mds_dir); - end - rda_data_request = ['ppf/kk3/' num2str(i,'te%.2d')]; - bb = mdsvalue(['_bb=jet("' rda_data_request '",' num2str(shot) ')']); - if ~isempty(bb) && numel(bb)==size(aa.data,2) - aa.data(i,:) = bb; - end - rda_data_request = ['ppf/kk3/' num2str(i,'rc%.2d')]; - bb = mdsvalue(['_bb=jet("' rda_data_request '",' num2str(shot) ')']); - if ~isempty(bb) && numel(bb)==size(gdat_data.rc.data,2) - gdat_data.rc.data(i,:) = bb; + channel_index = params_eff.channel_index; + end + channel_index_list = channel_index; + if numel(channel_index) == 2; channel_index_list=[channel_index(1):channel_index(2)]; end + if isfield(params_eff,'time_interval') && ~isempty(params_eff.time_interval) && length(params_eff.time_interval)>=2 + time_interval = params_eff.time_interval; + else + time_interval = []; + end + gdat_data.gdat_params.time_interval = time_interval; + fit_tension_default = -3.; + if isfield(params_eff,'fit_tension') + fit_tension = params_eff.fit_tension; + else + fit_tension = fit_tension_default; + end + i = channel_index_list(1); + aa.data = []; + for i=channel_index_list(2:end) + if isempty(aa.data) + params_eff.data_request = {'ppf','kk3',num2str(i,'te%.2d')}; + aa = gdat_jet(shot,params_eff); + if ~isempty(aa.data) + aa_data_start(i,:) = reshape(aa.data,1,numel(aa.data)); + aa.data = aa_data_start; + params_eff.data_request = {'ppf','kk3',num2str(i,'rc%.2d')}; + gdat_data.rc = gdat_jet(shot,params_eff); + rc_data(i,:) = reshape(gdat_data.rc.data,1,numel(gdat_data.rc.data)); + gdat_data.rc.data = rc_data; + end + else + % assume same time for all + % mds_dir = '/home/amerle/public/mds-ssh'; + mds_dir = '/home/amerle/public/mds-ssh3'; + if exist(mds_dir,'dir') && ~strcmp(which('mdsipmex'),fullfile(mds_dir,'mdsipmex.mexa64')) + addpath(mds_dir); + end + mdsconnect(['ssh://' gdat_params.jet_user '@mdsplus.jetdata.eu']); + if exist(mds_dir,'dir') && ~strcmp(which('mdsipmex'),fullfile(mds_dir,'mdsipmex.mexa64')) + rmpath(mds_dir); + end + rda_data_request = ['ppf/kk3/' num2str(i,'te%.2d')]; + bb = mdsvalue(['_bb=jet("' rda_data_request '",' num2str(shot) ')']); + if ~isempty(bb) && numel(bb)==size(aa.data,2) + aa.data(i,:) = bb; + end + rda_data_request = ['ppf/kk3/' num2str(i,'rc%.2d')]; + bb = mdsvalue(['_bb=jet("' rda_data_request '",' num2str(shot) ')']); + if ~isempty(bb) && numel(bb)==size(gdat_data.rc.data,2) + gdat_data.rc.data(i,:) = bb; + end end end - end - gdat_data.data = aa.data; - gdat_data.t = aa.t; - gdat_data.units = 'eV'; - gdat_data.dim{1} = channel_index_list; - gdat_data.dim{2} = gdat_data.t; - gdat_data.x = gdat_data.dim{1}; - gdat_data.dimunits{1} = 'xx'; - gdat_data.dimunits{2} = 's'; - gdat_data.data_fullpath = aa.data_fullpath; - gdat_data.label = aa.label; - gdat_data.help = 'using jet() call for other data channels to avoid loading t many times'; - gdat_data.rc.units = 'm'; - gdat_data.rc.dim{1} = channel_index_list; - gdat_data.rc.dim{2} = gdat_data.rc.t; - gdat_data.rc.x = gdat_data.rc.dim{1}; - gdat_data.rc.dimunits{1} = 'xx'; - gdat_data.rc.dimunits{2} = 's'; + gdat_data.data = aa.data; + gdat_data.t = aa.t; + gdat_data.units = 'eV'; + gdat_data.dim{1} = channel_index_list; + gdat_data.dim{2} = gdat_data.t; + gdat_data.x = gdat_data.dim{1}; + gdat_data.dimunits{1} = 'xx'; + gdat_data.dimunits{2} = 's'; + gdat_data.data_fullpath = aa.data_fullpath; + gdat_data.label = aa.label; + gdat_data.help = 'using jet() call for other data channels to avoid loading t many times'; + gdat_data.rc.units = 'm'; + gdat_data.rc.dim{1} = channel_index_list; + gdat_data.rc.dim{2} = gdat_data.rc.t; + gdat_data.rc.x = gdat_data.rc.dim{1}; + gdat_data.rc.dimunits{1} = 'xx'; + gdat_data.rc.dimunits{2} = 's'; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'eqdsk'} - % - time=1.; % default time - if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) - time = gdat_data.gdat_params.time; - else + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'eqdsk'} + % + time=1.; % default time + if isfield(gdat_data.gdat_params,'time') && ~isempty(gdat_data.gdat_params.time) + time = gdat_data.gdat_params.time; + else + gdat_data.gdat_params.time = time; + if (gdat_params.nverbose>=3); disp(['"time" is expected as an option, choose default time = ' num2str(time)]); end + end gdat_data.gdat_params.time = time; - if (gdat_params.nverbose>=3); disp(['"time" is expected as an option, choose default time = ' num2str(time)]); end - end - gdat_data.gdat_params.time = time; - gdat_data.t = time; - zshift = 0.; - if isfield(gdat_data.gdat_params,'zshift') && ~isempty(gdat_data.gdat_params.zshift) - zshift = gdat_data.gdat_params.zshift; - else - gdat_data.gdat_params.zshift = zshift; - end - if abs(zshift-1) <= 1e-6 - zshift_eff = -99; - else - zshift_eff = zshift; - end - if ~isfield(gdat_data.gdat_params,'nr') || isempty(gdat_data.gdat_params.nr) - gdat_data.gdat_params.nr = 129; - end - if ~isfield(gdat_data.gdat_params,'nz') || isempty(gdat_data.gdat_params.nz) - gdat_data.gdat_params.nz = 129; - end - [efitdata,eqd]=geteqdskJET(shot,time,gdat_data.gdat_params.nr,gdat_data.gdat_params.nz,[],zshift_eff,[],[],[],100,[],gdat_data.gdat_params.jet_user); - if length(time) > 1 - gdat_data.eqdsk = eqd; - for itime=1:length(time) - if itime==1 - gdat_data.data(:,:,itime) = gdat_data.eqdsk{itime}.psi; - gdat_data.dim{1} = gdat_data.eqdsk{itime}.rmesh; - gdat_data.dim{2} = gdat_data.eqdsk{itime}.zmesh; - else - % for several times, use array of structure for eqdsks, - % cannot use it for psi(R,Z) in .data and .x since R, Z might be different at different times, - % so project psi(R,Z) on Rmesh, Zmesh of 1st time - xx=repmat(reshape(gdat_data.dim{1},length(gdat_data.dim{1}),1),1,size(gdat_data.eqdsk{itime}.psi,2)); - yy=repmat(reshape(gdat_data.dim{2},1,length(gdat_data.dim{2})),size(gdat_data.eqdsk{itime}.psi,1),1); - aa = interpos2Dcartesian(gdat_data.eqdsk{itime}.rmesh,gdat_data.eqdsk{itime}.zmesh ... - ,gdat_data.eqdsk{itime}.psi,xx,yy,-1,-1); - gdat_data.data(:,:,itime) = aa; + gdat_data.t = time; + zshift = 0.; + if isfield(gdat_data.gdat_params,'zshift') && ~isempty(gdat_data.gdat_params.zshift) + zshift = gdat_data.gdat_params.zshift; + else + gdat_data.gdat_params.zshift = zshift; + end + if abs(zshift-1) <= 1e-6 + zshift_eff = -99; + else + zshift_eff = zshift; + end + if ~isfield(gdat_data.gdat_params,'nr') || isempty(gdat_data.gdat_params.nr) + gdat_data.gdat_params.nr = 129; + end + if ~isfield(gdat_data.gdat_params,'nz') || isempty(gdat_data.gdat_params.nz) + gdat_data.gdat_params.nz = 129; + end + [efitdata,eqd]=geteqdskJET(shot,time,gdat_data.gdat_params.nr,gdat_data.gdat_params.nz,[],zshift_eff,[],[],[],100,[],gdat_data.gdat_params.jet_user); + if length(time) > 1 + gdat_data.eqdsk = eqd; + for itime=1:length(time) + if itime==1 + gdat_data.data(:,:,itime) = gdat_data.eqdsk{itime}.psi; + gdat_data.dim{1} = gdat_data.eqdsk{itime}.rmesh; + gdat_data.dim{2} = gdat_data.eqdsk{itime}.zmesh; + else + % for several times, use array of structure for eqdsks, + % cannot use it for psi(R,Z) in .data and .x since R, Z might be different at different times, + % so project psi(R,Z) on Rmesh, Zmesh of 1st time + xx=repmat(reshape(gdat_data.dim{1},length(gdat_data.dim{1}),1),1,size(gdat_data.eqdsk{itime}.psi,2)); + yy=repmat(reshape(gdat_data.dim{2},1,length(gdat_data.dim{2})),size(gdat_data.eqdsk{itime}.psi,1),1); + aa = interpos2Dcartesian(gdat_data.eqdsk{itime}.rmesh,gdat_data.eqdsk{itime}.zmesh ... + ,gdat_data.eqdsk{itime}.psi,xx,yy,-1,-1); + gdat_data.data(:,:,itime) = aa; + end end + else + gdat_data.eqdsk = eqd{1}; + gdat_data.data = gdat_data.eqdsk.psi; + gdat_data.dim{1} = gdat_data.eqdsk.rmesh; + gdat_data.dim{2} = gdat_data.eqdsk.zmesh; end - else - gdat_data.eqdsk = eqd{1}; - gdat_data.data = gdat_data.eqdsk.psi; - gdat_data.dim{1} = gdat_data.eqdsk.rmesh; - gdat_data.dim{2} = gdat_data.eqdsk.zmesh; - end - gdat_data.dim{3} = gdat_data.t; - gdat_data.x = gdat_data.dim(1:2); - gdat_data.data_fullpath=['psi(R,Z) and eqdsk from geteqdskJET from efit ; zshift=' num2str(zshift)]; - gdat_data.units = 'T m^2'; - gdat_data.dimunits = {'m','m','s'}; - gdat_data.request_description = ['data=psi, x=(R,Z), eqdsk contains eqdsk structure with which ' ... + gdat_data.dim{3} = gdat_data.t; + gdat_data.x = gdat_data.dim(1:2); + gdat_data.data_fullpath=['psi(R,Z) and eqdsk from geteqdskJET from efit ; zshift=' num2str(zshift)]; + gdat_data.units = 'T m^2'; + gdat_data.dimunits = {'m','m','s'}; + gdat_data.request_description = ['data=psi, x=(R,Z), eqdsk contains eqdsk structure with which ' ... 'plot_eqdsk, write_eqdsk, read_eqdsk can be used']; - % data loaded to create eqdsks, can be used in geteqdskJET for other times to avoid to reload all - gdat_data.efitdata = efitdata; + % data loaded to create eqdsks, can be used in geteqdskJET for other times to avoid to reload all + gdat_data.efitdata = efitdata; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'mhd'} - params_eff = gdat_data.gdat_params; - if ~isfield(params_eff,'nfft') || isempty(params_eff.nfft) - params_eff.nfft = 4096; - end - gdat_data.gdat_params = params_eff; - params_eff.data_request={'JPF','DA','C1M-H305'}; - gdat_tmp = gdat_jet(shot,params_eff); - gdat_data.sig1.data = reshape(gdat_tmp.data,length(gdat_tmp.data),1 ); - gdat_data.t = gdat_tmp.t; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dim{2} = [1 2]; - gdat_data.dimunits = {'s', 'odd/even'}; - gdat_data.x = gdat_data.dim{2}; - gdat_data.sig1.data_request = params_eff.data_request; - % other coil 180deg apart toroidally - params_eff.data_request = {'JPF','DA','C1M-T009'}; - gdat_tmp=gdat_jet(shot,params_eff); - gdat_data.sig2.data = reshape(gdat_tmp.data,length(gdat_tmp.data),1); - gdat_data.sig2.data_request=params_eff.data_request; - gdat_data.label={'n=odd','n=even'}; - gdat_data.full_path='n=1 in data(:,1) and .sig1; .sig2'; - gdat_data.units = 'T/s'; - gdat_data.label = {'n=odd','n=even'}; % can be used in legend(gdat_data.label) - % - if ~isempty(gdat_data.sig1.data) && ~isempty(gdat_data.sig2.data) - gdat_data.data(:,1) = (gdat_data.sig1.data - gdat_data.sig2.data)./2; - gdat_data.data(:,2) = (gdat_data.sig1.data + gdat_data.sig2.data)./2; - end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'mhd'} + params_eff = gdat_data.gdat_params; + if ~isfield(params_eff,'nfft') || isempty(params_eff.nfft) + params_eff.nfft = 4096; + end + gdat_data.gdat_params = params_eff; + params_eff.data_request={'JPF','DA','C1M-H305'}; + gdat_tmp = gdat_jet(shot,params_eff); + gdat_data.sig1.data = reshape(gdat_tmp.data,length(gdat_tmp.data),1 ); + gdat_data.t = gdat_tmp.t; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dim{2} = [1 2]; + gdat_data.dimunits = {'s', 'odd/even'}; + gdat_data.x = gdat_data.dim{2}; + gdat_data.sig1.data_request = params_eff.data_request; + % other coil 180deg apart toroidally + params_eff.data_request = {'JPF','DA','C1M-T009'}; + gdat_tmp=gdat_jet(shot,params_eff); + gdat_data.sig2.data = reshape(gdat_tmp.data,length(gdat_tmp.data),1); + gdat_data.sig2.data_request=params_eff.data_request; + gdat_data.label={'n=odd','n=even'}; + gdat_data.full_path='n=1 in data(:,1) and .sig1; .sig2'; + gdat_data.units = 'T/s'; + gdat_data.label = {'n=odd','n=even'}; % can be used in legend(gdat_data.label) + % + if ~isempty(gdat_data.sig1.data) && ~isempty(gdat_data.sig2.data) + gdat_data.data(:,1) = (gdat_data.sig1.data - gdat_data.sig2.data)./2; + gdat_data.data(:,2) = (gdat_data.sig1.data + gdat_data.sig2.data)./2; + end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ne','te', 'nete'} - nodenameeff_rho = 'rho'; - if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) - gdat_data.gdat_params.fit = 1; % default do fit - end - if isfield(gdat_data.gdat_params,'source') && ~isempty(gdat_data.gdat_params.source) - if strcmp(lower(gdat_data.gdat_params.source),'chain2') - gdat_data.gdat_params.source = 'hrt2'; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ne','te', 'nete'} + nodenameeff_rho = 'rho'; + if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit) + gdat_data.gdat_params.fit = 1; % default do fit end - if strcmp(lower(gdat_data.gdat_params.source),'hrt2') - nodenameeff_rho = []; % profiles already on rho - gdat_data.gdat_params.fit = 0; % no need, chain2 is already a fit on rhopol + if isfield(gdat_data.gdat_params,'source') && ~isempty(gdat_data.gdat_params.source) + if strcmp(lower(gdat_data.gdat_params.source),'chain2') + gdat_data.gdat_params.source = 'hrt2'; + end + if strcmp(lower(gdat_data.gdat_params.source),'hrt2') + nodenameeff_rho = []; % profiles already on rho + gdat_data.gdat_params.fit = 0; % no need, chain2 is already a fit on rhopol + end + else + gdat_data.gdat_params.source = 'hrts'; end - else - gdat_data.gdat_params.source = 'hrts'; - end - if ~isfield(gdat_data.gdat_params,'fit_ne_edge') || isempty(gdat_data.gdat_params.fit_ne_edge) || ~isnumeric(gdat_data.gdat_params.fit_ne_edge) - gdat_data.gdat_params.fit_ne_edge = 1e18; % default edge ne value (-1 to let free) - end - if ~isfield(gdat_data.gdat_params,'fit_te_edge') || isempty(gdat_data.gdat_params.fit_te_edge) || ~isnumeric(gdat_data.gdat_params.fit_te_edge) - gdat_data.gdat_params.fit_te_edge = 50; % default edge te value (-1 to let free) - end - params_eff = gdat_data.gdat_params; - params_eff.doplot = 0; - % ne and/or Te from Thomson data on raw z mesh vs (z,t) - data_request_effi{1} = data_request_eff; - if strcmp(data_request_eff,'nete') - data_request_effi{1} = 'ne'; % start with ne - data_request_effi{2} = 'te'; - else - data_request_effi{2} = []; - end - params_eff.data_request = {'ppf',params_eff.source,data_request_effi{1}}; - aa = gdat_jet(shot,params_eff); - if isempty(aa.data) || isempty(aa.t) - if gdat_params.nverbose>=3; - aa - disp(['with data_request= ' data_request_eff]) + if ~isfield(gdat_data.gdat_params,'fit_ne_edge') || isempty(gdat_data.gdat_params.fit_ne_edge) || ~isnumeric(gdat_data.gdat_params.fit_ne_edge) + gdat_data.gdat_params.fit_ne_edge = 1e18; % default edge ne value (-1 to let free) end - return - end - gdat_data.data = aa.data; - gdat_data.dim = aa.dim; - gdat_data.t = aa.dim{2}; - gdat_data.x = aa.dim{1}; - gdat_data.dimunits=[{'R [m]'} ; {'time [s]'}]; - gdat_data.data_fullpath=[data_request_eff ' from ' params_eff.source]; - gdat_data.(data_request_effi{1}).data = aa.data; - gdat_data.(data_request_effi{1}).t = aa.t; - gdat_data.(data_request_effi{1}).r = aa.x; - if any(strcmp(fieldnames(aa),'units')) && ~isempty(aa.units) - gdat_data.units=aa.units; - else - if strcmp(data_request_effi{1},'ne') - gdat_data.units = 'm^{-3}'; - elseif strcmp(data_request_effi{1},'te') - gdat_data.units = 'eV'; + if ~isfield(gdat_data.gdat_params,'fit_te_edge') || isempty(gdat_data.gdat_params.fit_te_edge) || ~isnumeric(gdat_data.gdat_params.fit_te_edge) + gdat_data.gdat_params.fit_te_edge = 50; % default edge te value (-1 to let free) end - end - params_eff.data_request = {'ppf',params_eff.source,['d' data_request_effi{1}]}; - aaerr = gdat_jet(shot,params_eff); - gdat_data.error_bar = aaerr.data; - gdat_data.(data_request_effi{1}).error_bar = aaerr.data; - if ~isempty(nodenameeff_rho) - params_eff.data_request = {'ppf',params_eff.source,'rho'}; - aarho = gdat_jet(shot,params_eff); - gdat_data.rhopol = abs(aarho.data); - gdat_data.(data_request_effi{1}).rhopol = abs(aarho.data); % keep rho >0 - gdat_data.(data_request_effi{1}).rhopol_sign = aarho.data; % to be able to distinguish channels - else - gdat_data.rhopol = gdat_data.x; - gdat_data.(data_request_effi{1}).rhopol = gdat_data.x; - gdat_data.dimunits{1} = 'rhopol'; - end - if length(gdat_data.x) == numel(gdat_data.rhopol) - % gdat_data.x is already rhopol and 1D - gdat_data = get_grids_1d(gdat_data,1,1,gdat_params.nverbose); - else - aa=gdat_data; aa.x = aa.rhopol; - gdat_data2 = get_grids_1d(aa,2,1,gdat_params.nverbose); - gdat_data.grids_1d = gdat_data2.grids_1d; - clear aa gdat_data2 - end - % load te if 'nete' was asked - if ~isempty(data_request_effi{2}) - params_eff.data_request = {'ppf',params_eff.source,data_request_effi{2}}; + params_eff = gdat_data.gdat_params; + params_eff.doplot = 0; + % ne and/or Te from Thomson data on raw z mesh vs (z,t) + data_request_effi{1} = data_request_eff; + if strcmp(data_request_eff,'nete') + data_request_effi{1} = 'ne'; % start with ne + data_request_effi{2} = 'te'; + else + data_request_effi{2} = []; + end + params_eff.data_request = {'ppf',params_eff.source,data_request_effi{1}}; aa = gdat_jet(shot,params_eff); if isempty(aa.data) || isempty(aa.t) if gdat_params.nverbose>=3; aa - disp(['with data_request= ' data_request_effi{2}]) + disp(['with data_request= ' data_request_eff]) end return end - gdat_data.(data_request_effi{2}).data = aa.data; - gdat_data.(data_request_effi{2}).t = aa.t; - gdat_data.(data_request_effi{2}).r = aa.x; + gdat_data.data = aa.data; + gdat_data.dim = aa.dim; + gdat_data.t = aa.dim{2}; + gdat_data.x = aa.dim{1}; + gdat_data.dimunits=[{'R [m]'} ; {'time [s]'}]; + gdat_data.data_fullpath=[data_request_eff ' from ' params_eff.source]; + gdat_data.(data_request_effi{1}).data = aa.data; + gdat_data.(data_request_effi{1}).t = aa.t; + gdat_data.(data_request_effi{1}).r = aa.x; if any(strcmp(fieldnames(aa),'units')) && ~isempty(aa.units) - gdat_data.(data_request_effi{2}).units=aa.units; + gdat_data.units=aa.units; else - if strcmp(data_request_effi{2},'ne') - gdat_data.(data_request_effi{2}).units = 'm^{-3}'; - elseif strcmp(data_request_effi{2},'te') - gdat_data.(data_request_effi{2}).units = 'eV'; + if strcmp(data_request_effi{1},'ne') + gdat_data.units = 'm^{-3}'; + elseif strcmp(data_request_effi{1},'te') + gdat_data.units = 'eV'; end end - params_eff.data_request = {'ppf',params_eff.source,['d' data_request_effi{2}]}; + params_eff.data_request = {'ppf',params_eff.source,['d' data_request_effi{1}]}; aaerr = gdat_jet(shot,params_eff); - gdat_data.(data_request_effi{2}).error_bar = aaerr.data; - gdat_data.(data_request_effi{2}).rhopol = gdat_data.(data_request_effi{1}).rhopol; - gdat_data.(data_request_effi{2}).rhopol_sign = gdat_data.(data_request_effi{1}).rhopol_sign; - % construct pressure in .data - gdat_data.data = 1.602e-19.* gdat_data.(data_request_effi{1}).data .* gdat_data.(data_request_effi{2}).data; - end - % defaults for fits, so user always gets std structure - gdat_data.fit.rhotornorm = []; % same for both ne and te - gdat_data.fit.rhopolnorm = []; - gdat_data.fit.t = []; - gdat_data.fit.te.data = []; - gdat_data.fit.te.d_over_drhotornorm = []; - gdat_data.fit.ne.data = []; - gdat_data.fit.ne.d_over_drhotornorm = []; - gdat_data.fit.raw.te.data = []; - gdat_data.fit.raw.te.rhopolnorm = []; - gdat_data.fit.raw.ne.data = []; - gdat_data.fit.raw.ne.rhopolnorm = []; - fit_tension_default = -1; - if isfield(gdat_data.gdat_params,'fit_tension') - fit_tension = gdat_data.gdat_params.fit_tension; - else - fit_tension = fit_tension_default; - end - if ~isstruct(fit_tension) - fit_tension_eff.te = fit_tension; - fit_tension_eff.ne = fit_tension; - fit_tension = fit_tension_eff; - else - if ~isfield(fit_tension,'te'); fit_tension.te = fit_tension_default; end - if ~isfield(fit_tension,'ne '); fit_tension.ne = fit_tension_default; end - end - gdat_data.gdat_params.fit_tension = fit_tension; - if isfield(gdat_data.gdat_params,'fit_nb_rho_points') - fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; - else - fit_nb_rho_points = 201; - end - gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; - if isfield(gdat_data.gdat_params,'fit_ne_min') - fit_ne_min = gdat_data.gdat_params.fit_ne_min; - else - fit_ne_min = 1e17; - end - if isfield(gdat_data.gdat_params,'fit_te_min') - fit_te_min = gdat_data.gdat_params.fit_te_min; - else - fit_te_min = 5; - end - gdat_data.gdat_params.fit_te_min = fit_te_min; - fit_mask = -1; % we mask on the indices, thus -1 means no mask - if isfield(gdat_data.gdat_params,'fit_mask') && isnumeric(gdat_data.gdat_params.fit_mask) ... - && ~isempty(gdat_data.gdat_params.fit_mask) - % channel index to mask - fit_mask = gdat_data.gdat_params.fit_mask; - else - fit_mask = fit_mask; - end - gdat_data.gdat_params.fit_mask = fit_mask; - gdat_data.fit.mask = fit_mask; - % - if gdat_data.gdat_params.fit==1 - % add fits - gdat_data.fit.t = gdat_data.t; - rhopolfit = linspace(0,1,fit_nb_rho_points)'; - gdat_data.fit.rhotornorm = NaN*ones(length(rhopolfit),length(gdat_data.fit.t)); - gdat_data.fit.rhopolnorm = rhopolfit; - % common part between ne and te - indices_ok=[1:size(gdat_data.data,1)]'; - indices_ok=setdiff(indices_ok,fit_mask); - for it=1:length(gdat_data.t) - % make rhopol->rhotor transformation for each time since equilibrium might have changed - irhook=find(gdat_data.grids_1d.rhopolnorm(indices_ok,it)>0 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<1); % no need for ~isnan - [rhoeff isort]=sort(gdat_data.grids_1d.rhopolnorm(indices_ok(irhook),it)); - gdat_data.fit.rhotornorm(:,it)=interpos([0; rhoeff; 1], ... - [0; gdat_data.grids_1d.rhotornorm(indices_ok(irhook(isort)),it); 1],rhopolfit,-0.1,[2 2],[0 1]); + gdat_data.error_bar = aaerr.data; + gdat_data.(data_request_effi{1}).error_bar = aaerr.data; + if ~isempty(nodenameeff_rho) + params_eff.data_request = {'ppf',params_eff.source,'rho'}; + aarho = gdat_jet(shot,params_eff); + gdat_data.rhopol = abs(aarho.data); + gdat_data.(data_request_effi{1}).rhopol = abs(aarho.data); % keep rho >0 + gdat_data.(data_request_effi{1}).rhopol_sign = aarho.data; % to be able to distinguish channels + else + gdat_data.rhopol = gdat_data.x; + gdat_data.(data_request_effi{1}).rhopol = gdat_data.x; + gdat_data.dimunits{1} = 'rhopol'; + end + if length(gdat_data.x) == numel(gdat_data.rhopol) + % gdat_data.x is already rhopol and 1D + gdat_data = get_grids_1d(gdat_data,1,1,gdat_params.nverbose); + else + aa=gdat_data; aa.x = aa.rhopol; + gdat_data2 = get_grids_1d(aa,2,1,gdat_params.nverbose); + gdat_data.grids_1d = gdat_data2.grids_1d; + clear aa gdat_data2 end - for i=1:2 - if strcmp(data_request_effi{i},'te') - gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.rhopolnorm = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.te.data = gdat_data.fit.rhotornorm; - gdat_data.fit.te.d_over_drhotornorm = gdat_data.fit.rhotornorm; - elseif strcmp(data_request_effi{i},'ne') - gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.raw.ne.rhopolnorm = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.ne.data =gdat_data.fit.rhotornorm; - gdat_data.fit.ne.d_over_drhotornorm = gdat_data.fit.rhotornorm; + % load te if 'nete' was asked + if ~isempty(data_request_effi{2}) + params_eff.data_request = {'ppf',params_eff.source,data_request_effi{2}}; + aa = gdat_jet(shot,params_eff); + if isempty(aa.data) || isempty(aa.t) + if gdat_params.nverbose>=3; + aa + disp(['with data_request= ' data_request_effi{2}]) + end + return + end + gdat_data.(data_request_effi{2}).data = aa.data; + gdat_data.(data_request_effi{2}).t = aa.t; + gdat_data.(data_request_effi{2}).r = aa.x; + if any(strcmp(fieldnames(aa),'units')) && ~isempty(aa.units) + gdat_data.(data_request_effi{2}).units=aa.units; + else + if strcmp(data_request_effi{2},'ne') + gdat_data.(data_request_effi{2}).units = 'm^{-3}'; + elseif strcmp(data_request_effi{2},'te') + gdat_data.(data_request_effi{2}).units = 'eV'; + end end + params_eff.data_request = {'ppf',params_eff.source,['d' data_request_effi{2}]}; + aaerr = gdat_jet(shot,params_eff); + gdat_data.(data_request_effi{2}).error_bar = aaerr.data; + gdat_data.(data_request_effi{2}).rhopol = gdat_data.(data_request_effi{1}).rhopol; + gdat_data.(data_request_effi{2}).rhopol_sign = gdat_data.(data_request_effi{1}).rhopol_sign; + % construct pressure in .data + gdat_data.data = 1.602e-19.* gdat_data.(data_request_effi{1}).data .* gdat_data.(data_request_effi{2}).data; + end + % defaults for fits, so user always gets std structure + gdat_data.fit.rhotornorm = []; % same for both ne and te + gdat_data.fit.rhopolnorm = []; + gdat_data.fit.t = []; + gdat_data.fit.te.data = []; + gdat_data.fit.te.d_over_drhotornorm = []; + gdat_data.fit.ne.data = []; + gdat_data.fit.ne.d_over_drhotornorm = []; + gdat_data.fit.raw.te.data = []; + gdat_data.fit.raw.te.rhopolnorm = []; + gdat_data.fit.raw.ne.data = []; + gdat_data.fit.raw.ne.rhopolnorm = []; + fit_tension_default = -1; + if isfield(gdat_data.gdat_params,'fit_tension') + fit_tension = gdat_data.gdat_params.fit_tension; + else + fit_tension = fit_tension_default; + end + if ~isstruct(fit_tension) + fit_tension_eff.te = fit_tension; + fit_tension_eff.ne = fit_tension; + fit_tension = fit_tension_eff; + else + if ~isfield(fit_tension,'te'); fit_tension.te = fit_tension_default; end + if ~isfield(fit_tension,'ne '); fit_tension.ne = fit_tension_default; end + end + gdat_data.gdat_params.fit_tension = fit_tension; + if isfield(gdat_data.gdat_params,'fit_nb_rho_points') + fit_nb_rho_points = gdat_data.gdat_params.fit_nb_rho_points; + else + fit_nb_rho_points = 201; + end + gdat_data.gdat_params.fit_nb_rho_points = fit_nb_rho_points; + if isfield(gdat_data.gdat_params,'fit_ne_min') + fit_ne_min = gdat_data.gdat_params.fit_ne_min; + else + fit_ne_min = 1e17; + end + if isfield(gdat_data.gdat_params,'fit_te_min') + fit_te_min = gdat_data.gdat_params.fit_te_min; + else + fit_te_min = 5; + end + gdat_data.gdat_params.fit_te_min = fit_te_min; + fit_mask = -1; % we mask on the indices, thus -1 means no mask + if isfield(gdat_data.gdat_params,'fit_mask') && isnumeric(gdat_data.gdat_params.fit_mask) ... + && ~isempty(gdat_data.gdat_params.fit_mask) + % channel index to mask + fit_mask = gdat_data.gdat_params.fit_mask; + else + fit_mask = fit_mask; + end + gdat_data.gdat_params.fit_mask = fit_mask; + gdat_data.fit.mask = fit_mask; + % + if gdat_data.gdat_params.fit==1 + % add fits + gdat_data.fit.t = gdat_data.t; + rhopolfit = linspace(0,1,fit_nb_rho_points)'; + gdat_data.fit.rhotornorm = NaN*ones(length(rhopolfit),length(gdat_data.fit.t)); + gdat_data.fit.rhopolnorm = rhopolfit; + % common part between ne and te + indices_ok=[1:size(gdat_data.data,1)]'; + indices_ok=setdiff(indices_ok,fit_mask); for it=1:length(gdat_data.t) + % make rhopol->rhotor transformation for each time since equilibrium might have changed + irhook=find(gdat_data.grids_1d.rhopolnorm(indices_ok,it)>0 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<1); % no need for ~isnan + [rhoeff isort]=sort(gdat_data.grids_1d.rhopolnorm(indices_ok(irhook),it)); + gdat_data.fit.rhotornorm(:,it)=interpos([0; rhoeff; 1], ... + [0; gdat_data.grids_1d.rhotornorm(indices_ok(irhook(isort)),it); 1],rhopolfit,-0.1,[2 2],[0 1]); + end + for i=1:2 if strcmp(data_request_effi{i},'te') - idatate = find(gdat_data.te.data(indices_ok,it)>1 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<=1.05); - idatate = indices_ok(idatate); - if length(idatate)>0 - gdat_data.fit.raw.te.rhopolnorm(idatate,it) = gdat_data.grids_1d.rhopolnorm(idatate,it); - gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it); - gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it); - [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhopolnorm(idatate,it)); - rhoeff = [0; rhoeff]; - teeff = gdat_data.te.data(idatate(irhoeff),it); - te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it); - % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar - ij=find(teeff./te_err_eff>10.); - if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end - % - teeff = [teeff(1); teeff]; - te_err_eff = [1e4; te_err_eff]; - if gdat_data.gdat_params.fit_te_edge < 0 - [gdat_data.fit.te.data(:,it), gdat_data.fit.te.d_over_drhopolnorm(:,it)] = ... - interpos(rhoeff,teeff,rhopolfit,fit_tension.te,[1 0],[0 0],te_err_eff); - else - [gdat_data.fit.te.data(:,it), gdat_data.fit.te.d_over_drhopolnorm(:,it)] = ... - interpos(rhoeff,teeff,rhopolfit,fit_tension.te,[1 2],[0 gdat_data.gdat_params.fit_te_edge],te_err_eff); - end - % impose minimum value - ij=find(gdat_data.fit.te.data(:,it)<fit_te_min); - if ~isempty(ij); gdat_data.fit.te.data(ij,it) = fit_te_min; end - end + gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.rhopolnorm = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.te.data = gdat_data.fit.rhotornorm; + gdat_data.fit.te.d_over_drhotornorm = gdat_data.fit.rhotornorm; elseif strcmp(data_request_effi{i},'ne') - idatane = find(gdat_data.ne.data(indices_ok,it)>1 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<=1.05); - idatane = indices_ok(idatane); - if length(idatane)>0 - gdat_data.fit.raw.ne.rhopolnorm(idatane,it) = gdat_data.grids_1d.rhopolnorm(idatane,it); - gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it); - gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it); - [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhopolnorm(idatane,it)); - rhoeff = [0; rhoeff]; - % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar - neeff = gdat_data.ne.data(idatane(irhoeff),it); - ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it); - ij=find(neeff./ne_err_eff>10.); - if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end - % - neeff = [neeff(1); neeff]; - ne_err_eff = [1e21; ne_err_eff]; - if gdat_data.gdat_params.fit_ne_edge < 0 - [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.d_over_drhopolnorm(:,it)] = interpos(rhoeff,neeff,rhopolfit,fit_tension.ne,[1 0],[0 ... + gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.rhopolnorm = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.ne.data =gdat_data.fit.rhotornorm; + gdat_data.fit.ne.d_over_drhotornorm = gdat_data.fit.rhotornorm; + end + for it=1:length(gdat_data.t) + if strcmp(data_request_effi{i},'te') + idatate = find(gdat_data.te.data(indices_ok,it)>1 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<=1.05); + idatate = indices_ok(idatate); + if length(idatate)>0 + gdat_data.fit.raw.te.rhopolnorm(idatate,it) = gdat_data.grids_1d.rhopolnorm(idatate,it); + gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it); + gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhopolnorm(idatate,it)); + rhoeff = [0; rhoeff]; + teeff = gdat_data.te.data(idatate(irhoeff),it); + te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it); + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + ij=find(teeff./te_err_eff>10.); + if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end + % + teeff = [teeff(1); teeff]; + te_err_eff = [1e4; te_err_eff]; + if gdat_data.gdat_params.fit_te_edge < 0 + [gdat_data.fit.te.data(:,it), gdat_data.fit.te.d_over_drhopolnorm(:,it)] = ... + interpos(rhoeff,teeff,rhopolfit,fit_tension.te,[1 0],[0 0],te_err_eff); + else + [gdat_data.fit.te.data(:,it), gdat_data.fit.te.d_over_drhopolnorm(:,it)] = ... + interpos(rhoeff,teeff,rhopolfit,fit_tension.te,[1 2],[0 gdat_data.gdat_params.fit_te_edge],te_err_eff); + end + % impose minimum value + ij=find(gdat_data.fit.te.data(:,it)<fit_te_min); + if ~isempty(ij); gdat_data.fit.te.data(ij,it) = fit_te_min; end + end + elseif strcmp(data_request_effi{i},'ne') + idatane = find(gdat_data.ne.data(indices_ok,it)>1 & gdat_data.grids_1d.rhopolnorm(indices_ok,it)<=1.05); + idatane = indices_ok(idatane); + if length(idatane)>0 + gdat_data.fit.raw.ne.rhopolnorm(idatane,it) = gdat_data.grids_1d.rhopolnorm(idatane,it); + gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it); + gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhopolnorm(idatane,it)); + rhoeff = [0; rhoeff]; + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + neeff = gdat_data.ne.data(idatane(irhoeff),it); + ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it); + ij=find(neeff./ne_err_eff>10.); + if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end + % + neeff = [neeff(1); neeff]; + ne_err_eff = [1e21; ne_err_eff]; + if gdat_data.gdat_params.fit_ne_edge < 0 + [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.d_over_drhopolnorm(:,it)] = interpos(rhoeff,neeff,rhopolfit,fit_tension.ne,[1 0],[0 ... 0],ne_err_eff); - else - ij_in_1 = find(rhoeff<1); - [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.d_over_drhopolnorm(:,it)] = ... - interpos([rhoeff(ij_in_1); 1.],[neeff(ij_in_1); gdat_data.gdat_params.fit_ne_edge], ... + else + ij_in_1 = find(rhoeff<1); + [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.d_over_drhopolnorm(:,it)] = ... + interpos([rhoeff(ij_in_1); 1.],[neeff(ij_in_1); gdat_data.gdat_params.fit_ne_edge], ... rhopolfit,fit_tension.ne,[1 2],[0 gdat_data.gdat_params.fit_ne_edge],[ne_err_eff(ij_in_1);ne_err_eff(1)]); + end + % impose minimum value + ij=find(gdat_data.fit.ne.data(:,it)<fit_ne_min); + if ~isempty(ij); gdat_data.fit.ne.data(ij,it) = fit_ne_min; end end - % impose minimum value - ij=find(gdat_data.fit.ne.data(:,it)<fit_ne_min); - if ~isempty(ij); gdat_data.fit.ne.data(ij,it) = fit_ne_min; end end end end end - end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'ni','ti'} - nodenameeff_rho = 'rho'; - data_type_eff = data_request_eff; - if strcmp(data_request_eff,'ni'); data_type_eff = 'dd'; end - params_eff = gdat_data.gdat_params; - if isfield(params_eff,'source') && ~isempty(params_eff.source) - if strcmp(lower(params_eff.source),'chain2') - params_eff.source = [data_request_eff(1) 'ion']; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'ni','ti'} + nodenameeff_rho = 'rho'; + data_type_eff = data_request_eff; + if strcmp(data_request_eff,'ni'); data_type_eff = 'dd'; end + params_eff = gdat_data.gdat_params; + if isfield(params_eff,'source') && ~isempty(params_eff.source) + if strcmp(lower(params_eff.source),'chain2') + params_eff.source = [data_request_eff(1) 'ion']; + end + if strcmp(lower(params_eff.source(2:end)),'ion') + nodenameeff_rho = []; % profiles already on rho + end + else + params_eff.source = [datar_equest_eff(1) 'ion']; % only chain2 at this stage end - if strcmp(lower(params_eff.source(2:end)),'ion') - nodenameeff_rho = []; % profiles already on rho + gdat_data.gdat_params = params_eff; + params_eff.doplot = 0; + % ne or Te from Thomson data on raw z mesh vs (z,t) + params_eff.data_request = {'ppf',params_eff.source,data_type_eff}; + aa = gdat_jet(shot,params_eff); + if isempty(aa.data) || isempty(aa.t) + if gdat_params.nverbose>=3; + aa + disp(['with data_request= ' data_request_eff]) + end + return end - else - params_eff.source = [datar_equest_eff(1) 'ion']; % only chain2 at this stage - end - gdat_data.gdat_params = params_eff; - params_eff.doplot = 0; - % ne or Te from Thomson data on raw z mesh vs (z,t) - params_eff.data_request = {'ppf',params_eff.source,data_type_eff}; - aa = gdat_jet(shot,params_eff); - if isempty(aa.data) || isempty(aa.t) - if gdat_params.nverbose>=3; - aa - disp(['with data_request= ' data_request_eff]) + gdat_data.data = aa.data; + gdat_data.dim = aa.dim; + gdat_data.t = aa.dim{2}; + gdat_data.x = aa.dim{1}; + gdat_data.dimunits=[{'R [m]'} ; {'time [s]'}]; + gdat_data.data_fullpath=[data_request_eff ' from ' params_eff.source]; + gdat_data.(data_request_eff).data = aa.data; + gdat_data.(data_request_eff).t = aa.t; + gdat_data.(data_request_eff).r = aa.x; + if any(strcmp(fieldnames(aa),'units')) && ~isempty(aa.units) + gdat_data.units=aa.units; + else + if strcmp(data_request_eff,'ni') + gdat_data.units = 'm^{-3}'; + elseif strcmp(data_request_eff,'ti') + gdat_data.units = 'eV'; + end end - return - end - gdat_data.data = aa.data; - gdat_data.dim = aa.dim; - gdat_data.t = aa.dim{2}; - gdat_data.x = aa.dim{1}; - gdat_data.dimunits=[{'R [m]'} ; {'time [s]'}]; - gdat_data.data_fullpath=[data_request_eff ' from ' params_eff.source]; - gdat_data.(data_request_eff).data = aa.data; - gdat_data.(data_request_eff).t = aa.t; - gdat_data.(data_request_eff).r = aa.x; - if any(strcmp(fieldnames(aa),'units')) && ~isempty(aa.units) - gdat_data.units=aa.units; - else - if strcmp(data_request_eff,'ni') - gdat_data.units = 'm^{-3}'; - elseif strcmp(data_request_eff,'ti') - gdat_data.units = 'eV'; + params_eff.data_request = {'ppf',params_eff.source,['e' data_type_eff]}; % not given for dd but ok will be empty + aaerr = gdat_jet(shot,params_eff); + gdat_data.error_bar = aaerr.data; + gdat_data.(data_request_eff).error_bar = aaerr.data; + if ~isempty(nodenameeff_rho) + params_eff.data_request = {'ppf',params_eff.source,'rho'}; + aarho = gdat_jet(shot,params_eff); + gdat_data.rhopol = abs(aarho.data); + gdat_data.(data_request_eff).rhopol = abs(aarho.data); % keep rho >0 + else + gdat_data.rhopol = gdat_data.x; + gdat_data.(data_request_eff).rhopol = gdat_data.x; + gdat_data.dimunits{1} = 'rhopol'; end - end - params_eff.data_request = {'ppf',params_eff.source,['e' data_type_eff]}; % not given for dd but ok will be empty - aaerr = gdat_jet(shot,params_eff); - gdat_data.error_bar = aaerr.data; - gdat_data.(data_request_eff).error_bar = aaerr.data; - if ~isempty(nodenameeff_rho) - params_eff.data_request = {'ppf',params_eff.source,'rho'}; - aarho = gdat_jet(shot,params_eff); - gdat_data.rhopol = abs(aarho.data); - gdat_data.(data_request_eff).rhopol = abs(aarho.data); % keep rho >0 - else - gdat_data.rhopol = gdat_data.x; - gdat_data.(data_request_eff).rhopol = gdat_data.x; - gdat_data.dimunits{1} = 'rhopol'; - end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % $$$ case {'ne_rho', 'te_rho', 'nete_rho'} % $$$ % if nete_rho, do first ne, then Te later (so fir stuff already done) % $$$ zshift = 0.; @@ -1282,7 +1282,7 @@ elseif strcmp(mapping_for_jet.method,'switchcase') gdat_data.gdat_params.source = sources_avail; elseif ~iscell(gdat_data.gdat_params.source) if ischar(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); + gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) if (gdat_params.nverbose>=1) warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); @@ -1325,9 +1325,9 @@ elseif strcmp(mapping_for_jet.method,'switchcase') end if ~isempty(ohm.data) && ~isempty(ohm.dim) for i=1:length(fields_to_copy) - if isfield(ohm,fields_to_copy{i}) - gdat_data.ohm.(fields_to_copy{i}) = ohm.(fields_to_copy{i}); - end + if isfield(ohm,fields_to_copy{i}) + gdat_data.ohm.(fields_to_copy{i}) = ohm.(fields_to_copy{i}); + end end gdat_data.ohm.raw_data = gdat_data.ohm.data; sources_coeff(end+1) = 1; % to be added to sum at end @@ -1353,19 +1353,19 @@ elseif strcmp(mapping_for_jet.method,'switchcase') % nbi params_eff.data_request={'ppf','nbi','ptot'}; try - nbi=gdat_jet(shot,params_eff); + nbi=gdat_jet(shot,params_eff); catch end if ~isempty(nbi.data) && ~isempty(nbi.dim) - for i=1:length(fields_to_copy) - if isfield(nbi,fields_to_copy{i}) - gdat_data.nbi.(fields_to_copy{i}) = nbi.(fields_to_copy{i}); - end - end + for i=1:length(fields_to_copy) + if isfield(nbi,fields_to_copy{i}) + gdat_data.nbi.(fields_to_copy{i}) = nbi.(fields_to_copy{i}); + end + end % add to main with linear interpolation and 0 for extrapolated values - gdat_data.data(:,end+1) = interpos(-21,gdat_data.nbi.t,gdat_data.nbi.data(:,end),gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{nbi}'; + gdat_data.data(:,end+1) = interpos(-21,gdat_data.nbi.t,gdat_data.nbi.data(:,end),gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{nbi}'; sources_coeff(end+1) = 1; % to be added to sum at end end end @@ -1374,7 +1374,7 @@ elseif strcmp(mapping_for_jet.method,'switchcase') % ic params_eff.data_request={'ppf','rff','ptot'}; try - ic=gdat_jet(shot,params_eff); + ic=gdat_jet(shot,params_eff); if isempty(ic.data) || isempty(ic.dim) error('Unable to get ppf/rff/ptot'); % Effectively a shortcut to the next catch block end @@ -1386,14 +1386,14 @@ elseif strcmp(mapping_for_jet.method,'switchcase') end end if ~isempty(ic.data) && ~isempty(ic.dim) - for i=1:length(fields_to_copy) - if isfield(ic,fields_to_copy{i}) - gdat_data.ic.(fields_to_copy{i}) = ic.(fields_to_copy{i}); - end - end - gdat_data.data(:,end+1) = interpos(-21,gdat_data.ic.t,gdat_data.ic.data,gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{ic}'; + for i=1:length(fields_to_copy) + if isfield(ic,fields_to_copy{i}) + gdat_data.ic.(fields_to_copy{i}) = ic.(fields_to_copy{i}); + end + end + gdat_data.data(:,end+1) = interpos(-21,gdat_data.ic.t,gdat_data.ic.data,gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{ic}'; sources_coeff(end+1) = 1; % to be added to sum at end end end @@ -1401,21 +1401,21 @@ elseif strcmp(mapping_for_jet.method,'switchcase') % radiated power params_eff.data_request='p_rad'; try - rad=gdat_jet(shot,params_eff); + rad=gdat_jet(shot,params_eff); catch rad.data = []; rad.dim = []; end if ~isempty(rad.data) && ~isempty(rad.dim) - for i=1:length(fields_to_copy) - if isfield(rad,fields_to_copy{i}) - gdat_data.rad.(fields_to_copy{i}) = rad.(fields_to_copy{i}); - end - end + for i=1:length(fields_to_copy) + if isfield(rad,fields_to_copy{i}) + gdat_data.rad.(fields_to_copy{i}) = rad.(fields_to_copy{i}); + end + end % add to main with linear interpolation and 0 for extrapolated values - gdat_data.data(:,end+1) = interpos(-21,gdat_data.rad.t,gdat_data.rad.data,gdat_data.t); - gdat_data.x(end+1) =gdat_data.x(end)+1; - gdat_data.label{end+1}='P_{rad}'; + gdat_data.data(:,end+1) = interpos(-21,gdat_data.rad.t,gdat_data.rad.data,gdat_data.t); + gdat_data.x(end+1) =gdat_data.x(end)+1; + gdat_data.label{end+1}='P_{rad}'; sources_coeff(end+1) = 0; % to not be added to sum at end end end diff --git a/matlab/JET/jet_requests_mapping.m b/matlab/JET/jet_requests_mapping.m index 664bf4be1a85890b5eb2aebb0e9b888cb37ad249..c5aa3bd48261e30b9bd3554625a19551a9d51c9a 100644 --- a/matlab/JET/jet_requests_mapping.m +++ b/matlab/JET/jet_requests_mapping.m @@ -5,13 +5,13 @@ function mapping = jet_requests_mapping(data_request) % 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); + '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 @@ -38,384 +38,384 @@ if iscell(data_request) % || (~ischar(data_request) && length(data_request)>1) end switch lower(data_request) - case 'a_minor' - mapping.label = 'a\_minor'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'CR0'}]; - case 'b0' - mapping.label = 'B_0'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'MAGN'},{'BVAC'}]; - mapping.method = 'expression'; - mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request={''ppf'',''MAGN'',''BVAC''}; ' ... + case 'a_minor' + mapping.label = 'a\_minor'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'CR0'}]; + case 'b0' + mapping.label = 'B_0'; + mapping.timedim = 1; + mapping.method = 'signal'; + 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;']; - case 'beta' - mapping.label = 'beta\_tor diag [%]'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'BTTD'}]; - case 'betan' - mapping.label = '\beta_N'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'BTND'}]; - case 'betap' - mapping.label = '\beta_p'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'BTPD'}]; - 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''; ' ... + case 'beta' + mapping.label = 'beta\_tor diag [%]'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'BTTD'}]; + case 'betan' + mapping.label = '\beta_N'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'BTND'}]; + case 'betap' + mapping.label = '\beta_p'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'BTPD'}]; + 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'';' ... - '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;']; - case 'delta_top' - mapping.label = 'delta\_top'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'EFIT'},{'TRIU'}]; - case 'delta_bottom' - mapping.label = 'delta\_bottom'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'EFIT'},{'TRIL'}]; - 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 {'gas','gasm','gash','eler'} - mapping.label = 'eler'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'gash'},{'eler'}]; - case 'halpha' - mapping.label = 'Halpha'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'jpf'},{'dd'},{'s3-ad08'}]; - case 'ioh' - mapping.timedim = 1; - mapping.label = 'I ohmic transformer'; - mapping.method = 'signal'; - mapping.expression = []; - case 'ip' - mapping.timedim = 1; - mapping.label = 'Plasma current'; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'efit'},{'xip'}]; - mapping.expression = [{'ppf'},{'MAGN'},{'IPLA'}]; - mapping.units = 'A'; - case 'kappa' - mapping.timedim = 1; - mapping.label = '\kappa'; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'EHTR'},{'ELON'}]; - mapping.expression = [{'ppf'},{'EFIT'},{'ELON'}]; - 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'}]; - case 'mhd' - mapping.timedim = 1; - mapping.label = 'n=1 and n=2 amplitude'; - mapping.timedim = 1; - mapping.method = 'switchcase'; + '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;']; + case 'delta_top' + mapping.label = 'delta\_top'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'EFIT'},{'TRIU'}]; + case 'delta_bottom' + mapping.label = 'delta\_bottom'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'EFIT'},{'TRIL'}]; + 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 {'gas','gasm','gash','eler'} + mapping.label = 'eler'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'gash'},{'eler'}]; + case 'halpha' + mapping.label = 'Halpha'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'jpf'},{'dd'},{'s3-ad08'}]; + case 'ioh' + mapping.timedim = 1; + mapping.label = 'I ohmic transformer'; + mapping.method = 'signal'; + mapping.expression = []; + case 'ip' + mapping.timedim = 1; + mapping.label = 'Plasma current'; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'efit'},{'xip'}]; + mapping.expression = [{'ppf'},{'MAGN'},{'IPLA'}]; + mapping.units = 'A'; + case 'kappa' + mapping.timedim = 1; + mapping.label = '\kappa'; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'EHTR'},{'ELON'}]; + mapping.expression = [{'ppf'},{'EFIT'},{'ELON'}]; + 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'}]; + case 'mhd' + mapping.timedim = 1; + 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;']; +% $$$ '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;' ... +% $$$ '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;' ... % $$$ '']; - 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''}; ' ... + 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;']; - 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; - mapping.label = 'nel'; - mapping.method = 'signal'; - mapping.expression = [{'ppf'},{'KG1L'},{'LAD3'}]; - mapping.expression = [{'ppf'},{'HRTX'},{'NELA'}]; - case 'ne_rho' - mapping.timedim = 2; - mapping.label = 'ne'; - mapping.method = 'switchcase'; - case 'nete' - mapping.timedim = 2; - mapping.label = 'ne and Te'; % from chain2 or hrts with interpos fits - mapping.method = 'switchcase'; - 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.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;']; + 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; + mapping.label = 'nel'; + mapping.method = 'signal'; + mapping.expression = [{'ppf'},{'KG1L'},{'LAD3'}]; + mapping.expression = [{'ppf'},{'HRTX'},{'NELA'}]; + case 'ne_rho' + mapping.timedim = 2; + mapping.label = 'ne'; + mapping.method = 'switchcase'; + case 'nete' + mapping.timedim = 2; + mapping.label = 'ne and Te'; % from chain2 or hrts with interpos fits + mapping.method = 'switchcase'; + 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);' ... 'if ~isempty(gdat_tmp.t);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);' ... + '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;end;']; - 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_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;end;']; + 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);if ~isempty(gdat_tmp.t);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);end;']; - case 'ni' - mapping.method = 'switchcase'; % especially since might have option fit, etc - 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_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);end;']; + case 'ni' + mapping.method = 'switchcase'; % especially since might have option fit, etc + 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'';' ... + 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);if ~isempty(gdat_tmp.t);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);' ... - 'if ~isempty(gdat_tmp_s.t); 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.);' ... + 'if ~isempty(gdat_tmp_s.t); 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;else;gdat_tmp=gdat_tmp_s;end;' ... 'gdat_tmp.label=''P\_LH threshold'';end']; - 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'';' ... + 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);if ~isempty(gdat_tmp.t);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.);' ... + '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'';end;']; - case {'p_ohmic', 'p_ohm', 'pohm'} - 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; + case {'p_ohmic', 'p_ohm', 'pohm'} + 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'; - case 'powers' - mapping.timedim = 1; - mapping.label = 'various powers'; - mapping.method = 'switchcase'; - case 'psi_axis' - mapping.label = 'psi\_axis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'FAXS'}]; - case 'psi_edge' - mapping.label = 'psi\_edge'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'FBND'}]; - case 'q0' - mapping.label = 'q_0'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'QAX'}]; - % mapping.expression = [{'PPF'},{'EFIT'},{'QAXM'}]; - case 'q95' - mapping.label = 'q_{95}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'Q95'}]; - case 'q_edge' - mapping.label = 'q_{edge}}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'QWL'}]; - case 'q_rho' - mapping.timedim = 2; - mapping.gdat_timedim = 2; - mapping.label = 'q'; - mapping.method = 'switchcase'; - case 'rgeom' - mapping.label = 'Rgeom'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'RGEO'}]; - case 'r_inboard' - mapping.label = 'R\_inboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'RMJI'}]; - case 'r_outboard' - mapping.label = 'R\_outboard'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'RMJO'}]; - case 'rhotor' - mapping.timedim = 2; - mapping.method = 'switchcase'; - mapping.label = 'rhotor'; - case 'rhotor_edge' - mapping.timedim = 1; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_edge'; - case {'rhotor_norm','rhotornorm'} - mapping.timedim = 2; - mapping.method = 'switchcase'; - mapping.label = 'rhotor\_norm'; - case 'rhovol' - mapping.timedim = 2; - mapping.label = 'rhovol\_norm'; - mapping.method = 'switchcase'; - case 'rmag' - mapping.label = 'R\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'RMAG'}]; - case {'rnt', 'neutron_rate'} - mapping.label = 'neutron\_rate'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'TIN'},{'RNT'}]; - case {'sxr', 'sxr_s40', 'sxr_htv'} - mapping.timedim = 1; - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; - case {'tbeo'} - mapping.label = 'TBEO'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EDG8'},{'TBEO'}]; - 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' - mapping.label = 'Vloop Upper Restraint Ring Flux Flux Loop, non-integrated'; - mapping.timedim = 1; - mapping.label = 'Vloop'; - mapping.method = 'switchcase'; + mapping.method = 'switchcase'; + case 'powers' + mapping.timedim = 1; + mapping.label = 'various powers'; + mapping.method = 'switchcase'; + case 'psi_axis' + mapping.label = 'psi\_axis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'FAXS'}]; + case 'psi_edge' + mapping.label = 'psi\_edge'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'FBND'}]; + case 'q0' + mapping.label = 'q_0'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'QAX'}]; + % mapping.expression = [{'PPF'},{'EFIT'},{'QAXM'}]; + case 'q95' + mapping.label = 'q_{95}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'Q95'}]; + case 'q_edge' + mapping.label = 'q_{edge}}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'QWL'}]; + case 'q_rho' + mapping.timedim = 2; + mapping.gdat_timedim = 2; + mapping.label = 'q'; + mapping.method = 'switchcase'; + case 'rgeom' + mapping.label = 'Rgeom'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'RGEO'}]; + case 'r_inboard' + mapping.label = 'R\_inboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'RMJI'}]; + case 'r_outboard' + mapping.label = 'R\_outboard'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'RMJO'}]; + case 'rhotor' + mapping.timedim = 2; + mapping.method = 'switchcase'; + mapping.label = 'rhotor'; + case 'rhotor_edge' + mapping.timedim = 1; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_edge'; + case {'rhotor_norm','rhotornorm'} + mapping.timedim = 2; + mapping.method = 'switchcase'; + mapping.label = 'rhotor\_norm'; + case 'rhovol' + mapping.timedim = 2; + mapping.label = 'rhovol\_norm'; + mapping.method = 'switchcase'; + case 'rmag' + mapping.label = 'R\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'RMAG'}]; + case {'rnt', 'neutron_rate'} + mapping.label = 'neutron\_rate'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'TIN'},{'RNT'}]; + case {'sxr', 'sxr_s40', 'sxr_htv'} + mapping.timedim = 1; + mapping.gdat_timedim = 2; + mapping.method = 'switchcase'; + case {'tbeo'} + mapping.label = 'TBEO'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EDG8'},{'TBEO'}]; + 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' + mapping.label = 'Vloop Upper Restraint Ring Flux Flux Loop, non-integrated'; + 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 - case 'volume' - mapping.label = 'Volume'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'VOLM'}]; - case 'volume_rho' - mapping.timedim = 2; - mapping.label = 'volume\_norm'; - mapping.method = 'switchcase'; - case {'wmhd', 'w_mhd'} - mapping.label = 'W_mhd'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'WP'}]; - case 'zeff' - mapping.label = 'zeff from KS3'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'KS3'},{'ZEFV'}]; - case 'zgeom' - mapping.label = 'Z_{geom}'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'ZGEO'}]; - case 'zmag' - mapping.label = 'Z\_magaxis'; - mapping.timedim = 1; - mapping.method = 'signal'; - mapping.expression = [{'PPF'},{'EFIT'},{'ZMAG'}]; - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % extra JET cases (not necessarily in official data_request name list) - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - case 'transp' - mapping.label = 'transp output'; - mapping.method = 'switchcase'; + case 'volume' + mapping.label = 'Volume'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'VOLM'}]; + case 'volume_rho' + mapping.timedim = 2; + mapping.label = 'volume\_norm'; + mapping.method = 'switchcase'; + case {'wmhd', 'w_mhd'} + mapping.label = 'W_mhd'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'WP'}]; + case 'zeff' + mapping.label = 'zeff from KS3'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'KS3'},{'ZEFV'}]; + case 'zgeom' + mapping.label = 'Z_{geom}'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'ZGEO'}]; + case 'zmag' + mapping.label = 'Z\_magaxis'; + mapping.timedim = 1; + mapping.method = 'signal'; + mapping.expression = [{'PPF'},{'EFIT'},{'ZMAG'}]; + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % 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; + 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; end diff --git a/matlab/JET/mapflux_fast.m b/matlab/JET/mapflux_fast.m index d7698a5c1bac2950f5beabe892c8f5a2987a4554..177aeb5320bbae56206773fdaefa80389c9cec6a 100644 --- a/matlab/JET/mapflux_fast.m +++ b/matlab/JET/mapflux_fast.m @@ -7,11 +7,11 @@ function flux=mapflux_fast(cij,ri,zi,r,z,varargin) % syntaxe : flux=mapflux(cij,ri,zi,r,z) % % entrees : -% cij : coefficients bspline (efit/sspr(nr+nz+1:nr+nz+nc)) -% ri : points de controle pour r (efit/sspr(1:nr)) -% zi : points de controle pour z (efit/sspr(nr+1:nr+nz)) -% r : grille en r pour la carte de flux (vecteur) -% z : grille en z pour la carte de flux (vecteur) +% cij : coefficients bspline (efit/sspr(nr+nz+1:nr+nz+nc)) +% ri : points de controle pour r (efit/sspr(1:nr)) +% zi : points de controle pour z (efit/sspr(nr+1:nr+nz)) +% r : grille en r pour la carte de flux (vecteur) +% z : grille en z pour la carte de flux (vecteur) % % varargin{1}=1: output as diagonal of flux to get psin on (R,Z) set of points % 0: output full matrix (default) @@ -21,7 +21,7 @@ function flux=mapflux_fast(cij,ri,zi,r,z,varargin) % =0: compute all splines (slightly faster when whole grid needed) % % sortie : -% flux : matrice donnant le flux normalise sur la grille (r,z) +% flux : matrice donnant le flux normalise sur la grille (r,z) %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % auteur : patrick maget % date : 13/10/2000 @@ -74,10 +74,10 @@ end % fonction b-spline % bki=bspline(ti,t,k,i) %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -% auteur : patrick maget +% auteur : patrick maget % date : 14/12/99 %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -% retourne pour la valeur de i, +% retourne pour la valeur de i, % le vecteur de poids correspondant au vecteur de demande t % seuls les elements de t situes entre ti(i) et ti(i+k+1) ont un poids non nul diff --git a/matlab/JET/psirz.m b/matlab/JET/psirz.m index 72abd3a4cbb9d87a4d425fb5ec624076ee86c6cd..40e26d0615e098edf7516861f12e27538ad2474a 100644 --- a/matlab/JET/psirz.m +++ b/matlab/JET/psirz.m @@ -1,9 +1,9 @@ function [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,varargin); % % psirz : reconstruction des surfaces de flux -% +% % ce programme utilise les donnees de efit ou eftm -% +% % examples: % [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,[efitlab,uid,seq,ncont]); % [r,z,psinrz,sspr,sspi]=psirz(50814,60,65,65,[],[],[],60,sspr,sspi); % to get plot and give sspr,sspi @@ -11,7 +11,7 @@ function [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,varargi % entrees : % shot : numero du choc jet % time : time de l'analyse -% nrg, nzg: nb de points de la grille en r (resp. en z) sur laquelle on fait la +% nrg, nzg: nb de points de la grille en r (resp. en z) sur laquelle on fait la % reconstruction des surfaces de flux. % if nzg is negative, make symmetric box around zero % varargin{1}: plot option: 0: do not plot contours, >0 plot contour with varargin{1} nb of contours (60 is good) @@ -65,7 +65,7 @@ if nargin>=11 & ~isempty(varargin{4}) else deltaz=0; end - + [x,ind]=min(abs(time-tpefit)); sspr_t=ssprs(:,ind); sspi_t=sspis(:,ind); @@ -122,14 +122,14 @@ function flux=mapflux(cij,ri,zi,r,z) % syntaxe : flux=mapflux(cij,ri,zi,r,z) % % entrees : -% cij : coefficients bspline (efit/sspr(nr+nz+1:nr+nz+nc)) -% ri : points de controle pour r (efit/sspr(1:nr)) -% zi : points de controle pour z (efit/sspr(nr+1:nr+nz)) -% r : grille en r pour la carte de flux (vecteur) -% z : grille en z pour la carte de flux (vecteur) +% cij : coefficients bspline (efit/sspr(nr+nz+1:nr+nz+nc)) +% ri : points de controle pour r (efit/sspr(1:nr)) +% zi : points de controle pour z (efit/sspr(nr+1:nr+nz)) +% r : grille en r pour la carte de flux (vecteur) +% z : grille en z pour la carte de flux (vecteur) % % sortie : -% flux : matrice donnant le flux normalise sur la grille (r,z) +% flux : matrice donnant le flux normalise sur la grille (r,z) %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % auteur : patrick maget % date : 13/10/2000 @@ -149,10 +149,10 @@ flux=fpq; % fonction b-spline % bki=bspline(ti,t,k,i) %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -% auteur : patrick maget +% auteur : patrick maget % date : 14/12/99 %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -% retourne pour la valeur de i, +% retourne pour la valeur de i, % le vecteur de poids correspondant au vecteur de demande t % seuls les elements de t situes entre ti(i) et ti(i+k+1) ont un poids non nul diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index 02bcc746dbbe0126ea2a9394bf8aec0719c1b3df..e7ab04f1c2cc6789950a62dce34bfc3af88dbd9c 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -83,6 +83,7 @@ varargout{1}=cell(1,1); error_status=1; % construct main default parameters structure +% parameters and defaults related to a specific request should be defined in the relevant switch case section gdat_params.data_request = ''; default_machine = 'tcv'; @@ -143,9 +144,9 @@ if nargin>=1 % means mdsopen(shot) already performed or not shot asked for try if isempty(mdsipmex(8)) - shot_mds = shot; + shot_mds = shot; else - shot_mds = mdsipmex(2,'$SHOT'); + shot_mds = mdsipmex(2,'$SHOT'); end catch shot_mds = shot; @@ -156,18 +157,18 @@ if nargin>=1 if ischar(shot) || isempty(shot) if gdat_params.nverbose>=1 if isstruct(data_request) && isfield(data_request,'data_request') - if ~strcmp(data_request.data_request,'ids') - warning(['shot cannot be opened with ' data_request.data_request]); - return - end + if ~strcmp(data_request.data_request,'ids') + warning(['shot cannot be opened with ' data_request.data_request]); + return + end elseif ischar(data_request) - if ~strcmp(data_request,'ids') - warning(['shot cannot be opened with ' data_request]); - return - end + if ~strcmp(data_request,'ids') + warning(['shot cannot be opened with ' data_request]); + return + end else warning(['shot cannot be opened']); - return + return end end end @@ -321,7 +322,7 @@ else end gdat_data.gdat_params.liuqe = liuqe_version; liuqe_matlab = 1; % now default should be matlab liuqe nodes -if liuqe_version<0 || (liuqe_version > 10 && liuqe_version < 20) +if (liuqe_version > 10 && liuqe_version < 20) liuqe_matlab = 0; end liuqe_version_eff = mod(liuqe_version,10); @@ -341,7 +342,7 @@ if (iscell(mapping_for_tcv.expression) || isempty(strfind(mapping_for_tcv.expres % requires FBTE liuqe_version_eff = -1; liuqe_version = -1; - if isempty(findstr(mapping_for_tcv.expression,'tcv_eq')) + if isempty(findstr(mapping_for_tcv.expression,'tcv_eq')) && isempty(findstr(mapping_for_tcv.expression,'\')) % if tcv_eq in expression, liuqe target will be modified to FBTE below with regexprep begstr = 'tcv_eq( "'; substr_liuqe = '", "FBTE" )'; @@ -354,7 +355,7 @@ end % should replace all above by just psitbx_str... liuqe_matlab = 1; switch liuqe_version - case {-1}, liuqe_ext=''; psitbx_str='FBTE'; liuqe_matlab = 0; + case {-1}, liuqe_ext=''; psitbx_str='FBTE'; case {1,21}, liuqe_ext=''; psitbx_str='LIUQE.M'; case {11}, liuqe_ext=''; psitbx_str='LIUQE';liuqe_matlab = 0; case {2, 3, 22, 23}, liuqe_ext=['_' num2str(mod(liuqe_version,10))]; psitbx_str=['LIUQE.M' num2str(mod(liuqe_version,10))]; @@ -1247,7 +1248,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') xx=repmat(reshape(gdat_data.dim{1},length(gdat_data.dim{1}),1),1,size(gdat_data.eqdsk(itime).psi,2)); yy=repmat(reshape(gdat_data.dim{2},1,length(gdat_data.dim{2})),size(gdat_data.eqdsk(itime).psi,1),1); aa = interpos2Dcartesian(gdat_data.eqdsk(itime).rmesh,gdat_data.eqdsk(itime).zmesh ... - ,gdat_data.eqdsk(itime).psi,xx,yy,-1,-1); + ,gdat_data.eqdsk(itime).psi,xx,yy,-1,-1); gdat_data.data(:,:,itime) = aa; end else @@ -1511,7 +1512,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if ~isempty(gdat_data.gdat_params.trialindx) && gdat_data.gdat_params.trialindx < 0 gdat_data.gdat_params.trialindx = []; end - + % specific parameters check and default settings if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) switch data_request_eff case 'ec_data' @@ -1525,7 +1526,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end elseif ~iscell(gdat_data.gdat_params.source) if ischar(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); + gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) if (gdat_params.nverbose>=1) warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); @@ -1548,6 +1549,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end end end + if ~isfield(gdat_data.gdat_params,'ec_inputs') || isempty(gdat_data.gdat_params.ec_inputs) || ~isnumeric(gdat_data.gdat_params.ec_inputs) + gdat_data.gdat_params.ec_inputs = 0; + end + gdat_params.ec_inputs = gdat_data.gdat_params.ec_inputs; % create structure for icd sources from params and complete with defaults source_icd.ec = 'toray'; @@ -1572,32 +1577,41 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') ec_help = ''; % EC - % fill ec_inputs from write_pgyro - [~,time,pgyro,pgyro_ecrh,gyro2launcher,freq2launcher,~,~] = write_pgyro(shot,'doplots',0); - - ec_inputs.pgyro.data = pgyro; - ec_inputs.pgyro.t = time; - ec_inputs.pgyro.units = 'W'; - ec_inputs.pgyro.label = 'Power injected per launcher ; last index is total'; - ec_inputs.pgyro.x = 1:numel(pgyro(1,:)); - ec_inputs.pgyro.dim = {ec_inputs.pgyro.x, ec_inputs.pgyro.t}; - launchers_label = cellfun(@num2str, num2cell(1:size(pgyro,2)-1),'UniformOutput',false); - launchers_label{end+1} = 'tot'; - ec_inputs.pgyro.dimunits = {launchers_label, 's'}; - - ec_inputs.launchers_active.data = zeros(numel(pgyro_ecrh),1); - for ii =1:numel(pgyro_ecrh) - if ~isempty(pgyro_ecrh{ii}.data); ec_inputs.launchers_active.data(ii) = 1; end - end - ec_inputs.launchers_active.label = 'Active launchers in the shot (1:active, 0:inactive)'; + if gdat_data.gdat_params.ec_inputs + % fill ec_inputs from write_pgyro + [~,time,pgyro,pgyro_ecrh,gyro2launcher,freq2launcher,~,~] = write_pgyro(shot,'doplots',0); + + ec_inputs.pgyro.data = pgyro; + ec_inputs.pgyro.t = time; + ec_inputs.pgyro.units = 'W'; + ec_inputs.pgyro.label = 'Power injected per launcher ; last index is total'; + ec_inputs.pgyro.x = 1:numel(pgyro(1,:)); + ec_inputs.pgyro.dim = {ec_inputs.pgyro.x, ec_inputs.pgyro.t}; + launchers_label = cellfun(@num2str, num2cell(1:size(pgyro,2)-1),'UniformOutput',false); + launchers_label{end+1} = 'tot'; + ec_inputs.pgyro.dimunits = {launchers_label, 's'}; + + ec_inputs.launchers_active.data = zeros(numel(pgyro_ecrh),1); + for ii =1:numel(pgyro_ecrh) + if ~isempty(pgyro_ecrh{ii}.data); ec_inputs.launchers_active.data(ii) = 1; end + end + ec_inputs.launchers_active.label = 'Active launchers in the shot (1:active, 0:inactive)'; - ec_inputs.gyro2launcher.data = gyro2launcher; - ec_inputs.gyro2launcher.label = 'Gyrotron connected to launcher'; + ec_inputs.gyro2launcher.data = gyro2launcher; + ec_inputs.gyro2launcher.label = 'Gyrotron connected to launcher'; - ec_inputs.freq2launcher.data = freq2launcher; - ec_inputs.freq2launcher.label = 'Frequency in launcher'; - ec_inputs.freq2launcher.units = 'Hz'; + ec_inputs.freq2launcher.data = freq2launcher; + ec_inputs.freq2launcher.label = 'Frequency in launcher'; + ec_inputs.freq2launcher.units = 'Hz'; + ec_inputs.comment = 'ec_inputs loaded from write_pyro(shot)'; + else + ec_inputs.pgyro = []; + ec_inputs.launchers_active = []; + ec_inputs.gyro2launcher = []; + ec_inputs.freq2launcher = []; + ec_inputs.comment = 'Run gdat with name-value pair (''ec_inputs'',1) for ec_input information from write_pgyro'; + end gdat_data.ec.ec_inputs = ec_inputs; % introduce flag to check whether ec_data could be retrieved successfully @@ -1740,13 +1754,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.ec.ec_data = ec_data; filled_successfully = true; %set flag to true catch ME - warning(ME.identifier,'Problem retrieving TORAY data. \nError message: %s',ME.message); + warning('Problem retrieving TORAY data. \nError message: %s',ME.message); + getReport(ME) % without ; to get output % try to identify cause of the error if ~check_nodes_filled(shot,'toray') - if ~any(ec_inputs.launchers_active.data,1) - msg = 'write_pyro(shot) found NO active launchers, maybe there was no EC in this shot?'; - else - msg = 'write_pyro(shot) found active launchers, but TORAY nodes are no filled, check hldsi(shot), and (ask to) relaunch TORAY.'; + if ~isempty(ec_inputs.launchers_active) + if ~any(ec_inputs.launchers_active.data,1) + msg = 'write_pyro(shot) found NO active launchers, maybe there was no EC in this shot?'; + else + msg = 'write_pyro(shot) found active launchers, but TORAY nodes are not filled, check hldsi(shot), and (ask to) relaunch TORAY.'; + end end elseif ~isempty(gdat_data.gdat_params.trialindx) msg = 'Is the trial index filled? Check TORAY nodes with hdlsi(shot).'; @@ -2501,7 +2518,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.gdat_params.source = sources_avail; elseif ~iscell(gdat_data.gdat_params.source) if ischar(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); + gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) if (gdat_params.nverbose>=1) warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); @@ -2764,6 +2781,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') nodenameeff=[begstr 'q_psi' substr_liuqe]; end tracetdi=tdi(nodenameeff); + if liuqe_matlab==1 && liuqe_version_eff==-1 + % may have problems with dim{1} being indices instead of rhopol + if max(tracetdi.dim{1}) > 2 + nodenameeff_rho = strrep(nodenameeff,'q_psi','rho'); + rho_eff = mdsvalue(nodenameeff_rho); + if numel(tracetdi.dim{1}) == numel(rho_eff) + tracetdi.dim{1}(:) = rho_eff; % it is not sqrt(linspace...) anymore, hence take rho itself + end + end + end if isempty(tracetdi.data) || isempty(tracetdi.dim) % || ischar(tracetdi.data) (to add?) if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end @@ -3207,10 +3234,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') else nodenameeff=['tcv_eq("vol","' psitbx_str '")']; end - if liuqe_version_eff==-1 - data_request_eff = 'volume'; % only LCFS - nodenameeff=[begstr 'volume' substr_liuqe]; - end tracetdi=tdi(nodenameeff); if (isempty(tracetdi.data) || isempty(tracetdi.dim)) && liuqe_matlab==0 % try to run psitbxput @@ -3218,6 +3241,15 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') psitbxput(psitbxput_version,shot); ishot = mdsopen(shot); tracetdi=tdi(nodenameeff); + elseif liuqe_matlab==1 && liuqe_version_eff==-1 + % may have problems with dim{1} being indices instead of rhopol + if max(tracetdi.dim{1}) > 2 + nodenameeff_rho = 'tcv_eq("rho","FBTE")'; + rho_eff = mdsvalue(nodenameeff_rho); + if numel(tracetdi.dim{1}) == numel(rho_eff) + tracetdi.dim{1}(:) = rho_eff; + end + end end if isempty(tracetdi.data) || isempty(tracetdi.dim) || ischar(tracetdi.data) return @@ -3293,41 +3325,195 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - case {'sxr', 'mpx'} + case {'sxr', 'mpx', 'radcam'} - if strcmp(data_request_eff,'mpx') - data_request_eff = 'mpx'; % mpx chosen through parameter 'source' within 'sxr' - gdat_data.data_request = data_request_eff; - gdat_data.gdat_params.source = 'mpx'; + if any(contains(data_request_eff,{'mpx','radcam'})) + % effective source chosen through parameter 'source' within 'sxr' + gdat_data.gdat_params.source = data_request_eff; end % sxr from dmpx by default or xtomo if 'camera','xtomo' is provided if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = 'mpx'; - elseif ~strcmp(lower(gdat_data.gdat_params.source),'xtomo') && ~strcmp(lower(gdat_data.gdat_params.source),'mpx') + if shot < 70144 + gdat_data.gdat_params.source = 'mpx'; + else + gdat_data.gdat_params.source = 'radcam'; + end + elseif ~any(contains(lower(gdat_data.gdat_params.source),{'xtomo','mpx','radcam'})) if gdat_data.gdat_params.nverbose>=1 warning(['source = ' gdat_data.gdat_params.source ' not expected with data_request= ' data_request_eff]) end return end + % time_out: times at which to provide output data, if 2 values provided, return all values within that time interval + % for xtomo, can only provide a time interval, for radcam, can provide a time_out array on which interpos is computed time_interval = []; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) - if length(gdat_data.gdat_params.time_out) == 2 + if numel(gdat_data.gdat_params.time_out) == 2 time_interval = gdat_data.gdat_params.time_out; else - if length(gdat_data.gdat_params.time_out) == 1 + if numel(gdat_data.gdat_params.time_out) == 1 % 200ms includes all characteristic time constants time_interval = [gdat_data.gdat_params.time_out-0.1 gdat_data.gdat_params.time_out+0.1]; else - time_interval = [min(gdat_data.gdat_params.time_out)-0.1 max(gdat_data.gdat_params.time_out)+0.1]; + if strcmp(gdat_data.gdat_params.source,'radcam') + time_interval = gdat_data.gdat_params.time_out; % for radcam provide time array on which to do interpos + else + time_interval = [min(gdat_data.gdat_params.time_out)-0.1 max(gdat_data.gdat_params.time_out)+0.1]; + warning(['Expects a time interval [t1 t2] for ' data_request_eff ' in param time_out, uses [' ... + num2str(time_interval(1)) ',' num2str(time_interval(2)) ']' char(10)]) + end end - warning(['Expects a time interval [t1 t2] for ' data_request_eff ' in param time_out, uses [' ... - num2str(time_interval(1)) ',' num2str(time_interval(2)) ']' char(10)]) end end + % at this stage 2 option for freq, raw data (fast, default), 10kHz or similar (slow) + freq_opt = 1; if ~isfield(gdat_data.gdat_params,'freq') - gdat_data.gdat_params.freq = 'slow'; + gdat_data.gdat_params.freq = 'fast'; + end + if strcmp(gdat_data.gdat_params.freq,'slow'); freq_opt = 0; end + % fit_tension for smoothing on slow timescale (radcam for example) + if ~isfield(gdat_data.gdat_params,'fit_tension') || isempty(gdat_data.gdat_params.fit_tension) + gdat_data.gdat_params.fit_tension = -1e2; end switch lower(gdat_data.gdat_params.source) + case {'radcam'} + gdat_data.gdat_params.source = 'radcam'; + gdat_data.camera_list = {'top', 'upper','equatorial','bottom'}; + gdat_data.channel_list = {[1:20],[21:40],[41:80], [81:100]}; + if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) + gdat_data.gdat_params.camera = {'equatorial'}; % default equatorial + disp(['loads all radcam cameras, each data also in subfield ' gdat_data.gdat_params.camera]) + else + if ischar(gdat_data.gdat_params.camera) || (isstring(gdat_data.gdat_params.camera) && numel(gdat_data.gdat_params.camera)==1) + gdat_data.gdat_params.camera = {char(gdat_data.gdat_params.camera)}; + end + if isnumeric(gdat_data.gdat_params.camera) && (min(gdat_data.gdat_params.camera)<5 && max(gdat_data.gdat_params.camera)>0) + ij = gdat_data.gdat_params.camera([gdat_data.gdat_params.camera>0 & gdat_data.gdat_params.camera<5]); + gdat_data.gdat_params.camera = gdat_data.camera_list(ij); + elseif any(startsWith(gdat_data.gdat_params.camera,gdat_data.camera_list).*endsWith(gdat_data.gdat_params.camera,gdat_data.camera_list)) + ij = startsWith(gdat_data.gdat_params.camera,gdat_data.camera_list).*endsWith(gdat_data.gdat_params.camera,gdat_data.camera_list); + gdat_data.gdat_params.camera = lower(gdat_data.gdat_params.camera(ij>0)); + if any(ij==0) + warning(['camera not defined: ' gdat_data.gdat_params.camera(ij==0)]); + disp(['list of cameras: ' gdat_data.camera_list]) + end + else + error(['camera: ' gdat_data.gdat_params.camera ' not in list: ' gdat_data.camera_list]) + end + end + if ~isfield(gdat_data.gdat_params,'channel') || isempty(gdat_data.gdat_params.channel) + for i=1:numel(gdat_data.gdat_params.camera) + gdat_data.gdat_params.(gdat_data.gdat_params.camera{i}).channel = ... + gdat_data.channel_list{[contains(gdat_data.camera_list,gdat_data.gdat_params.camera{i})]}; + gdat_data.gdat_params.channel{i} = gdat_data.gdat_params.(gdat_data.gdat_params.camera{i}).channel; + end + else + if isnumeric(gdat_data.gdat_params.channel) + gdat_data.gdat_params.channel = {gdat_data.gdat_params.channel}; + end + if numel(gdat_data.gdat_params.camera) ~= numel(gdat_data.gdat_params.channel) + gdat_data.gdat_params + error('expects same number of camera as number of channel group in each cell list') + end + all_channels = []; + for i=1:numel(gdat_data.gdat_params.camera) + all_channels(end+1:end+numel(gdat_data.gdat_params.channel{i})) = gdat_data.gdat_params.channel{i}; + end + % check camera and channel chosen are consistent within camera interval, just redistribute + icount = 0; + for i=1:numel(gdat_data.camera_list) + ij = intersect(gdat_data.channel_list{i},all_channels); + if ~isempty(ij) + icount = icount + 1; + camera{icount} = gdat_data.camera_list{i}; + channel{icount} = ij; + end + end + if ~isequal(sort(camera),sort(gdat_data.gdat_params.camera)) + disp('***************************************************************************') + warning(sprintf('channel nbs and camera did not match, camera chosen adapted: %s %s %s %s',camera{:})); + disp('***************************************************************************') + gdat_data.gdat_params.camera = camera; + end + if ~isequal(sort(cell2mat(channel)),sort(cell2mat(gdat_data.gdat_params.channel))) || ... + numel(gdat_data.gdat_params.channel) ~= numel(channel) + warning(sprintf('channel nbs and channel did not match, channel chosen adapted')); + gdat_data.gdat_params.channel = channel; + end + for i=1:numel(gdat_data.gdat_params.camera) + gdat_data.gdat_params.(gdat_data.gdat_params.camera{i}).channel = gdat_data.gdat_params.channel{i}; + end + end + gdat_data.x = []; + for i=1:numel(gdat_data.gdat_params.camera) + gdat_data.(gdat_data.gdat_params.camera{i}).x = gdat_data.gdat_params.(gdat_data.gdat_params.camera{i}).channel; + gdat_data.x(end+1:end+numel(gdat_data.(gdat_data.gdat_params.camera{i}).x)) = gdat_data.(gdat_data.gdat_params.camera{i}).x; + end + sxr = rc_load_diodes(shot,'diag_name',"sxr",'channels',gdat_data.x); % since all cameras with different channel number + % for "heavy" signals, can trim it to specified time_interval and/or reduce it to smaller nb points + if freq_opt == 1 + % default, fast/raw time array + if ~isempty(time_interval) + if numel(time_interval) == 2 + % extract data within [time_interval(1:2)] + ij = find(sxr.time>=time_interval(1) & sxr.time<=time_interval(end)); + gdat_data.data = sxr.data(ij,:)'; + gdat_data.t = sxr.time(ij); + else + % time_out array provided to obtain data, use closest points (since raw data on fast frequency) + ij = iround_os(sxr.time,time_interval); + gdat_data.data = sxr.data(ij,:)'; + gdat_data.t = sxr.time(ij); + end + else + % raw data requested (default), no time_out provided + gdat_data.data = sxr.data'; + gdat_data.t = sxr.time; + end + else + % slower frequency requested (or smoothed interpolation using interpos) + if ~isempty(time_interval) + if numel(time_interval) == 2 + % construct a default 40kHz time base within time_interval(1:2) + gdat_data.t = linspace(time_interval(1),time_interval(2),round((time_interval(2)-time_interval(1))/0.25e-4)); + else + % time array provided + gdat_data.t = time_interval; + end + else + % construct a default 40kHz time base within full raw time interval + gdat_data.t = linspace(sxr.time(1),sxr.time(end),round((sxr.time(end)-sxr.time(1))/0.25e-4)); + end + % compute interpolation with tension provided + for i=1:size(sxr.data,2) + gdat_data.data(i,:) = interpos(sxr.time,sxr.data(:,i),gdat_data.t,gdat_data.gdat_params.fit_tension); + end + end + gdat_data.r_x = sxr.geometry.xchord(gdat_data.x,:); + gdat_data.z_x = sxr.geometry.ychord(gdat_data.x,:); + gdat_data.r_at_z0 = gdat_data.r_x(:,1) + ... + diff(gdat_data.r_x(:,:)')' .* (0-gdat_data.z_x(:,1))./(gdat_data.z_x(:,2)-gdat_data.z_x(:,1)); + gdat_data.z_at_r09 = gdat_data.z_x(:,1) + ... + diff(gdat_data.z_x(:,:)')' .* (0.9-gdat_data.r_x(:,1))./(gdat_data.r_x(:,2)-gdat_data.r_x(:,1)); + gdat_data.good_channels = sxr.good_channels; + gdat_data.data_fullpath = ['using rc_load_diodes(shot,''diag_name'',"sxr",...) with params in gdat_data.gdat_params']; + gdat_data.units = 'au'; + gdat_data.dim = {gdat_data.x, gdat_data.t}; + gdat_data.dimunits = {'channel', 's'}; + gdat_data.label = strtrim(sprintf('radcam %s %s %s %s %s',gdat_data.gdat_params.camera{:})); + for i=1:numel(gdat_data.gdat_params.camera) + ij = iround_os(sxr.channels,gdat_data.(gdat_data.gdat_params.camera{i}).x); + gdat_data.(gdat_data.gdat_params.camera{i}).data = gdat_data.data(:,ij)'; + gdat_data.(gdat_data.gdat_params.camera{i}).t = gdat_data.t; + gdat_data.(gdat_data.gdat_params.camera{i}).r_x = sxr.geometry.xchord(gdat_data.(gdat_data.gdat_params.camera{i}).x,:); + gdat_data.(gdat_data.gdat_params.camera{i}).z_x = sxr.geometry.ychord(gdat_data.(gdat_data.gdat_params.camera{i}).x,:); + gdat_data.(gdat_data.gdat_params.camera{i}).r_at_z0 = gdat_data.r_at_z0(ij); + gdat_data.(gdat_data.gdat_params.camera{i}).z_at_r09 = gdat_data.z_at_r09(ij); + gdat_data.(gdat_data.gdat_params.camera{i}).good_channels = intersect(gdat_data.(gdat_data.gdat_params.camera{i}).x,sxr.good_channels); + gdat_data.(gdat_data.gdat_params.camera{i}).label = sprintf('radcam %s nb chords: %d', ... + gdat_data.gdat_params.camera{i},numel(gdat_data.(gdat_data.gdat_params.camera{i}).x)); + end + case {'mpx', 'dmpx'} gdat_data.gdat_params.source = 'mpx'; if ~isfield(gdat_data.gdat_params,'camera') || isempty(gdat_data.gdat_params.camera) @@ -3341,8 +3527,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end return end - freq_opt = 0; - if strcmp(gdat_data.gdat_params.freq,'fast'); freq_opt = 1; end t_int = [0 10]; % starts from 0 otherwise mpxdata gives data from t<0 if ~isempty(time_interval); t_int = time_interval; end gdat_data.top.data = []; @@ -3459,7 +3643,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') end - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'transp'} % read transp netcdf output file provided in source parameter and generate substructure with all variables diff --git a/matlab/TCV/get_xtomo_data.m b/matlab/TCV/get_xtomo_data.m index 0c0c69a47c7a4cba4689321d38e8c4ec3d61cfe8..d46922a66aa84dad9372da1acb002307321c1958 100755 --- a/matlab/TCV/get_xtomo_data.m +++ b/matlab/TCV/get_xtomo_data.m @@ -1,26 +1,26 @@ function [sig,t]=get_xtomo_data(shot,t1,t2,dt,fans,angfact,tag); % - -%[sig,t]=get_xtomo_data_m5(shot,t1,t2,dt,fans,angfact,tag); +%[sig,t]=get_xtomo_data_m5(shot,t1,t2,dt,fans,angfact,tag); % -% INPUT: -% shot: TCV shot +% INPUT: +% shot: TCV shot % t1: start time % t2: stop time -% dt: timestep +% dt: timestep % fans: camera switch, e.g. [0 0 0 0 0 0 1 0 1 0]; -% angfact: relative etendue, size: [20 x 10] -% tag 'full' or 'brief', indicates if it is +% angfact: relative etendue, size: [20 x 10] +% tag 'full' or 'brief', indicates if it is % a slow or a fast Pentland acquisition % % OUTPUTS: -% sig: xtomo signals, size: [sum(fans) x length(t)] +% sig: xtomo signals, size: [sum(fans) x length(t)] % t: times -% -% ATTENTION: length(time) may be shorter than foreseen !! +% +% ATTENTION: length(time) may be shorter than foreseen !! % % This routine works on Matlab5. -% Original routine for Matlab4 by Anton Mathias. +% Original routine for Matlab4 by Anton Mathias. % % Last update: 25-08-1999 % @@ -29,468 +29,462 @@ function [sig,t]=get_xtomo_data(shot,t1,t2,dt,fans,angfact,tag); %---- get data and offsets --------------------------------------------------- - % set a flag if flattenign of noise - % for channels with low signal - - - iflat=0; - minsiglevel=0.01; - satlevel=9.9; - - - st1=sprintf('%6.4f',t1); - st2=sprintf('%6.4f',t2); - sdt=num2str(dt); - -% sdt=sprintf('%6.4f',dt); % modified from old version - - - if shot >= 13836 & shot <= 13848 - tstart=-0.02;tstop=-0.01; % this one is to be used only for - else % shot=13836 to shot=13848 - tstart=-0.04;tstop=-0.01; - end - - ststart=num2str(tstart); - ststop=num2str(tstop); - -if nargin <=6 - - shot=mdsopen(shot); - t=mdsdata(['dim_of(\base::xtomo:array_001[',st1,':',st2,':',sdt,',*])']); - S1=[]; - S2=[]; - S3=[]; - S4=[]; - S5=[]; - S6=[]; - S7=[]; - S8=[]; - S9=[]; - S10=[]; - - if isempty(t) - disp('get_xtomo_data: sorry, nothing to be found for this shot ...') - return - else - disp('*-------------------------------------------*') - disp('| get_xtomo_data: getting data from MDS |') - disp('*-------------------------------------------*') - end - - if shot>6768 - - if fans(1) - S=mdsdata(['\base::xtomo:array_001[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_001[',ststart,':',ststop,',0:19]']); - S1=S-repmat(mean(offset),length(t),1)'; - end - - if fans(2) - S=mdsdata(['\base::xtomo:array_002[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_002[',ststart,':',ststop,',0:19]']); - S2=S-repmat(mean(offset),length(t),1)'; - end - - if fans(3) - S=mdsdata(['\base::xtomo:array_003[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_003[',ststart,':',ststop,',0:19]']); - S3=S-repmat(mean(offset),length(t),1)'; - end - - if fans(4) - S=mdsdata(['\base::xtomo:array_004[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_004[',ststart,':',ststop,',0:19]']); - S4=S-repmat(mean(offset),length(t),1)'; - end - - if fans(5) - S=mdsdata(['\base::xtomo:array_005[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_005[',ststart,':',ststop,',0:19]']); - S5=S-repmat(mean(offset),length(t),1)'; - end - - if fans(6) - S=mdsdata(['\base::xtomo:array_006[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_006[',ststart,':',ststop,',0:19]']); - S6=S-repmat(mean(offset),length(t),1)'; - end - - if fans(7) - S=mdsdata(['\base::xtomo:array_007[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_007[',ststart,':',ststop,',0:19]']); - S7=S-repmat(mean(offset),length(t),1)'; - end - - if fans(8) - S=mdsdata(['\base::xtomo:array_008[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_008[',ststart,':',ststop,',0:19]']); - S8=S-repmat(mean(offset),length(t),1)'; - end - - if fans(9) - S=mdsdata(['\base::xtomo:array_009[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_009[',ststart,':',ststop,',0:19]']); - S9=S-repmat(mean(offset),length(t),1)'; - end - - if fans(10) - S=mdsdata(['\base::xtomo:array_010[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_010[',ststart,':',ststop,',0:19]']); - S10=S-repmat(mean(offset),length(t),1)'; - end - - - sig=-[S1;S2;S3;S4;S5;S6;S7;S8;S9;S10]; - [satrow,satcol]=find(abs(sig)>satlevel); - - if ~isempty(satcol) - i_tlimit=min(satcol(:)); - if i_tlimit>1 - sig=sig(:,1:i_tlimit-1); - t=t(1:i_tlimit-1); - disp(['get_xtomo_data WARNING: some channels saturated',...... - ', t2 changed to ',sprintf('%6.4f',max(t))]); - else - sig=[]; - t=[]; - disp('get_xtomo_data WARNING: saturations, no data returned'); - return - end - end - - - angfact=angfact(:,find(fans)); - angfact=angfact(:); - gains=get_xtomo_gains(shot); - % earlier than shot xxx: - perm=[1:180,[180+[2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19]]]; - gains=gains(perm); - iact=find(fans); - nact=length(iact); - idetec=[]; - for k=1:nact - idetec=[idetec,(iact(k)-1)*20+1:iact(k)*20]; - end - gains=gains(idetec); - gains=gains(:); - fac=ones(size(gains))./gains; - - - sig=-sig.*(repmat(fac,1,length(t))); - - if iflat - for ii=1:length(t) - imini=find( sig(:,ii) < minsiglevel*max(sig(:,ii))); - sig(imini,ii)=zeros(size(imini)); - end - end - - t=t'; - sig=sig.*(repmat(angfact,1,length(t))); - - - else - - if fans(9) - S=mdsdata(['\base::xtomo:array_001[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_001[',ststart,':',ststop,',0:19]']); - V=S-repmat(mean(offset),length(t),1)'; - end - if fans(7) - S=mdsdata(['\base::xtomo:array_002[',st1,':',st2,':',sdt,',0:19]'])'; - offset=mdsdata(['\base::xtomo:array_002[',ststart,':',ststop,',0:19]']); - H=S-repmat(mean(offset),length(t),1)'; - end - - %---- read gains of the current shot --------------------------------------- - - gains=get_xtomo_gains(shot); - g1=gains(1:20)'; - g2=gains(21:40)'; - - %------ solid angle factors ----------------------- - - aom1=angfact(:,9); - aom2=angfact(:,7); - - - %----- calculate correcting factors --------------------------------------- - - fac1=(aom1./g1); - fac2=(aom2./g2); - - %--- result: offset-, calibration- and angular-factor corrected data ------- - - V=-V.*(repmat(fac1,1,length(t))); % vertical camera: - H=-H.*(repmat(fac2,1,length(t))); % horizontal camera: - - - sig=[H;V]; - - t=t'; - - end +% set a flag if flattenign of noise +% for channels with low signal -else - if (~strcmp(tag,'brief') & ~strcmp(tag,'full')) - disp('Only full or brief accepted as tag') - return - end - - - trace_tree=['\atlas::t_rex3_' tag ':']; - trace=[trace_tree 'signal_inp:p']; - %shot=mdsopen('eltca1::tcv_shot',shot); - shot=mdsopen(shot); - tref=mdsdata(['_tref=dim_of(' trace,'001)']); %trace :p001 - dtref=mdsdata('_dtref = _tref[1]-_tref[0]'); - - - S1=[]; - S2=[]; - S3=[]; - S4=[]; - S5=[]; - S6=[]; - S7=[]; - S8=[]; - S9=[]; - S10=[]; - - t_1=mdsdata('_t = dim_of(\atlas::t_rex3_full:signal_inp:p001)'); - dt1=mdsdata('_dt = _t[1]-_t[0]'); - npts=floor(mdsdata(['_npts=(',ststop,'-(',ststart,'))/_dt'])); - - - -if isempty(t_1) - disp('get_xtomo_data: sorry, nothing to be found for this shot ...') - return - else - disp('*--------------------------------------------*') - disp('| getting Pentland acquisition: getting *') - if strcmp(tag,'brief') - disp('| BRIEF data from MDS *'); - else - disp('| FULL data from MDS *'); - end - disp('*--------------------------------------------*'); - end - - - - if ((dt - dtref) < 1e-7 | floor(dt/dtref) ==0) - step='1'; - else - step =num2str(dt/dtref); - end - - - ind1=find( abs(tref-t1) == min(abs(tref-t1))); - npts1=floor(mdsdata(['_npts1=(',st2,'-(',st1,'))/_dtref'])); - sind1=num2str(ind1); - sind2=num2str(npts1+ind1); - - t=mdsdata(['data(_tref)[',sind1,':',sind2,':', step, ']']); - - - - - if fans(1) - channel=['001';'002';'003';'004';'005';'006';'007';'008';'009';'010';... - '011';'012';'013';'014';'015';'016';'017';'018';'019';'020']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':' , step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S1(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - - - - if fans(2) - channel=['021';'022';'023';'024';'025';'026';'027';'028';'029';'030';... - '031';'032';'033';'034';'035';'036';'037';'038';'039';'040']; - for i=1:20 - -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S2(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(3) - - channel=['041';'042';'043';'044';'045';'046';'047';'048';'049';'050';... - '051';'052';'053';'054';'055';'056';'057';'058';'059';'060']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S3(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - - if fans(4) - channel=['061';'062';'063';'064';'065';'066';'067';'068';'069';'070';... - '071';'072';'073';'074';'075';'076';'077';'078';'079';'080']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S4(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(5) - channel=['081';'082';'083';'084';'085';'086';'087';'088';'089';'090';... - '091';'092';'093';'094';'095';'096';'097';'098';'099';'100']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':',step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S5(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - - if fans(6) - channel=['101';'102';'103';'104';'105';'106';'107';'108';'109';'110';... - '111';'112';'113';'114';'115';'116';'117';'118';'119';'120']; - for i=1:20 -% S(i,:)=mdsdata([trace,channel(i,:),'[',st1,':',st2,':',sdt,':',step,']'])' - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S6(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(7) - channel=['121';'122';'123';'124';'125';'126';'127';'128';'129';'130';... - '131';'132';'133';'134';'135';'136';'137';'138';'139';'140']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':',step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S7(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(8) - channel=['141';'142';'143';'144';'145';'146';'147';'148';'149';'150';... - '151';'152';'153';'154';'155';'156';'157';'158';'159';'160']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S8(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(9) - channel=['161';'162';'163';'164';'165';'166';'167';'168';'169';'170';... - '171';'172';'173';'174';'175';'176';'177';'178';'179';'180']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S9(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - if fans(10) -% channel=['181';'182';'183';'184';'185';'186';'187';'188';'189';'190';... -% '191';'192';'193';'194';'195';'196';'197';'198';'199';'200']; - -% this permutation takes into account some not well defined (not yet) -% hardware corrections. Are the gains to be permutated ? - - - channel=['182';'181';'184';'183';'186';'185';'188';'187';'190';'189';... - '192';'191';'194';'193';'196';'195';'198';'197';'200';'199']; - for i=1:20 -% S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; - - - S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; - offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); - S10(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; - end - end - - sig=[S1;S2;S3;S4;S5;S6;S7;S8;S9;S10]; - - - [satrow,satcol]=find(abs(sig)>satlevel); - - if ~isempty(satcol) - i_tlimit=min(satcol(:)); - if i_tlimit>1 - sig=sig(:,1:i_tlimit-1); - t=t(1:i_tlimit-1); - disp(['get_xtomo_data WARNING: some channels saturated',...... - ', t2 changed to ',sprintf('%6.4f',max(t))]); - else - sig=[]; - t=[]; - disp('get_xtomo_data WARNING: saturations, no data returned'); - return - end - end - - - angfact=angfact(:,find(fans)); - angfact=angfact(:); - gains=get_xtomo_gains(shot); - % earlier than shot xxx: - perm=[1:180,[180+[2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19]]]; - gains=gains(perm); - iact=find(fans); - nact=length(iact); - idetec=[]; - for k=1:nact - idetec=[idetec,(iact(k)-1)*20+1:iact(k)*20]; - end - gains=gains(idetec); - gains=gains(:); - fac=ones(size(gains))./gains; - - - sig=sig.*(repmat(fac,1,length(t))); - - if iflat - for ii=1:length(t) - imini=find( sig(:,ii) < minsiglevel*max(sig(:,ii))); - sig(imini,ii)=zeros(size(imini)); - end - end - - t=t'; - sig=sig.*(repmat(angfact,1,length(t))); - +iflat=0; +minsiglevel=0.01; +satlevel=9.9; + + +st1=sprintf('%6.4f',t1); +st2=sprintf('%6.4f',t2); +sdt=num2str(dt); + +% sdt=sprintf('%6.4f',dt); % modified from old version + +if shot >= 13836 & shot <= 13848 + tstart=-0.02;tstop=-0.01; % this one is to be used only for +else % shot=13836 to shot=13848 + tstart=-0.04;tstop=-0.01; end -mdsclose +ststart=num2str(tstart); +ststop=num2str(tstop); + +if nargin <=6 + + shot=mdsopen(shot); + t=mdsdata(['dim_of(\base::xtomo:array_001[',st1,':',st2,':',sdt,',*])']); + S1=[]; + S2=[]; + S3=[]; + S4=[]; + S5=[]; + S6=[]; + S7=[]; + S8=[]; + S9=[]; + S10=[]; + + if isempty(t) + disp('get_xtomo_data: sorry, nothing to be found for this shot ...') + return + else + disp('*-------------------------------------------*') + disp('| get_xtomo_data: getting data from MDS |') + disp('*-------------------------------------------*') + end + + if shot>6768 + + if fans(1) + S=mdsdata(['\base::xtomo:array_001[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_001[',ststart,':',ststop,',0:19]']); + S1=S-repmat(mean(offset),length(t),1)'; + end + + if fans(2) + S=mdsdata(['\base::xtomo:array_002[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_002[',ststart,':',ststop,',0:19]']); + S2=S-repmat(mean(offset),length(t),1)'; + end + + if fans(3) + S=mdsdata(['\base::xtomo:array_003[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_003[',ststart,':',ststop,',0:19]']); + S3=S-repmat(mean(offset),length(t),1)'; + end + + if fans(4) + S=mdsdata(['\base::xtomo:array_004[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_004[',ststart,':',ststop,',0:19]']); + S4=S-repmat(mean(offset),length(t),1)'; + end + + if fans(5) + S=mdsdata(['\base::xtomo:array_005[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_005[',ststart,':',ststop,',0:19]']); + S5=S-repmat(mean(offset),length(t),1)'; + end + + if fans(6) + S=mdsdata(['\base::xtomo:array_006[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_006[',ststart,':',ststop,',0:19]']); + S6=S-repmat(mean(offset),length(t),1)'; + end + + if fans(7) + S=mdsdata(['\base::xtomo:array_007[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_007[',ststart,':',ststop,',0:19]']); + S7=S-repmat(mean(offset),length(t),1)'; + end + + if fans(8) + S=mdsdata(['\base::xtomo:array_008[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_008[',ststart,':',ststop,',0:19]']); + S8=S-repmat(mean(offset),length(t),1)'; + end + + if fans(9) + S=mdsdata(['\base::xtomo:array_009[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_009[',ststart,':',ststop,',0:19]']); + S9=S-repmat(mean(offset),length(t),1)'; + end + + if fans(10) + S=mdsdata(['\base::xtomo:array_010[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_010[',ststart,':',ststop,',0:19]']); + S10=S-repmat(mean(offset),length(t),1)'; + end + + + sig=-[S1;S2;S3;S4;S5;S6;S7;S8;S9;S10]; + [satrow,satcol]=find(abs(sig)>satlevel); + + if ~isempty(satcol) + i_tlimit=min(satcol(:)); + if i_tlimit>1 + sig=sig(:,1:i_tlimit-1); + t=t(1:i_tlimit-1); + disp(['get_xtomo_data WARNING: some channels saturated',...... + ', t2 changed to ',sprintf('%6.4f',max(t))]); + else + sig=[]; + t=[]; + disp('get_xtomo_data WARNING: saturations, no data returned'); + return + end + end + + + angfact=angfact(:,find(fans)); + angfact=angfact(:); + gains=get_xtomo_gains(shot); + % earlier than shot xxx: + perm=[1:180,[180+[2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19]]]; + gains=gains(perm); + iact=find(fans); + nact=length(iact); + idetec=[]; + for k=1:nact + idetec=[idetec,(iact(k)-1)*20+1:iact(k)*20]; + end + gains=gains(idetec); + gains=gains(:); + fac=ones(size(gains))./gains; + + + sig=-sig.*(repmat(fac,1,length(t))); + + if iflat + for ii=1:length(t) + imini=find( sig(:,ii) < minsiglevel*max(sig(:,ii))); + sig(imini,ii)=zeros(size(imini)); + end + end + + t=t'; + sig=sig.*(repmat(angfact,1,length(t))); + + + else + + if fans(9) + S=mdsdata(['\base::xtomo:array_001[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_001[',ststart,':',ststop,',0:19]']); + V=S-repmat(mean(offset),length(t),1)'; + end + if fans(7) + S=mdsdata(['\base::xtomo:array_002[',st1,':',st2,':',sdt,',0:19]'])'; + offset=mdsdata(['\base::xtomo:array_002[',ststart,':',ststop,',0:19]']); + H=S-repmat(mean(offset),length(t),1)'; + end + %---- read gains of the current shot --------------------------------------- + + gains=get_xtomo_gains(shot); + g1=gains(1:20)'; + g2=gains(21:40)'; -return + %------ solid angle factors ----------------------- + + aom1=angfact(:,9); + aom2=angfact(:,7); + + + %----- calculate correcting factors --------------------------------------- + + fac1=(aom1./g1); + fac2=(aom2./g2); + + %--- result: offset-, calibration- and angular-factor corrected data ------- + + V=-V.*(repmat(fac1,1,length(t))); % vertical camera: + H=-H.*(repmat(fac2,1,length(t))); % horizontal camera: + + + sig=[H;V]; + + t=t'; + + end + +else + if (~strcmp(tag,'brief') & ~strcmp(tag,'full')) + disp('Only full or brief accepted as tag') + return + end + trace_tree=['\atlas::t_rex3_' tag ':']; + trace=[trace_tree 'signal_inp:p']; + %shot=mdsopen('eltca1::tcv_shot',shot); + shot=mdsopen(shot); + tref=mdsdata(['_tref=dim_of(' trace,'001)']); %trace :p001 + dtref=mdsdata('_dtref = _tref[1]-_tref[0]'); + S1=[]; + S2=[]; + S3=[]; + S4=[]; + S5=[]; + S6=[]; + S7=[]; + S8=[]; + S9=[]; + S10=[]; + t_1=mdsdata('_t = dim_of(\atlas::t_rex3_full:signal_inp:p001)'); + dt1=mdsdata('_dt = _t[1]-_t[0]'); + npts=floor(mdsdata(['_npts=(',ststop,'-(',ststart,'))/_dt'])); + + + + if isempty(t_1) + disp('get_xtomo_data: sorry, nothing to be found for this shot ...') + return + else + disp('*--------------------------------------------*') + disp('| getting Pentland acquisition: getting *') + if strcmp(tag,'brief') + disp('| BRIEF data from MDS *'); + else + disp('| FULL data from MDS *'); + end + disp('*--------------------------------------------*'); + end + + + + if ((dt - dtref) < 1e-7 | floor(dt/dtref) ==0) + step='1'; + else + step =num2str(dt/dtref); + end + + + ind1=find( abs(tref-t1) == min(abs(tref-t1))); + npts1=floor(mdsdata(['_npts1=(',st2,'-(',st1,'))/_dtref'])); + sind1=num2str(ind1); + sind2=num2str(npts1+ind1); + + t=mdsdata(['data(_tref)[',sind1,':',sind2,':', step, ']']); + + + + + if fans(1) + channel=['001';'002';'003';'004';'005';'006';'007';'008';'009';'010';... + '011';'012';'013';'014';'015';'016';'017';'018';'019';'020']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':' , step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S1(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + + + + if fans(2) + channel=['021';'022';'023';'024';'025';'026';'027';'028';'029';'030';... + '031';'032';'033';'034';'035';'036';'037';'038';'039';'040']; + for i=1:20 + + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S2(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(3) + + channel=['041';'042';'043';'044';'045';'046';'047';'048';'049';'050';... + '051';'052';'053';'054';'055';'056';'057';'058';'059';'060']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S3(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + + if fans(4) + channel=['061';'062';'063';'064';'065';'066';'067';'068';'069';'070';... + '071';'072';'073';'074';'075';'076';'077';'078';'079';'080']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S4(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(5) + channel=['081';'082';'083';'084';'085';'086';'087';'088';'089';'090';... + '091';'092';'093';'094';'095';'096';'097';'098';'099';'100']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':',step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S5(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + + if fans(6) + channel=['101';'102';'103';'104';'105';'106';'107';'108';'109';'110';... + '111';'112';'113';'114';'115';'116';'117';'118';'119';'120']; + for i=1:20 + % S(i,:)=mdsdata([trace,channel(i,:),'[',st1,':',st2,':',sdt,':',step,']'])' + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step, ']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S6(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(7) + channel=['121';'122';'123';'124';'125';'126';'127';'128';'129';'130';... + '131';'132';'133';'134';'135';'136';'137';'138';'139';'140']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':',step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S7(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(8) + channel=['141';'142';'143';'144';'145';'146';'147';'148';'149';'150';... + '151';'152';'153';'154';'155';'156';'157';'158';'159';'160']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S8(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(9) + channel=['161';'162';'163';'164';'165';'166';'167';'168';'169';'170';... + '171';'172';'173';'174';'175';'176';'177';'178';'179';'180']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S9(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + if fans(10) + % channel=['181';'182';'183';'184';'185';'186';'187';'188';'189';'190';... + % '191';'192';'193';'194';'195';'196';'197';'198';'199';'200']; + + % this permutation takes into account some not well defined (not yet) + % hardware corrections. Are the gains to be permutated ? + + + channel=['182';'181';'184';'183';'186';'185';'188';'187';'190';'189';... + '192';'191';'194';'193';'196';'195';'198';'197';'200';'199']; + for i=1:20 + % S(i,:)=mdsdata([trace, channel(i,:),'[',st1,':',st2,':',sdt,']'])'; + + + S(i,:)=mdsdata(['data(',trace,channel(i,:),')[',sind1,':',sind2,':', step,']'])'; + offset=mdsdata(['data(\atlas::t_rex3_full:signal_inp:p',channel(i,:),')[0:',num2str(npts),']' ]); + S10(i,:)=S(i,:)-repmat(mean(offset),length(t),1)'; + end + end + + sig=[S1;S2;S3;S4;S5;S6;S7;S8;S9;S10]; + + + [satrow,satcol]=find(abs(sig)>satlevel); + + if ~isempty(satcol) + i_tlimit=min(satcol(:)); + if i_tlimit>1 + sig=sig(:,1:i_tlimit-1); + t=t(1:i_tlimit-1); + disp(['get_xtomo_data WARNING: some channels saturated',...... + ', t2 changed to ',sprintf('%6.4f',max(t))]); + else + sig=[]; + t=[]; + disp('get_xtomo_data WARNING: saturations, no data returned'); + return + end + end + + + angfact=angfact(:,find(fans)); + angfact=angfact(:); + gains=get_xtomo_gains(shot); + % earlier than shot xxx: + perm=[1:180,[180+[2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,18,17,20,19]]]; + gains=gains(perm); + iact=find(fans); + nact=length(iact); + idetec=[]; + for k=1:nact + idetec=[idetec,(iact(k)-1)*20+1:iact(k)*20]; + end + gains=gains(idetec); + gains=gains(:); + fac=ones(size(gains))./gains; + + + sig=sig.*(repmat(fac,1,length(t))); + + if iflat + for ii=1:length(t) + imini=find( sig(:,ii) < minsiglevel*max(sig(:,ii))); + sig(imini,ii)=zeros(size(imini)); + end + end + + t=t'; + sig=sig.*(repmat(angfact,1,length(t))); + + +end + +mdsclose + + +return diff --git a/matlab/TCV/tcv_help_parameters.m b/matlab/TCV/tcv_help_parameters.m index 2c6c74c0b91bc015c0558a43e33af1c0f98ec3c0..f864a08468e84d120646871535122a4e2c54b2e4 100644 --- a/matlab/TCV/tcv_help_parameters.m +++ b/matlab/TCV/tcv_help_parameters.m @@ -29,7 +29,8 @@ help_struct_all.cxrs_time_interval = ['cxrs: (time_interval can have several nbs ' as well']; help_struct_all.fit_tension = ['smoothing value used in interpos fitting routine, -30 means ''30 times default value'', thus -1 often a' ... ' good value' char(10) ... - 'cxrs: if numeric, default for all cases, if structure, default for non given fields']; + 'cxrs: if numeric, default for all cases, if structure, default for non given fields' char(10) ... + 'radcam: tension for interpos smoothing of data to have lower time samples']; help_struct_all.time = 'eqdsk: time(s) value(s) requested, by default time=1.0s (see time_out for other requests)'; help_struct_all.time_out = ['requested time for output: data points within interval if time_out=[t1 t2], otherwise assumes series of points, uses linear interpolation in that case (default [-Inf Inf])'... char(10) 'for sxr, mpx: only time interval provided in time_out is relevant']; @@ -38,6 +39,7 @@ help_struct_all.cocos = ['cocos value desired in output, uses eqdsk_cocos_transf 'is wanted. See O. Sauter et al Comput. Phys. Commun. 184 (2013) 293']; help_struct_all.nrz_out = 'Nb of radial and vertical points in output eqdsk, default is [129,129], set to [-1,-1] to get original meshes'; help_struct_all.edge = '0 (default), 1 to get edge Thomson values'; +help_struct_all.ec_inputs = '0 (default), 1 to get characterics of gyrotrons connected to each launcher: active, freq, power'; help_struct_all.fit = '0, no fit profiles, 1 (default) if fit profiles desired as well, relevant for _rho profiles. See also fit_type'; help_struct_all.fit_type = 'provenance of fitted profiles ''conf'' (default) from conf nodes, ''avg'' or ''local'' for resp. proffit: nodes'; help_struct_all.trialindx = 'value of trialindx desired to get a specific one when relevant, otherwise gets ok_trialindx, that is 1 usually'; @@ -56,17 +58,19 @@ help_struct_all.error_bar = sprintf('%s\n','for ids: choice of nodes fill in and '''delta'' (default): only upper fill in with the abs(value) to add or subtract to data to get upper and lower values (symmetric)', ... '''delta_with_lower'': same as delta but fill in lower node as well (with delta as well, same as upper)', ... '''added'': add the delta values (old cpo style), so upper=data+error_bar and lower=data+error_bar'); -help_struct_all.camera = ['sxr: for MPX: ''central'', ''top'' (default), ''bottom'' or ''both'' ; ' ... - ' for XTOMO: ''central'' (a central chord only), defaults if empty, [1 3 5] if only camera 1, 3 and 5 are desired']; -help_struct_all.freq = '''slow'', default, lower sampling; ''fast'' full samples for both mpx and xtomo'; +help_struct_all.camera = sprintf('%s\n%s\n%s', ... + 'sxr: for radcam: 1 to 4 or ''top'' (default), ''upper'', ''equatorial'', ''bottom'' array or cell array ok as well;', ... + ' for MPX: ''central'', ''top'' (default), ''bottom'' or ''both'' ;', ... + ' for XTOMO: ''central'' (a central chord only), defaults if empty, [1 3 5] if only camera 1, 3 and 5 are desired'); +help_struct_all.channel = sprintf('%s\n%s\n%s', ... + 'radcam: chord to choose within camera interval, or simply chords, then it is re-distributed to correct camera'); +help_struct_all.freq = '''slow'', default, lower sampling (for radcam smoothing on dt=0.1ms); ''fast'' full samples for radcam, mpx and xtomo'; help_struct_all.max_adcs = 'rtc: source=''adcs'' maximum nb of adc channels loaded for each board in each active node'; help_struct_all.nfft = '512 (default) changes time resolution in spectrogram in gdat_plot for ''mhd'' request'; help_struct_all.map_eqdsk_psirz = 'eqdsk: if time array provided, maps all psi(R,Z,t) on same R,Zmesh in .data (1) or not (0, default)'; help_struct_all.write = 'eqdsk: write eqdsk while loading data (1, default) or not (0)'; %help_struct_all. = ''; - - if ~exist('parameter_list') || isempty(parameter_list) help_struct = help_struct_all; return diff --git a/matlab/TCV/tcv_requests_mapping.m b/matlab/TCV/tcv_requests_mapping.m index ad1bc170dab3bea172e5cffe6628196f901c8e63..04dcc1f5c8e483714b1882bb15b8e965bb07ed20 100644 --- a/matlab/TCV/tcv_requests_mapping.m +++ b/matlab/TCV/tcv_requests_mapping.m @@ -458,7 +458,7 @@ switch lower(data_request) mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''tcv_eq("surf","LIUQE.M")'';' ... 'gdat_tmp=gdat_tcv(shot,params_eff); gdat_tmp.dim = {gdat_tmp.t}; gdat_tmp.x=[]; gdat_tmp.data= gdat_tmp.data(end,:);' ... 'gdat_tmp.dimunits{1}=''s'';gdat_tmp.help=''toroidal surface of LCFS'';']; - case 'sxr' + case {'sxr', 'mpx', 'radcam'} mapping.timedim = 1; mapping.gdat_timedim = 2; mapping.method = 'switchcase'; @@ -583,10 +583,6 @@ switch lower(data_request) % $$$ mapping.method = 'tdiliuqe'; % $$$ % mapping.expression = '\results::thomson:psiscatvol:foo'; % $$$ mapping.expression = '\results::thomson:psiscatvol'; - case 'mpx' - mapping.timedim = 1; - mapping.gdat_timedim = 2; - mapping.method = 'switchcase'; case {'profnerho','profterho'} mapping.timedim = 1; mapping.label = data_request; diff --git a/matlab/TCV_IMAS/ids2database.m b/matlab/TCV_IMAS/ids2database.m index 40f83746b8524a2b3f38cf770fcba6147ae7ace2..eb2c2ed7f0275d6700c482f8c6f3a1a4727d2fae 100644 --- a/matlab/TCV_IMAS/ids2database.m +++ b/matlab/TCV_IMAS/ids2database.m @@ -1,4 +1,4 @@ -function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,varargin); +function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend,varargin); % % [ids_put_status] = ids2database(shot,run,occurence,ids2put,varargin); % @@ -7,6 +7,7 @@ function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tr % tree_name: getenv('USER') by default, can be 'public' % tree_tokamak: 'tcv' by default % tree_majorversion: '3' by default +% imas_backend: "MDSplus" or "HDF5" % % varargin{1}: tbd % @@ -16,6 +17,7 @@ ids_put_status = 0; tree_user_default = getenv('USER'); tree_tokamak_default = 'tcv'; tree_majorversion_default = '3'; +imas_backend_default = 'MDSplus'; % initialize input parser p = inputParser; @@ -28,6 +30,7 @@ p.addOptional('ids2put', struct([]), @(x) (isstruct(x))); p.addOptional('tree_user', tree_user_default, @(x) (isempty(x) || ischar(x))); p.addOptional('tree_tokamak', tree_tokamak_default, @(x) (isempty(x) || ischar(x))); p.addOptional('tree_majorversion', tree_majorversion_default, @(x) (ischar(x))); +p.addOptional('imas_backend', imas_backend_default, @(x) (isempty(x) || ischar(x))); p.parse; defaults_ids2database = p.Results; % to keep track of defaults @@ -53,8 +56,11 @@ elseif nargin==6 elseif nargin==7 p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion); params = p.Results; -elseif nargin>=8 - p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,varargin{:}); +elseif nargin==8 + p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend); + params = p.Results; +elseif nargin>=9 + p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend,varargin{:}); params = p.Results; else p.parse; @@ -100,6 +106,19 @@ if isempty(ids_names_ok) return end +if ~ismember(params_ids2database.imas_backend, {'MDSplus', 'HDF5'}) + warning(['Unknown imas_backend: ', imas_backend, ', selecting default: ',imas_backend_default]); + params_ids2database.imas_backend = imas_backend_default; +end + +% Get IMAS backend ID +switch params_ids2database.imas_backend + case "HDF5" + backendid=13; + case "MDSplus" + backendid=12; +end + try %% Initialize the three shot_is_new = 1; % seems only create is ok even if does already exist @@ -109,10 +128,9 @@ try shot_is_new = 0; end if shot_is_new - idx = imas_create_env('ids',shot,run,0,0,params_ids2database.tree_user,params_ids2database.tree_tokamak, ... - params_ids2database.tree_majorversion); % + idx = imas_create_env_backend(shot, run, params_ids2database.tree_user,params_ids2database.tree_tokamak, params_ids2database.tree_majorversion, backendid) else - idx = imas_open_env('ids',shot,run,params_ids2database.tree_user,params_ids2database.tree_tokamak,params_ids2database.tree_majorversion); % + idx = imas_open_env_backend(shot,run,params_ids2database.tree_user,params_ids2database.tree_tokamak,params_ids2database.tree_majorversion,backendid); % end %% Put the field diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m b/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m index c7b2fa355a63f9260334172addc05f6d48a35164..be16780d93bd199b3e949d1fb5fec5b1fa6039ab 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m @@ -1,9 +1,11 @@ function S = ids_empty_amns_data % function S = ids_empty_amns_data % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -11,13 +13,15 @@ struct(... 'a_error_upper',double(-9e+40),... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -36,12 +40,57 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -87,7 +136,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'citation','',... 'coordinate_index',int32(-999999999),... 'label','',... @@ -110,7 +159,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'mass',double(-9e+40),... 'mass_error_index',int32(-999999999),... @@ -127,7 +176,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'provider','',... 'reactants',{{struct(... 'charge',double(-9e+40),... @@ -148,7 +197,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'mass',double(-9e+40),... 'mass_error_index',int32(-999999999),... @@ -165,22 +214,22 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'result_label','',... 'result_transformation',int32(-999999999),... 'result_units','',... 'source','',... 'table_dimension',int32(-999999999)) -;}},... +}},... 'release',{{struct(... 'data_entry',{{struct(... 'description','',... 'run',int32(-999999999),... 'shot',int32(-999999999)) -;}},... +}},... 'date','',... 'description','') -;}},... +}},... 'time',double([]),... 'z_n',double(-9e+40),... 'z_n_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m b/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m new file mode 100644 index 0000000000000000000000000000000000000000..a9c2f227113d7a345e53019577ddf259fb8cb45c --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m @@ -0,0 +1,161 @@ +function S = ids_empty_b_field_non_axisymmetric +% function S = ids_empty_b_field_non_axisymmetric +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'configuration','',... +'control_surface_names',{{}},... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'time',double([]),... +'time_slice',{{struct(... +'control_surface',{{struct(... +'b_field_normal',double([]),... +'b_field_normal_error_index',int32(-999999999),... +'b_field_normal_error_lower',double([]),... +'b_field_normal_error_upper',double([]),... +'b_field_normal_fourier',double([]),... +'b_field_normal_fourier_error_index',int32(-999999999),... +'b_field_normal_fourier_error_lower',double([]),... +'b_field_normal_fourier_error_upper',double([]),... +'b_field_r',double([]),... +'b_field_r_error_index',int32(-999999999),... +'b_field_r_error_lower',double([]),... +'b_field_r_error_upper',double([]),... +'b_field_tor',double([]),... +'b_field_tor_error_index',int32(-999999999),... +'b_field_tor_error_lower',double([]),... +'b_field_tor_error_upper',double([]),... +'b_field_z',double([]),... +'b_field_z_error_index',int32(-999999999),... +'b_field_z_error_lower',double([]),... +'b_field_z_error_upper',double([]),... +'n_tor',int32([]),... +'normal_vector',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'outline',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([])) +}},... +'field_map',struct(... +'b_field_r',double([]),... +'b_field_r_error_index',int32(-999999999),... +'b_field_r_error_lower',double([]),... +'b_field_r_error_upper',double([]),... +'b_field_tor',double([]),... +'b_field_tor_error_index',int32(-999999999),... +'b_field_tor_error_lower',double([]),... +'b_field_tor_error_upper',double([]),... +'b_field_z',double([]),... +'b_field_z_error_index',int32(-999999999),... +'b_field_z_error_lower',double([]),... +'b_field_z_error_upper',double([]),... +'grid',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'ripple_amplitude',double([]),... +'ripple_amplitude_error_index',int32(-999999999),... +'ripple_amplitude_error_lower',double([]),... +'ripple_amplitude_error_upper',double([])),... +'time',double(-9e+40)) +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m b/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m index b893cfeca7e17f327f41ac72e5128d1ccedaa5b1..fc0aab27ae58b7f3848aa0f2376c79519f2aca7f 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m @@ -1,19 +1,23 @@ function S = ids_empty_barometry % function S = ids_empty_barometry % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -48,15 +52,64 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m index 6ac800749d5af7f9d1e4becd75791c9a648c5272..8ab58cd9ace4a883a1b7b323d56efc296791b969 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m @@ -1,9 +1,11 @@ function S = ids_empty_bolometer % function S = ids_empty_bolometer % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'aperture',{{struct(... @@ -85,7 +87,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -225,16 +227,18 @@ struct(... 'validity_timed',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -244,12 +248,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'power_radiated_inside_lcfs',double([]),... 'power_radiated_inside_lcfs_error_index',int32(-999999999),... 'power_radiated_inside_lcfs_error_lower',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m index 96da2125bf6f1f2d81c0441cc607503e405d931e..31dedb503fcd339245dac7df8cb5db8a3f7e8f7d 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m @@ -1,9 +1,11 @@ function S = ids_empty_bremsstrahlung_visible % function S = ids_empty_bremsstrahlung_visible % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'filter',struct(... @@ -71,16 +73,18 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -90,10 +94,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m b/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m index 86178f8af384919bafa1dfb1a3f8d694ae278ace..16083fabe295f53a6d79bd15b31d61a86363b1b4 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m @@ -1,19 +1,23 @@ function S = ids_empty_calorimetry % function S = ids_empty_calorimetry % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -46,7 +50,7 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'group',{{struct(... 'component',{{struct(... 'energy_cumulated',struct(... @@ -105,18 +109,67 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'identifier','',... 'name','') -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m index e9346d45733df02ddbc9ba59ab9baf423f97cf2f..f7a0effa225067ed728494456c227c01846cbb28 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m @@ -1,9 +1,11 @@ function S = ids_empty_camera_ir % function S = ids_empty_camera_ir % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'calibration',struct(... 'luminance_to_temperature',int32([]),... @@ -13,31 +15,337 @@ struct(... 'transmission_window',int32([])),... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... 'repository','',... 'version',''),... +'fibre_bundle',struct(... +'fibre_positions',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'fibre_radius',double(-9e+40),... +'fibre_radius_error_index',int32(-999999999),... +'fibre_radius_error_lower',double(-9e+40),... +'fibre_radius_error_upper',double(-9e+40),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)))),... 'frame',{{struct(... -'image_raw',int32([]),... +'surface_temperature',double([]),... +'surface_temperature_error_index',int32(-999999999),... +'surface_temperature_error_lower',double([]),... +'surface_temperature_error_upper',double([]),... +'time',double(-9e+40)) +}},... +'frame_analysis',{{struct(... +'distance_separatrix_midplane',double([]),... +'distance_separatrix_midplane_error_index',int32(-999999999),... +'distance_separatrix_midplane_error_lower',double([]),... +'distance_separatrix_midplane_error_upper',double([]),... +'power_flux_parallel',double([]),... +'power_flux_parallel_error_index',int32(-999999999),... +'power_flux_parallel_error_lower',double([]),... +'power_flux_parallel_error_upper',double([]),... +'sol_heat_decay_length',double(-9e+40),... +'sol_heat_decay_length_error_index',int32(-999999999),... +'sol_heat_decay_length_error_lower',double(-9e+40),... +'sol_heat_decay_length_error_upper',double(-9e+40),... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'name','',... +'optical_element',{{struct(... +'back_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'front_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'material_properties',struct(... +'extinction_coefficient',double([]),... +'extinction_coefficient_error_index',int32(-999999999),... +'extinction_coefficient_error_lower',double([]),... +'extinction_coefficient_error_upper',double([]),... +'refractive_index',double([]),... +'refractive_index_error_index',int32(-999999999),... +'refractive_index_error_lower',double([]),... +'refractive_index_error_upper',double([]),... +'roughness',double([]),... +'roughness_error_index',int32(-999999999),... +'roughness_error_lower',double([]),... +'roughness_error_upper',double([]),... +'transmission_coefficient',double([]),... +'transmission_coefficient_error_index',int32(-999999999),... +'transmission_coefficient_error_lower',double([]),... +'transmission_coefficient_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name','')) +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m index 32cf9f234f852bf335578cd83324bec2e38a5c42..7276ab216af4b712a1d4d7ee2c33fb10002025ff 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m @@ -1,9 +1,11 @@ function S = ids_empty_camera_visible % function S = ids_empty_camera_visible % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'aperture',{{struct(... @@ -85,8 +87,9 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',{{struct(... +'columns_n',int32(-999999999),... 'counts_to_radiance',double([]),... 'counts_to_radiance_error_index',int32(-999999999),... 'counts_to_radiance_error_lower',double([]),... @@ -102,13 +105,30 @@ struct(... 'radiance_error_lower',double([]),... 'radiance_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'geometry_matrix',struct(... +'emission_grid',struct(... +'dim1',double([]),... +'dim1_error_index',int32(-999999999),... +'dim1_error_lower',double([]),... +'dim1_error_upper',double([]),... +'dim2',double([]),... +'dim2_error_index',int32(-999999999),... +'dim2_error_lower',double([]),... +'dim2_error_upper',double([]),... +'dim3',double([]),... +'dim3_error_index',int32(-999999999),... +'dim3_error_lower',double([]),... +'dim3_error_upper',double([]),... +'grid_type',struct(... +'description','',... +'index',int32(-999999999),... +'name','')),... +'interpolated',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'emission_grid',struct(... 'phi',double([]),... 'phi_error_index',int32(-999999999),... 'phi_error_lower',double([]),... @@ -121,7 +141,23 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double([]),... 'z_error_upper',double([])),... -'voxel_map',int32([])),... +'voxel_map',int32([]),... +'voxels_n',int32(-999999999),... +'with_reflections',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'pixel_indices',int32([]),... +'voxel_indices',int32([])),... +'without_reflections',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'pixel_indices',int32([]),... +'voxel_indices',int32([]))),... +'lines_n',int32(-999999999),... 'noise',double(-9e+40),... 'noise_error_index',int32(-999999999),... 'noise_error_lower',double(-9e+40),... @@ -142,8 +178,241 @@ struct(... 'wavelength_upper_error_index',int32(-999999999),... 'wavelength_upper_error_lower',double(-9e+40),... 'wavelength_upper_error_upper',double(-9e+40)) -;}},... +}},... +'fibre_bundle',struct(... +'fibre_positions',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'fibre_radius',double(-9e+40),... +'fibre_radius_error_index',int32(-999999999),... +'fibre_radius_error_lower',double(-9e+40),... +'fibre_radius_error_upper',double(-9e+40),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)))),... 'name','',... +'optical_element',{{struct(... +'back_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'front_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'material_properties',struct(... +'extinction_coefficient',double([]),... +'extinction_coefficient_error_index',int32(-999999999),... +'extinction_coefficient_error_lower',double([]),... +'extinction_coefficient_error_upper',double([]),... +'refractive_index',double([]),... +'refractive_index_error_index',int32(-999999999),... +'refractive_index_error_lower',double([]),... +'refractive_index_error_upper',double([]),... +'roughness',double([]),... +'roughness_error_index',int32(-999999999),... +'roughness_error_lower',double([]),... +'roughness_error_upper',double([]),... +'transmission_coefficient',double([]),... +'transmission_coefficient_error_index',int32(-999999999),... +'transmission_coefficient_error_lower',double([]),... +'transmission_coefficient_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name','')) +}},... 'viewing_angle_alpha_bounds',double([]),... 'viewing_angle_alpha_bounds_error_index',int32(-999999999),... 'viewing_angle_alpha_bounds_error_lower',double([]),... @@ -152,16 +421,18 @@ struct(... 'viewing_angle_beta_bounds_error_index',int32(-999999999),... 'viewing_angle_beta_bounds_error_lower',double([]),... 'viewing_angle_beta_bounds_error_upper',double([])) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -171,11 +442,60 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'name','',... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m new file mode 100644 index 0000000000000000000000000000000000000000..318a307220dbf8ae6683441387afbc369c3281f9 --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m @@ -0,0 +1,425 @@ +function S = ids_empty_camera_x_rays +% function S = ids_empty_camera_x_rays +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'aperture',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'camera',struct(... +'camera_dimensions',double([]),... +'camera_dimensions_error_index',int32(-999999999),... +'camera_dimensions_error_lower',double([]),... +'camera_dimensions_error_upper',double([]),... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'identifier','',... +'line_of_sight',struct(... +'first_point',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'second_point',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([]))),... +'pixel_dimensions',double([]),... +'pixel_dimensions_error_index',int32(-999999999),... +'pixel_dimensions_error_lower',double([]),... +'pixel_dimensions_error_upper',double([]),... +'pixel_position',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'pixels_n',int32([]),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'detector_humidity',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'detector_temperature',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'energy_configuration_name','',... +'energy_threshold_lower',double([]),... +'energy_threshold_lower_error_index',int32(-999999999),... +'energy_threshold_lower_error_lower',double([]),... +'energy_threshold_lower_error_upper',double([]),... +'exposure_time',double(-9e+40),... +'exposure_time_error_index',int32(-999999999),... +'exposure_time_error_lower',double(-9e+40),... +'exposure_time_error_upper',double(-9e+40),... +'filter_window',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'photon_absorption',double([]),... +'photon_absorption_error_index',int32(-999999999),... +'photon_absorption_error_lower',double([]),... +'photon_absorption_error_upper',double([]),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'wavelength_lower',double(-9e+40),... +'wavelength_lower_error_index',int32(-999999999),... +'wavelength_lower_error_lower',double(-9e+40),... +'wavelength_lower_error_upper',double(-9e+40),... +'wavelength_upper',double(-9e+40),... +'wavelength_upper_error_index',int32(-999999999),... +'wavelength_upper_error_lower',double(-9e+40),... +'wavelength_upper_error_upper',double(-9e+40),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([]),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'frame',{{struct(... +'counts_n',int32([]),... +'time',double(-9e+40)) +}},... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'name','',... +'photon_energy',double([]),... +'photon_energy_error_index',int32(-999999999),... +'photon_energy_error_lower',double([]),... +'photon_energy_error_upper',double([]),... +'pixel_status',int32([]),... +'quantum_efficiency',double([]),... +'quantum_efficiency_error_index',int32(-999999999),... +'quantum_efficiency_error_lower',double([]),... +'quantum_efficiency_error_upper',double([]),... +'readout_time',double(-9e+40),... +'readout_time_error_index',int32(-999999999),... +'readout_time_error_lower',double(-9e+40),... +'readout_time_error_upper',double(-9e+40),... +'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m b/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m index 23f769eea93d40c457e0eebb0c22bcc8b4e1b937..f2b743835976a87c344e84ac663bfc4cca79bfd8 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m @@ -1,9 +1,11 @@ function S = ids_empty_charge_exchange % function S = ids_empty_charge_exchange % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'aperture',struct(... 'centre',struct(... @@ -176,7 +178,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_fast',{{struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -205,7 +207,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'momentum_tor',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -285,7 +287,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'radiance_calibration',double([]),... 'radiance_calibration_date','',... 'radiance_calibration_error_index',int32(-999999999),... @@ -312,7 +314,7 @@ struct(... 'wavelengths_error_index',int32(-999999999),... 'wavelengths_error_lower',double([]),... 'wavelengths_error_upper',double([])) -;}},... +}},... 't_i_average',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -343,16 +345,18 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -370,10 +374,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m b/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m index cb719f1a66ea73ce7e15b653a87679e30b80934c..55f95fc6c8af3bb86f4ebb1826947b1d17dbd20d 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m @@ -1,10 +1,28 @@ function S = ids_empty_coils_non_axisymmetric % function S = ids_empty_coils_non_axisymmetric % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... 'coil',{{struct(... 'conductor',{{struct(... 'cross_section',struct(... @@ -91,7 +109,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'current',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -114,15 +132,64 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m b/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m index 5873b2edee62a566dae25ae32a0c9eedc072c679..22ebf4f2947c5e47ecb9e20dc7e764c5447666bd 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m @@ -1,19 +1,23 @@ function S = ids_empty_controllers % function S = ids_empty_controllers % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -104,7 +153,7 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'state_names',{{}})) -;}},... +}},... 'nonlinear_controller',{{struct(... 'controller_class','',... 'description','',... @@ -124,5 +173,5 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m index 6bb1b5d89e11a0919d9a39e4d9c552654beafcc5..81200d881ca237c50e54a2e93f9a8c3a97e19574 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m @@ -1,9 +1,11 @@ function S = ids_empty_core_instant_changes % function S = ids_empty_core_instant_changes % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'change',{{struct(... 'identifier',struct(... @@ -285,7 +287,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -438,7 +440,7 @@ struct(... 'z_square_average_error_index',int32(-999999999),... 'z_square_average_error_lower',double(-9e+40),... 'z_square_average_error_upper',double(-9e+40)) -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -521,7 +523,7 @@ struct(... 'z_ion_square_1d_error_index',int32(-999999999),... 'z_ion_square_1d_error_lower',double([]),... 'z_ion_square_1d_error_upper',double([])) -;}},... +}},... 'j_bootstrap',double([]),... 'j_bootstrap_error_index',int32(-999999999),... 'j_bootstrap_error_lower',double([]),... @@ -585,7 +587,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'multiple_states_flag',int32(-999999999),... @@ -670,7 +672,7 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -696,7 +698,7 @@ struct(... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... 'toroidal_error_upper',double([]))) -;}},... +}},... 'phi_potential',double([]),... 'phi_potential_error_index',int32(-999999999),... 'phi_potential_error_lower',double([]),... @@ -806,17 +808,19 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double([]),... 'weight_error_upper',double([]))) -;}}) -;}},... +}}) +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -826,6 +830,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m index c4cf20c5045d0860eab5659e1a07f8015fa26bd2..e49d0947e3166c09841dedb5d8bfd44a2d583995 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m @@ -1,19 +1,23 @@ function S = ids_empty_core_profiles % function S = ids_empty_core_profiles % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -40,10 +44,28 @@ struct(... 'current_non_inductive_error_index',int32(-999999999),... 'current_non_inductive_error_lower',double([]),... 'current_non_inductive_error_upper',double([]),... +'ejima',double([]),... +'ejima_error_index',int32(-999999999),... +'ejima_error_lower',double([]),... +'ejima_error_upper',double([]),... 'energy_diamagnetic',double([]),... 'energy_diamagnetic_error_index',int32(-999999999),... 'energy_diamagnetic_error_lower',double([]),... 'energy_diamagnetic_error_upper',double([]),... +'ion',{{struct(... +'n_i_volume_average',double([]),... +'n_i_volume_average_error_index',int32(-999999999),... +'n_i_volume_average_error_lower',double([]),... +'n_i_volume_average_error_upper',double([]),... +'t_i_volume_average',double([]),... +'t_i_volume_average_error_index',int32(-999999999),... +'t_i_volume_average_error_lower',double([]),... +'t_i_volume_average_error_upper',double([])) +}},... +'ion_time_slice',double(-9e+40),... +'ion_time_slice_error_index',int32(-999999999),... +'ion_time_slice_error_lower',double(-9e+40),... +'ion_time_slice_error_upper',double(-9e+40),... 'ip',double([]),... 'ip_error_index',int32(-999999999),... 'ip_error_lower',double([]),... @@ -56,6 +78,26 @@ struct(... 'li_error_index',int32(-999999999),... 'li_error_lower',double([]),... 'li_error_upper',double([]),... +'n_e_volume_average',double([]),... +'n_e_volume_average_error_index',int32(-999999999),... +'n_e_volume_average_error_lower',double([]),... +'n_e_volume_average_error_upper',double([]),... +'resistive_psi_losses',double([]),... +'resistive_psi_losses_error_index',int32(-999999999),... +'resistive_psi_losses_error_lower',double([]),... +'resistive_psi_losses_error_upper',double([]),... +'t_e_peaking',double([]),... +'t_e_peaking_error_index',int32(-999999999),... +'t_e_peaking_error_lower',double([]),... +'t_e_peaking_error_upper',double([]),... +'t_e_volume_average',double([]),... +'t_e_volume_average_error_index',int32(-999999999),... +'t_e_volume_average_error_lower',double([]),... +'t_e_volume_average_error_upper',double([]),... +'t_i_average_peaking',double([]),... +'t_i_average_peaking_error_index',int32(-999999999),... +'t_i_average_peaking_error_lower',double([]),... +'t_i_average_peaking_error_upper',double([]),... 'v_loop',double([]),... 'v_loop_error_index',int32(-999999999),... 'v_loop_error_lower',double([]),... @@ -68,6 +110,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -349,7 +436,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -502,7 +589,7 @@ struct(... 'z_square_average_error_index',int32(-999999999),... 'z_square_average_error_lower',double(-9e+40),... 'z_square_average_error_upper',double(-9e+40)) -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -585,7 +672,7 @@ struct(... 'z_ion_square_1d_error_index',int32(-999999999),... 'z_ion_square_1d_error_lower',double([]),... 'z_ion_square_1d_error_upper',double([])) -;}},... +}},... 'j_bootstrap',double([]),... 'j_bootstrap_error_index',int32(-999999999),... 'j_bootstrap_error_lower',double([]),... @@ -649,7 +736,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'multiple_states_flag',int32(-999999999),... @@ -734,7 +821,7 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -760,7 +847,7 @@ struct(... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... 'toroidal_error_upper',double([]))) -;}},... +}},... 'phi_potential',double([]),... 'phi_potential_error_index',int32(-999999999),... 'phi_potential_error_lower',double([]),... @@ -870,7 +957,209 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double([]),... 'weight_error_upper',double([]))) -;}},... +}},... +'profiles_2d',{{struct(... +'grid',struct(... +'dim1',double([]),... +'dim1_error_index',int32(-999999999),... +'dim1_error_lower',double([]),... +'dim1_error_upper',double([]),... +'dim2',double([]),... +'dim2_error_index',int32(-999999999),... +'dim2_error_lower',double([]),... +'dim2_error_upper',double([]),... +'volume_element',double([]),... +'volume_element_error_index',int32(-999999999),... +'volume_element_error_lower',double([]),... +'volume_element_error_upper',double([])),... +'grid_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'ion',{{struct(... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'density_fast',double([]),... +'density_fast_error_index',int32(-999999999),... +'density_fast_error_lower',double([]),... +'density_fast_error_upper',double([]),... +'density_thermal',double([]),... +'density_thermal_error_index',int32(-999999999),... +'density_thermal_error_lower',double([]),... +'density_thermal_error_upper',double([]),... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'ion_index',int32(-999999999),... +'label','',... +'multiple_states_flag',int32(-999999999),... +'pressure',double([]),... +'pressure_error_index',int32(-999999999),... +'pressure_error_lower',double([]),... +'pressure_error_upper',double([]),... +'pressure_fast_parallel',double([]),... +'pressure_fast_parallel_error_index',int32(-999999999),... +'pressure_fast_parallel_error_lower',double([]),... +'pressure_fast_parallel_error_upper',double([]),... +'pressure_fast_perpendicular',double([]),... +'pressure_fast_perpendicular_error_index',int32(-999999999),... +'pressure_fast_perpendicular_error_lower',double([]),... +'pressure_fast_perpendicular_error_upper',double([]),... +'pressure_thermal',double([]),... +'pressure_thermal_error_index',int32(-999999999),... +'pressure_thermal_error_lower',double([]),... +'pressure_thermal_error_upper',double([]),... +'rotation_frequency_tor',double([]),... +'rotation_frequency_tor_error_index',int32(-999999999),... +'rotation_frequency_tor_error_lower',double([]),... +'rotation_frequency_tor_error_upper',double([]),... +'state',{{struct(... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'density_fast',double([]),... +'density_fast_error_index',int32(-999999999),... +'density_fast_error_lower',double([]),... +'density_fast_error_upper',double([]),... +'density_thermal',double([]),... +'density_thermal_error_index',int32(-999999999),... +'density_thermal_error_lower',double([]),... +'density_thermal_error_upper',double([]),... +'electron_configuration','',... +'ionisation_potential',double(-9e+40),... +'ionisation_potential_error_index',int32(-999999999),... +'ionisation_potential_error_lower',double(-9e+40),... +'ionisation_potential_error_upper',double(-9e+40),... +'label','',... +'pressure',double([]),... +'pressure_error_index',int32(-999999999),... +'pressure_error_lower',double([]),... +'pressure_error_upper',double([]),... +'pressure_fast_parallel',double([]),... +'pressure_fast_parallel_error_index',int32(-999999999),... +'pressure_fast_parallel_error_lower',double([]),... +'pressure_fast_parallel_error_upper',double([]),... +'pressure_fast_perpendicular',double([]),... +'pressure_fast_perpendicular_error_index',int32(-999999999),... +'pressure_fast_perpendicular_error_lower',double([]),... +'pressure_fast_perpendicular_error_upper',double([]),... +'pressure_thermal',double([]),... +'pressure_thermal_error_index',int32(-999999999),... +'pressure_thermal_error_lower',double([]),... +'pressure_thermal_error_upper',double([]),... +'rotation_frequency_tor',double([]),... +'rotation_frequency_tor_error_index',int32(-999999999),... +'rotation_frequency_tor_error_lower',double([]),... +'rotation_frequency_tor_error_upper',double([]),... +'temperature',double([]),... +'temperature_error_index',int32(-999999999),... +'temperature_error_lower',double([]),... +'temperature_error_upper',double([]),... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','',... +'z_average',double(-9e+40),... +'z_average_error_index',int32(-999999999),... +'z_average_error_lower',double(-9e+40),... +'z_average_error_upper',double(-9e+40),... +'z_max',double(-9e+40),... +'z_max_error_index',int32(-999999999),... +'z_max_error_lower',double(-9e+40),... +'z_max_error_upper',double(-9e+40),... +'z_min',double(-9e+40),... +'z_min_error_index',int32(-999999999),... +'z_min_error_lower',double(-9e+40),... +'z_min_error_upper',double(-9e+40),... +'z_square_average',double(-9e+40),... +'z_square_average_error_index',int32(-999999999),... +'z_square_average_error_lower',double(-9e+40),... +'z_square_average_error_upper',double(-9e+40)) +}},... +'temperature',double([]),... +'temperature_error_index',int32(-999999999),... +'temperature_error_lower',double([]),... +'temperature_error_upper',double([]),... +'velocity',struct(... +'diamagnetic',double([]),... +'diamagnetic_error_index',int32(-999999999),... +'diamagnetic_error_lower',double([]),... +'diamagnetic_error_upper',double([]),... +'parallel',double([]),... +'parallel_error_index',int32(-999999999),... +'parallel_error_lower',double([]),... +'parallel_error_upper',double([]),... +'poloidal',double([]),... +'poloidal_error_index',int32(-999999999),... +'poloidal_error_lower',double([]),... +'poloidal_error_upper',double([]),... +'radial',double([]),... +'radial_error_index',int32(-999999999),... +'radial_error_lower',double([]),... +'radial_error_upper',double([]),... +'toroidal',double([]),... +'toroidal_error_index',int32(-999999999),... +'toroidal_error_lower',double([]),... +'toroidal_error_upper',double([])),... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... +'momentum_tor',double([]),... +'momentum_tor_error_index',int32(-999999999),... +'momentum_tor_error_lower',double([]),... +'momentum_tor_error_upper',double([]),... +'n_i_thermal_total',double([]),... +'n_i_thermal_total_error_index',int32(-999999999),... +'n_i_thermal_total_error_lower',double([]),... +'n_i_thermal_total_error_upper',double([]),... +'n_i_total_over_n_e',double([]),... +'n_i_total_over_n_e_error_index',int32(-999999999),... +'n_i_total_over_n_e_error_lower',double([]),... +'n_i_total_over_n_e_error_upper',double([]),... +'pressure_ion_total',double([]),... +'pressure_ion_total_error_index',int32(-999999999),... +'pressure_ion_total_error_lower',double([]),... +'pressure_ion_total_error_upper',double([]),... +'pressure_parallel',double([]),... +'pressure_parallel_error_index',int32(-999999999),... +'pressure_parallel_error_lower',double([]),... +'pressure_parallel_error_upper',double([]),... +'pressure_perpendicular',double([]),... +'pressure_perpendicular_error_index',int32(-999999999),... +'pressure_perpendicular_error_lower',double([]),... +'pressure_perpendicular_error_upper',double([]),... +'pressure_thermal',double([]),... +'pressure_thermal_error_index',int32(-999999999),... +'pressure_thermal_error_lower',double([]),... +'pressure_thermal_error_upper',double([]),... +'t_i_average',double([]),... +'t_i_average_error_index',int32(-999999999),... +'t_i_average_error_lower',double([]),... +'t_i_average_error_upper',double([]),... +'time',double(-9e+40),... +'zeff',double([]),... +'zeff_error_index',int32(-999999999),... +'zeff_error_lower',double([]),... +'zeff_error_upper',double([])) +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m index 215732c9ae5e74c6c7397b924d17ef609214d048..289969544bf092ad33e2cf0893adf8c60a7c52b4 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m @@ -1,19 +1,23 @@ function S = ids_empty_core_sources % function S = ids_empty_core_sources % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -61,7 +110,7 @@ struct(... 'total_ion_power_error_index',int32(-999999999),... 'total_ion_power_error_lower',double(-9e+40),... 'total_ion_power_error_upper',double(-9e+40)) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -162,7 +211,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',double([]),... 'energy_decomposed',struct(... 'explicit_part',double([]),... @@ -269,12 +318,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'j_parallel',double([]),... 'j_parallel_error_index',int32(-999999999),... 'j_parallel_error_lower',double([]),... @@ -302,7 +351,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',double([]),... 'energy_error_index',int32(-999999999),... 'energy_error_lower',double([]),... @@ -334,8 +383,8 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'time',double(-9e+40),... 'torque_tor_inside',double([]),... 'torque_tor_inside_error_index',int32(-999999999),... @@ -358,7 +407,7 @@ struct(... 'total_ion_power_inside_error_index',int32(-999999999),... 'total_ion_power_inside_error_lower',double([]),... 'total_ion_power_inside_error_upper',double([])) -;}},... +}},... 'species',struct(... 'ion',struct(... 'element',{{struct(... @@ -375,7 +424,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -412,7 +461,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -430,7 +479,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''))) -;}},... +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m index 89cc177e463082cba685a35d8e38800e9fc8b8e3..6de9300c5543b0e3170346fcda0da946f65d2a27 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m @@ -1,19 +1,23 @@ function S = ids_empty_core_transport % function S = ids_empty_core_transport % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -32,6 +81,7 @@ struct(... 'model',{{struct(... 'code',struct(... 'commit','',... +'description','',... 'name','',... 'output_flag',struct(... 'data',int32([]),... @@ -210,7 +260,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',struct(... 'd',double([]),... 'd_error_index',int32(-999999999),... @@ -459,12 +509,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'momentum_tor',struct(... 'd',double([]),... 'd_error_index',int32(-999999999),... @@ -493,7 +543,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',struct(... 'd',double([]),... 'd_error_index',int32(-999999999),... @@ -557,8 +607,8 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'time',double(-9e+40),... 'total_ion_energy',struct(... 'd',double([]),... @@ -573,8 +623,8 @@ struct(... 'v_error_index',int32(-999999999),... 'v_error_lower',double([]),... 'v_error_upper',double([]))) -;}}) -;}},... +}}) +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m b/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m index 5d34061d0827219f985dfc76390dc55ff549b6f3..feda5390f6c596e61928f044cd623409b3c26bc1 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m @@ -1,19 +1,23 @@ function S = ids_empty_cryostat % function S = ids_empty_cryostat % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -91,10 +95,10 @@ struct(... 'resistivity_error_index',int32(-999999999),... 'resistivity_error_lower',double(-9e+40),... 'resistivity_error_upper',double(-9e+40)) -;}},... +}},... 'identifier','',... 'name','') -;}}),... +}}),... 'thermal_shield',struct(... 'type',struct(... 'description','',... @@ -166,15 +170,60 @@ struct(... 'resistivity_error_index',int32(-999999999),... 'resistivity_error_lower',double(-9e+40),... 'resistivity_error_upper',double(-9e+40)) -;}},... +}},... 'identifier','',... 'name','') -;}})) -;}},... +}})) +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m index 1d5e7efbd9381a871ce99bd8374f0d955b629542..2fd620c26f75c2288aced30a9541df66956af6dc 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m @@ -1,9 +1,11 @@ function S = ids_empty_dataset_description % function S = ids_empty_dataset_description % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'data_entry',struct(... 'machine','',... @@ -16,6 +18,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m index 1f3b80274ec082e90904fc0c46f0f4dc3a4acfe9..9cfe89fcdd866a921747fd6d53525c9272aa2916 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m @@ -1,15 +1,62 @@ function S = ids_empty_dataset_fair % function S = ids_empty_dataset_fair % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'identifier','',... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m b/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m index 29b3267876cbf9a31b79431e469bd31f1ff8ad64..c76ee1a8ecbdb24ca1c61f4a54deb0a98c52eaec 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m @@ -1,19 +1,23 @@ function S = ids_empty_disruption % function S = ids_empty_disruption % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -105,13 +109,58 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -169,7 +218,7 @@ struct(... 'power_density_radiative_losses_error_lower',double([]),... 'power_density_radiative_losses_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m index d3759106fb5c951a97428fb11751ae1131bb0561..5c8d20017b3c0f40f56a2eb8441e662155287cea 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m @@ -1,19 +1,23 @@ function S = ids_empty_distribution_sources % function S = ids_empty_distribution_sources % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -56,15 +105,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -82,11 +131,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -98,12 +148,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -112,9 +170,9 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'particles',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -126,9 +184,9 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'global_quantities',{{struct(... 'particles',double(-9e+40),... 'particles_error_index',int32(-999999999),... @@ -156,24 +214,44 @@ struct(... 'torque_tor_error_index',int32(-999999999),... 'torque_tor_error_lower',double(-9e+40),... 'torque_tor_error_upper',double(-9e+40)) -;}},... +}},... 'gyro_type',int32(-999999999),... 'markers',{{struct(... 'coordinate_identifier',{{struct(... 'description','',... 'index',int32(-999999999),... 'name','') -;}},... +}},... +'orbit_integrals',struct(... +'bounce_harmonics',int32([]),... +'expressions',{{}},... +'m_pol',int32([]),... +'n_tor',int32([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... +'orbit_integrals_instant',struct(... +'expressions',{{}},... +'time_orbit',double([]),... +'time_orbit_error_index',int32(-999999999),... +'time_orbit_error_lower',double([]),... +'time_orbit_error_upper',double([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... 'positions',double([]),... 'positions_error_index',int32(-999999999),... 'positions_error_lower',double([]),... 'positions_error_upper',double([]),... 'time',double(-9e+40),... +'toroidal_mode',int32(-999999999),... 'weights',double([]),... 'weights_error_index',int32(-999999999),... 'weights_error_lower',double([]),... 'weights_error_upper',double([])) -;}},... +}},... 'process',{{struct(... 'nbi_beamlets_group',int32(-999999999),... 'nbi_energy',struct(... @@ -189,7 +267,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'profiles_1d',{{struct(... 'energy',double([]),... 'energy_error_index',int32(-999999999),... @@ -241,7 +319,7 @@ struct(... 'particles_error_lower',double([]),... 'particles_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'species',struct(... 'ion',struct(... 'element',{{struct(... @@ -258,7 +336,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -295,7 +373,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -313,7 +391,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''))) -;}},... +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m b/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m index c63a4e154915716c16ef7c8421f973dd53237e62..ad1c9761b606f7c1d2979d6a72da4c66271177c0 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m @@ -1,19 +1,23 @@ function S = ids_empty_distributions % function S = ids_empty_distributions % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -33,8 +37,22 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... +'expansion_fd3v',{{struct(... +'grid_subset',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}) +}},... 'grid',struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -50,15 +68,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -76,11 +94,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -92,12 +111,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -106,15 +133,15 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... 'temperature_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'global_quantities',{{struct(... 'collisions',struct(... 'electrons',struct(... @@ -149,7 +176,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -193,7 +220,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double(-9e+40),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double(-9e+40),... @@ -206,7 +233,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_tor',double(-9e+40),... 'current_tor_error_index',int32(-999999999),... 'current_tor_error_lower',double(-9e+40),... @@ -251,7 +278,7 @@ struct(... 'torque_tor_error_index',int32(-999999999),... 'torque_tor_error_lower',double(-9e+40),... 'torque_tor_error_upper',double(-9e+40)) -;}},... +}},... 'thermalisation',struct(... 'particles',double(-9e+40),... 'particles_error_index',int32(-999999999),... @@ -270,7 +297,7 @@ struct(... 'torque_tor_j_radial_error_index',int32(-999999999),... 'torque_tor_j_radial_error_lower',double(-9e+40),... 'torque_tor_j_radial_error_upper',double(-9e+40)) -;}},... +}},... 'gyro_type',int32(-999999999),... 'is_delta_f',int32(-999999999),... 'markers',{{struct(... @@ -278,17 +305,37 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','') -;}},... +}},... +'orbit_integrals',struct(... +'bounce_harmonics',int32([]),... +'expressions',{{}},... +'m_pol',int32([]),... +'n_tor',int32([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... +'orbit_integrals_instant',struct(... +'expressions',{{}},... +'time_orbit',double([]),... +'time_orbit_error_index',int32(-999999999),... +'time_orbit_error_lower',double([]),... +'time_orbit_error_upper',double([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... 'positions',double([]),... 'positions_error_index',int32(-999999999),... 'positions_error_lower',double([]),... 'positions_error_upper',double([]),... 'time',double(-9e+40),... +'toroidal_mode',int32(-999999999),... 'weights',double([]),... 'weights_error_index',int32(-999999999),... 'weights_error_lower',double([]),... 'weights_error_upper',double([])) -;}},... +}},... 'process',{{struct(... 'nbi_beamlets_group',int32(-999999999),... 'nbi_energy',struct(... @@ -304,7 +351,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'profiles_1d',{{struct(... 'co_passing',struct(... 'collisions',struct(... @@ -340,7 +387,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -384,7 +431,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -397,7 +444,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -446,7 +493,7 @@ struct(... 'particles_error_index',int32(-999999999),... 'particles_error_lower',double([]),... 'particles_error_upper',double([])) -;}},... +}},... 'torque_tor_j_radial',double([]),... 'torque_tor_j_radial_error_index',int32(-999999999),... 'torque_tor_j_radial_error_lower',double([]),... @@ -484,7 +531,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -528,7 +575,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -541,7 +588,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'counter_passing',struct(... 'collisions',struct(... 'electrons',struct(... @@ -576,7 +623,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -620,7 +667,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -633,7 +680,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -682,7 +729,7 @@ struct(... 'particles_error_index',int32(-999999999),... 'particles_error_lower',double([]),... 'particles_error_upper',double([])) -;}},... +}},... 'torque_tor_j_radial',double([]),... 'torque_tor_j_radial_error_index',int32(-999999999),... 'torque_tor_j_radial_error_lower',double([]),... @@ -781,7 +828,7 @@ struct(... 'particles_error_index',int32(-999999999),... 'particles_error_lower',double([]),... 'particles_error_upper',double([])) -;}},... +}},... 'thermalisation',struct(... 'energy',double([]),... 'energy_error_index',int32(-999999999),... @@ -834,7 +881,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -878,7 +925,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -891,7 +938,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -940,12 +987,12 @@ struct(... 'particles_error_index',int32(-999999999),... 'particles_error_lower',double([]),... 'particles_error_upper',double([])) -;}},... +}},... 'torque_tor_j_radial',double([]),... 'torque_tor_j_radial_error_index',int32(-999999999),... 'torque_tor_j_radial_error_lower',double([]),... 'torque_tor_j_radial_error_upper',double([]))) -;}},... +}},... 'profiles_2d',{{struct(... 'co_passing',struct(... 'collisions',struct(... @@ -981,7 +1028,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -1025,7 +1072,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -1038,7 +1085,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -1104,7 +1151,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -1148,7 +1195,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -1161,7 +1208,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'counter_passing',struct(... 'collisions',struct(... 'electrons',struct(... @@ -1196,7 +1243,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -1240,7 +1287,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -1253,7 +1300,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -1394,7 +1441,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -1438,7 +1485,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'torque_fast_tor',double([]),... 'torque_fast_tor_error_index',int32(-999999999),... 'torque_fast_tor_error_lower',double([]),... @@ -1451,7 +1498,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}}),... +}}),... 'current_fast_tor',double([]),... 'current_fast_tor_error_index',int32(-999999999),... 'current_fast_tor_error_lower',double([]),... @@ -1484,7 +1531,7 @@ struct(... 'torque_tor_j_radial_error_index',int32(-999999999),... 'torque_tor_j_radial_error_lower',double([]),... 'torque_tor_j_radial_error_upper',double([]))) -;}},... +}},... 'species',struct(... 'ion',struct(... 'element',{{struct(... @@ -1501,7 +1548,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -1538,7 +1585,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -1563,12 +1610,57 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}}) -;}},... +}}) +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m b/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m index 0ca55b0d64c7d9a7d2be28293df3a759c0e9dce6..9189279bff29504aeb5dbd1b2ff9aaf2cd66a0c3 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m @@ -1,25 +1,35 @@ function S = ids_empty_divertors % function S = ids_empty_divertors % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... 'repository','',... 'version',''),... 'divertor',{{struct(... +'current_incident',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'identifier','',... 'name','',... 'particle_flux_recycled_total',struct(... @@ -83,6 +93,12 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'target',{{struct(... +'current_incident',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'extension_r',double(-9e+40),... 'extension_r_error_index',int32(-999999999),... 'extension_r_error_lower',double(-9e+40),... @@ -98,9 +114,6 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'heat_flux_steady_limit_max',double(-9e+40),... -'heat_flux_steady_limit_max_error_index',int32(-999999999),... -'heat_flux_steady_limit_max_error_lower',double(-9e+40),... -'heat_flux_steady_limit_max_error_upper',double(-9e+40),... 'identifier','',... 'name','',... 'power_black_body',struct(... @@ -170,13 +183,35 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 't_e_target_sputtering_limit_max',double(-9e+40),... -'t_e_target_sputtering_limit_max_error_index',int32(-999999999),... -'t_e_target_sputtering_limit_max_error_lower',double(-9e+40),... -'t_e_target_sputtering_limit_max_error_upper',double(-9e+40),... 'temperature_limit_max',double(-9e+40),... -'temperature_limit_max_error_index',int32(-999999999),... -'temperature_limit_max_error_lower',double(-9e+40),... -'temperature_limit_max_error_upper',double(-9e+40),... +'tile',{{struct(... +'current_incident',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'identifier','',... +'name','',... +'shunt_index',int32(-999999999),... +'surface_area',double(-9e+40),... +'surface_area_error_index',int32(-999999999),... +'surface_area_error_lower',double(-9e+40),... +'surface_area_error_upper',double(-9e+40),... +'surface_outline',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([]))) +}},... 'tilt_angle_pol',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -201,33 +236,78 @@ struct(... 't_e_target_error_lower',double(-9e+40),... 't_e_target_error_upper',double(-9e+40),... 'time',double(-9e+40)) -;}},... +}},... 'wetted_area',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'wetted_area',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... -'poloidal_sol_current',{{struct(... -'identifier','',... -'name','') -;}},... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m index 426542d4346b825c2d9cee0be9275405d127e80f..2c0d2f7b237ae9dcabff3b7403b64a755b098382 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m @@ -1,62 +1,13 @@ function S = ids_empty_ec_launchers % function S = ids_empty_ec_launchers % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... -'code',struct(... -'commit','',... -'library',{{struct(... -'commit','',... -'name','',... -'parameters','',... -'repository','',... -'version','') -;}},... -'name','',... -'output_flag',int32([]),... -'parameters','',... -'repository','',... -'version',''),... -'ids_properties',struct(... -'comment','',... -'creation_date','',... -'homogeneous_time',int32(-999999999),... -'provider','',... -'source','',... -'version_put',struct(... -'access_layer','',... -'access_layer_language','',... -'data_dictionary','')),... -'launcher',{{struct(... -'beam',struct(... -'phase',struct(... -'angle',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'curvature',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([]))),... -'spot',struct(... -'angle',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'size',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])))),... +'beam',{{struct(... 'frequency',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -73,32 +24,121 @@ struct(... 'r_error_index',int32(-999999999),... 'r_error_lower',double([]),... 'r_error_upper',double([]),... -'time',double([]),... +'r_limit_max',double(-9e+40),... +'r_limit_min',double(-9e+40),... 'z',double([]),... 'z_error_index',int32(-999999999),... 'z_error_lower',double([]),... 'z_error_upper',double([])),... -'mode',struct(... -'data',int32([]),... -'time',double([])),... +'mode',int32(-999999999),... 'name','',... +'phase',struct(... +'angle',double([]),... +'angle_error_index',int32(-999999999),... +'angle_error_lower',double([]),... +'angle_error_upper',double([]),... +'curvature',double([]),... +'curvature_error_index',int32(-999999999),... +'curvature_error_lower',double([]),... +'curvature_error_upper',double([])),... 'power_launched',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... -'steering_angle_pol',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'steering_angle_tor',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([]))) -;}},... +'spot',struct(... +'angle',double([]),... +'angle_error_index',int32(-999999999),... +'angle_error_lower',double([]),... +'angle_error_upper',double([]),... +'size',double([]),... +'size_error_index',int32(-999999999),... +'size_error_lower',double([]),... +'size_error_upper',double([])),... +'steering_angle_pol',double([]),... +'steering_angle_pol_error_index',int32(-999999999),... +'steering_angle_pol_error_lower',double([]),... +'steering_angle_pol_error_upper',double([]),... +'steering_angle_tor',double([]),... +'steering_angle_tor_error_index',int32(-999999999),... +'steering_angle_tor_error_lower',double([]),... +'steering_angle_tor_error_upper',double([]),... +'time',double([])) +}},... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m index 628fc490da9825c4b8fe8e1bbfd84c13cf141bac..5f19a5bfa5e35711454aed30aebd6b0847a08994 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m @@ -1,11 +1,40 @@ function S = ids_empty_ece % function S = ids_empty_ece % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... +'beam',struct(... +'phase',struct(... +'angle',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'curvature',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]))),... +'spot',struct(... +'angle',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'size',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])))),... 'delta_position_suprathermal',struct(... 'phi',double([]),... 'phi_error_index',int32(-999999999),... @@ -46,6 +75,10 @@ struct(... 'validity',int32(-999999999),... 'validity_timed',int32([])),... 'identifier','',... +'if_bandwidth',double(-9e+40),... +'if_bandwidth_error_index',int32(-999999999),... +'if_bandwidth_error_lower',double(-9e+40),... +'if_bandwidth_error_upper',double(-9e+40),... 'name','',... 'optical_depth',struct(... 'data',double([]),... @@ -95,16 +128,18 @@ struct(... 'validity',int32(-999999999),... 'validity_timed',int32([])),... 'time',double([])) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -114,12 +149,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'line_of_sight',struct(... 'first_point',struct(... 'phi',double(-9e+40),... @@ -147,6 +231,68 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))),... +'polarizer',{{struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'polarization_angle',double(-9e+40),... +'polarization_angle_error_index',int32(-999999999),... +'polarization_angle_error_lower',double(-9e+40),... +'polarization_angle_error_upper',double(-9e+40),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))) +}},... 'psi_normalization',struct(... 'psi_boundary',double([]),... 'psi_boundary_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m index 1deb44bc3bb5e14ba6ea20e56522011dae498a19..c1ad9edb801e2692805b44ff8259035efb27884b 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m @@ -1,25 +1,41 @@ function S = ids_empty_edge_profiles % function S = ids_empty_edge_profiles % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... 'repository','',... 'version',''),... 'ggd',{{struct(... +'a_field_parallel',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'e_field',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -47,6 +63,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -62,8 +86,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'electrons',struct(... 'density',{{struct(... 'coefficients',double([]),... @@ -76,7 +108,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'density_fast',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -88,7 +120,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'distribution_function',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -100,7 +132,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -112,7 +144,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -124,7 +156,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -136,7 +168,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -148,7 +180,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -176,6 +208,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -191,8 +231,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}}),... 'ion',{{struct(... 'density',{{struct(... 'coefficients',double([]),... @@ -205,7 +253,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'density_fast',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -217,7 +265,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'element',{{struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -232,7 +280,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy_density_kinetic',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -244,7 +292,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -259,7 +307,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -271,7 +319,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -283,7 +331,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'state',{{struct(... 'density',{{struct(... 'coefficients',double([]),... @@ -296,7 +344,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'density_fast',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -308,7 +356,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'distribution_function',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -320,7 +368,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'electron_configuration','',... 'energy_density_kinetic',{{struct(... 'coefficients',double([]),... @@ -333,7 +381,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'ionisation_potential',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -345,7 +393,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'pressure',{{struct(... 'coefficients',double([]),... @@ -358,7 +406,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -370,7 +418,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -382,7 +430,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -394,7 +442,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -422,6 +470,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -437,8 +493,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'velocity_diamagnetic',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -466,6 +530,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -481,8 +553,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'velocity_exb',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -510,6 +590,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -525,8 +613,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... @@ -543,7 +639,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'z_max',double(-9e+40),... 'z_max_error_index',int32(-999999999),... 'z_max_error_lower',double(-9e+40),... @@ -563,8 +659,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -576,7 +672,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -604,6 +700,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -619,13 +723,21 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'j_anomalous',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -653,6 +765,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -668,8 +788,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_diamagnetic',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -697,6 +825,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -712,8 +848,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_heat_viscosity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -741,6 +885,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -756,8 +908,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_inertial',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -785,6 +945,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -800,8 +968,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_ion_neutral_friction',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -829,6 +1005,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -844,8 +1028,28 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'j_parallel',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'j_parallel_viscosity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -873,6 +1077,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -888,8 +1100,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_perpendicular_viscosity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -917,6 +1137,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -932,8 +1160,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'j_pfirsch_schlueter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -961,6 +1197,74 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'radial',double([]),... +'radial_coefficients',double([]),... +'radial_coefficients_error_index',int32(-999999999),... +'radial_coefficients_error_lower',double([]),... +'radial_coefficients_error_upper',double([]),... +'radial_error_index',int32(-999999999),... +'radial_error_lower',double([]),... +'radial_error_upper',double([]),... +'toroidal',double([]),... +'toroidal_coefficients',double([]),... +'toroidal_coefficients_error_index',int32(-999999999),... +'toroidal_coefficients_error_lower',double([]),... +'toroidal_coefficients_error_upper',double([]),... +'toroidal_error_index',int32(-999999999),... +'toroidal_error_lower',double([]),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'j_total',{{struct(... +'diamagnetic',double([]),... +'diamagnetic_coefficients',double([]),... +'diamagnetic_coefficients_error_index',int32(-999999999),... +'diamagnetic_coefficients_error_lower',double([]),... +'diamagnetic_coefficients_error_upper',double([]),... +'diamagnetic_error_index',int32(-999999999),... +'diamagnetic_error_lower',double([]),... +'diamagnetic_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'parallel',double([]),... +'parallel_coefficients',double([]),... +'parallel_coefficients_error_index',int32(-999999999),... +'parallel_coefficients_error_lower',double([]),... +'parallel_coefficients_error_upper',double([]),... +'parallel_error_index',int32(-999999999),... +'parallel_error_lower',double([]),... +'parallel_error_upper',double([]),... +'poloidal',double([]),... +'poloidal_coefficients',double([]),... +'poloidal_coefficients_error_index',int32(-999999999),... +'poloidal_coefficients_error_lower',double([]),... +'poloidal_coefficients_error_upper',double([]),... +'poloidal_error_index',int32(-999999999),... +'poloidal_error_lower',double([]),... +'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -976,8 +1280,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'n_i_total_over_n_e',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -989,7 +1301,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'neutral',{{struct(... 'density',{{struct(... 'coefficients',double([]),... @@ -1002,7 +1314,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'density_fast',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1014,7 +1326,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'element',{{struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -1029,7 +1341,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy_density_kinetic',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1041,7 +1353,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'multiple_states_flag',int32(-999999999),... @@ -1056,7 +1368,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1068,7 +1380,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1080,7 +1392,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'state',{{struct(... 'density',{{struct(... 'coefficients',double([]),... @@ -1093,7 +1405,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'density_fast',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1105,7 +1417,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'distribution_function',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1117,7 +1429,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'electron_configuration','',... 'energy_density_kinetic',{{struct(... 'coefficients',double([]),... @@ -1130,7 +1442,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'neutral_type',struct(... 'description','',... @@ -1147,7 +1459,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1159,7 +1471,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_fast_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1171,7 +1483,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1183,7 +1495,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1211,6 +1523,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1226,8 +1546,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'velocity_diamagnetic',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1255,6 +1583,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1270,8 +1606,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'velocity_exb',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1299,6 +1643,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1314,14 +1666,22 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}},... +}},... 'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1333,7 +1693,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1361,6 +1721,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1376,9 +1744,17 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}}) +}},... 'phi_potential',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1390,7 +1766,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1402,7 +1778,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1414,7 +1790,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'pressure_thermal',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1426,7 +1802,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 't_i_average',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1438,7 +1814,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40),... 'zeff',{{struct(... 'coefficients',double([]),... @@ -1451,8 +1827,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'ggd_fast',{{struct(... 'electrons',struct(... 'density',{{struct(... @@ -1462,7 +1838,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'temperature',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1470,7 +1846,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}}),... +}}),... 'energy_thermal',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1478,7 +1854,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'ion',{{struct(... 'content',{{struct(... 'grid_index',int32(-999999999),... @@ -1487,7 +1863,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'density',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1495,7 +1871,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'element',{{struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -1510,7 +1886,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'neutral_index',int32(-999999999),... 'temperature',{{struct(... @@ -1520,14 +1896,14 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'grid_ggd',{{struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -1543,15 +1919,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -1569,11 +1945,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -1585,12 +1962,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -1599,21 +1984,70 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'profiles_1d',{{struct(... 'conductivity_parallel',double([]),... 'conductivity_parallel_error_index',int32(-999999999),... @@ -1897,7 +2331,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -2054,7 +2488,7 @@ struct(... 'z_square_average_error_index',int32(-999999999),... 'z_square_average_error_lower',double(-9e+40),... 'z_square_average_error_upper',double(-9e+40)) -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -2141,7 +2575,7 @@ struct(... 'z_ion_square_1d_error_index',int32(-999999999),... 'z_ion_square_1d_error_lower',double([]),... 'z_ion_square_1d_error_upper',double([])) -;}},... +}},... 'j_bootstrap',double([]),... 'j_bootstrap_error_index',int32(-999999999),... 'j_bootstrap_error_lower',double([]),... @@ -2205,7 +2639,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'multiple_states_flag',int32(-999999999),... @@ -2290,7 +2724,7 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}},... +}},... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... @@ -2316,7 +2750,7 @@ struct(... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... 'toroidal_error_upper',double([]))) -;}},... +}},... 'phi_potential',double([]),... 'phi_potential_error_index',int32(-999999999),... 'phi_potential_error_lower',double([]),... @@ -2434,7 +2868,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double([]),... 'weight_error_upper',double([]))) -;}},... +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m index 2fcfba584f07cebf6fc29c1e1bae0d2deb590ea0..b5cf507cafe070ab5d60de3946a06267ef4fa12a 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m @@ -1,19 +1,23 @@ function S = ids_empty_edge_sources % function S = ids_empty_edge_sources % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -34,15 +38,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -60,11 +64,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -76,12 +81,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -90,21 +103,70 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'source',{{struct(... 'ggd',{{struct(... 'current',{{struct(... @@ -118,7 +180,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'electrons',struct(... 'energy',{{struct(... 'coefficients',double([]),... @@ -131,7 +193,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'particles',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -143,7 +205,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'ion',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -159,7 +221,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -171,7 +233,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'momentum',{{struct(... 'diamagnetic',double([]),... @@ -200,6 +262,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -215,8 +285,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... 'particles',{{struct(... @@ -230,7 +308,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'state',{{struct(... 'electron_configuration','',... 'energy',{{struct(... @@ -244,7 +322,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'momentum',{{struct(... 'diamagnetic',double([]),... @@ -273,6 +351,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -288,8 +374,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'particles',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -301,7 +395,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... @@ -315,12 +409,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'momentum',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -348,6 +442,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -363,8 +465,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'neutral',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -380,7 +490,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -392,7 +502,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'momentum',{{struct(... @@ -422,6 +532,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -437,8 +555,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'multiple_states_flag',int32(-999999999),... 'particles',{{struct(... 'coefficients',double([]),... @@ -451,7 +577,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'state',{{struct(... 'electron_configuration','',... 'energy',{{struct(... @@ -465,7 +591,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'momentum',{{struct(... 'diamagnetic',double([]),... @@ -494,6 +620,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -509,8 +643,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'neutral_type',struct(... 'description','',... 'index',int32(-999999999),... @@ -526,14 +668,14 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'time',double(-9e+40),... 'total_ion_energy',{{struct(... 'coefficients',double([]),... @@ -546,8 +688,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'ggd_fast',{{struct(... 'ion',{{struct(... 'element',{{struct(... @@ -564,7 +706,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'neutral_index',int32(-999999999),... 'power',{{struct(... @@ -574,14 +716,14 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -602,7 +744,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -639,7 +781,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'state',struct(... 'electron_configuration','',... @@ -657,5 +799,5 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''))) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m index 0fa1614ab92d8c86110457f23ee4d0bfcb979653..48ce5d1d602a0cd7b30e3ae84ce77b51aa23103d 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m @@ -1,19 +1,23 @@ function S = ids_empty_edge_transport % function S = ids_empty_edge_transport % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -34,15 +38,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -60,11 +64,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -76,12 +81,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -90,24 +103,74 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'model',{{struct(... 'code',struct(... 'commit','',... +'description','',... 'name','',... 'output_flag',struct(... 'data',int32([]),... @@ -147,6 +210,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -162,8 +233,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'electrons',struct(... 'energy',struct(... 'd',{{struct(... @@ -177,7 +256,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -189,7 +292,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -201,7 +304,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -213,7 +340,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'particles',struct(... 'd',{{struct(... 'coefficients',double([]),... @@ -226,7 +377,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -238,7 +413,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -250,7 +425,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -262,7 +461,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}})),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}})),... 'ion',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -278,7 +501,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',struct(... 'd',{{struct(... 'coefficients',double([]),... @@ -291,7 +514,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -303,7 +550,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -315,7 +562,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -327,7 +598,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'label','',... 'momentum',struct(... 'd',{{struct(... @@ -357,6 +652,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -372,8 +675,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -401,6 +736,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -416,8 +759,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'flux_limiter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -445,6 +796,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -460,24 +819,56 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... -'v',{{struct(... -'diamagnetic',double([]),... -'diamagnetic_coefficients',double([]),... -'diamagnetic_coefficients_error_index',int32(-999999999),... -'diamagnetic_coefficients_error_lower',double([]),... -'diamagnetic_coefficients_error_upper',double([]),... -'diamagnetic_error_index',int32(-999999999),... -'diamagnetic_error_lower',double([]),... -'diamagnetic_error_upper',double([]),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... -'parallel',double([]),... -'parallel_coefficients',double([]),... -'parallel_coefficients_error_index',int32(-999999999),... -'parallel_coefficients_error_lower',double([]),... -'parallel_coefficients_error_upper',double([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v',{{struct(... +'diamagnetic',double([]),... +'diamagnetic_coefficients',double([]),... +'diamagnetic_coefficients_error_index',int32(-999999999),... +'diamagnetic_coefficients_error_lower',double([]),... +'diamagnetic_coefficients_error_upper',double([]),... +'diamagnetic_error_index',int32(-999999999),... +'diamagnetic_error_lower',double([]),... +'diamagnetic_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'parallel',double([]),... +'parallel_coefficients',double([]),... +'parallel_coefficients_error_index',int32(-999999999),... +'parallel_coefficients_error_lower',double([]),... +'parallel_coefficients_error_upper',double([]),... 'parallel_error_index',int32(-999999999),... 'parallel_error_lower',double([]),... 'parallel_error_upper',double([]),... @@ -489,6 +880,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -504,8 +903,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... 'particles',struct(... @@ -520,7 +951,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -532,7 +987,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -544,7 +999,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -556,7 +1035,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'state',{{struct(... 'electron_configuration','',... 'energy',struct(... @@ -571,7 +1074,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -583,7 +1110,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -595,7 +1122,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -607,7 +1158,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'label','',... 'momentum',struct(... 'd',{{struct(... @@ -637,6 +1212,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -652,8 +1235,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -681,6 +1296,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -696,8 +1319,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'flux_limiter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -725,6 +1356,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -740,8 +1379,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -769,6 +1440,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -784,8 +1463,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'particles',struct(... 'd',{{struct(... 'coefficients',double([]),... @@ -798,8 +1509,56 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'flux',{{struct(... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_limiter',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_pol',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -810,8 +1569,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'flux_limiter',{{struct(... +}},... +'flux_radial',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -822,7 +1581,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -834,7 +1593,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... @@ -848,12 +1631,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'momentum',struct(... 'd',{{struct(... 'diamagnetic',double([]),... @@ -882,6 +1665,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -897,8 +1688,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -926,6 +1749,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -941,8 +1772,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'flux_limiter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -970,6 +1809,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -985,8 +1832,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1014,6 +1893,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1029,8 +1916,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'neutral',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -1046,7 +1965,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'energy',struct(... 'd',{{struct(... 'coefficients',double([]),... @@ -1059,7 +1978,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1071,7 +2014,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1083,7 +2026,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1095,7 +2062,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'ion_index',int32(-999999999),... 'label','',... 'momentum',struct(... @@ -1126,6 +2117,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1141,8 +2140,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1170,6 +2201,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1185,8 +2224,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'flux_limiter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1214,6 +2261,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1229,8 +2284,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1258,6 +2345,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1273,8 +2368,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'multiple_states_flag',int32(-999999999),... 'particles',struct(... 'd',{{struct(... @@ -1288,8 +2415,68 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'flux',{{struct(... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_limiter',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -1300,8 +2487,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'flux_limiter',{{struct(... +}},... +'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -1312,8 +2499,20 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'v',{{struct(... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -1324,7 +2523,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'state',{{struct(... 'electron_configuration','',... 'energy',struct(... @@ -1339,7 +2538,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1351,7 +2574,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1363,7 +2586,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1375,7 +2622,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'label','',... 'momentum',struct(... 'd',{{struct(... @@ -1405,6 +2676,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1420,8 +2699,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1449,6 +2760,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1464,8 +2783,16 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... 'flux_limiter',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1493,6 +2820,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1508,8 +2843,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}},... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'diamagnetic',double([]),... 'diamagnetic_coefficients',double([]),... @@ -1537,6 +2904,14 @@ struct(... 'poloidal_error_index',int32(-999999999),... 'poloidal_error_lower',double([]),... 'poloidal_error_upper',double([]),... +'r',double([]),... +'r_coefficients',double([]),... +'r_coefficients_error_index',int32(-999999999),... +'r_coefficients_error_lower',double([]),... +'r_coefficients_error_upper',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'radial',double([]),... 'radial_coefficients',double([]),... 'radial_coefficients_error_index',int32(-999999999),... @@ -1552,8 +2927,40 @@ struct(... 'toroidal_coefficients_error_upper',double([]),... 'toroidal_error_index',int32(-999999999),... 'toroidal_error_lower',double([]),... -'toroidal_error_upper',double([])) -;}}),... +'toroidal_error_upper',double([]),... +'z',double([]),... +'z_coefficients',double([]),... +'z_coefficients_error_index',int32(-999999999),... +'z_coefficients_error_lower',double([]),... +'z_coefficients_error_upper',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])) +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'neutral_type',struct(... 'description','',... 'index',int32(-999999999),... @@ -1570,7 +2977,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1582,7 +3013,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1594,7 +3025,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1606,14 +3061,38 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'time',double(-9e+40),... 'total_ion_energy',struct(... 'd',{{struct(... @@ -1627,7 +3106,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'d_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'d_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'flux',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1639,7 +3142,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'flux_limiter',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1651,7 +3154,31 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'flux_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'flux_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'v',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1663,8 +3190,32 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}})) -;}},... +}},... +'v_pol',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'v_radial',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}})) +}},... 'ggd_fast',{{struct(... 'electrons',struct(... 'particle_flux_integrated',{{struct(... @@ -1674,7 +3225,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'power',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1682,7 +3233,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}}),... +}}),... 'energy_flux_max',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1690,7 +3241,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'ion',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -1706,7 +3257,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'neutral_index',int32(-999999999),... 'particle_flux_integrated',{{struct(... @@ -1716,12 +3267,12 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'neutral',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -1737,7 +3288,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'particle_flux_integrated',{{struct(... @@ -1747,8 +3298,8 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}}) -;}},... +}}) +}},... 'power',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1756,7 +3307,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'power_ion_total',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -1764,12 +3315,12 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m b/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m index 327d1f7639ec5dfdf92db990337b0b1dfb5f60fc..e40e66f31818eae71bc6a92247a119f5bb4abf55 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m @@ -1,20 +1,24 @@ function S = ids_empty_em_coupling % function S = ids_empty_em_coupling % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'active_coils',{{}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -38,6 +42,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m b/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m index 46541df6edc30b4042e84ec4717c987deda696ed..3e6e949fcde10e08ec0e4099b17e64782404c87a 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m @@ -1,19 +1,23 @@ function S = ids_empty_equilibrium % function S = ids_empty_equilibrium % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -35,15 +39,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -61,11 +65,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -77,12 +82,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -91,16 +104,61 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}) -;}},... +}}) +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -199,7 +257,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'triangularity',double(-9e+40),... 'triangularity_error_index',int32(-999999999),... 'triangularity_error_lower',double(-9e+40),... @@ -222,7 +280,45 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}}),... +}}),... +'boundary_secondary_separatrix',struct(... +'distance_inner_outer',double(-9e+40),... +'distance_inner_outer_error_index',int32(-999999999),... +'distance_inner_outer_error_lower',double(-9e+40),... +'distance_inner_outer_error_upper',double(-9e+40),... +'outline',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... +'strike_point',{{struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)) +}},... +'x_point',{{struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)) +}}),... 'boundary_separatrix',struct(... 'active_limiter_point',struct(... 'r',double(-9e+40),... @@ -233,6 +329,28 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)),... +'closest_wall_point',struct(... +'distance',double(-9e+40),... +'distance_error_index',int32(-999999999),... +'distance_error_lower',double(-9e+40),... +'distance_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'dr_dz_zero_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'elongation',double(-9e+40),... 'elongation_error_index',int32(-999999999),... 'elongation_error_lower',double(-9e+40),... @@ -264,7 +382,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'geometric_axis',struct(... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... @@ -316,15 +434,27 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'triangularity',double(-9e+40),... 'triangularity_error_index',int32(-999999999),... 'triangularity_error_lower',double(-9e+40),... 'triangularity_error_upper',double(-9e+40),... +'triangularity_inner',double(-9e+40),... +'triangularity_inner_error_index',int32(-999999999),... +'triangularity_inner_error_lower',double(-9e+40),... +'triangularity_inner_error_upper',double(-9e+40),... 'triangularity_lower',double(-9e+40),... 'triangularity_lower_error_index',int32(-999999999),... 'triangularity_lower_error_lower',double(-9e+40),... 'triangularity_lower_error_upper',double(-9e+40),... +'triangularity_minor',double(-9e+40),... +'triangularity_minor_error_index',int32(-999999999),... +'triangularity_minor_error_lower',double(-9e+40),... +'triangularity_minor_error_upper',double(-9e+40),... +'triangularity_outer',double(-9e+40),... +'triangularity_outer_error_index',int32(-999999999),... +'triangularity_outer_error_lower',double(-9e+40),... +'triangularity_outer_error_upper',double(-9e+40),... 'triangularity_upper',double(-9e+40),... 'triangularity_upper_error_index',int32(-999999999),... 'triangularity_upper_error_lower',double(-9e+40),... @@ -339,7 +469,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}}),... +}}),... 'constraints',struct(... 'b_field_tor_vacuum_r',struct(... 'chi_squared',double(-9e+40),... @@ -387,7 +517,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'diamagnetic_flux',struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -434,7 +564,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'flux_loop',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -458,7 +588,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'ip',struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -529,7 +659,52 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40))) -;}},... +}},... +'j_tor',{{struct(... +'chi_squared',double(-9e+40),... +'chi_squared_error_index',int32(-999999999),... +'chi_squared_error_lower',double(-9e+40),... +'chi_squared_error_upper',double(-9e+40),... +'exact',int32(-999999999),... +'measured',double(-9e+40),... +'measured_error_index',int32(-999999999),... +'measured_error_lower',double(-9e+40),... +'measured_error_upper',double(-9e+40),... +'position',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'rho_tor_norm',double(-9e+40),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double(-9e+40),... +'rho_tor_norm_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'reconstructed',double(-9e+40),... +'reconstructed_error_index',int32(-999999999),... +'reconstructed_error_lower',double(-9e+40),... +'reconstructed_error_upper',double(-9e+40),... +'source','',... +'time_measurement',double(-9e+40),... +'time_measurement_error_index',int32(-999999999),... +'time_measurement_error_lower',double(-9e+40),... +'time_measurement_error_upper',double(-9e+40),... +'weight',double(-9e+40),... +'weight_error_index',int32(-999999999),... +'weight_error_lower',double(-9e+40),... +'weight_error_upper',double(-9e+40)) +}},... 'mse_polarisation_angle',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -553,7 +728,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'n_e',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -564,6 +739,27 @@ struct(... 'measured_error_index',int32(-999999999),... 'measured_error_lower',double(-9e+40),... 'measured_error_upper',double(-9e+40),... +'position',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'rho_tor_norm',double(-9e+40),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double(-9e+40),... +'rho_tor_norm_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'reconstructed',double(-9e+40),... 'reconstructed_error_index',int32(-999999999),... 'reconstructed_error_lower',double(-9e+40),... @@ -577,7 +773,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'n_e_line',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -601,7 +797,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'pf_current',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -625,7 +821,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'pf_passive_current',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -649,7 +845,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'pressure',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -660,6 +856,27 @@ struct(... 'measured_error_index',int32(-999999999),... 'measured_error_lower',double(-9e+40),... 'measured_error_upper',double(-9e+40),... +'position',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'rho_tor_norm',double(-9e+40),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double(-9e+40),... +'rho_tor_norm_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'reconstructed',double(-9e+40),... 'reconstructed_error_index',int32(-999999999),... 'reconstructed_error_lower',double(-9e+40),... @@ -673,7 +890,52 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... +'pressure_rotational',{{struct(... +'chi_squared',double(-9e+40),... +'chi_squared_error_index',int32(-999999999),... +'chi_squared_error_lower',double(-9e+40),... +'chi_squared_error_upper',double(-9e+40),... +'exact',int32(-999999999),... +'measured',double(-9e+40),... +'measured_error_index',int32(-999999999),... +'measured_error_lower',double(-9e+40),... +'measured_error_upper',double(-9e+40),... +'position',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'rho_tor_norm',double(-9e+40),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double(-9e+40),... +'rho_tor_norm_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'reconstructed',double(-9e+40),... +'reconstructed_error_index',int32(-999999999),... +'reconstructed_error_lower',double(-9e+40),... +'reconstructed_error_upper',double(-9e+40),... +'source','',... +'time_measurement',double(-9e+40),... +'time_measurement_error_index',int32(-999999999),... +'time_measurement_error_lower',double(-9e+40),... +'time_measurement_error_upper',double(-9e+40),... +'weight',double(-9e+40),... +'weight_error_index',int32(-999999999),... +'weight_error_lower',double(-9e+40),... +'weight_error_upper',double(-9e+40)) +}},... 'q',{{struct(... 'chi_squared',double(-9e+40),... 'chi_squared_error_index',int32(-999999999),... @@ -689,10 +951,18 @@ struct(... 'phi_error_index',int32(-999999999),... 'phi_error_lower',double(-9e+40),... 'phi_error_upper',double(-9e+40),... +'psi',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double(-9e+40),... +'psi_error_upper',double(-9e+40),... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... 'r_error_lower',double(-9e+40),... 'r_error_upper',double(-9e+40),... +'rho_tor_norm',double(-9e+40),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double(-9e+40),... +'rho_tor_norm_error_upper',double(-9e+40),... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... @@ -710,7 +980,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'strike_point',{{struct(... 'chi_squared_r',double(-9e+40),... 'chi_squared_r_error_index',int32(-999999999),... @@ -748,7 +1018,7 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}},... +}},... 'x_point',{{struct(... 'chi_squared_r',double(-9e+40),... 'chi_squared_r_error_index',int32(-999999999),... @@ -786,8 +1056,16 @@ struct(... 'weight_error_index',int32(-999999999),... 'weight_error_lower',double(-9e+40),... 'weight_error_upper',double(-9e+40)) -;}}),... +}}),... 'convergence',struct(... +'grad_shafranov_deviation_expression',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'grad_shafranov_deviation_value',double(-9e+40),... +'grad_shafranov_deviation_value_error_index',int32(-999999999),... +'grad_shafranov_deviation_value_error_lower',double(-9e+40),... +'grad_shafranov_deviation_value_error_upper',double(-9e+40),... 'iterations_n',int32(-999999999)),... 'coordinate_system',struct(... 'g11_contravariant',double([]),... @@ -887,7 +1165,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -899,7 +1177,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -911,7 +1189,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'grid',struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -927,15 +1205,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -953,11 +1231,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -969,12 +1248,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -983,9 +1270,9 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'j_parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -997,7 +1284,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'j_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1009,7 +1296,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'phi',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1021,7 +1308,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'psi',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1033,7 +1320,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'r',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1045,7 +1332,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'theta',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1057,7 +1344,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -1069,8 +1356,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'global_quantities',struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... @@ -1088,6 +1375,19 @@ struct(... 'beta_tor_error_index',int32(-999999999),... 'beta_tor_error_lower',double(-9e+40),... 'beta_tor_error_upper',double(-9e+40),... +'current_centre',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'velocity_z',double(-9e+40),... +'velocity_z_error_index',int32(-999999999),... +'velocity_z_error_lower',double(-9e+40),... +'velocity_z_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'energy_mhd',double(-9e+40),... 'energy_mhd_error_index',int32(-999999999),... 'energy_mhd_error_lower',double(-9e+40),... @@ -1121,6 +1421,14 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)),... +'plasma_inductance',double(-9e+40),... +'plasma_inductance_error_index',int32(-999999999),... +'plasma_inductance_error_lower',double(-9e+40),... +'plasma_inductance_error_upper',double(-9e+40),... +'plasma_resistance',double(-9e+40),... +'plasma_resistance_error_index',int32(-999999999),... +'plasma_resistance_error_lower',double(-9e+40),... +'plasma_resistance_error_upper',double(-9e+40),... 'psi_axis',double(-9e+40),... 'psi_axis_error_index',int32(-999999999),... 'psi_axis_error_lower',double(-9e+40),... @@ -1129,6 +1437,10 @@ struct(... 'psi_boundary_error_index',int32(-999999999),... 'psi_boundary_error_lower',double(-9e+40),... 'psi_boundary_error_upper',double(-9e+40),... +'psi_external_average',double(-9e+40),... +'psi_external_average_error_index',int32(-999999999),... +'psi_external_average_error_lower',double(-9e+40),... +'psi_external_average_error_upper',double(-9e+40),... 'q_95',double(-9e+40),... 'q_95_error_index',int32(-999999999),... 'q_95_error_lower',double(-9e+40),... @@ -1150,6 +1462,10 @@ struct(... 'surface_error_index',int32(-999999999),... 'surface_error_lower',double(-9e+40),... 'surface_error_upper',double(-9e+40),... +'v_external',double(-9e+40),... +'v_external_error_index',int32(-999999999),... +'v_external_error_lower',double(-9e+40),... +'v_external_error_upper',double(-9e+40),... 'volume',double(-9e+40),... 'volume_error_index',int32(-999999999),... 'volume_error_lower',double(-9e+40),... @@ -1426,13 +1742,17 @@ struct(... 'theta_error_index',int32(-999999999),... 'theta_error_lower',double([]),... 'theta_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'z',double([]),... 'z_error_index',int32(-999999999),... 'z_error_lower',double([]),... 'z_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'vacuum_toroidal_field',struct(... 'b0',double([]),... 'b0_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m b/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m new file mode 100644 index 0000000000000000000000000000000000000000..09abb49ff17e3a7bc42e38bca9ce01a7006c9681 --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m @@ -0,0 +1,164 @@ +function S = ids_empty_focs +% function S = ids_empty_focs +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'b_field_z',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'beat_length',double(-9e+40),... +'beat_length_error_index',int32(-999999999),... +'beat_length_error_lower',double(-9e+40),... +'beat_length_error_upper',double(-9e+40),... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'current',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'id','',... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'name','',... +'outline',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'spun',double(-9e+40),... +'spun_error_index',int32(-999999999),... +'spun_error_lower',double(-9e+40),... +'spun_error_upper',double(-9e+40),... +'stokes_initial',struct(... +'s0',double(-9e+40),... +'s0_error_index',int32(-999999999),... +'s0_error_lower',double(-9e+40),... +'s0_error_upper',double(-9e+40),... +'s1',double(-9e+40),... +'s1_error_index',int32(-999999999),... +'s1_error_lower',double(-9e+40),... +'s1_error_upper',double(-9e+40),... +'s2',double(-9e+40),... +'s2_error_index',int32(-999999999),... +'s2_error_lower',double(-9e+40),... +'s2_error_upper',double(-9e+40),... +'s3',double(-9e+40),... +'s3_error_index',int32(-999999999),... +'s3_error_lower',double(-9e+40),... +'s3_error_upper',double(-9e+40)),... +'stokes_output',{{struct(... +'s0',double(-9e+40),... +'s0_error_index',int32(-999999999),... +'s0_error_lower',double(-9e+40),... +'s0_error_upper',double(-9e+40),... +'s1',double(-9e+40),... +'s1_error_index',int32(-999999999),... +'s1_error_lower',double(-9e+40),... +'s1_error_upper',double(-9e+40),... +'s2',double(-9e+40),... +'s2_error_index',int32(-999999999),... +'s2_error_lower',double(-9e+40),... +'s2_error_upper',double(-9e+40),... +'s3',double(-9e+40),... +'s3_error_index',int32(-999999999),... +'s3_error_lower',double(-9e+40),... +'s3_error_upper',double(-9e+40),... +'time',double(-9e+40)) +}},... +'time',double([]),... +'twist',double(-9e+40),... +'twist_error_index',int32(-999999999),... +'twist_error_lower',double(-9e+40),... +'twist_error_upper',double(-9e+40)); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m index 4e97e972abc313bb35748ea27cc906220715456e..670cb84c57fe45de5cfcb2b183bf631b879197d4 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m @@ -1,19 +1,23 @@ function S = ids_empty_gas_injection % function S = ids_empty_gas_injection % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,12 +27,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'pipe',{{struct(... 'exit_position',struct(... 'phi',double(-9e+40),... @@ -83,13 +136,16 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'fraction',double(-9e+40),... 'fraction_error_index',int32(-999999999),... 'fraction_error_lower',double(-9e+40),... 'fraction_error_upper',double(-9e+40),... 'label','') -;}},... +}},... +'valve_indices',int32([])) +}},... +'time',double([]),... 'valve',{{struct(... 'electron_rate',struct(... 'data',double([]),... @@ -113,6 +169,16 @@ struct(... 'flow_rate_min_error_upper',double(-9e+40),... 'identifier','',... 'name','',... +'pipe_indices',int32([]),... +'response_curve',struct(... +'flow_rate',double([]),... +'flow_rate_error_index',int32(-999999999),... +'flow_rate_error_lower',double([]),... +'flow_rate_error_upper',double([]),... +'voltage',double([]),... +'voltage_error_index',int32(-999999999),... +'voltage_error_lower',double([]),... +'voltage_error_upper',double([])),... 'species',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -128,13 +194,17 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'fraction',double(-9e+40),... 'fraction_error_index',int32(-999999999),... 'fraction_error_lower',double(-9e+40),... 'fraction_error_upper',double(-9e+40),... 'label','') -;}}) -;}}) -;}},... -'time',double([])); +}},... +'voltage',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]))) +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m index 340dac1ddc8676c07301e857ad4d36e05e06b072..bb9d237089ca9f6642bcacac9b2e946c19e287f2 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m @@ -1,19 +1,23 @@ function S = ids_empty_gas_pumping % function S = ids_empty_gas_pumping % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -43,7 +47,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'flow_rate',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -51,12 +55,57 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'label','') -;}}) -;}},... +}}) +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m index 19d696668f4197b65c3f1e14b401067446102087..a20b0b627359f2a48dff4ee7e8271f20175b18c1 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m @@ -1,19 +1,23 @@ function S = ids_empty_gyrokinetics % function S = ids_empty_gyrokinetics % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -33,6 +37,18 @@ struct(... 'dc_dr_minor_norm_error_index',int32(-999999999),... 'dc_dr_minor_norm_error_lower',double([]),... 'dc_dr_minor_norm_error_upper',double([]),... +'delongation_dr_minor_norm',double(-9e+40),... +'delongation_dr_minor_norm_error_index',int32(-999999999),... +'delongation_dr_minor_norm_error_lower',double(-9e+40),... +'delongation_dr_minor_norm_error_upper',double(-9e+40),... +'dgeometric_axis_r_dr_minor',double(-9e+40),... +'dgeometric_axis_r_dr_minor_error_index',int32(-999999999),... +'dgeometric_axis_r_dr_minor_error_lower',double(-9e+40),... +'dgeometric_axis_r_dr_minor_error_upper',double(-9e+40),... +'dgeometric_axis_z_dr_minor',double(-9e+40),... +'dgeometric_axis_z_dr_minor_error_index',int32(-999999999),... +'dgeometric_axis_z_dr_minor_error_lower',double(-9e+40),... +'dgeometric_axis_z_dr_minor_error_upper',double(-9e+40),... 'ds_dr_minor_norm',double([]),... 'ds_dr_minor_norm_error_index',int32(-999999999),... 'ds_dr_minor_norm_error_lower',double([]),... @@ -68,15 +84,7 @@ struct(... 'shape_coefficients_s',double([]),... 'shape_coefficients_s_error_index',int32(-999999999),... 'shape_coefficients_s_error_lower',double([]),... -'shape_coefficients_s_error_upper',double([]),... -'triangularity_lower',double(-9e+40),... -'triangularity_lower_error_index',int32(-999999999),... -'triangularity_lower_error_lower',double(-9e+40),... -'triangularity_lower_error_upper',double(-9e+40),... -'triangularity_upper',double(-9e+40),... -'triangularity_upper_error_index',int32(-999999999),... -'triangularity_upper_error_lower',double(-9e+40),... -'triangularity_upper_error_upper',double(-9e+40)),... +'shape_coefficients_s_error_upper',double([])),... 'fluxes_integrated_norm',{{struct(... 'energy_a_field_parallel',double(-9e+40),... 'energy_a_field_parallel_error_index',int32(-999999999),... @@ -126,11 +134,56 @@ struct(... 'particles_phi_potential_error_index',int32(-999999999),... 'particles_phi_potential_error_lower',double(-9e+40),... 'particles_phi_potential_error_upper',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -146,12 +199,28 @@ struct(... 'include_b_field_parallel',int32(-999999999),... 'include_centrifugal_effects',int32(-999999999),... 'include_full_curvature_drift',int32(-999999999),... -'initial_value_run',int32(-999999999),... 'non_linear_run',int32(-999999999),... 'time_interval_norm',double([]),... 'time_interval_norm_error_index',int32(-999999999),... 'time_interval_norm_error_lower',double([]),... 'time_interval_norm_error_upper',double([])),... +'normalizing_quantities',struct(... +'b_field_tor',double(-9e+40),... +'b_field_tor_error_index',int32(-999999999),... +'b_field_tor_error_lower',double(-9e+40),... +'b_field_tor_error_upper',double(-9e+40),... +'n_e',double(-9e+40),... +'n_e_error_index',int32(-999999999),... +'n_e_error_lower',double(-9e+40),... +'n_e_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'t_e',double(-9e+40),... +'t_e_error_index',int32(-999999999),... +'t_e_error_lower',double(-9e+40),... +'t_e_error_upper',double(-9e+40)),... 'species',{{struct(... 'charge_norm',double(-9e+40),... 'charge_norm_error_index',int32(-999999999),... @@ -181,7 +250,7 @@ struct(... 'velocity_tor_gradient_norm_error_index',int32(-999999999),... 'velocity_tor_gradient_norm_error_lower',double(-9e+40),... 'velocity_tor_gradient_norm_error_upper',double(-9e+40)) -;}},... +}},... 'species_all',struct(... 'beta_reference',double(-9e+40),... 'beta_reference_error_index',int32(-999999999),... @@ -206,7 +275,7 @@ struct(... 'tag',{{struct(... 'comment','',... 'name','') -;}},... +}},... 'time',double([]),... 'wavevector',{{struct(... 'binormal_component_norm',double(-9e+40),... @@ -214,14 +283,10 @@ struct(... 'binormal_component_norm_error_lower',double(-9e+40),... 'binormal_component_norm_error_upper',double(-9e+40),... 'eigenmode',{{struct(... -'a_field_parallel_perturbed_norm_imaginary',double([]),... -'a_field_parallel_perturbed_norm_imaginary_error_index',int32(-999999999),... -'a_field_parallel_perturbed_norm_imaginary_error_lower',double([]),... -'a_field_parallel_perturbed_norm_imaginary_error_upper',double([]),... -'a_field_parallel_perturbed_norm_real',double([]),... -'a_field_parallel_perturbed_norm_real_error_index',int32(-999999999),... -'a_field_parallel_perturbed_norm_real_error_lower',double([]),... -'a_field_parallel_perturbed_norm_real_error_upper',double([]),... +'a_field_parallel_perturbed_norm',double([]),... +'a_field_parallel_perturbed_norm_error_index',int32(-999999999),... +'a_field_parallel_perturbed_norm_error_lower',double([]),... +'a_field_parallel_perturbed_norm_error_upper',double([]),... 'a_field_parallel_perturbed_parity',double([]),... 'a_field_parallel_perturbed_parity_error_index',int32(-999999999),... 'a_field_parallel_perturbed_parity_error_lower',double([]),... @@ -230,14 +295,10 @@ struct(... 'a_field_parallel_perturbed_weight_error_index',int32(-999999999),... 'a_field_parallel_perturbed_weight_error_lower',double([]),... 'a_field_parallel_perturbed_weight_error_upper',double([]),... -'b_field_parallel_perturbed_norm_imaginary',double([]),... -'b_field_parallel_perturbed_norm_imaginary_error_index',int32(-999999999),... -'b_field_parallel_perturbed_norm_imaginary_error_lower',double([]),... -'b_field_parallel_perturbed_norm_imaginary_error_upper',double([]),... -'b_field_parallel_perturbed_norm_real',double([]),... -'b_field_parallel_perturbed_norm_real_error_index',int32(-999999999),... -'b_field_parallel_perturbed_norm_real_error_lower',double([]),... -'b_field_parallel_perturbed_norm_real_error_upper',double([]),... +'b_field_parallel_perturbed_norm',double([]),... +'b_field_parallel_perturbed_norm_error_index',int32(-999999999),... +'b_field_parallel_perturbed_norm_error_lower',double([]),... +'b_field_parallel_perturbed_norm_error_upper',double([]),... 'b_field_parallel_perturbed_parity',double([]),... 'b_field_parallel_perturbed_parity_error_index',int32(-999999999),... 'b_field_parallel_perturbed_parity_error_lower',double([]),... @@ -246,8 +307,11 @@ struct(... 'b_field_parallel_perturbed_weight_error_index',int32(-999999999),... 'b_field_parallel_perturbed_weight_error_lower',double([]),... 'b_field_parallel_perturbed_weight_error_upper',double([]),... +'code',struct(... +'output_flag',int32(-999999999),... +'parameters',''),... 'fluxes_moments',{{struct(... -'fluxes_norm',struct(... +'fluxes_norm_gyrocenter',struct(... 'energy_a_field_parallel',double(-9e+40),... 'energy_a_field_parallel_error_index',int32(-999999999),... 'energy_a_field_parallel_error_lower',double(-9e+40),... @@ -296,72 +360,240 @@ struct(... 'particles_phi_potential_error_index',int32(-999999999),... 'particles_phi_potential_error_lower',double(-9e+40),... 'particles_phi_potential_error_upper',double(-9e+40)),... -'moments_norm_rotating_frame',struct(... -'density_gyroaveraged_imaginary',double([]),... -'density_gyroaveraged_imaginary_error_index',int32(-999999999),... -'density_gyroaveraged_imaginary_error_lower',double([]),... -'density_gyroaveraged_imaginary_error_upper',double([]),... -'density_gyroaveraged_real',double([]),... -'density_gyroaveraged_real_error_index',int32(-999999999),... -'density_gyroaveraged_real_error_lower',double([]),... -'density_gyroaveraged_real_error_upper',double([]),... -'density_imaginary',double([]),... -'density_imaginary_error_index',int32(-999999999),... -'density_imaginary_error_lower',double([]),... -'density_imaginary_error_upper',double([]),... -'density_real',double([]),... -'density_real_error_index',int32(-999999999),... -'density_real_error_lower',double([]),... -'density_real_error_upper',double([]),... -'temperature_parallel_gyroaveraged_imaginary',double([]),... -'temperature_parallel_gyroaveraged_imaginary_error_index',int32(-999999999),... -'temperature_parallel_gyroaveraged_imaginary_error_lower',double([]),... -'temperature_parallel_gyroaveraged_imaginary_error_upper',double([]),... -'temperature_parallel_gyroaveraged_real',double([]),... -'temperature_parallel_gyroaveraged_real_error_index',int32(-999999999),... -'temperature_parallel_gyroaveraged_real_error_lower',double([]),... -'temperature_parallel_gyroaveraged_real_error_upper',double([]),... -'temperature_parallel_imaginary',double([]),... -'temperature_parallel_imaginary_error_index',int32(-999999999),... -'temperature_parallel_imaginary_error_lower',double([]),... -'temperature_parallel_imaginary_error_upper',double([]),... -'temperature_parallel_real',double([]),... -'temperature_parallel_real_error_index',int32(-999999999),... -'temperature_parallel_real_error_lower',double([]),... -'temperature_parallel_real_error_upper',double([]),... -'temperature_perpendicular_gyroaveraged_imaginary',double([]),... -'temperature_perpendicular_gyroaveraged_imaginary_error_index',int32(-999999999),... -'temperature_perpendicular_gyroaveraged_imaginary_error_lower',double([]),... -'temperature_perpendicular_gyroaveraged_imaginary_error_upper',double([]),... -'temperature_perpendicular_gyroaveraged_real',double([]),... -'temperature_perpendicular_gyroaveraged_real_error_index',int32(-999999999),... -'temperature_perpendicular_gyroaveraged_real_error_lower',double([]),... -'temperature_perpendicular_gyroaveraged_real_error_upper',double([]),... -'temperature_perpendicular_imaginary',double([]),... -'temperature_perpendicular_imaginary_error_index',int32(-999999999),... -'temperature_perpendicular_imaginary_error_lower',double([]),... -'temperature_perpendicular_imaginary_error_upper',double([]),... -'temperature_perpendicular_real',double([]),... -'temperature_perpendicular_real_error_index',int32(-999999999),... -'temperature_perpendicular_real_error_lower',double([]),... -'temperature_perpendicular_real_error_upper',double([]),... -'velocity_parallel_gyroaveraged_imaginary',double([]),... -'velocity_parallel_gyroaveraged_imaginary_error_index',int32(-999999999),... -'velocity_parallel_gyroaveraged_imaginary_error_lower',double([]),... -'velocity_parallel_gyroaveraged_imaginary_error_upper',double([]),... -'velocity_parallel_gyroaveraged_real',double([]),... -'velocity_parallel_gyroaveraged_real_error_index',int32(-999999999),... -'velocity_parallel_gyroaveraged_real_error_lower',double([]),... -'velocity_parallel_gyroaveraged_real_error_upper',double([]),... -'velocity_parallel_imaginary',double([]),... -'velocity_parallel_imaginary_error_index',int32(-999999999),... -'velocity_parallel_imaginary_error_lower',double([]),... -'velocity_parallel_imaginary_error_upper',double([]),... -'velocity_parallel_real',double([]),... -'velocity_parallel_real_error_index',int32(-999999999),... -'velocity_parallel_real_error_lower',double([]),... -'velocity_parallel_real_error_upper',double([]))) -;}},... +'fluxes_norm_gyrocenter_rotating_frame',struct(... +'energy_a_field_parallel',double(-9e+40),... +'energy_a_field_parallel_error_index',int32(-999999999),... +'energy_a_field_parallel_error_lower',double(-9e+40),... +'energy_a_field_parallel_error_upper',double(-9e+40),... +'energy_b_field_parallel',double(-9e+40),... +'energy_b_field_parallel_error_index',int32(-999999999),... +'energy_b_field_parallel_error_lower',double(-9e+40),... +'energy_b_field_parallel_error_upper',double(-9e+40),... +'energy_phi_potential',double(-9e+40),... +'energy_phi_potential_error_index',int32(-999999999),... +'energy_phi_potential_error_lower',double(-9e+40),... +'energy_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_phi_potential',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),... +'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),... +'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),... +'particles_a_field_parallel',double(-9e+40),... +'particles_a_field_parallel_error_index',int32(-999999999),... +'particles_a_field_parallel_error_lower',double(-9e+40),... +'particles_a_field_parallel_error_upper',double(-9e+40),... +'particles_b_field_parallel',double(-9e+40),... +'particles_b_field_parallel_error_index',int32(-999999999),... +'particles_b_field_parallel_error_lower',double(-9e+40),... +'particles_b_field_parallel_error_upper',double(-9e+40),... +'particles_phi_potential',double(-9e+40),... +'particles_phi_potential_error_index',int32(-999999999),... +'particles_phi_potential_error_lower',double(-9e+40),... +'particles_phi_potential_error_upper',double(-9e+40)),... +'fluxes_norm_particle',struct(... +'energy_a_field_parallel',double(-9e+40),... +'energy_a_field_parallel_error_index',int32(-999999999),... +'energy_a_field_parallel_error_lower',double(-9e+40),... +'energy_a_field_parallel_error_upper',double(-9e+40),... +'energy_b_field_parallel',double(-9e+40),... +'energy_b_field_parallel_error_index',int32(-999999999),... +'energy_b_field_parallel_error_lower',double(-9e+40),... +'energy_b_field_parallel_error_upper',double(-9e+40),... +'energy_phi_potential',double(-9e+40),... +'energy_phi_potential_error_index',int32(-999999999),... +'energy_phi_potential_error_lower',double(-9e+40),... +'energy_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_phi_potential',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),... +'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),... +'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),... +'particles_a_field_parallel',double(-9e+40),... +'particles_a_field_parallel_error_index',int32(-999999999),... +'particles_a_field_parallel_error_lower',double(-9e+40),... +'particles_a_field_parallel_error_upper',double(-9e+40),... +'particles_b_field_parallel',double(-9e+40),... +'particles_b_field_parallel_error_index',int32(-999999999),... +'particles_b_field_parallel_error_lower',double(-9e+40),... +'particles_b_field_parallel_error_upper',double(-9e+40),... +'particles_phi_potential',double(-9e+40),... +'particles_phi_potential_error_index',int32(-999999999),... +'particles_phi_potential_error_lower',double(-9e+40),... +'particles_phi_potential_error_upper',double(-9e+40)),... +'fluxes_norm_particle_rotating_frame',struct(... +'energy_a_field_parallel',double(-9e+40),... +'energy_a_field_parallel_error_index',int32(-999999999),... +'energy_a_field_parallel_error_lower',double(-9e+40),... +'energy_a_field_parallel_error_upper',double(-9e+40),... +'energy_b_field_parallel',double(-9e+40),... +'energy_b_field_parallel_error_index',int32(-999999999),... +'energy_b_field_parallel_error_lower',double(-9e+40),... +'energy_b_field_parallel_error_upper',double(-9e+40),... +'energy_phi_potential',double(-9e+40),... +'energy_phi_potential_error_index',int32(-999999999),... +'energy_phi_potential_error_lower',double(-9e+40),... +'energy_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_parallel_phi_potential',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),... +'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),... +'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),... +'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),... +'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),... +'particles_a_field_parallel',double(-9e+40),... +'particles_a_field_parallel_error_index',int32(-999999999),... +'particles_a_field_parallel_error_lower',double(-9e+40),... +'particles_a_field_parallel_error_upper',double(-9e+40),... +'particles_b_field_parallel',double(-9e+40),... +'particles_b_field_parallel_error_index',int32(-999999999),... +'particles_b_field_parallel_error_lower',double(-9e+40),... +'particles_b_field_parallel_error_upper',double(-9e+40),... +'particles_phi_potential',double(-9e+40),... +'particles_phi_potential_error_index',int32(-999999999),... +'particles_phi_potential_error_lower',double(-9e+40),... +'particles_phi_potential_error_upper',double(-9e+40)),... +'moments_norm_gyrocenter',struct(... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'density_gyroav',double([]),... +'density_gyroav_error_index',int32(-999999999),... +'density_gyroav_error_lower',double([]),... +'density_gyroav_error_upper',double([]),... +'heat_flux_parallel',double([]),... +'heat_flux_parallel_error_index',int32(-999999999),... +'heat_flux_parallel_error_lower',double([]),... +'heat_flux_parallel_error_upper',double([]),... +'heat_flux_parallel_gyroav',double([]),... +'heat_flux_parallel_gyroav_error_index',int32(-999999999),... +'heat_flux_parallel_gyroav_error_lower',double([]),... +'heat_flux_parallel_gyroav_error_upper',double([]),... +'j_parallel',double([]),... +'j_parallel_error_index',int32(-999999999),... +'j_parallel_error_lower',double([]),... +'j_parallel_error_upper',double([]),... +'j_parallel_gyroav',double([]),... +'j_parallel_gyroav_error_index',int32(-999999999),... +'j_parallel_gyroav_error_lower',double([]),... +'j_parallel_gyroav_error_upper',double([]),... +'pressure_parallel',double([]),... +'pressure_parallel_error_index',int32(-999999999),... +'pressure_parallel_error_lower',double([]),... +'pressure_parallel_error_upper',double([]),... +'pressure_parallel_gyroav',double([]),... +'pressure_parallel_gyroav_error_index',int32(-999999999),... +'pressure_parallel_gyroav_error_lower',double([]),... +'pressure_parallel_gyroav_error_upper',double([]),... +'pressure_perpendicular',double([]),... +'pressure_perpendicular_error_index',int32(-999999999),... +'pressure_perpendicular_error_lower',double([]),... +'pressure_perpendicular_error_upper',double([]),... +'pressure_perpendicular_gyroav',double([]),... +'pressure_perpendicular_gyroav_error_index',int32(-999999999),... +'pressure_perpendicular_gyroav_error_lower',double([]),... +'pressure_perpendicular_gyroav_error_upper',double([]),... +'v_parallel_energy_perpendicular',double([]),... +'v_parallel_energy_perpendicular_error_index',int32(-999999999),... +'v_parallel_energy_perpendicular_error_lower',double([]),... +'v_parallel_energy_perpendicular_error_upper',double([]),... +'v_parallel_energy_perpendicular_gyroav',double([]),... +'v_parallel_energy_perpendicular_gyroav_error_index',int32(-999999999),... +'v_parallel_energy_perpendicular_gyroav_error_lower',double([]),... +'v_parallel_energy_perpendicular_gyroav_error_upper',double([]),... +'v_perpendicular_square_energy',double([]),... +'v_perpendicular_square_energy_error_index',int32(-999999999),... +'v_perpendicular_square_energy_error_lower',double([]),... +'v_perpendicular_square_energy_error_upper',double([]),... +'v_perpendicular_square_energy_gyroav',double([]),... +'v_perpendicular_square_energy_gyroav_error_index',int32(-999999999),... +'v_perpendicular_square_energy_gyroav_error_lower',double([]),... +'v_perpendicular_square_energy_gyroav_error_upper',double([])),... +'moments_norm_particle',struct(... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'heat_flux_parallel',double([]),... +'heat_flux_parallel_error_index',int32(-999999999),... +'heat_flux_parallel_error_lower',double([]),... +'heat_flux_parallel_error_upper',double([]),... +'j_parallel',double([]),... +'j_parallel_error_index',int32(-999999999),... +'j_parallel_error_lower',double([]),... +'j_parallel_error_upper',double([]),... +'pressure_parallel',double([]),... +'pressure_parallel_error_index',int32(-999999999),... +'pressure_parallel_error_lower',double([]),... +'pressure_parallel_error_upper',double([]),... +'pressure_perpendicular',double([]),... +'pressure_perpendicular_error_index',int32(-999999999),... +'pressure_perpendicular_error_lower',double([]),... +'pressure_perpendicular_error_upper',double([]),... +'v_parallel_energy_perpendicular',double([]),... +'v_parallel_energy_perpendicular_error_index',int32(-999999999),... +'v_parallel_energy_perpendicular_error_lower',double([]),... +'v_parallel_energy_perpendicular_error_upper',double([]),... +'v_perpendicular_square_energy',double([]),... +'v_perpendicular_square_energy_error_index',int32(-999999999),... +'v_perpendicular_square_energy_error_lower',double([]),... +'v_perpendicular_square_energy_error_upper',double([]))) +}},... 'frequency_norm',double(-9e+40),... 'frequency_norm_error_index',int32(-999999999),... 'frequency_norm_error_lower',double(-9e+40),... @@ -374,14 +606,11 @@ struct(... 'growth_rate_tolerance_error_index',int32(-999999999),... 'growth_rate_tolerance_error_lower',double(-9e+40),... 'growth_rate_tolerance_error_upper',double(-9e+40),... -'phi_potential_perturbed_norm_imaginary',double([]),... -'phi_potential_perturbed_norm_imaginary_error_index',int32(-999999999),... -'phi_potential_perturbed_norm_imaginary_error_lower',double([]),... -'phi_potential_perturbed_norm_imaginary_error_upper',double([]),... -'phi_potential_perturbed_norm_real',double([]),... -'phi_potential_perturbed_norm_real_error_index',int32(-999999999),... -'phi_potential_perturbed_norm_real_error_lower',double([]),... -'phi_potential_perturbed_norm_real_error_upper',double([]),... +'initial_value_run',int32(-999999999),... +'phi_potential_perturbed_norm',double([]),... +'phi_potential_perturbed_norm_error_index',int32(-999999999),... +'phi_potential_perturbed_norm_error_lower',double([]),... +'phi_potential_perturbed_norm_error_upper',double([]),... 'phi_potential_perturbed_parity',double([]),... 'phi_potential_perturbed_parity_error_index',int32(-999999999),... 'phi_potential_perturbed_parity_error_lower',double([]),... @@ -394,14 +623,14 @@ struct(... 'poloidal_angle_error_index',int32(-999999999),... 'poloidal_angle_error_lower',double([]),... 'poloidal_angle_error_upper',double([]),... +'poloidal_turns',int32(-999999999),... 'time_norm',double([]),... 'time_norm_error_index',int32(-999999999),... 'time_norm_error_lower',double([]),... 'time_norm_error_upper',double([])) -;}},... -'poloidal_turns',int32(-999999999),... +}},... 'radial_component_norm',double(-9e+40),... 'radial_component_norm_error_index',int32(-999999999),... 'radial_component_norm_error_lower',double(-9e+40),... 'radial_component_norm_error_upper',double(-9e+40)) -;}}); +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m index 92ba079c548ee909a80e9fcc65dfa42ffe695cee..61e56e66bb208ee1802c2300344141dbdc4be3d6 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m @@ -1,9 +1,11 @@ function S = ids_empty_hard_x_rays % function S = ids_empty_hard_x_rays % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'aperture',{{struct(... @@ -85,7 +87,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -182,7 +184,7 @@ struct(... 'upper_bound_error_index',int32(-999999999),... 'upper_bound_error_lower',double(-9e+40),... 'upper_bound_error_upper',double(-9e+40)) -;}},... +}},... 'etendue',double(-9e+40),... 'etendue_error_index',int32(-999999999),... 'etendue_error_lower',double(-9e+40),... @@ -191,6 +193,126 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'filter_window',{{struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'photon_absorption',double([]),... +'photon_absorption_error_index',int32(-999999999),... +'photon_absorption_error_lower',double([]),... +'photon_absorption_error_upper',double([]),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'wavelength_lower',double(-9e+40),... +'wavelength_lower_error_index',int32(-999999999),... +'wavelength_lower_error_lower',double(-9e+40),... +'wavelength_lower_error_upper',double(-9e+40),... +'wavelength_upper',double(-9e+40),... +'wavelength_upper_error_index',int32(-999999999),... +'wavelength_upper_error_lower',double(-9e+40),... +'wavelength_upper_error_upper',double(-9e+40),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([]),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))) +}},... 'identifier','',... 'line_of_sight',struct(... 'first_point',struct(... @@ -228,16 +350,18 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -274,15 +398,64 @@ struct(... 'upper_bound_error_lower',double(-9e+40),... 'upper_bound_error_upper',double(-9e+40),... 'validity_timed',int32([])) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m index 6cb2c72c6ae5be1dda1b57041c724de1f9222cba..daa95f4b11e0d980ead3abc35e671310e133684f 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m @@ -1,9 +1,11 @@ function S = ids_empty_ic_antennas % function S = ids_empty_ic_antennas % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'antenna',{{struct(... 'frequency',struct(... @@ -42,7 +44,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'frequency',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -68,7 +70,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'name','',... 'phase_forward',struct(... 'data',double([]),... @@ -128,7 +130,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'reflection_coefficient',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -147,6 +149,23 @@ struct(... 'distance_to_conductor_error_lower',double(-9e+40),... 'distance_to_conductor_error_upper',double(-9e+40),... 'geometry',struct(... +'annulus',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'radius_inner',double(-9e+40),... +'radius_inner_error_index',int32(-999999999),... +'radius_inner_error_lower',double(-9e+40),... +'radius_inner_error_upper',double(-9e+40),... +'radius_outer',double(-9e+40),... +'radius_outer_error_index',int32(-999999999),... +'radius_outer_error_lower',double(-9e+40),... +'radius_outer_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'arcs_of_circle',struct(... 'curvature_radii',double([]),... 'curvature_radii_error_index',int32(-999999999),... @@ -170,18 +189,18 @@ struct(... 'beta_error_index',int32(-999999999),... 'beta_error_lower',double(-9e+40),... 'beta_error_upper',double(-9e+40),... -'length',double(-9e+40),... -'length_error_index',int32(-999999999),... -'length_error_lower',double(-9e+40),... -'length_error_upper',double(-9e+40),... +'length_alpha',double(-9e+40),... +'length_alpha_error_index',int32(-999999999),... +'length_alpha_error_lower',double(-9e+40),... +'length_alpha_error_upper',double(-9e+40),... +'length_beta',double(-9e+40),... +'length_beta_error_index',int32(-999999999),... +'length_beta_error_lower',double(-9e+40),... +'length_beta_error_upper',double(-9e+40),... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... 'r_error_lower',double(-9e+40),... 'r_error_upper',double(-9e+40),... -'thickness',double(-9e+40),... -'thickness_error_index',int32(-999999999),... -'thickness_error_lower',double(-9e+40),... -'thickness_error_upper',double(-9e+40),... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... @@ -211,7 +230,30 @@ struct(... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... -'z_error_upper',double(-9e+40))),... +'z_error_upper',double(-9e+40)),... +'thick_line',struct(... +'first_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40))),... 'outline',struct(... 'phi',double([]),... 'phi_error_index',int32(-999999999),... @@ -235,7 +277,7 @@ struct(... 'width_tor_error_index',int32(-999999999),... 'width_tor_error_lower',double(-9e+40),... 'width_tor_error_upper',double(-9e+40)) -;}},... +}},... 'voltage',{{struct(... 'amplitude',struct(... 'data',double([]),... @@ -264,8 +306,8 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}}) -;}},... +}}) +}},... 'name','',... 'power_forward',struct(... 'data',double([]),... @@ -293,17 +335,19 @@ struct(... 'spectrum_error_lower',double([]),... 'spectrum_error_upper',double([]),... 'time',double(-9e+40)) -;}}) -;}},... +}}) +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -313,12 +357,67 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'power_launched',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'reference_point',struct(... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m index e344feac9515ae8ace841fcf53d38e4e00f5f20d..5f98a86278f8aee5bd212b2dd5c601bb0a12b725 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m @@ -1,9 +1,11 @@ function S = ids_empty_interferometer % function S = ids_empty_interferometer % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'identifier','',... @@ -90,17 +92,19 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}}) -;}},... +}}) +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -118,12 +122,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'n_e_volume_average',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m b/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m index fc6c8873361a5d3b31cfbe04ba57ffe94837db12..f6e2159c4c13c113f4ef9a81566d189e7106c53e 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m @@ -1,19 +1,23 @@ function S = ids_empty_iron_core % function S = ids_empty_iron_core % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -35,6 +84,23 @@ struct(... 'b_field_error_lower',double([]),... 'b_field_error_upper',double([]),... 'geometry',struct(... +'annulus',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'radius_inner',double(-9e+40),... +'radius_inner_error_index',int32(-999999999),... +'radius_inner_error_lower',double(-9e+40),... +'radius_inner_error_upper',double(-9e+40),... +'radius_outer',double(-9e+40),... +'radius_outer_error_index',int32(-999999999),... +'radius_outer_error_lower',double(-9e+40),... +'radius_outer_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'arcs_of_circle',struct(... 'curvature_radii',double([]),... 'curvature_radii_error_index',int32(-999999999),... @@ -58,18 +124,18 @@ struct(... 'beta_error_index',int32(-999999999),... 'beta_error_lower',double(-9e+40),... 'beta_error_upper',double(-9e+40),... -'length',double(-9e+40),... -'length_error_index',int32(-999999999),... -'length_error_lower',double(-9e+40),... -'length_error_upper',double(-9e+40),... +'length_alpha',double(-9e+40),... +'length_alpha_error_index',int32(-999999999),... +'length_alpha_error_lower',double(-9e+40),... +'length_alpha_error_upper',double(-9e+40),... +'length_beta',double(-9e+40),... +'length_beta_error_index',int32(-999999999),... +'length_beta_error_lower',double(-9e+40),... +'length_beta_error_upper',double(-9e+40),... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... 'r_error_lower',double(-9e+40),... 'r_error_upper',double(-9e+40),... -'thickness',double(-9e+40),... -'thickness_error_index',int32(-999999999),... -'thickness_error_lower',double(-9e+40),... -'thickness_error_upper',double(-9e+40),... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... @@ -99,7 +165,30 @@ struct(... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... -'z_error_upper',double(-9e+40))),... +'z_error_upper',double(-9e+40)),... +'thick_line',struct(... +'first_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40))),... 'identifier','',... 'magnetisation_r',struct(... 'data',double([]),... @@ -118,5 +207,5 @@ struct(... 'permeability_relative_error_index',int32(-999999999),... 'permeability_relative_error_lower',double([]),... 'permeability_relative_error_upper',double([])) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m b/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m index 3397b1848a2df1673e5cfb296ff9134cb2bc5d01..b6222b346d518cc6c459046996d426df05abe8f6 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m @@ -1,19 +1,23 @@ function S = ids_empty_langmuir_probes % function S = ids_empty_langmuir_probes % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -27,7 +31,14 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... -'distance_separatrix',struct(... +'distance_separatrix_midplane',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'fluence',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... @@ -56,6 +67,41 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... +'j_i_parallel_sigma',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_saturation',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_saturation_kurtosis',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_saturation_sigma',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_saturation_skew',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... 'multi_temperature_fits',{{struct(... 't_e',struct(... 'data',double([]),... @@ -72,7 +118,7 @@ struct(... 'validity',int32(-999999999),... 'validity_timed',int32([])),... 'time',double([])) -;}},... +}},... 'n_e',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -127,6 +173,13 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... +'v_floating_sigma',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... 'v_plasma',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -134,17 +187,79 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... +'equilibrium_id',struct(... +'data_entry',struct(... +'machine','',... +'pulse',int32(-999999999),... +'pulse_type','',... +'run',int32(-999999999),... +'user',''),... +'name','',... +'occurrence',int32(-999999999)),... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'reciprocating',{{struct(... 'identifier','',... 'name','',... @@ -171,6 +286,13 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... +'j_i_kurtosis',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... 'j_i_parallel',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -178,6 +300,27 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... +'j_i_saturation',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_sigma',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'j_i_skew',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... 'position',struct(... 'phi',double([]),... 'phi_error_index',int32(-999999999),... @@ -213,9 +356,23 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'validity',int32(-999999999),... +'validity_timed',int32([])),... +'v_floating_sigma',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... -'distance_separatrix',struct(... +}},... +'distance_separatrix_midplane',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])),... +'distance_x_point_z',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... @@ -277,10 +434,10 @@ struct(... 'data_error_upper',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'surface_area',double([]),... 'surface_area_error_index',int32(-999999999),... 'surface_area_error_lower',double([]),... 'surface_area_error_upper',double([])) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m b/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m index 314c635bdcf73468d42a8565d4674e85a2935919..82a5c1a219931c5ddefd88b052740fab96e8a857 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m @@ -1,9 +1,11 @@ function S = ids_empty_lh_antennas % function S = ids_empty_lh_antennas % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'antenna',{{struct(... 'distance_to_antenna',double([]),... @@ -49,7 +51,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'n_e',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -152,17 +154,19 @@ struct(... 'power_density_spectrum_2d_error_lower',double([]),... 'power_density_spectrum_2d_error_upper',double([]),... 'time',double([])) -;}}) -;}},... +}}) +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -172,18 +176,73 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'power',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... +'power_launched',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'reference_point',struct(... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m index b21a9853c3821a5e461e95cc3637410f7eb5189f..f0f8c9e907e60afa245a78b0d28c1e6be4e77ca6 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m @@ -1,9 +1,11 @@ function S = ids_empty_magnetics % function S = ids_empty_magnetics % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'b_field_pol_probe',{{struct(... 'area',double(-9e+40),... @@ -72,7 +74,7 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'b_field_tor_probe',{{struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... @@ -140,7 +142,7 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'bpol_probe',{{struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... @@ -208,16 +210,18 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -230,7 +234,7 @@ struct(... 'data_error_upper',double([]),... 'method_name','',... 'time',double([])) -;}},... +}},... 'flux_loop',{{struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... @@ -264,7 +268,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'type',struct(... 'description','',... 'index',int32(-999999999),... @@ -277,11 +281,56 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -295,7 +344,11 @@ struct(... 'data_error_upper',double([]),... 'method_name','',... 'time',double([])) -;}},... +}},... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'method',{{struct(... 'ip',struct(... 'data',double([]),... @@ -304,7 +357,7 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'name','') -;}},... +}},... 'rogowski_coil',{{struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... @@ -338,10 +391,48 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'turns_per_metre',double(-9e+40),... 'turns_per_metre_error_index',int32(-999999999),... 'turns_per_metre_error_lower',double(-9e+40),... 'turns_per_metre_error_upper',double(-9e+40)) -;}},... +}},... +'shunt',{{struct(... +'divertor_index',int32(-999999999),... +'identifier','',... +'name','',... +'position',struct(... +'first_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'resistance',double(-9e+40),... +'resistance_error_index',int32(-999999999),... +'resistance_error_lower',double(-9e+40),... +'resistance_error_upper',double(-9e+40),... +'target_index',int32(-999999999),... +'tile_index',int32(-999999999),... +'voltage',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([]))) +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m index ccb314981efdf7fb554ad9c0466e9be76107e26a..4f9bcc8a1f0dd3591bb0edf3be290e00116cebb8 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m @@ -1,19 +1,23 @@ function S = ids_empty_mhd % function S = ids_empty_mhd % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -31,7 +35,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'a_field_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -43,7 +47,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'a_field_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -55,7 +59,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_r',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -67,7 +71,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -79,7 +83,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -91,7 +95,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'electrons',struct(... 'temperature',{{struct(... 'coefficients',double([]),... @@ -104,7 +108,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'j_r',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -116,7 +120,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'j_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -128,7 +132,19 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'j_tor_r',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'j_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -140,7 +156,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'mass_density',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -152,7 +168,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'n_i_total',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -164,7 +180,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'phi_potential',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -176,7 +192,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'psi',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -188,7 +204,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 't_i_average',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -200,7 +216,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40),... 'velocity_parallel',{{struct(... 'coefficients',double([]),... @@ -213,7 +229,19 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'velocity_parallel_over_b_field',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'velocity_r',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -225,7 +253,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -237,7 +265,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'velocity_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -249,7 +277,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'vorticity',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -261,7 +289,19 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... +'vorticity_over_r',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... 'zeff',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -273,8 +313,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}) -;}},... +}}) +}},... 'grid_ggd',{{struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -290,15 +330,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -316,11 +356,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -332,12 +373,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -346,15 +395,60 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m index 99597a70c5837fa2d5de6100bb85d934281d673c..6cae756580a7015bfea8b0c67f91d7a390101783 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m @@ -1,19 +1,23 @@ function S = ids_empty_mhd_linear % function S = ids_empty_mhd_linear % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -29,6 +33,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -138,7 +187,7 @@ struct(... 'real_error_index',int32(-999999999),... 'real_error_lower',double([]),... 'real_error_upper',double([])) -;}},... +}},... 'b_field_perturbed',struct(... 'coordinate1',struct(... 'coefficients_imaginary',double([]),... @@ -616,8 +665,8 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''))) -;}}) -;}},... +}}) +}},... 'vacuum_toroidal_field',struct(... 'b0',double([]),... 'b0_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m index 46e67aa67f11dc958923628da69343cb5e26db58..569ffed4fa8908c637c43d596a2db8d226aa3451 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m @@ -1,9 +1,11 @@ function S = ids_empty_mse % function S = ids_empty_mse % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'active_spatial_resolution',{{struct(... @@ -38,7 +40,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'aperture',{{struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -118,7 +120,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -234,16 +236,18 @@ struct(... 'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -253,10 +257,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m b/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m index 1c8de675aa767bd6c1f6ab969d88c6d74e29eae8..36345eeacf455fbd5935dda9a8d9da233e568a9f 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m @@ -1,19 +1,23 @@ function S = ids_empty_nbi % function S = ids_empty_nbi % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,12 +27,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([]),... 'unit',{{struct(... 'aperture',{{struct(... @@ -110,7 +163,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'beam_current_fraction',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -168,7 +221,7 @@ struct(... 'vertical_error_index',int32(-999999999),... 'vertical_error_lower',double(-9e+40),... 'vertical_error_upper',double(-9e+40)) -;}},... +}},... 'focus',struct(... 'focal_length_horizontal',double(-9e+40),... 'focal_length_horizontal_error_index',int32(-999999999),... @@ -226,7 +279,7 @@ struct(... 'delta_tangency_radius_error_lower',double(-9e+40),... 'delta_tangency_radius_error_upper',double(-9e+40),... 'time',double(-9e+40)) -;}},... +}},... 'width_horizontal',double(-9e+40),... 'width_horizontal_error_index',int32(-999999999),... 'width_horizontal_error_lower',double(-9e+40),... @@ -235,7 +288,7 @@ struct(... 'width_vertical_error_index',int32(-999999999),... 'width_vertical_error_lower',double(-9e+40),... 'width_vertical_error_upper',double(-9e+40)) -;}},... +}},... 'energy',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -339,4 +392,4 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40))) -;}}); +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m b/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m index 36473c4687f64019e97b2740dcf8595ba135d01e..0086f0c77e3ffe76d82594b62797c82b1f927dbc 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m @@ -1,9 +1,11 @@ function S = ids_empty_neutron_diagnostic % function S = ids_empty_neutron_diagnostic % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'characteristics',struct(... 'dead_time',double(-9e+40),... @@ -22,30 +24,26 @@ struct(... 'index',int32(-999999999),... 'mode',{{struct(... 'count_limit_max',double(-9e+40),... -'count_limit_max_error_index',int32(-999999999),... -'count_limit_max_error_lower',double(-9e+40),... -'count_limit_max_error_upper',double(-9e+40),... 'count_limit_min',double(-9e+40),... -'count_limit_min_error_index',int32(-999999999),... -'count_limit_min_error_lower',double(-9e+40),... -'count_limit_min_error_upper',double(-9e+40),... 'index',int32(-999999999),... 'name','') -;}},... +}},... 'probability_overlap',double(-9e+40),... 'probability_overlap_error_index',int32(-999999999),... 'probability_overlap_error_lower',double(-9e+40),... 'probability_overlap_error_upper',double(-9e+40)) -;}}),... +}}),... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -160,7 +158,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'b_field_sensor',struct(... 'amplitude',struct(... 'data',double([]),... @@ -287,7 +285,7 @@ struct(... 'upper_bound_error_index',int32(-999999999),... 'upper_bound_error_lower',double(-9e+40),... 'upper_bound_error_upper',double(-9e+40)) -;}},... +}},... 'field_of_view',struct(... 'direction_to_detector',struct(... 'x',double([]),... @@ -320,7 +318,16 @@ struct(... 'solid_angle_error_lower',double([]),... 'solid_angle_error_upper',double([])),... 'green_functions',struct(... -'event_in_detector',struct(... +'event_in_detector_neutron_flux',struct(... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... +'event_in_detector_response_function',struct(... 'type',struct(... 'description','',... 'index',int32(-999999999),... @@ -349,7 +356,7 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'name','') -;}},... +}},... 'name','',... 'position',struct(... 'phi',double(-9e+40),... @@ -379,7 +386,7 @@ struct(... 'converter_volume_error_lower',double(-9e+40),... 'converter_volume_error_upper',double(-9e+40),... 'index',int32(-999999999)) -;}},... +}},... 'spectrum',struct(... 'data',int32([]),... 'time',double([])),... @@ -472,17 +479,66 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'synthetic_signals',struct(... 'fusion_power',double([]),... 'fusion_power_error_index',int32(-999999999),... @@ -504,7 +560,6 @@ struct(... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)),... 'radiation',{{struct(... -'index',int32(-999999999),... 'reaction',{{struct(... 'd2flux_drdz',double([]),... 'd2flux_drdz_error_index',int32(-999999999),... @@ -518,7 +573,6 @@ struct(... 'flux_error_index',int32(-999999999),... 'flux_error_lower',double([]),... 'flux_error_upper',double([]),... -'index',int32(-999999999),... 'reaction_rate',double([]),... 'reaction_rate_error_index',int32(-999999999),... 'reaction_rate_error_lower',double([]),... @@ -527,6 +581,6 @@ struct(... 'sensitivity_error_index',int32(-999999999),... 'sensitivity_error_lower',double([]),... 'sensitivity_error_upper',double([])) -;}}) -;}}) -;}}); +}}) +}}) +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m index c361ce625912c72b0dc25162a3ab36a81d8aaca7..9ec91e040f8d495833bd4cc646766df5e22adb0a 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m @@ -1,19 +1,23 @@ function S = ids_empty_ntms % function S = ids_empty_ntms % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -43,7 +92,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'detailed_evolution',struct(... 'calculation_method','',... 'delta_diff',double([]),... @@ -56,7 +105,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'dfrequency_dt',double([]),... 'dfrequency_dt_error_index',int32(-999999999),... 'dfrequency_dt_error_lower',double([]),... @@ -97,7 +146,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'width',double([]),... 'width_error_index',int32(-999999999),... 'width_error_lower',double([]),... @@ -158,14 +207,14 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'width',double(-9e+40),... 'width_error_index',int32(-999999999),... 'width_error_lower',double(-9e+40),... 'width_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'vacuum_toroidal_field',struct(... 'b0',double([]),... 'b0_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m deleted file mode 100644 index 2e792d44661b9e4fc27262b72e2cfb164e896ac2..0000000000000000000000000000000000000000 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m +++ /dev/null @@ -1,30 +0,0 @@ -function S = ids_empty_numerics -% function S = ids_empty_numerics -% -% File written automatically using struct2m.m - -S = ... -struct(... -'ids_properties',struct(... -'comment','',... -'creation_date','',... -'homogeneous_time',int32(-999999999),... -'provider','',... -'source','',... -'version_put',struct(... -'access_layer','',... -'access_layer_language','',... -'data_dictionary','')),... -'time',double([]),... -'time_end',double([]),... -'time_end_error_index',int32(-999999999),... -'time_end_error_lower',double([]),... -'time_end_error_upper',double([]),... -'time_start',double([]),... -'time_start_error_index',int32(-999999999),... -'time_start_error_lower',double([]),... -'time_start_error_upper',double([]),... -'time_step',double([]),... -'time_step_error_index',int32(-999999999),... -'time_step_error_lower',double([]),... -'time_step_error_upper',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m index 7b27991a856f8ca1eea719ac01b18d655c0a8884..9b4288dce6a592eae2c53795193033c5cb48f913 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m @@ -1,19 +1,23 @@ function S = ids_empty_pellets % function S = ids_empty_pellets % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,12 +27,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([]),... 'time_slice',{{struct(... 'pellet',{{struct(... @@ -124,7 +177,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'molecules_n',double(-9e+40),... 'molecules_n_error_index',int32(-999999999),... @@ -161,11 +214,11 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'velocity_initial',double(-9e+40),... 'velocity_initial_error_index',int32(-999999999),... 'velocity_initial_error_lower',double(-9e+40),... 'velocity_initial_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}}); +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m index 0f5f29e759bf11f98515735f1643270dba48df7d..0c5db01eb0d63c5ff9346e2d390751b5a1e9bcf3 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m @@ -1,9 +1,11 @@ function S = ids_empty_pf_active % function S = ids_empty_pf_active % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'circuit',{{struct(... 'connections',int32([]),... @@ -22,16 +24,18 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -55,15 +59,29 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'current_limit_max',double([]),... -'current_limit_max_error_index',int32(-999999999),... -'current_limit_max_error_lower',double([]),... -'current_limit_max_error_upper',double([]),... 'element',{{struct(... 'area',double(-9e+40),... 'area_error_index',int32(-999999999),... 'area_error_lower',double(-9e+40),... 'area_error_upper',double(-9e+40),... 'geometry',struct(... +'annulus',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'radius_inner',double(-9e+40),... +'radius_inner_error_index',int32(-999999999),... +'radius_inner_error_lower',double(-9e+40),... +'radius_inner_error_upper',double(-9e+40),... +'radius_outer',double(-9e+40),... +'radius_outer_error_index',int32(-999999999),... +'radius_outer_error_lower',double(-9e+40),... +'radius_outer_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'arcs_of_circle',struct(... 'curvature_radii',double([]),... 'curvature_radii_error_index',int32(-999999999),... @@ -87,18 +105,18 @@ struct(... 'beta_error_index',int32(-999999999),... 'beta_error_lower',double(-9e+40),... 'beta_error_upper',double(-9e+40),... -'length',double(-9e+40),... -'length_error_index',int32(-999999999),... -'length_error_lower',double(-9e+40),... -'length_error_upper',double(-9e+40),... +'length_alpha',double(-9e+40),... +'length_alpha_error_index',int32(-999999999),... +'length_alpha_error_lower',double(-9e+40),... +'length_alpha_error_upper',double(-9e+40),... +'length_beta',double(-9e+40),... +'length_beta_error_index',int32(-999999999),... +'length_beta_error_lower',double(-9e+40),... +'length_beta_error_upper',double(-9e+40),... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... 'r_error_lower',double(-9e+40),... 'r_error_upper',double(-9e+40),... -'thickness',double(-9e+40),... -'thickness_error_index',int32(-999999999),... -'thickness_error_lower',double(-9e+40),... -'thickness_error_upper',double(-9e+40),... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... @@ -128,21 +146,52 @@ struct(... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... -'z_error_upper',double(-9e+40))),... +'z_error_upper',double(-9e+40)),... +'thick_line',struct(... +'first_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40))),... 'identifier','',... 'name','',... 'turns_with_sign',double(-9e+40),... 'turns_with_sign_error_index',int32(-999999999),... 'turns_with_sign_error_lower',double(-9e+40),... 'turns_with_sign_error_upper',double(-9e+40)) -;}},... +}},... 'energy_limit_max',double(-9e+40),... -'energy_limit_max_error_index',int32(-999999999),... -'energy_limit_max_error_lower',double(-9e+40),... -'energy_limit_max_error_upper',double(-9e+40),... +'function',{{struct(... +'description','',... +'index',int32(-999999999),... +'name','') +}},... 'identifier','',... 'name','',... 'resistance',double(-9e+40),... +'resistance_additional',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'resistance_error_index',int32(-999999999),... 'resistance_error_lower',double(-9e+40),... 'resistance_error_upper',double(-9e+40),... @@ -156,17 +205,66 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'radial_force',{{struct(... 'combination',double([]),... 'combination_error_index',int32(-999999999),... @@ -187,7 +285,7 @@ struct(... 'limit_min_error_lower',double(-9e+40),... 'limit_min_error_upper',double(-9e+40),... 'name','') -;}},... +}},... 'supply',{{struct(... 'current',struct(... 'data',double([]),... @@ -196,13 +294,7 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'current_limit_max',double(-9e+40),... -'current_limit_max_error_index',int32(-999999999),... -'current_limit_max_error_lower',double(-9e+40),... -'current_limit_max_error_upper',double(-9e+40),... 'current_limit_min',double(-9e+40),... -'current_limit_min_error_index',int32(-999999999),... -'current_limit_min_error_lower',double(-9e+40),... -'current_limit_min_error_upper',double(-9e+40),... 'current_limiter_gain',double(-9e+40),... 'current_limiter_gain_error_index',int32(-999999999),... 'current_limiter_gain_error_lower',double(-9e+40),... @@ -212,9 +304,6 @@ struct(... 'delay_error_lower',double(-9e+40),... 'delay_error_upper',double(-9e+40),... 'energy_limit_max',double(-9e+40),... -'energy_limit_max_error_index',int32(-999999999),... -'energy_limit_max_error_lower',double(-9e+40),... -'energy_limit_max_error_upper',double(-9e+40),... 'filter_denominator',double([]),... 'filter_denominator_error_index',int32(-999999999),... 'filter_denominator_error_lower',double([]),... @@ -238,14 +327,8 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'voltage_limit_max',double(-9e+40),... -'voltage_limit_max_error_index',int32(-999999999),... -'voltage_limit_max_error_lower',double(-9e+40),... -'voltage_limit_max_error_upper',double(-9e+40),... -'voltage_limit_min',double(-9e+40),... -'voltage_limit_min_error_index',int32(-999999999),... -'voltage_limit_min_error_lower',double(-9e+40),... -'voltage_limit_min_error_upper',double(-9e+40)) -;}},... +'voltage_limit_min',double(-9e+40)) +}},... 'time',double([]),... 'vertical_force',{{struct(... 'combination',double([]),... @@ -267,4 +350,4 @@ struct(... 'limit_min_error_lower',double(-9e+40),... 'limit_min_error_upper',double(-9e+40),... 'name','') -;}}); +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m index ab22c5c5e4948dc6d5c8a2c327a5c5fc5a0bc16d..514828e27c1a172adf86674e0408506a72d3f72d 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m @@ -1,19 +1,23 @@ function S = ids_empty_pf_passive % function S = ids_empty_pf_passive % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -23,6 +27,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -40,6 +89,23 @@ struct(... 'area_error_lower',double(-9e+40),... 'area_error_upper',double(-9e+40),... 'geometry',struct(... +'annulus',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'radius_inner',double(-9e+40),... +'radius_inner_error_index',int32(-999999999),... +'radius_inner_error_lower',double(-9e+40),... +'radius_inner_error_upper',double(-9e+40),... +'radius_outer',double(-9e+40),... +'radius_outer_error_index',int32(-999999999),... +'radius_outer_error_lower',double(-9e+40),... +'radius_outer_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'arcs_of_circle',struct(... 'curvature_radii',double([]),... 'curvature_radii_error_index',int32(-999999999),... @@ -63,18 +129,18 @@ struct(... 'beta_error_index',int32(-999999999),... 'beta_error_lower',double(-9e+40),... 'beta_error_upper',double(-9e+40),... -'length',double(-9e+40),... -'length_error_index',int32(-999999999),... -'length_error_lower',double(-9e+40),... -'length_error_upper',double(-9e+40),... +'length_alpha',double(-9e+40),... +'length_alpha_error_index',int32(-999999999),... +'length_alpha_error_lower',double(-9e+40),... +'length_alpha_error_upper',double(-9e+40),... +'length_beta',double(-9e+40),... +'length_beta_error_index',int32(-999999999),... +'length_beta_error_lower',double(-9e+40),... +'length_beta_error_upper',double(-9e+40),... 'r',double(-9e+40),... 'r_error_index',int32(-999999999),... 'r_error_lower',double(-9e+40),... 'r_error_upper',double(-9e+40),... -'thickness',double(-9e+40),... -'thickness_error_index',int32(-999999999),... -'thickness_error_lower',double(-9e+40),... -'thickness_error_upper',double(-9e+40),... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... @@ -104,14 +170,37 @@ struct(... 'z',double(-9e+40),... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... -'z_error_upper',double(-9e+40))),... +'z_error_upper',double(-9e+40)),... +'thick_line',struct(... +'first_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40))),... 'identifier','',... 'name','',... 'turns_with_sign',double(-9e+40),... 'turns_with_sign_error_index',int32(-999999999),... 'turns_with_sign_error_lower',double(-9e+40),... 'turns_with_sign_error_upper',double(-9e+40)) -;}},... +}},... 'name','',... 'resistance',double(-9e+40),... 'resistance_error_index',int32(-999999999),... @@ -122,5 +211,5 @@ struct(... 'resistivity_error_lower',double(-9e+40),... 'resistivity_error_upper',double(-9e+40),... 'time',double([])) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m new file mode 100644 index 0000000000000000000000000000000000000000..5e066c24a9626d689d50bc94627bbf254d3f46dc --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m @@ -0,0 +1,197 @@ +function S = ids_empty_plasma_initiation +% function S = ids_empty_plasma_initiation +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'b_field_lines',{{struct(... +'e_field_parallel',double([]),... +'e_field_parallel_error_index',int32(-999999999),... +'e_field_parallel_error_lower',double([]),... +'e_field_parallel_error_upper',double([]),... +'e_field_townsend',double([]),... +'e_field_townsend_error_index',int32(-999999999),... +'e_field_townsend_error_lower',double([]),... +'e_field_townsend_error_upper',double([]),... +'grid',struct(... +'dim1',double([]),... +'dim1_error_index',int32(-999999999),... +'dim1_error_lower',double([]),... +'dim1_error_upper',double([]),... +'dim2',double([]),... +'dim2_error_index',int32(-999999999),... +'dim2_error_lower',double([]),... +'dim2_error_upper',double([]),... +'volume_element',double([]),... +'volume_element_error_index',int32(-999999999),... +'volume_element_error_lower',double([]),... +'volume_element_error_upper',double([])),... +'grid_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'lengths',double([]),... +'lengths_error_index',int32(-999999999),... +'lengths_error_lower',double([]),... +'lengths_error_upper',double([]),... +'open_fraction',double(-9e+40),... +'open_fraction_error_index',int32(-999999999),... +'open_fraction_error_lower',double(-9e+40),... +'open_fraction_error_upper',double(-9e+40),... +'pressure',double(-9e+40),... +'pressure_error_index',int32(-999999999),... +'pressure_error_lower',double(-9e+40),... +'pressure_error_upper',double(-9e+40),... +'starting_positions',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'time',double(-9e+40),... +'townsend_or_closed_grid_positions',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'townsend_or_closed_positions',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([]))) +}},... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'global_quantities',struct(... +'b_field_perpendicular',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'b_field_stray',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'connection_length',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'coulomb_logarithm',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]))),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'profiles_2d',{{struct(... +'e_field_tor',double([]),... +'e_field_tor_error_index',int32(-999999999),... +'e_field_tor_error_lower',double([]),... +'e_field_tor_error_upper',double([]),... +'grid',struct(... +'dim1',double([]),... +'dim1_error_index',int32(-999999999),... +'dim1_error_lower',double([]),... +'dim1_error_upper',double([]),... +'dim2',double([]),... +'dim2_error_index',int32(-999999999),... +'dim2_error_lower',double([]),... +'dim2_error_upper',double([]),... +'volume_element',double([]),... +'volume_element_error_index',int32(-999999999),... +'volume_element_error_lower',double([]),... +'volume_element_error_upper',double([])),... +'grid_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'time',double(-9e+40)) +}},... +'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m b/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m index 0e00ea9396f5fb4ab08c58ca95374576f0cb0b78..cf12101a0549e8803ccf3c56a04a0893eba8e698 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m @@ -1,9 +1,11 @@ function S = ids_empty_polarimeter % function S = ids_empty_polarimeter % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'ellipticity',struct(... @@ -76,16 +78,18 @@ struct(... 'wavelength_error_index',int32(-999999999),... 'wavelength_error_lower',double(-9e+40),... 'wavelength_error_upper',double(-9e+40)) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -95,10 +99,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m index 0193cf0140d608ae4968efcf56eee7cdc64ab0fa..9ac5a8194fa19303c5c38351a1ddcc14ab19e192 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m @@ -1,25 +1,61 @@ function S = ids_empty_pulse_schedule % function S = ids_empty_pulse_schedule % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... 'repository','',... 'version',''),... 'density_control',struct(... +'ion',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'label','',... +'n_i_volume_average',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... 'mode',struct(... 'data',int32([]),... 'time',double([])),... @@ -33,6 +69,76 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999)),... +'n_e_line_lcfs',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'n_e_line_of_sight',struct(... +'first_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'third_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'n_e_profile_average',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'n_e_volume_average',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... 'n_h_over_n_d',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -81,14 +187,14 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'fraction',double(-9e+40),... 'fraction_error_index',int32(-999999999),... 'fraction_error_lower',double(-9e+40),... 'fraction_error_upper',double(-9e+40),... 'label','') -;}}) -;}},... +}}) +}},... 'zeff',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -98,7 +204,51 @@ struct(... 'data_error_upper',double([]),... 'time',double([])),... 'reference_name','',... -'reference_type',int32(-999999999))),... +'reference_type',int32(-999999999)),... +'zeff_line_of_sight',struct(... +'first_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'third_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'zeff_method',struct(... +'description','',... +'index',int32(-999999999),... +'name','')),... 'ec',struct(... 'launcher',{{struct(... 'deposition_rho_tor_norm',struct(... @@ -133,10 +283,6 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999)),... -'power_type',struct(... -'description','',... -'index',int32(-999999999),... -'name',''),... 'steering_angle_pol',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -157,10 +303,20 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999))) -;}},... +}},... 'mode',struct(... 'data',int32([]),... -'time',double([]))),... +'time',double([])),... +'power',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))),... 'event',{{struct(... 'acquisition_state',struct(... 'description','',... @@ -185,7 +341,7 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'flux_control',struct(... 'beta_normal',struct(... 'envelope_type',int32(-999999999),... @@ -268,14 +424,69 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'mode',struct(... 'data',int32([]),... -'time',double([]))),... +'time',double([])),... +'power',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))),... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -330,14 +541,34 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'mode',struct(... 'data',int32([]),... -'time',double([]))),... +'time',double([])),... +'power',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))),... 'nbi',struct(... 'mode',struct(... 'data',int32([]),... 'time',double([])),... +'power',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... 'unit',{{struct(... 'energy',struct(... 'envelope_type',int32(-999999999),... @@ -361,10 +592,6 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999)),... -'power_type',struct(... -'description','',... -'index',int32(-999999999),... -'name',''),... 'species',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -380,14 +607,56 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'fraction',double(-9e+40),... 'fraction_error_index',int32(-999999999),... 'fraction_error_lower',double(-9e+40),... 'fraction_error_upper',double(-9e+40),... 'label','') -;}}) -;}}),... +}}) +}}),... +'pf_active',struct(... +'coil',{{struct(... +'current',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'identifier','',... +'name','',... +'resistance_additional',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))) +}},... +'mode',struct(... +'data',int32([]),... +'time',double([])),... +'supply',{{struct(... +'identifier','',... +'name','',... +'voltage',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))) +}}),... 'position_control',struct(... 'active_limiter_point',struct(... 'r',struct(... @@ -431,7 +700,7 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999))) -;}},... +}},... 'elongation',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -487,7 +756,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)) -;}},... +}},... 'geometric_axis',struct(... 'r',struct(... 'envelope_type',int32(-999999999),... @@ -543,6 +812,46 @@ struct(... 'mode',struct(... 'data',int32([]),... 'time',double([])),... +'squareness_lower_inner',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'squareness_lower_outer',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'squareness_upper_inner',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'squareness_upper_outer',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... 'strike_point',{{struct(... 'r',struct(... 'envelope_type',int32(-999999999),... @@ -564,7 +873,7 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999))) -;}},... +}},... 'triangularity',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -575,6 +884,16 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999)),... +'triangularity_inner',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... 'triangularity_lower',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -585,6 +904,26 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999)),... +'triangularity_minor',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'triangularity_outer',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... 'triangularity_upper',struct(... 'envelope_type',int32(-999999999),... 'reference',struct(... @@ -616,7 +955,27 @@ struct(... 'time',double([])),... 'reference_name','',... 'reference_type',int32(-999999999))) -;}}),... +}},... +'z_r_max',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999)),... +'z_r_min',struct(... +'envelope_type',int32(-999999999),... +'reference',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'reference_name','',... +'reference_type',int32(-999999999))),... 'tf',struct(... 'b_field_tor_vacuum_r',struct(... 'envelope_type',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m index dd062ea667d0ed13c387c4ef47a344183182a953..a293b9da66ace9056414e2d2b14c8f36accdb201 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m @@ -1,19 +1,23 @@ function S = ids_empty_radiation % function S = ids_empty_radiation % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -34,15 +38,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -60,11 +64,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -76,12 +81,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -90,15 +103,60 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -119,7 +177,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'ion',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -135,7 +193,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'emissivity',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -147,7 +205,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'neutral_index',int32(-999999999),... @@ -164,7 +222,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... @@ -179,12 +237,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'neutral',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -200,7 +258,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'emissivity',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -212,7 +270,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'multiple_states_flag',int32(-999999999),... @@ -229,7 +287,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'neutral_type',struct(... 'description','',... @@ -240,10 +298,10 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'time',double(-9e+40)) -;}},... +}},... 'global_quantities',{{struct(... 'inside_lcfs',struct(... 'power',double(-9e+40),... @@ -280,7 +338,7 @@ struct(... 'power_neutral_total_error_lower',double(-9e+40),... 'power_neutral_total_error_upper',double(-9e+40)),... 'time',double(-9e+40)) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -355,7 +413,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'emissivity',double([]),... 'emissivity_error_index',int32(-999999999),... 'emissivity_error_lower',double([]),... @@ -391,12 +449,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'neutral',{{struct(... 'element',{{struct(... 'a',double(-9e+40),... @@ -412,7 +470,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'emissivity',double([]),... 'emissivity_error_index',int32(-999999999),... 'emissivity_error_lower',double([]),... @@ -444,8 +502,8 @@ struct(... 'vibrational_level_error_lower',double(-9e+40),... 'vibrational_level_error_upper',double(-9e+40),... 'vibrational_mode','') -;}}) -;}},... +}}) +}},... 'power_inside_ion_total',double([]),... 'power_inside_ion_total_error_index',int32(-999999999),... 'power_inside_ion_total_error_lower',double([]),... @@ -455,8 +513,8 @@ struct(... 'power_inside_neutral_total_error_lower',double([]),... 'power_inside_neutral_total_error_upper',double([]),... 'time',double(-9e+40)) -;}}) -;}},... +}}) +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m b/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m new file mode 100644 index 0000000000000000000000000000000000000000..cb9dc2ae484d0379721d15637648129cefa1634e --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m @@ -0,0 +1,98 @@ +function S = ids_empty_real_time_data +% function S = ids_empty_real_time_data +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'time',double([]),... +'topic',{{struct(... +'name','',... +'signal',{{struct(... +'allocated_position',int32(-999999999),... +'definition','',... +'name','',... +'quality',struct(... +'data',int32([]),... +'time',double([])),... +'value',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([]))) +}}) +}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m new file mode 100644 index 0000000000000000000000000000000000000000..47edff4dd25a7daad920ad8ce2c46fea513e3626 --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m @@ -0,0 +1,462 @@ +function S = ids_empty_reflectometer_fluctuation +% function S = ids_empty_reflectometer_fluctuation +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'channel',{{struct(... +'amplitude',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'antenna_detection_static',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40)),... +'antenna_emission_static',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40)),... +'antennas_orientation',{{struct(... +'antenna_detection',struct(... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'antenna_emission',struct(... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'line_of_sight_detection',struct(... +'first_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'line_of_sight_emission',struct(... +'first_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'time',double(-9e+40)) +}},... +'doppler',struct(... +'e_field_radial',double([]),... +'e_field_radial_error_index',int32(-999999999),... +'e_field_radial_error_lower',double([]),... +'e_field_radial_error_upper',double([]),... +'position',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'psi',double([]),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double([]),... +'psi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'rho_pol_norm',double([]),... +'rho_pol_norm_error_index',int32(-999999999),... +'rho_pol_norm_error_lower',double([]),... +'rho_pol_norm_error_upper',double([]),... +'rho_tor_norm',double([]),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double([]),... +'rho_tor_norm_error_upper',double([]),... +'theta',double([]),... +'theta_error_index',int32(-999999999),... +'theta_error_lower',double([]),... +'theta_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'radial_width',double(-9e+40),... +'radial_width_error_index',int32(-999999999),... +'radial_width_error_lower',double(-9e+40),... +'radial_width_error_upper',double(-9e+40),... +'shift',double([]),... +'shift_error_index',int32(-999999999),... +'shift_error_lower',double([]),... +'shift_error_upper',double([]),... +'time',double([]),... +'time_width',double(-9e+40),... +'time_width_error_index',int32(-999999999),... +'time_width_error_lower',double(-9e+40),... +'time_width_error_upper',double(-9e+40),... +'velocity_pol',double([]),... +'velocity_pol_error_index',int32(-999999999),... +'velocity_pol_error_lower',double([]),... +'velocity_pol_error_upper',double([]),... +'wavenumber',double([]),... +'wavenumber_error_index',int32(-999999999),... +'wavenumber_error_lower',double([]),... +'wavenumber_error_upper',double([])),... +'fluctuations_level',struct(... +'dn_e_over_n_e',double([]),... +'dn_e_over_n_e_error_index',int32(-999999999),... +'dn_e_over_n_e_error_lower',double([]),... +'dn_e_over_n_e_error_upper',double([]),... +'position',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'psi',double([]),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double([]),... +'psi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'rho_pol_norm',double([]),... +'rho_pol_norm_error_index',int32(-999999999),... +'rho_pol_norm_error_lower',double([]),... +'rho_pol_norm_error_upper',double([]),... +'rho_tor_norm',double([]),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double([]),... +'rho_tor_norm_error_upper',double([]),... +'theta',double([]),... +'theta_error_index',int32(-999999999),... +'theta_error_lower',double([]),... +'theta_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'radial_width',double(-9e+40),... +'radial_width_error_index',int32(-999999999),... +'radial_width_error_lower',double(-9e+40),... +'radial_width_error_upper',double(-9e+40),... +'time',double([]),... +'time_width',double(-9e+40),... +'time_width_error_index',int32(-999999999),... +'time_width_error_lower',double(-9e+40),... +'time_width_error_upper',double(-9e+40)),... +'fluctuations_spectrum',struct(... +'frequencies_fourier',double([]),... +'frequencies_fourier_error_index',int32(-999999999),... +'frequencies_fourier_error_lower',double([]),... +'frequencies_fourier_error_upper',double([]),... +'power_log',double([]),... +'power_log_error_index',int32(-999999999),... +'power_log_error_lower',double([]),... +'power_log_error_upper',double([]),... +'time',double([]),... +'time_width',double(-9e+40),... +'time_width_error_index',int32(-999999999),... +'time_width_error_lower',double(-9e+40),... +'time_width_error_upper',double(-9e+40)),... +'frequencies',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'identifier','',... +'mode','',... +'name','',... +'phase',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'raw_signal',struct(... +'i_component',double([]),... +'i_component_error_index',int32(-999999999),... +'i_component_error_lower',double([]),... +'i_component_error_upper',double([]),... +'q_component',double([]),... +'q_component_error_index',int32(-999999999),... +'q_component_error_lower',double([]),... +'q_component_error_upper',double([]),... +'time',double([])),... +'sweep_time',double(-9e+40),... +'sweep_time_error_index',int32(-999999999),... +'sweep_time_error_lower',double(-9e+40),... +'sweep_time_error_upper',double(-9e+40)) +}},... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'psi_normalization',struct(... +'psi_boundary',double([]),... +'psi_boundary_error_index',int32(-999999999),... +'psi_boundary_error_lower',double([]),... +'psi_boundary_error_upper',double([]),... +'psi_magnetic_axis',double([]),... +'psi_magnetic_axis_error_index',int32(-999999999),... +'psi_magnetic_axis_error_lower',double([]),... +'psi_magnetic_axis_error_upper',double([]),... +'time',double([])),... +'time',double([]),... +'type',''); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m index f8920292c4199b3199c833e68314a89c1cc43708..eab0b5219d680dd2a5eb59370a3c27c6588e1a9d 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m @@ -1,11 +1,181 @@ function S = ids_empty_reflectometer_profile % function S = ids_empty_reflectometer_profile % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... +'amplitude',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'antenna_detection',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'antenna_emission',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'cut_off_frequency',double([]),... +'cut_off_frequency_error_index',int32(-999999999),... +'cut_off_frequency_error_lower',double([]),... +'cut_off_frequency_error_upper',double([]),... 'frequencies',double([]),... 'frequencies_error_index',int32(-999999999),... 'frequencies_error_lower',double([]),... @@ -92,6 +262,10 @@ struct(... 'r_error_index',int32(-999999999),... 'r_error_lower',double([]),... 'r_error_upper',double([]),... +'rho_pol_norm',double([]),... +'rho_pol_norm_error_index',int32(-999999999),... +'rho_pol_norm_error_lower',double([]),... +'rho_pol_norm_error_upper',double([]),... 'rho_tor_norm',double([]),... 'rho_tor_norm_error_index',int32(-999999999),... 'rho_tor_norm_error_lower',double([]),... @@ -108,16 +282,18 @@ struct(... 'sweep_time_error_index',int32(-999999999),... 'sweep_time_error_lower',double(-9e+40),... 'sweep_time_error_upper',double(-9e+40)) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -127,12 +303,96 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'n_e',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'position',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'psi',double([]),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double([]),... +'psi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'rho_pol_norm',double([]),... +'rho_pol_norm_error_index',int32(-999999999),... +'rho_pol_norm_error_lower',double([]),... +'rho_pol_norm_error_upper',double([]),... +'rho_tor_norm',double([]),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double([]),... +'rho_tor_norm_error_upper',double([]),... +'theta',double([]),... +'theta_error_index',int32(-999999999),... +'theta_error_lower',double([]),... +'theta_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... 'psi_normalization',struct(... 'psi_boundary',double([]),... 'psi_boundary_error_index',int32(-999999999),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m index 5ca0b6eb8d8f89f603bb5693cfb1b994fa2661c0..d5f175bc6d78a27f489c832376c490461254e9a8 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m @@ -1,15 +1,48 @@ function S = ids_empty_refractometer % function S = ids_empty_refractometer % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... -'frequencies',double([]),... -'frequencies_error_index',int32(-999999999),... -'frequencies_error_lower',double([]),... -'frequencies_error_upper',double([]),... +'bandwidth',{{struct(... +'frequency_main',double(-9e+40),... +'frequency_main_error_index',int32(-999999999),... +'frequency_main_error_lower',double(-9e+40),... +'frequency_main_error_upper',double(-9e+40),... +'i_component',double([]),... +'i_component_error_index',int32(-999999999),... +'i_component_error_lower',double([]),... +'i_component_error_upper',double([]),... +'n_e_line',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'phase',double([]),... +'phase_error_index',int32(-999999999),... +'phase_error_lower',double([]),... +'phase_error_upper',double([]),... +'phase_quadrature',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'q_component',double([]),... +'q_component_error_index',int32(-999999999),... +'q_component_error_lower',double([]),... +'q_component_error_upper',double([]),... +'time',double([]),... +'time_detector',double([]),... +'time_detector_error_index',int32(-999999999),... +'time_detector_error_lower',double([]),... +'time_detector_error_upper',double([])) +}},... 'identifier','',... 'line_of_sight',struct(... 'first_point',struct(... @@ -45,33 +78,28 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... -'name','',... -'phase',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'phase_quadrature',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'sweep_time',double(-9e+40),... -'sweep_time_error_index',int32(-999999999),... -'sweep_time_error_lower',double(-9e+40),... -'sweep_time_error_upper',double(-9e+40)) -;}},... +'n_e_profile_approximation',struct(... +'formula',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'parameters',double([]),... +'parameters_error_index',int32(-999999999),... +'parameters_error_lower',double([]),... +'parameters_error_upper',double([])),... +'name','') +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -81,11 +109,60 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([]),... 'type',''); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m b/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m new file mode 100644 index 0000000000000000000000000000000000000000..bd4f5702c1f99137b3874ef1656d01ef811508fe --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m @@ -0,0 +1,586 @@ +function S = ids_empty_runaway_electrons +% function S = ids_empty_runaway_electrons +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'distribution',struct(... +'ggd',{{struct(... +'expansion',{{struct(... +'grid_subset',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}) +}},... +'expansion_fd3v',{{struct(... +'grid_subset',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}) +}},... +'temperature',double([]),... +'temperature_error_index',int32(-999999999),... +'temperature_error_lower',double([]),... +'temperature_error_upper',double([]),... +'time',double(-9e+40)) +}},... +'gyro_type',int32(-999999999),... +'markers',{{struct(... +'coordinate_identifier',{{struct(... +'description','',... +'index',int32(-999999999),... +'name','') +}},... +'orbit_integrals',struct(... +'bounce_harmonics',int32([]),... +'expressions',{{}},... +'m_pol',int32([]),... +'n_tor',int32([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... +'orbit_integrals_instant',struct(... +'expressions',{{}},... +'time_orbit',double([]),... +'time_orbit_error_index',int32(-999999999),... +'time_orbit_error_lower',double([]),... +'time_orbit_error_upper',double([]),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])),... +'positions',double([]),... +'positions_error_index',int32(-999999999),... +'positions_error_lower',double([]),... +'positions_error_upper',double([]),... +'time',double(-9e+40),... +'toroidal_mode',int32(-999999999),... +'weights',double([]),... +'weights_error_index',int32(-999999999),... +'weights_error_lower',double([]),... +'weights_error_upper',double([])) +}}),... +'e_field_critical_definition',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'ggd_fluid',{{struct(... +'current_density',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ddensity_dt_compton',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ddensity_dt_dreicer',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ddensity_dt_hot_tail',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ddensity_dt_total',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ddensity_dt_tritium',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'density',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'e_field_critical',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'e_field_dreicer',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'energy_density_kinetic',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'momentum_critical_avalanche',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'momentum_critical_hot_tail',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'pitch_angle',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'time',double(-9e+40)) +}},... +'global_quantities',struct(... +'current_tor',double([]),... +'current_tor_error_index',int32(-999999999),... +'current_tor_error_lower',double([]),... +'current_tor_error_upper',double([]),... +'energy_kinetic',double([]),... +'energy_kinetic_error_index',int32(-999999999),... +'energy_kinetic_error_lower',double([]),... +'energy_kinetic_error_upper',double([]),... +'volume_average',struct(... +'current_density',double([]),... +'current_density_error_index',int32(-999999999),... +'current_density_error_lower',double([]),... +'current_density_error_upper',double([]),... +'ddensity_dt_compton',double([]),... +'ddensity_dt_compton_error_index',int32(-999999999),... +'ddensity_dt_compton_error_lower',double([]),... +'ddensity_dt_compton_error_upper',double([]),... +'ddensity_dt_dreicer',double([]),... +'ddensity_dt_dreicer_error_index',int32(-999999999),... +'ddensity_dt_dreicer_error_lower',double([]),... +'ddensity_dt_dreicer_error_upper',double([]),... +'ddensity_dt_hot_tail',double([]),... +'ddensity_dt_hot_tail_error_index',int32(-999999999),... +'ddensity_dt_hot_tail_error_lower',double([]),... +'ddensity_dt_hot_tail_error_upper',double([]),... +'ddensity_dt_total',double([]),... +'ddensity_dt_total_error_index',int32(-999999999),... +'ddensity_dt_total_error_lower',double([]),... +'ddensity_dt_total_error_upper',double([]),... +'ddensity_dt_tritium',double([]),... +'ddensity_dt_tritium_error_index',int32(-999999999),... +'ddensity_dt_tritium_error_lower',double([]),... +'ddensity_dt_tritium_error_upper',double([]),... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'e_field_critical',double([]),... +'e_field_critical_error_index',int32(-999999999),... +'e_field_critical_error_lower',double([]),... +'e_field_critical_error_upper',double([]),... +'e_field_dreicer',double([]),... +'e_field_dreicer_error_index',int32(-999999999),... +'e_field_dreicer_error_lower',double([]),... +'e_field_dreicer_error_upper',double([]),... +'energy_density_kinetic',double([]),... +'energy_density_kinetic_error_index',int32(-999999999),... +'energy_density_kinetic_error_lower',double([]),... +'energy_density_kinetic_error_upper',double([]),... +'momentum_critical_avalanche',double([]),... +'momentum_critical_avalanche_error_index',int32(-999999999),... +'momentum_critical_avalanche_error_lower',double([]),... +'momentum_critical_avalanche_error_upper',double([]),... +'momentum_critical_hot_tail',double([]),... +'momentum_critical_hot_tail_error_index',int32(-999999999),... +'momentum_critical_hot_tail_error_lower',double([]),... +'momentum_critical_hot_tail_error_upper',double([]),... +'pitch_angle',double([]),... +'pitch_angle_error_index',int32(-999999999),... +'pitch_angle_error_lower',double([]),... +'pitch_angle_error_upper',double([]))),... +'grid_ggd',{{struct(... +'grid_subset',{{struct(... +'base',{{struct(... +'jacobian',double([]),... +'jacobian_error_index',int32(-999999999),... +'jacobian_error_lower',double([]),... +'jacobian_error_upper',double([]),... +'tensor_contravariant',double([]),... +'tensor_contravariant_error_index',int32(-999999999),... +'tensor_contravariant_error_lower',double([]),... +'tensor_contravariant_error_upper',double([]),... +'tensor_covariant',double([]),... +'tensor_covariant_error_index',int32(-999999999),... +'tensor_covariant_error_lower',double([]),... +'tensor_covariant_error_upper',double([])) +}},... +'dimension',int32(-999999999),... +'element',{{struct(... +'object',{{struct(... +'dimension',int32(-999999999),... +'index',int32(-999999999),... +'space',int32(-999999999)) +}}) +}},... +'identifier',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'metric',struct(... +'jacobian',double([]),... +'jacobian_error_index',int32(-999999999),... +'jacobian_error_lower',double([]),... +'jacobian_error_upper',double([]),... +'tensor_contravariant',double([]),... +'tensor_contravariant_error_index',int32(-999999999),... +'tensor_contravariant_error_lower',double([]),... +'tensor_contravariant_error_upper',double([]),... +'tensor_covariant',double([]),... +'tensor_covariant_error_index',int32(-999999999),... +'tensor_covariant_error_lower',double([]),... +'tensor_covariant_error_upper',double([]))) +}},... +'identifier',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'path','',... +'space',{{struct(... +'coordinates_type',int32([]),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'object',{{struct(... +'boundary',{{struct(... +'index',int32(-999999999),... +'neighbours',int32([])) +}},... +'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... +'geometry_error_index',int32(-999999999),... +'geometry_error_lower',double([]),... +'geometry_error_upper',double([]),... +'measure',double(-9e+40),... +'measure_error_index',int32(-999999999),... +'measure_error_lower',double(-9e+40),... +'measure_error_upper',double(-9e+40),... +'nodes',int32([])) +}}) +}}) +}},... +'time',double(-9e+40)) +}},... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'momentum_critical_avalanche_definition',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'momentum_critical_hot_tail_definition',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'profiles_1d',{{struct(... +'current_density',double([]),... +'current_density_error_index',int32(-999999999),... +'current_density_error_lower',double([]),... +'current_density_error_upper',double([]),... +'ddensity_dt_compton',double([]),... +'ddensity_dt_compton_error_index',int32(-999999999),... +'ddensity_dt_compton_error_lower',double([]),... +'ddensity_dt_compton_error_upper',double([]),... +'ddensity_dt_dreicer',double([]),... +'ddensity_dt_dreicer_error_index',int32(-999999999),... +'ddensity_dt_dreicer_error_lower',double([]),... +'ddensity_dt_dreicer_error_upper',double([]),... +'ddensity_dt_hot_tail',double([]),... +'ddensity_dt_hot_tail_error_index',int32(-999999999),... +'ddensity_dt_hot_tail_error_lower',double([]),... +'ddensity_dt_hot_tail_error_upper',double([]),... +'ddensity_dt_total',double([]),... +'ddensity_dt_total_error_index',int32(-999999999),... +'ddensity_dt_total_error_lower',double([]),... +'ddensity_dt_total_error_upper',double([]),... +'ddensity_dt_tritium',double([]),... +'ddensity_dt_tritium_error_index',int32(-999999999),... +'ddensity_dt_tritium_error_lower',double([]),... +'ddensity_dt_tritium_error_upper',double([]),... +'density',double([]),... +'density_error_index',int32(-999999999),... +'density_error_lower',double([]),... +'density_error_upper',double([]),... +'e_field_critical',double([]),... +'e_field_critical_error_index',int32(-999999999),... +'e_field_critical_error_lower',double([]),... +'e_field_critical_error_upper',double([]),... +'e_field_dreicer',double([]),... +'e_field_dreicer_error_index',int32(-999999999),... +'e_field_dreicer_error_lower',double([]),... +'e_field_dreicer_error_upper',double([]),... +'energy_density_kinetic',double([]),... +'energy_density_kinetic_error_index',int32(-999999999),... +'energy_density_kinetic_error_lower',double([]),... +'energy_density_kinetic_error_upper',double([]),... +'grid',struct(... +'area',double([]),... +'area_error_index',int32(-999999999),... +'area_error_lower',double([]),... +'area_error_upper',double([]),... +'psi',double([]),... +'psi_boundary',double(-9e+40),... +'psi_boundary_error_index',int32(-999999999),... +'psi_boundary_error_lower',double(-9e+40),... +'psi_boundary_error_upper',double(-9e+40),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double([]),... +'psi_error_upper',double([]),... +'psi_magnetic_axis',double(-9e+40),... +'psi_magnetic_axis_error_index',int32(-999999999),... +'psi_magnetic_axis_error_lower',double(-9e+40),... +'psi_magnetic_axis_error_upper',double(-9e+40),... +'rho_pol_norm',double([]),... +'rho_pol_norm_error_index',int32(-999999999),... +'rho_pol_norm_error_lower',double([]),... +'rho_pol_norm_error_upper',double([]),... +'rho_tor',double([]),... +'rho_tor_error_index',int32(-999999999),... +'rho_tor_error_lower',double([]),... +'rho_tor_error_upper',double([]),... +'rho_tor_norm',double([]),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double([]),... +'rho_tor_norm_error_upper',double([]),... +'surface',double([]),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double([]),... +'surface_error_upper',double([]),... +'volume',double([]),... +'volume_error_index',int32(-999999999),... +'volume_error_lower',double([]),... +'volume_error_upper',double([])),... +'momentum_critical_avalanche',double([]),... +'momentum_critical_avalanche_error_index',int32(-999999999),... +'momentum_critical_avalanche_error_lower',double([]),... +'momentum_critical_avalanche_error_upper',double([]),... +'momentum_critical_hot_tail',double([]),... +'momentum_critical_hot_tail_error_index',int32(-999999999),... +'momentum_critical_hot_tail_error_lower',double([]),... +'momentum_critical_hot_tail_error_upper',double([]),... +'pitch_angle',double([]),... +'pitch_angle_error_index',int32(-999999999),... +'pitch_angle_error_lower',double([]),... +'pitch_angle_error_upper',double([]),... +'time',double(-9e+40),... +'transport_perpendicular',struct(... +'d',double([]),... +'d_error_index',int32(-999999999),... +'d_error_lower',double([]),... +'d_error_upper',double([]),... +'flux',double([]),... +'flux_error_index',int32(-999999999),... +'flux_error_lower',double([]),... +'flux_error_upper',double([]),... +'v',double([]),... +'v_error_index',int32(-999999999),... +'v_error_lower',double([]),... +'v_error_upper',double([]))) +}},... +'time',double([]),... +'vacuum_toroidal_field',struct(... +'b0',double([]),... +'b0_error_index',int32(-999999999),... +'b0_error_lower',double([]),... +'b0_error_upper',double([]),... +'r0',double(-9e+40),... +'r0_error_index',int32(-999999999),... +'r0_error_lower',double(-9e+40),... +'r0_error_upper',double(-9e+40))); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m b/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m index da42ec8a25c504a4912f3a40b32985dc055e1818..c4ced31d37f122659aae9068257e241cf4715ceb 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m @@ -1,19 +1,23 @@ function S = ids_empty_sawteeth % function S = ids_empty_sawteeth % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -50,6 +54,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -207,7 +256,7 @@ struct(... 'zeff_error_index',int32(-999999999),... 'zeff_error_lower',double([]),... 'zeff_error_upper',double([])) -;}},... +}},... 'time',double([]),... 'vacuum_toroidal_field',struct(... 'b0',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m b/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m deleted file mode 100644 index 2a4b9700e0c4199eb6aeae01a55e63b8b4d6d697..0000000000000000000000000000000000000000 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m +++ /dev/null @@ -1,49 +0,0 @@ -function S = ids_empty_sdn -% function S = ids_empty_sdn -% -% File written automatically using struct2m.m - -S = ... -struct(... -'code',struct(... -'commit','',... -'library',{{struct(... -'commit','',... -'name','',... -'parameters','',... -'repository','',... -'version','') -;}},... -'name','',... -'output_flag',int32([]),... -'parameters','',... -'repository','',... -'version',''),... -'ids_properties',struct(... -'comment','',... -'creation_date','',... -'homogeneous_time',int32(-999999999),... -'provider','',... -'source','',... -'version_put',struct(... -'access_layer','',... -'access_layer_language','',... -'data_dictionary','')),... -'time',double([]),... -'topic',{{struct(... -'name','',... -'signal',{{struct(... -'allocated_position',int32(-999999999),... -'definition','',... -'name','',... -'quality',struct(... -'data',int32([]),... -'time',double([])),... -'value',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([]))) -;}}) -;}}); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m index e56a4d6cfe1c33a15df7c95cb07215da7a91ceaf..3a0783cc4f846a72cba102b6b697cde4135f5c2f 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m @@ -1,9 +1,11 @@ function S = ids_empty_soft_x_rays % function S = ids_empty_soft_x_rays % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'aperture',{{struct(... @@ -85,7 +87,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'brightness',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -188,7 +190,7 @@ struct(... 'upper_bound_error_index',int32(-999999999),... 'upper_bound_error_lower',double(-9e+40),... 'upper_bound_error_upper',double(-9e+40)) -;}},... +}},... 'etendue',double(-9e+40),... 'etendue_error_index',int32(-999999999),... 'etendue_error_lower',double(-9e+40),... @@ -197,6 +199,126 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'filter_window',{{struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'photon_absorption',double([]),... +'photon_absorption_error_index',int32(-999999999),... +'photon_absorption_error_lower',double([]),... +'photon_absorption_error_upper',double([]),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'wavelength_lower',double(-9e+40),... +'wavelength_lower_error_index',int32(-999999999),... +'wavelength_lower_error_lower',double(-9e+40),... +'wavelength_lower_error_upper',double(-9e+40),... +'wavelength_upper',double(-9e+40),... +'wavelength_upper_error_index',int32(-999999999),... +'wavelength_upper_error_lower',double(-9e+40),... +'wavelength_upper_error_upper',double(-9e+40),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([]),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))) +}},... 'identifier','',... 'line_of_sight',struct(... 'first_point',struct(... @@ -236,16 +358,18 @@ struct(... 'validity_timed',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -255,10 +379,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m index 3b01c69b849323fcae6a88031f90fda73b0adeba..3aa0d5f222a01e85e4351beff0915efc2c3feec1 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m @@ -1,23 +1,44 @@ function S = ids_empty_spectrometer_mass % function S = ids_empty_spectrometer_mass % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... -'a',double([]),... +'channel',{{struct(... +'a',double(-9e+40),... 'a_error_index',int32(-999999999),... -'a_error_lower',double([]),... -'a_error_upper',double([]),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'current',double([]),... +'current_error_index',int32(-999999999),... +'current_error_lower',double([]),... +'current_error_upper',double([]),... +'photomultiplier_voltage',double([]),... +'photomultiplier_voltage_error_index',int32(-999999999),... +'photomultiplier_voltage_error_lower',double([]),... +'photomultiplier_voltage_error_upper',double([]),... +'pressure_partial',double([]),... +'pressure_partial_error_index',int32(-999999999),... +'pressure_partial_error_lower',double([]),... +'pressure_partial_error_upper',double([]),... +'time',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([])) +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -28,19 +49,71 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'name','',... -'pressures_partial',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([]),... -'validity',int32(-999999999),... -'validity_timed',int32([])),... +'residual_spectrum',{{struct(... +'a',double([]),... +'a_error_index',int32(-999999999),... +'a_error_lower',double([]),... +'a_error_upper',double([]),... +'current',double([]),... +'current_error_index',int32(-999999999),... +'current_error_lower',double([]),... +'current_error_upper',double([]),... +'time',double(-9e+40)) +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m index b5efbc4e7cba917b123c54b5bd52fcdd885f1da1..da1fc1341767ab41338dcc552b4c081380bd973a 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m @@ -1,9 +1,11 @@ function S = ids_empty_spectrometer_uv % function S = ids_empty_spectrometer_uv % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'aperture',{{struct(... @@ -85,7 +87,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -382,7 +384,7 @@ struct(... 'wavelength_central_error_index',int32(-999999999),... 'wavelength_central_error_lower',double(-9e+40),... 'wavelength_central_error_upper',double(-9e+40)) -;}},... +}},... 'radiance_calibration',double([]),... 'radiance_calibration_date','',... 'radiance_calibration_error_index',int32(-999999999),... @@ -402,7 +404,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'validity',int32(-999999999),... 'validity_timed',struct(... 'data',int32([]),... @@ -421,16 +423,18 @@ struct(... 'wavelengths_error_index',int32(-999999999),... 'wavelengths_error_lower',double([]),... 'wavelengths_error_upper',double([])) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -448,10 +452,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m index 5fc6ffaf9b16b3c247306ef59f57a6f6abf3cb0b..cb8a2da0817dc8cfbbd4bd42587bf93fa24af28f 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m @@ -1,9 +1,11 @@ function S = ids_empty_spectrometer_visible % function S = ids_empty_spectrometer_visible % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'active_spatial_resolution',{{struct(... @@ -34,7 +36,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'aperture',{{struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -114,7 +116,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))) -;}},... +}},... 'detector',struct(... 'centre',struct(... 'phi',double(-9e+40),... @@ -226,6 +228,99 @@ struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'fibre_bundle',struct(... +'fibre_positions',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'fibre_radius',double(-9e+40),... +'fibre_radius_error_index',int32(-999999999),... +'fibre_radius_error_lower',double(-9e+40),... +'fibre_radius_error_upper',double(-9e+40),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)))),... 'fibre_image',struct(... 'circular',struct(... 'ellipticity',double(-9e+40),... @@ -251,76 +346,106 @@ struct(... 'z_error_lower',double([]),... 'z_error_upper',double([]))),... 'filter_spectrometer',struct(... -'calibrated_line_integrals',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'calibrated_lines',double([]),... -'calibrated_lines_error_index',int32(-999999999),... -'calibrated_lines_error_lower',double([]),... -'calibrated_lines_error_upper',double([]),... 'exposure_time',double(-9e+40),... 'exposure_time_error_index',int32(-999999999),... 'exposure_time_error_lower',double(-9e+40),... 'exposure_time_error_upper',double(-9e+40),... -'line_intensities',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'line_labels',{{}},... -'line_power_radiances',struct(... +'filter',struct(... +'wavelength_central',double(-9e+40),... +'wavelength_central_error_index',int32(-999999999),... +'wavelength_central_error_lower',double(-9e+40),... +'wavelength_central_error_upper',double(-9e+40),... +'wavelength_width',double(-9e+40),... +'wavelength_width_error_index',int32(-999999999),... +'wavelength_width_error_lower',double(-9e+40),... +'wavelength_width_error_upper',double(-9e+40)),... +'output_voltage',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... -'line_radiances',struct(... +'photoelectric_voltage',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... -'line_radiances_adjusted',struct(... +'photon_count',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... -'output_voltage',struct(... +'processed_line',{{struct(... +'label','',... +'wavelength_central',double(-9e+40),... +'wavelength_central_error_index',int32(-999999999),... +'wavelength_central_error_lower',double(-9e+40),... +'wavelength_central_error_upper',double(-9e+40)) +}},... +'radiance_calibration',double([]),... +'radiance_calibration_date','',... +'radiance_calibration_error_index',int32(-999999999),... +'radiance_calibration_error_lower',double([]),... +'radiance_calibration_error_upper',double([]),... +'sensitivity',double([]),... +'sensitivity_error_index',int32(-999999999),... +'sensitivity_error_lower',double([]),... +'sensitivity_error_upper',double([]),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'geometry_matrix',struct(... +'emission_grid',struct(... +'dim1',double([]),... +'dim1_error_index',int32(-999999999),... +'dim1_error_lower',double([]),... +'dim1_error_upper',double([]),... +'dim2',double([]),... +'dim2_error_index',int32(-999999999),... +'dim2_error_lower',double([]),... +'dim2_error_upper',double([]),... +'dim3',double([]),... +'dim3_error_index',int32(-999999999),... +'dim3_error_lower',double([]),... +'dim3_error_upper',double([]),... +'grid_type',struct(... +'description','',... +'index',int32(-999999999),... +'name','')),... +'interpolated',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([])),... -'photoelectric_voltage',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'voxel_map',int32([]),... +'voxels_n',int32(-999999999),... +'with_reflections',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([])),... -'photon_count',struct(... +'voxel_indices',int32([])),... +'without_reflections',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([])),... -'processed_lines',double([]),... -'processed_lines_error_index',int32(-999999999),... -'processed_lines_error_lower',double([]),... -'processed_lines_error_upper',double([]),... -'radiance_calibration',double(-9e+40),... -'radiance_calibration_date','',... -'radiance_calibration_error_index',int32(-999999999),... -'radiance_calibration_error_lower',double(-9e+40),... -'radiance_calibration_error_upper',double(-9e+40),... -'raw_lines',double([]),... -'raw_lines_error_index',int32(-999999999),... -'raw_lines_error_lower',double([]),... -'raw_lines_error_upper',double([])),... +'voxel_indices',int32([]))),... 'grating_spectrometer',struct(... 'exposure_time',double(-9e+40),... 'exposure_time_error_index',int32(-999999999),... @@ -330,6 +455,10 @@ struct(... 'grating_error_index',int32(-999999999),... 'grating_error_lower',double(-9e+40),... 'grating_error_upper',double(-9e+40),... +'instrument_function',double([]),... +'instrument_function_error_index',int32(-999999999),... +'instrument_function_error_lower',double([]),... +'instrument_function_error_upper',double([]),... 'intensity_spectrum',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -354,7 +483,7 @@ struct(... 'wavelength_central_error_index',int32(-999999999),... 'wavelength_central_error_lower',double(-9e+40),... 'wavelength_central_error_upper',double(-9e+40)) -;}},... +}},... 'radiance_calibration',double([]),... 'radiance_calibration_date','',... 'radiance_calibration_error_index',int32(-999999999),... @@ -412,7 +541,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'hot_neutrals_fraction',double([]),... 'hot_neutrals_fraction_error_index',int32(-999999999),... 'hot_neutrals_fraction_error_lower',double([]),... @@ -423,7 +552,7 @@ struct(... 'hot_neutrals_temperature_error_upper',double([]),... 'label','',... 'time',double([])) -;}},... +}},... 'method',struct(... 'description','',... 'index',int32(-999999999),... @@ -482,6 +611,146 @@ struct(... 'z_error_upper',double(-9e+40))),... 'name','',... 'object_observed','',... +'optical_element',{{struct(... +'back_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'front_surface',struct(... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40)),... +'geometry',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'material_properties',struct(... +'extinction_coefficient',double([]),... +'extinction_coefficient_error_index',int32(-999999999),... +'extinction_coefficient_error_lower',double([]),... +'extinction_coefficient_error_upper',double([]),... +'refractive_index',double([]),... +'refractive_index_error_index',int32(-999999999),... +'refractive_index_error_lower',double([]),... +'refractive_index_error_upper',double([]),... +'roughness',double([]),... +'roughness_error_index',int32(-999999999),... +'roughness_error_lower',double([]),... +'roughness_error_upper',double([]),... +'transmission_coefficient',double([]),... +'transmission_coefficient_error_index',int32(-999999999),... +'transmission_coefficient_error_lower',double([]),... +'transmission_coefficient_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name','')) +}},... 'polarization_spectroscopy',struct(... 'b_field_modulus',double([]),... 'b_field_modulus_error_index',int32(-999999999),... @@ -608,16 +877,18 @@ struct(... 'validity_timed',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -628,10 +899,59 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m index b28b530a26d8dee530027f0c61954fe00d1de261..461dc9ce5331b12571b083fa4f5f9732f0cc1088 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m @@ -1,10 +1,155 @@ function S = ids_empty_spectrometer_x_ray_crystal % function S = ids_empty_spectrometer_x_ray_crystal % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... +'channel',{{struct(... +'aperture',struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'geometry_type',int32(-999999999),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'bin',{{struct(... +'instrument_function',struct(... +'centre',double([]),... +'centre_error_index',int32(-999999999),... +'centre_error_lower',double([]),... +'centre_error_upper',double([]),... +'intensity',double([]),... +'intensity_error_index',int32(-999999999),... +'intensity_error_lower',double([]),... +'intensity_error_upper',double([]),... +'scale',double([]),... +'scale_error_index',int32(-999999999),... +'scale_error_lower',double([]),... +'scale_error_upper',double([]),... +'sigma',double([]),... +'sigma_error_index',int32(-999999999),... +'sigma_error_lower',double([]),... +'sigma_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([]),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'line_of_sight',struct(... +'first_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'second_point',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))),... +'wavelength',double([]),... +'wavelength_error_index',int32(-999999999),... +'wavelength_error_lower',double([]),... +'wavelength_error_upper',double([]),... +'z_pixel_range',int32([])) +}},... 'camera',struct(... 'camera_dimensions',double([]),... 'camera_dimensions_error_index',int32(-999999999),... @@ -23,11 +168,78 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)),... +'identifier','',... +'line_of_sight',struct(... +'first_point',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'second_point',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([]))),... 'pixel_dimensions',double([]),... 'pixel_dimensions_error_index',int32(-999999999),... 'pixel_dimensions_error_lower',double([]),... 'pixel_dimensions_error_upper',double([]),... -'pixel_n',int32([]),... +'pixel_position',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'pixels_n',int32([]),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... 'x3_unit_vector',struct(... 'x',double(-9e+40),... 'x_error_index',int32(-999999999),... @@ -41,51 +253,12 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))),... -'code',struct(... -'commit','',... -'library',{{struct(... -'commit','',... -'name','',... -'parameters','',... -'repository','',... -'version','') -;}},... -'name','',... -'output_flag',int32([]),... -'parameters','',... -'repository','',... -'version',''),... 'crystal',struct(... 'angle_bragg',double(-9e+40),... 'angle_bragg_error_index',int32(-999999999),... 'angle_bragg_error_lower',double(-9e+40),... 'angle_bragg_error_upper',double(-9e+40),... -'angular_span_horizontal',double(-9e+40),... -'angular_span_horizontal_error_index',int32(-999999999),... -'angular_span_horizontal_error_lower',double(-9e+40),... -'angular_span_horizontal_error_upper',double(-9e+40),... -'angular_span_vertical',double(-9e+40),... -'angular_span_vertical_error_index',int32(-999999999),... -'angular_span_vertical_error_lower',double(-9e+40),... -'angular_span_vertical_error_upper',double(-9e+40),... -'curvature_horizontal',double(-9e+40),... -'curvature_horizontal_error_index',int32(-999999999),... -'curvature_horizontal_error_lower',double(-9e+40),... -'curvature_horizontal_error_upper',double(-9e+40),... -'curvature_vertical',double(-9e+40),... -'curvature_vertical_error_index',int32(-999999999),... -'curvature_vertical_error_lower',double(-9e+40),... -'curvature_vertical_error_upper',double(-9e+40),... -'geometry_type',struct(... -'description','',... -'index',int32(-999999999),... -'name',''),... -'height',double(-9e+40),... -'height_error_index',int32(-999999999),... -'height_error_lower',double(-9e+40),... -'height_error_upper',double(-9e+40),... -'material','',... -'summit',struct(... +'centre',struct(... 'phi',double(-9e+40),... 'phi_error_index',int32(-999999999),... 'phi_error_lower',double(-9e+40),... @@ -98,14 +271,91 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'cut',int32([]),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'mesh_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'thickness',double(-9e+40),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double(-9e+40),... +'thickness_error_upper',double(-9e+40),... 'wavelength_bragg',double(-9e+40),... 'wavelength_bragg_error_index',int32(-999999999),... 'wavelength_bragg_error_lower',double(-9e+40),... 'wavelength_bragg_error_upper',double(-9e+40),... -'width',double(-9e+40),... -'width_error_index',int32(-999999999),... -'width_error_lower',double(-9e+40),... -'width_error_upper',double(-9e+40),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... 'x3_unit_vector',struct(... 'x',double(-9e+40),... 'x_error_index',int32(-999999999),... @@ -119,6 +369,14 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double(-9e+40),... 'z_error_upper',double(-9e+40))),... +'detection_efficiency',double([]),... +'detection_efficiency_error_index',int32(-999999999),... +'detection_efficiency_error_lower',double([]),... +'detection_efficiency_error_upper',double([]),... +'energies',double([]),... +'energies_error_index',int32(-999999999),... +'energies_error_lower',double([]),... +'energies_error_upper',double([]),... 'energy_bound_lower',double([]),... 'energy_bound_lower_error_index',int32(-999999999),... 'energy_bound_lower_error_lower',double([]),... @@ -127,58 +385,313 @@ struct(... 'energy_bound_upper_error_index',int32(-999999999),... 'energy_bound_upper_error_lower',double([]),... 'energy_bound_upper_error_upper',double([]),... -'filter_window',struct(... -'material','',... +'exposure_time',double(-9e+40),... +'exposure_time_error_index',int32(-999999999),... +'exposure_time_error_lower',double(-9e+40),... +'exposure_time_error_upper',double(-9e+40),... +'filter_window',{{struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'photon_absorption',double([]),... +'photon_absorption_error_index',int32(-999999999),... +'photon_absorption_error_lower',double([]),... +'photon_absorption_error_upper',double([]),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... 'thickness',double(-9e+40),... 'thickness_error_index',int32(-999999999),... 'thickness_error_lower',double(-9e+40),... -'thickness_error_upper',double(-9e+40)),... +'thickness_error_upper',double(-9e+40),... +'wavelength_lower',double(-9e+40),... +'wavelength_lower_error_index',int32(-999999999),... +'wavelength_lower_error_lower',double(-9e+40),... +'wavelength_lower_error_upper',double(-9e+40),... +'wavelength_upper',double(-9e+40),... +'wavelength_upper_error_index',int32(-999999999),... +'wavelength_upper_error_lower',double(-9e+40),... +'wavelength_upper_error_upper',double(-9e+40),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([]),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))) +}},... 'frame',{{struct(... -'photon_count',double([]),... -'photon_count_error_index',int32(-999999999),... -'photon_count_error_lower',double([]),... -'photon_count_error_upper',double([]),... +'counts_bin_n',double([]),... +'counts_bin_n_error_index',int32(-999999999),... +'counts_bin_n_error_lower',double([]),... +'counts_bin_n_error_upper',double([]),... +'counts_n',double([]),... +'counts_n_error_index',int32(-999999999),... +'counts_n_error_lower',double([]),... +'counts_n_error_upper',double([]),... 'time',double(-9e+40)) -;}},... -'ids_properties',struct(... -'comment','',... -'creation_date','',... -'homogeneous_time',int32(-999999999),... -'provider','',... -'source','',... -'version_put',struct(... -'access_layer','',... -'access_layer_language','',... -'data_dictionary','')),... -'integration_time',double(-9e+40),... -'integration_time_error_index',int32(-999999999),... -'integration_time_error_lower',double(-9e+40),... -'integration_time_error_upper',double(-9e+40),... -'t_e_proxy',struct(... +}},... +'instrument_function',struct(... +'centre',double([]),... +'centre_error_index',int32(-999999999),... +'centre_error_lower',double([]),... +'centre_error_upper',double([]),... +'intensity',double([]),... +'intensity_error_index',int32(-999999999),... +'intensity_error_lower',double([]),... +'intensity_error_upper',double([]),... +'scale',double([]),... +'scale_error_index',int32(-999999999),... +'scale_error_lower',double([]),... +'scale_error_upper',double([]),... +'sigma',double([]),... +'sigma_error_index',int32(-999999999),... +'sigma_error_lower',double([]),... +'sigma_error_upper',double([]),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([]),... +'wavelengths',double([]),... +'wavelengths_error_index',int32(-999999999),... +'wavelengths_error_lower',double([]),... +'wavelengths_error_upper',double([])),... +'profiles_line_integrated',struct(... +'lines_of_sight_rho_tor_norm',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... -'t_i_proxy',struct(... +'lines_of_sight_second_point',struct(... +'phi',double([]),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double([]),... +'phi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'t_e',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... -'time',double([]),... -'velocity_tor_proxy',struct(... +'t_i',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... 'data_error_lower',double([]),... 'data_error_upper',double([]),... -'time',double([]),... 'validity',int32(-999999999),... 'validity_timed',int32([])),... +'time',double([]),... +'velocity_tor',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'validity',int32(-999999999),... +'validity_timed',int32([]))),... +'reflector',{{struct(... +'centre',struct(... +'phi',double(-9e+40),... +'phi_error_index',int32(-999999999),... +'phi_error_lower',double(-9e+40),... +'phi_error_upper',double(-9e+40),... +'r',double(-9e+40),... +'r_error_index',int32(-999999999),... +'r_error_lower',double(-9e+40),... +'r_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'curvature_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'geometry_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'identifier','',... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'outline',struct(... +'x1',double([]),... +'x1_error_index',int32(-999999999),... +'x1_error_lower',double([]),... +'x1_error_upper',double([]),... +'x2',double([]),... +'x2_error_index',int32(-999999999),... +'x2_error_lower',double([]),... +'x2_error_upper',double([])),... +'radius',double(-9e+40),... +'radius_error_index',int32(-999999999),... +'radius_error_lower',double(-9e+40),... +'radius_error_upper',double(-9e+40),... +'surface',double(-9e+40),... +'surface_error_index',int32(-999999999),... +'surface_error_lower',double(-9e+40),... +'surface_error_upper',double(-9e+40),... +'x1_curvature',double(-9e+40),... +'x1_curvature_error_index',int32(-999999999),... +'x1_curvature_error_lower',double(-9e+40),... +'x1_curvature_error_upper',double(-9e+40),... +'x1_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x1_width',double(-9e+40),... +'x1_width_error_index',int32(-999999999),... +'x1_width_error_lower',double(-9e+40),... +'x1_width_error_upper',double(-9e+40),... +'x2_curvature',double(-9e+40),... +'x2_curvature_error_index',int32(-999999999),... +'x2_curvature_error_lower',double(-9e+40),... +'x2_curvature_error_upper',double(-9e+40),... +'x2_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40)),... +'x2_width',double(-9e+40),... +'x2_width_error_index',int32(-999999999),... +'x2_width_error_lower',double(-9e+40),... +'x2_width_error_upper',double(-9e+40),... +'x3_unit_vector',struct(... +'x',double(-9e+40),... +'x_error_index',int32(-999999999),... +'x_error_lower',double(-9e+40),... +'x_error_upper',double(-9e+40),... +'y',double(-9e+40),... +'y_error_index',int32(-999999999),... +'y_error_lower',double(-9e+40),... +'y_error_upper',double(-9e+40),... +'z',double(-9e+40),... +'z_error_index',int32(-999999999),... +'z_error_lower',double(-9e+40),... +'z_error_upper',double(-9e+40))) +}},... 'wavelength_frames',double([]),... 'wavelength_frames_error_index',int32(-999999999),... 'wavelength_frames_error_lower',double([]),... @@ -186,4 +699,81 @@ struct(... 'z_frames',double([]),... 'z_frames_error_index',int32(-999999999),... 'z_frames_error_lower',double([]),... -'z_frames_error_upper',double([])); +'z_frames_error_upper',double([])) +}},... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m b/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m index 9683a64fdb306dbb4c39e5176be8a1cca9ff2fcc..a648f9fefa6703980f2044ed4a8e1b5d2d0c3652 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m @@ -1,11 +1,19 @@ function S = ids_empty_summary % function S = ids_empty_summary % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'boundary',struct(... +'distance_inner_outer_separatrices',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... 'elongation',struct(... 'source','',... 'value',double([]),... @@ -89,16 +97,28 @@ struct(... 'value_error_upper',double([])),... 'type',struct(... 'source','',... -'value',int32([]))),... +'value',int32([])),... +'x_point_main',struct(... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'source','',... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([]))),... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -243,826 +263,1872 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power',struct(... +'neutron_rates',struct(... +'dd',struct(... +'beam_beam',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'gas_injection_rates',struct(... -'ammonia',struct(... +'value_error_upper',double([])),... +'beam_thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'ammonia_deuterated',struct(... +'thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'argon',struct(... +'total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'beryllium',struct(... +'value_error_upper',double([]))),... +'dt',struct(... +'beam_beam',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'bottom',struct(... +'beam_thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'carbon',struct(... +'thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'deuterium',struct(... +'total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'ethane',struct(... +'value_error_upper',double([]))),... +'thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'ethylene',struct(... +'total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'helium_3',struct(... +'tt',struct(... +'beam_beam',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'helium_4',struct(... +'beam_thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'hydrogen',struct(... +'thermal',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'impurity_seeding',struct(... -'source','',... -'value',int32(-999999999)),... -'krypton',struct(... +'total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'lithium',struct(... +'value_error_upper',double([])))),... +'power',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'methane',struct(... +'value_error_upper',double([]))),... +'gas_injection_accumulated',struct(... +'ammonia',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'methane_carbon_13',struct(... +'ammonia_deuterated',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'methane_deuterated',struct(... +'argon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'midplane',struct(... +'beryllium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'neon',struct(... +'bottom',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'nitrogen',struct(... +'carbon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'oxygen',struct(... +'deuterium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'propane',struct(... +'ethane',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'silane',struct(... +'ethylene',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'top',struct(... +'helium_3',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'total',struct(... +'helium_4',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'tritium',struct(... +'hydrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'xenon',struct(... +'impurity_seeding',struct(... 'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'global_quantities',struct(... -'b0',struct(... +'value',int32(-999999999)),... +'krypton',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_pol',struct(... +'lithium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_pol_mhd',struct(... +'methane',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_tor',struct(... +'methane_carbon_13',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_tor_mhd',struct(... +'methane_deuterated',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_tor_norm',struct(... +'midplane',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_tor_norm_mhd',struct(... +'neon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beta_tor_thermal_norm',struct(... +'nitrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current_alignment',struct(... +'oxygen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current_bootstrap',struct(... +'propane',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current_non_inductive',struct(... +'silane',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current_ohm',struct(... +'top',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'denergy_diamagnetic_dt',struct(... +'total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'denergy_thermal_dt',struct(... +'tritium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'energy_b_field_pol',struct(... +'xenon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_diamagnetic',struct(... +'value_error_upper',double([]))),... +'gas_injection_prefill',struct(... +'ammonia',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_electrons_thermal',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'ammonia_deuterated',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_fast_parallel',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'argon',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_fast_perpendicular',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'beryllium',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_ion_total_thermal',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'bottom',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_mhd',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'carbon',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_thermal',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'deuterium',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'energy_total',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'ethane',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'fusion_gain',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'ethylene',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'greenwald_fraction',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'helium_3',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'h_98',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'helium_4',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'h_mode',struct(... -'source','',... -'value',int32([])),... -'ip',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'hydrogen',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'li',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'impurity_seeding',struct(... 'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'li_mhd',struct(... +'value',int32(-999999999)),... +'krypton',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'power_bremsstrahlung',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'lithium',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'power_line',struct(... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'methane',struct(... 'source','',... -'value',double([]),... +'value',double(-9e+40),... 'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'methane_carbon_13',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'methane_deuterated',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'midplane',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'neon',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'nitrogen',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'oxygen',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'propane',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'silane',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'top',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'total',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'tritium',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'xenon',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40))),... +'gas_injection_rates',struct(... +'ammonia',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'ammonia_deuterated',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'argon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beryllium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'bottom',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'carbon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'deuterium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'ethane',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'ethylene',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_3',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_4',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'hydrogen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'impurity_seeding',struct(... +'source','',... +'value',int32(-999999999)),... +'krypton',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'lithium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'methane',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'methane_carbon_13',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'methane_deuterated',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'midplane',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'neon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'nitrogen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'oxygen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'propane',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'silane',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'top',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'total',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tritium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'xenon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'global_quantities',struct(... +'b0',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_pol',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_pol_mhd',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_tor',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_tor_mhd',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_tor_norm',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_tor_norm_mhd',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beta_tor_thermal_norm',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current_alignment',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current_bootstrap',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current_non_inductive',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current_ohm',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'denergy_diamagnetic_dt',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'denergy_thermal_dt',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_b_field_pol',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_diamagnetic',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_electrons_thermal',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_fast_parallel',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_fast_perpendicular',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_ion_total_thermal',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_mhd',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_thermal',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_total',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'fusion_fluence',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'fusion_gain',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'greenwald_fraction',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'h_98',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'h_mode',struct(... +'source','',... +'value',int32([])),... +'ip',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'li',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'li_mhd',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_bremsstrahlung',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_line',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_loss',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_ohm',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_radiated',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_radiated_inside_lcfs',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_radiated_outside_lcfs',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_steady',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_synchrotron',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'psi_external_average',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'q_95',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'r0',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'ratio_tau_helium_fuel',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'resistance',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tau_energy',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tau_energy_98',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tau_helium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tau_resistive',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'v_loop',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'volume',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'heating_current_drive',struct(... +'ec',{{struct(... +'angle_pol',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'angle_tor',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_fast',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'frequency',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'harmonic',struct(... +'source','',... +'value',int32([])),... +'polarisation',struct(... +'source','',... +'value',int32([])),... +'position',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))) +}},... +'ic',{{struct(... +'current',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'e_field_plus_minus_ratio',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_fast',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'frequency',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'harmonic',struct(... +'source','',... +'value',int32([])),... +'k_perpendicular',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_tor',struct(... +'source','',... +'value',int32([])),... +'phase',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'position',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))) +}},... +'lh',{{struct(... +'current',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'energy_fast',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'frequency',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_parallel',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'position',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))) +}},... +'nbi',{{struct(... +'angle',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'beam_current_fraction',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beam_power_fraction',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'current',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'direction',struct(... +'source','',... +'value',int32(-999999999)),... +'energy',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'position',struct(... +'phi',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'r',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'z',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40))),... +'power',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'species',struct(... +'a',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... +'label',struct(... +'source','',... +'value',''),... +'z_n',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40))),... +'tangency_radius',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40))) +}},... +'power_additional',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_ec',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_ic',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched_ec',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched_ic',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched_lh',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_loss',struct(... +'power_launched_nbi',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_launched_nbi_co_injected_ratio',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_lh',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'power_nbi',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'kicks',struct(... +'occurrence',struct(... +'source','',... +'value',int32(-999999999))),... +'limiter',struct(... +'material',struct(... +'description','',... +'index',int32(-999999999),... +'name','')),... +'line_average',struct(... +'dn_e_dt',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'isotope_fraction_hydrogen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'meff_hydrogenic',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_e',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_i',struct(... +'argon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beryllium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'carbon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'deuterium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_3',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_4',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'hydrogen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'iron',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'krypton',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'lithium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'neon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'nitrogen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'oxygen',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tritium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'tungsten',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'xenon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'n_i_total',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'t_e',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'t_i_average',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'zeff',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'local',struct(... +'divertor_plate',{{struct(... +'flux_expansion',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_e',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'n_i',struct(... +'argon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beryllium',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'carbon',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'deuterium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_ohm',struct(... +'helium_3',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_radiated',struct(... +'helium_4',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_radiated_inside_lcfs',struct(... +'hydrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_radiated_outside_lcfs',struct(... +'iron',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_steady',struct(... +'krypton',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_synchrotron',struct(... +'lithium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'q_95',struct(... +'neon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'r0',struct(... +'nitrogen',struct(... 'source','',... -'value',double(-9e+40),... +'value',double([]),... 'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40)),... -'ratio_tau_helium_fuel',struct(... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'oxygen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'resistance',struct(... +'tritium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'tau_energy',struct(... +'tungsten',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'tau_energy_98',struct(... +'xenon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'tau_helium',struct(... +'value_error_upper',double([]))),... +'n_i_total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'tau_resistive',struct(... +'name',struct(... +'source','',... +'value',''),... +'power_flux_peak',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'v_loop',struct(... +'t_e',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'volume',struct(... +'t_i_average',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'heating_current_drive',struct(... -'ec',{{struct(... -'angle_pol',struct(... +'value_error_upper',double([])),... +'zeff',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'angle_tor',struct(... +'value_error_upper',double([]))) +}},... +'divertor_target',{{struct(... +'flux_expansion',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current',struct(... +'n_e',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'energy_fast',struct(... +'n_i',struct(... +'argon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'frequency',struct(... +'beryllium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'harmonic',struct(... -'source','',... -'value',int32([])),... -'polarisation',struct(... -'source','',... -'value',int32([])),... -'position',struct(... +'carbon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power',struct(... +'deuterium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched',struct(... +'helium_3',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([]))) -;}},... -'ic',{{struct(... -'current',struct(... +'value_error_upper',double([])),... +'helium_4',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'e_field_plus_minus_ratio',struct(... +'hydrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'energy_fast',struct(... +'iron',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'frequency',struct(... +'krypton',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'harmonic',struct(... -'source','',... -'value',int32([])),... -'k_perpendicular',struct(... +'lithium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'n_tor',struct(... -'source','',... -'value',int32([])),... -'phase',struct(... +'neon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'position',struct(... +'nitrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power',struct(... +'oxygen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched',struct(... +'tritium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([]))) -;}},... -'lh',{{struct(... -'current',struct(... +'value_error_upper',double([])),... +'tungsten',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'energy_fast',struct(... +'xenon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([])),... -'frequency',struct(... +'value_error_upper',double([]))),... +'n_i_total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'n_parallel',struct(... +'name',struct(... +'source','',... +'value',''),... +'power_flux_peak',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'position',struct(... +'t_e',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power',struct(... +'t_i_average',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched',struct(... +'zeff',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))) -;}},... -'nbi',{{struct(... -'angle',struct(... -'source','',... -'value',double(-9e+40),... -'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40)),... -'beam_current_fraction',struct(... +}},... +'itb',struct(... +'e_field_parallel',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'beam_power_fraction',struct(... +'magnetic_shear',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'current',struct(... +'momentum_tor',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'direction',struct(... -'source','',... -'value',int32(-999999999)),... -'energy',struct(... +'n_e',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'position',struct(... -'phi',struct(... -'source','',... -'value',double(-9e+40),... -'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40)),... -'r',struct(... -'source','',... -'value',double(-9e+40),... -'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40)),... -'z',struct(... +'n_i',struct(... +'argon',struct(... 'source','',... -'value',double(-9e+40),... +'value',double([]),... 'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40))),... -'power',struct(... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'beryllium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched',struct(... +'carbon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'species',struct(... -'a',struct(... +'deuterium',struct(... 'source','',... -'value',double(-9e+40),... +'value',double([]),... 'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40)),... -'label',struct(... -'source','',... -'value',''),... -'z_n',struct(... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_3',struct(... 'source','',... -'value',double(-9e+40),... +'value',double([]),... 'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40))),... -'tangency_radius',struct(... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'helium_4',struct(... 'source','',... -'value',double(-9e+40),... +'value',double([]),... 'value_error_index',int32(-999999999),... -'value_error_lower',double(-9e+40),... -'value_error_upper',double(-9e+40))) -;}},... -'power_additional',struct(... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'hydrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_ec',struct(... +'iron',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_ic',struct(... +'krypton',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched_ec',struct(... +'lithium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched_ic',struct(... +'neon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched_lh',struct(... +'nitrogen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched_nbi',struct(... +'oxygen',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_launched_nbi_co_injected_ratio',struct(... +'tritium',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_lh',struct(... +'tungsten',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'power_nbi',struct(... +'xenon',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'ids_properties',struct(... -'comment','',... -'creation_date','',... -'homogeneous_time',int32(-999999999),... -'provider','',... -'source','',... -'version_put',struct(... -'access_layer','',... -'access_layer_language','',... -'data_dictionary','')),... -'kicks',struct(... -'occurrence',struct(... -'source','',... -'value',int32(-999999999))),... -'limiter',struct(... -'material',struct(... -'description','',... -'index',int32(-999999999),... -'name','')),... -'line_average',struct(... -'dn_e_dt',struct(... +'n_i_total',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'isotope_fraction_hydrogen',struct(... +'position',struct(... +'psi',double([]),... +'psi_error_index',int32(-999999999),... +'psi_error_lower',double([]),... +'psi_error_upper',double([]),... +'rho_tor',double([]),... +'rho_tor_error_index',int32(-999999999),... +'rho_tor_error_lower',double([]),... +'rho_tor_error_upper',double([]),... +'rho_tor_norm',double([]),... +'rho_tor_norm_error_index',int32(-999999999),... +'rho_tor_norm_error_lower',double([]),... +'rho_tor_norm_error_upper',double([])),... +'q',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'meff_hydrogenic',struct(... +'t_e',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'n_e',struct(... +'t_i_average',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])),... -'n_i',struct(... +'velocity_tor',struct(... 'argon',struct(... 'source','',... 'value',double([]),... @@ -1159,32 +2225,13 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'n_i_total',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'t_e',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'t_i_average',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... 'zeff',struct(... 'source','',... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'local',struct(... -'divertor_plate',{{struct(... +'limiter',struct(... 'flux_expansion',struct(... 'source','',... 'value',double([]),... @@ -1303,6 +2350,12 @@ struct(... 'name',struct(... 'source','',... 'value',''),... +'power_flux_peak',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... 't_e',struct(... 'source','',... 'value',double([]),... @@ -1320,9 +2373,14 @@ struct(... 'value',double([]),... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... -'value_error_upper',double([]))) -;}},... -'itb',struct(... +'value_error_upper',double([]))),... +'magnetic_axis',struct(... +'b_field',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... 'e_field_parallel',struct(... 'source','',... 'value',double([]),... @@ -1455,6 +2513,10 @@ struct(... 'psi_error_index',int32(-999999999),... 'psi_error_lower',double([]),... 'psi_error_upper',double([]),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... 'rho_tor',double([]),... 'rho_tor_error_index',int32(-999999999),... 'rho_tor_error_lower',double([]),... @@ -1462,7 +2524,11 @@ struct(... 'rho_tor_norm',double([]),... 'rho_tor_norm_error_index',int32(-999999999),... 'rho_tor_norm_error_lower',double([]),... -'rho_tor_norm_error_upper',double([])),... +'rho_tor_norm_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... 'q',struct(... 'source','',... 'value',double([]),... @@ -1584,150 +2650,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'limiter',struct(... -'flux_expansion',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'n_e',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'n_i',struct(... -'argon',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'beryllium',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'carbon',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'deuterium',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'helium_3',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'helium_4',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'hydrogen',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'iron',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'krypton',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'lithium',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'neon',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'nitrogen',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'oxygen',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'tritium',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'tungsten',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'xenon',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'n_i_total',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'name',struct(... -'source','',... -'value',''),... -'t_e',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'t_i_average',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'zeff',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'magnetic_axis',struct(... -'b_field',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... +'pedestal',struct(... 'e_field_parallel',struct(... 'source','',... 'value',double([]),... @@ -1860,10 +2783,6 @@ struct(... 'psi_error_index',int32(-999999999),... 'psi_error_lower',double([]),... 'psi_error_upper',double([]),... -'r',double([]),... -'r_error_index',int32(-999999999),... -'r_error_lower',double([]),... -'r_error_upper',double([]),... 'rho_tor',double([]),... 'rho_tor_error_index',int32(-999999999),... 'rho_tor_error_lower',double([]),... @@ -1871,11 +2790,7 @@ struct(... 'rho_tor_norm',double([]),... 'rho_tor_norm_error_index',int32(-999999999),... 'rho_tor_norm_error_lower',double([]),... -'rho_tor_norm_error_upper',double([]),... -'z',double([]),... -'z_error_index',int32(-999999999),... -'z_error_lower',double([]),... -'z_error_upper',double([])),... +'rho_tor_norm_error_upper',double([])),... 'q',struct(... 'source','',... 'value',double([]),... @@ -1997,7 +2912,26 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'pedestal',struct(... +'r_eff_norm_2_3',struct(... +'effective_helical_ripple',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'iota',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([])),... +'plateau_factor',struct(... +'source','',... +'value',double([]),... +'value_error_index',int32(-999999999),... +'value_error_lower',double([]),... +'value_error_upper',double([]))),... +'separatrix',struct(... 'e_field_parallel',struct(... 'source','',... 'value',double([]),... @@ -2259,26 +3193,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([]))),... -'r_eff_norm_2_3',struct(... -'effective_helical_ripple',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'iota',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([])),... -'plateau_factor',struct(... -'source','',... -'value',double([]),... -'value_error_index',int32(-999999999),... -'value_error_lower',double([]),... -'value_error_upper',double([]))),... -'separatrix',struct(... +'separatrix_average',struct(... 'e_field_parallel',struct(... 'source','',... 'value',double([]),... @@ -2543,6 +3458,10 @@ struct(... 'magnetic_shear_flag',struct(... 'source','',... 'value',int32(-999999999)),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'pedestal_fits',struct(... 'linear',struct(... 'b_field_pedestal_top_hfs',struct(... @@ -3101,6 +4020,12 @@ struct(... 'occurrence',struct(... 'source','',... 'value',int32(-999999999))),... +'plasma_duration',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... 'rmps',struct(... 'occurrence',struct(... 'source','',... @@ -3174,6 +4099,12 @@ struct(... 'comment','',... 'name',''),... 'time',double([]),... +'time_breakdown',struct(... +'source','',... +'value',double(-9e+40),... +'value_error_index',int32(-999999999),... +'value_error_lower',double(-9e+40),... +'value_error_upper',double(-9e+40)),... 'time_width',double([]),... 'time_width_error_index',int32(-999999999),... 'time_width_error_lower',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m b/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m index 3a6b2e3aee8a3b159f696d7795181592a7532896..5d9835fdcf980152b9329c6104a0f04cad2df693 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m @@ -1,19 +1,23 @@ function S = ids_empty_temporary % function S = ids_empty_temporary % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -28,7 +32,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}},... +}},... 'constant_float1d',{{struct(... 'identifier',struct(... 'description','',... @@ -38,7 +42,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_float2d',{{struct(... 'identifier',struct(... 'description','',... @@ -48,7 +52,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_float3d',{{struct(... 'identifier',struct(... 'description','',... @@ -58,7 +62,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_float4d',{{struct(... 'identifier',struct(... 'description','',... @@ -68,7 +72,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_float5d',{{struct(... 'identifier',struct(... 'description','',... @@ -78,7 +82,7 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_float6d',{{struct(... 'identifier',struct(... 'description','',... @@ -88,49 +92,49 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'constant_integer0d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value',int32(-999999999)) -;}},... +}},... 'constant_integer1d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value',int32([])) -;}},... +}},... 'constant_integer2d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value',int32([])) -;}},... +}},... 'constant_integer3d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value',int32([])) -;}},... +}},... 'constant_string0d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value','') -;}},... +}},... 'constant_string1d',{{struct(... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... 'value',{{}}) -;}},... +}},... 'dynamic_float1d',{{struct(... 'identifier',struct(... 'description','',... @@ -142,7 +146,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_float2d',{{struct(... 'identifier',struct(... 'description','',... @@ -154,7 +158,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_float3d',{{struct(... 'identifier',struct(... 'description','',... @@ -166,7 +170,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_float4d',{{struct(... 'identifier',struct(... 'description','',... @@ -178,7 +182,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_float5d',{{struct(... 'identifier',struct(... 'description','',... @@ -190,7 +194,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_float6d',{{struct(... 'identifier',struct(... 'description','',... @@ -202,7 +206,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'dynamic_integer1d',{{struct(... 'identifier',struct(... 'description','',... @@ -211,7 +215,7 @@ struct(... 'value',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'dynamic_integer2d',{{struct(... 'identifier',struct(... 'description','',... @@ -220,7 +224,7 @@ struct(... 'value',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'dynamic_integer3d',{{struct(... 'identifier',struct(... 'description','',... @@ -229,11 +233,56 @@ struct(... 'value',struct(... 'data',int32([]),... 'time',double([]))) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m b/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m index a56d8d6bfd70afaf0944734e2942e478ad54b32a..6e48f8b5cfd4a5155684a9102002ceb9ff336e87 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m @@ -1,9 +1,11 @@ function S = ids_empty_tf % function S = ids_empty_tf % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'b_field_tor_vacuum_r',struct(... 'data',double([]),... @@ -11,6 +13,22 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([])),... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... 'coil',{{struct(... 'conductor',{{struct(... 'cross_section',struct(... @@ -97,7 +115,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'current',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -120,7 +138,7 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'coils_n',int32(-999999999),... 'delta_b_field_tor_vacuum_r',struct(... 'data',double([]),... @@ -140,7 +158,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'a_field_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -152,7 +170,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'a_field_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -164,7 +182,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_r',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -176,7 +194,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_tor',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -188,7 +206,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'b_field_z',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -200,7 +218,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'grid',struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -216,15 +234,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -242,11 +260,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -258,12 +277,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -272,15 +299,60 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -288,6 +360,10 @@ struct(... 'access_layer_language','',... 'data_dictionary','')),... 'is_periodic',int32(-999999999),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... 'r0',double(-9e+40),... 'r0_error_index',int32(-999999999),... 'r0_error_lower',double(-9e+40),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m b/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m index c8548720f92a76e876be2ef01fe78532e041f34c..93f795aba5f0ffb4e51f5295a1c6f2c3627f9de0 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m @@ -1,9 +1,11 @@ function S = ids_empty_thomson_scattering % function S = ids_empty_thomson_scattering % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'channel',{{struct(... 'delta_position',struct(... @@ -20,6 +22,12 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double([]),... 'z_error_upper',double([])),... +'distance_separatrix_midplane',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... 'identifier','',... 'n_e',struct(... 'data',double([]),... @@ -47,29 +55,93 @@ struct(... 'data_error_lower',double([]),... 'data_error_upper',double([]),... 'time',double([]))) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... 'repository','',... 'version',''),... +'equilibrium_id',struct(... +'data_entry',struct(... +'machine','',... +'pulse',int32(-999999999),... +'pulse_type','',... +'run',int32(-999999999),... +'user',''),... +'name','',... +'occurrence',int32(-999999999)),... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'latency',double(-9e+40),... +'latency_error_index',int32(-999999999),... +'latency_error_lower',double(-9e+40),... +'latency_error_upper',double(-9e+40),... +'midplane',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m index dce85bdbe857e276215d9009839a8ca8701e0e62..9f9e07a5f64f9bfe2019fce6d31daed043ac93d9 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m @@ -1,9 +1,11 @@ function S = ids_empty_transport_solver_numerics % function S = ids_empty_transport_solver_numerics % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'boundary_conditions_1d',{{struct(... 'current',struct(... @@ -139,7 +141,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... @@ -148,7 +150,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'momentum_tor',struct(... 'identifier',struct(... 'description','',... @@ -163,7 +165,7 @@ struct(... 'value_error_lower',double([]),... 'value_error_upper',double([])),... 'time',double(-9e+40)) -;}},... +}},... 'boundary_conditions_ggd',{{struct(... 'current',{{struct(... 'grid_index',int32(-999999999),... @@ -176,7 +178,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'electrons',struct(... 'energy',{{struct(... 'grid_index',int32(-999999999),... @@ -189,7 +191,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'particles',{{struct(... 'grid_index',int32(-999999999),... 'grid_subset_index',int32(-999999999),... @@ -201,7 +203,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'grid',struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -217,15 +219,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -243,11 +245,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -259,12 +262,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -273,9 +284,9 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'ion',{{struct(... 'a',double(-9e+40),... 'a_error_index',int32(-999999999),... @@ -292,7 +303,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'particles',{{struct(... @@ -306,7 +317,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'state',{{struct(... 'electron_configuration','',... 'energy',{{struct(... @@ -320,7 +331,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'is_neutral',int32(-999999999),... 'label','',... 'neutral_type',struct(... @@ -338,7 +349,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'vibrational_level',double(-9e+40),... 'vibrational_level_error_index',int32(-999999999),... 'vibrational_level_error_lower',double(-9e+40),... @@ -352,7 +363,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... @@ -361,18 +372,20 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -473,7 +486,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... @@ -482,9 +495,9 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'time_step',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -910,7 +923,7 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... @@ -919,13 +932,58 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -940,7 +998,7 @@ struct(... 'descriptions',{{}},... 'names',{{}},... 'time',double(-9e+40)) -;}},... +}},... 'solver',struct(... 'description','',... 'index',int32(-999999999),... @@ -949,13 +1007,13 @@ struct(... 'control_parameters',struct(... 'integer0d',{{struct(... 'value',int32(-999999999)) -;}},... +}},... 'real0d',{{struct(... 'value',double(-9e+40),... 'value_error_index',int32(-999999999),... 'value_error_lower',double(-9e+40),... 'value_error_upper',double(-9e+40)) -;}}),... +}}),... 'd_dvolume_drho_tor_dt',double([]),... 'd_dvolume_drho_tor_dt_error_index',int32(-999999999),... 'd_dvolume_drho_tor_dt_error_lower',double([]),... @@ -978,13 +1036,13 @@ struct(... 'value_error_index',int32(-999999999),... 'value_error_lower',double([]),... 'value_error_upper',double([])) -;}},... +}},... 'coefficient',{{struct(... 'profile',double([]),... 'profile_error_index',int32(-999999999),... 'profile_error_lower',double([]),... 'profile_error_upper',double([])) -;}},... +}},... 'computation_mode',struct(... 'description','',... 'index',int32(-999999999),... @@ -1029,7 +1087,7 @@ struct(... 'profile_error_lower',double([]),... 'profile_error_upper',double([]),... 'state_index',int32(-999999999))) -;}},... +}},... 'grid',struct(... 'area',double([]),... 'area_error_index',int32(-999999999),... @@ -1068,7 +1126,7 @@ struct(... 'volume_error_lower',double([]),... 'volume_error_upper',double([])),... 'time',double(-9e+40)) -;}},... +}},... 'time',double([]),... 'time_step',struct(... 'data',double([]),... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m b/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m index 2a35e9351af752588401c3d3798ce6445a7138a8..70dfb428eed70511128ae117981c8f8b2846e90e 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m @@ -1,19 +1,23 @@ function S = ids_empty_turbulence % function S = ids_empty_turbulence % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -29,7 +33,7 @@ struct(... 'dim2_error_lower',double([]),... 'dim2_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'grid_2d_type',struct(... 'description','',... 'index',int32(-999999999),... @@ -38,6 +42,51 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... @@ -81,7 +130,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'neutral_index',int32(-999999999),... 'temperature',double([]),... @@ -92,7 +141,7 @@ struct(... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'neutral',{{struct(... 'density',double([]),... 'density_error_index',int32(-999999999),... @@ -116,14 +165,14 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'ion_index',int32(-999999999),... 'label','',... 'temperature',double([]),... 'temperature_error_index',int32(-999999999),... 'temperature_error_lower',double([]),... 'temperature_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m b/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m index 8970d8f87d69e5aaa4b4db659d90a4c729d94bc1..37950537e7505159f7b986afac975cd1d9a4cf06 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m @@ -1,19 +1,23 @@ function S = ids_empty_wall % function S = ids_empty_wall % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -45,7 +49,7 @@ struct(... 'resistivity_error_index',int32(-999999999),... 'resistivity_error_lower',double(-9e+40),... 'resistivity_error_upper',double(-9e+40)) -;}}),... +}}),... 'mobile',struct(... 'type',struct(... 'description','',... @@ -64,7 +68,7 @@ struct(... 'z_error_index',int32(-999999999),... 'z_error_lower',double([]),... 'z_error_upper',double([])) -;}},... +}},... 'phi_extensions',double([]),... 'phi_extensions_error_index',int32(-999999999),... 'phi_extensions_error_lower',double([]),... @@ -73,90 +77,839 @@ struct(... 'resistivity_error_index',int32(-999999999),... 'resistivity_error_lower',double(-9e+40),... 'resistivity_error_upper',double(-9e+40)) -;}}),... +}}),... +'type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'vessel',struct(... 'type',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... -'vessel',struct(... -'type',struct(... +'unit',{{struct(... +'annular',struct(... +'centreline',struct(... +'closed',int32(-999999999),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'outline_inner',struct(... +'closed',int32(-999999999),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'outline_outer',struct(... +'closed',int32(-999999999),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'resistivity',double(-9e+40),... +'resistivity_error_index',int32(-999999999),... +'resistivity_error_lower',double(-9e+40),... +'resistivity_error_upper',double(-9e+40),... +'thickness',double([]),... +'thickness_error_index',int32(-999999999),... +'thickness_error_lower',double([]),... +'thickness_error_upper',double([])),... +'element',{{struct(... +'j_tor',struct(... +'data',double([]),... +'data_error_index',int32(-999999999),... +'data_error_lower',double([]),... +'data_error_upper',double([]),... +'time',double([])),... +'name','',... +'outline',struct(... +'closed',int32(-999999999),... +'r',double([]),... +'r_error_index',int32(-999999999),... +'r_error_lower',double([]),... +'r_error_upper',double([]),... +'z',double([]),... +'z_error_index',int32(-999999999),... +'z_error_lower',double([]),... +'z_error_upper',double([])),... +'resistance',double(-9e+40),... +'resistance_error_index',int32(-999999999),... +'resistance_error_lower',double(-9e+40),... +'resistance_error_upper',double(-9e+40),... +'resistivity',double(-9e+40),... +'resistivity_error_index',int32(-999999999),... +'resistivity_error_lower',double(-9e+40),... +'resistivity_error_upper',double(-9e+40)) +}},... +'identifier','',... +'name','') +}})) +}},... +'description_ggd',{{struct(... +'ggd',{{struct(... +'energy_fluxes',struct(... +'current',struct(... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... +'kinetic',struct(... +'electrons',struct(... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... +'ion',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'multiple_states_flag',int32(-999999999),... +'neutral_index',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','',... +'z_max',double(-9e+40),... +'z_max_error_index',int32(-999999999),... +'z_max_error_lower',double(-9e+40),... +'z_max_error_upper',double(-9e+40),... +'z_min',double(-9e+40),... +'z_min_error_index',int32(-999999999),... +'z_min_error_lower',double(-9e+40),... +'z_min_error_upper',double(-9e+40)) +}},... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... +'neutral',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ion_index',int32(-999999999),... +'label','',... +'multiple_states_flag',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'neutral_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','') +}}) +}}),... +'radiation',struct(... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... +'recombination',struct(... +'ion',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'multiple_states_flag',int32(-999999999),... +'neutral_index',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','',... +'z_max',double(-9e+40),... +'z_max_error_index',int32(-999999999),... +'z_max_error_lower',double(-9e+40),... +'z_max_error_upper',double(-9e+40),... +'z_min',double(-9e+40),... +'z_min_error_index',int32(-999999999),... +'z_min_error_lower',double(-9e+40),... +'z_min_error_upper',double(-9e+40)) +}},... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... +'neutral',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ion_index',int32(-999999999),... +'label','',... +'multiple_states_flag',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'neutral_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','') +}}) +}})),... +'particle_fluxes',struct(... +'electrons',struct(... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}}),... +'ion',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'multiple_states_flag',int32(-999999999),... +'neutral_index',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','',... +'z_max',double(-9e+40),... +'z_max_error_index',int32(-999999999),... +'z_max_error_lower',double(-9e+40),... +'z_max_error_upper',double(-9e+40),... +'z_min',double(-9e+40),... +'z_min_error_index',int32(-999999999),... +'z_min_error_lower',double(-9e+40),... +'z_min_error_upper',double(-9e+40)) +}},... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... +'neutral',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'ion_index',int32(-999999999),... +'label','',... +'multiple_states_flag',int32(-999999999),... +'state',{{struct(... +'electron_configuration','',... +'emitted',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'incident',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'label','',... +'neutral_type',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','') +}}) +}}),... +'power_density',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'recycling',struct(... +'ion',{{struct(... +'coefficient',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'label','',... +'multiple_states_flag',int32(-999999999),... +'neutral_index',int32(-999999999),... +'state',{{struct(... +'coefficient',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'electron_configuration','',... +'label','',... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','',... +'z_max',double(-9e+40),... +'z_max_error_index',int32(-999999999),... +'z_max_error_lower',double(-9e+40),... +'z_max_error_upper',double(-9e+40),... +'z_min',double(-9e+40),... +'z_min_error_index',int32(-999999999),... +'z_min_error_lower',double(-9e+40),... +'z_min_error_upper',double(-9e+40)) +}},... +'z_ion',double(-9e+40),... +'z_ion_error_index',int32(-999999999),... +'z_ion_error_lower',double(-9e+40),... +'z_ion_error_upper',double(-9e+40)) +}},... +'neutral',{{struct(... +'coefficient',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'ion_index',int32(-999999999),... +'label','',... +'multiple_states_flag',int32(-999999999),... +'state',{{struct(... +'coefficient',{{struct(... +'coefficients',double([]),... +'coefficients_error_index',int32(-999999999),... +'coefficients_error_lower',double([]),... +'coefficients_error_upper',double([]),... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'values',double([]),... +'values_error_index',int32(-999999999),... +'values_error_lower',double([]),... +'values_error_upper',double([])) +}},... +'electron_configuration','',... +'label','',... +'neutral_type',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... -'unit',{{struct(... -'annular',struct(... -'centreline',struct(... -'closed',int32(-999999999),... -'r',double([]),... -'r_error_index',int32(-999999999),... -'r_error_lower',double([]),... -'r_error_upper',double([]),... -'z',double([]),... -'z_error_index',int32(-999999999),... -'z_error_lower',double([]),... -'z_error_upper',double([])),... -'outline_inner',struct(... -'closed',int32(-999999999),... -'r',double([]),... -'r_error_index',int32(-999999999),... -'r_error_lower',double([]),... -'r_error_upper',double([]),... -'z',double([]),... -'z_error_index',int32(-999999999),... -'z_error_lower',double([]),... -'z_error_upper',double([])),... -'outline_outer',struct(... -'closed',int32(-999999999),... -'r',double([]),... -'r_error_index',int32(-999999999),... -'r_error_lower',double([]),... -'r_error_upper',double([]),... -'z',double([]),... -'z_error_index',int32(-999999999),... -'z_error_lower',double([]),... -'z_error_upper',double([])),... -'resistivity',double(-9e+40),... -'resistivity_error_index',int32(-999999999),... -'resistivity_error_lower',double(-9e+40),... -'resistivity_error_upper',double(-9e+40),... -'thickness',double([]),... -'thickness_error_index',int32(-999999999),... -'thickness_error_lower',double([]),... -'thickness_error_upper',double([])),... -'element',{{struct(... -'j_tor',struct(... -'data',double([]),... -'data_error_index',int32(-999999999),... -'data_error_lower',double([]),... -'data_error_upper',double([]),... -'time',double([])),... -'name','',... -'outline',struct(... -'closed',int32(-999999999),... -'r',double([]),... -'r_error_index',int32(-999999999),... -'r_error_lower',double([]),... -'r_error_upper',double([]),... -'z',double([]),... -'z_error_index',int32(-999999999),... -'z_error_lower',double([]),... -'z_error_upper',double([])),... -'resistance',double(-9e+40),... -'resistance_error_index',int32(-999999999),... -'resistance_error_lower',double(-9e+40),... -'resistance_error_upper',double(-9e+40),... -'resistivity',double(-9e+40),... -'resistivity_error_index',int32(-999999999),... -'resistivity_error_lower',double(-9e+40),... -'resistivity_error_upper',double(-9e+40)) -;}},... -'identifier','',... -'name','') -;}})) -;}},... -'description_ggd',{{struct(... -'ggd',{{struct(... -'power_density',{{struct(... +'vibrational_level',double(-9e+40),... +'vibrational_level_error_index',int32(-999999999),... +'vibrational_level_error_lower',double(-9e+40),... +'vibrational_level_error_upper',double(-9e+40),... +'vibrational_mode','') +}}) +}}),... +'temperature',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -167,8 +920,9 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'temperature',{{struct(... +}},... +'time',double(-9e+40),... +'v_biasing',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... 'coefficients_error_lower',double([]),... @@ -179,9 +933,8 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... -'time',double(-9e+40)) -;}},... +}}) +}},... 'grid_ggd',{{struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -197,15 +950,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -223,11 +976,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -239,12 +993,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -253,16 +1015,31 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}},... +}}) +}}) +}},... +'time',double(-9e+40)) +}},... +'material',{{struct(... +'grid_subset',{{struct(... +'grid_index',int32(-999999999),... +'grid_subset_index',int32(-999999999),... +'identifiers',struct(... +'descriptions',{{}},... +'indices',int32([]),... +'names',{{}})) +}},... 'time',double(-9e+40)) -;}},... +}},... 'type',struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... +'first_wall_enclosed_volume',double(-9e+40),... +'first_wall_enclosed_volume_error_index',int32(-999999999),... +'first_wall_enclosed_volume_error_lower',double(-9e+40),... +'first_wall_enclosed_volume_error_upper',double(-9e+40),... 'first_wall_power_flux_peak',struct(... 'data',double([]),... 'data_error_index',int32(-999999999),... @@ -318,11 +1095,41 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'gas_puff',double([]),... 'gas_puff_error_index',int32(-999999999),... 'gas_puff_error_lower',double([]),... 'gas_puff_error_upper',double([]),... +'incident_species',{{struct(... +'element',{{struct(... +'a',double(-9e+40),... +'a_error_index',int32(-999999999),... +'a_error_lower',double(-9e+40),... +'a_error_upper',double(-9e+40),... +'atoms_n',int32(-999999999),... +'multiplicity',double(-9e+40),... +'multiplicity_error_index',int32(-999999999),... +'multiplicity_error_lower',double(-9e+40),... +'multiplicity_error_upper',double(-9e+40),... +'z_n',double(-9e+40),... +'z_n_error_index',int32(-999999999),... +'z_n_error_lower',double(-9e+40),... +'z_n_error_upper',double(-9e+40)) +}},... +'energies',double([]),... +'energies_error_index',int32(-999999999),... +'energies_error_lower',double([]),... +'energies_error_upper',double([]),... +'label','',... +'sputtering_chemical_coefficient',double([]),... +'sputtering_chemical_coefficient_error_index',int32(-999999999),... +'sputtering_chemical_coefficient_error_lower',double([]),... +'sputtering_chemical_coefficient_error_upper',double([]),... +'sputtering_physical_coefficient',double([]),... +'sputtering_physical_coefficient_error_index',int32(-999999999),... +'sputtering_physical_coefficient_error_lower',double([]),... +'sputtering_physical_coefficient_error_upper',double([])) +}},... 'label','',... 'particle_flux_from_plasma',double([]),... 'particle_flux_from_plasma_error_index',int32(-999999999),... @@ -344,19 +1151,11 @@ struct(... 'recycling_particles_coefficient_error_index',int32(-999999999),... 'recycling_particles_coefficient_error_lower',double([]),... 'recycling_particles_coefficient_error_upper',double([]),... -'sputtering_chemical_coefficient',double([]),... -'sputtering_chemical_coefficient_error_index',int32(-999999999),... -'sputtering_chemical_coefficient_error_lower',double([]),... -'sputtering_chemical_coefficient_error_upper',double([]),... -'sputtering_physical_coefficient',double([]),... -'sputtering_physical_coefficient_error_index',int32(-999999999),... -'sputtering_physical_coefficient_error_lower',double([]),... -'sputtering_physical_coefficient_error_upper',double([]),... 'wall_inventory',double([]),... 'wall_inventory_error_index',int32(-999999999),... 'wall_inventory_error_lower',double([]),... 'wall_inventory_error_upper',double([])) -;}},... +}},... 'power_black_body',double([]),... 'power_black_body_error_index',int32(-999999999),... 'power_black_body_error_lower',double([]),... @@ -417,10 +1216,61 @@ struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... 'access_layer','',... 'access_layer_language','',... 'data_dictionary','')),... +'temperature_reference',struct(... +'data',double(-9e+40),... +'data_error_index',int32(-999999999),... +'data_error_lower',double(-9e+40),... +'data_error_upper',double(-9e+40),... +'description',''),... 'time',double([])); diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m b/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m index af698a77d29facdaee508a3f2c6968be38730302..d6611083113fdf6a9c7c6a492b3855ad4186373b 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m @@ -1,19 +1,23 @@ function S = ids_empty_waves % function S = ids_empty_waves % -% File written automatically using struct2m.m +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... +S = ... struct(... 'code',struct(... 'commit','',... +'description','',... 'library',{{struct(... 'commit','',... +'description','',... 'name','',... 'parameters','',... 'repository','',... 'version','') -;}},... +}},... 'name','',... 'output_flag',int32([]),... 'parameters','',... @@ -70,7 +74,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'power',double([]),... @@ -97,16 +101,25 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'length',double([]),... 'length_error_index',int32(-999999999),... 'length_error_lower',double([]),... 'length_error_upper',double([]),... +'phase',struct(... +'angle',double([]),... +'angle_error_index',int32(-999999999),... +'angle_error_lower',double([]),... +'angle_error_upper',double([]),... +'curvature',double([]),... +'curvature_error_index',int32(-999999999),... +'curvature_error_lower',double([]),... +'curvature_error_upper',double([])),... 'position',struct(... 'phi',double([]),... 'phi_error_index',int32(-999999999),... @@ -141,19 +154,40 @@ struct(... 'power_initial_error_index',int32(-999999999),... 'power_initial_error_lower',double(-9e+40),... 'power_initial_error_upper',double(-9e+40),... +'spot',struct(... +'angle',double([]),... +'angle_error_index',int32(-999999999),... +'angle_error_lower',double([]),... +'angle_error_upper',double([]),... +'size',double([]),... +'size_error_index',int32(-999999999),... +'size_error_lower',double([]),... +'size_error_upper',double([])),... 'wave_vector',struct(... 'k_r',double([]),... 'k_r_error_index',int32(-999999999),... 'k_r_error_lower',double([]),... 'k_r_error_upper',double([]),... +'k_r_norm',double([]),... +'k_r_norm_error_index',int32(-999999999),... +'k_r_norm_error_lower',double([]),... +'k_r_norm_error_upper',double([]),... 'k_tor',double([]),... 'k_tor_error_index',int32(-999999999),... 'k_tor_error_lower',double([]),... 'k_tor_error_upper',double([]),... +'k_tor_norm',double([]),... +'k_tor_norm_error_index',int32(-999999999),... +'k_tor_norm_error_lower',double([]),... +'k_tor_norm_error_upper',double([]),... 'k_z',double([]),... 'k_z_error_index',int32(-999999999),... 'k_z_error_lower',double([]),... 'k_z_error_upper',double([]),... +'k_z_norm',double([]),... +'k_z_norm_error_index',int32(-999999999),... +'k_z_norm_error_lower',double([]),... +'k_z_norm_error_upper',double([]),... 'n_parallel',double([]),... 'n_parallel_error_index',int32(-999999999),... 'n_parallel_error_lower',double([]),... @@ -164,9 +198,9 @@ struct(... 'n_perpendicular_error_upper',double([]),... 'n_tor',int32([]),... 'varying_n_tor',int32(-999999999))) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'full_wave',{{struct(... 'b_field',struct(... 'bi_normal',{{struct(... @@ -180,7 +214,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'normal',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -192,7 +226,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -204,7 +238,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'e_field',struct(... 'bi_normal',{{struct(... 'coefficients',double([]),... @@ -217,7 +251,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'minus',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -229,7 +263,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'normal',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -241,7 +275,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'parallel',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -253,7 +287,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'plus',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -265,7 +299,7 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}}),... +}}),... 'grid',struct(... 'grid_subset',{{struct(... 'base',{{struct(... @@ -281,15 +315,15 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([])) -;}},... +}},... 'dimension',int32(-999999999),... 'element',{{struct(... 'object',{{struct(... 'dimension',int32(-999999999),... 'index',int32(-999999999),... 'space',int32(-999999999)) -;}}) -;}},... +}}) +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... @@ -307,11 +341,12 @@ struct(... 'tensor_covariant_error_index',int32(-999999999),... 'tensor_covariant_error_lower',double([]),... 'tensor_covariant_error_upper',double([]))) -;}},... +}},... 'identifier',struct(... 'description','',... 'index',int32(-999999999),... 'name',''),... +'path','',... 'space',{{struct(... 'coordinates_type',int32([]),... 'geometry_type',struct(... @@ -323,12 +358,20 @@ struct(... 'index',int32(-999999999),... 'name',''),... 'objects_per_dimension',{{struct(... +'geometry_content',struct(... +'description','',... +'index',int32(-999999999),... +'name',''),... 'object',{{struct(... 'boundary',{{struct(... 'index',int32(-999999999),... 'neighbours',int32([])) -;}},... +}},... 'geometry',double([]),... +'geometry_2d',double([]),... +'geometry_2d_error_index',int32(-999999999),... +'geometry_2d_error_lower',double([]),... +'geometry_2d_error_upper',double([]),... 'geometry_error_index',int32(-999999999),... 'geometry_error_lower',double([]),... 'geometry_error_upper',double([]),... @@ -337,9 +380,9 @@ struct(... 'measure_error_lower',double(-9e+40),... 'measure_error_upper',double(-9e+40),... 'nodes',int32([])) -;}}) -;}}) -;}}),... +}}) +}}) +}}),... 'k_perpendicular',{{struct(... 'coefficients',double([]),... 'coefficients_error_index',int32(-999999999),... @@ -351,9 +394,9 @@ struct(... 'values_error_index',int32(-999999999),... 'values_error_lower',double([]),... 'values_error_upper',double([])) -;}},... +}},... 'time',double(-9e+40)) -;}},... +}},... 'global_quantities',{{struct(... 'current_tor',double(-9e+40),... 'current_tor_error_index',int32(-999999999),... @@ -401,7 +444,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'power_fast',double(-9e+40),... @@ -452,12 +495,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'n_tor',int32([]),... 'power',double(-9e+40),... 'power_error_index',int32(-999999999),... @@ -468,7 +511,7 @@ struct(... 'power_n_tor_error_lower',double([]),... 'power_n_tor_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'identifier',struct(... 'antenna_name','',... 'index_in_antenna',int32(-999999999),... @@ -521,7 +564,7 @@ struct(... 'phase_error_index',int32(-999999999),... 'phase_error_lower',double([]),... 'phase_error_upper',double([]))) -;}},... +}},... 'electrons',struct(... 'power_density_fast',double([]),... 'power_density_fast_error_index',int32(-999999999),... @@ -607,7 +650,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'power_density_fast',double([]),... @@ -690,12 +733,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'k_perpendicular',double([]),... 'k_perpendicular_error_index',int32(-999999999),... 'k_perpendicular_error_lower',double([]),... @@ -718,7 +761,7 @@ struct(... 'power_inside_n_tor_error_lower',double([]),... 'power_inside_n_tor_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'profiles_2d',{{struct(... 'e_field_n_tor',{{struct(... 'minus',struct(... @@ -748,7 +791,7 @@ struct(... 'phase_error_index',int32(-999999999),... 'phase_error_lower',double([]),... 'phase_error_upper',double([]))) -;}},... +}},... 'electrons',struct(... 'power_density_fast',double([]),... 'power_density_fast_error_index',int32(-999999999),... @@ -822,7 +865,7 @@ struct(... 'z_n_error_index',int32(-999999999),... 'z_n_error_lower',double(-9e+40),... 'z_n_error_upper',double(-9e+40)) -;}},... +}},... 'label','',... 'multiple_states_flag',int32(-999999999),... 'power_density_fast',double([]),... @@ -873,12 +916,12 @@ struct(... 'z_min_error_index',int32(-999999999),... 'z_min_error_lower',double(-9e+40),... 'z_min_error_upper',double(-9e+40)) -;}},... +}},... 'z_ion',double(-9e+40),... 'z_ion_error_index',int32(-999999999),... 'z_ion_error_lower',double(-9e+40),... 'z_ion_error_upper',double(-9e+40)) -;}},... +}},... 'n_tor',int32([]),... 'power_density',double([]),... 'power_density_error_index',int32(-999999999),... @@ -889,16 +932,61 @@ struct(... 'power_density_n_tor_error_lower',double([]),... 'power_density_n_tor_error_upper',double([]),... 'time',double(-9e+40)) -;}},... +}},... 'wave_solver_type',struct(... 'description','',... 'index',int32(-999999999),... 'name','')) -;}},... +}},... 'ids_properties',struct(... 'comment','',... 'creation_date','',... 'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... 'provider','',... 'source','',... 'version_put',struct(... diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m b/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m new file mode 100644 index 0000000000000000000000000000000000000000..232ea4bddcbb837d483490f61cf8420b18ff57ff --- /dev/null +++ b/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m @@ -0,0 +1,110 @@ +function S = ids_empty_workflow +% function S = ids_empty_workflow +% +% File written automatically using writestruct_to_mfile.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% + +S = ... +struct(... +'code',struct(... +'commit','',... +'description','',... +'library',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'name','',... +'output_flag',int32([]),... +'parameters','',... +'repository','',... +'version',''),... +'ids_properties',struct(... +'comment','',... +'creation_date','',... +'homogeneous_time',int32(-999999999),... +'plugins',struct(... +'infrastructure_get',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'infrastructure_put',struct(... +'commit','',... +'description','',... +'name','',... +'repository','',... +'version',''),... +'node',{{struct(... +'get_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'path','',... +'put_operation',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'readback',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}}) +}}),... +'provenance',struct(... +'node',{{struct(... +'path','',... +'sources',{{}}) +}}),... +'provider','',... +'source','',... +'version_put',struct(... +'access_layer','',... +'access_layer_language','',... +'data_dictionary','')),... +'time',double([]),... +'time_loop',struct(... +'component',{{struct(... +'commit','',... +'description','',... +'name','',... +'parameters','',... +'repository','',... +'version','') +}},... +'time_end',double(-9e+40),... +'time_end_error_index',int32(-999999999),... +'time_end_error_lower',double(-9e+40),... +'time_end_error_upper',double(-9e+40),... +'workflow_cycle',{{struct(... +'component',{{struct(... +'control_float',double([]),... +'control_float_error_index',int32(-999999999),... +'control_float_error_lower',double([]),... +'control_float_error_upper',double([]),... +'control_integer',int32([]),... +'execution_mode',int32(-999999999),... +'index',int32(-999999999),... +'time_interval',double(-9e+40),... +'time_interval_error_index',int32(-999999999),... +'time_interval_error_lower',double(-9e+40),... +'time_interval_error_upper',double(-9e+40)) +}},... +'time',double(-9e+40)) +}})); diff --git a/matlab/TCV_IMAS/ids_empty/ids_list_all.m b/matlab/TCV_IMAS/ids_empty/ids_list_all.m index 234770598e679f03fc2de922fd521441cf5ec671..1fb18199a9e7076bc5d0895646731f3525b07837 100644 --- a/matlab/TCV_IMAS/ids_empty/ids_list_all.m +++ b/matlab/TCV_IMAS/ids_empty/ids_list_all.m @@ -1,7 +1,9 @@ function S = ids_list_all % function S = ids_list_all % -% File written automatically using writecell.m +% File written automatically using writecell.m +% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0 +% -S = ... -{'amns_data';'barometry';'bolometer';'bremsstrahlung_visible';'calorimetry';'camera_ir';'camera_visible';'charge_exchange';'coils_non_axisymmetric';'controllers';'core_instant_changes';'core_profiles';'core_sources';'core_transport';'cryostat';'dataset_description';'dataset_fair';'disruption';'distribution_sources';'distributions';'divertors';'ec_launchers';'ece';'edge_profiles';'edge_sources';'edge_transport';'em_coupling';'equilibrium';'gas_injection';'gas_pumping';'gyrokinetics';'hard_x_rays';'ic_antennas';'interferometer';'iron_core';'langmuir_probes';'lh_antennas';'magnetics';'mhd';'mhd_linear';'mse';'nbi';'neutron_diagnostic';'ntms';'numerics';'pellets';'pf_active';'pf_passive';'polarimeter';'pulse_schedule';'radiation';'reflectometer_profile';'refractometer';'sawteeth';'sdn';'soft_x_rays';'spectrometer_mass';'spectrometer_uv';'spectrometer_visible';'spectrometer_x_ray_crystal';'summary';'temporary';'thomson_scattering';'tf';'transport_solver_numerics';'turbulence';'wall';'waves';}; +S = ... +{'amns_data';'barometry';'b_field_non_axisymmetric';'bolometer';'bremsstrahlung_visible';'calorimetry';'camera_ir';'camera_visible';'camera_x_rays';'charge_exchange';'coils_non_axisymmetric';'controllers';'core_instant_changes';'core_profiles';'core_sources';'core_transport';'cryostat';'dataset_description';'dataset_fair';'disruption';'distribution_sources';'distributions';'divertors';'ec_launchers';'ece';'edge_profiles';'edge_sources';'edge_transport';'em_coupling';'equilibrium';'focs';'gas_injection';'gas_pumping';'gyrokinetics';'hard_x_rays';'ic_antennas';'interferometer';'iron_core';'langmuir_probes';'lh_antennas';'magnetics';'mhd';'mhd_linear';'mse';'nbi';'neutron_diagnostic';'ntms';'pellets';'pf_active';'pf_passive';'plasma_initiation';'polarimeter';'pulse_schedule';'radiation';'real_time_data';'reflectometer_profile';'reflectometer_fluctuation';'refractometer';'runaway_electrons';'sawteeth';'soft_x_rays';'spectrometer_mass';'spectrometer_uv';'spectrometer_visible';'spectrometer_x_ray_crystal';'summary';'temporary';'thomson_scattering';'tf';'transport_solver_numerics';'turbulence';'wall';'waves';'workflow'}; diff --git a/matlab/TCV_IMAS/idses_empty_to_mfile.m b/matlab/TCV_IMAS/idses_empty_to_mfile.m new file mode 100644 index 0000000000000000000000000000000000000000..b6bb797f6ce7efc49f6e2df2c1470bb075ffdb4c --- /dev/null +++ b/matlab/TCV_IMAS/idses_empty_to_mfile.m @@ -0,0 +1,51 @@ +function [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile(dirname_for_files,varargin) +% +% [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile(dirname_for_files,varargin); +% +% dirname_for_files: folder to save files, if not provided or empty, use /tmp/$USER/idses_empty_to_mfile +% +% generate empty ids structures and save them with writestruct_to_mfile as ascii .m files defining the structures +% Add json output when ready +% +% varargin{1}: option for outputs: 1 (default) to mfiles, 2 to mfiles and json files, 3 to json files +% +% The procedure for updating the empty idses available for TCV/lacs is to do: +% [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile; +% !cp -pr /tmp/$USER/idses_empty_to_mfile/* /.../gdat/matlab/TCV_IMAS/ids_empty +% !ls -alt /.../gdat/matlab/TCV_IMAS/ids_empty +% and rm the old files (not replaced by the cp above, since it means non existent in current version +% add branch to gdat and merge, then deploy +% +% wall = ids_empty_wall; % for example gives the IDS wall structure +% help ids_empty_wall % gives you the IMAS version it used to produce it +% + +if nargin < 1 || isempty(dirname_for_files) || ~exist(dirname_for_files,'dir') + dirname_for_files = sprintf('/tmp/%s/idses_empty_to_mfile',getenv('USER')); + [dummy1,dummy2]=rmdir(dirname_for_files,'s'); + mkdir(dirname_for_files); + warning('no folder provided, files will be written to: %s\n',dirname_for_files); +end +empty_dir_out = dirname_for_files; + +write_option = 1; +if nargin>=2 && ~isempty(varargin{1}) + write_option = varargin{1}; +end + +ids_list_to_generate = IDS_list; +imas_version = getenv('IMAS_VERSION'); +n_prec = 15; % for 1e40 and -1e9+1 +provenance_text = sprintf('writestruct_to_mfile with n=%d, with ids_gen to generate empty IDS within IMAS version %s',n_prec,imas_version); +for i=1:length(ids_list_to_generate) + ids_empty_structures.(ids_list_to_generate{i}) = ids_gen(ids_list_to_generate{i}); + okflags(i) = writestruct_to_mfile(ids_empty_structures.(ids_list_to_generate{i}), ... + fullfile(dirname_for_files,['ids_empty_',ids_list_to_generate{i},'.m']),n_prec,provenance_text); +end + +okflags(end+1) = writecell(ids_list_to_generate,fullfile(dirname_for_files,'ids_list_all.m'),n_prec,provenance_text); + + +if any(okflags~=1) + warning('some flags not ok') +end diff --git a/matlab/TCV_IMAS/tcv2ids2database.m b/matlab/TCV_IMAS/tcv2ids2database.m index 9166d42d3cb3b839076f7e15aa0bd33d158735a2..664175a4313b51c1194f1b54980d78155a6777d9 100644 --- a/matlab/TCV_IMAS/tcv2ids2database.m +++ b/matlab/TCV_IMAS/tcv2ids2database.m @@ -10,6 +10,7 @@ function [ids_from_tcv,varargout] = tcv2ids2database(shot,run_out,varargin); % varargin: 'occurence': occurence value % varargin: 'ids_names': cell, ids to load, by default all defined so far (if empty or empty string or not given) % see tcv_available_ids for the list of IDSs available for TCV +% varargin: 'imas_backend': "MDSplus" or "HDF5" % varargin: 'error_bar': type (string) % 'delta' or empty (default): meaning difference in upper is set (standard error_bar % 'added': errorbar is added: upper=data+delta and lower=data-delta @@ -27,6 +28,7 @@ function [ids_from_tcv,varargout] = tcv2ids2database(shot,run_out,varargin); % example: % ids_from_tcv = tcv2ids2database(62745,9999,'ids_names',{'pf_active'},'error_bar','added'); % to test only one ids % ids_from_tcv = tcv2ids2database(62745,9999,'error_bar','added'); % to get all default ids's and old errorbar type +% ids_from_tcv = tcv2ids2database(62745,9999,'ids_names',{'summary'},'imas_backend','HDF5'); % Save data in imas HDF5 backend instead of MDSplus % ids_from_tcv = []; @@ -50,6 +52,7 @@ p.addOptional('run_out', [], @(x) (isnumeric(x) && isscalar(x) && (x == round(x) p.addOptional('occurence', 0, @(x) isempty(x) || (isnumeric(x) && isscalar(x) && (x == round(x)))); % integer ids_names = tcv_available_ids; p.addOptional('ids_names', ids_names, @(x) isempty(x) || iscell(x)); % char or cell array +p.addOptional('imas_backend', 'MDSplus', @(x) isempty(x) || ischar(x)); p.addOptional('error_bar', 'delta', @(x) isempty(x) || ischar(x) ); % char or cell array p.addOptional('tree_user', getenv('USER'), @(x) isempty(x) || ischar(x) ); % char p.addOptional('tree_tokamak', 'tcv', @(x) isempty(x) || ischar(x) ); % char @@ -101,8 +104,9 @@ for i=1:length(params.ids_names) end params.ids_names = ids_names_ok; params_tcv2ids2database = params; -params_not_in_tcv2ids = {'run_out','occurence','tree_user','tree_tokamak','tree_majorversion'}; +params_not_in_tcv2ids = {'run_out','occurence','tree_user','tree_tokamak','tree_majorversion','imas_backend'}; params_tcv2ids = rmfield(params_tcv2ids2database,params_not_in_tcv2ids); + [ids_from_tcv,idsok] = tcv2ids(shot,params_tcv2ids); ids_from_tcv.params_tcv2ids2database = params_tcv2ids2database; @@ -128,7 +132,8 @@ end %% [ids_put_status] = ids2database(shot,run_out,ids_from_tcv.params_tcv2ids2database.occurence,ids_from_tcv, ... - params_tcv2ids2database.tree_user,params_tcv2ids2database.tree_tokamak,params_tcv2ids2database.tree_majorversion); + params_tcv2ids2database.tree_user,params_tcv2ids2database.tree_tokamak,params_tcv2ids2database.tree_majorversion, ... + params_tcv2ids2database.imas_backend); ids_from_tcv.ids_put_status = ids_put_status; diff --git a/matlab/TCV_IMAS/tcv_get_ids_summary.m b/matlab/TCV_IMAS/tcv_get_ids_summary.m index 777eed4318e4fddfd68f5235a3880cf9e34b1d9b..2a720beba4e976d3ab1443119ab95159cb7f7bf3 100644 --- a/matlab/TCV_IMAS/tcv_get_ids_summary.m +++ b/matlab/TCV_IMAS/tcv_get_ids_summary.m @@ -248,7 +248,7 @@ global_quantities_fieldnames = fieldnames(global_quantities); for i=1:numel(global_quantities_fieldnames) if ~any(strcmp(global_quantities_fieldnames{i},special_fields)) if ~isstruct(ids_summary.global_quantities.(global_quantities_fieldnames{i}).value) && ... - ~isempty(global_quantities.(global_quantities_fieldnames{i}).data) + ~isempty(global_quantities.(global_quantities_fieldnames{i}).data) ids_summary.global_quantities.(global_quantities_fieldnames{i}).value = interp1( ... global_quantities.(global_quantities_fieldnames{i}).t,global_quantities.(global_quantities_fieldnames{i}).data, ... ids_summary.time,'linear',NaN); diff --git a/matlab/gdat.m b/matlab/gdat.m index 11efb5931b88064d3e98894b1767e7922d8eb0d0..99271c743677156ce27598a06bda6a42cf7e88a1 100644 --- a/matlab/gdat.m +++ b/matlab/gdat.m @@ -187,10 +187,25 @@ try else args = [{shot,data_request},varargin_eff]; end - [gdat_data,gdat_params,error_status,varargout] = feval(['gdat_' lower(machine_eff)],args{:}); - % because data request can be an actual detailed tree related signal, upper and lower case need to be kept, but other places remain with lower case when case insensitive - % needed since some substructure have machine name like mapping_for - gdat_data.gdat_params.machine = lower(gdat_data.gdat_params.machine); + % treat multiple shot numbers + if nargin > 0 && isnumeric(shot) + args_in = args; + if ~isempty(shot) + for i=1:numel(shot) + args{1} = shot(i); + [gdat_data_i,gdat_params,error_status(i),varargout_gdat] = feval(['gdat_' lower(machine_eff)],args{:}); + gdat_data_i.gdat_params.machine = lower(gdat_data_i.gdat_params.machine); + gdat_data(i) = gdat_data_i; + end + else + [gdat_data,gdat_params,error_status,varargout_gdat] = feval(['gdat_' lower(machine_eff)],args{:}); + end + else + [gdat_data,gdat_params,error_status,varargout_gdat] = feval(['gdat_' lower(machine_eff)],args{:}); + % because data request can be an actual detailed tree related signal, upper and lower case need to be kept, but other places remain with lower case when case insensitive + % needed since some substructure have machine name like mapping_for + gdat_data.gdat_params.machine = lower(gdat_data.gdat_params.machine); + end catch ME_gdat warning(['problems calling gdat_' lower(machine_eff)]); @@ -204,9 +219,13 @@ catch ME_gdat return end -gdat_data.gdat_call = gdat_call; +if numel(gdat_data) > 0 + for i=1:numel(gdat_data) + gdat_data(i).gdat_call = gdat_call; + end +end -if gdat_data.gdat_params.doplot +if numel(gdat_data) > 0 && gdat_data(1).gdat_params.doplot try % plot gdat_data versus 1st dim by default, if nb_dims<=2, otherwise do not plot hhh = gdat_plot(gdat_data); % return handle to figure diff --git a/matlab/gdat_plot.m b/matlab/gdat_plot.m index ccbf80d03b49bead91fae55fdf1432a7e4941c77..29895699b09e889c7085e485ec014d4c66f645f3 100644 --- a/matlab/gdat_plot.m +++ b/matlab/gdat_plot.m @@ -31,180 +31,189 @@ end doplot=1; if isfield(gdat_plot_params,'doplot') && ~isempty(gdat_plot_params.doplot) doplot = gdat_plot_params.doplot; -elseif isfield(gdat_data,'gdat_params') && isfield(gdat_data.gdat_params,'doplot') && ~isempty(gdat_data.gdat_params.doplot) - if gdat_data.gdat_params.doplot~=0 % assume one does not call gdat_plot not to plot - doplot = gdat_data.gdat_params.doplot; +elseif isfield(gdat_data(1),'gdat_params') && isfield(gdat_data(1).gdat_params,'doplot') && ~isempty(gdat_data(1).gdat_params.doplot) + if gdat_data(1).gdat_params.doplot~=0 % assume one does not call gdat_plot not to plot + doplot = gdat_data(1).gdat_params.doplot; end end if doplot==0; return; end redo_legend_from_Tags = 0; do_legend = 1; -if all(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty(gdat_data.t) - fighandle = get(0,'CurrentFigure'); - if doplot == 1 - fighandle = figure; - elseif doplot > 1 - fighandle = figure(doplot); - clf; - elseif doplot == -1 - hold all - elseif doplot < -1 - fighandle = figure(abs(doplot)); - hold all - end - if isfield(gdat_data,'gdat_request') && ischar(gdat_data.gdat_request) ... - && strcmp(gdat_data.gdat_request,'eqdsk') - % special case, plot contours of first equil - endstr = ''; - if iscell(gdat_data.eqdsk); endstr = '{1}'; end - eval(['contour(gdat_data.eqdsk' endstr '.rmesh,gdat_data.eqdsk' endstr '.zmesh,gdat_data.eqdsk' endstr '.psi'',100);']) - hold on - eval(['linehandles{end+1} = plot(gdat_data.eqdsk' endstr '.rplas,gdat_data.eqdsk' endstr '.zplas,''k'');']) - eval(['linehandles{end+1} = plot(gdat_data.eqdsk' endstr '.rlim,gdat_data.eqdsk' endstr '.zlim,''k'');']) - axis equal; - title(eval(['gdat_data.eqdsk' endstr '.stitle'])); - do_legend = 0; - elseif any(find(size(gdat_data.data)==length(gdat_data.t))) - try - if length(size(gdat_data.data))<=2 - if isnumeric(gdat_data.t) - linehandles{end+1} = plot(gdat_data.t,gdat_data.data); - elseif iscell(gdat_data.t) - linehandles{end+1} = plot(str2num(cell2mat(gdat_data.t)),gdat_data.data); +nb_linehandles_current = numel(linehandles); +for ishot=1:numel(gdat_data) + nb_linehandles_prev = nb_linehandles_current; + if all(isfield(gdat_data(ishot),{'data','t'})) && ~isempty(gdat_data(ishot).data) && ~isempty(gdat_data(ishot).t) + fighandle = get(0,'CurrentFigure'); + if ishot > 1 && gdat_data(1).gdat_params.doplot==1 + % assume that for a series of shot, need doplot=-1 after 1st plot if doplot was 1 in request + doplot = -1; + end + if doplot == 1 + fighandle = figure; + elseif doplot > 1 + fighandle = figure(doplot); + clf; + elseif doplot == -1 + hold all + elseif doplot < -1 + fighandle = figure(abs(doplot)); + hold all + end + if isfield(gdat_data(ishot),'gdat_request') && ischar(gdat_data(ishot).gdat_request) ... + && strcmp(gdat_data(ishot).gdat_request,'eqdsk') + % special case, plot contours of first equil + endstr = ''; + if iscell(gdat_data(ishot).eqdsk); endstr = '{1}'; end + eval(['contour(gdat_data(ishot).eqdsk' endstr '.rmesh,gdat_data(ishot).eqdsk' endstr '.zmesh,gdat_data(ishot).eqdsk' endstr '.psi'',100);']) + hold on + eval(['linehandles{end+1} = plot(gdat_data(ishot).eqdsk' endstr '.rplas,gdat_data(ishot).eqdsk' endstr '.zplas,''k'');']) + eval(['linehandles{end+1} = plot(gdat_data(ishot).eqdsk' endstr '.rlim,gdat_data(ishot).eqdsk' endstr '.zlim,''k'');']) + axis equal; + title(eval(['gdat_data(ishot).eqdsk' endstr '.stitle'])); + do_legend = 0; + elseif any(find(size(gdat_data(ishot).data)==length(gdat_data(ishot).t))) + try + if length(size(gdat_data(ishot).data))<=2 + if isnumeric(gdat_data(ishot).t) + linehandles{end+1} = plot(gdat_data(ishot).t,gdat_data(ishot).data); + elseif iscell(gdat_data(ishot).t) + linehandles{end+1} = plot(str2num(cell2mat(gdat_data(ishot).t)),gdat_data(ishot).data); + end + else + disp('WARNING') + disp(['size(gdat_data(ishot).data) = ' num2str(size(gdat_data(ishot).data)) ', >2D thus do not try to plot']) + disp(' ') + return + end + catch ME + if exist('ME','var') + disp('Problem in gdat_plot') + rethrow(ME) end - else - disp('WARNING') - disp(['size(gdat_data.data) = ' num2str(size(gdat_data.data)) ', >2D thus do not try to plot']) - disp(' ') return end - catch ME - if exist('ME','var') - disp('Problem in gdat_plot') - rethrow(ME) + if ~isfield(gdat_data(ishot),'shot'); return; end % allows to plot if just .t and .data exist + if doplot < 0 + title([gdat_data(ishot).gdat_params.machine]); + else + title([gdat_data(ishot).gdat_params.machine ' #' num2str(gdat_data(ishot).shot)]); end - return - end - if ~isfield(gdat_data,'shot'); return; end % allows to plot if just .t and .data exist - if doplot < 0 - title([gdat_data.gdat_params.machine]); - else - title([gdat_data.gdat_params.machine ' #' num2str(gdat_data.shot)]); - end - if isfield(gdat_data,'mapping_for') - dimunits_x = gdat_data.dimunits{gdat_data.mapping_for.(gdat_data.gdat_params.machine).gdat_timedim}; - if ischar(dimunits_x) - xlabel(['time [' dimunits_x ']']); + if isfield(gdat_data(ishot),'mapping_for') + dimunits_x = gdat_data(ishot).dimunits{gdat_data(ishot).mapping_for.(gdat_data(ishot).gdat_params.machine).gdat_timedim}; + if ischar(dimunits_x) + xlabel(['time [' dimunits_x ']']); + else + xlabel(['time']); + end else xlabel(['time']); end - else - xlabel(['time']); - end - ylabel_eff = gdat_data.label; - if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{end}; end - if ~isempty(gdat_data.units) - hylabel=ylabel([ylabel_eff '[' gdat_data.units ']'],'interpreter','none'); - else - hylabel=ylabel(ylabel_eff,'interpreter','none'); - end - ab=get(gca,'children'); - if iscell(gdat_data.label) && numel(gdat_data.label) > 1; - if numel(ab)==numel(gdat_data.label) || mod(numel(ab),numel(gdat_data.label))==0 - % Assumes a single shot with several lines and labels, if mod==0 then this is a new shot, only Tag present lines - for iab=1:numel(gdat_data.label) - set(ab(iab),'Tag',[num2str(gdat_data.shot) ' ' gdat_data.label{end-iab+1}]); + ylabel_eff = gdat_data(ishot).label; + if iscell(gdat_data(ishot).label) && length(gdat_data(ishot).label)>=2; ylabel_eff = gdat_data(ishot).label{end}; end + if ~isempty(gdat_data(ishot).units) + hylabel=ylabel([ylabel_eff '[' gdat_data(ishot).units ']'],'interpreter','none'); + else + hylabel=ylabel(ylabel_eff,'interpreter','none'); + end + ab=get(gca,'children'); + if iscell(gdat_data(ishot).label) && numel(gdat_data(ishot).label) > 1; + if numel(ab)==numel(gdat_data(ishot).label) || mod(numel(ab),numel(gdat_data(ishot).label))==0 + % Assumes a single shot with several lines and labels, if mod==0 then this is a new shot, only Tag present lines + for iab=1:numel(gdat_data(ishot).label) + set(ab(iab),'Tag',[num2str(gdat_data(ishot).shot) ' ' gdat_data(ishot).label{end-iab+1}]); + end + if numel(ab)>numel(gdat_data(ishot).label), redo_legend_from_Tags = 1; end + end + if iscell(gdat_data(ishot).label) && length(ab) < length(gdat_data(ishot).label) + if length(ab) == 1 + % assume combine label is best + tempaaa = sprintf('%s/',gdat_data(ishot).label{:}); + hhhleg=legend(tempaaa(1:end-1)); + set(ab(1),'Tag',[num2str(gdat_data(ishot).shot) ' ' tempaaa(1:min(10,numel(tempaaa)-1))]); + else + % not sure why would get there + hhhleg=legend(gdat_data(ishot).label{1:length(ab)}); + end + elseif numel(ab)==numel(gdat_data(ishot).label) + hhhleg=legend(gdat_data(ishot).label); + end + if exist('hhhleg','var'), set(hhhleg,'Interpreter','none'); end + else + % assume one line per call + if isempty(gdat_data(ishot).label) + set(ab(1),'Tag',[num2str(gdat_data(ishot).shot)]); + elseif ischar(gdat_data(ishot).label) + % assume one signal, take max 10 chars + set(ab(1),'Tag',[num2str(gdat_data(ishot).shot) ' ' gdat_data(ishot).label(1:min(10,numel(gdat_data(ishot).label)))]); + elseif iscell(gdat_data(ishot).label) && numel(gdat_data(ishot).label) == 1 + if isempty(gdat_data(ishot).label{1}) + set(ab(1),'Tag',[num2str(gdat_data(ishot).shot)]); + else + set(ab(1),'Tag',[num2str(gdat_data(ishot).shot) ' ' gdat_data(ishot).label{1}(1:min(10,numel(gdat_data(ishot).label{1})))]); + end end - if numel(ab)>numel(gdat_data.label), redo_legend_from_Tags = 1; end end - if iscell(gdat_data.label) && length(ab) < length(gdat_data.label) - if length(ab) == 1 - % assume combine label is best - tempaaa = sprintf('%s/',gdat_data.label{:}); - hhhleg=legend(tempaaa(1:end-1)); - set(ab(1),'Tag',[num2str(gdat_data.shot) ' ' tempaaa(1:min(10,numel(tempaaa)-1))]); - else - % not sure why would get there - hhhleg=legend(gdat_data.label{1:length(ab)}); + if redo_legend_from_Tags + for iab=1:numel(ab) + % Use Tag for DisplayName, when overlay plots of multiple data at this stage + set(ab(iab),'DisplayName',strrep(get(ab(iab),'Tag'),'_','\_')); end - elseif numel(ab)==numel(gdat_data.label) - hhhleg=legend(gdat_data.label); end - if exist('hhhleg','var'), set(hhhleg,'Interpreter','none'); end + zoom on; + end + maxnblines = 1; + nb_linehandles_current = numel(linehandles); + if ~exist('ab','var'), ab=get(gca,'children'); end + if do_legend==0 || redo_legend_from_Tags || any(strcmp(gdat_data(ishot).gdat_params.data_request,'powers')) ... + || (numel(ab)==numel(gdat_data(ishot).label) && numel(ab)>1) + % keep legend as is else - % assume one line per call - if isempty(gdat_data.label) - set(ab(1),'Tag',[num2str(gdat_data.shot)]); - elseif ischar(gdat_data.label) - % assume one signal, take max 10 chars - set(ab(1),'Tag',[num2str(gdat_data.shot) ' ' gdat_data.label(1:min(10,numel(gdat_data.label)))]); - elseif iscell(gdat_data.label) && numel(gdat_data.label) == 1 - if isempty(gdat_data.label{1}) - set(ab(1),'Tag',[num2str(gdat_data.shot)]); + for i=nb_linehandles_prev+1:nb_linehandles_current + maxnblines = max(maxnblines,numel(linehandles{i})); + if numel(linehandles{i}) == 1 + set(linehandles{i},'DisplayName',[num2str(gdat_data(ishot).shot)]); else - set(ab(1),'Tag',[num2str(gdat_data.shot) ' ' gdat_data.label{1}(1:min(10,numel(gdat_data.label{1})))]); + for j=1:numel(linehandles{i}) + set(linehandles{i}(j),'DisplayName',[num2str(gdat_data(ishot).shot) ',' num2str(j)]); + end end end end - if redo_legend_from_Tags - for iab=1:numel(ab) - % Use Tag for DisplayName, when overlay plots of multiple data at this stage - set(ab(iab),'DisplayName',strrep(get(ab(iab),'Tag'),'_','\_')); - end - end - zoom on; - end - maxnblines = 1; - if ~exist('ab','var'), ab=get(gca,'children'); end - if do_legend==0 || redo_legend_from_Tags || any(strcmp(gdat_data.gdat_params.data_request,'powers')) ... - || (numel(ab)==numel(gdat_data.label) && numel(ab)>1) - % keep legend as is - else - for i=1:numel(linehandles) - maxnblines = max(maxnblines,numel(linehandles{i})); - if numel(linehandles{i}) == 1 - set(linehandles{i},'DisplayName',[num2str(gdat_data.shot)]); + if do_legend==1 && maxnblines==1; legend show; end + if strcmp(gdat_data(ishot).gdat_request,'mhd') + % special case, add legend instead of ylabel + delete(hylabel); + legend(gdat_data(ishot).label); + % add spectrogram per signal + mhd_sum_data = 0.; + if isfield(gdat_data(ishot).gdat_params,'nfft') && ~isempty(gdat_data(ishot).gdat_params.nfft) + nfft = gdat_data(ishot).gdat_params.nfft; else - for j=1:numel(linehandles{i}) - set(linehandles{i}(j),'DisplayName',[num2str(gdat_data.shot) ',' num2str(j)]); - end + nfft=512; end - end - end - if do_legend==1 && maxnblines==1; legend show; end - if strcmp(gdat_data.gdat_request,'mhd') - % special case, add legend instead of ylabel - delete(hylabel); - legend(gdat_data.label); - % add spectrogram per signal - mhd_sum_data = 0.; - if isfield(gdat_data.gdat_params,'nfft') && ~isempty(gdat_data.gdat_params.nfft) - nfft = gdat_data.gdat_params.nfft; - else - nfft=512; - end - tmhdm=mean(reshape(gdat_data.t(1:nfft*fix(length(gdat_data.t)/nfft)),nfft,fix(length(gdat_data.t)/nfft))); - for i=1:size(gdat_data.data,2) - [B,F,T]=specgram(gdat_data.data(:,i),nfft,1/mean(diff(gdat_data.t)),hanning(nfft),nfft/2); + tmhdm=mean(reshape(gdat_data(ishot).t(1:nfft*fix(length(gdat_data(ishot).t)/nfft)),nfft,fix(length(gdat_data(ishot).t)/nfft))); + for i=1:size(gdat_data(ishot).data,2) + [B,F,T]=specgram(gdat_data(ishot).data(:,i),nfft,1/mean(diff(gdat_data(ishot).t)),hanning(nfft),nfft/2); + figure; + imagesc(T+tmhdm(1),F/1e3,20*log10(abs(B)));axis xy;colormap jet; + ylabel('freq [kHz]') + xlabel(gdat_data(ishot).dimunits{1}) + ylabel_eff = gdat_data(ishot).label; + if iscell(gdat_data(ishot).label) && length(gdat_data(ishot).label)>=i; ylabel_eff = gdat_data(ishot).label{i}; end + title([upper(gdat_data(ishot).gdat_params.machine) '#' num2str(gdat_data(ishot).shot) ' ' ylabel_eff]) + mhd_sum_data = mhd_sum_data + gdat_data(ishot).data(:,i); + end + [B,F,T]=specgram(mhd_sum_data./size(gdat_data(ishot).data,2),nfft,1/mean(diff(gdat_data(ishot).t)),hanning(nfft),nfft/2); figure; imagesc(T+tmhdm(1),F/1e3,20*log10(abs(B)));axis xy;colormap jet; ylabel('freq [kHz]') - xlabel(gdat_data.dimunits{1}) - ylabel_eff = gdat_data.label; - if iscell(gdat_data.label) && length(gdat_data.label)>=i; ylabel_eff = gdat_data.label{i}; end - title([upper(gdat_data.gdat_params.machine) '#' num2str(gdat_data.shot) ' ' ylabel_eff]) - mhd_sum_data = mhd_sum_data + gdat_data.data(:,i); + xlabel(gdat_data(ishot).dimunits{1}) + ylabel_eff = gdat_data(ishot).label; + if iscell(gdat_data(ishot).label); ylabel_eff = sprintf('%s ',gdat_data(ishot).label{:}); end + title([upper(gdat_data(ishot).gdat_params.machine) '#' num2str(gdat_data(ishot).shot) ' sum of ' ylabel_eff]) end - [B,F,T]=specgram(mhd_sum_data./size(gdat_data.data,2),nfft,1/mean(diff(gdat_data.t)),hanning(nfft),nfft/2); - figure; - imagesc(T+tmhdm(1),F/1e3,20*log10(abs(B)));axis xy;colormap jet; - ylabel('freq [kHz]') - xlabel(gdat_data.dimunits{1}) - ylabel_eff = gdat_data.label; - if iscell(gdat_data.label); ylabel_eff = sprintf('%s ',gdat_data.label{:}); end - title([upper(gdat_data.gdat_params.machine) '#' num2str(gdat_data.shot) ' sum of ' ylabel_eff]) + else + disp(['cannot plot gdat_data(' num2str(ishot) '), has empty data or t field']) end -else - disp('cannot plot gdat_data, has empty data or t field') end diff --git a/matlab/generic_fit.m b/matlab/generic_fit.m index 97532229c93b61cf1d84b709170cffdfb7071f82..2ab0d71c87e023edbc83fa404e3ba7ad45003ea3 100644 --- a/matlab/generic_fit.m +++ b/matlab/generic_fit.m @@ -56,12 +56,12 @@ if in_option_eff == 0 disp('no main data') return end - + main_time_base = data_in{1}.t; - + time_interval_in = [main_time_base(1) main_time_base(end)]; ij=find(main_time_base>=time_interval_in(1) & main_time_base<=time_interval_in(2)); - + gen_signals_data.(dataname).combined_data.t = main_time_base(ij); gen_signals_data.(dataname).t = gen_signals_data.(dataname).combined_data.t; for i=1:length(ij) @@ -77,14 +77,14 @@ if in_option_eff == 0 end gen_signals_data.(dataname).combined_data.time_interval(i,1:2) = [t1(i) t2(i)]; end - + for idata=1:length(data_in) gen_signals_data.(dataname).combined_data.rholabel{idata} = data_in{idata}.xname; end for i=1:length(ij) % for each time interval, collect the data - rhotor_data_tofit = []; + rhotor_data_tofit = []; xxdata_tofit = []; xxerr_tofit = []; data_provenance = []; @@ -92,18 +92,18 @@ if in_option_eff == 0 it_data{idata} = find(data_in{idata}.t>=t1(i) & data_in{idata}.t<t2(i)); % construct 1D array with data from data_in{idata} if ~isempty(it_data{idata}) - for it=1:length(it_data{idata}) - jrho_data = find(data_in{idata}.x(:,it_data{idata}(it))>0 & data_in{idata}.x(:,it_data{idata}(it))<1.01 & data_in{idata}.data(:,it_data{idata}(it))>0); - if length(jrho_data)>0 - rhotor_data_tofit(end+1:end+length(jrho_data)) = data_in{idata}.x(jrho_data,it_data{idata}(it)); - xxdata_tofit(end+1:end+length(jrho_data)) = data_in{idata}.data(jrho_data,it_data{idata}(it)); - xxerr_tofit(end+1:end+length(jrho_data)) = data_in{idata}.error_bar(jrho_data,it_data{idata}(it))./coeff_xx_eff(idata); - data_provenance(end+1:end+length(jrho_data)) = idata.*ones(size(jrho_data)); - end - end + for it=1:length(it_data{idata}) + jrho_data = find(data_in{idata}.x(:,it_data{idata}(it))>0 & data_in{idata}.x(:,it_data{idata}(it))<1.01 & data_in{idata}.data(:,it_data{idata}(it))>0); + if length(jrho_data)>0 + rhotor_data_tofit(end+1:end+length(jrho_data)) = data_in{idata}.x(jrho_data,it_data{idata}(it)); + xxdata_tofit(end+1:end+length(jrho_data)) = data_in{idata}.data(jrho_data,it_data{idata}(it)); + xxerr_tofit(end+1:end+length(jrho_data)) = data_in{idata}.error_bar(jrho_data,it_data{idata}(it))./coeff_xx_eff(idata); + data_provenance(end+1:end+length(jrho_data)) = idata.*ones(size(jrho_data)); + end + end end end - + if isempty(xxdata_tofit) disp('xxdata_tofit empty') gen_signals_data.(dataname).combined_data.perDt{i}.rho = []; @@ -158,5 +158,3 @@ gen_signals_data.(dataname).shot = shot; gen_signals_data.(dataname).fit.tension = tension_xx_eff; gen_signals_data.(dataname).fit.coeff_datas = coeff_xx_eff; gen_signals_data.(dataname).fit.rholabel = gen_signals_data.(dataname).combined_data.rholabel{1}; - - diff --git a/matlab/get_data_request_names_from_gdat_xxx.m b/matlab/get_data_request_names_from_gdat_xxx.m index 728e15104fa01f798cd407f731b7715b54e364c4..ae5e9261feb802d5ef2fe9c08cbfcc5ab4571031 100644 --- a/matlab/get_data_request_names_from_gdat_xxx.m +++ b/matlab/get_data_request_names_from_gdat_xxx.m @@ -30,7 +30,7 @@ end fid=fopen([machine_in '_requests_mapping.m'],'r'); nextline=fgetl(fid); while isempty(nextline) || ~isnumeric(nextline) || nextline~=-1 %length(nextline)>2 || ~strcmp(nextline,'-1') - if length(nextline)>7 && strcmp(nextline(1:6),' case ') + if length(nextline)>7 && ~isempty(regexp(nextline,'^ +case ')) ij=find(nextline==['''']); if ~isempty(ij) for i=1:2:length(ij)-1 diff --git a/matlab/get_grids_1d.m b/matlab/get_grids_1d.m index b5822569ef8d33161910c05fbf11127a3d7b0729..b1ff6894b6a31c7913e1aa8b690c2da4469f8557 100644 --- a/matlab/get_grids_1d.m +++ b/matlab/get_grids_1d.m @@ -116,11 +116,11 @@ for it=1:length(gdat_data.t) end end if ~isempty(rhovol.x) && ~isempty(rhovol.data) - if ndim_x_rhovol==1 - gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii),tens0); - else - gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii),tens0); - end + if ndim_x_rhovol==1 + gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii),tens0); + else + gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii),tens0); + end end end else @@ -135,11 +135,11 @@ for it=1:length(gdat_data.t) end end if ~isempty(rhovol.x) && ~isempty(rhovol.data) - if ndim_x_rhovol==1 - gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii,it),tens0); - else - gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii,it),tens0); - end + if ndim_x_rhovol==1 + gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x,rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii,it),tens0); + else + gdat_data.grids_1d.rhovolnorm(1:nb_ii,it)=interpos(23,rhovol.x(:,it_vol_eff),rhovol.data(:,it_vol_eff),gdat_data.grids_1d.rhopolnorm(ii,it),tens0); + end end end end diff --git a/matlab/get_profiles.m b/matlab/get_profiles.m index 5fbd0cd5ff713fc525a60542e07c3a94629f8ba1..34d4edea3bffe6ff815ebd7b1b0a55c639c04cd8 100644 --- a/matlab/get_profiles.m +++ b/matlab/get_profiles.m @@ -83,15 +83,15 @@ if nargin>=3 end else if get_profiles_params.nverbose>=1; warning(['varargin input argument nb: ' num2str(i) ... - ' (nargin=' num2str(i+2) ') is incorrect, expects a character string']); - end - error_status=-11; - return + ' (nargin=' num2str(i+2) ') is incorrect, expects a character string']); + end + error_status=-11; + return end end else if get_profiles_params.nverbose>=1; ... - warning('number of varargin input arguments incorrect, cannot make pairs of parameters'); + warning('number of varargin input arguments incorrect, cannot make pairs of parameters'); end error_status=-12; return @@ -155,4 +155,3 @@ for i=1:length(profile_struct) end end end - diff --git a/matlab/subcall_all2str.m b/matlab/subcall_all2str.m index 6e5d1ee125d25ccaad650eb1ba91d844a6c8ebd4..bc88c279e055876b2631564b2e0e0862c75d3f58 100644 --- a/matlab/subcall_all2str.m +++ b/matlab/subcall_all2str.m @@ -33,9 +33,13 @@ for i_in=1:length(varargin) if prod(size(aa_values))~= length(aa_values) % multi-D input, do not treat it yet subcall = [subcall ',''multi-D input''']; - elseif length(aa_values) > 1 + elseif numel(aa_values) > 1 % array - subcall = [subcall ',[' num2str(reshape(aa_values,1,length(aa_values))) ']']; + if numel(aa_values) <=30 + subcall = [subcall ',[' num2str(reshape(aa_values,1,numel(aa_values))) ']']; + else + subcall = [subcall ',[' num2str(reshape(aa_values(1:4),1,4)) ' ... ' num2str(reshape(aa_values(end-3:end),1,4)) ']']; + end else subcall = [subcall ',' num2str(aa_values) '']; end @@ -47,20 +51,20 @@ for i_in=1:length(varargin) if prod(size(var_to_treat))~= length(var_to_treat) % multi-D input, do not treat it yet subcall = [subcall ',''multi-D input''']; - elseif length(var_to_treat) > 1 + elseif numel(var_to_treat) > 1 % array - subcall = [subcall ',[' num2str(var_to_treat) ']']; + if numel(var_to_treat) <=30 + subcall = [subcall ',[' num2str(reshape(var_to_treat,1,numel(var_to_treat))) ']']; + else + subcall = [subcall ',[' num2str(reshape(var_to_treat(1:4),1,4)) ' ... ' num2str(reshape(var_to_treat(end-3:end),1,4)) ']']; + end else subcall = [subcall ',' num2str(var_to_treat) '']; end elseif ischar(var_to_treat) subcall = [subcall ',''' var_to_treat '''']; elseif iscell(var_to_treat) - subcall = [subcall ',{''' var_to_treat{1} '''']; - for i=2:length(var_to_treat) - subcall = [subcall ',''' var_to_treat{i} '''']; - end - subcall = [subcall '}']; + subcall = [subcall ',' cell2str(var_to_treat,3) '']; else warning('in subcall_all2str: case not foreseen'); end diff --git a/matlab/tests/test_requestnames.m b/matlab/tests/test_requestnames.m index 63595919b38cbbbedf2ad19c8636348badc1df83..557144ccdb55fdc352bb83cf17315892f15429ad 100644 --- a/matlab/tests/test_requestnames.m +++ b/matlab/tests/test_requestnames.m @@ -1,48 +1,63 @@ classdef (SharedTestFixtures={... check_mds,check_gdatpaths}) ... test_requestnames < matlab.unittest.TestCase - + properties (Abstract) Machine; end - + properties(TestParameter,Abstract) % parameters that will vary during tests shot; requests_fast; % placeholders requests_slow; end - + methods(Static) function test_gdat_call(testCase,shot,request) % actual function to test gdat call testCase.assertTrue(isnumeric(str2double(shot))); testCase.assertTrue(ischar(request)); - + % gdat call gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request); do_gdat_call = 1; - + switch request case 'eqdsk' % avoid writing files in /tmp, may not be allowed gdat_call = sprintf(['gdat_%s(%s,''%s'',''write'',0)'],lower(testCase.Machine),shot,request); + case 'radcam' + % need a newer shot for tcv radcam + shot = 81102; + gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request); end - + % logging fprintf('Testing gdat call: %s\n',gdat_call); - + if do_gdat_call gdat_out = eval(gdat_call); %#ok<NASGU> else gdat_out = struct([]); end - + % in some future: check for warnings %gdat_out = verifyWarningFree(testCase,eval(gdat_call),... % 'Warning issued from gdat call:\n %s\n',gdat_call); - + % (add optional sanity checks of gdat_out here) + gdat_out + switch request + case {'ece', 'expcode', 'ids', 'ni', 'ti', 'transp'} + % tests not yet fully implemented and empty + case 'rtc' + % in this case .data is empty, all in .scd_mems + testCase.assertTrue(isfield(gdat_out,'scd_mems') && isstruct(gdat_out.scd_mems)); + % testCase.assertTrue(isstruct(gdat_out.scd_mems)); + otherwise + testCase.assertTrue(isnumeric(gdat_out.data) & numel(gdat_out.data)>0); + end end end -end \ No newline at end of file +end diff --git a/matlab/tests/test_requestnames_tcv.m b/matlab/tests/test_requestnames_tcv.m index f40ecbfa9348473a86ef5552e37e9ad0340510a7..6941e96ddac1f9ae3cc07d32ee0dc76e58b0c5d5 100644 --- a/matlab/tests/test_requestnames_tcv.m +++ b/matlab/tests/test_requestnames_tcv.m @@ -11,17 +11,17 @@ classdef (TestTags={'tcv'})test_requestnames_tcv < test_requestnames requests_fast = get_all_gdat_requests('TCV','fast'); requests_slow = get_all_gdat_requests('TCV','slow'); end - + methods(Test,TestTags = {'fast'}) function test_gdat_call_fast(testCase,shot,requests_fast) testCase.test_gdat_call(testCase,shot,requests_fast); end end - + methods(Test,TestTags = {'slow'}) function test_gdat_call_slow(testCase,shot,requests_slow) testCase.test_gdat_call(testCase,shot,requests_slow); end end - + end