Skip to main content

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.
  • 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

groundmeas-1.4.0.tar.gz (57.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

groundmeas-1.4.0-py3-none-any.whl (66.4 kB view details)

Uploaded Python 3

File details

Details for the file groundmeas-1.4.0.tar.gz.

File metadata

  • Download URL: groundmeas-1.4.0.tar.gz
  • Upload date:
  • Size: 57.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0

File hashes

Hashes for groundmeas-1.4.0.tar.gz
Algorithm Hash digest
SHA256 41e68efce81880963db9a55d6fa3bd3e61ef6d534de555b590a5b98f13018928
MD5 7c35082bc271111e9a2e99632163b0f5
BLAKE2b-256 3ba4732b09498ec3614bd1c63861912648cb8208d07fb00087cdea1645b3614d

See more details on using hashes here.

File details

Details for the file groundmeas-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: groundmeas-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 66.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0

File hashes

Hashes for groundmeas-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2758c7a69b8c3b5551e4a78ad1c7c42d838ae481743382a5eb62aa53e303d7cb
MD5 d080f06a77e031591688d7f41fd728f3
BLAKE2b-256 82dfa5df30e43e3b3a3a45b02e17938fa921fd57894eb0fe9c9ccd3a790a5b13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page