# cbuson/pih-ms architecture

> Architecture diagram of the GitHub repository cbuson/pih-ms, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cbuson/pih-ms
- Repository: https://github.com/cbuson/pih-ms

## Overview

PIH MS is a hydrogeological evidence-audit and investigation-planning product, not a groundwater-potential model. Its main workflow turns documented well evidence into per-question sufficiency, tests how those findings vary across map scales and origins, then classifies documentary investigation needs for the public-facing map. The graph emphasizes scientific stages and the documented interface; source excerpts are partial, so uncertain module wiring is omitted.

Main entry points: [`scripts/build_question_sufficiency_v24.py`](https://github.com/cbuson/pih-ms/blob/main/scripts/build_question_sufficiency_v24.py) (Question sufficiency), [`scripts/build_research_priority_v26.py`](https://github.com/cbuson/pih-ms/blob/main/scripts/build_research_priority_v26.py) (Question priority), [`scripts/build_documentation_ui_v251.py`](https://github.com/cbuson/pih-ms/blob/main/scripts/build_documentation_ui_v251.py) (Documentation interface), [`scripts/build_ui_support_v26.py`](https://github.com/cbuson/pih-ms/blob/main/scripts/build_ui_support_v26.py) (Map interface support)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_evidence["Evidence preparation"]
  node_evidence_layers["Evidence layers"]
  node_vertical_temporal["Vertical and temporal"]
  node_effective_knowledge["Effective knowledge"]
end

subgraph group_analysis["Spatial analysis"]
  node_grid_evidence["Grid evidence"]
  node_scientific_extension["Spatial extension"]
  node_sufficiency["Question sufficiency"]
  node_stability["Stability and sensitivity"]
end

subgraph group_priority["Investigation priority"]
  node_research_priority["Question priority"]
end

subgraph group_presentation["Public presentation"]
  node_project_statistics["Project statistics"]
  node_documentation_ui["Documentation interface"]
  node_ui_support["Map interface support"]
end

node_researcher(("Researcher"))
node_public_user(("Public map user"))

node_evidence_layers -->|"provides evidence"| node_effective_knowledge
node_grid_evidence -->|"extends grids"| node_scientific_extension
node_sufficiency -->|"compares states"| node_stability
node_sufficiency -->|"classifies deficits"| node_research_priority
node_research_priority -->|"publishes map layers"| node_ui_support
node_project_statistics -->|"supplies statistics"| node_documentation_ui
node_ui_support -->|"presents map"| node_public_user
node_documentation_ui -->|"presents documentation"| node_public_user
node_researcher -.->|"uses results"| node_public_user

click node_evidence_layers "https://github.com/cbuson/pih-ms/blob/main/scripts/build_evidence_layers_v1.py"
click node_vertical_temporal "https://github.com/cbuson/pih-ms/blob/main/scripts/build_vertical_temporal_v1.py"
click node_effective_knowledge "https://github.com/cbuson/pih-ms/blob/main/scripts/build_effective_knowledge_v1.py"
click node_grid_evidence "https://github.com/cbuson/pih-ms/blob/main/scripts/build_grid_evidence_v1.py"
click node_scientific_extension "https://github.com/cbuson/pih-ms/blob/main/scripts/build_scientific_extension_v23.py"
click node_sufficiency "https://github.com/cbuson/pih-ms/blob/main/scripts/build_question_sufficiency_v24.py"
click node_stability "https://github.com/cbuson/pih-ms/blob/main/scripts/build_stability_sensitivity_v25.py"
click node_research_priority "https://github.com/cbuson/pih-ms/blob/main/scripts/build_research_priority_v26.py"
click node_project_statistics "https://github.com/cbuson/pih-ms/blob/main/scripts/build_project_statistics_v271.py"
click node_documentation_ui "https://github.com/cbuson/pih-ms/blob/main/scripts/build_documentation_ui_v251.py"
click node_ui_support "https://github.com/cbuson/pih-ms/blob/main/scripts/build_ui_support_v26.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_evidence_layers,node_vertical_temporal,node_effective_knowledge,node_public_user toneBlue
class node_grid_evidence,node_scientific_extension,node_sufficiency,node_stability toneAmber
class node_research_priority toneMint
class node_project_statistics,node_documentation_ui,node_ui_support toneRose
class node_researcher toneIndigo
```

## Components

### Evidence preparation

- [Evidence layers](https://github.com/cbuson/pih-ms/blob/main/scripts/build_evidence_layers_v1.py): `scripts/build_evidence_layers_v1.py`
- [Vertical and temporal](https://github.com/cbuson/pih-ms/blob/main/scripts/build_vertical_temporal_v1.py): `scripts/build_vertical_temporal_v1.py`
- [Effective knowledge](https://github.com/cbuson/pih-ms/blob/main/scripts/build_effective_knowledge_v1.py): `scripts/build_effective_knowledge_v1.py`

### Spatial analysis

- [Grid evidence](https://github.com/cbuson/pih-ms/blob/main/scripts/build_grid_evidence_v1.py): `scripts/build_grid_evidence_v1.py`
- [Spatial extension](https://github.com/cbuson/pih-ms/blob/main/scripts/build_scientific_extension_v23.py): `scripts/build_scientific_extension_v23.py`
- [Question sufficiency](https://github.com/cbuson/pih-ms/blob/main/scripts/build_question_sufficiency_v24.py): `scripts/build_question_sufficiency_v24.py`
- [Stability and sensitivity](https://github.com/cbuson/pih-ms/blob/main/scripts/build_stability_sensitivity_v25.py): `scripts/build_stability_sensitivity_v25.py`

### Investigation priority

- [Question priority](https://github.com/cbuson/pih-ms/blob/main/scripts/build_research_priority_v26.py): `scripts/build_research_priority_v26.py`

### Public presentation

- [Project statistics](https://github.com/cbuson/pih-ms/blob/main/scripts/build_project_statistics_v271.py): `scripts/build_project_statistics_v271.py`
- [Documentation interface](https://github.com/cbuson/pih-ms/blob/main/scripts/build_documentation_ui_v251.py): `scripts/build_documentation_ui_v251.py`
- [Map interface support](https://github.com/cbuson/pih-ms/blob/main/scripts/build_ui_support_v26.py): `scripts/build_ui_support_v26.py`

### Other components

- **Researcher**
- **Public map user**

## Connections

- Evidence layers → Effective knowledge: provides evidence
- Grid evidence → Spatial extension: extends grids
- Question sufficiency → Stability and sensitivity: compares states
- Question sufficiency → Question priority: classifies deficits
- Question priority → Map interface support: publishes map layers
- Project statistics → Documentation interface: supplies statistics
- Map interface support → Public map user: presents map
- Documentation interface → Public map user: presents documentation
- Researcher → Public map user: uses results
