def parse_arguments():
    '''
    Description:
        Parses arguments from the command line.
    '''

    version_number = Version.version_number()
    default_date_range = int(Config.get('default_date_range'))

    # Create a command line arugment parser
    description = ('Downloads LST auxillary inputs, then archives them for'
                   ' future use. Dates must be the in the format: "YYYYMMDD"')
    parser = ArgumentParser(description=description,
                            formatter_class=ArgumentDefaultsHelpFormatter)

    # ---- Add parameters ----
    parser.add_argument('--start-date',
                        action='store', dest='start_date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        default=(date.today() -
                                 timedelta(days=default_date_range)),
                        help='The start date of the date range of auxiliary'
                             ' data to download.')

    parser.add_argument('--end-date',
                        action='store', dest='end_date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        default=date.today(),
                        help='The end date of the date range of auxiliary'
                             ' data to download.')

    parser.add_argument('--date',
                        action='store', dest='date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        help='Sets both start and end date to this date.'
                             ' Overrides start-date and end-date arguments.')

    parser.add_argument('--report',
                        action='store_true', dest='report',
                        default=False,
                        help='Only report what will happen.')

    parser.add_argument('--verbose',
                        action='store_true', dest='verbose',
                        default=False,
                        help='Turn verbose logging on.')

    parser.add_argument('--debug',
                        action='store_true', dest='debug',
                        default=False,
                        help='Turn debug logging on.')

    parser.add_argument('--version',
                        action='version',
                        version='%(prog)s {0}'.format(version_number),
                        help='Displays the version of the software.')

    # Parse the command line parameters
    args = parser.parse_args()

    # Check if date was specified. If so then override start and end.
    if args.date is not None:
        args.start_date = args.date
        args.end_date = args.date

    return args
Esempio n. 2
0
def parse_commandline():
    '''
    Description:
        Provide the command line definition and parsing.  Make sure the date
        information is good.
    '''

    version_number = Version.version_number()

    # Create a command line arugment parser
    description = ('Downloads NARR data and extracts the required parameters'
                   ' for Land Surface Temperature processing.  The parameters'
                   ' are then archived for later use.  The NARR data is'
                   ' packaged into gzipped tar balls containing 1 to 4 days'
                   ' worth of data from the source site.  Because of that,'
                   ' all days contained in the package will always be'
                   ' processed.')
    parser = ArgumentParser(description=description)

    # ---- Add parameters ----
    parser.add_argument('--start-date',
                        action='store',
                        dest='start_date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        help=('The start date YYYYMMDD(inclusive)'
                              ' if specifying a range.'
                              '  Defaults to --end-date if not specified.'))

    parser.add_argument('--end-date',
                        action='store',
                        dest='end_date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        help=('The end date YYYYMMDD(inclusive)'
                              ' if specifying a range.'))

    parser.add_argument('--date',
                        action='store',
                        dest='date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        help='The date YYYYMMDD for a specific date.')

    parser.add_argument('--version',
                        action='version',
                        version='%(prog)s {0}'.format(version_number),
                        help='Displays the version of the software.')

    # Parse the command line parameters
    args = parser.parse_args()

    s_date = None
    e_date = None

    # Check if dates were given
    if args.date is not None:
        s_date = args.date
        e_date = args.date

    elif args.end_date is not None:
        e_date = args.end_date

        if args.start_date is not None:
            s_date = args.start_date

        else:
            s_date = e_date
    else:
        raise Exception('Must supply either --date or --end-date')

    if e_date < s_date:
        raise Exception('--end-date must be equal-to or after --start-date')

    # Start date must start on a day based on a 3day per file pattern
    day = (s_date.day - 1) / 3 * 3 + 1
    delta = timedelta(days=(day - s_date.day))
    s_date += delta

    return (s_date, e_date)
def parse_commandline():
    '''
    Description:
        Provide the command line definition and parsing.  Make sure the date
        information is good.
    '''

    version_number = Version.version_number()

    # Create a command line arugment parser
    description = ('Downloads NARR data and extracts the required parameters'
                   ' for Land Surface Temperature processing.  The parameters'
                   ' are then archived for later use.  The NARR data is'
                   ' packaged into gzipped tar balls containing 1 to 4 days'
                   ' worth of data from the source site.  Because of that,'
                   ' all days contained in the package will always be'
                   ' processed.')
    parser = ArgumentParser(description=description)

    # ---- Add parameters ----
    parser.add_argument('--start-date',
                        action='store', dest='start_date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        help=('The start date YYYYMMDD(inclusive)'
                              ' if specifying a range.'
                              '  Defaults to --end-date if not specified.'))

    parser.add_argument('--end-date',
                        action='store', dest='end_date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        help=('The end date YYYYMMDD(inclusive)'
                              ' if specifying a range.'))

    parser.add_argument('--date',
                        action='store', dest='date',
                        metavar='YYYYMMDD', type=input_date_validation,
                        required=False,
                        help='The date YYYYMMDD for a specific date.')

    parser.add_argument('--version',
                        action='version',
                        version='%(prog)s {0}'.format(version_number),
                        help='Displays the version of the software.')

    # Parse the command line parameters
    args = parser.parse_args()

    s_date = None
    e_date = None

    # Check if dates were given
    if args.date is not None:
        s_date = args.date
        e_date = args.date

    elif args.end_date is not None:
        e_date = args.end_date

        if args.start_date is not None:
            s_date = args.start_date

        else:
            s_date = e_date
    else:
        raise Exception('Must supply either --date or --end-date')

    if e_date < s_date:
        raise Exception('--end-date must be equal-to or after --start-date')

    # Start date must start on a day based on a 3day per file pattern
    day = (s_date.day - 1) / 3 * 3 + 1
    delta = timedelta(days=(day - s_date.day))
    s_date += delta

    return (s_date, e_date)
