Skip to content

bedrock_ge.gi.ags.transform

Transforms, i.e. maps, AGS data to Bedrock’s schema.

def ags3_db_to_no_gis_brgi_db(ags3_db: Dict[str, pd.DataFrame],
crs: CRS) -> Dict[str, pd.DataFrame]

Maps a database with GI data from a single AGS 3 file to a database with Bedrock’s schema.

This function converts an AGS 3 formatted geotechnical database into Bedrock’s internal database format, maintaining data relationships and structure. It handles various types of geotechnical data including project information, locations, samples, lab tests, and in-situ measurements.

The mapping process:

  1. Project Data: Converts AGS 3 ‘PROJ’ group to Bedrock’s ‘Project’ table
  2. Location Data: Converts AGS 3 ‘HOLE’ group to Bedrock’s ‘Location’ table
  3. Sample Data: Converts AGS 3 ‘SAMP’ group to Bedrock’s ‘Sample’ table
  4. Other Data: Handles lab tests, in-situ measurements, and miscellaneous tables

Arguments:

  • ags3_db Dict[str, pd.DataFrame] - A dictionary containing AGS 3 data tables, where keys are table names and values are pandas DataFrames.
  • crs CRS - Coordinate Reference System for the project data.

Returns:

Dict[str, pd.DataFrame]: A dictionary containing Bedrock GI database tables, where keys are table names and values are transformed pandas DataFrames.

Notes:

The function creates a copy of the input database to avoid modifying the original data. It performs foreign key checks to maintain data integrity during the mapping.

@pa.check_types(lazy=True)
def ags_proj_to_brgi_project(ags_proj: pd.DataFrame,
crs: CRS) -> DataFrame[Project]

Maps the AGS 3 ‘PROJ’ group to a Bedrock GI ‘Project’ table.

Arguments:

  • ags_proj pd.DataFrame - The AGS 3 ‘PROJ’ group.
  • crs CRS - The coordinate reference system of the project.

Returns:

  • DataFrame[Project] - The Bedrock GI ‘Project’ table.
@pa.check_types(lazy=True)
def ags3_hole_to_brgi_location(ags3_hole: DataFrame[Ags3HOLE],
project_uid: str) -> DataFrame[BaseLocation]
@pa.check_types(lazy=True)
def ags3_samp_to_brgi_sample(ags3_samp: DataFrame[Ags3SAMP],
project_uid: str) -> DataFrame[BaseSample]
@pa.check_types(lazy=True)
def ags3_in_situ_to_brgi_in_situ(group_name: str, ags3_in_situ: pd.DataFrame,
project_uid: str) -> DataFrame[BaseInSitu]

Maps AGS 3 in-situ measurement data to Bedrock’s in-situ data schema.

Arguments:

  • group_name str - The AGS 3 group name.
  • ags3_data pd.DataFrame - The AGS 3 data.
  • project_uid str - The project uid.

Returns:

  • DataFrame[BaseInSitu] - The Bedrock in-situ data.
@pa.check_types(lazy=True)
def generate_sample_ids_for_ags3(
ags3_with_samp: DataFrame[BaseSAMP]) -> DataFrame[Ags3SAMP]