From a7e4c96eb5ca3f64894cb580807721a99e5d4bfb Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Tue, 26 Mar 2019 11:00:34 +0000
Subject: [PATCH] start adding aug_get_ids... now with equilibrium

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11642 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/AUG/aug_requests_mapping.m         |  19 +-
 crpptbx/AUG/gdat_aug.m                     |  10 +
 crpptbx/AUG/geteqdskAUG.m                  |  25 ++-
 crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m | 208 +++++++++++----------
 crpptbx/gdatpaths.m                        |   2 +-
 5 files changed, 151 insertions(+), 113 deletions(-)

diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m
index 67089d2c..6aa9c7a3 100644
--- a/crpptbx/AUG/aug_requests_mapping.m
+++ b/crpptbx/AUG/aug_requests_mapping.m
@@ -51,8 +51,14 @@ switch lower(data_request)
  case 'b0'
   mapping.timedim = 1;
   mapping.label = 'B_0';
-  mapping.method = 'signal';
-  mapping.expression = [{'FPC'},{'BTF'}];
+  % mapping.method = 'signal';
+  % mapping.expression = [{'FPC'},{'BTF'}];
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=[{''FPC''},{''BTF''}];' ...
+		    'gdat_tmp=gdat_aug(shot,params_eff);r0exp=1.65;gdat_tmp.r0 = r0exp; gdat_tmp.request_description = ' ...
+		    '[''vacuum magnetic field at R0='' num2str(r0exp) ''m; COCOS=17''];' ...
+                    'gdat_tmp.label=''' mapping.label ''';' ...
+		    'gdat_tmp.gdat_request=''' data_request ''';'];
  case 'beta'
   mapping.timedim = 1;
   mapping.label = '\beta';
@@ -85,7 +91,7 @@ switch lower(data_request)
 % $$$ 		    'tmp_data_a=interp1(gdat_aminor.t,gdat_aminor.data,gdat_tmp.t,[],NaN);' ...
 % $$$ 		    'tmp_data_vol=interp1(gdat_vol.t,gdat_vol.data,gdat_tmp.t,[],NaN);' ...
 % $$$ 		    'gdat_tmp.data = 100.*abs(2./3.*gdat_tmp.data./tmp_data_vol.*8e-7.*pi./tmp_data_b0.^2./tmp_data_ip.*1e6.*tmp_data_a.*tmp_data_b0);end;'];
- case 'betap'
+ case {'betap', 'beta_p', 'beta_pol'}
   mapping.timedim = 1;
   mapping.label = '\beta_p';
   mapping.method = 'signal';
@@ -327,7 +333,7 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'rhovol\_norm';
   mapping.method = 'switchcase';
- case 'rmag'
+ case {'rmag', 'r_axis', 'r_mag'}
   mapping.label = 'R\_magaxis';
   mapping.timedim = 1;
   mapping.method = 'signal';
@@ -371,7 +377,7 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'Volume';
   mapping.method = 'switchcase';
- case 'wmhd'
+ case {'wmhd' 'w_mhd'}
   mapping.label = 'Wmhd';
   mapping.timedim = 1;
   mapping.method = 'signal';
@@ -397,7 +403,7 @@ switch lower(data_request)
 		    'gdat_tmp.data = 0.5.*(gdat_tmp2.data+gdat_tmp.data);gdat_tmp.label=''' mapping.label ''';' ...
 		   'gdat_tmp.gdat_request=''' data_request ''';'];
 
- case 'zmag'
+ case {'zmag', 'z_mag', 'z_axis'}
   mapping.label = 'Z\_magaxis';
   mapping.timedim = 1;
   mapping.method = 'signal';
@@ -416,6 +422,7 @@ switch lower(data_request)
   mapping.label = data_request;
   mapping.method = 'signal'; % assume a full tracename is given, so just try with tdi (could check there are some ":", etc...)
   mapping.expression = data_request;
+  mapping.not_found = true;
 
 end
 
diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index bb7f7210..5efda814 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -287,6 +287,10 @@ if strcmp(mapping_for_aug.method,'signal')
   if ~iscell(mapping_for_aug.expression)
     error_status = 1010;
     disp(['expects a cell array with at least 2 cells in expression, mapping_for_aug.expression = ' mapping_for_aug.expression]);
+    if isfield(mapping_for_aug,'not_found') && mapping_for_aug.not_found
+      disp(['data request not found in aug_requests_mapping, see .data_request_names_all to see all options'])
+      gdat_data.data_request_names_all = data_request_names_all;
+    end
     return
   elseif length(mapping_for_aug.expression)>=3
     exp_location = mapping_for_aug.expression{3};
@@ -295,6 +299,10 @@ if strcmp(mapping_for_aug.method,'signal')
   else
     error_status = 101;
     disp(['expects at least 2 cells in expression, mapping_for_aug.expression = ' mapping_for_aug.expression]);
+    if isfield(mapping_for_aug,'not_found') && mapping_for_aug.not_found
+      disp(['data request not found in aug_requests_mapping, see .data_request_names_all to see all options'])
+      gdat_data.data_request_names_all = data_request_names_all;
+    end
     return
   end
   % allow changing main source with simple signals, 'source' parameter relates to mapping_for_aug.expression{1}
@@ -1811,6 +1819,8 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
     gdat_data.dim{2} = gdat_data.t;
     gdat_data.dimunits{1} = 'rhopolnorm';
     gdat_data.dimunits{2} = 'time [s]';
+    % add grids_1d to have rhotor, etc
+    gdat_data = get_grids_1d(gdat_data,2,1,gdat_params.nverbose);
 
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'psi_axis', 'psi_edge'}
diff --git a/crpptbx/AUG/geteqdskAUG.m b/crpptbx/AUG/geteqdskAUG.m
index cfae4314..bac1c980 100644
--- a/crpptbx/AUG/geteqdskAUG.m
+++ b/crpptbx/AUG/geteqdskAUG.m
@@ -6,6 +6,7 @@ function [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time,zshift,var
 %
 % varargin{1:2}: 'source','EQI' (default) or 'source','IDE'  (used in gdat(...,'equil') )
 % varargin{3:4}: 'extra_arg_sf2sig','[]' (default) or 'extra_arg_sf2sig','''-ed'',2'
+% varargin{5:6}: 'fignb',ii (default is a new fig each time, if a number is given it over plots on this figure, needed if called in series)
 %
 % [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time);
 % [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time,[],'source','IDE');
@@ -35,7 +36,7 @@ end
 
 if nargin >= 5 && ~isempty(varargin{1}) && strcmp(lower(varargin{1}),'source')
   if ~isempty(varargin{2})
-    equil_source = varargin{2}
+    equil_source = varargin{2};
   else
     disp(['Warning source for equil in geteqdskAUG not defined']);
     return;
@@ -48,7 +49,7 @@ if strcmp(lower(equil_source),'ide');   equilpar_source = 'IDG'; end
 
 if nargin >= 7 && ~isempty(varargin{3}) && strcmp(lower(varargin{3}),'extra_arg_sf2sig')
   if ~isempty(varargin{4})
-    extra_arg_sf2sig = varargin{4}
+    extra_arg_sf2sig = varargin{4};
   else
     disp(['Warning extra_arg_sf2sig in geteqdskAUG not defined']);
     return;
@@ -57,6 +58,17 @@ else
   extra_arg_sf2sig = '[]';
 end
 
+if nargin >= 9 && ~isempty(varargin{5}) && strcmp(lower(varargin{5}),'fignb')
+  if ~isempty(varargin{6})
+    fignb = varargin{6};
+  else
+    disp(['Warning fignb in geteqdskAUG not defined']);
+    return;
+  end
+else
+  fignb = [];
+end
+
 if isnumeric(shot)
   equil=gdat_aug(shot,'equil','equil',equil_source,'extra_arg_sf2sig',extra_arg_sf2sig);
 else
