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

Uploaded Python 3

File details

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

File metadata

  • Download URL: groundmeas-1.5.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.5.1.tar.gz
Algorithm Hash digest
SHA256 8a1c4de03cfd357f4a455aee837c6bddaa1884b512a88fbd062cd58a0a313709
MD5 ccfc330aa8b12ca03173d7d1cf2906b6
BLAKE2b-256 9d443962cefda984b605ac7b3eb9a71efc3314972bf71b33725edc4e5591a37e

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundmeas-1.5.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.5.1-py3-none-any.whl.

File metadata

  • Download URL: groundmeas-1.5.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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5d04861ad78a56ff5b2df521fcd1d1cb9cada8feb5927a3f5e045ff3b1bc128
MD5 a26c85a0df0f1f67d65c5d9387e158fa
BLAKE2b-256 57324fdcf443376a9f567863cbf838b7bdea40f1e40b0a1848a135f87182025a

See more details on using hashes here.

Provenance

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