Source code for galfitools.sky.GalfitSky

#!/usr/bin/env python3

import os
import os.path
import subprocess as sp

import numpy as np
from astropy.io import fits
from galfitools.galin.std import GetAxis
from galfitools.galin.MakeMask import ds9satbox
from galfitools.mge.mge2galfit import PrintHeader
from galfitools.mge.mge2galfit import PrintSky


[docs] def galfitSky(imgname, maskfile, mgzpt, scale, X, Y, sky) -> None: """Computes the sky using GALFIT It uses the FITS image and a mask to compute the to make an initial parameter file to compute sky background by GALFIT Parameters ---------- imgname : str name of the FITS image maskfile : str name of the mask image mgzpt: float magnitud zeropoint scale : float plate scale X, Y : float, float x,y position of center sky : float initial parameter of sky Notes ----- The function returns a GALFIT initial parameter file named sky.txt. The user must run GALFIT with this file to obtain the sky background """ flagpos = False (NCol, NRow) = GetAxis(imgname) convbox = 100 # sky=0.55 fit = 1 Z = 0 # scale = 0.0455 # arcsec/pixel ################################################### # Create GALFIT input file header to compute sky # ################################################### # imgname = "ngc4342.fits" root_ext = os.path.splitext(imgname) TNAM = root_ext[0] ################## ################# # Here we use an accurate four gaussians MGE PSF for # the HST/WFPC2/F814W filter, taken from Table 3 of # Cappellari et al. (2002, ApJ, 578, 787) # sigmapsf = [0.494, 1.44, 4.71, 13.4] # In PC1 pixels # normpsf = [0.294, 0.559, 0.0813, 0.0657] # total(normpsf)=1 parfile = "sky.txt" outname = TNAM rmsname = "none" psfname = "none" consfile = "none" T1 = "{}".format(imgname) T2 = outname + "-sky.fits" T3 = "{}".format(rmsname) if flagpos is False: # pragma: no cover xlo = 1 ylo = 1 (xhi, yhi) = GetAxis(imgname) plate = 1 fout1 = open(parfile, "w") PrintHeader( fout1, T1, T2, T3, psfname, 1, maskfile, consfile, xlo, xhi, ylo, yhi, convbox, convbox, mgzpt, plate, plate, "regular", 0, 0, ) index = 0 index += 1 PrintSky(fout1, index, sky, Z, fit) fout1.close() print("To compute sky run: galfit sky.txt")