Source code for subsurface.reader.volume.read_volume

from subsurface.structs import UnstructuredData

from subsurface.reader.readers_data import ReaderFilesHelper
import pandas as pd


__all__ = ['read_volumetric_mesh_to_subsurface',
           'read_volumetric_mesh_coord_file',
           'read_volumetric_mesh_attr_file']


[docs]def read_volumetric_mesh_to_subsurface(reader_helper_coord: ReaderFilesHelper, reader_helper_attr: ReaderFilesHelper) -> UnstructuredData: df_coord = read_volumetric_mesh_coord_file(reader_helper_coord) df_attr = read_volumetric_mesh_attr_file(reader_helper_attr) combined_df = df_coord.merge(df_attr, left_index=True, right_index=True) ud = UnstructuredData.from_array( vertex=combined_df[['x', 'y', 'z']], cells="points", attributes=combined_df[['pres', 'temp', 'sg', 'xco2']] ) return ud
[docs]def read_volumetric_mesh_coord_file(reader_helper: ReaderFilesHelper) -> pd.DataFrame: df = pd.read_csv( filepath_or_buffer=reader_helper.file_or_buffer, **reader_helper.pandas_reader_kwargs) if reader_helper.columns_map is not None: df.rename(reader_helper.columns_map, axis="columns", inplace=True) df.dropna(axis=0, inplace=True) df.x = df.x.astype(float) df.y = df.y.astype(float) df.z = df.z.astype(float) return df
[docs]def read_volumetric_mesh_attr_file(reader_helper: ReaderFilesHelper) -> pd.DataFrame: df = pd.read_table(reader_helper.file_or_buffer, **reader_helper.pandas_reader_kwargs) df.columns = df.columns.str.strip() return df