diff --git a/downloadversionIRdata.py b/downloadversionIRdata.py
index 6861b09314821f25766ef005f1dc6d94a548cbdd..741c100c5fbd8edecfc06508a47b4b8619642dcb 100644
--- a/downloadversionIRdata.py
+++ b/downloadversionIRdata.py
@@ -4,7 +4,7 @@ Created on Wed Oct 25 15:51:46 2017
 updated on Tue Aug 21 10:20:00 2018
 last update on Fr Nov 23 15:37:00 2018
 
-Version: 3.2.2
+Version: 3.2.3
 (Numbering: #of big changes(OP1.2a download V1, OP1.2b download V2, heatflux V3) . #of updates to add functionalities . #number of updates for bug fixes )
 @author: holn
 """
@@ -149,7 +149,7 @@ def download_LUT(port,time,exposure=0,emissivity=0,camera_filter=0,version=0, ve
         print("download_LUT: Error! Camera unknown, stopping here.")
         raise Exception
     if version==0:
-        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"LUT_DATASTREAM")
+        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"LUT_DATASTREAM",t_from=time)
     if verbose>0:
         print("download_LUT: LUT V"+str(version)+" is used")
     #time=int(fu.TimeToNs([2017,9,26],[8,0,0,0]))
@@ -214,7 +214,7 @@ def download_NUC_by_times(port,starttime,stoptime,exposure,version=0):
     larchivepath=archivepath+project+"/"+portpathdict[OP]["AEF"+str(port)]+"NUC_"
 #    NUC_parlog=AKF_1.read_restdb_old(archivepath+"PARLOG/V"+str(version)+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
     if version==0:
-        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"NUC_DATASTREAM")
+        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"NUC_DATASTREAM",t_from=starttime)
     try:
         res = urllib.request.urlopen(larchivepath+"PARLOG/V"+str(version)+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
         signal_list = json.loads(res.read().decode('utf-8'))
@@ -490,7 +490,7 @@ def download_background_by_times(port,starttime,stoptime,exposure,camera_filter=
     stream=portpathdict[OP]["AEF"+str(port)]+"background_"
     larchivepath=archivepath+project+"/"+portpathdict[OP]["AEF"+str(port)]+"background_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)
     try:
         res = urllib.request.urlopen(larchivepath+"PARLOG/V"+str(version)+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
         signal_list = json.loads(res.read().decode('utf-8'))
@@ -1138,7 +1138,7 @@ def download_raw_parlog_by_times(port,starttime,stoptime,version=0):
     """
     OP=IR_tools.get_OP_by_time(time_ns=stoptime)
     if version==0:
-        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG")
+        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG",t_from=starttime)
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG/V"+str(version)   
     try:
         res = urllib.request.urlopen(larchivepath+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
@@ -1175,7 +1175,7 @@ def get_INFRATEC_filter_by_times(starttime,stoptime,port=50,version=0):
     """
     OP=IR_tools.get_OP_by_time(time_ns=starttime)
     if version==0:
-        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG")
+        version=get_latest_version(portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG",t_from=starttime)
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"raw_PARLOG/V"+str(version)
     try:
         res = urllib.request.urlopen(larchivepath+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
@@ -1216,7 +1216,7 @@ def get_exposure_by_times(port,starttime,stoptime,version=0):
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_" 
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)
     return read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/3/exposuretime"+"/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
       
 def get_camera_temp_by_program(port,program,version=0):
@@ -1241,7 +1241,7 @@ def get_camera_temp_by_times(port,starttime,stoptime,version=0):
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)
     dummy=read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/1/cameratemperature/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
     if dummy[0]:
         return dummy
@@ -1270,7 +1270,7 @@ def get_sensor_temp_by_times(port,starttime,stoptime,version=0):
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)
     return read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/0/sensortemperature/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
 
 def get_camera_framerate_by_program(port,program,version=0):
@@ -1296,7 +1296,7 @@ def get_camera_framerate_by_times(port,starttime,stoptime,version=0):
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")    
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)    
     return read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/2/framerate/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
     
 
@@ -1322,7 +1322,7 @@ def get_frametype_by_times(port,starttime,stoptime,version=0):
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")    
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)    
     return read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/5/frametype/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
     
 def get_framenumber_by_program(port,program,version=0):
@@ -1347,7 +1347,7 @@ def get_framenumber_by_times(port,starttime,stoptime,version=0):
     stream=portpathdict[OP]["AEF"+str(port)]+"meta_"
     larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(port)]+"meta_"
     if version==0:
-        version=get_latest_version(stream+"DATASTREAM")    
+        version=get_latest_version(stream+"DATASTREAM",t_from=starttime)    
     return read_restdb(larchivepath+"DATASTREAM/V"+str(version)+"/4/framenumber/_signal.json?from="+str(starttime)+"&upto="+str(stoptime))
 
 def get_average_divertor_TC_for_camtemp(port,starttime,endtime,part="all",TC=0):
@@ -1870,7 +1870,7 @@ def get_temp_from_raw_by_program_fullthreads(portnr,program,time_window=0,emi=0.
                 success=True
                 OP=IR_tools.get_OP_by_time(time_ns=starttime)
                 if version==0:
-                    version=get_latest_version(portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM")
+                    version=get_latest_version(portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM",program=program)
                 larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM/V"+str(version)+"/0/raw"
                 if type(time_window)==list:
                     tstart=time_window[0]
@@ -2014,7 +2014,7 @@ def get_nuced_raw_by_program_fullthreads(portnr,program,time_window=0,emi=0.8,
             if verbose>0:
                 print('get_nuced_raw_by_program_fullthreads: prepare loading images by threads')
             if version==0:
-                version=get_latest_version(portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM")
+                version=get_latest_version(portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM",t_from=starttime)
             larchivepath=archivepath+"W7X/"+portpathdict[OP]["AEF"+str(portnr)]+"raw_DATASTREAM/V"+str(version)+"/0/raw"
             if type(time_window)==list:
                 tstart=time_window[0]
@@ -2543,7 +2543,7 @@ def estimate_offset(port,program,plot_it=False,verbose=0):
         return -1
 
 def download_heatflux_by_program(port,program,time_window=0,threads=1,testmode=False,
-                                 version=0,verbose=0,givealpha=False,request=True):
+                                 version=0,verbose=0,givealpha=False,request=True,moffset=0):
     """
     port: string or integer
     program: string
@@ -2577,13 +2577,13 @@ def download_heatflux_by_program(port,program,time_window=0,threads=1,testmode=F
             tstart=tstart-1.1e9
         return download_heatflux_by_times(port=port,tstart=tstart,tend=tend,time_window=0,
                                           testmode=testmode,version=version,verbose=verbose,
-                                          request=request)
+                                          request=request,moffset=moffset)
     else:
         print("download_heatflux_by_program: Error! program not found")
         return False,0,-1
 
 def download_heatflux_by_times(port,tstart,tend,time_window=0,threads=1,testmode=False,
-                               version=0,verbose=0,request=True):
+                               version=0,verbose=0,request=True,moffset=0):
     """
     port: string or integer
     tstart: int64 timestamp in ns from which point the download should start
@@ -2643,7 +2643,7 @@ def download_heatflux_by_times(port,tstart,tend,time_window=0,threads=1,testmode
                 if verbose>0:
                     print(now,"download_heatflux_by_times: heat flux data is not available")          
                 if request:
-                    f=open(heatflux_requestlist_path+str(now.year)+str(now.month)+"_q_requests.txt",'a')
+                    f=open(heatflux_requestlist_path+str(now.year)+str(now.month+moffset)+"_q_requests.txt",'a')
                     try:
                         programid=AKF_2.get_program_id(tstart)
                     except Exception as E:
@@ -2669,7 +2669,7 @@ def download_heatflux_mapping_reference(timepoint=None,version=0,testmode=False,
         base=archivepath
 #    OP=IR_tools.get_OP_by_time(time_ns=timepoint)
     if version==0:
-        version=get_latest_version("QRT_IRCAM/Mapping_reference_DATASTREAM",project=project_ana,Test=testmode)
+        version=get_latest_version("QRT_IRCAM/Mapping_reference_DATASTREAM",project=project_ana,Test=testmode,t_from=timepoint)
     larchivepath=base+project_ana+"/"+"QRT_IRCAM/Mapping_reference_DATASTREAM/V"+str(version)+"/0/reference"
     ### test for the testsample###
 #    if version==0:
@@ -3419,25 +3419,26 @@ if __name__=='__main__':
     print("local function calling") 
     
 #%% temperature download and plotting example                  
-    port=50#"AEF50"#"AEF51"
-    prog='20170927.020'#"20181011.036"#"20181016.037"#"20180920.042"#"20171109.021"#"20181010.036"
-    status,time,images,valid=get_temp_from_raw_by_program(port,prog,time_window=[0,4],emi=0.80,T_version=2,version=0,threads=4,give_ERROR=False,use_firstframe_as_background=False,verbose=5)
+    port=51#"AEF50"#"AEF51"'20171114.053'#
+    prog="20180906.012"#"20181011.033"#'20171122.035'#'20181011.010'#'20180823.037'#'20170927.020'#"20181011.036"#"20181016.037"#"20180920.042"#"20171109.021"#"20181010.036"
+    status,time,images,valid=get_temp_from_raw_by_program(port,prog,time_window=[6,6.1],emi=0.80,T_version=2,version=0,threads=1,give_ERROR=False,use_firstframe_as_background=False,verbose=5)
 #    status2,time2,images2=download_raw_images_by_program(port,prog,time_window=0.02,verbose=5)
 #    bla=get_calib_data(50,program=prog,verbose=5)
 #    success,t,s,profile=extract_temperature_profile_from_DL(port,np.asarray(time-time[0])/1e9,images,profile="TM3h_5_5",verbose=10,reference_time=time[0])
     if status:
         plt.figure()
-        plt.imshow(images[0],vmin=330,vmax=1000,cmap=exJet)
+        plt.imshow(images[-1],vmin=330,vmax=1000,cmap=exJet)
         cb=plt.colorbar()
         cb.set_label("temperature in K",rotation=270,labelpad=20,fontsize=20)
         cb.ax.tick_params(labelsize=20)
+        plt.title("AEF{0}".format(port))
 #%% heatflux test
 #    port=10
 #    prog="20180904.015" 
 #    
-#    for prog in ["20180823.016","20180918.045","20181016.037","20181009.024","20181016.016"]:#"20171207.024","20180814.024","20181016.016","20181010.036"]:
+#    for prog in ["20171207.016"]:#"20180821.012"]:#"20180823.016","20180918.045","20181016.037","20181009.024","20181016.016"]:#"20171207.024","20180814.024","20181016.016","20181010.036"]:
 #        for port in [10,11,20,21,30,31,40,41,50,51]:
-#            status,time,images=download_heatflux_by_program(port,prog,time_window=4,threads=4,version=2,verbose=3,givealpha=False,request=True)            
+#            status,time,images=download_heatflux_by_program(port,prog,time_window=0.9,threads=4,version=2,verbose=3,givealpha=False,request=True)            
 ##            status,time,load,error=download_divertor_load(port,targetmodule=['all','tm1h'],program=prog,verbose=5,version=3)
 #            if status:
 #                print(prog,port,"OK")
@@ -3448,9 +3449,10 @@ if __name__=='__main__':
 #    status,mapping=download_heatflux_mapping_reference(verbose=4)
 #    test=get_heatflux_profile(20,1605,timepoint=1,program="20171109.008",verbose=4)
 #%% loads test
-#    port=21
-#    prog="20171114.052"    
-#    status,time,load,error=download_divertor_load(port,targetmodule=['all','tm1h'],program=prog,verbose=5,debug=True)
+#    port=10
+#    prog="20171207.016"#"20181011.015"#"20171114.052"    
+#    for port in  [10,11,20,21,30,31,40,41,50,51]:
+#        status,time,load,error=download_divertor_load(port,targetmodule=['all','tm1h'],program=prog,verbose=5)
 #%% scene model test
 #    port=10
 #    exist,model=download_scene_model(port)
diff --git a/plot_heatflux_example.py b/plot_heatflux_example.py
index 195f9c86858aeb988310acf3aa575c5290dfcd35..e8b79680c062725cf8248932ceb3af5fbd3f08fd 100644
--- a/plot_heatflux_example.py
+++ b/plot_heatflux_example.py
@@ -9,8 +9,8 @@ import downloadversionIRdata as IR
 import matplotlib.pyplot as plt
 import datetime
 
-port=10 # 20
-program="20171207.022" # "20181004.012"
+port=51 # 20
+program="20180927.017"#"20180904.007"#"20171207.022" # "20181004.012"
 
 if __name__=='__main__':