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.4.1.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.4.1-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

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

Hashes for groundmeas-1.4.1.tar.gz
Algorithm Hash digest
SHA256 ff453902278b82bff2ccbd8d794498a1df829c657da54527869a7bd3f3fbc8cb
MD5 8931f942e882b3cfefac1b56737caec2
BLAKE2b-256 9df8195cbdf55a730507d6bb41ac89bd47a2ddddeea38b0993778f53e1ab8186

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundmeas-1.4.1.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.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

Hashes for groundmeas-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c8ab39dc5301f33f75fed7b136fb912cdfc8d4a0dc3ac51a14908a87df951bc
MD5 cc5d3a11d91def102134311772f77a14
BLAKE2b-256 9b1b0e528578535c0706c0b72348b798b019d0b4c45ebe37abd2b3dbdb07c85a

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundmeas-1.4.1-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