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

groundmeas-1.5.0.tar.gz (60.0 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.5.0-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: groundmeas-1.5.0.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

Hashes for groundmeas-1.5.0.tar.gz
Algorithm Hash digest
SHA256 8813ca477275b75782342e4e2654577dd35eb1430847b13286b7cf63a8683d31
MD5 14766222e96b947decc154ec760c379b
BLAKE2b-256 c7807b32d035eee9e8920b71c6f4d04ee67dc08b6db2f085d3e399f0c3a13338

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundmeas-1.5.0.tar.gz:

Publisher: ci-cd.yml on Ce1ectric/groundmeas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: groundmeas-1.5.0-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

Hashes for groundmeas-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 005f3b5ba4911f797a9bcd37829e8038c85277fb754b8a3353ab5f56490a7847
MD5 ffb97467e508f03889e72260adea2b30
BLAKE2b-256 576cfe0ba8812a249ddfec262bb0a16f3a7d6122689e89cc2068b8a91f235eb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundmeas-1.5.0-py3-none-any.whl:

Publisher: ci-cd.yml on Ce1ectric/groundmeas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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