Skip to content
RJbalikian edited this page Jun 29, 2023 · 11 revisions

Wells 4 Hydrogeology (w4H) Wiki

All information about the functions, their parameters, and their purpose (including source code) is located in the API Documentation.

Quick Start Instructions:

Gather Files

First, collect the files you will need to process all the data

File Category Preferred Format Function used to read Description
Data* Well Data .csv or .txt pandas.read_csv()) File Containing the well data. Needs to include for each well interval at least the following: unique well identifier, top depth/elevation, bottom depth/elevation, geologic description
Metadata* Well Data .csv or .txt pandas.read_csv()) File containing well metadata. This should include unique well identifier (esp. if different file than Data), x-location of each well, y-location of each well
Surface Elevation† Boundaries .tif rioxarray.open_rasterio() File containing surface elevation data, either as only band or first band
Bedrock Elevation† Boundaries .tif rioxarray.open_rasterio() File containing bedrock elevation data, either as only band or second band if it is the same file as Surface Elevation
Model Grid (or grid params)† Boundaries .tif rioxarray.open_rasterio() File containing grid (empty or not) to which surface, bedrock, and output grids will be aligned), either as only band, or if the surface, bedrock, and model grid file are all the same, will default to bedrock grid (not yet implemented)
Lithology Definitions: Exact‡ Definitions .csv or .txt pandas.read_csv()) File containing definitions, with at minimum a column for input definition and one lithology definitions
Lithology Definitions: Starting‡ Definitions .csv or .txt pandas.read_csv()) File containing definitions, with at minimum a column for the starting substring of an input definition, and one for lithology definitions
Lithology Definitions: Wildcard‡ Definitions .csv or .txt pandas.read_csv()) File containing definitions, with at minimum a column for the wildcard substring of an input definition, and one for lithology definitions
Target Categories‡ Definitions .csv or .txt pandas.read_csv()) File containing target categorizations, with at minimum a column containing the lithology definitions and one for the target categorization (usually, semi-boolean: target (1), not target (0), and (optional) unknown (-1)
Optional Files:
Study area Boundaries {geospatial file} geopandas.read_file() Geospatial polygon file able to be read by geopandas delineating the area of interest. If not specified, will use the bounding box of the input well dataset

*, †, and ‡ indicate data that can be read in separately, or from the same file

Decide parameters

Using the w4h.run() function allows most of the steps to be automated. However, you will still need to input parameters. All parameters for all modules and functions are unique (some functions require the same input parameters as others, so the parameter names may overlap in that case). Because they are unique, you can input any parameter into the w4h.run() function, and it will be used in the proper function.

See the API Documentation for w4h.run() more information on possible parameters.

Call function

When you call the w4h.run() function, the workflow of how functions and their parameters are called is laid out in detail and in order here. An example is included below:

    w4h.run(well_data=dataDir,
            well_data_cols=None, 
            well_metadata=None, 
            well_metadata_cols=None, 
            layers=9,
            description_col='FORMATION', top_col='TOP', bottom_col='BOTTOM', depth_type='depth',
            study_area=studyAreaPath, xcol='LONGITUDE', ycol='LATITUDE', zcol='ELEVATION', idcol='API_NUMBER', output_crs='EPSG:4269',
            surf_elev_file=surfaceElevPath, bedrock_elev_file=bedrockElevPath, model_grid=modelGridPath,
            lith_dict=specDictPath, lith_dict_start=startDictPath, lith_dict_wildcard=None,
            target_dict=targetPath,
            export_dir=procDir,
            verbose=True,
            log=False,
            )

Note: in the w4h.run() function there are sometimes a few lines of code between functions, and there are several lines of code at the beginning to setup everything. See source code in the API Documentation for the w4h.run() function for more info.