diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m
index a6118f64c65737d25943d7f4ca4bed810cb82bea..28552955bb4090ef31be5b5abe6f1fdb7393c492 100644
--- a/matlab/TCV/gdat_tcv.m
+++ b/matlab/TCV/gdat_tcv.m
@@ -3337,10 +3337,14 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
           % 200ms includes all characteristic time constants
           time_interval = [gdat_data.gdat_params.time_out-0.1 gdat_data.gdat_params.time_out+0.1];
         else
-          time_interval = [min(gdat_data.gdat_params.time_out)-0.1 max(gdat_data.gdat_params.time_out)+0.1];
+          if strcmp(gdat_data.gdat_params.source,'radcam')
+            time_interval = gdat_data.gdat_params.time_out; % for radcam provide time array on which to do interpos
+          else
+            time_interval = [min(gdat_data.gdat_params.time_out)-0.1 max(gdat_data.gdat_params.time_out)+0.1];
+            warning(['Expects a time interval [t1 t2] for ' data_request_eff ' in param time_out, uses [' ...
+                     num2str(time_interval(1)) ',' num2str(time_interval(2)) ']' char(10)])
+          end
         end
-        warning(['Expects a time interval [t1 t2] for ' data_request_eff ' in param time_out, uses [' ...
-                 num2str(time_interval(1)) ',' num2str(time_interval(2)) ']' char(10)])
       end
     end
     % at this stage 2 option for freq, raw data (fast, default), 10kHz or similar (slow)
@@ -3429,10 +3433,30 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       end
       sxr = rc_load_diodes(shot,'diag_name',"sxr",'channels',gdat_data.x); % since all cameras with different channel number
       if freq_opt == 1
-        gdat_data.data = sxr.data';
-        gdat_data.t = sxr.time;
+         if ~isempty(time_interval)
+           if numel(time_interval) == 2
+             ij = find(sxr.time>=time_interval(1) & sxr.time>=time_interval(end));
+             gdat_data.data = sxr.data(ij,:)';
+             gdat_data.t = sxr.time(ij);
+           else
+             ij = iround_os(sxr.time,time_interval);
+             gdat_data.data = sxr.data(ij,:)';
+             gdat_data.t = sxr.time(ij);
+           end
+         else
+           gdat_data.data = sxr.data';
+           gdat_data.t = sxr.time;
+         end
       else
-        gdat_data.t = linspace(sxr.time(1),sxr.time(end),round((sxr.time(end)-sxr.time(1))/1e-4));
+        if ~isempty(time_interval)
+          if numel(time_interval) == 2
+            gdat_data.t = linspace(time_interval(1),time_interval(2),round((time_interval(2)-time_interval(1))/1e-4));
+          else
+            gdat_data.t = time_interval;
+          end
+        else
+          gdat_data.t = linspace(sxr.time(1),sxr.time(end),round((sxr.time(end)-sxr.time(1))/1e-4));
+        end
         for i=1:size(sxr.data,2)
           gdat_data.data(i,:) = interpos(sxr.time,sxr.data(:,i),gdat_data.t,gdat_data.gdat_params.fit_tension);
         end