diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m index 7aa23ce63764640242aec7e436484d084acf158c..84c95934de357e1581152fcf0e028391b51b94a8 100644 --- a/crpptbx/AUG/gdat_aug.m +++ b/crpptbx/AUG/gdat_aug.m @@ -1185,9 +1185,10 @@ elseif strcmp(mapping_for_aug.method,'switchcase') gdat_data.fit.te.drhotornorm = []; gdat_data.fit.ne.data = []; gdat_data.fit.ne.drhotornorm = []; - gdat_data.fit.raw.rhotornorm = []; gdat_data.fit.raw.te.data = []; + gdat_data.fit.raw.te.rhotornorm = []; gdat_data.fit.raw.ne.data = []; + gdat_data.fit.raw.ne.rhotornorm = []; fit_tension_default = -0.1; if isfield(gdat_data.gdat_params,'fit_tension') fit_tension = gdat_data.gdat_params.fit_tension; @@ -1213,48 +1214,65 @@ elseif strcmp(mapping_for_aug.method,'switchcase') if gdat_data.gdat_params.fit==1 % add fits gdat_data.fit.t = gdat_data.t; - gdat_data.fit.raw.rhotornorm = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); - gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); - gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.te.data)); rhotornormfit = linspace(0,1,fit_nb_rho_points)'; gdat_data.fit.rhotornorm = rhotornormfit; gdat_data.fit.rhopolnorm = NaN*ones(length(rhotornormfit),length(gdat_data.fit.t)); - gdat_data.fit.te.data = gdat_data.fit.rhopolnorm; - gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm; - gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm; - gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm; + if any(strfind(data_request_eff,'te')) + gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.raw.te.rhotornorm = NaN*ones(size(gdat_data.te.data)); + gdat_data.fit.te.data = gdat_data.fit.rhopolnorm; + gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm; + end + if any(strfind(data_request_eff,'ne')) + gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.raw.ne.rhotornorm = NaN*ones(size(gdat_data.ne.data)); + gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm; + gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm; + end for it=1:length(gdat_data.t) % make rhotor->rhopol transformation for each time since equilibrium might have changed irhook=find(gdat_data.grids_1d.rhotornorm(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<1); % no need for ~isnan [rhoeff isort]=sort(gdat_data.grids_1d.rhotornorm(irhook,it)); gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.grids_1d.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]); - idata = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); - if length(idata)>0 - gdat_data.fit.raw.rhotornorm(idata,it) = gdat_data.grids_1d.rhotornorm(idata,it); - gdat_data.fit.raw.te.data(idata,it) = gdat_data.te.data(idata,it); - gdat_data.fit.raw.te.error_bar(idata,it) = gdat_data.te.error_bar(idata,it); - gdat_data.fit.raw.ne.data(idata,it) = gdat_data.ne.data(idata,it); - gdat_data.fit.raw.ne.error_bar(idata,it) = gdat_data.ne.error_bar(idata,it); - [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idata,it)); - rhoeff = [0; rhoeff]; - teeff = gdat_data.te.data(idata(irhoeff),it); - te_err_eff = gdat_data.te.error_bar(idata(irhoeff),it); - % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar - ij=find(teeff./te_err_eff>10.); - if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end - neeff = gdat_data.ne.data(idata(irhoeff),it); - ne_err_eff = gdat_data.ne.error_bar(idata(irhoeff),it); - ij=find(neeff./ne_err_eff>10.); - if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end - % - teeff = [teeff(1); teeff]; - te_err_eff = [1e4; te_err_eff]; - neeff = [neeff(1); neeff]; - ne_err_eff = [1e21; ne_err_eff]; - [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff); - [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff); + if any(strfind(data_request_eff,'te')) + idatate = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); + if length(idatate)>0 + gdat_data.fit.raw.te.rhotornorm(idatate,it) = gdat_data.grids_1d.rhotornorm(idatate,it); + gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it); + gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatate,it)); + rhoeff = [0; rhoeff]; + teeff = gdat_data.te.data(idatate(irhoeff),it); + te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it); + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + ij=find(teeff./te_err_eff>10.); + if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end + % + teeff = [teeff(1); teeff]; + te_err_eff = [1e4; te_err_eff]; + [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff); + end + end + if any(strfind(data_request_eff,'ne')) + idatane = find(gdat_data.ne.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05); + if length(idatane)>0 + gdat_data.fit.raw.ne.rhotornorm(idatane,it) = gdat_data.grids_1d.rhotornorm(idatane,it); + gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it); + gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it); + [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatane,it)); + rhoeff = [0; rhoeff]; + % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar + neeff = gdat_data.ne.data(idatane(irhoeff),it); + ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it); + ij=find(neeff./ne_err_eff>10.); + if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end + % + neeff = [neeff(1); neeff]; + ne_err_eff = [1e21; ne_err_eff]; + [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff); + end end end end