tool from GG to make custom slpits for dual partialator runs
This commit is contained in:
54
reduction_tools/custom_spliting.py
Executable file
54
reduction_tools/custom_spliting.py
Executable file
@@ -0,0 +1,54 @@
|
||||
import argparse
|
||||
import re
|
||||
|
||||
def extract_data_from_chunks( input_file, output_file, name ):
|
||||
|
||||
print( "reading input file" )
|
||||
with open(input_file, 'r') as file:
|
||||
data = file.read()
|
||||
print( "done" )
|
||||
|
||||
print( "finding chunks" )
|
||||
chunks = re.findall(r'----- Begin chunk -----.*?----- End chunk -----', data, re.DOTALL)
|
||||
print( "done. {0} found".format( len( chunks ) ) )
|
||||
|
||||
print( "cycle through chunks" )
|
||||
with open(output_file, 'w') as out_file:
|
||||
for chunk in chunks:
|
||||
indexed_by_line = re.search(r'indexed_by = (.+)', chunk)
|
||||
if indexed_by_line:
|
||||
indexed_by_value = indexed_by_line.group(1).strip()
|
||||
if indexed_by_value != 'none':
|
||||
image_filename_match = re.search(r'Image filename: (.+\.h5)', chunk)
|
||||
event_match = re.search(r'Event: (//\d+)', chunk)
|
||||
# condition_match = re.search(r'run\d+-(?:aslov2rac1|aslov2-Rac1)_([\w\d]+_SOS)', chunk)
|
||||
|
||||
if image_filename_match and event_match:
|
||||
image_filename = image_filename_match.group(1)
|
||||
event_number = event_match.group(1)
|
||||
#condition = condition_match.group(1) # Extracts "100ns_0p8uJ_SOS" or "dark_SOS"
|
||||
|
||||
out_file.write(f"{image_filename} {event_number} {name}\n")
|
||||
print( "done" )
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Extract data from chunks in a text file.")
|
||||
parser.add_argument( "-i",
|
||||
"--input",
|
||||
help="Input file path",
|
||||
required=True
|
||||
)
|
||||
parser.add_argument( "-o",
|
||||
"--output",
|
||||
help="Output file path",
|
||||
required=True
|
||||
)
|
||||
parser.add_argument( "-n",
|
||||
"--name",
|
||||
help="name of dataset",
|
||||
required=True
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
extract_data_from_chunks( args.input, args.output, args.name )
|
||||
|
||||
Reference in New Issue
Block a user