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

Uploaded Python 3

File details

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

File metadata

  • Download URL: groundmeas-1.4.3.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.3.tar.gz
Algorithm Hash digest
SHA256 c5f2e6b3f7304f24fbaaf30495e7137ac41e9e723c55d0029280347ee9e4b739
MD5 9e9fca1d009e4eaeb7436bdbbc6f061d
BLAKE2b-256 b2d11167faae5904d636204e02daf7a77c898b825ca92ef8bb721ff5b9546228

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: groundmeas-1.4.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c421c0f5efb681786c223549773df312a1e7541cb56794c212a02fc3ea9276a1
MD5 f975f289e53fc30f1bf30c5a6705dbfb
BLAKE2b-256 6c8e1965d311947701212743180ba793d3f67abc043a2353961005ae41103b0c

See more details on using hashes here.

Provenance

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