Source code for clusex.lib.check

#! /usr/bin/env python

import numpy as np
from astropy.io import fits
from astropy.wcs import WCS
#from astropy.utils.data import get_pkg_data_filename

[docs] def CheckFlag(val,check): "Check for flag contained in $val, returns 1 if found " flag = False mod = 1 max=128 while (mod != 0): res = int(val/max) if (max == check and res == 1 ): flag=True mod = val % max val = mod max = max/2 return flag
[docs] def CheckSatReg2(x,y,filein): "Check if object is inside of saturated region. returns True if at least one pixel is inside" ## check if object is inside of ## saturaded region as indicated by ds9 box region ## returns True if object center is in saturaded region flag = False with open(filein) as f_in: lines = (line.rstrip() for line in f_in) # All lines including the blank ones lines = (line.split('#', 1)[0] for line in lines) # remove comments lines = (line.rstrip() for line in lines) # remove lines containing only comments lines = (line for line in lines if line) # Non-blank lines for line in lines: if (line != "image"): (box,info)=line.split('(') if(box == "box"): (xpos,ypos,xlong,ylong,trash)=info.split(',') xpos=float(xpos) ypos=float(ypos) xlong=float(xlong) ylong=float(ylong) xlo = xpos - xlong/2 xhi = xpos + xlong/2 ylo = ypos - ylong/2 yhi = ypos + ylong/2 if ( (x > xlo and x < xhi) and (y > ylo and y < yhi) ): flag=True break return flag
[docs] def CheckKron (xpos,ypos,x,y,R,theta,q): "check if position is inside of the Kron Ellipse saturaded region returns True if object center is in Ellipse region" bim = q * R theta = theta * np.pi /180 ## Rads!!! flag =False dx = xpos - x dy = ypos - y landa = np.arctan2( dy,dx ) if landa < 0: landa=landa + 2 * np.pi landa = landa - theta angle = np.arctan2(np.sin(landa)/bim, np.cos(landa)/R) xell = x + R * np.cos(angle)* np.cos(theta) - bim * np.sin(angle) * np.sin(theta) yell = y + R * np.cos(angle)* np.sin(theta) + bim * np.sin(angle) * np.cos(theta) dell = np.sqrt ( (xell - x)**2 + (yell - y)**2 ) dist = np.sqrt ( dx**2 + dy**2 ) if dist < dell: flag=True return flag
[docs] def GetAxis(Image): # k Check "Get number of rows and columns from the image" hdu = fits.open(Image) ncol = hdu[0].header["NAXIS1"] nrow = hdu[0].header["NAXIS2"] hdu.close() return ncol, nrow
[docs] def GetWCS(Image): # k Check "Get World Cordinate System info" hdu = fits.open(Image)[0] wcs = WCS(hdu.header) return wcs
[docs] def GetCounts(Image): # k Check "Get Counts from Image" hdu = fits.open(Image)[0] counts = hdu.data.ravel() return counts