Source code for noctua.templates.box

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# System modules

# Other templates
from ..devices import cam
from ..utils.logger import log
from .basetemplate import BaseTemplate
from .observation import Template as Observation


[docs] class Template(BaseTemplate): def __init__(self): super().__init__() self.name = "box" self.description = "Makes a boxed image around given coords"
[docs] def content(self, params): ######################## ##### Params check ##### ######################## try: objname = params.get("object") or "test" filt = params["filter"] binning = params["binning"] exptime = params["exptime"] center = params.get("center") or cam.center width = params.get("width") or 40 // binning # px height = params.get("height") or 40 // binning # ~12'' except KeyError as e: log.error(f"Parameter {e} not found") return fixed = {"repeat": 1, "frametype": "Light" } params.update(fixed) ######################## ##### Camera setup ##### ######################## centx, centy = center log.info(f"Windowing camera: center {center}, size {width}x{height}") cam.xrange = [centx - width // 2, centx + width // 2] cam.yrange = [centy - height // 2, centy + height // 2] log.info( f"Camera windows now: xrange {cam.xrange}, yrange {cam.yrange}") log.info(f"Which means start xy: {cam.xystart}, end xy: {cam.xyend}") ################################## ##### Calling Observation tpl #### ################################## # Adding Obs xy parameters, # otherwise it takes the full frame obs_params = { "xystart": cam.xystart, "xyend": cam.xyend } params.update(obs_params) obs = Observation() obs.run(params) return