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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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