diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m index e30bed0c79bee954974bb7a45df62a1f36c4eed8..c896058381afee702edc6c8d678cae0fdc399eea 100644 --- a/crpptbx/AUG/aug_requests_mapping.m +++ b/crpptbx/AUG/aug_requests_mapping.m @@ -391,7 +391,11 @@ switch lower(data_request) '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' % ZES obsolete, use cxrs + 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'; diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m index 130d11b5f5f4002529971851c51ad7a0d6dd19d7..32ca4c9557a5c94607118f297d69145c9543bf86 100644 --- a/crpptbx/AUG/gdat_aug.m +++ b/crpptbx/AUG/gdat_aug.m @@ -2587,6 +2587,125 @@ elseif strcmp(mapping_for_aug.method,'switchcase') params_eff.data_request = 'equil'; gdat_data.equil = gdat_aug(shot,params_eff); + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'zeff', 'z_eff'} + zeff_max_in_main = 10.; + zeff_min_in_main = 0.0; + sources_avail = {'ascii','idz'}; + fields_to_copy = {'data','units','dim','dimunits','t','x','data_fullpath','label','help'}; + for i=1:length(sources_avail) + for j=1:length(fields_to_copy) + gdat_data.(sources_avail{i}).(fields_to_copy{j}) = []; + end + 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,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 + 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]) + end + end + end + end + % + % start with ascii then IDZ, each time copy to main, so if IDZ is present it supersedes + % + if any(strmatch('ascii',gdat_data.gdat_params.source)) + % try ascii file from Rachael Mc Dermot in folder /afs/ipp-garching.mpg.de/home/r/rmcdermo/idl/Zeff/ascii + % if not present ask Rachael + dir_ascii = '/afs/ipp-garching.mpg.de/home/r/rmcdermo/idl/Zeff/ascii'; + [a,b] = unix(['ls ' dir_ascii '/*' num2str(gdat_data.shot) '*.txt']); + if a==0 + ij1=findstr(b,'/afs'); + ij2=findstr(b,'.txt'); + file_zeff = b(ij1:ij2+3); + aaa=textread(file_zeff,'%f'); + if mod(numel(aaa),2)~=0 + error(['problems with odd nb of points in file: ' file_zeff]); + else + nbpoints=length(aaa)/2; + end + zeff.t = aaa(1:nbpoints); + zeff.data = aaa(nbpoints+1:end); + gdat_data.ascii.data = min(max(zeff.data,zeff_min_in_main),zeff_max_in_main); + gdat_data.ascii.units = ''; + gdat_data.ascii.t = zeff.t; + gdat_data.ascii.dim{1} = gdat_data.ascii.t; + gdat_data.ascii.dimunits{1} = 'time [s]'; + gdat_data.ascii.data_fullpath = [' from file: ' file_zeff]; + [a1,a2,a3]=fileparts(file_zeff); + gdat_data.ascii.label = [a2 a3]; + for i=1:length(fields_to_copy) + if isfield(gdat_data.ascii,fields_to_copy{i}) + gdat_data.(fields_to_copy{i}) = gdat_data.ascii.(fields_to_copy{i}); + end + end + else + if gdat_data.gdat_params.nverbose >= 3 + disp(['No ascii file for zeff in folder: ' dir_ascii '; ask Rachael if need be']) + end + end + end + % + % IDZ + % + if any(strmatch('idz',gdat_data.gdat_params.source)) + gdat_data.fit.full_path = 'PROFILES from IDZ: Zeff, unc, lower, upper'; + params_eff = gdat_params; + params_eff.data_request={'IDZ','Zeff', params_eff.exp_name}; + try + [gdat_data_idz_zeff,params_kin,error_status]=gdat_aug(shot,params_eff); + if ~isempty(gdat_data_idz_zeff.data) + gdat_data.idz.data = gdat_data_idz_zeff.data; + gdat_data.idz.units = ''; + gdat_data.idz.t = gdat_data_idz_zeff.t; + gdat_data.idz.x = gdat_data_idz_zeff.x; + gdat_data.idz.dim = gdat_data_idz_zeff.dim; + gdat_data.idz.dimunits = gdat_data_idz_zeff.dimunits; + gdat_data.idz.dimunits{1} = 'rhopol'; + gdat_data.idz.data_fullpath = gdat_data_idz_zeff.data_fullpath; + gdat_data.idz.label = sprintf('%s/',gdat_data_idz_zeff.data_fullpath{:}); + gdat_data.idz.label = ['mean(' gdat_data.idz.label(1:end-1) ',1)']; + fields_to_not_copy = {'data','dim','x','dimunits'}; % only cst value at this stage to main data, should heva zeff_rho to have profile + for i=1:length(fields_to_copy) + if isfield(gdat_data.idz,fields_to_copy{i}) && ~any(strmatch(fields_to_copy{i},fields_to_not_copy)) + gdat_data.(fields_to_copy{i}) = gdat_data.idz.(fields_to_copy{i}); + end + end + gdat_data.data = min(max(mean(gdat_data_idz_zeff.data,1)',zeff_min_in_main),zeff_max_in_main); + gdat_data.t = gdat_data_idz_zeff.t'; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dimunits{1} = gdat_data_idz_zeff.dimunits{2}; + else + if gdat_data.gdat_params.nverbose >= 3 + disp(['No data in shotfile IDZ ; ask Rainer if need be']) + end + end + catch ME + if gdat_data.gdat_params.nverbose >= 3 + disp(['No shot file IDZ ; ask Rainer if need be']) + end + end + end + % otherwise if (gdat_params.nverbose>=1); warning(['switchcase= ' data_request_eff ' not known in gdat_aug']); end error_status=901;