From eeca580bba7c66320b5a4f8c26a236b7446f19c7 Mon Sep 17 00:00:00 2001 From: Holger Niemann <holger.niemann@ipp.mpg.de> Date: Tue, 9 Apr 2019 14:48:42 +0200 Subject: [PATCH] Update 3.2.2: small bugfixes to catch timeouts, needed for the auto scripts --- downloadversionIRdata.py | 92 +++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 25 deletions(-) diff --git a/downloadversionIRdata.py b/downloadversionIRdata.py index e4a99ce..f0e9d9f 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.1 +Version: 3.2.2 (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 """ @@ -76,6 +76,8 @@ def get_latest_version(stream,project="W7X",Test=False,t_from=None,t_to=None,pro except urllib.error.HTTPError as ex: msg = ex.read() raise RuntimeError(msg) + except Exception as E: + raise RuntimeError(E) else: response.close() # detect unversioned or non-existing stream @@ -116,34 +118,16 @@ def read_program(timestamp_start,timestamp_end=0,tol=60): print('read_program: Error opening URL') print(e) return False,0 + except Exception as e: + print('read_program: Error opening URL',e) + return False,0 else: prog_string=prog_raw.decode(encoding='UTF-8') prog_list = json.loads(prog_string) pl=prog_list['programs'][0] return True, pl -def read_restdb_old(request_url): - """ - Reads JSON data from W7-X REST API - Returns: - valid: access ok - t: numpy-array of time - signal: numpy-array of requested signals - by H. Thomsen - """ - try: - res = urllib.request.urlopen(request_url) - except urllib.error.URLError as e: - print('read_restdb_old: Error ', e) - return False, 0, -1 - else: - signal_raw=res.read() - res.close() - signal_string=signal_raw.decode(encoding='UTF-8') - signal_list = json.loads(signal_string) - signal0=np.array(signal_list['values']) - t=np.array(signal_list['dimensions']) - return True, t, signal0 + def download_LUT(port,time,exposure=0,emissivity=0,camera_filter=0,version=0, verbose=0): """ @@ -239,6 +223,9 @@ def download_NUC_by_times(port,starttime,stoptime,exposure,version=0): except urllib.error.URLError as e: print('download_NUC_by_times: Error! ', e) goon=False + except Exception as e: + print('download_NUC_by_times: Error! ', e) + goon=False if goon: n=0 nuctimes=[0] @@ -450,6 +437,9 @@ def download_hot_cold_reference_by_times(port,exposure,starttime=150390720000000 except urllib.error.URLError as e: print('download_hot_cold_reference_by_times: Error! ',e) goon=False + except Exception as e: + print('download_hot_cold_reference_by_times: Error! ',e) + goon=False if goon: COLDtime=0 HOTtime=0 @@ -509,6 +499,9 @@ def download_background_by_times(port,starttime,stoptime,exposure,camera_filter= except urllib.error.URLError as e: print('download_background_by_times: Error! ',e) goon=False + except Exception as e: + print('download_background_by_times: Error! ',e) + goon=False if goon: n=0 backtimes=[0] @@ -630,6 +623,8 @@ def download_images_by_times(larchivepath,starttime,stoptime,version=0,intervalS success=True except urllib.error.URLError as e: print('download_images_by_times: Error in sub-interval {0}! {1}'.format(i,e)) + except Exception as e: + print('download_images_by_times: Error in sub-interval {0}! {1}'.format(i,e)) return success,time,allimages else: try: @@ -646,6 +641,9 @@ def download_images_by_times(larchivepath,starttime,stoptime,version=0,intervalS except urllib.error.URLError as e: print('download_images_by_times: Error! ',e) return False, 0,-1 + except Exception as e: + print('download_images_by_times: Error! ',e) + return False, 0,-1 if fastDL: def download_raw_images_by_program_via_png(port,program,time_window=0,version=0,threads=1,verbose=0): @@ -1113,6 +1111,9 @@ def download_last_raw_image_by_time(larchivepath,starttime,stoptime,version=0): except urllib.error.URLError as e: print('download_last_raw_image_by_time: Error querrying {0}\n{1}'.format(url,e)) return False, [-1] + except Exception as e: + print('download_last_raw_image_by_time: Error querrying {0}\n{1}'.format(url,e)) + return False, [-1] def download_raw_parlog_by_program(port,program,version=0): """ @@ -1144,6 +1145,9 @@ def download_raw_parlog_by_times(port,starttime,stoptime,version=0): except urllib.error.URLError as e: print('download_raw_parlog_by_times: Error! ',e) goon=False + except Exception as E: + print('download_raw_parlog_by_times: Error! ',E) + goon=False if goon: return True, signal_list['dimensions'],signal_list['values'][0]['meta-data'] @@ -1178,6 +1182,9 @@ def get_INFRATEC_filter_by_times(starttime,stoptime,port=50,version=0): except urllib.error.URLError as e: print('get_INFRATEC_filter_by_times: Error! ',e) goon=False + except Exception as E: + print('get_INFRATEC_filter_by_times: Error! ',E) + goon=False if goon: return True, signal_list['dimensions'],signal_list['values'][0]['meta-data']['filter'] else: @@ -2714,6 +2721,9 @@ def download_heatflux_scene_model_reference(port,timepoint=None,program=None,ver except urllib.error.URLError as e: print('download_heatflux_scene_model_reference: Error! ',e,larchivepath_par+"/_signal.json?from="+str(timepoint)+"&upto="+str(timepoint)) goon=False + except Exception as E: + print('download_heatflux_scene_model_reference: Error! ',E) + goon=False if goon: timepoint=signal_list['values'][0] exist,time,frames=download_images_by_times(larchivepath,starttime=timepoint-10,stoptime=int(timepoint+1e8),version=version,verbose=verbose-1) @@ -3180,10 +3190,36 @@ def download_scene_model(port,program=None,timepoint=None,version=0,verbose=0): #%% general download functions """ -the following functions are copied from W7xrest.read_restdb to remove this dependency +the following functions are copied from W7xrest.read_restdb to remove this dependency and are edit to fit into the other functions @author: thomsen """ +def read_restdb_old(request_url): + """ + Reads JSON data from W7-X REST API + Returns: + valid: access ok + t: numpy-array of time + signal: numpy-array of requested signals + by H. Thomsen + """ + try: + res = urllib.request.urlopen(request_url) + except urllib.error.URLError as e: + print('read_restdb_old: Error ', e) + return False, 0, -1 + except Exception as e: + print('read_restdb_old: Error ', e) + return False, 0, -1 + else: + signal_raw=res.read() + res.close() + signal_string=signal_raw.decode(encoding='UTF-8') + signal_list = json.loads(signal_string) + signal0=np.array(signal_list['values']) + t=np.array(signal_list['dimensions']) + return True, t, signal0 + def read_restdb(request_url): """ Reads JSON data from W7-X REST API @@ -3207,6 +3243,9 @@ def read_restdb(request_url): #print('The server couldn\'t fulfill the request.') #print('Error code: ', e.code) return False, [0], [-1] + except Exception as E: + print('read_restdb: Error! ',E) + return False, [0], [-1] else: # res = urllib.request.urlopen(request_url) # signal_raw=res.read() @@ -3265,7 +3304,10 @@ def get_program_from_PID(instring): prog_list = json.loads(res.read().decode('utf-8')) res.close() except urllib.error.URLError as e: - print('get_program_from_PID: Error opening URL') + print('get_program_from_PID: Error opening URL',e) + return False,0 + except Exception as E: + print('get_program_from_PID: ERROR appeared',E) return False,0 else: pl=prog_list['programs'] -- GitLab