From 86fad3528cffb3955e4c70ed8960550f09f69a79 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Mon, 28 Sep 2015 20:51:38 +0000 Subject: [PATCH] fix search for timedim git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@5064 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/TCV/gdat_tcv.m | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index d5dc66e7..ee7f6b09 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -241,7 +241,7 @@ end % special treatment for model shot=-1 or preparation shot >=100'000 begstr = ''; -if shot==-1 || shot>=100000 +if shot==-1 || shot>=100000 || liuqe_version==-1 % requires FBTE liuqe_version = -1; begstr = 'tcv_eq( "'; @@ -307,9 +307,31 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') gdat_data.data = aatmp.data; gdat_data.dim = aatmp.dim; nbdims = length(gdat_data.dim); + if mapping_for_tcv.timedim==-1; - mapping_for_tcv.timedim = nbdims; - if (size(gdat_data.data,nbdims)==1 && nbdims>1); mapping_for_tcv.timedim = nbdims-1; end + % try to find time dim from units + idim_non1 = []; len_dim = []; + for i=1:length(aatmp.dimunits) + if strcmp(aatmp.dimunits{i},'s'); mapping_for_tcv.timedim = i; end + if length(aatmp.dim{i})>1 + idim_non1(end+1) = i; + len_dim(end+1) = length(aatmp.dim{i}); + end + end + if length(idim_non1)==1 + % only one dim non 1, assume it is time + mapping_for_tcv.timedim = idim_non1(1); + else + [aamax,iaamax]=max(len_dim); + if aamax./min(len_dim)>100 + mapping_for_tcv.timedim = idim_non1(iaamax); + end + end + if mapping_for_tcv.timedim==-1 + % assume last one except if of length 1 + mapping_for_tcv.timedim = nbdims; + if (size(gdat_data.data,nbdims)==1 && nbdims>1); mapping_for_tcv.timedim = nbdims-1; end + end end dim_nontim = setdiff([1:nbdims],mapping_for_tcv.timedim); if ~isempty(dim_nontim) -- GitLab