diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m index b91ce1b0d43728cee0708c5cb99a4c416625f720..6408b3ec27581c37046e73815d63e900c2af52ed 100644 --- a/crpptbx/AUG/gdat_aug.m +++ b/crpptbx/AUG/gdat_aug.m @@ -264,9 +264,13 @@ gdat_params = gdat_data.gdat_params; % 1st treat the simplest method: "signal" if strcmp(mapping_for_aug.method,'signal') exp_location = gdat_data.gdat_params.exp_name; - if ~isempty(mapping_for_aug.expression) && iscell(mapping_for_aug.expression) && length(mapping_for_aug.expression)>=3 + if ~iscell(mapping_for_aug.expression) + error_status = 1010; + disp(['expects a cell array with at least 2 cells in expression, mapping_for_aug.expression = ' mapping_for_aug.expression]); + return + elseif length(mapping_for_aug.expression)>=3 exp_location = mapping_for_aug.expression{3}; - elseif ~isempty(mapping_for_aug.expression) && length(mapping_for_aug.expression)>=2 + elseif length(mapping_for_aug.expression)>=2 mapping_for_aug.expression{3} = exp_location; else error_status = 101; @@ -448,9 +452,13 @@ elseif strcmp(mapping_for_aug.method,'switchcase') return end diag_name = gdat_data.gdat_params.source; + extra_arg_sf2sig_eff_string = ''; + if ~strcmp(gdat_data.gdat_params.extra_arg_sf2sig,'[]') + extra_arg_sf2sig_eff_string = [',' gdat_data.gdat_params.extra_arg_sf2sig]; + end % R, Z positions of measurements try - eval(['[r_time]=sf2ab(diag_name,shot,r_node,''-exp'',exp_name_eff,' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['[r_time]=sf2ab(diag_name,shot,r_node,''-exp'',exp_name_eff' extra_arg_sf2sig_eff_string ');']); catch ME_R_time % assume no shotfile getReport(ME_R_time,'basic'); @@ -459,11 +467,11 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.r = r_time.value{1}; inotok=find(gdat_data.r<=0); gdat_data.r(inotok) = NaN; - eval(['[z_time]=sf2ab(diag_name,shot,z_node,''-exp'',exp_name_eff,' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['[z_time]=sf2ab(diag_name,shot,z_node,''-exp'',exp_name_eff' extra_arg_sf2sig_eff_string ');']); gdat_data.z = z_time.value{1}; inotok=find(gdat_data.z<=0); gdat_data.z(inotok) = NaN; - eval(['[time]=sf2tb(diag_name,shot,''time'',''-exp'',exp_name_eff,' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['[time]=sf2tb(diag_name,shot,''time'',''-exp'',exp_name_eff' extra_arg_sf2sig_eff_string ');']); gdat_data.t = time.value; gdat_data.dim{1} = {gdat_data.r , gdat_data.z}; gdat_data.dimunits{1} = 'R, Z [m]'; @@ -1034,7 +1042,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') % ne or Te from Thomson data on raw z mesh vs (z,t) nodenameeff = [upper(data_request_eff(1)) 'e_c']; node_child_nameeff = [upper(data_request_eff(1)) 'e_core']; - [a,error_status]=rdaAUG_eff(shot,'VTA',nodenameeff,exp_name_eff),[],gdat_data.gdat_params.extra_arg_sf2sig; + [a,error_status]=rdaAUG_eff(shot,'VTA',nodenameeff,exp_name_eff,[],gdat_data.gdat_params.extra_arg_sf2sig); if isempty(a.data) || isempty(a.t) || error_status>0 if gdat_params.nverbose>=3; a @@ -1333,6 +1341,10 @@ elseif strcmp(mapping_for_aug.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'pgyro'} + extra_arg_sf2sig_eff_string = ''; + if ~strcmp(gdat_data.gdat_params.extra_arg_sf2sig,'[]') + extra_arg_sf2sig_eff_string = [',' gdat_data.gdat_params.extra_arg_sf2sig]; + end % LOAD MULTI CHANNEL DATA ECS % powers, frequencies, etc params_eff = gdat_data.gdat_params; @@ -1366,7 +1378,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') end end try - eval(['a = sf2par(''ECS'',shot,''gyr_freq'',''P_sy1_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''gyr_freq'',''P_sy1_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch % gyr_freq not present (old shots for example) a=[]; @@ -1377,7 +1389,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.freq_ec(i) = a.value; end try - eval(['a = sf2par(''ECS'',shot,''GPolPos'',''P_sy1_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''GPolPos'',''P_sy1_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch % GPolPos not present a=[]; @@ -1388,7 +1400,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.polpos_ec(i) = a.value; end try - eval(['a = sf2par(''ECS'',shot,''GTorPos'',''P_sy1_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''GTorPos'',''P_sy1_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch a=[]; end @@ -1410,7 +1422,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') end end try - eval(['a = sf2par(''ECS'',shot,''gyr_freq'',''P_sy2_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''gyr_freq'',''P_sy2_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch a=[]; end @@ -1420,7 +1432,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.freq_ec(i+4) = a.value; end try - eval(['a = sf2par(''ECS'',shot,''GPolPos'',''P_sy2_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''GPolPos'',''P_sy2_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch a=[]; end @@ -1430,7 +1442,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.polpos_ec(i+4) = a.value; end try - eval(['a = sf2par(''ECS'',shot,''GTorPos'',''P_sy2_g' num2str(i) ''',' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['a = sf2par(''ECS'',shot,''GTorPos'',''P_sy2_g' num2str(i) '''' extra_arg_sf2sig_eff_string ');']); catch a=[]; end @@ -2000,6 +2012,10 @@ elseif strcmp(mapping_for_aug.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'transp'} + extra_arg_sf2sig_eff_string = ''; + if ~strcmp(gdat_data.gdat_params.extra_arg_sf2sig,'[]') + extra_arg_sf2sig_eff_string = [',' gdat_data.gdat_params.extra_arg_sf2sig]; + end % most of the times the exp for the shotfile should be provided shotfile_exp_eff = gdat_params.exp_name; diagname='TRA'; @@ -2016,7 +2032,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') elseif strcmp(lower(transp_sig{i,2}),'area-base') clear adata_area try - eval(['[adata_area]=sf2ab(diagname,shot,transp_sig{i,1},''-exp'',shotfile_exp_eff,' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['[adata_area]=sf2ab(diagname,shot,transp_sig{i,1},''-exp'',shotfile_exp_eff' extra_arg_sf2sig_eff_string ');']); catch adata_area.value = cell(0); end @@ -2024,7 +2040,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') elseif strcmp(lower(transp_sig{i,2}),'time-base') clear adata_time try - eval(['[adata_time]=sf2tb(diagname,shot,transp_sig{i,1},''-exp'',shotfile_exp_eff,shotfile_exp_eff,' gdat_data.gdat_params.extra_arg_sf2sig ');']); + eval(['[adata_time]=sf2tb(diagname,shot,transp_sig{i,1},''-exp'',shotfile_exp_eff,shotfile_exp_eff' extra_arg_sf2sig_eff_string ');']); catch adata_time.value = cell(0); end @@ -2034,7 +2050,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase') % 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.dim{1} = gdat_data.t; gdat_data.dimunits{1} = gdat_data.TIME.unit; end @@ -2065,15 +2081,19 @@ function [gdat_data,exp_name_eff,DIAG,NTIME_Lpf,NTIME,Lpf1_t,Lpf_SOL,M_Rmesh,N_Z % get basic params to be able to read results in EQ-like shotfiles % M_Rmesh,N_Zmesh only needed for equil when 2D quantities are required % +extra_arg_sf2sig_eff_string = ''; +if ~strcmp(gdat_data.gdat_params.extra_arg_sf2sig,'[]') + extra_arg_sf2sig_eff_string = [',' gdat_data.gdat_params.extra_arg_sf2sig]; +end shot=gdat_data.shot; exp_name_eff = gdat_data.gdat_params.exp_name; gdat_data.gdat_params.equil = upper(gdat_data.gdat_params.equil); DIAG = gdat_data.gdat_params.equil; % 'EQI' by default at this stage, should become EQH? -eval(['M_Rmesh_par = sf2par(DIAG,shot,''M'',''PARMV'',' gdat_data.gdat_params.extra_arg_sf2sig ');']); +eval(['M_Rmesh_par = sf2par(DIAG,shot,''M'',''PARMV''' extra_arg_sf2sig_eff_string ');']); M_Rmesh = M_Rmesh_par.value + 1; % nb of points -eval(['N_Zmesh_par = sf2par(DIAG,shot,''N'',''PARMV'',' gdat_data.gdat_params.extra_arg_sf2sig ');']); +eval(['N_Zmesh_par = sf2par(DIAG,shot,''N'',''PARMV''' extra_arg_sf2sig_eff_string ');']); N_Zmesh = N_Zmesh_par.value + 1; % nb of points -eval(['NTIME_par = sf2par(DIAG,shot,''NTIME'',''PARMV'',' gdat_data.gdat_params.extra_arg_sf2sig ');']); +eval(['NTIME_par = sf2par(DIAG,shot,''NTIME'',''PARMV''' extra_arg_sf2sig_eff_string ');']); NTIME = NTIME_par.value; % nb of points Lpf_par = rdaAUG_eff(shot,DIAG,'Lpf',exp_name_eff,[],gdat_data.gdat_params.extra_arg_sf2sig); % since June, nb of time points in EQ results is not consistent with NTIME and time diff --git a/crpptbx/AUG/geteqdskAUG.m b/crpptbx/AUG/geteqdskAUG.m index 2211948d58311116962b7d6a29cf77d352690983..928de02ae00a8bdaf26ccd041fcf8c30ff496383 100644 --- a/crpptbx/AUG/geteqdskAUG.m +++ b/crpptbx/AUG/geteqdskAUG.m @@ -91,7 +91,11 @@ nrho = size(equil.pressure,1); eqdsk.p = interpos(equil.rhopolnorm(:,it),equil.pressure(:,it),eqdsk.rhopsi,-0.03,[1 2],[0 equil.pressure(end,it)]); eqdsk.pprime = interpos(equil.rhopolnorm(:,it),equil.dpressuredpsi(:,it),eqdsk.rhopsi,-0.03,[1 2],[0 equil.dpressuredpsi(end,it)]); eqdsk.FFprime = interpos(equil.rhopolnorm(:,it),equil.ffprime(:,it),eqdsk.rhopsi,-0.03,[1 2],[0 equil.ffprime(end,it)]); -eqdsk.q = interpos(equil.rhopolnorm(:,it),equil.qvalue(:,it),eqdsk.rhopsi,-0.03,[1 2],[0 equil.qvalue(end,it)]); +if abs(equil.qvalue(end,it)) > 25 + eqdsk.q = interpos(21,equil.rhopolnorm(:,it),equil.qvalue(:,it),eqdsk.rhopsi); +else + eqdsk.q = interpos(equil.rhopolnorm(:,it),equil.qvalue(:,it),eqdsk.rhopsi,-0.03,[1 2],[0 equil.qvalue(end,it)]); +end eqdsk.ip = equil.Ip(it); eqdsk.stitle=['#' num2str(shot) ' t=' num2str(time_eff) ' from ' equil.gdat_params.exp_name '/' equil.gdat_params.equil];