diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index 6bb4342df757500ab417cf177fd8ba15d7cde224..34c4b38e06ddb83ac6444a4f0f0a3a2cbdbd594f 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -854,11 +854,56 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.dim{1}=rho; gdat_data.dimunits=[{'sqrt(psi_norm)'} ; {'time [s]'}]; gdat_data.x=rho; + %%%%%%%%%%% + % if nete_rho, copy data as .ne, get .te and put pe=e ne Te in data: + if strcmp(data_request_eff(1:4),'nete') + % note, now has ne.data_raw for density without fir_to_thomson_ratio + gdat_data.ne.data = gdat_data.data; + gdat_data.ne.data_raw = gdat_data.data_raw; + gdat_data.ne.error_bar = gdat_data.error_bar; + gdat_data.ne.error_bar_raw = gdat_data.error_bar_raw; + gdat_data.ne.firrat=gdat_data.firrat; + gdat_data.ne.units = 'm^{-3}'; + gdat_data = rmfield(gdat_data,{'firrat','data_raw','error_bar_raw'}); + % + nodenameeff=['\results::thomson' edge_str_dot ':te']; + tracetdi=tdi(nodenameeff); + nodenameeff=['\results::thomson' edge_str_dot ':te; error_bar']; + tracestd=tdi(['\results::thomson' edge_str_dot ':te:error_bar']); + gdat_data.te.data=tracetdi.data'; + gdat_data.te.error_bar=tracestd.data'; + gdat_data.te.units = tracetdi.units; + gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te from \results::thomson' ... + edge_str_dot ':ne and te and projected on rhopol\_norm']; + gdat_data.units='N/m^2; 1.6022e-19 ne Te'; + gdat_data.data = 1.6022e-19 .* gdat_data.ne.data .* gdat_data.te.data; + gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ... + + gdat_data.te.data .* gdat_data.ne.error_bar); + end %%%%%%%%%%% add fitted profiles if 'fit'>=1 default_fit_type = 'conf'; - if ~isfield(gdat_data.gdat_params,'fit') || ~isempty(gdat_data.gdat_params.fit) + if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) gdat_data.gdat_params.fit = 1; end + % add empty structure for fit so results is always the same with or without call to fit=1 or 0 + gdat_data.fit.data = []; + gdat_data.fit.x = []; + gdat_data.fit.t = []; + gdat_data.fit.units = []; + gdat_data.fit.data_fullpath = []; + if strcmp(data_request_eff(1:4),'nete') + % note gdat_data.fit.data level is for pe + gdat_data.fit.ne.data = []; + gdat_data.fit.ne.x = []; + gdat_data.fit.ne.t = []; + gdat_data.fit.ne.units = []; + gdat_data.fit.ne.data_fullpath = []; + gdat_data.fit.te.data = []; + gdat_data.fit.te.x = []; + gdat_data.fit.te.t = []; + gdat_data.fit.te.units = []; + gdat_data.fit.te.data_fullpath = []; + end if gdat_data.gdat_params.fit>0 % default is from proffit:avg_time if ~(isfield(gdat_data.gdat_params,'fit_type') && ~isempty(gdat_data.gdat_params.fit_type)) || ~any(strcmp(gdat_data.gdat_params.fit_type,{'local', 'avg', 'conf'})) @@ -907,8 +952,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_params.nverbose>=1 disp([nodenameeff ' is empty, thus no fits, check hldsi(shot) and may need to run anaprofs?']) end - gdat_data.fit.data = []; - gdat_data.fit.data_fullpath = [nodenameeff ' is empty']; + if strcmp(data_request_eff(1:4),'nete') + gdat_data.fit.ne.data_fullpath = [nodenameeff ' is empty']; + gdat_data.fit.te.data_fullpath = [nodenameeff ' is empty']; + else + gdat_data.fit.data_fullpath = [nodenameeff ' is empty']; + end return end else @@ -918,7 +967,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') if gdat_params.nverbose>=1 disp([nodenameeff ' with trialindx=' num2str(trialindx) ' is empty, thus no fits, check hldsi(shot) and may need to run anaprofs?']) end - gdat_data.fit.data = []; gdat_data.fit.data_fullpath = [nodenameeff ' with trialindx=' num2str(trialindx) ' is empty']; return end @@ -939,7 +987,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') % do te as well if nete asked for if strcmp(data_request_eff(1:4),'nete') gdat_data.fit.ne.data = gdat_data.fit.data; + gdat_data.fit.ne.x = gdat_data.fit.x; + gdat_data.fit.ne.t = gdat_data.fit.t; gdat_data.fit.ne.units = gdat_data.fit.units; + gdat_data.fit.ne.data_fullpath = gdat_data.fit.data_fullpath; if strcmp(gdat_data.gdat_params.fit_type,'conf') nodenameeff = [def_proffit 'te']; else @@ -956,9 +1007,12 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') return end end + gdat_data.fit.te.x = gdat_data.fit.ne.x; + gdat_data.fit.te.t = gdat_data.fit.ne.t; if any(strcmp(fieldnames(tracetdi),'units')) gdat_data.fit.te.units=tracetdi.units; end + gdat_data.fit.te.data_fullpath = [nodenameeff]; % construct pe=1.6022e-19*ne*te gdat_data.fit.data = 1.6022e-19.*gdat_data.fit.ne.data .* gdat_data.fit.te.data; gdat_data.fit.units = 'N/m^2; 1.6022e-19 ne Te'; @@ -967,29 +1021,6 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') else gdat_data.gdat_params.fit_type = default_fit_type; end - %%%%%%%%%%% - % if nete_rho, copy data as .ne, get .te and put pe=e ne Te in data: - if strcmp(data_request_eff(1:4),'nete') - gdat_data.ne.data = gdat_data.data; - gdat_data.ne.error_bar = gdat_data.error_bar; - gdat_data.ne.firrat=gdat_data.firrat; - gdat_data.ne.units = 'm^{-3}'; - gdat_data = rmfield(gdat_data,{'firrat','data_raw','error_bar_raw'}); - % - nodenameeff=['\results::thomson' edge_str_dot ':te']; - tracetdi=tdi(nodenameeff); - nodenameeff=['\results::thomson' edge_str_dot ':te; error_bar']; - tracestd=tdi(['\results::thomson' edge_str_dot ':te:error_bar']); - gdat_data.te.data=tracetdi.data'; - gdat_data.te.error_bar=tracestd.data'; - gdat_data.te.units = tracetdi.units; - gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te from \results::thomson' ... - edge_str_dot ':ne and te and projected on rhopol\_norm']; - gdat_data.units='N/m^2; 1.6022e-19 ne Te'; - gdat_data.data = 1.6022e-19 .* gdat_data.ne.data .* gdat_data.te.data; - gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ... - + gdat_data.te.data .* gdat_data.ne.error_bar); - end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'powers'}