Changeset ca867de in flex_extract.git for source/python/mods/tools.py


Ignore:
Timestamp:
Oct 5, 2018, 3:35:18 PM (6 years ago)
Author:
Anne Philipp <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
5bad6ec
Parents:
27fe969
Message:

refactored functions in EcFlexpart? and did some minor changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/python/mods/tools.py

    r27fe969 rca867de  
    6060# ------------------------------------------------------------------------------
    6161
     62def none_or_str(value):
     63    '''
     64    @Description:
     65        Converts the input string into pythons None-type if the string
     66        contains "None".
     67
     68    @Input:
     69        value: string
     70            String to be checked for the "None" word.
     71
     72    @Return:
     73        None or value:
     74            Return depends on the content of the input value. If it was "None",
     75            then the python type None is returned. Otherwise the string itself.
     76    '''
     77    if value == 'None':
     78        return None
     79    return value
     80
     81def none_or_int(value):
     82    '''
     83    @Description:
     84        Converts the input string into pythons None-type if the string
     85        contains "None". Otherwise it is converted to an integer value.
     86
     87    @Input:
     88        value: string
     89            String to be checked for the "None" word.
     90
     91    @Return:
     92        None or int(value):
     93            Return depends on the content of the input value. If it was "None",
     94            then the python type None is returned. Otherwise the string is
     95            converted into an integer value.
     96    '''
     97    if value == 'None':
     98        return None
     99    return int(value)
     100
    62101def get_cmdline_arguments():
    63102    '''
     
    79118
    80119    # the most important arguments
    81     parser.add_argument("--start_date", dest="start_date", default=None,
     120    parser.add_argument("--start_date", dest="start_date",
     121                        type=none_or_str, default=None,
    82122                        help="start date YYYYMMDD")
    83     parser.add_argument("--end_date", dest="end_date", default=None,
     123    parser.add_argument("--end_date", dest="end_date",
     124                        type=none_or_str, default=None,
    84125                        help="end_date YYYYMMDD")
    85     parser.add_argument("--date_chunk", dest="date_chunk", default=None,
     126    parser.add_argument("--date_chunk", dest="date_chunk",
     127                        type=none_or_int, default=None,
    86128                        help="# of days to be retrieved at once")
     129    parser.add_argument("--controlfile", dest="controlfile",
     130                        type=none_or_str, default='CONTROL.temp',
     131                        help="file with CONTROL parameters")
     132
     133    # parameter for extra output information
     134    parser.add_argument("--debug", dest="debug",
     135                        type=none_or_int, default=None,
     136                        help="debug mode - leave temporary files intact")
     137    parser.add_argument("--request", dest="request",
     138                        type=none_or_int, default=None,
     139                        help="list all mars request in file mars_requests.dat \
     140                        and skip submission to mars")
    87141
    88142    # some arguments that override the default in the CONTROL file
    89     parser.add_argument("--basetime", dest="basetime", default=None,
    90                         help="base such as 00/12 (for half day retrievals)")
    91     parser.add_argument("--step", dest="step", default=None,
     143    parser.add_argument("--basetime", dest="basetime",
     144                        type=none_or_int, default=None,
     145                        help="base such as 00 or 12 (for half day retrievals)")
     146    parser.add_argument("--step", dest="step",
     147                        type=none_or_str, default=None,
    92148                        help="steps such as 00/to/48")
    93     parser.add_argument("--levelist", dest="levelist", default=None,
     149    parser.add_argument("--levelist", dest="levelist",
     150                        type=none_or_str, default=None,
    94151                        help="Vertical levels to be retrieved, e.g. 30/to/60")
    95     parser.add_argument("--area", dest="area", default=None,
     152    parser.add_argument("--area", dest="area",
     153                        type=none_or_str, default=None,
    96154                        help="area defined as north/west/south/east")
    97155
    98156    # set the working directories
    99     parser.add_argument("--inputdir", dest="inputdir", default=None,
     157    parser.add_argument("--inputdir", dest="inputdir",
     158                        type=none_or_str, default=None,
    100159                        help="root directory for storing intermediate files")
    101     parser.add_argument("--outputdir", dest="outputdir", default=None,
     160    parser.add_argument("--outputdir", dest="outputdir",
     161                        type=none_or_str, default=None,
    102162                        help="root directory for storing output files")
    103163    parser.add_argument("--flexpart_root_scripts", dest="flexpart_root_scripts",
    104                         default=None,
     164                        type=none_or_str, default=None,
    105165                        help="FLEXPART root directory (to find grib2flexpart \
    106166                        and COMMAND file)\n Normally flex_extract resides in \
     
    108168
    109169    # this is only used by prepare_flexpart.py to rerun a postprocessing step
    110     parser.add_argument("--ppid", dest="ppid", default=None,
     170    parser.add_argument("--ppid", dest="ppid",
     171                        type=none_or_int, default=None,
    111172                        help="specify parent process id for \
    112173                        rerun of prepare_flexpart")
     
    114175    # arguments for job submission to ECMWF, only needed by submit.py
    115176    parser.add_argument("--job_template", dest='job_template',
    116                         default="job.temp",
     177                        type=none_or_str, default="job.temp",
    117178                        help="job template file for submission to ECMWF")
    118     parser.add_argument("--queue", dest="queue", default=None,
     179    parser.add_argument("--queue", dest="queue",
     180                        type=none_or_str, default=None,
    119181                        help="queue for submission to ECMWF \
    120182                        (e.g. ecgate or cca )")
    121     parser.add_argument("--controlfile", dest="controlfile",
    122                         default='CONTROL.temp',
    123                         help="file with CONTROL parameters")
    124     parser.add_argument("--debug", dest="debug", default=None,
    125                         help="debug mode - leave temporary files intact")
    126     parser.add_argument("--request", dest="request", default=None,
    127                         help="list all mars request in file mars_requests.dat \
    128                         and skip submission to mars")
    129183
    130184    args = parser.parse_args()
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG