def trace_order_edge(data, start): ORDER_EDGE_SEARCH_WIDTH = 10 ORDER_EDGE_BG_WIDTH = 30 ORDER_EDGE_JUMP_THRESH = 1.9 ORDER_EDGE_JUMP_LIMIT = 200 trace, nJumps = tracer.trace_edge( data, start, ORDER_EDGE_SEARCH_WIDTH, ORDER_EDGE_BG_WIDTH, ORDER_EDGE_JUMP_THRESH) if trace is None: logger.warning('trace failed') return None # if slit_name.endswith('24'): # x = np.arange(len(trace)) # coeffs = np.polyfit(x, trace, 1) # y_fit = np.polyval(coeffs, x) # res1 = trace - y_fit # # stdev1 = np.std(res1) # # if abs(coeffs[0]) < 1e-2: # logger.warning('long slit edge criteria not met') # return None # else: # return trace if nJumps > ORDER_EDGE_JUMP_LIMIT: logger.debug('order edge trace jump limit exceeded') logger.debug('reducing search width to {:.1f}'.format(ORDER_EDGE_SEARCH_WIDTH / 2)) trace, nJumps = tracer.trace_edge( data, start, ORDER_EDGE_SEARCH_WIDTH / 2, ORDER_EDGE_BG_WIDTH, ORDER_EDGE_JUMP_THRESH) if nJumps > ORDER_EDGE_JUMP_LIMIT: ORDER_EDGE_SEARCH_WIDTH = 3 logger.debug('order edge trace jump limit exceeded') logger.debug('reducing search width to {:.1f}'.format(ORDER_EDGE_SEARCH_WIDTH)) trace, nJumps = tracer.trace_edge( data, start, ORDER_EDGE_SEARCH_WIDTH, ORDER_EDGE_BG_WIDTH, ORDER_EDGE_JUMP_THRESH) if trace is None: logger.warning('trace failed') return None if nJumps > ORDER_EDGE_JUMP_LIMIT: logger.warning('order edge trace jump limit exceeded: n jumps=' + str(nJumps) + ' limit=' + str(ORDER_EDGE_JUMP_LIMIT)) if config.params['spatial_jump_override'] is True: logger.warning('spatial jump override enabled, edge not rejected') else: logger.info('edge rejected') return None return trace
def trace_order_edge(data, start): trace, nJumps = tracer.trace_edge( data, start, ORDER_EDGE_SEARCH_WIDTH, ORDER_EDGE_BG_WIDTH, ORDER_EDGE_JUMP_THRESH) if trace is None: logger.warning('trace failed') return None # if slit_name.endswith('24'): # x = np.arange(len(trace)) # coeffs = np.polyfit(x, trace, 1) # y_fit = np.polyval(coeffs, x) # res1 = trace - y_fit # # stdev1 = np.std(res1) # # if abs(coeffs[0]) < 1e-2: # logger.warning('long slit edge criteria not met') # return None # else: # return trace if nJumps > ORDER_EDGE_JUMP_LIMIT: logger.debug('order edge trace jump limit exceeded') logger.debug('reducing search width to {:.1f}'.format(ORDER_EDGE_SEARCH_WIDTH / 1.5)) trace, nJumps = tracer.trace_edge( data, start, ORDER_EDGE_SEARCH_WIDTH / 2, ORDER_EDGE_BG_WIDTH, ORDER_EDGE_JUMP_THRESH) if trace is None: logger.warning('trace failed') return None if nJumps > ORDER_EDGE_JUMP_LIMIT: logger.info('order edge trace jump limit exceeded: n jumps=' + str(nJumps) + ' limit=' + str(ORDER_EDGE_JUMP_LIMIT)) if config.params['spatial_jump_override'] is True: logger.warning('spatial jump override enabled, edge not rejected') else: logger.info('edge rejected') return None return trace
def trace_sky_line(data, start): trace, nJumps = tracer.trace_edge(data, start, SKY_LINE_SEARCH_WIDTH, SKY_LINE_BG_WIDTH, SKY_LINE_JUMP_THRESH) if trace is None: logger.warning('sky line trace failed') return None if nJumps > SKY_LINE_JUMP_LIMIT: logger.debug('sky line trace jump limit exceeded: n jumps=' + str(nJumps) + ' limit=' + str(SKY_LINE_JUMP_LIMIT)) return None return trace
def trace_sky_line(data, start): trace, nJumps = tracer.trace_edge( data, start, SKY_LINE_SEARCH_WIDTH, SKY_LINE_BG_WIDTH, SKY_LINE_JUMP_THRESH) if trace is None: logger.warning('sky line trace failed') return None if nJumps > SKY_LINE_JUMP_LIMIT: logger.debug('sky line trace jump limit exceeded: n jumps=' + str(nJumps) + ' limit=' + str(SKY_LINE_JUMP_LIMIT)) return None return trace