From 7e6bdcb47595c1547daa522abe39616493e59fb3 Mon Sep 17 00:00:00 2001 From: Sakimori Date: Thu, 31 Jul 2025 10:43:25 -0400 Subject: [PATCH] added support for directory parsing --- signalgen.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/signalgen.py b/signalgen.py index 322ddee..efe3d8a 100755 --- a/signalgen.py +++ b/signalgen.py @@ -1,7 +1,7 @@ #! /minish/keh00032/.conda/envs/keh00032/bin/python import logging -from os import path, chdir, getcwd, makedirs, remove +from os import path, chdir, getcwd, makedirs, remove, listdir from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser from typing import Union from datetime import datetime @@ -88,6 +88,15 @@ def processList(values): values.file = path.join(dir,dataname+".fil") addBurst(values) +def processDir(values, fileList): + """ + Entry point if values.file and values.listfile are None and values.fileDir is set. + Processes all .fil files in a directory. + """ + for filename in fileList: + values.file = filename + addBurst(values) + def randomDMandWidth(): """ Helper function that returns (DM, pulseWidth) tuple with bounds set at start of script. @@ -213,10 +222,14 @@ if __name__ == "__main__": parser.add_argument( "-p", "--plot", action="store_true", help="Just plot file and quit." ) + parser.add_argument( + "-D", "--directory", dest="fileDir", type=str, help="Directory containing filterbank files." + ) parser.set_defaults(dm=250.0) parser.set_defaults(nsamp=int(3e5)) parser.set_defaults(listfile=None) parser.set_defaults(file=None) + parser.set_defaults(fileDir=None) parser.set_defaults(plot=False) parser.set_defaults(rsamp=False) values = parser.parse_args() @@ -240,3 +253,7 @@ if __name__ == "__main__": elif values.listfile is not None: #list of files logging.info(f"Looking for directories in file {values.listfile}") processList(values) + elif values.fileDir is not None: #directory + filePaths = [f for f in listdir(values.fileDir) if f.endswith(".fil")] + logging.info(f"Found {len(filePaths)} files.") + processDir(values, filePaths)