def process_data(self, stream, metadata):
index = np.arange(metadata["<STR_LIT>"], metadata["<STR_LIT>"] + <NUM_LIT:1>)<EOL>globe = stream.read_chunk("<STR_LIT:d>")<EOL>assert len(globe) == len(index)<EOL>regions = stream.read_chunk("<STR_LIT:d>")<EOL>num_regions = int(len(regions) / len(index))<EOL>regions = regions.reshape((-<NUM_LIT:1>, num_regions), order="<STR_LIT:F>")<EOL>data = np.concatenate((globe[:, np.newaxis], regions), axis=<NUM_LIT:1>)<EOL>df = pd.DataFrame(data, index=index)<EOL>if isinstance(df.index, pd.core.indexes.numeric.Float64Index):<EOL><INDENT>df.index = df.index.to_series().round(<NUM_LIT:3>)<EOL><DEDENT>df.index.name = "<STR_LIT:time>"<EOL>regions = [<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>]<EOL>variable = convert_magicc6_to_magicc7_variables(<EOL>self._get_variable_from_filepath()<EOL>)<EOL>variable = convert_magicc7_to_openscm_variables(variable)<EOL>column_headers = {<EOL>"<STR_LIT>": [variable] * (num_regions + <NUM_LIT:1>),<EOL>"<STR_LIT>": regions,<EOL>"<STR_LIT>": ["<STR_LIT>"] * len(regions),<EOL>"<STR_LIT>": ["<STR_LIT>"] * len(regions),<EOL>}<EOL>return df, metadata, self._set_column_defaults(column_headers)<EOL>
Extract the tabulated data from the input file

# Arguments
stream (Streamlike object): A Streamlike object (nominally StringIO)
    containing the table to be extracted
metadata (dict): metadata read in from the header and the namelist

# Returns
df (pandas.DataFrame): contains the data, processed to the standard
    MAGICCData format
metadata (dict): updated metadata based on the processing performed