Commit 1eaa1d28 authored by vertighel's avatar vertighel
Browse files

Added automatic name in the form RAW.telescop_keyword.time_stamp.fits

parent d4aa8973
Loading
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line


[Daemon]
monitor_directory = ./input_fits
output_directory = ./processed_fits
monitor_directory = ./input_fits    # Monitors new files (not existing ones)
output_directory = ./processed_fits # If same as monitor, overwrites!
observatory_config = oarpaf         # or path/to/your/config.ini
use_noctis_output_filename = False  # True/False. False use same as input
header_template = 

[Logging]
+14 −3
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ def load_daemon_config(config_file):
        daemon_settings['monitor_directory'] = config.get('Daemon', 'monitor_directory')
        daemon_settings['output_directory'] = config.get('Daemon', 'output_directory')
        daemon_settings['observatory_config'] = config.get('Daemon', 'observatory_config', fallback=None)
        daemon_settings['use_noctis_output_filename'] = config.getboolean('Daemon', 'use_noctis_output_filename', fallback=False)
        daemon_settings['header_template'] = config.get('Daemon', 'header_template', fallback=None)

        log_level_str = config.get('Logging', 'level', fallback='INFO').upper()
@@ -64,7 +65,7 @@ class FitsFileHandler(FileSystemEventHandler):
    Handles file system events for detecting and processing new FITS files.
    """

    def __init__(self, output_dir, observatory_config, header_template=None):
    def __init__(self, output_dir, observatory_config, header_template=None, auto_filename=None):
        """
        Initializes the FitsFileHandler.

@@ -82,6 +83,7 @@ class FitsFileHandler(FileSystemEventHandler):
        self.output_dir = Path(output_dir)
        self.observatory_config = observatory_config
        self.header_template = header_template
        self.auto_filename = auto_filename
        self.processed_files = set()

        self.output_dir.mkdir(parents=True, exist_ok=True)
@@ -137,8 +139,15 @@ class FitsFileHandler(FileSystemEventHandler):
            log.error(f"Failed to load observatory configuration: {e}")

        try:

            if self.auto_filename:
                log.info(f"AUTO filename in the form: RAW.telescop_key.time_stamp.fits")
                prefix = "RAW"
                tel = self.noche.header["TELESCOP"].replace(" ","_").upper()
                timestamp = self.noche.header["DATE-OBS"].replace(":","_")
                output_filename = self.output_dir / f"{prefix}.{tel}.{timestamp}.fits"
            else:
                output_filename = self.output_dir / f"processed_{input_fits_path.name}"

            log.info(f"Writing processed file to: {output_filename}")
            self.noche.write_noctis_fits(filename=str(output_filename), overwrite=True)
            log.info(f"Successfully processed and saved: {output_filename.name}")
@@ -161,6 +170,7 @@ def start_daemon(daemon_settings):
    output_dir = Path(daemon_settings['output_directory'])
    obs_config = daemon_settings['observatory_config']
    header_template = daemon_settings['header_template']
    auto_filename =  daemon_settings['use_noctis_output_filename']

    input_dir.mkdir(parents=True, exist_ok=True)

@@ -173,7 +183,8 @@ def start_daemon(daemon_settings):
    event_handler = FitsFileHandler(
        output_dir=str(output_dir),
        observatory_config=obs_config,
        header_template=header_template
        header_template=header_template,
        auto_filename=auto_filename
    )

    observer = Observer()