Source code for mirar.pipelines.sedmv2.sedmv2_pipeline

"""
Module to run the SEDMv2 data reduction pipeline
"""
import logging
import os
from pathlib import Path

from mirar.data import Image
from mirar.downloader.caltech import download_via_ssh
from mirar.io import open_mef_image
from mirar.pipelines.base_pipeline import Pipeline
from mirar.pipelines.sedmv2.blocks import (
    detrend_only,
    image_photometry,
    load_raw,
    process_all,
    process_stellar,
    process_transient,
    transient_phot,
    transient_phot_psfexsex,
    upload_fritz,
)
from mirar.pipelines.sedmv2.config import PIPELINE_NAME, sedmv2_cal_requirements
from mirar.pipelines.sedmv2.load_sedmv2_image import load_raw_sedmv2_mef

sedmv2_flats_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)))

logger = logging.getLogger(__name__)


[docs] class SEDMv2Pipeline(Pipeline): """ Class to run SEDMv2 data reduction pipeline """ name = PIPELINE_NAME non_linear_level = 30000 # no idea, for pylint default_cal_requirements = sedmv2_cal_requirements all_pipeline_configurations = { "default": load_raw + process_stellar, "default_stellar": load_raw + process_stellar + image_photometry, "default_transient": load_raw + process_transient, # +imsub, "realtime": load_raw + detrend_only, # +much more... "transient_upload": load_raw + process_transient + transient_phot + upload_fritz, "all_phot": load_raw + process_all, "transient_PSF": load_raw + process_transient + transient_phot_psfexsex, }
[docs] @staticmethod def download_raw_images_for_night(night: str | int): download_via_ssh( server="jagati.caltech.edu", base_dir="/data/viraj/winter_data/commissioning/raw/", night=night, pipeline=PIPELINE_NAME, )
@staticmethod # def _load_raw_image(path: str) -> tuple[np.ndarray, astropy.io.fits.header]: # return load_raw_sedmv2_image(path) def _load_raw_image(path: str | Path) -> Image | list[Image]: return open_mef_image(path, load_raw_sedmv2_mef)