def import_jv_data(folder, file_pattern='ch*.csv', by_scan=True, **kwargs): """ Imports JV data. :param folder: Folder path containing data files. :param file_pattern: File pattern of data files, in glob format. [Default: ch*.csv] :param by_scan: Breaks data into forward and reverse scans, and sets the index to voltage. [Default: True] :param kwargs: Arguments passed to standard_functions#import_data :returns: DataFrame containg imported data. """ jv = [] for file in std.get_files(folder, file_pattern): try: df = import_jv_datum_channel(file, channel_pattern='ch-<>', by_scan=by_scan) except ValueError as err: logging.warning('{}: {}'.format(file, err)) continue jv.append(df) jv = pd.concat(jv, axis=1) return jv
def import_data( folder_path, file_pattern = '*.sIV', metadata = None, interpolate = 'linear', fillna = 0 ): """ Imports data from Andor output files :param folder_path: The file path containing the data files :param file_pattern: A glob pattern to filter the imported files [Default: '*'] :param metadata: Metadata from the file name is turned into MultiIndex columns. + If list, use standard keywords to include in index [ 'sample', 'power', 'wavelength', 'time' ] + If Dictionary, keys indicate level name, value is pattern to match + Reseserved key 'standard' can be provided with a list value to get standard metadata :param interpolate: How to interpolate data for a common index [Default: linear] Use None to prevent reindexing :param fillna: Value to fill NaN values with [Default: 0] :returns: A Pandas DataFrame with MultiIndexed columns """ # get dataframes from files df = [] files = std.get_files( folder_path, file_pattern ) for file in files: data = import_datum( file ) # run local import datum function df.append( data ) if interpolate is not None: df = std.common_reindex( df, how = 'interpolate', fillna = fillna, add_values = [ 0 ] ) df = pd.concat( df, axis = 1 ) return df
def import_data( folder_path, file_pattern = '*.txt', metadata = None, time = False, cps = False, interpolate = 'linear', fillna = 0 ): """ Imports data from Andor output files :param folder_path: The file path containing the data files :param file_pattern: A glob pattern to filter the imported files [Default: '*'] :param metadata: Metadata from the file name is turned into MultiIndex columns. + If list, use standard keywords to include in index [ 'sample', 'power', 'wavelength', 'time', 'temperature' ] + If Dictionary, keys indicate level name, value is pattern to match + Reseserved key 'standard' can be provided with a list value to get standard metada :param time: Read the integration time in from the file as a header. [Default: False] :param cps: Converts the data to counts per second. A valid time string of the form XsX must be present. :param interpolate: How to interpolate data for a common index [Default: linear] Use None to prevent reindexing :param fillna: Value to fill NaN values with [Default: 0] :param reindex: Reindex the DataFrame using :returns: A Pandas DataFrame with MultiIndexed columns :raises: RuntimeError if no files are found """ # get dataframes from files df = [] files = std.get_files( folder_path, file_pattern ) if len( files ) == 0: # no files found raise RuntimeError( 'No files found matching {}'.format( os.path.join( folder_path, file_pattern ) ) ) for file in files: data = import_datum( file, metadata = metadata, cps = cps, time = time ) # run local import datum function df.append( data ) if interpolate is not None: df = std.common_reindex( df, how = interpolate, fillna = fillna ) df = pd.concat( df, axis = 1 ) return df
def import_data( folder_path, file_pattern = '*.csv', metadata = None, interpolate = 'linear', fillna = 0 ): """ Imports data from TimeSpec II experiments output files. :param folder_path: The file path containing the data files :param file_pattern: A glob pattern to filter the imported files [Default: '*'] :param metadata: Metadata from the file name is turned into MultiIndex columns. [Default: None] :param interpolate: How to interpolate data for a common index [Default: linear] Use None to prevent reindexing :param fillna: Value to fill NaN values with [Default: 0] :returns: A Pandas DataFrame with MultiIndexed columns :raises: RuntimeError if no files are found """ # get dataframes from files df = [] files = std.get_files( folder_path, file_pattern ) if len( files ) == 0: # no files found raise RuntimeError( 'No files found matching {}'.format( os.path.join( folder_path, file_pattern ) ) ) for file in files: data = import_datum( file, metadata = metadata ) # run local import datum function df.append( data ) if interpolate is not None: df = std.common_reindex( df, how = interpolate, fillna = fillna ) df = pd.concat( df, axis = 1 ).sort_index( axis = 1 ) return df