Skip to content
Snippets Groups Projects
Commit 0c887baf authored by Olivier Sauter's avatar Olivier Sauter
Browse files

further tests from epfl to ipp, use startmds server on sxaug31, see help gdat_aug

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11635 d63d8f72-b253-0410-a779-e742ad2e26cf
parent 15a16877
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,11 @@ function [gdat_data,gdat_params,error_status,varargout] = gdat_aug(shot,data_req
% >> mdsconnect('localhost:8001')
% >> mdsvalue('1+2') % should return 3 if correctly connected
%
% [Problems with mds server for integers, temporary fix, start an mds server on sxaug31 (or 32++?) thus need 2 other sessions:
% 1) in one unix session do: ssh osauter@gate1.aug.ipp.mpg.de ; then connect to sxaug31: ssh -X sxaug31; then execute startmds and leave window
% 2) in another unix session connect to mds server through gate1: ssh -losauter -L 8002:sxaug31.aug.ipp.mpg.de:8001 gate1.aug.ipp.mpg.de
% 3) in your local session in matlab do: >> mdsconnect('localhost:8002') (and verify with >> mdsvalue('1+2')
%
% Comments for local developer:
% This gdat is just a "header routine" calling the gdat for the specific machine gdat_`machine`.m which can be called
......
......@@ -16,12 +16,12 @@ function [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time,zshift,var
%
if ~exist('shot') || isempty(shot);
if ~exist('shot') || isempty(shot);
disp('requires a shot or equil structure from gdat(shot,''equil'',...) in geteqdskAUG')
return
end
if ~exist('time');
if ~exist('time');
time_eff = 2.0;
else
time_eff = time;
......@@ -58,7 +58,7 @@ else
end
if isnumeric(shot)
equil=gdat(shot,'equil','equil',equil_source,'extra_arg_sf2sig',extra_arg_sf2sig);
equil=gdat_aug(shot,'equil','equil',equil_source,'extra_arg_sf2sig',extra_arg_sf2sig);
else
equil = shot;
shot = equil.shot;
......@@ -108,7 +108,7 @@ eqdsk.ind1=1;
psisign = sign(eqdsk.psimesh(end)-eqdsk.psimesh(1));
[dum1,dum2,dum3,F2_05]=interpos(psisign.*eqdsk.psimesh,eqdsk.FFprime,-0.01);
b0=gdat(shot,'b0');
b0=gdat_aug(shot,'b0');
[zz itb0]=min(abs(b0.t-time_eff));
eqdsk.b0 = b0.data(itb0);
eqdsk.r0 = 1.65;
......@@ -116,10 +116,10 @@ fedge=eqdsk.r0.*eqdsk.b0;
F2 = psisign.*2.*F2_05 + fedge.^2;
eqdsk.F = sqrt(F2)*sign(eqdsk.b0);
rmag=gdat(shot,'rmag','source',equilpar_source,'extra_arg_sf2sig',extra_arg_sf2sig);
rmag=gdat_aug(shot,'rmag','source',equilpar_source,'extra_arg_sf2sig',extra_arg_sf2sig);
[zz itrmag]=min(abs(rmag.t-time_eff));
eqdsk.raxis = rmag.data(itrmag);
zmag=gdat(shot,'zmag','source',equilpar_source,'extra_arg_sf2sig',extra_arg_sf2sig);
zmag=gdat_aug(shot,'zmag','source',equilpar_source,'extra_arg_sf2sig',extra_arg_sf2sig);
eqdsk.zaxis = zmag.data(itrmag) - eqdsk.zshift;
% get plasma boundary
......
......@@ -125,22 +125,30 @@ if usemdsplus
% $$$ mdsconnect('localhost');
% $$$ end
% extract if need raw
ij=strfind(extra_arg_sf2sig,'raw');
ask_raw = '';
if ~isempty(ij)
ask_raw = '"raw"';
end
% extract edition number if provided as '-ed',value in extra_arg_sf2sig
ij=strfind(extra_arg_sf2sig,'-ed');
ed_number = '';
if ~isempty(ij)
ed_number = num2str(sscanf(extra_arg_sf2sig(ij+5:end),'%d'));
end
if isempty(time_int)
tstart = '';
tend = '';
else
tstart = num2str(time_int(1));
tend = num2str(time_int(2));
end
user=getenv('USER');
if isempty(param_name) && isempty(param_set_name) && ~area_base && ~time_base
% use augdiag
if nargin>=5 & ~isempty(varargin{1})
eval(['[data,error]=mdsvalue(''_rdaeff' user diagname '=augdiag(' num2str(shot) ',"' diagname '","' sigtype '","' shotfile_exp ...
'",' ed_number ',' num2str(varargin{1}(1),'%.14f') ',' num2str(varargin{1}(end),'%.14f') ')'');']);
else
eval(['[data,error]=mdsvalue(''_rdaeff' user diagname '=augdiag(' num2str(shot) ',"' diagname '","' sigtype '","' shotfile_exp ...
'",' ed_number ',,,_oshot' user diagname ',_oed' user diagname ')'');']);
end
% use augsignal to get effective layout as in ISIS and sf2sig, for example for EQI/PFM
eval(['[data,error]=mdsvalue(''_rdaeff' user diagname '=augsignal(' num2str(shot) ',"' diagname '","' sigtype '","' shotfile_exp ...
'",' ed_number ',' tstart ',' tend ',_oshot' user diagname ',_oed' user diagname ',' ask_raw ')'');']);
elseif isempty(param_set_name) && ~area_base && ~time_base
% use augparam
eval(['[data,error]=mdsvalue(''_rdaeff' user diagname '=augparam(' num2str(shot) ',"' diagname '","' sigtype '","' param_name '"' ...
......@@ -154,7 +162,7 @@ if usemdsplus
% area-base or time-base, can only get dim_of at this stage
area_time_base_name = area_base_name;
area_time_base_dimof = area_base_dimof;
if ~isempty(time_base_name);
if ~isempty(time_base_name);
area_time_base_name = time_base_name;
area_time_base_dimof = time_base_dimof;
end
......@@ -197,13 +205,20 @@ if usemdsplus
switch nbofdim
case 1
adata.data=reshape(adata.data,1,length(adata.data));
eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',0)'');']);
idim0 = 0;
eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']);
if numel(time) ~= numel(adata.data)
idim0 = 1;
eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']);
if numel(time) ~= numel(adata.data)
warning(['problem with dim for: ' diagname ', ' sigtype])
end
end
time = reshape(time,1,length(time));
x=[];
adata.dim = {time};
eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',0))'');']);
eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(idim0) '))'');']);
adata.dimunits = {tunits};
case 2
adata.data = adata.data';
did_transpose = 1;
......@@ -217,33 +232,33 @@ if usemdsplus
eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',0))'');']);
adata.dimunits = {xunits, tunits};
case 3
eval(['x=mdsvalue(''dim_of(_rdaeff' user diagname ',0)'');']);
if prod(size(x))==length(x); x = reshape(x,1,length(x)); end
eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',1)'');']);
time = reshape(time,1,length(time));
disp('3rd dimension in hsig!!!!!!!!!!!!!!!!!!!!!!!!!')
eval(['hsig=mdsvalue(''dim_of(_rdaeff' user diagname ',2)'');']);
if prod(size(hsig))==length(hsig); hsig = reshape(hsig,1,length(hsig)); end
adata.dim = {x, time, hsig};
eval(['xunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',0))'');']);
eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',1))'');']);
eval(['hsigunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',2))'');']);
adata.dimunits = {xunits, tunits, hsigunits};
[zz,itime] = max(size(adata.data));
for i=1:nbofdim
if strcmp(adata.dimunits{i},'s'); itime = i; end
end
ix = min(setdiff([1:2],itime));
ihsig = setdiff([1:nbofdim],[ix itime])
x = adata.dim{ix};
time = adata.dim{itime};
hsig = adata.dim{ihsig};
adata.dim = {x, time, hsig};
xunits = adata.dimunits{ix};
tunits = adata.dimunits{itime};
hsigunits = adata.dimunits{ihsig};
adata.dimunits = {xunits, tunits, hsigunits};
% $$$ case 3
% $$$ eval(['x=mdsvalue(''dim_of(_rdaeff' user diagname ',0)'');']);
% $$$ if prod(size(x))==length(x); x = reshape(x,1,length(x)); end
% $$$ eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',1)'');']);
% $$$ time = reshape(time,1,length(time));
% $$$ disp('3rd dimension in hsig!!!!!!!!!!!!!!!!!!!!!!!!!')
% $$$ eval(['hsig=mdsvalue(''dim_of(_rdaeff' user diagname ',2)'');']);
% $$$ if prod(size(hsig))==length(hsig); hsig = reshape(hsig,1,length(hsig)); end
% $$$ adata.dim = {x, time, hsig};
% $$$ eval(['xunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',0))'');']);
% $$$ eval(['tunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',1))'');']);
% $$$ eval(['hsigunits=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',2))'');']);
% $$$ adata.dimunits = {xunits, tunits, hsigunits};
% $$$ [zz,itime] = max(size(adata.data));
% $$$ for i=1:nbofdim
% $$$ if strcmp(adata.dimunits{i},'s'); itime = i; end
% $$$ end
% $$$ ix = min(setdiff([1:2],itime));
% $$$ ihsig = setdiff([1:nbofdim],[ix itime])
% $$$ x = adata.dim{ix};
% $$$ time = adata.dim{itime};
% $$$ hsig = adata.dim{ihsig};
% $$$ adata.dim = {x, time, hsig};
% $$$ xunits = adata.dimunits{ix};
% $$$ tunits = adata.dimunits{itime};
% $$$ hsigunits = adata.dimunits{ihsig};
% $$$ adata.dimunits = {xunits, tunits, hsigunits};
otherwise
itime = 1; % default
......@@ -251,8 +266,10 @@ if usemdsplus
eval(['dimarray=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(i-1) ')'');']);
if prod(size(dimarray)) == length(dimarray)
eval(['adata.dim{' num2str(i) '}=reshape(dimarray,1,length(dimarray));']);
else
eval(['adata.dim{' num2str(i) '} = dimarray;']);
end
eval(['adata.dimunits{' num2str(i) '}=mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(i-1) '))'');']);
eval(['adata.dimunits{' num2str(i) '}=deblank(mdsvalue(''units_of(dim_of(_rdaeff' user diagname ',' num2str(i-1) '))''));']);
if strcmp(adata.dimunits{i},'s'); itime = i; end
end
x = adata.dim{min(setdiff([1:2],itime))};
......@@ -263,8 +280,7 @@ if usemdsplus
adata.t=time;
adata.x=x;
adata.hsig=hsig;
eval(['adata.units=mdsvalue(''units_of(_rdaeff' user diagname ')'');']);
adata.units=deblank(adata.units);
eval(['adata.units=deblank(mdsvalue(''units_of(_rdaeff' user diagname ')''));']);
%mdsdisconnect;
% $$$ if ~unix('test -d /home/duval/mdsplus')
% $$$ rmpath('/home/duval/mdsplus')
......@@ -289,8 +305,13 @@ else
end
else
try
[adata,adata_time, adata_area]=sf2sig(diagname,shot,sigtype,[time_int(1);time_int(end)],'-exp',shotfile_exp);
adata.data = adata.value; % at this stage keep both but try to work only on .data (for adata which can be from sf2.. or mds)
if ~isempty(extra_arg_sf2sig) && ~strcmp(extra_arg_sf2sig,'[]')
eval(['[adata,adata_time, adata_area]=sf2sig(diagname,shot,sigtype,[' num2str(time_int(1)) ';' num2str(time_int(2)) ...
'] ,''-exp'',shotfile_exp,' extra_arg_sf2sig ');']);
else
[adata,adata_time, adata_area]=sf2sig(diagname,shot,sigtype,[time_int(1);time_int(end)],'-exp',shotfile_exp);
end
adata.data = adata.value; % at this stage keep both but try to work only on .data (for adata which can be from sf2.. or mds)
catch ME
throw(ME)
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment