Commit 3c1676aa authored by Alice Donini's avatar Alice Donini
Browse files

Add script for analysis tree creation

parent 5e4e24a5
"""Create the directory structure for an analysis.
Change the default value for the Parent folder in the argparse
Parent_Folder
└──DL1
├── source
│ └── night
│ └── version
│ └── cleaning
DL2
├── source
│ └── night
│ └── version
│ └── cleaning
DL3
└── source
└── night
└── version
└── cleaning
"""
import os
import argparse
from argparse import RawTextHelpFormatter
def makedir(name):
"""
Create folder if non-existent and output OS error if any.
Parameters
----------
name : str
Name of the analysis.
"""
# Create target Directory if don't exist
if not os.path.exists(name):
os.makedirs(name)
print("Directory ", name, " Created ")
else:
print("Directory ", name, " already exists")
return None
def main():
# define command-line arguments
description = 'Create a directory structure'
parser = argparse.ArgumentParser(
description=description,
formatter_class=RawTextHelpFormatter
)
parser.add_argument(
'--main_dir', type=str, required=False, dest='main_dir',
default='/fefs/aswg/workspace/alice.donini/Analysis/data',
help='Path to parent folder'
)
parser.add_argument(
'--source', type=str, required=True, dest='source',
help='Source name'
)
parser.add_argument(
'--night', type=str, required=True, dest='night',
help='Night date'
)
parser.add_argument(
'--version', type=str, required=False, dest='version',
default='v0.9.2', help='lstchain version'
)
parser.add_argument(
'--cleaning', type=str, required=False, dest='cleaning',
default='tailcut84', help='Cleaning type'
)
args = parser.parse_args()
# Define analysis directories and subdirectories
data_dir = ['DL1', 'DL2', 'DL3']
structure = f'{args.source}/{args.night}/{args.version}/{args.cleaning}'
for folder in data_dir:
dirName = os.path.join(f'{args.main_dir}', str(folder), structure)
makedir(dirName)
print(f'Directory structure ready for analysis on {args.source}.')
if __name__ == "__main__":
main()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment