From 1ae34f77ce2a7fbb94313195286cac412be4836b Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Wed, 4 Jun 2014 07:26:35 +0000 Subject: [PATCH] add R to ece and eced keywords in gdat and used in sawteeth as well git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@4447 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/AUG/loadAUGdata.m | 105 +++++++++++++++++++++++++++-- crpptbx/AUG/plot_torbeam.m | 10 +-- crpptbx/AUG/run_torbeam_fullshot.m | 23 +++++-- 3 files changed, 120 insertions(+), 18 deletions(-) diff --git a/crpptbx/AUG/loadAUGdata.m b/crpptbx/AUG/loadAUGdata.m index 4c32dec1..4c7ccb2c 100644 --- a/crpptbx/AUG/loadAUGdata.m +++ b/crpptbx/AUG/loadAUGdata.m @@ -332,7 +332,8 @@ AUGkeywrdcase(AUGsig.issx_h)=AUGkeywrdall(AUGsig.issx_h); AUGkeywrdcase(AUGsig.issx_i)=AUGkeywrdall(AUGsig.issx_i); AUGkeywrdcase(AUGsig.issx_j)=AUGkeywrdall(AUGsig.issx_j); AUGkeywrdcase(AUGsig.issx)=AUGkeywrdall(AUGsig.issx); -%AUGkeywrdcase(AUGsig.iece)=AUGkeywrdall(AUGsig.iece); +AUGkeywrdcase(AUGsig.iece)=AUGkeywrdall(AUGsig.iece); +AUGkeywrdcase(AUGsig.ieced)=AUGkeywrdall(AUGsig.ieced); AUGkeywrdcase(AUGsig.icxrs)=AUGkeywrdall(AUGsig.icxrs); AUGkeywrdcase(AUGsig.icxrs_rho)=AUGkeywrdall(AUGsig.icxrs_rho); AUGkeywrdcase(AUGsig.ipgyro)=AUGkeywrdall(AUGsig.ipgyro); % idem @@ -656,6 +657,70 @@ switch AUGkeywrdcase{index} trace.name=[num2str(shot) '/' ppftype '/' tracename]; end + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + case {'ece','eced'} + % LOAD MULTI CHANNEL DATA + % load AUG ece data + + shotfile_exp_eff = AUGexplocation{index}; + + if nargin>=3 & ~isempty(varargin{1}) + starti=varargin{1}(1); + endi=varargin{1}(2); + else + starti=1; + endi=30; + end + if nargin>=4 & ~isempty(varargin{2}) + status=varargin{2}; + else + status=ones(endi-starti+1,1); + end + if nargin>=6 & ~isempty(varargin{4}) + timerange=varargin{4}; + else + timerange=[0 10]; + end + if nargin>=7 & ~isempty(varargin{5}) + nth=varargin{5}; + else + nth=1; + end + trace.t=[]; + trace.x=[]; + ppftype=AUGsiglocation{1,index}; + tracename=AUGsiglocation{2,index}; + [a,e]=rdaAUG_eff(shot,ppftype,tracename,shotfile_exp_eff,timerange); + starti=1; + endi=size(a.value,1); + trace=a; + trace.dim=[{[starti:endi]'} ; {trace.t}]; + trace.x=trace.dim{1}; + trace.dimunits=[{'channels'} ; {'time [s]'}]; + trace.units='W/m^2'; + trace.name=[num2str(shot) '/' ppftype '/' tracename]; + % keep only nth points + trace.t=trace.t(1:nth:end); + trace.data=trace.data(:,1:nth:end); + trace.dim{2}=trace.t; + % get R + [aR,e]=rdaAUG_eff(shot,ppftype,'R-A',shotfile_exp_eff,timerange); + domatchRtime=1; + 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); + end + radius.t=trace.t; + else + radius.data = aR.data; + radius.t=aR.t; + end + ij=find(trace.data==0); + trace.data(ij)=NaN; + varargout{1}={radius}; + trace.R=radius; + %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case {'cxrs', 'cxrs_rho'} % LOAD CEZ data @@ -1038,18 +1103,32 @@ switch AUGkeywrdcase{index} trace_all.ecrh1(i) = a; trace_all.pgyro(:,i) = reshape(a.data,nb_timepoints,1); end - a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]); + 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 trace_all.freq_ecrh1(i) = a; trace_all.freq_ech(i) = a.value; end - a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]); + try + a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]); + catch + % GPolPos not present + a=[]; + end if isempty(a) else trace_all.polpos_ecs(i) = a.value; end - a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]); + try + a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]); + catch + a=[]; + end if isempty(a) else trace_all.torpos_ecs(i) = a.value; @@ -1062,18 +1141,30 @@ switch AUGkeywrdcase{index} trace_all.ecrh2(i) = a; trace_all.pgyro(:,i+4) = reshape(a.data,nb_timepoints,1); end - a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]); + try + a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]); + catch + a=[]; + end if isempty(a) else trace_all.freq_ecrh2(i) = a; trace_all.freq_ech(i+4) = a.value; end - a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]); + try + a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]); + catch + a=[]; + end if isempty(a) else trace_all.polpos_ecs(i+4) = a.value; end - a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]); + try + a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]); + catch + a=[]; + end if isempty(a) else trace_all.torpos_ecs(i+4) = a.value; diff --git a/crpptbx/AUG/plot_torbeam.m b/crpptbx/AUG/plot_torbeam.m index 03b4a63b..b5a3d224 100644 --- a/crpptbx/AUG/plot_torbeam.m +++ b/crpptbx/AUG/plot_torbeam.m @@ -26,14 +26,14 @@ if nargin >= 2 % asks from list if ~isempty(tb_fields) h_for_waitfor=figure; - global field_chosen2 + global field_chosen h1=uicontrol('Style','listbox','string',tb_fields,'pos',[20 20 200 300],'Max',20, ... - 'callback', ['global field_chosen2;field_chosen2=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', ['field_chosen=get(' num2str(h1,'%.15e') ',''value''); close gcf;']); + h3=uicontrol('Style','pushbutton','string','quit','pos',[300 20 30 20],'callback', ['close gcf;']); waitfor(h_for_waitfor); - list_fields = tb_fields(field_chosen2); - clear global field_chosen2 + list_fields = tb_fields(field_chosen); + clear global field_chosen else disp('torbeam_out_struct empty'); return diff --git a/crpptbx/AUG/run_torbeam_fullshot.m b/crpptbx/AUG/run_torbeam_fullshot.m index f64c66b2..762bdc0a 100644 --- a/crpptbx/AUG/run_torbeam_fullshot.m +++ b/crpptbx/AUG/run_torbeam_fullshot.m @@ -28,7 +28,7 @@ end time_array=linspace(0,10,10/0.05); file_out_prefix = ['tbdemo_' num2str(abs(shot)) '_gyro']; -if nargin>=3 +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}) @@ -49,10 +49,21 @@ if shot>0 run_with_IDA = 0; % test if IDA present - hhh = sfread('IDA', shot); - if hhh.handle~=0; - run_with_IDA = 1; - disp('use IDA since shotfile exists') + hhIDA = sfread('IDA', shot); + if hhIDA.handle~=0; + netest=gdat(shot,'IDA/ne'); + tetest=gdat(shot,'IDA/te'); + if ~isempty(netest.data) && ~isempty(tetest.data) + run_with_IDA = 1; + disp('use IDA since shotfile exists') + end + end + + hhDLP = sfread('DLP', shot); + dousedcr = ''; + if hhDLP.handle~=0; + dousedcr = '-usedcr'; + disp('can usedcr since DLP shotfile exists'); end for igyro=1:8 @@ -72,7 +83,7 @@ if shot>0 % [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(['~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(['~rem/public/tbm_demo/tbmdemo -batch -silent -shot ' num2str(shot) ' -time ' num2str(time_array(itt_tok(j))) ' -system ' num2str(igyro) ' -ntm ' dousedcr ' -eqdiag EQI -betapol -usemirror -cdrive 1 >> ' ['.' filename]]); else % -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]]); -- GitLab