diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index 564eebba09b91327ede9d50930b34cf729cf8ae8..340777ac013df0f20eacee3769fda4510a5a13e5 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -355,7 +355,7 @@ end % should replace all above by just psitbx_str... liuqe_matlab = 1; switch liuqe_version - case {-1}, liuqe_ext=''; psitbx_str='FBTE'; + case {-1}, liuqe_ext=''; psitbx_str='FBTE'; case {1,21}, liuqe_ext=''; psitbx_str='LIUQE.M'; case {11}, liuqe_ext=''; psitbx_str='LIUQE';liuqe_matlab = 0; case {2, 3, 22, 23}, liuqe_ext=['_' num2str(mod(liuqe_version,10))]; psitbx_str=['LIUQE.M' num2str(mod(liuqe_version,10))]; @@ -869,66 +869,84 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'bfields'} params_eff = gdat_data.gdat_params; - - if params_eff.liuqe == 1 - % load LIUQE data - [L,LY] = mds2meq(gdat_data.shot,'LIUQE.M',[],'ifield',true); % flag to allow field computation - LY = meqreprocess(L,LY); % compute fields etc, since not directly loaded from mds2meq - - datapath = 'Outputs from [L,LY]=mds2meq(gdat_data.shot,''LIUQE.M'',[],''ifield'',true); LY = meqreprocess(L,LY);'; + + try + if params_eff.liuqe == 1 + % load LIUQE data + [L,LY] = mds2meq(gdat_data.shot,'LIUQE.M',[],'ifield',true); % flag to allow field computation + LY = meqreprocess(L,LY); % compute fields etc, since not directly loaded from mds2meq + datapath = 'Outputs from [L,LY]=mds2meq(gdat_data.shot,''LIUQE.M'',[],''ifield'',true); LY = meqreprocess(L,LY);'; + Br = permute(LY.Brx,[2,1,3]); % permute for (Z,R)->(R,Z) + Bz = permute(LY.Bzx,[2,1,3]); + Btor = permute(LY.Btx,[2,1,3]); + dim_in = {L.rx,L.zx,LY.t}; + time_in = LY.t; + x_in = {L.rx,L.zx}; + else % compute B-fields from psi + ip_gdat = gdat(gdat_data.shot,'ip'); + [B,coord,time,psi,fsd] = tcv_mag_field (gdat_data.shot,ip_gdat.t,[],[],[],psitbx_str); + datapath ='Outputs from [B,coord,time,psi,fsd] = tcv_mag_field(shot,time,[],[],[],psitbx_str);'; + Br = B.R; + Bz = B.z; + Btor = B.phi; + dim_in = {coord.R,coord.z,time}; + time_in = time; + x_in = {coord.R,coord.z}; + end + gdat_data.data_fullpath = datapath; % radial magnetic field - gdat_data.Br.data = permute(LY.Brx,[2,1,3]); % permute for (Z,R)->(R,Z) + gdat_data.Br.data = Br; gdat_data.Br.units = 'T'; - gdat_data.Br.dim = {L.rx,L.zx,LY.t}; + gdat_data.Br.dim = dim_in; gdat_data.Br.dimunits = {'m','m','s'}; - gdat_data.Br.t = LY.t; - gdat_data.Br.x = {L.rx,L.zx}; + gdat_data.Br.t = time_in; + gdat_data.Br.x = x_in; gdat_data.Br.data_fullpath = datapath; gdat_data.Br.label = 'Radial magnetic field map in (R,Z)'; % vertical magnetic field - gdat_data.Bz.data = permute(LY.Bzx,[2,1,3]); + gdat_data.Bz.data = Bz; gdat_data.Bz.units = 'T'; - gdat_data.Bz.dim = {L.rx,L.zx,LY.t}; + gdat_data.Bz.dim = dim_in; gdat_data.Bz.dimunits = {'m','m','s'}; - gdat_data.Bz.t = LY.t; - gdat_data.Bz.x = {L.rx,L.zx}; + gdat_data.Bz.t = time_in; + gdat_data.Bz.x = x_in; gdat_data.Bz.data_fullpath = datapath; gdat_data.Bz.label = 'Vertical magnetic field map in (R,Z)'; % toroidal magnetic field - gdat_data.Btor.data = permute(LY.Btx,[2,1,3]); + gdat_data.Btor.data = Btor; gdat_data.Btor.units = 'T'; - gdat_data.Btor.dim = {L.rx,L.zx,LY.t}; + gdat_data.Btor.dim = dim_in; gdat_data.Btor.dimunits = {'m','m','s'}; - gdat_data.Btor.t = LY.t; - gdat_data.Btor.x = {L.rx,L.zx}; + gdat_data.Btor.t = time_in; + gdat_data.Btor.x = x_in; gdat_data.Btor.data_fullpath = datapath; gdat_data.Btor.label = 'Toroidal magnetic field map in (R,Z)'; % total magnetic field gdat_data.Btot.data = sqrt(gdat_data.Btor.data.^2 + gdat_data.Bz.data.^2 + gdat_data.Br.data.^2); gdat_data.Btot.units = 'T'; - gdat_data.Btot.dim = {L.rx,L.zx,LY.t}; + gdat_data.Btot.dim = dim_in; gdat_data.Btot.dimunits = {'m','m','s'}; - gdat_data.Btot.t = LY.t; - gdat_data.Btot.x = {L.rx,L.zx}; + gdat_data.Btot.t = time_in; + gdat_data.Btot.x = x_in; gdat_data.Btot.data_fullpath = datapath; gdat_data.Btot.label = 'Total magnetic field map in (R,Z)'; gdat_data.data = gdat_data.Btot.data; gdat_data.units = 'T'; - gdat_data.dim = {L.rx,L.zx,LY.t}; + gdat_data.dim = dim_in; gdat_data.dimunits = {'m','m','s'}; - gdat_data.t = gdat_data.Btot.t; - gdat_data.x = {L.rx,L.zx}; + gdat_data.t = time_in; + gdat_data.x = x_in; gdat_data.label = 'Total magnetic field map in (R,Z)'; - else + catch - warning('Can only load 2d B-field maps from LIUQE.M so far') + warning('Problem obtaining B-fields, check if requested nodes are filled.') gdat_data.Btor = []; gdat_data.Br = []; gdat_data.Bz = [];