Source code for galfitools.galin.getBoxSizeDs9

#!/usr/bin/env python3

import os.path
import sys

import numpy as np


[docs] def getBoxSizeDs9(RegFile: str) -> int: """obtains the corner coordinates of a DS9 region box Using the DS9 region box file, this method obtains the X-minimum, X-maximum, Y-minimum, and Y-maximum values for the H) option in the GALFIT header file. Parameters ---------- RegFile : str file containing the DS9 box region Returns ------- xmin : int xmax : int ymin : int ymax : int """ if not os.path.exists(RegFile): print("%s: reg filename does not exist!" % (sys.argv[1])) sys.exit(1) v0 = [] v1 = [] v2 = [] v3 = [] v4 = [] v5 = [] f1 = open(RegFile, "r") lines = f1.readlines() f1.close() flag = False # reading reg file for line in lines: line = line.split("#") line = line[0] b1 = line.split("(") p = line.split(",") x1 = p[0] if b1[0] == "box": x0 = "box" x2 = x1[4:] flag = True if flag is True: x3 = p[4] x4 = x3[:-2] v0.append(x0) v1.append(float(x2) - 1) v2.append(float(p[1]) - 1) v3.append(float(p[2])) v4.append(float(p[3])) v5.append(float(x4)) flag = False xpos = np.array(v1) ypos = np.array(v2) rx = np.array(v3) ry = np.array(v4) # converting for galfit header: xmin = xpos - rx / 2 xmax = xpos + rx / 2 ymin = ypos - ry / 2 ymax = ypos + ry / 2 # [0] if there are many, only the first one is take in account xmin = round(xmin[0]) xmax = round(xmax[0]) ymin = round(ymin[0]) ymax = round(ymax[0]) return xmin, xmax, ymin, ymax