Changeset 25b14be in flex_extract.git for source/python
- Timestamp:
- Sep 23, 2018, 11:40:28 AM (6 years ago)
- Branches:
- master, ctbto, dev
- Children:
- 4971f63
- Parents:
- 5d42acd
- Location:
- source/python
- Files:
-
- 4 added
- 13 moved
Legend:
- Unmodified
- Added
- Removed
-
source/python/classes/ControlFile.py
r5d42acd r25b14be 143 143 self.ecstorage = 0 144 144 self.ectrans = 0 145 self.inputdir = '../work'145 self.inputdir = _config.PATH_INPUT_DIR 146 146 self.outputdir = self.inputdir 147 147 self.ecmwfdatadir = _config.PATH_FLEXEXTRACT_DIR … … 177 177 <nothing> 178 178 ''' 179 from tools import my_error179 from mods.tools import my_error 180 180 181 181 # read whole CONTROL file … … 331 331 <nothing> 332 332 ''' 333 from tools import my_error333 from mods.tools import my_error 334 334 import numpy as np 335 335 -
source/python/classes/EcFlexpart.py
r5d42acd r25b14be 61 61 # 62 62 # @Class Attributes: 63 # - dtime 64 # - basetime 65 # - server 66 # - marsclass 67 # - stream 68 # - resol 69 # - accuracy 70 # - number 71 # - expver 72 # - glevelist 73 # - area 74 # - grid 75 # - level 76 # - levelist 77 # - types 78 # - dates 79 # - area 80 # - gaussian 81 # - params 82 # - inputdir 83 # - outputfilelist 63 # 64 # TODO 84 65 # 85 66 #******************************************************************************* 86 67 #pylint: disable=unsupported-assignment-operation 87 # this is disabled because its an error in pylint for this specific case68 # this is disabled because for this specific case its an error in pylint 88 69 #pylint: disable=consider-using-enumerate 89 70 # this is not useful in this case … … 104 85 import _config 105 86 from GribTools import GribTools 106 from tools import init128, to_param_id, silent_remove, product, my_error87 from mods.tools import init128, to_param_id, silent_remove, product, my_error 107 88 from MarsRetrieval import MarsRetrieval 108 import disaggregation89 import mods.disaggregation 109 90 110 91 # ------------------------------------------------------------------------------ … … 471 452 MR.data_retrieve() 472 453 elif request == 1: 473 MR.print_info( )454 MR.print_info(self.inputdir) 474 455 elif request == 2: 475 MR.print_info( )456 MR.print_info(self.inputdir) 476 457 MR.display_info() 477 458 MR.data_retrieve() -
source/python/classes/MarsRetrieval.py
r2fb99de r25b14be 335 335 336 336 337 def print_info(self ):337 def print_info(self, inputdir): 338 338 ''' 339 339 @Description: … … 345 345 For description see class documentation. 346 346 347 inputdir: string 348 The path where all data from the retrievals are stored. 349 347 350 @Return: 348 351 <nothing> … … 352 355 353 356 # open a file to store all requests to 354 with open(os.path.join( _config.PATH_RUN_DIR,357 with open(os.path.join(inputdir, 355 358 _config.FILE_MARS_REQUESTS), 'a') as f: 356 359 f.write('mars\n') -
source/python/classes/UioFiles.py
r2fb99de r25b14be 52 52 # software specific module from flex_extract 53 53 #import profiling 54 from tools import silent_remove, get_list_as_string54 from mods.tools import silent_remove, get_list_as_string 55 55 56 56 # ------------------------------------------------------------------------------ … … 60 60 class UioFiles(object): 61 61 ''' 62 Class to manipulate files. At initialisation it has the attribute63 pattern which stores a regular expression pattern for the files associated64 with the instance of the class.62 Class to manipulate files. At initialisation it has the pattern 63 which stores a regular expression pattern for the files, the path 64 to the files and the files already. 65 65 ''' 66 66 # -------------------------------------------------------------------------- … … 88 88 self.path = path 89 89 self.pattern = pattern 90 self.files = None90 self.files = [] 91 91 92 92 self.__list_files__(self.path) … … 95 95 96 96 #@profiling.timefn 97 def __list_files__(self, path , callid=0):97 def __list_files__(self, path): 98 98 ''' 99 99 @Description: … … 108 108 Path to the files. 109 109 110 callid: integer111 Id which tells the function if its the first call112 or a recursive call. Default and first call is 0.113 Everything different from 0 is ment to be a recursive case.114 115 110 @Return: 116 111 <nothing> 117 112 ''' 118 119 # initialize variable in first function call120 if callid == 0:121 self.files = []122 123 113 # Get the absolute path 124 114 path = os.path.abspath(path) 125 115 126 # get the file list of the path if its not a directory and 127 # if it contains the pattern 128 self.files.extend([os.path.join(path, k) for k in os.listdir(path) 129 if fnmatch.fnmatch(k, self.pattern)]) 130 131 # find possible sub-directories in the path 132 subdirs = [s for s in os.listdir(path) 133 if os.path.isdir(os.path.join(path, s))] 134 135 # do recursive calls for sub-direcorties 136 if subdirs: 137 for subdir in subdirs: 138 self.__list_files__(os.path.join(path, subdir), callid=1) 116 # get all files in the dir and subdir as absolut path 117 for root, dirnames, filenames in os.walk(path): 118 for filename in fnmatch.filter(filenames, self.pattern): 119 self.files.append(os.path.join(root, filename)) 139 120 140 121 return -
source/python/install.py
r2fb99de r25b14be 58 58 # software specific classes and modules from flex_extract 59 59 import _config 60 from ControlFile import ControlFile61 from UioFiles import UioFiles62 from tools import make_dir, put_file_to_ecserver, submit_job_to_ecserver60 from classes.ControlFile import ControlFile 61 from classes.UioFiles import UioFiles 62 from mods.tools import make_dir, put_file_to_ecserver, submit_job_to_ecserver 63 63 64 64 # ------------------------------------------------------------------------------ … … 189 189 mk_env_vars(c.ecuid, c.ecgid, c.gateway, c.destination) 190 190 191 mk_tarball(tar_file )191 mk_tarball(tar_file, c.install_target) 192 192 193 193 put_file_to_ecserver(ecd, tarball_name, c.install_target, … … 195 195 196 196 submit_job_to_ecserver(c.install_target, 197 os.path.join(_config.PATH_REL ATIVE_JOBSCRIPTS,197 os.path.join(_config.PATH_REL_JOBSCRIPTS, 198 198 _config.FILE_INSTALL_COMPILEJOB)) 199 199 … … 214 214 c.flexpart_root_scripts)) 215 215 if os.path.abspath(ecd) != os.path.abspath(c.flexpart_root_scripts): 216 mk_tarball(tar_file )216 mk_tarball(tar_file, c.install_target) 217 217 make_dir(os.path.join(c.flexpart_root_scripts, 218 218 target_dirname)) … … 222 222 os.chdir(os.path.join(c.flexpart_root_scripts, 223 223 target_dirname, 224 _config.PATH_REL ATIVE_FORTRAN_SRC))224 _config.PATH_REL_FORTRAN_SRC)) 225 225 226 226 # Create Fortran executable - CONVERT2 … … 238 238 return 239 239 240 def mk_tarball(tarball_path ):240 def mk_tarball(tarball_path, target): 241 241 ''' 242 242 @Description: … … 253 253 relevant data for flex_extract. 254 254 255 target: string 256 The queue where the job is submitted to. 257 255 258 @Return: 256 259 <nothing> … … 267 270 268 271 # get lists of the files to be added to the tar file 269 ECMWF_ENV_FILE = [_config.PATH_RELATIVE_ECMWF_ENV] 272 if target == 'local': 273 ECMWF_ENV_FILE = [] 274 else: 275 ECMWF_ENV_FILE = [_config.PATH_REL_ECMWF_ENV] 276 270 277 pyfiles = [os.path.relpath(x, ecd) 271 for x in glob(_config.PATH_LOCAL_PYTHON + 272 os.path.sep + '*py')] 278 for x in UioFiles(_config.PATH_LOCAL_PYTHON, '*py').files] 273 279 controlfiles = [os.path.relpath(x, ecd) 274 for x in glob(_config.PATH_CONTROLFILES +275 os.path.sep + 'CONTROL*')]280 for x in UioFiles(_config.PATH_CONTROLFILES, 281 'CONTROL*').files] 276 282 tempfiles = [os.path.relpath(x, ecd) 277 for x in glob(_config.PATH_TEMPLATES + 278 os.path.sep + '*')] 283 for x in UioFiles(_config.PATH_TEMPLATES , '*').files] 279 284 ffiles = [os.path.relpath(x, ecd) 280 for x in glob(_config.PATH_FORTRAN_SRC + 281 os.path.sep + '*.f*')] 285 for x in UioFiles(_config.PATH_FORTRAN_SRC, '*.f*').files] 282 286 hfiles = [os.path.relpath(x, ecd) 283 for x in glob(_config.PATH_FORTRAN_SRC + 284 os.path.sep + '*.h')] 287 for x in UioFiles(_config.PATH_FORTRAN_SRC, '*.h').files] 285 288 makefiles = [os.path.relpath(x, ecd) 286 for x in glob(_config.PATH_FORTRAN_SRC + 287 os.path.sep + 'Makefile*')] 289 for x in UioFiles(_config.PATH_FORTRAN_SRC, 'Makefile*').files] 288 290 289 291 # concatenate single lists to one for a better looping … … 352 354 ''' 353 355 354 with open(_config.PATH_REL ATIVE_ECMWF_ENV, 'w') as fo:356 with open(_config.PATH_REL_ECMWF_ENV, 'w') as fo: 355 357 fo.write('ECUID ' + ecuid + '\n') 356 358 fo.write('ECGID ' + ecgid + '\n') … … 389 391 ''' 390 392 391 template = os.path.join(_config.PATH_REL ATIVE_TEMPLATES,393 template = os.path.join(_config.PATH_REL_TEMPLATES, 392 394 _config.TEMPFILE_INSTALL_COMPILEJOB) 393 395 with open(template) as f: 394 396 fdata = f.read().split('\n') 395 397 396 compilejob = os.path.join(_config.PATH_REL ATIVE_JOBSCRIPTS,398 compilejob = os.path.join(_config.PATH_REL_JOBSCRIPTS, 397 399 _config.FILE_INSTALL_COMPILEJOB) 398 400 with open(compilejob, 'w') as fo: … … 450 452 ''' 451 453 fp_root_path_to_python = os.path.join(fp_root, _config.FLEXEXTRACT_DIRNAME, 452 _config.PATH_REL ATIVE_PYTHON)453 454 template = os.path.join(_config.PATH_REL ATIVE_TEMPLATES,454 _config.PATH_REL_PYTHON) 455 456 template = os.path.join(_config.PATH_REL_TEMPLATES, 455 457 _config.TEMPFILE_INSTALL_JOB) 456 458 with open(template) as f: 457 459 fdata = f.read().split('\n') 458 460 459 jobfile_temp = os.path.join(_config.PATH_REL ATIVE_TEMPLATES,461 jobfile_temp = os.path.join(_config.PATH_REL_TEMPLATES, 460 462 _config.TEMPFILE_JOB) 461 463 with open(jobfile_temp, 'w') as fo: -
source/python/mods/get_mars_data.py
r2fb99de r25b14be 59 59 import _config 60 60 from tools import my_error, normal_exit, get_cmdline_arguments, read_ecenv 61 from EcFlexpart import EcFlexpart62 from UioFiles import UioFiles61 from classes.EcFlexpart import EcFlexpart 62 from classes.UioFiles import UioFiles 63 63 # ------------------------------------------------------------------------------ 64 64 # FUNCTION -
source/python/mods/plot_retrieved.py
r2fb99de r25b14be 53 53 54 54 # software specific classes and modules from flex_extract 55 from ControlFile import ControlFile 56 from UioFiles import UioFiles 57 58 # add path to pythonpath so that python finds its buddies 59 LOCAL_PYTHON_PATH = os.path.dirname(os.path.abspath( 60 inspect.getfile(inspect.currentframe()))) 61 if LOCAL_PYTHON_PATH not in sys.path: 62 sys.path.append(LOCAL_PYTHON_PATH) 55 import _config 56 from classes.ControlFile import ControlFile 57 from classes.UioFiles import UioFiles 63 58 64 59 font = {'family': 'monospace', 'size': 12} -
source/python/mods/prepare_flexpart.py
r2fb99de r25b14be 60 60 # software specific classes and modules from flex_extract 61 61 import _config 62 from UioFiles import UioFiles62 from classes.UioFiles import UioFiles 63 63 from tools import clean_up, get_cmdline_arguments, read_ecenv 64 from EcFlexpart import EcFlexpart64 from classes.EcFlexpart import EcFlexpart 65 65 66 66 ecapi = 'ecmwf' not in socket.gethostname() -
source/python/submit.py
r2fb99de r25b14be 51 51 # software specific classes and modules from flex_extract 52 52 import _config 53 from tools import normal_exit, get_cmdline_arguments, submit_job_to_ecserver, \54 read_ecenv55 from get_mars_data import get_mars_data56 from prepare_flexpart import prepare_flexpart57 from ControlFile import ControlFile53 from mods.tools import (normal_exit, get_cmdline_arguments, 54 submit_job_to_ecserver, read_ecenv) 55 from mods.get_mars_data import get_mars_data 56 from mods.prepare_flexpart import prepare_flexpart 57 from classes.ControlFile import ControlFile 58 58 59 59 # ------------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.