@@ -123,7 +135,14 @@ zmag=gdat_aug(shot,'zmag','source',equilpar_source,'extra_arg_sf2sig',extra_arg_
 eqdsk.zaxis = zmag.data(itrmag) - eqdsk.zshift;
 
 % get plasma boundary
-figure
+if isempty(fignb) || ~isnumeric(fignb) || fignb < 1
+  figure
+else
+  figure(fignb)
+  clf
+  set(gcf,'Name','from geteqdskAUG');
+end
+
 contour(eqdsk.rmesh,eqdsk.zmesh,eqdsk.psi',100)
 hold on
 psiedge_eff = 0.001*eqdsk.psiaxis + 0.999*eqdsk.psiedge; % note for IDE psi edge is already 99%
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
index e4ce4954..4a35c83c 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
@@ -4,6 +4,8 @@ function [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_e
 % 
 %
 
+machine = 'tcv';
+
 [ids_equilibrium, params_equilibrium] = tcv_ids_headpart(shot,ids_equil_empty,'equilibrium',varargin{:});
 
 % As a general rule, for a new substructure under the main ids, construct a local structure like:
@@ -12,7 +14,7 @@ function [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_e
 %
 % vacuum_toroidal_field and time, using homogeneous
 %
-vacuum_toroidal_field.b0=gdat(params_equilibrium.shot,'b0','source','liuqe'); % to get on liuqe time array
+vacuum_toroidal_field.b0=gdat(params_equilibrium.shot,'b0','source','liuqe','machine',machine); % to get on liuqe time array
 vacuum_toroidal_field_desc.b0 = '''b0'',''source'',''liuqe''';
 vacuum_toroidal_field_desc.r0 = '.r0 subfield from: [''b0'',''source'',''liuqe'']';
 ids_equilibrium.vacuum_toroidal_field.r0 = vacuum_toroidal_field.b0.r0;
@@ -31,43 +33,43 @@ ids_equilibrium.time_slice(1:length(ids_equilibrium.time)) = ids_equilibrium.tim
 % brute force solution load all eqdsks
 % $$$ for it=1:length(ids_equilibrium.time)
 % $$$   ids_equilibrium.time(it)
-% $$$   temp.eqdsks{it}=gdat(params_equilibrium.shot,'eqdsk','time',ids_equilibrium.time(it),'write',0);
+% $$$   temp.eqdsks{it}=gdat(params_equilibrium.shot,'eqdsk','time',ids_equilibrium.time(it),'write',0,'machine',machine);
 % $$$ end
 % $$$ temp_desc.eqdsks{1} = '''eqdsk'',''time'',ids_equilibrium.time(it)';
 
-global_quantities.area = gdat(params_equilibrium.shot,'area_edge');
+global_quantities.area = gdat(params_equilibrium.shot,'area_edge','machine',machine);
 global_quantities_desc.area = 'area_edge';
-global_quantities.beta_normal = gdat(params_equilibrium.shot,'betan');
+global_quantities.beta_normal = gdat(params_equilibrium.shot,'betan','machine',machine);
 global_quantities_desc.beta_normal = 'betan';
-global_quantities.beta_pol = gdat(params_equilibrium.shot,'betap');
+global_quantities.beta_pol = gdat(params_equilibrium.shot,'betap','machine',machine);
 global_quantities_desc.beta_pol = 'betap';
-global_quantities.beta_tor = gdat(params_equilibrium.shot,'beta');
+global_quantities.beta_tor = gdat(params_equilibrium.shot,'beta','machine',machine);
 global_quantities_desc.beta_tor = 'beta';
-global_quantities.energy_mhd = gdat(params_equilibrium.shot,'w_mhd');
+global_quantities.energy_mhd = gdat(params_equilibrium.shot,'w_mhd','machine',machine);
 global_quantities_desc.energy_mhd = 'w_mhd';
-global_quantities.ip = gdat(params_equilibrium.shot,'ip');
+global_quantities.ip = gdat(params_equilibrium.shot,'ip','machine',machine);
 global_quantities_desc.ip = 'ip';
-% length_pol = gdat(params_equilibrium.shot,'length_pol'); % to be added
-global_quantities.li_3 = gdat(params_equilibrium.shot,'li');
+% length_pol = gdat(params_equilibrium.shot,'length_pol','machine',machine); % to be added
+global_quantities.li_3 = gdat(params_equilibrium.shot,'li','machine',machine);
 global_quantities_desc.li_3 = 'li';
-temp.r_magnetic_axis = gdat(params_equilibrium.shot,'r_axis');
+temp.r_magnetic_axis = gdat(params_equilibrium.shot,'r_axis','machine',machine);
 temp_desc.r_magnetic_axis = 'r_axis';
-temp.z_magnetic_axis = gdat(params_equilibrium.shot,'z_axis');
+temp.z_magnetic_axis = gdat(params_equilibrium.shot,'z_axis','machine',machine);
 temp_desc.z_magnetic_axis = 'z_axis';
-temp.psi_axis = gdat(params_equilibrium.shot,'psi_axis'); % needs to add psi_edge sincepsi_axis liuqe assuming 0 dege value
+temp.psi_axis = gdat(params_equilibrium.shot,'psi_axis','machine',machine); % needs to add psi_edge sincepsi_axis liuqe assuming 0 dege value
 temp_desc.psi_axis = 'psi_axis';
-global_quantities.psi_boundary = gdat(params_equilibrium.shot,'psi_edge');
+global_quantities.psi_boundary = gdat(params_equilibrium.shot,'psi_edge','machine',machine);
 global_quantities_desc.psi_boundary = 'psi_edge';
-global_quantities.q_95 = gdat(params_equilibrium.shot,'q95');
+global_quantities.q_95 = gdat(params_equilibrium.shot,'q95','machine',machine);
 global_quantities_desc.q_95 = 'q95';
-global_quantities.q_axis = gdat(params_equilibrium.shot,'q0'); % will be checked with q_rho?
+global_quantities.q_axis = gdat(params_equilibrium.shot,'q0','machine',machine); % will be checked with q_rho?
 global_quantities_desc.q_axis = 'q0';
-temp.q_rho = gdat(params_equilibrium.shot,'q_rho');
+temp.q_rho = gdat(params_equilibrium.shot,'q_rho','machine',machine);
 temp_desc.q_rho = 'q_rho';
-% surface = gdat(params_equilibrium.shot,'surface'); % to be added
-global_quantities.volume = gdat(params_equilibrium.shot,'volume');
+% surface = gdat(params_equilibrium.shot,'surface','machine',machine); % to be added
+global_quantities.volume = gdat(params_equilibrium.shot,'volume','machine',machine);
 global_quantities_desc.volume = 'volume';
-global_quantities.w_mhd = gdat(params_equilibrium.shot,'w_mhd');
+global_quantities.w_mhd = gdat(params_equilibrium.shot,'w_mhd','machine',machine);
 global_quantities_desc.w_mhd = 'w_mhd';
 
 global_quantities_fieldnames = fieldnames(global_quantities);
@@ -97,37 +99,37 @@ for it=1:length(ids_equilibrium.time)
 end
 
 % for boundary in addition to lcfs
-% active_limiter_point = gdat(params_equilibrium.shot,'active_limiter_point');
-boundary.elongation = gdat(params_equilibrium.shot,'kappa');
+% active_limiter_point = gdat(params_equilibrium.shot,'active_limiter_point','machine',machine);
+boundary.elongation = gdat(params_equilibrium.shot,'kappa','machine',machine);
 boundary_desc.elongation = 'kappa';
-% elongation_lower = gdat(params_equilibrium.shot,'elongation_lower');
-% elongation_upper = gdat(params_equilibrium.shot,'elongation_upper');
-boundary.minor_radius = gdat(params_equilibrium.shot,'a_minor');
+% elongation_lower = gdat(params_equilibrium.shot,'elongation_lower','machine',machine);
+% elongation_upper = gdat(params_equilibrium.shot,'elongation_upper','machine',machine);
+boundary.minor_radius = gdat(params_equilibrium.shot,'a_minor','machine',machine);
 boundary_desc.minor_radius = 'a_minor';
-% squareness_lower_inner = gdat(params_equilibrium.shot,'squareness_lower_inner');
-% squareness_lower_outer = gdat(params_equilibrium.shot,'squareness_lower_outer');
-% squareness_upper_inner = gdat(params_equilibrium.shot,'squareness_upper_inner');
-% squareness_upper_outer = gdat(params_equilibrium.shot,'squareness_upper_outer');
-% strike_point = gdat(params_equilibrium.shot,'strike_point');
-boundary.triangularity = gdat(params_equilibrium.shot,'delta');
+% squareness_lower_inner = gdat(params_equilibrium.shot,'squareness_lower_inner','machine',machine);
+% squareness_lower_outer = gdat(params_equilibrium.shot,'squareness_lower_outer','machine',machine);
+% squareness_upper_inner = gdat(params_equilibrium.shot,'squareness_upper_inner','machine',machine);
+% squareness_upper_outer = gdat(params_equilibrium.shot,'squareness_upper_outer','machine',machine);
+% strike_point = gdat(params_equilibrium.shot,'strike_point','machine',machine);
+boundary.triangularity = gdat(params_equilibrium.shot,'delta','machine',machine);
 boundary_desc.triangularity = 'delta';
-boundary.triangularity_lower = gdat(params_equilibrium.shot,'delta_bottom');
+boundary.triangularity_lower = gdat(params_equilibrium.shot,'delta_bottom','machine',machine);
 boundary_desc.triangularity_lower = 'delta_bottom';
-boundary.triangularity_upper = gdat(params_equilibrium.shot,'delta_top');
+boundary.triangularity_upper = gdat(params_equilibrium.shot,'delta_top','machine',machine);
 boundary_desc.triangularity_upper = 'delta_top';
-temp.n_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''n_xpts'''',''''liuqe.m'''')');
+temp.n_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''n_xpts'''',''''liuqe.m'''','machine',machine)');
 temp_desc.n_x_point = '''tcv_eq(''''n_xpts'''',''''liuqe.m'''')''';
-temp.r_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''r_xpts'''',''''liuqe.m'''')');
+temp.r_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''r_xpts'''',''''liuqe.m'''','machine',machine)');
 temp_desc.r_x_point = '''tcv_eq(''''r_xpts'''',''''liuqe.m'''')''';
-temp.z_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''z_xpts'''',''''liuqe.m'''')');
+temp.z_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''z_xpts'''',''''liuqe.m'''','machine',machine)');
 temp_desc.z_x_point = '''tcv_eq(''''z_xpts'''',''''liuqe.m'''')''';
-temp.rgeom = gdat(params_equilibrium.shot,'rgeom');
+temp.rgeom = gdat(params_equilibrium.shot,'rgeom','machine',machine);
 temp_desc.rgeom = 'rgeom';
-temp.zgeom = gdat(params_equilibrium.shot,'zgeom');
+temp.zgeom = gdat(params_equilibrium.shot,'zgeom','machine',machine);
 temp_desc.zgeom = 'zgeom';
-temp.r_lcfs = gdat(params_equilibrium.shot,'r_contour_edge');
+temp.r_lcfs = gdat(params_equilibrium.shot,'r_contour_edge','machine',machine);
 temp_desc.r_lcfs = 'r_contour_edge';
-temp.z_lcfs = gdat(params_equilibrium.shot,'z_contour_edge');
+temp.z_lcfs = gdat(params_equilibrium.shot,'z_contour_edge','machine',machine);
 temp_desc.z_lcfs = 'z_contour_edge';
 
 boundary_fieldnames = fieldnames(boundary);
@@ -165,55 +167,55 @@ end
 %
 %% profiles_1d (cannot use eqdsk since not same radial mesh)
 %
-% area = gdat(params_equilibrium.shot,'area');
-% b_average = gdat(params_equilibrium.shot,'b_average');
-% beta_pol = gdat(params_equilibrium.shot,'beta_pol');
-% b_field_average = gdat(params_equilibrium.shot,'b_field_average');
-% b_field_max = gdat(params_equilibrium.shot,'b_field_max');
-% b_field_min = gdat(params_equilibrium.shot,'b_field_min');
-% b_max = gdat(params_equilibrium.shot,'b_max');
-% b_min = gdat(params_equilibrium.shot,'b_min');
-% darea_dpsi = gdat(params_equilibrium.shot,'darea_dpsi');
-% darea_drho_tor = gdat(params_equilibrium.shot,'darea_drho_tor');
-profiles_1d.dpressure_dpsi = gdat(params_equilibrium.shot,'pprime');
-% dpsi_drho_tor = gdat(params_equilibrium.shot,'dpsi_drho_tor');
-% dvolume_dpsi = gdat(params_equilibrium.shot,'dvolume_dpsi');
-% dvolume_drho_tor = gdat(params_equilibrium.shot,'dvolume_drho_tor');
-% elongation = gdat(params_equilibrium.shot,'elongation');
-profiles_1d.f_df_dpsi = gdat(params_equilibrium.shot,'ttprime');
-profiles_1d.f = gdat(params_equilibrium.shot,'rbphi_rho');
-% geometric_axis = gdat(params_equilibrium.shot,'geometric_axis');
-% gm1 = gdat(params_equilibrium.shot,'gm1');
-% gm2 = gdat(params_equilibrium.shot,'gm2');
-% gm3 = gdat(params_equilibrium.shot,'gm3');
-% gm4 = gdat(params_equilibrium.shot,'gm4');
-% gm5 = gdat(params_equilibrium.shot,'gm5');
-% gm6 = gdat(params_equilibrium.shot,'gm6');
-% gm7 = gdat(params_equilibrium.shot,'gm7');
-% gm8 = gdat(params_equilibrium.shot,'gm8');
-% gm9 = gdat(params_equilibrium.shot,'gm9');
-% j_parallel = gdat(params_equilibrium.shot,'j_parallel');
-% j_tor = gdat(params_equilibrium.shot,'j_tor');
-% magnetic_shear = gdat(params_equilibrium.shot,'magnetic_shear');
-% mass_density = gdat(params_equilibrium.shot,'mass_density');
-profiles_1d.phi = gdat(params_equilibrium.shot,'phi_tor');
-profiles_1d.pressure = gdat(params_equilibrium.shot,'pressure');
-% psi = gdat(params_equilibrium.shot,'psi_rho'); % (could take from .x of any like rhotor and psi_axis, psi_edge from global_quantities)
-profiles_1d.q = gdat(params_equilibrium.shot,'q_rho');
-profiles_1d.rho_tor = gdat(params_equilibrium.shot,'rhotor');
-%rho_tor_norm = gdat(params_equilibrium.shot,'rhotor_norm'); % from rho_tor
-profiles_1d.rho_volume_norm = gdat(params_equilibrium.shot,'rhovol');
-% r_inboard = gdat(params_equilibrium.shot,'r_inboard');
-% r_outboard = gdat(params_equilibrium.shot,'r_outboard');
-% squareness_lower_inner = gdat(params_equilibrium.shot,'squareness_lower_inner');
-% squareness_lower_outer = gdat(params_equilibrium.shot,'squareness_lower_outer');
-% squareness_upper_inner = gdat(params_equilibrium.shot,'squareness_upper_inner');
-% squareness_upper_outer = gdat(params_equilibrium.shot,'squareness_upper_outer');
-% surface = gdat(params_equilibrium.shot,'surface');
-% trapped_fraction = gdat(params_equilibrium.shot,'trapped_fraction');
-% triangularity_lower = gdat(params_equilibrium.shot,'triangularity_lower');
-% triangularity_upper = gdat(params_equilibrium.shot,'triangularity_upper');
-profiles_1d.volume = gdat(params_equilibrium.shot,'volume_rho');
+% area = gdat(params_equilibrium.shot,'area','machine',machine);
+% b_average = gdat(params_equilibrium.shot,'b_average','machine',machine);
+% beta_pol = gdat(params_equilibrium.shot,'beta_pol','machine',machine);
+% b_field_average = gdat(params_equilibrium.shot,'b_field_average','machine',machine);
+% b_field_max = gdat(params_equilibrium.shot,'b_field_max','machine',machine);
+% b_field_min = gdat(params_equilibrium.shot,'b_field_min','machine',machine);
+% b_max = gdat(params_equilibrium.shot,'b_max','machine',machine);
+% b_min = gdat(params_equilibrium.shot,'b_min','machine',machine);
+% darea_dpsi = gdat(params_equilibrium.shot,'darea_dpsi','machine',machine);
+% darea_drho_tor = gdat(params_equilibrium.shot,'darea_drho_tor','machine',machine);
+profiles_1d.dpressure_dpsi = gdat(params_equilibrium.shot,'pprime','machine',machine);
+% dpsi_drho_tor = gdat(params_equilibrium.shot,'dpsi_drho_tor','machine',machine);
+% dvolume_dpsi = gdat(params_equilibrium.shot,'dvolume_dpsi','machine',machine);
+% dvolume_drho_tor = gdat(params_equilibrium.shot,'dvolume_drho_tor','machine',machine);
+% elongation = gdat(params_equilibrium.shot,'elongation','machine',machine);
+profiles_1d.f_df_dpsi = gdat(params_equilibrium.shot,'ttprime','machine',machine);
+profiles_1d.f = gdat(params_equilibrium.shot,'rbphi_rho','machine',machine);
+% geometric_axis = gdat(params_equilibrium.shot,'geometric_axis','machine',machine);
+% gm1 = gdat(params_equilibrium.shot,'gm1','machine',machine);
+% gm2 = gdat(params_equilibrium.shot,'gm2','machine',machine);
+% gm3 = gdat(params_equilibrium.shot,'gm3','machine',machine);
+% gm4 = gdat(params_equilibrium.shot,'gm4','machine',machine);
+% gm5 = gdat(params_equilibrium.shot,'gm5','machine',machine);
+% gm6 = gdat(params_equilibrium.shot,'gm6','machine',machine);
+% gm7 = gdat(params_equilibrium.shot,'gm7','machine',machine);
+% gm8 = gdat(params_equilibrium.shot,'gm8','machine',machine);
+% gm9 = gdat(params_equilibrium.shot,'gm9','machine',machine);
+% j_parallel = gdat(params_equilibrium.shot,'j_parallel','machine',machine);
+% j_tor = gdat(params_equilibrium.shot,'j_tor','machine',machine);
+% magnetic_shear = gdat(params_equilibrium.shot,'magnetic_shear','machine',machine);
+% mass_density = gdat(params_equilibrium.shot,'mass_density','machine',machine);
+profiles_1d.phi = gdat(params_equilibrium.shot,'phi_tor','machine',machine);
+profiles_1d.pressure = gdat(params_equilibrium.shot,'pressure','machine',machine);
+% psi = gdat(params_equilibrium.shot,'psi_rho','machine',machine); % (could take from .x of any like rhotor and psi_axis, psi_edge from global_quantities)
+profiles_1d.q = gdat(params_equilibrium.shot,'q_rho','machine',machine);
+profiles_1d.rho_tor = gdat(params_equilibrium.shot,'rhotor','machine',machine);
+%rho_tor_norm = gdat(params_equilibrium.shot,'rhotor_norm','machine',machine); % from rho_tor
+profiles_1d.rho_volume_norm = gdat(params_equilibrium.shot,'rhovol','machine',machine);
+% r_inboard = gdat(params_equilibrium.shot,'r_inboard','machine',machine);
+% r_outboard = gdat(params_equilibrium.shot,'r_outboard','machine',machine);
+% squareness_lower_inner = gdat(params_equilibrium.shot,'squareness_lower_inner','machine',machine);
+% squareness_lower_outer = gdat(params_equilibrium.shot,'squareness_lower_outer','machine',machine);
+% squareness_upper_inner = gdat(params_equilibrium.shot,'squareness_upper_inner','machine',machine);
+% squareness_upper_outer = gdat(params_equilibrium.shot,'squareness_upper_outer','machine',machine);
+% surface = gdat(params_equilibrium.shot,'surface','machine',machine);
+% trapped_fraction = gdat(params_equilibrium.shot,'trapped_fraction','machine',machine);
+% triangularity_lower = gdat(params_equilibrium.shot,'triangularity_lower','machine',machine);
+% triangularity_upper = gdat(params_equilibrium.shot,'triangularity_upper','machine',machine);
+profiles_1d.volume = gdat(params_equilibrium.shot,'volume_rho','machine',machine);
 
 profiles_1d_fieldnames = fieldnames(profiles_1d);
 special_fields = {'geometric_axis', 'rho_tor_norm', 'psi'}; % fields needing non-automatic treatments
@@ -246,23 +248,23 @@ end
 %
 %% profiles_2d{1} ala eqdsk, only this one thus grid_type=1
 %
-% b_field_r = gdat(params_equilibrium.shot,'b_field_r');
-% b_field_tor = gdat(params_equilibrium.shot,'b_field_tor');
-% b_field_z = gdat(params_equilibrium.shot,'b_field_z');
-% b_r = gdat(params_equilibrium.shot,'b_r');
-% b_tor = gdat(params_equilibrium.shot,'b_tor');
-% b_z = gdat(params_equilibrium.shot,'b_z');
-% grid = gdat(params_equilibrium.shot,'grid'); % special
+% b_field_r = gdat(params_equilibrium.shot,'b_field_r','machine',machine);
+% b_field_tor = gdat(params_equilibrium.shot,'b_field_tor','machine',machine);
+% b_field_z = gdat(params_equilibrium.shot,'b_field_z','machine',machine);
+% b_r = gdat(params_equilibrium.shot,'b_r','machine',machine);
+% b_tor = gdat(params_equilibrium.shot,'b_tor','machine',machine);
+% b_z = gdat(params_equilibrium.shot,'b_z','machine',machine);
+% grid = gdat(params_equilibrium.shot,'grid','machine',machine); % special
 profiles_2d.grid_type.name = 'rectangular';
 profiles_2d.grid_type.index = 1;
 profiles_2d.grid_type.description = 'Cylindrical R,Z ala eqdsk';
-% j_parallel = gdat(params_equilibrium.shot,'j_parallel');
-% j_tor = gdat(params_equilibrium.shot,'j_tor');
-% phi = gdat(params_equilibrium.shot,'phi');
-profiles_2d.psi = gdat(params_equilibrium.shot,'psi'); % add psi_bound in a second step in special cases
-% r = gdat(params_equilibrium.shot,'r'); % not to be filled since in grid.dim1
-% theta = gdat(params_equilibrium.shot,'theta');
-% z = gdat(params_equilibrium.shot,'z'); % not to be filled since in grid.dim2
+% j_parallel = gdat(params_equilibrium.shot,'j_parallel','machine',machine);
+% j_tor = gdat(params_equilibrium.shot,'j_tor','machine',machine);
+% phi = gdat(params_equilibrium.shot,'phi','machine',machine);
+profiles_2d.psi = gdat(params_equilibrium.shot,'psi','machine',machine); % add psi_bound in a second step in special cases
+% r = gdat(params_equilibrium.shot,'r','machine',machine); % not to be filled since in grid.dim1
+% theta = gdat(params_equilibrium.shot,'theta','machine',machine);
+% z = gdat(params_equilibrium.shot,'z','machine',machine); % not to be filled since in grid.dim2
 
 profiles_2d_fieldnames = fieldnames(profiles_2d);
 special_fields = {'grid', 'grid_type'}; % fields needing non-automatic treatments
diff --git a/crpptbx/gdatpaths.m b/crpptbx/gdatpaths.m
index 8a25dd76..55d70535 100644
--- a/crpptbx/gdatpaths.m
+++ b/crpptbx/gdatpaths.m
@@ -14,7 +14,7 @@ a = fileparts(a);
 
 % machines=[{'JET'} {'TCV'} {'AUG'} {'D3D'}];
 % machines=[{'JET'} {'TCV'} {'AUG'} {'KSTAR'}];
-machines=[{'JET'} {'TCV'} {'AUG'} {'D3D'} {'KSTAR'} {'TCV_IMAS'}];
+machines=[{'JET'} {'TCV'} {'AUG'} {'D3D'} {'KSTAR'} {'TCV_IMAS'} {'AUG_IMAS'}];
 
 add_paths = cell(1,length(machines));
 for i=1:length(machines)
-- 
GitLab