From 4884521d973bb136b4dba4f1a7ed9859031ca2b8 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Wed, 26 Sep 2001 16:00:30 +0000 Subject: [PATCH] add Liuqe2 and 3 option and fix problems if data empty (for loadTCVdata onl;y) git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@1826 d63d8f72-b253-0410-a779-e742ad2e26cf --- TCV/loadTCVdata.m | 69 ++++++++++++++++++++++++++++++++++++++++++++--- gdat.m | 4 ++- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/TCV/loadTCVdata.m b/TCV/loadTCVdata.m index 5a1bb477..e087c941 100644 --- a/TCV/loadTCVdata.m +++ b/TCV/loadTCVdata.m @@ -9,6 +9,8 @@ % 'sxR' = soft x-ray emission with varargout{1} option (requires varargin{4}!) % 'MPX' = soft x-ray from wire chambers % +% 'xx_2 or xx_3' for Liuqe2 or 3: same as above for xx related to equilibrium +% % INPUT: % shot: shot number % data_type: type of the required data @@ -44,6 +46,15 @@ % varargout{1}=cell(1,1); +error=1; + +% some defaults + +% nodes which have _2 and _3 equivalence +liuqe23=[{'\results::i_p'} {'\results::z_axis'} {'\results::r_axis'} {'\results::q_psi'} ... + {'\results::beta_tor'} {'\results::q_95'} {'\results::l_i'} {'\results::delta_95'} ... + {'\results::kappa_95'} {'\results::r_contour'} {'\results::z_contour'} {'\results::psi_axis'} ... + {'\results::thomson:psiscatvol'} {'\results::thomson:psi_max'} {'\results::psitbx:vol'}]; % all keywords and corresponding case to run below TCVkeywrdall=[{'Ip'} {'zmag'} {'rmag'} {'sxr'} {'sxR'} {'ece'}]; @@ -74,9 +85,13 @@ TCVsiglocation(TCVsig.irmag)={'\results::r_axis'}; TCVsigtimeindx=ones(size(TCVkeywrdall)); % find index of signal called upon +i_23=0; +if strcmp(data_type(end-1:end),'_2') | strcmp(data_type(end-1:end),'_3') + i_23=2; +end if strcmp(data_type(1:1),'\') % in case full node name was given - index=strmatch(data_type,TCVsiglocation,'exact'); + index=strmatch(data_type(1:end-i_23),TCVsiglocation,'exact'); if isempty(index) disp('********************') disp('trace not yet registered.') @@ -87,7 +102,7 @@ if strcmp(data_type(1:1),'\') index=length(TCVkeywrdall)+1; TCVkeywrdall(end+1)={'new'}; TCVkeywrdcase(end+1)={'simpletdi'}; - TCVsiglocation(end+1)={data_type}; + TCVsiglocation(end+1)={data_type(1:end-i_23)}; TCVsigtimeindx(end+1)=0; elseif ~strcmp(TCVkeywrdcase{index},'simpletdi') msgbox(['Problem in loadTCVdata with data_type = ' data_type ... @@ -95,10 +110,30 @@ if strcmp(data_type(1:1),'\') error('in loadTCVdata') end else - index=strmatch(data_type,TCVkeywrdall,'exact'); + index=strmatch(data_type(1:end-i_23),TCVkeywrdall,'exact'); + if isempty(index) + disp(' ') + disp('********************') + disp(['no such keyword: ' data_type(1:end-i_23)]) + disp(' ') + disp('Available keywords:') + TCVkeywrdall(:) + disp('********************') + trace.data=[]; + trace.t=[]; + trace.x=[]; + return + end end disp(['loading' ' ' data_type ' from TCV shot #' num2str(shot)]); disp(['case ' TCVkeywrdcase{index}]) +if i_23==2 & isempty(strmatch(TCVsiglocation(index),liuqe23,'exact')) + disp('********') + disp('Warning asks for liuqe 2 or 3 of a signal, but not in liuqe23 list in loadTCVdata') + eval(['!mail -s ''' data_type ' ' num2str(shot) ' ' getenv('USER') ' TCV: not in liuqe23 list'' olivier.sauter@epfl.ch < /dev/null']) + disp('********') +end + status=ones(1,100); zmag=cell(0,0); nargineff=nargin; @@ -127,8 +162,34 @@ switch TCVkeywrdcase{index} % load TCV other data mdsopen(shot); - tracetdi=tdi(TCVsiglocation{index}); + nodenameeff=TCVsiglocation{index}; + if i_23==2 + nodenameeff=[nodenameeff data_type(end-1:end)] + end + % test if node exists + error=1; + if eval(['~mdsdata(''node_exists("\' nodenameeff '")'')']) + disp(['node ' nodenameeff ' does not exist for shot = ' num2str(shot)]) + trace.data=[]; + trace.t=[]; + trace.x=[]; + return + elseif eval(['mdsdata(''getnci("\' nodenameeff ':foo","length")'')==0']) + disp(['no data for node ' nodenameeff ' for shot = ' num2str(shot)]) + trace.data=[]; + trace.t=[]; + trace.x=[]; + return + end + tracetdi=tdi(nodenameeff); mdsclose(shot) + if isempty(tracetdi.data) | isnan(tracetdi.data) + disp(['node ' nodenameeff ' is empty for shot = ' num2str(shot)]) + trace.data=[]; + trace.t=[]; + trace.x=[]; + return + end trace.data=tracetdi.data; trace.t=tracetdi.dim{max(1,TCVsigtimeindx(index))}; if length(tracetdi.dim)==2 diff --git a/gdat.m b/gdat.m index bfa11200..cbb1d7b7 100644 --- a/gdat.m +++ b/gdat.m @@ -12,7 +12,9 @@ function [trace,error,varargout] = gdat(shot,data_type,varargin) % % specific to TCV (see help loadTCVdata for more information) % 'MPX' = wire chambers with varargout{1} option (requires varargin{5}!) +% 'xx_2 or xx_3' for Liuqe2 or 3: same as above for xx related to equilibrium % +% JET % Special case compatible with old gdat.m allows (JET related): gdat(51994,'ppf','efit/xip',1) % % INPUT: @@ -102,7 +104,7 @@ if doplot==1 elseif doplot==-1 hold on if length(size(trace.data))<=2 - plot(trace.t,trace.data); + plot(trace.t,trace.data,'r'); else plot(trace.t,trace.data(:,:,1),'--'); end -- GitLab