diff --git a/downloadversionIRdata.py b/downloadversionIRdata.py index e411594b8de30e873f85fe36deb9e6ceb929686c..e7718dffec25744285c27cebf55a9d2c4e0bac72 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.4 (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')) @@ -491,7 +491,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')) @@ -1230,7 +1230,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)) @@ -1267,7 +1267,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)) @@ -1308,7 +1308,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): @@ -1333,7 +1333,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 @@ -1362,7 +1362,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): @@ -1388,7 +1388,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)) @@ -1414,7 +1414,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): @@ -1439,7 +1439,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): @@ -1962,7 +1962,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] @@ -2106,7 +2106,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] @@ -2635,7 +2635,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 @@ -2669,13 +2669,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 @@ -2735,7 +2735,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: @@ -2761,7 +2761,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: @@ -3083,9 +3083,8 @@ def get_heatflux_profile(port,profile,finger=None,timepoint=1,program=None,tstar else: ### if the program goes up to here, time okay, finger okay,port okay, lets download it exist,timo,frames=download_heatflux_by_times(port,tstart,tend,time_window=0,threads=1,testmode=False,version=version,verbose=verbose-1) - if exist: - result = extract_heatflux_profile_from_DL(time=(np.asarray(timo)-t1)/1e9,images=frames,profile=int(fingerID%100),finger=int(fingerID/100),time_window=None,inputchecked=inputcheck,verbose=verbose-1) - return result + if exist: + return extract_heatflux_profile_from_DL(time=(np.asarray(timo)-t1)/1e9,images=frames,profile=int(fingerID%100),finger=int(fingerID/100),time_window=timepoint,inputchecked=inputcheck,verbose=verbose-1) else: if verbose>0: print("get_heatflux_profile: heatflux data could not be downloaded") @@ -3536,25 +3535,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) -## 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) -# cb=plt.colorbar() -# cb.set_label("temperature in K",rotation=270,labelpad=20,fontsize=20) -# cb.ax.tick_params(labelsize=20) + port=31#"AEF50"#"AEF51"'20171114.053'# + prog="20180911.008"#"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=[5,5.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[-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"]: +# port=10 +# prog="20180904.015" +# +# 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") @@ -3566,9 +3566,10 @@ if __name__=='__main__': # 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__': diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..b40db104a9bbc18312a54e892629a2580b30095a --- /dev/null +++ b/setup.py @@ -0,0 +1,34 @@ +from setuptools import setup, find_packages + +setup( + name = 'ir-data-access', + version = '3.2.4', + author = 'Holger Niemann, Peter Drewelow', + author_email = 'holger.niemann@ipp.mpg.de', + description = 'Access Frontend for IR camera data', + py_modules = [ + 'downloadversionIRdata', + 'IR_image_tools', + 'IR_config_constants', + 'IR_image_tools', + 'plot_IR_data' , + 'Create_HDF5_from_archive_data', + 'plot_heatflux_example' + ], + data_files=[ + ('',['upload_config','CHANGELOG','ToDo.txt']), + ('data',['data/AEF10_coldframes_background_fails_real.txt', + 'data/AEF11_coldframes_background_fails_real.txt', + 'data/AEF20_coldframes_background_fails_real.txt', + 'data/AEF21_coldframes_background_fails_real.txt', + 'data/AEF30_coldframes_background_fails_real.txt', + 'data/AEF31_coldframes_background_fails_real.txt', + 'data/AEF40_coldframes_background_fails_real.txt', + 'data/AEF41_coldframes_background_fails_real.txt', + 'data/AEF51_coldframes_background_fails_real.txt']) + ], + install_requires = [ + 'archivedb>=0.2.0' + ] +); +