Skip to main content

groundfield

Numerical field computation for grounding systems.

Python versions License: MIT

groundfield is an open-source Python package for the physical reference modelling of networked grounding systems. Within the groundmeas / groundinsight / groundfield software family, groundfield covers the field-theoretical side: soil models, electrode geometries, conductors and their couplings are formulated as a 3-D problem in the soil and solved numerically. Field profiles, potential curves and current distributions are reduced to equivalent rho-f models that can be handed over to groundinsight as a BusType. See the documentation for full details.

Position within the software family

  groundmeas   ──▶   groundinsight   ◀──   groundfield
  (measurement)      (reduced network            (field model,
                      model)                      PDE reference)

groundfield provides the physically grounded reference model from which reduced impedance and multi-port representations are derived. These travel into groundinsight as BusType / BranchType formulas where they can be reconciled with measurement data from groundmeas.

Scope

groundfield covers layered soil (two-layer and multi-layer models), typical electrode geometries (ring, strip, rod, foundation, mesh), conductors, cable shields and PEN with their mutual coupling, the Carson 1926 and rigorous Sommerfeld earth-return corrections, cross- layer electrodes, current and potential distribution in the soil, the influence of the measurement geometry on the grounding-measurement result, and the derivation of reduced rho-f models for groundinsight. See the scope and concepts page for the full list with references to the underlying ADRs.

What's new

groundfield follows Keep a Changelog and Semantic Versioning. See the changelog for the full release history and the forward-looking roadmap.

Recent highlights:

  • 0.12 — PolylineElectrode. Foundation rings follow the real building outline (a closed polyline) instead of the oriented bounding rectangle, removing the perimeter bias and the coincident-conductor artefacts that appear at AP1 scale.
  • 0.11 — one-shot mutual grounding-impedance matrix plus an audit-driven hardening of the inductive (Carson / Sommerfeld / Neumann) and cross-layer stacks.
  • 0.7 — OrtsnetzLayout. Imperative TN-Ortsnetz builder with a Manhattan-routed PEN router and a simulated fall-of-potential measurement.

Installation

groundfield requires Python 3.12 or newer.

git clone https://github.com/Ce1ectric/groundfield.git
cd groundfield
poetry install

For OSM-driven building footprints (ADR-0011), enable the optional geo extra (pulls in requests, shapely, pyproj):

pip install groundfield[geo]
# or, from a Poetry checkout
poetry install --extras geo

The documentation extras live in an optional Poetry group:

poetry install --with docs

Quickstart

import groundfield as gf

soil = gf.TwoLayerSoil(rho_1=100.0, rho_2=500.0, h_1=2.0)
world = gf.create_world(soil=soil)
gf.create_electrode(
    world, "ring", name="g1",
    center=(0.0, 0.0, 0.8), radius=5.0, wire_radius=0.005,
)
gf.create_source(world, attached_to="g1", magnitude=1.0)

engine = gf.create_engine(backend="image",
                          frequencies=[50.0, 150.0, 250.0])
result = world.solve(engine)
print(result.cluster_impedance("g1"))

backend="image" auto-dispatches to the matching layered backend. The full backend list, the rho-f export to groundinsight and the TnNetworkGenerator are documented in Quickstart and the examples gallery.

Guiding principles

  • The PDE / field model is a reference, not the end product. The solver must be instrumented so that every solution can be reduced to an identification-friendly form.
  • Measurability before accuracy. The relevant frequency range is < 1 kHz; this allows simplified soil models and fast solvers.
  • Grey-box, not black-box. Geometric and material inputs stay visible; only the parts that are not physically prescribed are identified.

Development

# Tests with coverage
poetry run pytest --cov=groundfield

# Formatting
poetry run black src tests scripts

# Local documentation
poetry install --with docs
poetry run mkdocs serve

Releases are triggered through the Poetry script. It updates the version in pyproject.toml, src/groundfield/__init__.py, and CITATION.cff, moves the [Unreleased] block of CHANGELOG.md into a new section, and creates an annotated tag.

poetry run release patch
poetry run release minor
poetry run release major
poetry run release set 1.2.3

Citing

If you use groundfield in academic work, please cite according to the metadata in CITATION.cff.

License

groundfield is released under the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

groundfield-0.15.0.tar.gz (391.8 kB view details)

Uploaded Source

Built Distribution

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

groundfield-0.15.0-py3-none-any.whl (450.3 kB view details)

Uploaded Python 3

File details

Details for the file groundfield-0.15.0.tar.gz.

File metadata

  • Download URL: groundfield-0.15.0.tar.gz
  • Upload date:
  • Size: 391.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for groundfield-0.15.0.tar.gz
Algorithm Hash digest
SHA256 a8366b4dfdcb267fd835cf19d0c5d8121224e4ee39d88b4197ebdc814ff28135
MD5 fb51766548467f01a4f4965d8e393d5d
BLAKE2b-256 9fbf2708c3c50feef13b6c1e7e273183ff6d6a376678e3f796cb2808b1cfa60b

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundfield-0.15.0.tar.gz:

Publisher: release.yml on Ce1ectric/groundfield

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

File details

Details for the file groundfield-0.15.0-py3-none-any.whl.

File metadata

  • Download URL: groundfield-0.15.0-py3-none-any.whl
  • Upload date:
  • Size: 450.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for groundfield-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 047b3441a81baca99950d79d2b061203b082cd2bc2d44eb375b23e325b99b5d9
MD5 86f44825d618b30e6cf8ad857dfef3f5
BLAKE2b-256 f83e250831bff41c2d8fed7a6c802018f3d739327cf58c6e2bec8a31319c6088

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundfield-0.15.0-py3-none-any.whl:

Publisher: release.yml on Ce1ectric/groundfield

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

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 files

0.14.1

2 files

0.14.0

2 files

0.13.0

2 files

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page