def read_data_list(filenames, variables, product=None, aliases=None): """ Read multiple data objects from a list of files. Files can be either gridded or ungridded but not a mix of both. :param filenames: The filenames of the files to read. This can be either a single filename as a string, a comma separated list, or a :class:`list` of string filenames. Filenames can include directories which will be expanded to include all files in that directory, or wildcards such as ``*`` or ``?``. :type filenames: string or list :param variables: One or more variables to read from the files :type variables: string or list :param str product: The name of the data reading plugin to use to read the data (e.g. ``Cloud_CCI``). :param aliases: List of aliases to put on each variable's data object as an alternative means of identifying them. :type aliases: string or list :return: A list of the data read out (either a :class:`GriddedDataList` or :class:`UngriddedDataList` depending on the type of data contained in the files) """ from cis.data_io.data_reader import DataReader, expand_filelist try: file_set = expand_filelist(filenames) except ValueError as e: raise IOError(e) if len(file_set) == 0: raise IOError("No files found which match: {}".format(filenames)) return DataReader().read_data_list(expand_filelist(filenames), variables, product, aliases)
def get_variables(filenames, product=None, type=None): """ Get a list of variables names from a list of files. Files can be either gridded or ungridded but not a mix of both. :param filenames: The filenames of the files to read. This can be either a single filename as a string, a comma separated list, or a :class:`list` of string filenames. Filenames can include directories which will be expanded to include all files in that directory, or wildcards such as ``*`` or ``?``. :type filenames: string or list :param str product: The name of the data reading plugin to use to read the data (e.g. ``Cloud_CCI``). :param str type: The type of HDF data to read, i.e. 'VD' or 'SD' :return: A list of the variables """ from cis.data_io.data_reader import expand_filelist from cis.data_io.products.AProduct import get_variables try: file_set = expand_filelist(filenames) except ValueError as e: raise IOError(e) if len(file_set) == 0: raise IOError("No files found which match: {}".format(filenames)) return get_variables(file_set, product=product, data_type=type)
def expand_file_list(filenames, parser): """ :param filenames: A string which is a comma seperated list of filenames, wildcarded filenames or directories :param parser: A reference parser for raising errors on :return: A flat list of files which exist - with no duplicate """ from cis.data_io.data_reader import expand_filelist if not filenames: parser.error("Please specify at least one filename") try: file_set = expand_filelist(filenames) except ValueError as e: parser.error(str(e)) # Check we matched at least one file if file_set: logging.info("Identified input file list: " + str(file_set)) else: parser.error("No files found which match: " + str(filenames)) return file_set
def read_data_list(filenames, variables, product=None, aliases=None): """ Read multiple data objects from a list of files. Files can be either gridded or ungridded but not a mix of both. :param filenames: The filenames of the files to read. This can be either a single filename as a string, a comma separated list, or a :class:`list` of string filenames. Filenames can include directories which will be expanded to include all files in that directory, or wildcards such as ``*`` or ``?``. :type filenames: string or list :param variables: One or more variables to read from the files :type variables: string or list :param str product: The name of the data reading plugin to use to read the data (e.g. ``Cloud_CCI``). :param aliases: List of aliases to put on each variable's data object as an alternative means of identifying them. :type aliases: string or list :return: A list of the data read out (either a :class:`GriddedDataList` or :class:`UngriddedDataList` depending on the type of data contained in the files) """ from cis.data_io.data_reader import DataReader, expand_filelist try: file_set = expand_filelist(filenames) except ValueError as e: raise IOError(e) if len(file_set) == 0: raise IOError("No files found which match: {}".format(filenames)) return DataReader().read_data_list(file_set, variables, product, aliases)