diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m index 393c495fddb1f35f2c667632f7109eafc353b233..b88aed29837c52f38afc1d4882873a1554b01eea 100644 --- a/crpptbx/AUG/aug_requests_mapping.m +++ b/crpptbx/AUG/aug_requests_mapping.m @@ -144,6 +144,12 @@ switch lower(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' @@ -174,6 +180,10 @@ switch lower(data_request) mapping.method = 'switchcase'; case 'ni' mapping.method = 'switchcase'; % especially since might have option fit, etc + case 'pgyro' + mapping.timedim = 1; + mapping.label = 'EC gyros'; + mapping.method = 'switchcase'; case 'powers' mapping.timedim = 1; mapping.label = 'various powers'; diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m index c382962a2211740cbad671b35acbf43907bab467..9eccee661f086ab68724e2115480ad9433ff5117 100644 --- a/crpptbx/AUG/gdat_aug.m +++ b/crpptbx/AUG/gdat_aug.m @@ -1066,6 +1066,159 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.label = 'pe'; end + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + case {'pgyro'} + % LOAD MULTI CHANNEL DATA ECS + % powers, frequencies, etc + params_eff = gdat_data.gdat_params; + params_eff.data_request={'ECS','PECRH'}; + % pgyro tot in index=9 + try + gdat_data=gdat_aug(shot,params_eff); + catch + if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end + return + end + nb_timepoints = length(gdat_data.t); + pgyro = NaN*ones(nb_timepoints,9); + pgyro(:,9) = reshape(gdat_data.data,nb_timepoints,1); + gdat_data.data = pgyro; + labels{9} = 'ECtot'; + for i=1:4 + % "old" ECRH1 gyrotrons: gyro 1 to 4 in pgyro + params_eff.data_request={'ECS',['PG' num2str(i)]}; + gdat_data_i=gdat_aug(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:9]}]; + if max(gdat_data_i.data) > 0. + labels{i} = ['EC_' num2str(i)]; + end + end + try + a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]); + catch + % gyr_freq not present (old shots for example) + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.freq = a; + gdat_data.freq_ec(i) = a.value; + end + try + a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]); + catch + % GPolPos not present + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.polpos = a.value; + gdat_data.polpos_ec(i) = a.value; + end + try + a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i}.torpos = a.value; + gdat_data.torpos_ec(i) = a.value; + end + % "new" ECRH2 gyrotrons: gyro 5 to 8 in pgyro + params_eff.data_request={'ECS',['PG' num2str(i) 'N']}; + gdat_data_i=gdat_aug(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i+4} = gdat_data_i; + gdat_data.data(:,i+4) = reshape(gdat_data_i.data,nb_timepoints,1); + gdat_data.dim = [{gdat_data_i.t} {[1:9]}]; + if max(gdat_data_i.data) > 0. + labels{i+4} = ['EC_' num2str(i+4)]; + end + end + try + a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i+4}.freq = a; + gdat_data.freq_ec(i+4) = a.value; + end + try + a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i+4}.polpos = a.value; + gdat_data.polpos_ec(i+4) = a.value; + end + try + a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]); + catch + a=[]; + end + if isempty(a) + else + gdat_data.ec{i+4}.torpos = a.value; + gdat_data.torpos_ec(i+4) = a.value; + end + params_eff.data_request={'ECN',['G' num2str(i) 'POL']}; + gdat_data_i=gdat_aug(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i+4}.gpol_ec = gdat_data_i; + end + params_eff.data_request={'ECN',['G' num2str(i) 'TOR']}; + gdat_data_i=gdat_aug(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i+4}.gtor_ec = gdat_data_i; + end + params_eff.data_request={'ECN',['G' num2str(i) 'PO4']}; + gdat_data_i=gdat_aug(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i+4}.gpo4_ec = gdat_data_i; + end + params_eff.data_request={'ECN',['G' num2str(i) 'PO8']}; + gdat_data_i=gdat_aug(shot,params_eff); + if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim) + else + gdat_data.ec{i+4}.gpo8_ec = gdat_data_i; + end + end + if ~isempty(gdat_data.dim) + gdat_data.t = gdat_data.dim{1}; + gdat_data.x = gdat_data.dim{2}; + gdat_data.dimunits=[{'time [s]'} {'ECRH1(1:4) ECRH2(1:4) ECtot'}]; + gdat_data.units='W'; + gdat_data.freq_ech_units = 'GHz'; + gdat_data.data_fullpath=['ECS/' 'PGi and PGiN, etc']; + icount=0; + for i=1:length(labels) + if ~isempty(labels{i}) + icount=icount+1; + gdat_data.label{icount} = labels{i}; + end + end + else + gdat_data.freq_ech_units =[]'; + gdat_data.ec = []; + gdat_data.freq_ec = []; + gdat_data.polpos_ec = []; + gdat_data.torpos_ec = []; + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'powers'} % case total only diff --git a/crpptbx/AUG/run_torbeam_fullshot.m b/crpptbx/AUG/run_torbeam_fullshot.m index 6bdaa684fbe5a8687339ec3ad7aba50e4d4a1def..eb206fb043ed56a96fdbc8d8c3020796547a9ff6 100644 --- a/crpptbx/AUG/run_torbeam_fullshot.m +++ b/crpptbx/AUG/run_torbeam_fullshot.m @@ -45,7 +45,7 @@ if nargin>=3 && mod(length(varargin),2)==0 end if shot>0 - pgyro=gdat(shot,'pgyro',1); + powers=gdat(shot,'powers'); hhDCR = sfread('DCR', shot); dousedcr = ''; diff --git a/crpptbx/gdat_plot.m b/crpptbx/gdat_plot.m index 147f1c46f4852e0c14bc41121c86336ca74b1c14..8282386d656dc89f63b979a101ea4fcf1f2eb2df 100644 --- a/crpptbx/gdat_plot.m +++ b/crpptbx/gdat_plot.m @@ -67,12 +67,15 @@ if prod(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty xlabel(['time']); end ylabel_eff = gdat_data.label; - if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{2}; end + 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 ']']); else hylabel=ylabel(ylabel_eff); end + if iscell(gdat_data.label) && length(gdat_data.label)>=2; + legend(gdat_data.label) + end zoom on; end if strcmp(gdat_data.gdat_request,'mhd')