Esempio n. 4
0
def parse_arguments():
    '''
    Description:
        Parses arguments from the command line.
    '''

    version_number = Version.version_number()
    default_date_range = int(Config.get('default_date_range'))

    # Create a command line arugment parser
    description = ('Downloads LST auxillary inputs, then archives them for'
                   ' future use. Dates must be the in the format: "YYYYMMDD"')
    parser = ArgumentParser(description=description,
                            formatter_class=ArgumentDefaultsHelpFormatter)

    # ---- Add parameters ----
    parser.add_argument('--start-date',
                        action='store',
                        dest='start_date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        default=(date.today() -
                                 timedelta(days=default_date_range)),
                        help='The start date of the date range of auxiliary'
                        ' data to download.')

    parser.add_argument('--end-date',
                        action='store',
                        dest='end_date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        default=date.today(),
                        help='The end date of the date range of auxiliary'
                        ' data to download.')

    parser.add_argument('--date',
                        action='store',
                        dest='date',
                        metavar='YYYYMMDD',
                        type=input_date_validation,
                        required=False,
                        help='Sets both start and end date to this date.'
                        ' Overrides start-date and end-date arguments.')

    parser.add_argument('--report',
                        action='store_true',
                        dest='report',
                        default=False,
                        help='Only report what will happen.')

    parser.add_argument('--verbose',
                        action='store_true',
                        dest='verbose',
                        default=False,
                        help='Turn verbose logging on.')

    parser.add_argument('--debug',
                        action='store_true',
                        dest='debug',
                        default=False,
                        help='Turn debug logging on.')

    parser.add_argument('--version',
                        action='version',
                        version='%(prog)s {0}'.format(version_number),
                        help='Displays the version of the software.')

    # Parse the command line parameters
    args = parser.parse_args()

    # Check if date was specified. If so then override start and end.
    if args.date is not None:
        args.start_date = args.date
        args.end_date = args.date

    return args