From c52da52cf045766624a3c233b185f3072452f065 Mon Sep 17 00:00:00 2001 From: Holger Niemann <holger.niemann@ipp.mpg.de> Date: Thu, 23 Nov 2017 14:04:50 +0100 Subject: [PATCH] implement windowing --- Upload_Day_IRdata.py | 2 +- downloadversionIRdata.py | 66 ++++++++++++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 17 deletions(-) diff --git a/Upload_Day_IRdata.py b/Upload_Day_IRdata.py index 968edc6..da01218 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 64ac752..aac3c0e 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 -- GitLab