Commit 5cb30000 authored by Peter Drewelow's avatar Peter Drewelow
Browse files

IR_config_constants: added path to local data directory for parameter/input files

IR_image_tools: changed import of os for more flexibility
IR_image_tools: new function read_finger_info() reads intup files with parameters of the fingers as defined in the heat flux mapping
IR_image_tools: new function derive_wetted_area_per_module() calculates the wetted area given a numpy array with THEODOR results and mapping reference arrays as stored on the archive
downloadversionIRdata: small fixes to parameter structure in calls and messages, variation of example section
new input files in .\data: finger_infor_TDU.csv and finger_info_HHF.csv (used for wetted area calculation)
parent 587feec1
...@@ -11,6 +11,7 @@ IRCamColdframes_fittingpath=calibpath+"IRCamColdframes_fitting\\" ...@@ -11,6 +11,7 @@ IRCamColdframes_fittingpath=calibpath+"IRCamColdframes_fitting\\"
IRCamRefImagespath = calibpath+'IRCamReferenceImages\\' IRCamRefImagespath = calibpath+'IRCamReferenceImages\\'
IRCAMBadPixels_path = calibpath + 'IRCAMBadPixels\\' IRCAMBadPixels_path = calibpath + 'IRCAMBadPixels\\'
heatflux_requestlist_path="\\\\x-drive\\Diagnostic-logbooks\\QRT-DivertorThermography\\ArchiveDB_heatflux_pipeline\\" heatflux_requestlist_path="\\\\x-drive\\Diagnostic-logbooks\\QRT-DivertorThermography\\ArchiveDB_heatflux_pipeline\\"
parameter_file_path = ".\\data"
try: try:
# import sys # import sys
path=str(repr(__file__)).split("IR_config_constants")[0].split("'")[1]+"upload_config" path=str(repr(__file__)).split("IR_config_constants")[0].split("'")[1]+"upload_config"
......
This diff is collapsed.
# Finger widths of TDU;;;;;
# continuous ID of divertor fingers;ID of divertor section;target module number within horizontal or vertical target;number of profiles in standard mapping;width used for integration of averaged central profile;finger_part indicates if finger is the second part of the previous finger (in h_m)
# finger_ID;target;target element;n_profiles;width [m];finger_part
0;h_l;1;13;0.051072;0
1;h_l;1;14;0.053565;0
2;h_l;1;14;0.053565;0
3;h_l;1;14;0.053565;0
4;h_l;1;14;0.053565;0
5;h_l;1;14;0.053565;0
6;h_l;1;14;0.053565;0
7;h_l;2;14;0.053565;0
8;h_l;2;14;0.053565;0
9;h_l;2;14;0.053565;0
10;h_l;2;15;0.058047;0
11;h_l;2;15;0.05794;0
12;h_l;2;14;0.053565;0
13;h_l;2;14;0.055486;0
14;h_l;3;14;0.054198;0
15;h_l;3;13;0.052192;0
16;h_l;3;13;0.052192;0
17;h_l;3;13;0.052192;0
18;h_l;3;13;0.052192;0
19;h_l;3;13;0.052192;0
20;h_l;3;13;0.052192;0
21;h_l;3;13;0.052192;0
22;h_l;4;13;0.052192;0
23;h_l;4;13;0.052192;0
24;h_l;4;13;0.052192;0
25;h_l;4;13;0.052192;0
26;h_l;4;13;0.052192;0
27;h_l;4;13;0.052192;0
28;h_l;4;13;0.052192;0
29;h_l;4;13;0.052192;0
30;h_m;5;14;0.054328;0
31;h_m;5;15;0.054328;1
32;h_m;5;14;0.054328;0
33;h_m;5;15;0.054328;1
34;h_m;5;14;0.054152;0
35;h_m;5;15;0.054152;1
36;h_m;5;14;0.054152;0
37;h_m;5;15;0.054152;1
38;h_m;5;14;0.05408;0
39;h_m;5;15;0.05408;1
40;h_m;5;14;0.054134;0
41;h_m;5;15;0.054134;1
42;h_m;5;14;0.054134;0
43;h_m;5;15;0.054134;1
44;h_m;5;14;0.054134;0
45;h_m;5;15;0.054134;1
46;h_m;5;14;0.054134;0
47;h_m;5;15;0.054134;1
48;h_m;5;14;0.054134;0
49;h_m;5;15;0.054134;1
50;h_m;5;14;0.054134;0
51;h_m;5;15;0.054134;1
52;h_m;5;14;0.054134;0
53;h_m;5;15;0.054134;1
54;h_m;6;14;0.053823;0
55;h_m;6;15;0.053823;1
56;h_m;6;14;0.053823;0
57;h_m;6;15;0.053823;1
58;h_m;6;14;0.053823;0
59;h_m;6;15;0.053823;1
60;h_m;6;14;0.053823;0
61;h_m;6;15;0.053823;1
62;h_m;6;14;0.053823;0
63;h_m;6;15;0.053823;1
64;h_m;6;14;0.05406;0
65;h_m;6;15;0.05406;1
66;h_m;6;14;0.05406;0
67;h_m;6;15;0.05406;1
68;h_m;6;14;0.05406;0
69;h_m;6;15;0.05406;1
70;h_m;6;14;0.05406;0
71;h_m;6;15;0.05406;1
72;h_m;6;14;0.05406;0
73;h_m;6;15;0.05406;1
74;h_m;6;14;0.05406;0
75;h_m;6;15;0.05406;1
76;h_m;6;14;0.05406;0
77;h_m;6;15;0.05406;1
78;h_h;7;15;0.056351;0
79;h_h;7;14;0.052463;0
80;h_h;7;14;0.052463;0
81;h_h;7;14;0.052463;0
82;h_h;7;14;0.052463;0
83;h_h;7;15;0.054963;0
84;h_h;8;16;0.057662;0
85;h_h;8;15;0.055162;0
86;h_h;8;15;0.055162;0
87;h_h;8;15;0.055162;0
88;h_h;8;15;0.055162;0
89;h_h;8;15;0.055162;0
90;h_h;8;15;0.055162;0
91;h_h;8;15;0.055162;0
92;h_h;8;15;0.055162;0
93;h_h;8;15;0.055162;0
94;h_h;8;15;0.055162;0
95;h_h;8;15;0.055162;0
96;h_h;9;15;0.055162;0
97;h_h;9;15;0.055162;0
98;h_h;9;15;0.055162;0
99;h_h;9;15;0.055162;0
100;h_h;9;15;0.055162;0
101;h_h;9;15;0.055162;0
102;h_h;9;15;0.055162;0
103;h_h;9;15;0.055162;0
104;h_h;9;15;0.055162;0
105;h_h;9;15;0.055162;0
106;h_h;9;15;0.055162;0
107;h_h;9;15;0.055162;0
108;v;1;15;0.054426;0
109;v;1;15;0.054426;0
110;v;1;15;0.054426;0
111;v;1;15;0.054426;0
112;v;1;15;0.054426;0
113;v;1;15;0.054426;0
114;v;1;15;0.054426;0
115;v;1;15;0.054426;0
116;v;1;15;0.054426;0
117;v;1;15;0.054426;0
118;v;2;15;0.054426;0
119;v;2;15;0.054426;0
120;v;2;15;0.054426;0
121;v;2;15;0.054426;0
122;v;2;15;0.054426;0
123;v;2;15;0.054426;0
124;v;2;15;0.054426;0
125;v;2;15;0.054426;0
126;v;2;15;0.054426;0
127;v;2;15;0.054426;0
128;v;3;15;0.054426;0
129;v;3;15;0.054426;0
130;v;3;15;0.054426;0
131;v;3;15;0.054426;0
132;v;3;15;0.054426;0
133;v;3;15;0.054426;0
134;v;3;15;0.054426;0
135;v;3;15;0.054426;0
136;v;3;15;0.054426;0
# Finger widths of TDU;;;;;
# continuous ID of divertor fingers;ID of divertor section;target module number within horizontal or vertical target;number of profiles in standard mapping;width used for integration of averaged central profile;finger_part indicates if finger is the second part of the previous finger (in h_m)
# finger_ID;target;target element;n_profiles;width [m];finger_part
0;h_l;1;13;0.051072;0
1;h_l;1;14;0.053565;0
2;h_l;1;14;0.053565;0
3;h_l;1;14;0.053565;0
4;h_l;1;14;0.053565;0
5;h_l;1;14;0.053565;0
6;h_l;1;14;0.053565;0
7;h_l;2;14;0.053565;0
8;h_l;2;14;0.053565;0
9;h_l;2;14;0.053565;0
10;h_l;2;15;0.058047;0
11;h_l;2;15;0.05794;0
12;h_l;2;14;0.053565;0
13;h_l;2;14;0.055486;0
14;h_l;3;14;0.054198;0
15;h_l;3;13;0.052192;0
16;h_l;3;13;0.052192;0
17;h_l;3;13;0.052192;0
18;h_l;3;13;0.052192;0
19;h_l;3;13;0.052192;0
20;h_l;3;13;0.052192;0
21;h_l;3;13;0.052192;0
22;h_l;4;13;0.052192;0
23;h_l;4;13;0.052192;0
24;h_l;4;13;0.052192;0
25;h_l;4;13;0.052192;0
26;h_l;4;13;0.052192;0
27;h_l;4;13;0.052192;0
28;h_l;4;13;0.052192;0
29;h_l;4;13;0.052192;0
30;h_m;5;14;0.054328;0
31;h_m;5;15;0.054328;1
32;h_m;5;14;0.054328;0
33;h_m;5;15;0.054328;1
34;h_m;5;14;0.054152;0
35;h_m;5;15;0.054152;1
36;h_m;5;14;0.054152;0
37;h_m;5;15;0.054152;1
38;h_m;5;14;0.05408;0
39;h_m;5;15;0.05408;1
40;h_m;5;14;0.054134;0
41;h_m;5;15;0.054134;1
42;h_m;5;14;0.054134;0
43;h_m;5;15;0.054134;1
44;h_m;5;14;0.054134;0
45;h_m;5;15;0.054134;1
46;h_m;5;14;0.054134;0
47;h_m;5;15;0.054134;1
48;h_m;5;14;0.054134;0
49;h_m;5;15;0.054134;1
50;h_m;5;14;0.054134;0
51;h_m;5;15;0.054134;1
52;h_m;5;14;0.054134;0
53;h_m;5;15;0.054134;1
54;h_m;6;14;0.053823;0
55;h_m;6;15;0.053823;1
56;h_m;6;14;0.053823;0
57;h_m;6;15;0.053823;1
58;h_m;6;14;0.053823;0
59;h_m;6;15;0.053823;1
60;h_m;6;14;0.053823;0
61;h_m;6;15;0.053823;1
62;h_m;6;14;0.053823;0
63;h_m;6;15;0.053823;1
64;h_m;6;14;0.05406;0
65;h_m;6;15;0.05406;1
66;h_m;6;14;0.05406;0
67;h_m;6;15;0.05406;1
68;h_m;6;14;0.05406;0
69;h_m;6;15;0.05406;1
70;h_m;6;14;0.05406;0
71;h_m;6;15;0.05406;1
72;h_m;6;14;0.05406;0
73;h_m;6;15;0.05406;1
74;h_m;6;14;0.05406;0
75;h_m;6;15;0.05406;1
76;h_m;6;14;0.05406;0
77;h_m;6;15;0.05406;1
78;h_h;7;15;0.056351;0
79;h_h;7;14;0.052463;0
80;h_h;7;14;0.052463;0
81;h_h;7;14;0.052463;0
82;h_h;7;14;0.052463;0
83;h_h;7;15;0.054963;0
84;h_h;8;16;0.057662;0
85;h_h;8;15;0.055162;0
86;h_h;8;15;0.055162;0
87;h_h;8;15;0.055162;0
88;h_h;8;15;0.055162;0
89;h_h;8;15;0.055162;0
90;h_h;8;15;0.055162;0
91;h_h;8;15;0.055162;0
92;h_h;8;15;0.055162;0
93;h_h;8;15;0.055162;0
94;h_h;8;15;0.055162;0
95;h_h;8;15;0.055162;0
96;h_h;9;15;0.055162;0
97;h_h;9;15;0.055162;0
98;h_h;9;15;0.055162;0
99;h_h;9;15;0.055162;0
100;h_h;9;15;0.055162;0
101;h_h;9;15;0.055162;0
102;h_h;9;15;0.055162;0
103;h_h;9;15;0.055162;0
104;h_h;9;15;0.055162;0
105;h_h;9;15;0.055162;0
106;h_h;9;15;0.055162;0
107;h_h;9;15;0.055162;0
108;v;1;15;0.054426;0
109;v;1;15;0.054426;0
110;v;1;15;0.054426;0
111;v;1;15;0.054426;0
112;v;1;15;0.054426;0
113;v;1;15;0.054426;0
114;v;1;15;0.054426;0
115;v;1;15;0.054426;0
116;v;1;15;0.054426;0
117;v;1;15;0.054426;0
118;v;2;15;0.054426;0
119;v;2;15;0.054426;0
120;v;2;15;0.054426;0
121;v;2;15;0.054426;0
122;v;2;15;0.054426;0
123;v;2;15;0.054426;0
124;v;2;15;0.054426;0
125;v;2;15;0.054426;0
126;v;2;15;0.054426;0
127;v;2;15;0.054426;0
128;v;3;15;0.054426;0
129;v;3;15;0.054426;0
130;v;3;15;0.054426;0
131;v;3;15;0.054426;0
132;v;3;15;0.054426;0
133;v;3;15;0.054426;0
134;v;3;15;0.054426;0
135;v;3;15;0.054426;0
136;v;3;15;0.054426;0
...@@ -2931,7 +2931,7 @@ def get_heatflux_profile(port,profile,finger=None,timepoint=1,program=None,tstar ...@@ -2931,7 +2931,7 @@ def get_heatflux_profile(port,profile,finger=None,timepoint=1,program=None,tstar
""" """
### checking whether input is valid and whether the download can be started ### checking whether input is valid and whether the download can be started
if program==None and tstart==None: if program==None and tstart==None:
raise Exception("get_heatflux_profile: No Program given, please specify the program you are want heatflux from") raise Exception("get_heatflux_profile: No Program given, please specify the program you want heatflux from")
else: else:
### some informations about the program are given, is the timepoint given in a usefull way? ### some informations about the program are given, is the timepoint given in a usefull way?
if timepoint==None or (type(timepoint)!=int and type(timepoint)!=float): if timepoint==None or (type(timepoint)!=int and type(timepoint)!=float):
...@@ -2991,8 +2991,9 @@ def get_heatflux_profile(port,profile,finger=None,timepoint=1,program=None,tstar ...@@ -2991,8 +2991,9 @@ def get_heatflux_profile(port,profile,finger=None,timepoint=1,program=None,tstar
else: else:
### if the program goes up to here, time okay, finger okay,port okay, lets download it ### 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) exist,timo,frames=download_heatflux_by_times(port,tstart,tend,time_window=0,threads=1,testmode=False,version=version,verbose=verbose-1)
if exist: if exist:
return extract_heatflux_profile_from_DL(time=(np.asarray(timo)-t1)/1e9,images=frames,profile=int(fingerID%100),finger=int(fingerID/100),inputchecked=inputcheck,verbose=verbose-1) 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
else: else:
if verbose>0: if verbose>0:
print("get_heatflux_profile: heatflux data could not be downloaded") print("get_heatflux_profile: heatflux data could not be downloaded")
...@@ -3043,7 +3044,7 @@ def extract_heatflux_profile_from_DL(time,images,profile,finger=None,time_window ...@@ -3043,7 +3044,7 @@ def extract_heatflux_profile_from_DL(time,images,profile,finger=None,time_window
else: else:
fingerID=finger*100+profile fingerID=finger*100+profile
### okay finderID is fine, data is given, lets get the mapping ### okay finderID is fine, data is given, lets get the mapping
exist,mapping=download_heatflux_mapping_reference(testmode=testmode) exist,mapping=download_heatflux_mapping_reference(testmode=testmode, verbose=verbose-1)
if exist: if exist:
Fingermap=np.asarray(mapping['Finger_ID'][0],dtype=np.int) Fingermap=np.asarray(mapping['Finger_ID'][0],dtype=np.int)
locs=np.where(Fingermap==fingerID) locs=np.where(Fingermap==fingerID)
...@@ -3246,6 +3247,8 @@ def download_divertor_load(port,targetmodule=None,program=None,tstart=None,tend= ...@@ -3246,6 +3247,8 @@ def download_divertor_load(port,targetmodule=None,program=None,tstart=None,tend=
return exist,time,load,error return exist,time,load,error
def download_scene_model(port,program=None,timepoint=None,version=0,verbose=0): def download_scene_model(port,program=None,timepoint=None,version=0,verbose=0):
"""
"""
if type(port)==int or type(port)==float: if type(port)==int or type(port)==float:
portnam="AEF"+str(port) portnam="AEF"+str(port)
elif type(port)==str: elif type(port)==str:
...@@ -3291,7 +3294,7 @@ def download_scene_model(port,program=None,timepoint=None,version=0,verbose=0): ...@@ -3291,7 +3294,7 @@ def download_scene_model(port,program=None,timepoint=None,version=0,verbose=0):
"x": channels[8], "x": channels[8],
"y": channels[9], "y": channels[9],
"z": channels[10] "z": channels[10]
} }
return exist,scene_model return exist,scene_model
else: else:
return False,[0] return False,[0]
...@@ -3441,22 +3444,22 @@ if __name__=='__main__': ...@@ -3441,22 +3444,22 @@ if __name__=='__main__':
print("local function calling") print("local function calling")
#%% temperature download and plotting example #%% temperature download and plotting example
port=50#"AEF50"#"AEF51" # port=50#"AEF50"#"AEF51"
prog='20170927.020'#"20181011.036"#"20181016.037"#"20180920.042"#"20171109.021"#"20181010.036" # 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) # 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) ## 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) ## 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]) ## 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: # if status:
plt.figure() # plt.figure()
plt.imshow(images[0],vmin=330,vmax=1000,cmap=exJet) # plt.imshow(images[0],vmin=330,vmax=1000,cmap=exJet)
cb=plt.colorbar() # cb=plt.colorbar()
cb.set_label("temperature in K",rotation=270,labelpad=20,fontsize=20) # cb.set_label("temperature in K",rotation=270,labelpad=20,fontsize=20)
cb.ax.tick_params(labelsize=20) # cb.ax.tick_params(labelsize=20)
#%% heatflux test #%% heatflux test
# port=10 port=10
# prog="20180904.015" 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 ["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]: # 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=4,threads=4,version=2,verbose=3,givealpha=False,request=True)
...@@ -3467,8 +3470,9 @@ if __name__=='__main__': ...@@ -3467,8 +3470,9 @@ if __name__=='__main__':
# print(prog,port,"missing") # print(prog,port,"missing")
# plt.figure(),plt.imshow(images[0],vmin=0) # plt.figure(),plt.imshow(images[0],vmin=0)
# plt.figure(),plt.imshow(images[50],vmin=0) # plt.figure(),plt.imshow(images[50],vmin=0)
# status,mapping=download_heatflux_mapping_reference(verbose=4) status,mapping=download_heatflux_mapping_reference(verbose=4)
# test=get_heatflux_profile(20,1605,timepoint=1,program="20171109.008",verbose=4) test=get_heatflux_profile(20,1605,timepoint=1,program="20171109.008",verbose=4)
#%% loads test #%% loads test
# port=21 # port=21
# prog="20171114.052" # prog="20171114.052"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment