From 18a50a0e4d74be0e2da1490b90430269c9566ca5 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Thu, 8 Oct 2015 11:37:46 +0000 Subject: [PATCH] add to have ohm even if no ec and same struct empty for powers ne and te if no data git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@5136 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/TCV/gdat_tcv.m | 96 ++++++++++++++++++++++++++++++------------ 1 file changed, 69 insertions(+), 27 deletions(-) diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index 15383de0..62e6fc66 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -279,7 +279,7 @@ if do_mdsopen_mdsclose else ishot = mdsopen(shot); % if ishot equal to shot, then mdsclose at the end end - if ishot~=shot + if isempty(ishot) || ishot~=shot if gdat_params.nverbose>=1; warning(['cannot open shot= ' num2str(shot)]); end return end @@ -1049,34 +1049,61 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') case {'powers'} % note: same time array for all main, ec, ohm, nbi, ... % At this stage fill just ech, later add nbi + + % EC nodenameeff='\results::toray.input:p_gyro'; tracetdi=tdi(nodenameeff); if isempty(tracetdi.data) || isempty(tracetdi.dim) % || ischar(tracetdi.data) (to add?) if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end - return - end - gdat_data.ec.data = tracetdi.data*1e3; % at this stage p_gyro is in kW' - gdat_data.ec.units = 'W'; - gdat_data.ec.dim=tracetdi.dim; - gdat_data.ec.dimunits=tracetdi.dimunits; - gdat_data.ec.t=tracetdi.dim{1}; - gdat_data.ec.x=tracetdi.dim{2}; - gdat_data.ec.data_fullpath=[nodenameeff]; - gdat_data.ec.label='P_{EC}'; - % set ec time as reference - gdat_data.t = gdat_data.ec.t; - gdat_data.dim{1} = gdat_data.t; - gdat_data.dimunits{1} = 's'; - gdat_data.units = 'W'; - + gdat_data.ec.data = []; + gdat_data.ec.units = []; + gdat_data.ec.dim=[]; + gdat_data.ec.dimunits=[]; + gdat_data.ec.t=[]; + gdat_data.ec.x=[]; + gdat_data.ec.data_fullpath=[]; + gdat_data.ec.label=''; + else + gdat_data.ec.data = tracetdi.data*1e3; % at this stage p_gyro is in kW' + gdat_data.ec.units = 'W'; + gdat_data.ec.dim=tracetdi.dim; + gdat_data.ec.dimunits=tracetdi.dimunits; + gdat_data.ec.t=tracetdi.dim{1}; + gdat_data.ec.x=tracetdi.dim{2}; + gdat_data.ec.data_fullpath=[nodenameeff]; + gdat_data.ec.label='P_{EC}'; + % set ec time as reference + gdat_data.t = gdat_data.ec.t; + gdat_data.dim{1} = gdat_data.t; + gdat_data.dimunits{1} = 's'; + gdat_data.units = 'W'; + end + + % Ohmic + gdat_data.ohm.data = []; + gdat_data.ohm.units = ''; + gdat_data.ohm.dim=gdat_data.dim; + gdat_data.ohm.dimunits=gdat_data.dimunits; + gdat_data.ohm.t=[]; + gdat_data.ohm.x=[]; + gdat_data.ohm.data_fullpath=[]; + gdat_data.ohm.label=''; % get ohmic power simply from vloop*Ip (minus sign for TCV) ip=gdat([],'ip'); vloop=gdat([],'vloop'); tension = -1e5; - vloop_smooth=interpos(vloop.t,vloop.data,gdat_data.t,tension); - ip_t = interp1(ip.t,ip.data,gdat_data.t); - gdat_data.ohm.data = -vloop_smooth.*ip_t; - gdat_data.ohm.units = 'W'; + if isempty(gdat_data.t) + gdat_data.t = vloop.t; + gdat_data.dim{1} = gdat_data.t; + gdat_data.ohm.data = vloop.data; + gdat_data.dimunits{1} = 's'; + gdat_data.units = 'W'; + else + vloop_smooth=interpos(vloop.t,vloop.data,gdat_data.t,tension); + ip_t = interp1(ip.t,ip.data,gdat_data.t); + gdat_data.ohm.data = -vloop_smooth.*ip_t; + end + gdat_data.ohm.units = gdat_data.units; gdat_data.ohm.dim=gdat_data.dim; gdat_data.ohm.dimunits=gdat_data.dimunits; gdat_data.ohm.t=gdat_data.t; @@ -1086,12 +1113,19 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % total power from each and total gdat_data.data(:,1) = gdat_data.ohm.data; - gdat_data.data(:,2) = gdat_data.ec.data(:,10); - gdat_data.data(:,3) = gdat_data.ec.data(:,10) + gdat_data.ohm.data; - gdat_data.dim{2} = [1:3]; - gdat_data.dimunits{2} = 'Pohm;Pec;Ptot'; - gdat_data.data_fullpath=['tot power from EC and ohm']; - gdat_data.label = 'P_{ohm};P_{EC};P_{tot}'; + if ~isempty(gdat_data.ec.data) + gdat_data.data(:,2) = gdat_data.ec.data(:,10); + gdat_data.data(:,3) = gdat_data.ec.data(:,10) + gdat_data.ohm.data; + gdat_data.dim{2} = [1:3]; + gdat_data.dimunits{2} = 'Pohm;Pec;Ptot'; + gdat_data.data_fullpath=['tot power from EC and ohm']; + gdat_data.label = 'P_{ohm};P_{EC};P_{tot}'; + else + gdat_data.dim{2} = [1]; + gdat_data.dimunits{2} = 'Pohm=Ptot'; + gdat_data.data_fullpath=['tot power from ohm']; + gdat_data.label = 'P_{tot}=P_{ohm}'; + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'q_rho'} @@ -1539,6 +1573,14 @@ function [gdat_data] = get_thomson_raw_data(shot,data_request_eff,gdat_data,doed try time=mdsdata('\results::thomson:times'); catch + gdat_data.error_bar = []; + if strcmp(data_request_eff(1:2),'ne') + tracefirrat_data = []; + gdat_data.firrat=tracefirrat_data; + gdat_data.data_raw = gdat_data.data; + gdat_data.error_bar_raw = gdat_data.error_bar; + end + if (nverbose>=1) && shot<100000 warning('Problems with \results::thomson:times') warning(['!!!!!!!!!!!!!!!!!!!!!!!!! cannot continue with ' data_request_eff]) -- GitLab