diff --git a/Upload_Day_IRdata.py b/Upload_Day_IRdata.py
index 968edc6f13f0edb8f028636a9632c29ef7500f37..da012189214ae7dc705a43946ad1eaceab620af8 100644
--- a/Upload_Day_IRdata.py
+++ b/Upload_Day_IRdata.py
@@ -171,7 +171,7 @@ for date in dates:
                     if cameras[i]=="IRCAM":
                         newversion=reupload
                         if background or nuc:
-                            for t_exp in range(4,10):
+                            for t_exp in range(1,10):
                                 try:
                                     print(datetime.datetime.now(),"      prepare upload of nuc data set for "+str(t_exp)+"us")
                                     fb = h5.File(os.path.join(path, blist[str(t_exp)+"us"]),'r')
diff --git a/downloadversionIRdata.py b/downloadversionIRdata.py
index 64ac752e5cba2055d72a78f22bd7fd300f1507fd..aac3c0ec6cddcb233e18664942bd0fbd457bc839 100644
--- a/downloadversionIRdata.py
+++ b/downloadversionIRdata.py
@@ -401,10 +401,17 @@ def download_raw_images_by_program(port,program,time_s=0,version=1):
     if prog[0]:
         starttime=prog[1]['trigger']['1'][0]
         stoptime=prog[1]['trigger']['6'][0]
-        if time_s==0:
-            return download_raw_images_by_times(port,starttime,stoptime,version)
+        if type(time_s)==list:
+            tstart=time_s[0]
+            tstop=time_s[1]
+            if tstop<tstart:
+                raise Exception("endtime before starttime")
+            return download_raw_images_by_times(port,int(starttime+tstart*1e9),int(starttime+tstop*1e9),version)
         else:
-            return download_raw_images_by_times(port,starttime,int(starttime+time_s*1e9),version)
+            if time_s==0:
+                return download_raw_images_by_times(port,starttime,stoptime,version)
+            else:
+                return download_raw_images_by_times(port,starttime,int(starttime+time_s*1e9),version)
     else:
         print("cannot find the program")
         return False,0,0
@@ -470,14 +477,24 @@ if fastDL:
                 larchivepath="Test/raw/W7X/"+"QRT_IRCAM/"+"AEF"+str(port)+"_raw_DATASTREAM/V"+str(version)+"/0/raw"
             else:
                 raise Exception("Port number does not fit the known cameras")
-            stdate=datetime.datetime.utcfromtimestamp((starttime-100)/1e9)
-            stdate=stdate.isoformat()
-            if time_s==0:
-                enddate=datetime.datetime.utcfromtimestamp(stoptime/1e9)        
+            if type(time_s)==list:
+                tstart=time_s[0]
+                tstop=time_s[1]
+                if tstop<tstart:
+                    raise Exception("endtime before starttime")
+                stdate=datetime.datetime.utcfromtimestamp((starttime-100)/1e9+tstart)
+                stdate=stdate.isoformat()
+                enddate=datetime.datetime.utcfromtimestamp((starttime)/1e9+tstop)  
                 enddate=enddate.isoformat()
             else:
-                enddate=datetime.datetime.utcfromtimestamp((starttime)/1e9+time_s)  
-                enddate=enddate.isoformat()
+                stdate=datetime.datetime.utcfromtimestamp((starttime-100)/1e9)
+                stdate=stdate.isoformat()
+                if time_s==0:
+                    enddate=datetime.datetime.utcfromtimestamp(stoptime/1e9)        
+                    enddate=enddate.isoformat()
+                else:
+                    enddate=datetime.datetime.utcfromtimestamp((starttime)/1e9+time_s)  
+                    enddate=enddate.isoformat()
                 #"2017-11-15 08:00:00"
             times=AKF_2.get_all_time_intervals(larchivepath,stdate.replace("T"," "),enddate.replace("T"," "))
             time=[]
