def process_arguments(self, args):

        # Call method on super class
        # super(self.__class__, self).process_arguments(args)
        Tool.process_arguments(self, args)

        self.latitude = args.latitude
        self.longitude = args.longitude

        self.output_no_data = args.output_no_data

        self.dataset_type = args.dataset_type

        if args.bands == BandListType.ALL:
            self.bands = get_band_name_union(self.dataset_type, self.satellites)
        elif args.bands == BandListType.COMMON:
            self.bands = get_band_name_intersection(self.dataset_type, self.satellites)
        else:
            self.bands = []
            potential_bands = get_band_name_union(self.dataset_type, self.satellites)
            for band in args.bands:
                if band in potential_bands:
                    self.bands.append(band)

        self.delimiter = args.delimiter
        self.output_directory = args.output_directory
        self.overwrite = args.overwrite
    def log_arguments(self):

        # Call method on super class
        # super(self.__class__, self).log_arguments()
        Tool.log_arguments(self)

        _log.info(
            """
        longitude = {longitude:f}
        latitude = {latitude:f}
        datasets to retrieve = {dataset_type}
        bands to retrieve = {bands}
        output no data values = {output_no_data}
        output = {output}
        over write = {overwrite}
        delimiter = {delimiter}
        """.format(
                longitude=self.longitude,
                latitude=self.latitude,
                dataset_type=self.dataset_type.name,
                bands=self.bands,
                output_no_data=self.output_no_data,
                output=self.output_directory and self.output_directory or "STDOUT",
                overwrite=self.overwrite,
                delimiter=self.delimiter,
            )
        )
    def __init__(self, name):

        # Call method on super class
        # super(self.__class__, self).__init__(name)
        Tool.__init__(self, name)

        self.latitude = None
        self.longitude = None

        self.output_no_data = None

        self.dataset_type = None
        self.bands = None

        self.delimiter = None
        self.output_directory = None
        self.overwrite = None
    def setup_arguments(self):

        # Call method on super class
        # super(self.__class__, self).setup_arguments()
        Tool.setup_arguments(self)

        self.parser.add_argument("--lat", help="Latitude value of pixel", action="store", dest="latitude", type=float,
                                 required=True)
        self.parser.add_argument("--lon", help="Longitude value of pixel", action="store", dest="longitude", type=float,
                                 required=True)

        self.parser.add_argument("--hide-no-data", help="Don't output records that are completely no data value(s)",
                                 action="store_false", dest="output_no_data", default=True)

        self.parser.add_argument("--dataset-type", help="The type of dataset from which values will be retrieved",
                                 action="store",
                                 dest="dataset_type",
                                 type=dataset_type_arg,
                                 choices=self.get_supported_dataset_types(), default=DatasetType.ARG25, required=True,
                                 metavar=" ".join([s.name for s in self.get_supported_dataset_types()]))

        group = self.parser.add_mutually_exclusive_group()

        group.add_argument("--band", help="The band(s) to retrieve", action="store", dest="bands", type=str, nargs="+")

        group.add_argument("--bands-all", help="Retrieve all bands with NULL values where the band is N/A",
                           action="store_const", dest="bands", const=BandListType.ALL)

        group.add_argument("--bands-common", help="Retrieve only bands in common across all satellites",
                           action="store_const", dest="bands", const=BandListType.COMMON)

        self.parser.set_defaults(bands=BandListType.ALL)

        self.parser.add_argument("--delimiter", help="Field delimiter in output file", action="store", dest="delimiter",
                                 type=str, default=",")

        self.parser.add_argument("--output-directory", help="Output directory", action="store", dest="output_directory",
                                 type=writeable_dir)

        self.parser.add_argument("--overwrite", help="Over write existing output file", action="store_true",
                                 dest="overwrite", default=False)