Skip to content

w4h.run() Conceptual Diagram

RJbalikian edited this page May 1, 2024 · 2 revisions

Introduction

The diagram below is intended to illustrate the relationships between the different types of data and how they interact with each other during the running of the w4h.run() function.

Conceptual Diagram

flowchart TD

    sampleGrid['Sample Grid Points']
    SAData['Study Area']


    subgraph w4h
        direction TB
        Lith
        rasterData
        SA
        WD
        MD
        WDM
    end

    subgraph outputs
        direction TB
        classifyData
        layers
        
        classifyData-->layers
    end

    subgraph SA['Study Area']
        direction TB
        SAInput[("Input\nread_study_area()")]---->SAData
        SAData-.->clipData
    end
    
    subgraph MG['Model Grid']
        direction TB
        MGIN[('Input')]---->MGReproj['Reproject as needed']
        MGReproj-.->clipData-.-> alignRasters['Coregister/Align Raster Data']
        MGReproj-.->alignRasters
    end

    subgraph SE['Surf. Elev.']
        direction TB
        SEIN[('Input')]---->SEReproj['Reproject as needed']
        SEReproj-.->clipData -.-> alignRasters
        SEReproj-.->alignRasters
    end


    subgraph clipData['Clip data']
        clipGrid['Clip Grid Data']
    end

    subgraph classifyData['Classify Data']
        exactDef['Define Exact Matches']
        startDef['Define by initial matches']
        wildcardDef["Define by 'wildcard' matches"]
        depthClassify["Define by depth"]
        fillUnclassified["Fill Unclassified (with np.nan)"]
        interpret["Interpret Classifications to lithologies"]

        exactDef -.->startDef
        exactDef -.->wildcardDef
        startDef -.->wildcardDef

        exactDef-.->depthClassify
        startDef-.->depthClassify
        wildcardDef-.->depthClassify

        depthClassify-->fillUnclassified
        fillUnclassified-->interpret
    end

    subgraph rasterData['Raster Data']
        direction TB
        SE
        BE
        MG['Model Grid']
        alignRasters
        getThick['Get Drift Thickness']
    end

    subgraph layers["Layer Calculations"]
        direction TB
        layerThick["Calculate Layer Thickness"]
        targetThick["Calculate Thickness of target material per layer"]
        targetInterpolate["Interpolate Thickness of target material at well points to layer rasters"]

        getThick --> layerThick

        layerThick -->targetThick
        targetThick-->targetInterpolate
    end

    subgraph export['Export']
        direction LR
        interpTargPerLayer[('Per layer data')]
        targetThickAtWells[('Per Well data')]
        surfElev[("Reprojected/Aligned Surface Elevation")]
        bedrockElev[("Reprojected/Aligned Bedrock Elevation")]

        targetInterpolate-->interpTargPerLayer
        targetInterpolate-->targetThickAtWells
        targetInterpolate-->surfElev
        targetInterpolate-->bedrockElev

    end

    subgraph BE['Bedrock Elev.']
        direction TB
        beIN[('Input')]---->beReproj['Reproject as needed']
        beReproj-.->clipData -.-> alignRasters
        beReproj-.->alignRasters
        alignRasters--"Surface Elev. - Bedrock Elev."--->getThick

    end
    
    subgraph MD['MetaData']
        direction TB
        MDIN[('Input')]-->MDDtypes['Define Datatypes']
    end

    subgraph WD['Well Data']
        direction TB
        WDIN[('Input')]-->WDDtypes['Define Datatypes']
    end
    WDDtypes-->MergeData['MergeData']
    MDDtypes-->MergeData['MergeData']
    
   
    subgraph WDM['Merged Data']
        direction TB
        MergeData-->ConvertGDF['Convert to GeoDataFrame']
        ConvertGDF -."clip_well_data()".->clipData-.->AddCtrlPts['Add Control Points']
        ConvertGDF --> AddCtrlPts
        AddCtrlPts --> CD

        subgraph CD['Clean Data]
            direction TB
            remDataNoCoords["Remove Data with no Coordinates"]
            remDataNoCoords-->remDataNoTopo["Remove Data without Topography"]
            remDataNoTopo-->remDataNoDepth["Remove Data without Depth Info."]
            remDataNoDepth-->remDataBadDepth["Remove Data with Bad Depth Info."]
            remDataBadDepth-->remDataNoGeo["Remove Data with no Geology Info."]
        end
        CD --> sampleGrid
    end

    subgraph Lith['Lithologies']
        direction TB
        lithIN[('Input')]-->DefineDTypes
    end

    rasterData-->classifyData
    WDM------>classifyData
    Lith-->classifyData
Loading
Clone this wiki locally