def __init__(self, roof: Union[str, IRoof] = None, telescope: Union[str, ITelescope] = None, acquisition: Union[str, IAcquisition] = None, autofocus: Union[str, IAutoFocus] = None, count: int = 5, step: float = 0.1, exptime: int = 2000, *args, **kwargs): """Initialize a new LCO auto focus script. Args: roof: Roof to use telescope: Telescope to use acquisition: Acquisition to use autofocus: Autofocus to use """ Script.__init__(self, *args, **kwargs) # store self.roof = roof self.telescope = telescope self.acquisition = acquisition self.autofocus = autofocus self._count = count self._step = step self._exptime = exptime # get image type self.image_type = ImageType.OBJECT if self.configuration['type'] == 'BIAS': self.image_type = ImageType.BIAS elif self.configuration['type'] == 'DARK': self.image_type = ImageType.DARK
def __init__(self, camera: Union[str, ICamera], roof: Union[str, IRoof] = None, telescope: Union[str, ITelescope] = None, filters: Union[str, IFilters] = None, autoguider: Union[str, IAutoGuiding] = None, acquisition: Union[str, IAcquisition] = None, *args, **kwargs): """Initialize a new LCO default script. Args: roof: Roof to use telescope: Telescope to use camera: Camera to use filters: Filter wheel to use autoguider: Autoguider to use acquisition: Acquisition to use """ Script.__init__(self, *args, **kwargs) # store self.roof = roof self.telescope = telescope self.camera = camera self.filters = filters self.autoguider = autoguider self.acquisition = acquisition # get image type self.image_type = ImageType.OBJECT if self.configuration['type'] == 'BIAS': self.image_type = ImageType.BIAS elif self.configuration['type'] == 'DARK': self.image_type = ImageType.DARK
def __init__( self, roof: typing.Union[str, IRoof], telescope: typing.Union[str, ITelescope], flatfield: typing.Union[str, IFlatField], functions: dict, priorities: typing.Union[dict, SkyflatPriorities], min_exptime: float = 0.5, max_exptime: float = 5, timespan: float = 7200, filter_change: float = 30, count: int = 20, readout: dict = None, *args, **kwargs, ): """Init a new SkyFlats script. Args: roof: Roof to use telescope: Telescope to use flatfield: FlatFielder to use functions: Dict with solalt-exptime functions for all filters/binning priorities: SkyflatPriorities object that returns priorities min_exptime: Minimum exposure time for flats max_exptime: Maximum exposure time for flats timespan: Timespan from now that should be scheduled [s] filter_change: Time required for filter change [s] count: Number of flats to schedule readout: Dictionary with readout times (in sec) per binning (as BxB). """ Script.__init__(self, *args, **kwargs) # store modules self._roof = roof self._telescope = telescope self._flatfield = flatfield # stuff self._count = count # get archive and priorities priorities = get_object(priorities, SkyflatPriorities) # create scheduler self._scheduler = Scheduler( functions, priorities, self.observer, min_exptime=min_exptime, max_exptime=max_exptime, timespan=timespan, filter_change=filter_change, count=count, readout=readout, )
def __init__(self, scripts: Dict[str, Script], **kwargs: Any): """Initialize a new LCO auto focus script. Args: scripts: External scripts to run """ Script.__init__(self, **kwargs) # store self.scripts = scripts
def __init__( self, roof: Optional[Union[str, IRoof]] = None, telescope: Optional[Union[str, ITelescope]] = None, acquisition: Optional[Union[str, IAcquisition]] = None, autofocus: Optional[Union[str, IAutoFocus]] = None, count: int = 5, step: float = 0.1, exptime: float = 2.0, **kwargs: Any, ): """Initialize a new LCO auto focus script. Args: roof: Roof to use telescope: Telescope to use acquisition: Acquisition to use autofocus: Autofocus to use """ Script.__init__(self, **kwargs) # store self.roof = roof self.telescope = telescope self.acquisition = acquisition self.autofocus = autofocus self._count = count self._step = step self._exptime = exptime # get image type self.image_type = ImageType.OBJECT if self.configuration["type"] == "BIAS": self.image_type = ImageType.BIAS elif self.configuration["type"] == "DARK": self.image_type = ImageType.DARK
def _run_script(self, abort_event, script: Script) -> Union[ConfigStatus, None]: """Run a config Args: abort_event: Event for signaling abort script: Script to run Returns: Configuration status to send to portal """ # at least we tried... config_status = ConfigStatus() try: # check first self._check_abort(abort_event) # run it log.info('Running task %d: %s...', self.id, self.config['name']) script.run(abort_event) # finished config config_status.finish(state='COMPLETED', time_completed=script.exptime_done) except InterruptedError: log.warning('Task execution was interrupted.') config_status.finish(state='FAILED', reason='Task execution was interrupted.', time_completed=script.exptime_done) except Exception: log.exception('Something went wrong.') config_status.finish(state='FAILED', reason='Something went wrong', time_completed=script.exptime_done) # finished return config_status