@@ -886,10 +903,18 @@ def get_temp_from_raw_by_program_V1(portnr,program,time_s=0,emi=0.8,divertorpart
         t1=prog[1]['trigger']['1'][0]
         t6=prog[1]['trigger']['6'][0]
         starttime=t1-10
-        if time_s==0:                                
-            stoptime=t6
+        if type(time_s)==list:
+            tstart=time_s[0]
+            tstop=time_s[1]
+            if tstop<tstart:
+                raise Exception("endtime before starttime")
+            starttime=int(starttime+tstart*1e9)        
+            stoptime=int(starttime+tstop*1e9)        
         else:
-            stoptime=int(starttime+time_s*1e9)
+            if time_s==0:                                
+                stoptime=t6
+            else:
+                stoptime=int(starttime+time_s*1e9)
         success=True
         print(datetime.datetime.now(),"Start download of raw images")
         if (stoptime-starttime)/intervalSize>1:        
@@ -928,6 +953,7 @@ def get_temp_from_raw_by_program_V1(portnr,program,time_s=0,emi=0.8,divertorpart
                 times=raw_dl[1]
                 temperatureimages=raw_dl[2]
                 del raw_dl
+                temperatureimages=temperatureimages.swapaxes(1,2)
                 temperatureimages=apply_calib_on_raw(temperatureimages,background,LUT,refT,gain,offset,True)                                    
             else:
                 print("cannot download the raw images")
@@ -948,14 +974,18 @@ def get_temp_from_raw_by_program_V2(portnr,program,time_s=0,emi=0.8,version=1,th
     else:
         exist,time,frames=download_raw_images_by_program(portnr,program,time_s,version)
     print(datetime.datetime.now(),"raw download finished")
+    FOV=get_FOV_mask(portnr)
+    for i in range(len(frames)):
+        frames[i]=frames[i]*FOV
     temperatureimages=apply_calib_on_raw(frames,background,LUT,refT,gain,offset,False)
     del frames
     print(datetime.datetime.now(),"correcting bad pixels")
     temperatureimages=correct_images(temperatureimages,badpixels)
-    FOV=get_FOV_mask(portnr)
+    
     valid=check_temperature_range(time[0],np.max(temperatureimages*FOV)-273.15,np.min(temperatureimages)-273.15,portnr,t_exp,cfilter)
     return exist,time,temperatureimages,valid
 
+
 def apply_calib_on_raw(raw,background,LUT,refT=28.5,gain=0,offset=0,fullbackground=False):
     try:
         images=np.array(raw,dtype=np.uint16)
@@ -1027,11 +1057,15 @@ def get_calib_data(port,program,emissivity=0.8,Temp_V=2,version=1):
                         backtime=back_DL[1]
                         backtime=backtime.tolist()
                         divertorpart="all"   
-                        TCT_dl=get_average_divertor_TC_for_camtemp(port,int(backtime-6e9),int(backtime+6e9),divertorpart)
+                        TCT_dl=get_average_divertor_TC_for_camtemp(port,int(backtime-2e9),int(backtime+2e9),divertorpart)
                         if TCT_dl[0]:
                             refT=np.average(TCT_dl[2])
                         else:
-                            raise Exception("Unable to find thermocouple data")
+                            TCT_dl=get_average_divertor_TC_for_camtemp(port,int(backtime-6e9),int(backtime+6e9),divertorpart)
+                            if TCT_dl[0]:
+                                refT=np.average(TCT_dl[2])
+                            else:
+                                raise Exception("Unable to find thermocouple data")
                     else:
                         background=get_average_background_recangle(port,background)
                         refT=28.5
@@ -1264,7 +1298,7 @@ valid_FOV_circle = {
     
 if __name__=='__main__':
     #status,time,images,valid=get_temp_from_raw_by_program_V1(51,"20171018.019",time_s=0,emi=0.8,divertorpart="all",version=1)
-    status,time,images,valid=get_temp_from_raw_by_program_V2(51,"20171121.028",time_s=6,emi=0.8,version=1,threads=8)
+    status,time,images,valid=get_temp_from_raw_by_program_V2(51,"20171121.028",time_s=[2.1,2.9],emi=0.8,version=1,threads=1)
     
 
     
\ No newline at end of file