Source code for mirar.pipelines.summer.summer_pipeline

"""
Module to run the summer 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_raw_image
from mirar.pipelines.base_pipeline import Pipeline
from mirar.pipelines.summer.blocks import (
    build_log,
    cal_hunter,
    export_raw,
    imsub,
    load_processed,
    load_raw,
    load_test,
    load_test_proc,
    process_raw,
    sim_realtime,
    subtract,
    test_cr,
)
from mirar.pipelines.summer.config import PIPELINE_NAME, summer_cal_requirements
from mirar.pipelines.summer.load_summer_image import load_raw_summer_image

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

logger = logging.getLogger(__name__)


[docs] class SummerPipeline(Pipeline): """ Class to run summer data reduction pipeline """ name = PIPELINE_NAME default_cal_requirements = summer_cal_requirements all_pipeline_configurations = { "default": load_raw + build_log + export_raw + cal_hunter + process_raw, "test": load_test + export_raw + process_raw, "postprocess": build_log, "imsub": load_processed + imsub, "test_imsub": load_test_proc + subtract, "full": load_raw + build_log + export_raw + cal_hunter + process_raw + imsub, "realtime": export_raw + process_raw, "log": load_raw + build_log, "simrealtime": sim_realtime, "testlog": load_test + build_log, "crtest": load_raw + test_cr + build_log, "dbtest": load_raw + export_raw, }
[docs] @staticmethod def download_raw_images_for_night(night: str | int): download_via_ssh( server="winter.caltech.edu", base_dir="/data/loki/raw_data/summer", night=night, pipeline=PIPELINE_NAME, server_sub_dir="raw", )
@staticmethod def _load_raw_image(path: str | Path) -> Image | list[Image]: return load_raw_summer_image(path)