Skip to content

Soheilj71/bedrock_mapping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bedrock Mapping

3-D bedrock depth mapping from HVSR and borehole data.

Bedrock Mapping is a PyQt5 desktop application (and library) for interpolating bedrock topography from Horizontal-to-Vertical Spectral Ratio (HVSR) measurements and geotechnical borehole logs. It is part of the HV Analyze Pro suite and is accessible via Tools → 3-D Bedrock Mapping in the main application.


Key Features

Category Capabilities
Data Input Load HVSR stations (frequency → depth) and borehole CSV files; drag-and-drop support
Interpolation IDW, Ordinary Kriging, RBF, Natural Neighbor — fully configurable
Map View Interactive Folium web-map with station/borehole markers and contour overlays
2-D View Cross-section and contour plots via matplotlib
3-D View Mesh visualisation with Plotly and PyVista; layer toggling and opacity control
Google Earth Export KML / KMZ output with per-layer contours, legends, and colour ramps
Other Exports CSV tables, PNG / SVG images, COLLADA 3-D meshes
Settings Global Settings dialog — units, colour maps, contour intervals, opacity per layer
Layer Panel Collapsible panel with per-layer visibility, legends, and settings

Screenshots


Installation

As part of HV Analyze Pro (recommended)

The package is already bundled inside the HV Analyze Pro application. No separate installation is needed.

Standalone (development)

# Clone the repository
git clone https://github.com/your-org/bedrock-mapping.git
cd bedrock-mapping

# Create a virtual environment and install
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # Linux / macOS

pip install -e ".[gui,dev]"

Dependencies

Package Purpose
numpy, scipy, pandas Numerical computing and data handling
matplotlib 2-D plotting
plotly Interactive 3-D visualisation
pyvista 3-D mesh rendering
folium Interactive web mapping
pykrige Kriging interpolation
pyproj Coordinate-system transforms
shapely Geometric boundary operations
Pillow Image processing
PyQt5 (optional) GUI framework

Quick Start

from bedrock_mapping import BedrockMappingWindow

# Launch as a standalone window
from PyQt5.QtWidgets import QApplication
import sys

app = QApplication(sys.argv)
window = BedrockMappingWindow()
window.show()
sys.exit(app.exec_())

Package Structure

bedrock_mapping/
├── __init__.py              # Package entry — exports BedrockMappingWindow
├── bedrock_window.py        # Main application window
├── state.py                 # Centralised application state
├── core/                    # Computation & data models
│   ├── interpolation.py     # IDW, Kriging, RBF, Natural Neighbor
│   ├── bedrock.py           # Depth-to-bedrock calculations
│   ├── boundaries.py        # Boundary detection
│   ├── visualization_2d.py  # 2-D cross-section helpers
│   ├── models/              # HVSRStation, Borehole, StationCollection
│   ├── io/                  # KML/KMZ readers & writers
│   └── visualization/       # 3-D mesh, COLLADA export, plotter
├── widgets/                 # PyQt5 UI components
│   ├── data_loader.py       # Data import widget
│   ├── map_widget.py        # Folium map integration
│   ├── view_2d.py           # Matplotlib 2-D view
│   ├── view_3d_*.py         # 3-D Plotly / matplotlib views
│   ├── layer_panel.py       # Collapsible layer visibility
│   ├── export_widget.py     # Export orchestrator
│   └── export_map_modules/  # Modular GE / CSV / image builders
└── utils/                   # Coordinate helpers, bridges

License

This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.

About

PyQt5 package for 3D bedrock depth mapping from HVSR and borehole data. Used as a submodule in HV_Pro.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages