"""Common filenames and locations for topographic data, meshes and outputs. Also includes origin for slump scenario. """ from os import sep, getenv, getcwd, mkdir, access, F_OK import sys from time import localtime, strftime from os.path import join from anuga.shallow_water.data_manager import copy_code_files from anuga.abstract_2d_finite_volumes.util import add_directories from anuga.utilities.system_tools import get_user_name class Project: def __init__(self, trunk=['data','flumes','Hinwood_2008'], outputdir_name = None, home = None): self.user = get_user_name() if home is None: try: home = getenv('INUNDATIONHOME') #Sandpit's parent dir except: home = '.' self.home = home # Create the structure of where the output directories will go scenariodir=add_directories(home, trunk) #Derive subdirectories and filenames if outputdir_name is None: #gets time for dir outputdir_name = strftime('%Y%m%d_%H%M%S',localtime()) general_outputdir = scenariodir+sep+'output'+sep self.outputdir = general_outputdir+outputdir_name+sep self.meshdir = scenariodir+sep+'meshes'+sep self.scenariodir = scenariodir+sep self.boundarydir = self.outputdir self.raw_data_dir = join(scenariodir, 'raw_data') self.plots_dir = join(scenariodir, 'plots') self.rmsd_dir = join(scenariodir, 'rmsd') # creates copy of output dir structure, if it doesn't exist if not access(self.meshdir,F_OK): mkdir (self.meshdir) if not access(general_outputdir,F_OK): mkdir (general_outputdir) if not access(self.outputdir,F_OK): mkdir (self.outputdir) if not access(self.plots_dir,F_OK): mkdir (self.plots_dir) if not access(self.rmsd_dir,F_OK): mkdir (self.rmsd_dir) self.codedir = getcwd()+sep #------------------------------------------------------------- if __name__ == "__main__": p = Project(['eagle'], 'lego','.') print p.outputdir print p.meshdir