Loading noche/config/daemon_config.ini +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] Loading noche/daemon.py +14 −3 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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. Loading @@ -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) Loading Loading @@ -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}") Loading @@ -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) Loading @@ -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() Loading Loading
noche/config/daemon_config.ini +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] Loading
noche/daemon.py +14 −3 Original line number Diff line number Diff line Loading @@ -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() Loading @@ -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. Loading @@ -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) Loading Loading @@ -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}") Loading @@ -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) Loading @@ -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() Loading