No project description provided
Project description
groundmeas: Grounding System Measurements and Analysis
Groundmeas is a Python toolkit for managing, analyzing, and visualizing grounding (earthing) measurements. It provides a SQLite data layer, a Python API, a CLI, a Streamlit dashboard, and physics-aware analytics for field work and reporting.
Documentation: https://ce1ectric.github.io/groundmeas/
Features
- Data management with SQLite and SQLModel.
- CLI workflows for creating, editing, importing, and exporting measurements.
- Streamlit dashboard with map selection and interactive plots. The map groups measurements by location, so sites with several campaigns show up as a single marker and all measurements at that site can be picked for analysis.
- Analytics for impedance profiles, touch voltages, split factors, and multilayer soil models.
- Distance-profile reduction with maximum, 62 percent, minimum gradient, minimum stddev, and inverse (1/Z) methods.
- Apparent resistivity simulation and 1-3 layer inversion for Wenner and Schlumberger surveys.
- Import and export to JSON, CSV, XML, plus OCR import from images.
Physical background
Earthing impedance relates Earth Potential Rise to injected current.
$$ Z_E(f) = \frac{V_{EPR}(f)}{I_E(f)} $$
The rho-f model links impedance to soil resistivity and frequency.
$$ Z(\rho, f) = k_1 \cdot \rho + (k_2 + j k_3) \cdot f + (k_4 + j k_5) \cdot \rho \cdot f $$
Inverse extrapolation for Fall-of-Potential uses:
$$ \frac{1}{Z} = a \cdot \frac{1}{d} + b $$
Installation
Prerequisites: Python 3.14+
Using Poetry (recommended)
git clone https://github.com/Ce1ectric/groundmeas.git
cd groundmeas
poetry install
poetry shell
Using pip
pip install groundmeas
Quick usage
CLI
# Create or connect to a database
# Default order: GROUNDMEAS_DB, ~/.config/groundmeas/config.json, ./groundmeas.db
gm-cli list-measurements
# Create a measurement and add items interactively
gm-cli add-measurement
gm-cli add-item MEAS_ID
# Run a distance-profile reduction
gm-cli distance-profile MEAS_ID --type earthing_impedance --algorithm minimum_gradient
# Soil survey: profile and inversion
gm-cli soil-profile SOIL_MEAS_ID --method wenner
gm-cli soil-inversion SOIL_MEAS_ID --layers 2 --method wenner
Python API
from groundmeas.db import connect_db, read_measurements_by
from groundmeas.analytics import impedance_over_frequency
connect_db("groundmeas.db")
measurements, _ = read_measurements_by()
for meas in measurements:
z_f = impedance_over_frequency(meas["id"])
print(meas["id"], z_f)
Project structure
groundmeas/
|-- src/groundmeas/
| |-- core/ # DB connection + models
| |-- services/ # Analytics, export, OCR import
| |-- visualization/ # Matplotlib, Plotly, map
| `-- ui/ # CLI and dashboard
|-- docs/ # MkDocs documentation
|-- tests/ # Pytest suite
`-- pyproject.toml
License
MIT License. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file groundmeas-1.4.1.tar.gz.
File metadata
- Download URL: groundmeas-1.4.1.tar.gz
- Upload date:
- Size: 60.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff453902278b82bff2ccbd8d794498a1df829c657da54527869a7bd3f3fbc8cb
|
|
| MD5 |
8931f942e882b3cfefac1b56737caec2
|
|
| BLAKE2b-256 |
9df8195cbdf55a730507d6bb41ac89bd47a2ddddeea38b0993778f53e1ab8186
|
Provenance
The following attestation bundles were made for groundmeas-1.4.1.tar.gz:
Publisher:
ci-cd.yml on Ce1ectric/groundmeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
groundmeas-1.4.1.tar.gz -
Subject digest:
ff453902278b82bff2ccbd8d794498a1df829c657da54527869a7bd3f3fbc8cb - Sigstore transparency entry: 1353779109
- Sigstore integration time:
-
Permalink:
Ce1ectric/groundmeas@46a98f1169777f42a64357f77a73a50b7366d54f -
Branch / Tag:
refs/tags/v1.4.1 - Owner: https://github.com/Ce1ectric
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@46a98f1169777f42a64357f77a73a50b7366d54f -
Trigger Event:
push
-
Statement type:
File details
Details for the file groundmeas-1.4.1-py3-none-any.whl.
File metadata
- Download URL: groundmeas-1.4.1-py3-none-any.whl
- Upload date:
- Size: 68.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c8ab39dc5301f33f75fed7b136fb912cdfc8d4a0dc3ac51a14908a87df951bc
|
|
| MD5 |
cc5d3a11d91def102134311772f77a14
|
|
| BLAKE2b-256 |
9b1b0e528578535c0706c0b72348b798b019d0b4c45ebe37abd2b3dbdb07c85a
|
Provenance
The following attestation bundles were made for groundmeas-1.4.1-py3-none-any.whl:
Publisher:
ci-cd.yml on Ce1ectric/groundmeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
groundmeas-1.4.1-py3-none-any.whl -
Subject digest:
0c8ab39dc5301f33f75fed7b136fb912cdfc8d4a0dc3ac51a14908a87df951bc - Sigstore transparency entry: 1353779223
- Sigstore integration time:
-
Permalink:
Ce1ectric/groundmeas@46a98f1169777f42a64357f77a73a50b7366d54f -
Branch / Tag:
refs/tags/v1.4.1 - Owner: https://github.com/Ce1ectric
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@46a98f1169777f42a64357f77a73a50b7366d54f -
Trigger Event:
push
-
Statement type: