Glossary#

Core terms used throughout the pyCSAMT documentation and codebase. Most entries are cross-referenced elsewhere with :term: roles, so the definitions here are the single source of truth.

1D#

A one-dimensional earth representation in which resistivity varies only with depth. In magnetotelluric and audio-magnetotelluric inversion, a 1D model is commonly represented as horizontal layers with resistivity and thickness parameters.

2-D#
2D#

A two-dimensional earth representation in which resistivity varies along a profile and with depth, \(\rho=\rho(x,z)\), while being assumed approximately constant along geoelectric strike. It is the usual assumption behind profile inversions such as Occam2D.

2-D Maxwell training model#

A laterally varying resistivity section whose synthetic TE or TM responses are computed by a two-dimensional Maxwell solver before the response–model pair enters a machine-learning dataset. It contains lateral electromagnetic coupling for the assumed mesh, boundary conditions, and mode, but remains synthetic evidence rather than proof that a field survey is two-dimensional or in distribution.

3-D quick-look map#

A non-inversion 3-D visualization built from station or pseudosection values. In pyCSAMT volume views, apparent resistivity and period are used to estimate pseudo-depth so survey trends can be inspected before a constrained inversion model is available.

3D#

A three-dimensional earth representation in which resistivity can vary with horizontal position and depth. A 3D interpretation is needed when strike-invariant or layered assumptions cannot explain the measured electromagnetic response.

Ablation study#

A controlled comparison in which one input, component, architecture feature, loss term, or augmentation is removed or changed to test whether it materially contributes to validation performance.

Active survey#

The in-memory survey object currently loaded in a pyCSAMT application. It is the shared state read by maps, profiles, quality-control panels, correction previews, modelling pages, exports, and agents. Conceptually it is a set of stations and survey lines, \(\mathcal{S}=\{s_i\}_{i=1}^{N_s}\) with optional line labels \(\ell_i\), where each station carries frequency-dependent response data such as impedance, apparent resistivity, phase, coordinates, and metadata.

Active survey context#

The survey path remembered by the survey CLI for the current project or session. It is convenient for interactive command sequences, but an explicit positional path or --survey option is clearer for reproducible scripts.

Active/sleep duty cycle#

The fraction of time a node spends in its active acquisition state versus its lower-power sleep state.

Adapter policy#

The acceptance rule a Maxwell adapter applies after postflight validation, such as requiring convergence at every frequency-receiver pair or capping the maximum relative solver residual. Two adapters can receive identical backend output and still accept or reject it differently depending on policy.

ADC#
Analog-to-digital converter#

The logger component that converts a continuous voltage into discrete digital samples. If the input exceeds the configured full-scale range, the samples clip at the rail and the channel is saturated.

Admittance tensor#

The complex transfer function relating a fixed ground electric dipole pair \((E_x, E_y)\) to an airborne three-component magnetic field \((H_x, H_y, H_z)\), measured by MobileMT [Prikhodko2022]. In the limit where the airborne and ground sensors are co-located it reduces to the classical MT admittance \(Y = Z^{-1}\), the reciprocal of the Impedance tensor – unlike a Tipper or Interstation transfer function, which relate magnetic field to magnetic field and never involve an electric field at all. See Airborne Natural-Source EM: AFMAG, ZTEM, And MobileMT for the full derivation and pycsamt.emtools.mobilemt for the implementation.

AFMAG#

Audio-frequency magnetics, a passive, magnetic-field-only EM method with no electric-field channel [Ward1959]. The historical two-coil comparator reports a scalar line-direction tilt angle; modern tensor systems (ZTEM, AirMt) report a full interstation magnetic transfer function. Both readouts are, in modern MT terms, the same object as the Tipper – see AFMAG Tilt-Angle Diagnostics And Motion-Coupling Physics.

Agent#

In pycsamt.agents, a small composable unit that performs one step of a workflow (routing, parsing, QC, forward modelling, inversion, reporting) and returns a standardised AgentResult.

Agent coordinator#

The explicit workflow runner in pycsamt.agents that executes a named sequence of registered agent steps, passes selected outputs from previous AgentResults into later inputs, writes resumable workflow checkpoints, and returns one workflow-level AgentResult. It is used when the step order is already known and should be reproducible.

AgentResult#

The standardised return value of every agent in pycsamt.agents: an execution status (success, failed, or needs_review), a human-readable summary, agent-specific arrays and figures under data, non-fatal warnings, and elapsed time and cost fields. Its uniform shape lets orchestration code branch on outcome without knowing which agent produced it, but a success status only means the programmed workflow returned, not that the result meets scientific acceptance criteria.

AI inversion#

An inversion workflow that uses a learned or differentiable model to map electromagnetic observations to candidate earth-model parameters. Its result is conditional on the training distribution, feature contract, forward operator, regularization, and validation evidence.

Aleatoric uncertainty#

Uncertainty associated with observation noise, incomplete measurements, or irreducible ambiguity in the data.

AMA#
Adaptive moving average#

A spatial static-shift correction strategy that estimates a station’s shift from neighbouring stations inside a configurable window, usually with robust weighting or smoothing. It is useful when static offsets vary laterally but neighbouring stations still sample a comparable regional response.

Amortized inversion#

An inversion strategy that pays an initial training cost to learn a reusable map from observations to model parameters, after which each compatible prediction requires only a forward pass through the learned model. It reduces the marginal computational cost of repeated inversion but does not increase the information in the observations or remove non-uniqueness.

Amplification parameter#

A rotation-invariant complex quantity derived from an AirMt Interstation transfer function’s two column vectors, \(AP = (T_1 \times T_2) \cdot \mathrm{Re}(T_1 \times T_2)\,/\,|\mathrm{Re}(T_1 \times T_2)|\). Being a normalized projection rather than a raw amplitude, it does not track target strength the way the tensor’s vertical-field row does; see AFMAG Tilt-Angle Diagnostics And Motion-Coupling Physics for a real comparison.

AMT#
Audio-frequency magnetotellurics#

Magnetotellurics in the audio-frequency band (roughly 1 Hz to 10 kHz), giving shallow-to-intermediate depth resolution. The natural source is weak in the AMT “dead band” near 1–5 kHz.

Anisotropy#

Direction-dependent electrical resistivity. In CSAMT/AMT diagnostics it usually means that responses measured in two horizontal directions are not equivalent, so the \(Z_{xy}\) and \(Z_{yx}\) modes can imply different apparent resistivity or phase behavior.

API key#

A credential string sent in a configured header field to identify or authorise a client. API keys are secrets and should be redacted outside the live transport boundary.

App extra#

The optional Python dependency group installed with pip install "pycsamt[app]". It adds the graphical-application stack, including Dash, Dash Bootstrap Components, Plotly, and related packages, while the scientific pyCSAMT core remains available from the base installation.

Apparent resistivity#

The resistivity of an equivalent uniform half-space that would produce the observed impedance at a given frequency, \(\rho_a = 0.2\,|Z|^2 / f\) (with \(Z\) in field units and \(f\) in Hz). It is apparent because the real earth is layered/heterogeneous.

Archie’s law#

The petrophysical relation \(\rho = a\,\rho_w\,\phi^{-m}\,S_w^{-n}\) linking formation resistivity to porosity \(\phi\), water saturation \(S_w\), and pore-water resistivity \(\rho_w\), implemented as pycsamt.interp.petrophysics.ArchieModel. Most defensible in relatively clean, clay-poor material; see Waxman-Smits model for clay-bearing formations.

Argand diagram#

A plot of a complex quantity’s real part against its imaginary part, with an ordering parameter (usually period) encoded by colour or an arrow. For impedance tensor components, the resulting Phasor trajectory shape — smooth versus looping — indicates whether the response is compatible with simple layered structure.

Array factor#

The interference pattern produced by the spacing and phase shifts of multiple source elements, independent of the radiation pattern of one element.

Authentication#

The process of proving the identity or authorisation of a telemetry client before a server accepts its packets. pyCSAMT represents this with a Credential using bearer, API-key, basic, or no-auth schemes.

Authentication header#

A protocol header carrying credential material, such as an HTTP Authorization header or a deployment-specific API-key header.

Auxiliary load#

Any additional daily energy draw not captured by recorder, telemetry, or edge-processing terms, such as heaters, relays, or external sensors.

Availability probe#

A lightweight, zero-argument callable stored on a backend registration that reports whether its backend can currently be created – typically whether an external executable resolves – without importing the solver or constructing the adapter. A backend can be capability-compatible with a problem and still unavailable in a given environment; the two questions are checked separately.

AVG file#

Zonge instrument-averaged CSAMT/AMT export format; pyCSAMT reads it and can transform it to EDI.

Axial anisotropy#

A simplified anisotropic-earth case where electrical properties have preferred horizontal axes. It can produce systematic differences between off-diagonal impedance modes without requiring every response to be fully 3-D.

Backend#

The computational route used to prepare, solve, or load an inversion problem. In pyCSAMT a backend may be pure Python, an optional scientific library, or an adapter around an external native engine.

Backend capability#

The declared scope of a Maxwell adapter’s wrapped solver – dimensionality, impedance components, time convention, mesh and topography support, cell/frequency limits, and its verified benchmarks – assessed against a submitted problem before any solve begins. A capability declaration is a claim that must be re-verified whenever the adapter’s translation logic or numerical dependency changes; it does not certify itself.

Backend registry#

A thread-safe store of lazy Maxwell adapter factories keyed by name, each paired with its backend capability declaration and an optional availability probe. The default instance is process-wide and shared by register_backend/create_backend/ list_backends; a private instance can be built the same way for an isolated application or test that should not read or mutate global registrations.

Bahr skewness#

A third, independent skew invariant computed directly from the complex impedance tensor,

\[\eta = \sqrt{\frac{|Z_{xx}+Z_{yy}|^2 + |Z_{xy}-Z_{yx}|^2} {|Z_{xx}-Z_{yy}|^2 + |Z_{xy}+Z_{yx}|^2}}.\]

Unlike phase-tensor Skew, which comes from \(\mathrm{Re}(Z)^{-1}\mathrm{Im}(Z)\), and Swift skew, which compares raw tensor magnitudes without the summed-diagonal term above, Bahr skewness is dimensionless rather than an angle. A commonly used 2-D/3-D diagnostic boundary is \(\eta = 0.4\); the three measures can agree that a station departs from 1-D/2-D while ranking the severity differently, since each folds the same four tensor components together in a different way.

Baseline model#

A simpler or established method used as a comparison point, such as a median target predictor, nearest-neighbour regression, or classical inversion workflow evaluated on the same held-out cases.

Basemap#

The geographic tile layer and map-camera settings used behind station traces, labels, contours, and profile lines. In pyCSAMT map helpers the basemap configuration stores style, center, zoom, and bearing separately from the data traces.

Basic authentication#

A username/password authentication scheme whose header contains the Base64 encoding of username:password. The encoding is not encryption, so basic authentication should be used only over TLS.

Batch export#

A tool-assisted export that writes several figures or products in one pass from the same loaded survey and settings. It reduces manual screenshot variation and helps keep a report figure set internally consistent.

Battery capacity#

The stored energy available from a battery, commonly expressed in watt-hours. pyCSAMT power budgets treat this as the starting energy before reserve is held back.

Battery decay#

A decreasing battery-voltage curve used to mimic discharge through time. pyCSAMT simulation uses an exponential sag with small seeded voltage noise.

Battery voltage#

The device supply voltage reported in telemetry. Monitoring compares its minimum observed value with the configured low-voltage threshold.

Bearer token#

A credential string sent with a Bearer authentication scheme. Whoever presents the token is treated as authorised until the server rejects or expires it.

Benchmark hash#

A content hash of one analytic benchmark case as a whole – its problem hash, analytic reference values, acceptance thresholds, tags, and metadata – distinct from the problem hash it contains. Two benchmarks can share the same underlying problem while differing in benchmark hash because their acceptance thresholds differ, which is exactly the situation Maxwell Analytic Benchmarks uses to show the same solved result passing one threshold policy and failing a stricter one.

Block volume#

A sparse 3-D volume rendering built from the finite pseudo-depth samples across all survey lines. It gives a compact impression of the full survey volume, but it can hide individual line structure when station spacing is sparse.

BM25#
Okapi BM25#

A term-frequency ranking function that scores how well a document matches a query without semantic embeddings, used as the default lexical ranker in pycsamt.assistant.rag. For a document (chunk) \(c\) and query terms \(t\), pyCSAMT’s implementation scores

\[\mathrm{BM25}(c, q) = \sum_{t \in q} \mathrm{idf}(t)\, \frac{f_{t,c}\,(k_1 + 1)} {f_{t,c} + k_1\left(1 - b + b\,\dfrac{|c|}{\mathrm{avgdl}}\right)}, \qquad \mathrm{idf}(t) = \ln\!\left(1 + \frac{N - n_t + 0.5}{n_t + 0.5}\right),\]

where \(f_{t,c}\) is how often \(t\) occurs in \(c\), \(|c|\) is the chunk’s token count, \(\mathrm{avgdl}\) is the corpus’s average chunk length, \(N\) is the corpus size, and \(n_t\) is the number of chunks containing \(t\). pyCSAMT uses the conventional \(k_1=1.5\), \(b=0.75\). A chunk that shares no term with the query scores exactly 0 and is dropped before any boost is applied.

Bostick depth#

An empirical depth estimate, \(\delta_B \approx 356\,\sqrt{\rho_a / f}\) metres – about 0.71 times the plain skin depth – used as the length scale in the dimensionless CSAMT field-zone parameter \(|k\cdot r|\). Unlike skin depth, it is computed directly from the observed apparent resistivity at each frequency rather than from an assumed half-space value.

Browser session#

Application state persisted by a web browser rather than by the Python package configuration directory. In the pyCSAMT web app it includes interface preferences, selected view state, and downloadable session JSON used to resume or share an interactive review.

Calculated resistivity model#
CRM#

The source resistivity model calculated by inversion before interpretation calibration is applied. In pyCSAMT interpretation reports it is usually stored as \(m=\log_{10}\rho\), with \(\rho\) in ohm metres, and is kept distinct from field observations and from the calibrated model used for delivery products.

Calibrated new model#
NM#

The resistivity model after applying documented calibration constraints, borehole evidence, or interpretation parameters to the calculated resistivity model. It remains model-derived evidence, not a direct geological observation.

Calibration set#

Held-out data used to calibrate uncertainty or interval coverage after a base model has been trained. It should not be reused for fitting network weights or selecting the final test result.

Canonical hash#

A cryptographic digest computed after serializing structured state with deterministic key ordering, encoding, and whitespace rules. Equal canonical hashes establish byte-level identity under that serialization contract, not scientific validity, provenance truth, or equivalence of differently parameterized configurations.

Canonical pipeline snapshot#

The normalised YAML, JSON, or Python representation exported from a constructed pipeline. It records the resolved step order and parameters so a reviewer can compare what was intended with what was run.

Chain hash#

The cache key for one pipeline step: a hash of the content fingerprint of the sites flowing into the step, the step’s registry code, and its exact merged parameters. Because each step’s chain hash depends on the previous step’s output fingerprint, changing an early step’s parameters automatically invalidates every step’s cache entry after it, the same way a changed layer invalidates the ones built on top of it in a Docker image.

Chainage#

The signed distance of a station from a chosen origin, measured along a survey line’s azimuth \(A\) rather than along latitude/longitude directly. Writing local east/north offsets from the origin as \(dx\) and \(dy\), chainage is

\[s = dx\sin A + dy\cos A,\]

so stations ahead of the origin along the line get positive values and stations behind it get negative values. It is the coordinate that profile line construction sorts stations by, and it is distinct from station distance, which accumulates separation without reference to a single azimuth.

Challenge set#

A held-out validation set deliberately shifted toward difficult or boundary cases, used to map failure modes and operating limits rather than to tune the model.

Channel summary#

A per-channel edge-QC record containing finite coverage, RMS, basic statistics, spike fraction, acceptance state, and rejection reasons.

Chat session#

The active conversational state in Agent Master, including user messages, assistant replies, loaded survey context, pending parameter prompts, workflow traces, and figure references. It is distinct from the source survey files: saving the session preserves the working context, while the original EDI folders remain the scientific input.

Checkpoint#

A serialized model state containing parameters needed to reconstruct a fitted estimator, typically architecture settings, learned weights, normalization state, and training history. A checkpoint is executable model content, not a complete scientific deployment package unless its feature, target, geometry, provenance, checksum, and validation contracts are also preserved.

Chunk#

One retrievable unit of the RAG corpus, represented by pycsamt.assistant.rag.schemas.RAGChunk. A chunk carries searchable text plus metadata – source path, kind (for example python_symbol, doc_section, or recipe), an optional workflow tag, a static priority, and a stable id derived from its source location – so a retrieval result can be ranked, filtered, and cited back to a real file and line range.

Clock drift#

The rate at which clock offset changes with time, estimated as the slope of local-minus-reference error versus reference time.

Clock offset#

The local-minus-reference timestamp difference at a sample time. pyCSAMT reports the median offset in milliseconds for clock-sync status.

Coefficient of variation#
CV#

A unitless relative-spread statistic defined as standard deviation divided by the mean. It is useful for comparing impedance-magnitude variability across frequencies with different absolute amplitudes.

Coherence#

A normalized measure of the linear relationship between two channels at a frequency. Squared coherence ranges from 0 to 1 and is often used as a frequency-band quality-control metric.

Command bar#

The top-level control strip in pyCSAMT applications. In Agent Master it contains global actions such as loading EDI data, saving the session, opening settings, changing theme, and showing the current survey badge.

Confidence proxy#

A single numeric stand-in for “does the assistant actually know the answer,” computed as the top chunk’s post-boost retrieval score (RetrievedContext.top_score) with no query-independent calibration. AssembledContext is considered confident when project context was resolved or this score reaches a fixed floor (25.0); below that, with no session context to fall back on, the assistant asks a clarifying question instead of guessing.

Configuration file#

A persistent text file that records the parameters used by a run, such as solver type, frequency or time sampling, model bounds, station layout, noise settings, random seed, and output paths. In pyCSAMT forward workflows it is treated as the source of truth for rebuilding a synthetic dataset or response.

Configured frequency band#

The frequency interval expected for a method or deployment. Monitoring flags packets whose reported frequency band extends outside this interval.

Conformal prediction#

A distribution-free calibration method that turns point predictions into prediction intervals with a guaranteed marginal coverage on held-out data, provided the calibration set and future inputs are exchangeability-compatible. It does not certify per-station coverage, and its guarantee degrades under domain gap.

Console script#

A command-line launcher installed from a Python package entry point, such as pycsamt-agent for Agent Master. It imports the package’s Python entry function and passes command-line arguments to it, so it should be installed in the same environment that contains pyCSAMT.

Contact resistance proxy#

An indirect field-side indicator for electric electrode contact quality. Passive AMT cannot measure true contact resistance without an injected test current, so pyCSAMT uses drift and noise symptoms as a proxy warning.

Content hash#

A SHA-256 digest of a provenance manifest or audit record’s canonical JSON encoding – keys sorted, no whitespace – computed over every field except itself, so the same content always hashes the same way regardless of field-insertion order. Recomputing it independently is how a reviewer checks that an exported manifest was not altered.

Content integrity#

Evidence that serialized content has not changed, commonly established by recomputing a cryptographic digest and comparing it with a previously approved value. Integrity identifies exact bytes or canonical state; it does not prove that a computation was executed correctly or that an artifact remains available. See Reproducible experiment configuration.

Content-addressed cache#

A cache keyed by a deterministic content hash of its input – here, MaxwellResultCache keyed by problem hash – rather than by an arbitrary name chosen by the caller. Two callers requesting the same physical problem always land on the same entry regardless of when, where, or by whom it was first solved; an entry that fails its stored checksum on read is corruption, not a second, differently-keyed problem.

Contour overlay#

A map layer made by interpolating scattered station values onto a regular grid and drawing filled bands, contour lines, or both. It is useful for visual continuity between stations, but it should be interpreted as an interpolation of sampled values rather than a measured continuous field.

Control file#

The ModEM settings file that schedules the non-linear conjugate-gradient search: starting and exit values for the trade-off parameter \(\lambda\), the step-size scale \(\alpha\), the smoothing-iteration count, and the maximum iterations and RMS tolerance that stop the run.

Controlled-source#

An electromagnetic acquisition mode in which the source field is generated by field equipment rather than by natural variations. CSAMT and CSEM are controlled-source methods.

Coordinate reference system#
CRS#

The coordinate definition used to interpret map coordinates, including datum, projection, units, and axis order. A CRS transform makes station coordinates comparable when one source is projected in metres and another expects WGS84 longitude and latitude.

Copy-on-write metadata edit#

A metadata operation that stages changes on an independent copy and returns the edited copy while leaving the source object unchanged. In pyCSAMT this is the default behavior of the site metadata editor; an explicit inplace=True request is required to commit validated state back into the supplied object.

Core slices#

The tuple of array slices, one per axis, marking exactly where an original geological grid sits inside a padded solver mesh built by build_solver_mesh(). Indexing a built SolverMeshModel’s conductivity with its own core slices recovers the unpadded source model exactly; recomputing the same bounds from padding counts after serialization is unnecessary and error-prone compared to storing the slices themselves.

Corpus fingerprint#

A SHA-256 digest of the indexed source tree used to detect a stale persisted RAG index: every indexable file is hashed individually, and the fingerprint folds each file’s repository-relative path and content hash into one running digest over paths sorted deterministically. Because it hashes content rather than modification time, a tool that rewrites a file byte-for-byte does not trigger a false “stale index” warning; any real change to indexed source, documentation, examples, or recipes does.

Corrected-data export#

A data file written after a correction chain has been applied to the active survey. In the web app this may be a downloadable table or a processed EDI product, depending on the page and workflow; it should be archived with the correction parameters and original survey source.

Correction chain#

A non-destructive ordered list of data-correction operations applied to an active survey. If the original response is \(d_0\) and the chain contains operations \(C_1,\ldots,C_k\), the previewed response is \(d_k=C_k(\cdots C_2(C_1(d_0)))\); undo removes operations from the chain rather than editing the raw survey in place.

Correlation length#

A scale parameter controlling how rapidly spatial covariance decreases with separation. For the Gaussian model used by the geology generator, correlation at one requested length is \(e^{-1/2}\), not zero; see (1).

Covariance#

In inversion file formats such as ModEM, a description of how model cells are smoothed, linked, masked, or otherwise regularized. It is part of the model prior, not merely an output uncertainty table.

Covariance matrix#

A square matrix whose diagonal entries are component variances and whose off-diagonal entries describe correlated errors between components. For a linear coordinate transformation \(\mathbf y=\mathbf A\mathbf x\), full uncertainty propagation is \(\mathbf C_y=\mathbf A\mathbf C_x\mathbf A^{\mathsf T}\). This statistical object is distinct from the model-smoothing covariance used by some inversion file formats.

Cross-power spectrum#
Cross-spectra#

A complex frequency-domain estimate of how two channels vary together. The diagonal entries are auto-power spectra; off-diagonal entries carry amplitude and phase relationships between channels.

Cross-track ratio#

The range of station offsets perpendicular to a fitted profile axis divided by their range along that axis. Small values indicate a narrow line relative to its length. pyCSAMT combines this ratio with profile linearity and coordinate coverage before automatically applying chainage ordering.

CSAMT#
Controlled-source audio-frequency magnetotellurics#

An active-source variant of AMT that uses a grounded electric dipole or magnetic loop transmitter to overcome the weak natural signal, at the cost of near-field and source-overprint corrections.

CSEM#

Controlled-source electromagnetics — the broader family of active-source EM methods to which CSAMT belongs.

CSUMT#
Controlled-source ultra-audio magnetotellurics#

A controlled-source magnetotelluric method operating above the usual audio-frequency AMT band, commonly in the kilohertz to hundreds of kilohertz range. In pyCSAMT, CSUMT tools are used for shallow target-depth planning, Bostick-depth estimates, and transmitter frequency scheduling.

Daily energy deficit#

A positive net daily draw after harvest is subtracted from daily load. A sustained deficit means the battery will eventually be depleted.

Dar-Zarrouk parameters#

Transverse resistance \(TR=\sum \rho_i h_i\) and longitudinal conductance \(S=\sum h_i/\rho_i\), integrated over a resistivity model column’s complete depth range. They summarize the whole column for comparative screening but do not by themselves determine aquifer productivity.

Dash#

A Python web-application framework used by pyCSAMT’s browser-based application surfaces. Dash combines a Flask HTTP server, React-backed UI components, and Python callbacks so local scientific workflows can be controlled from a browser.

Dash debug mode#

Dash’s development mode, enabled in pyCSAMT Dash applications with --debug. It exposes callback diagnostics and development reload behaviour, which is helpful while editing the app but inappropriate for shared or exposed sessions.

Dashboard report#

The richer, branded dashboard.html written alongside the default report.html/summary.txt when "dashboard" is included in PipelineResult’s report formats (CLI --dashboard). Adds KPI stat tiles and inline-SVG charts – step status, per-step duration, site-count flow – built from the same per-step data the plain report already uses.

Data augmentation#

A stochastic transformation applied only to training examples to model plausible nuisance variation while preserving, or consistently transforming, the target. In EM inversion this may represent measurement noise, static shift, missing frequencies, or mixtures of synthetic response–model pairs.

Data fit#

The comparison between observed data and the response predicted by a model. It is usually inspected as curves, residuals, and RMS misfit; a visually acceptable model should fit within assigned uncertainty without systematic residual patterns by station, component, or frequency.

Data leakage#

Contamination of validation or test evaluation by information used to fit a model, choose preprocessing, tune hyperparameters, or construct training examples. In spatial surveys, randomly splitting neighbouring stations from the same line can leak nearly duplicated geological and acquisition structure even when filenames differ.

Dataset card#

A structured documentation record describing a dataset’s purpose, generation process, field sources, feature and target contracts, splits, known gaps, limitations, and intended use.

Dataset split#

A deterministic partition of a dataset into training, validation, and test subsets. Keeping the split seed fixed makes model-performance comparisons reproducible.

Decimation#

Reduction of a time series by keeping every nth sample or otherwise lowering the sample rate. In generic edge QC, decimation controls how many samples are emitted in the compact payload.

Density layer#

A Plotly map layer that displays the spatial concentration or intensity of finite station values beneath the station markers. In station maps it is used as a quick visual trend layer, not as a replacement for measured station values.

Depth of investigation#

The depth interval over which the measured data provide useful sensitivity to model changes under a stated survey, error model, parameterization, and regularization. It must be appraised with sensitivity, perturbation or recovery tests and response fit; it is not identical to skin depth or to the bottom of an inversion mesh.

Depth slice#

A horizontal 3-D quick-look surface sampled at one pseudo-depth. Values are interpolated from the station/profile grids and should be interpreted as a visualization of the pseudosection-derived point cloud, not a geological layer boundary.

Detectability limit#

The farthest offset or highest/lowest frequency where a signal remains above the configured noise floor.

Determinant response#

A compact impedance summary based on \(\det(\mathbf{Z})\). Because the determinant is unchanged by horizontal coordinate rotation, it is useful for station-level checks that should not depend on a chosen strike angle.

Diagnostic step#

A pipeline step used for QC, figures, or summaries that intentionally passes the site collection through unchanged.

Dictionary learning#
Sparse coding#

An unsupervised technique that represents a set of feature vectors (for example phase-tensor Skew, ellipticity, determinant apparent resistivity, and tipper amplitude) as sparse linear combinations of a small learned set of atoms. In pyCSAMT it classifies station-period rows by dimensionality or noise behaviour without predefined thresholds, complementing skew- and ellipticity-based rules.

Differentiable forward model#

A mapping from model parameters to predicted observations whose derivatives can be evaluated by automatic differentiation or an equivalent derivative method. It may reproduce a trusted forward solver exactly or approximate it; agreement must therefore be benchmarked in response space before its optimization loss is treated as physical fit.

Dimensionality#

A classification of the subsurface electrical structure sensed by a site as 1-D (layered), 2-D (strike-invariant), or 3-D, typically assessed from phase tensor skew and impedance invariants.

Directivity#

The ratio between peak radiation intensity and average radiation intensity over all directions. Higher directivity means energy is concentrated into a narrower angular region.

Distortion matrix#

The real 2 x 2 matrix used in a Groom-Bailey decomposition to describe local, frequency-independent mixing and scaling of the electric field before the regional impedance is observed.

Distributional uncertainty#

Uncertainty caused by applying a model to inputs that differ from the training or calibration distribution.

Domain gap#

The mismatch between examples used to train or validate a model and the field observations where the model is applied. It can arise from physics, noise, survey geometry, processing, dimensionality, or geology outside the synthetic prior.

Domain shift#

A change between the statistical or physical conditions represented by training data and those encountered during prediction. For EM inversion this can include different geology, resistivity range, dimensionality, frequency support, station spacing, noise, source geometry, or survey processing; performance inside the training domain does not establish performance after such a shift.

Dropout gap#

A contiguous interval of missing samples inserted into a simulated or observed time series. In arrays it is commonly represented by NaN values and lowers finite coverage.

Dry run#

A non-executing preview of a command or workflow. In the pyCSAMT agent layer, dry_run=True returns an AgentResult containing the planned step order, agent classes, required/optional flags, and LLM configuration without calling the registered agents’ execute methods or writing workflow outputs. An agent coordinator returns the formatted preview under data["plan"], while WorkflowOrchestratorAgent – which builds a coordinator internally after classifying a natural-language request – returns it under data["workflow_plan"]; both expose the same structured data["steps"] list.

Dynamic range#

The ratio between the largest and smallest usable signal amplitudes, commonly reported in decibels.

Early stopping#

Termination of optimization after validation loss has failed to improve by a declared minimum amount for a declared number of epochs. The model normally restores the weights from the best validation epoch rather than retaining the final update.

Edge acceptance rate#

The fraction of telemetry packets whose edge quality control decision is “accept”, counted only among packets that carry an edge decision. Packets without one are excluded rather than treated as rejected.

Edge decision#

The compact accept/warning/reject state assigned by edge-side quality control. It travels with QC telemetry so downstream monitoring can audit what the field node decided.

Edge diagnostics#

Lightweight checks run close to acquisition, often on the logger or an edge gateway, before full transfer-function processing. They summarize packet health, spectral content, channel faults, and field conditions.

Edge-processing overhead#

Extra daily energy consumed by local processing on the node, separate from baseline acquisition and radio telemetry.

EDI#

The Electrical Data Interchange file format — the SEG standard text format for storing MT/AMT impedances, tipper, and metadata per station.

EDI-like object#

Any Python object that behaves like an EDI station record for pyCSAMT site tools. At minimum, computed diagnostics expect a get_section method and a Z section exposing frequency and impedance arrays; tipper diagnostics also look for Tip, TIP, T, or Z-attached tipper arrays.

Ellipsoid#
Reference ellipsoid#

A mathematical oblate-spheroid approximation of the Earth’s shape, defined by an equatorial radius and an eccentricity (or flattening). Different surveys and eras adopted different ellipsoids – WGS-84 is the modern GPS default, while legacy national grids such as Gauss-Kruger may reference an older ellipsoid/datum pair. Ellipsoid choice affects computed UTM easting/northing by tens of metres, so it must match the source data’s original datum.

Ellipticity#

The normalised difference between the phase tensor’s two singular values, \(\lambda = (\phi_{\max}-\phi_{\min})/(\phi_{\max}+ \phi_{\min})\). Zero for a perfectly circular (1-D) phase tensor; growing values indicate 2-D or 3-D phase anisotropy. Used together with Skew to classify Dimensionality.

EMAP#
Electromagnetic array profiling#

A processing style that treats a line of closely spaced stations as one spatial array and smooths or corrects each response using its along-profile neighbours, rather than treating stations independently. AMA, FLMA, and TMA are EMAP-style spatial filters used in pyCSAMT for static-shift and incoherent-noise suppression.

Empirical coverage#

The observed fraction of held-out targets that actually fall inside their predicted interval, \(\widehat{P}=n^{-1}\sum_j \mathbf{1}\{L_j \le y_j \le U_j\}\). An interval is calibrated at nominal level \(p_{nom}\) when \(\widehat{P}\ge p_{nom}\). Empirical coverage alone is not sufficient: a very wide, useless interval can still be calibrated, so it should always be read alongside Sharpness.

Energy estimate#

The computed result of a power-budget calculation, including daily load, harvest, runtime, autonomy, power state, and triggered issues.

Energy reserve#

The fraction or amount of battery energy intentionally kept unused so a node is not planned down to complete depletion.

Ensemble inversion#
Deep ensemble#

An uncertainty-aware supervised AI inversion that trains several independent estimators from the same architecture and synthetic dataset with different random seeds, then reports the spread across members as one uncertainty source. It captures training-driven variability but not the calibration set’s domain limits, so its empirical coverage still needs to be checked before it is read as a field-valid confidence interval.

Environment variable#

A process-level key/value setting used to inject deployment-specific configuration at runtime. pyCSAMT security helpers can read PYCSAMT_IOT_* variables for credentials and TLS paths.

Epistemic uncertainty#

Uncertainty in learned model parameters or predictions caused by limited or incomplete training evidence.

EPSG#
EPSG code#

A numeric identifier from the EPSG Geodetic Parameter Dataset that unambiguously specifies a CRS (ellipsoid, datum, projection, units, and axis order) – for example 4326 for geographic WGS-84 longitude/latitude, or 326XX for a WGS-84 UTM zone. Passing the wrong EPSG code silently reprojects coordinates rather than raising an error, so it should always be confirmed against the data provider’s metadata rather than assumed.

Error floor#

A minimum uncertainty assigned to a datum or data component before inversion. It prevents unrealistically small formal errors from forcing the inversion to fit noise, processing artefacts, or modelling assumptions too strongly.

Exchangeability#

The assumption that calibration examples and future examples are drawn in a comparable way, so their residuals can be treated as interchangeable for coverage calculations such as conformal prediction.

Export manifest#

A small record, formal or informal, that ties exported products to their source survey, selected lines and stations, method parameters, correction chain, software version, run log, and output paths. It is the audit trail that turns a folder of figures into a reproducible deliverable.

Exported product#

A file written from an application or processing workflow for use outside the current session. Examples include figures, corrected EDI files, inversion inputs or results, reports, and session JSON. A reproducible exported product should be traceable to the input survey, options, correction chain, software version, and output path.

External adapter#

A Maxwell adapter that wraps a trusted external executable rather than in-repository Python: it resolves the executable, writes native input files, runs the process under a timeout policy, parses native output, and retains stdout/stderr provenance. Availability of an executable is not the same as compatibility of a problem or validation of its result.

Failure manifest#

The ordered, JSON-persistable record of every problem a solve_batch() run gave up on after exhausting its attempts, keyed by problem hash with the exception type and message retained. Dropping failed realizations from a dataset without recording why can silently bias what remains, for example by thinning out exactly the high-contrast cases hardest to solve.

Far field#

The source-distant regime where the transmitter field is close enough to a plane wave for standard MT-style interpretation to be more defensible.

Feature array#

A flattened numeric array built from a forward response’s apparent resistivity and phase, produced by a response object’s to_array or to_feature_array method. It is the data-vector shape expected by AI training and inversion code, as distinct from the physical per-frequency or per-station arrays a solver returns directly.

Feature contract#

The complete agreement between training and inference arrays: feature names, order, units, transformations, frequency or period grid, masking, interpolation, normalization statistics, component convention, station order, and padding.

Feature vector#

The numeric input row passed to a learning algorithm or diagnostic plot. In pyCSAMT forward datasets it is usually built from transformed response quantities, such as log apparent resistivity followed by phase.

Fence view#

A 3-D “fence diagram” that renders each survey line as its own vertical resistivity curtain, positioned in 3-D by station offset and line spacing, with the vertical axis converted from period to a pseudo-depth via \(\delta \approx 503\sqrt{\bar\rho\,T}\) – the same skin depth relation used elsewhere, evaluated with the per-period median apparent resistivity \(\bar\rho\) across the line and period \(T\). It is one of the modes built by pycsamt.map.volume, alongside block, depth-slice, and surface modes, and remains a pseudo-depth visualization rather than a constrained inversion model.

Field dashboard#

A compact four-panel overview of an IoT field session, combining station health, edge-QC acceptance, power or synchronisation state, and packet timing.

Field session#

The operational record of one IoT-enabled survey, implemented as pycsamt.iot.FieldSession. It groups device and station inventory with the accumulated telemetry packet stream and can produce a monitoring status and a pipeline hand-off for downstream processing.

Field zone#

A CSAMT classification of a station-period measurement as far field, transition field, or near field, based on the dimensionless parameter \(|k r| = r/\delta_B\), where \(r\) is the source-receiver offset and \(\delta_B\) is the Bostick depth. The classification assumes a real controlled source at a known offset; for plane-wave AMT or MT surveys with no such transmitter, a field-zone run is a diagnostic exercise, not evidence of genuine near-field bias.

Field-realistic noise#

A noise model that layers frequency-dependent uncertainty, AMT dead-band-style degradation, and powerline harmonics-like contamination onto a clean synthetic response, approximating field data quality more closely than Gaussian noise or Multiplicative noise alone.

Figure export#

The process of writing a map figure to a persistent artifact such as HTML, PNG, SVG, PDF, JSON, or a dictionary-style figure specification. pyCSAMT map exports return the final path so workflows can record exactly which artifact was produced.

Figure specification#

The serialized structure of a Plotly figure, including data traces, layout, color scales, and map settings. It is useful for testing and audit workflows because it can be compared without rendering pixels.

Finite coverage#

The fraction of samples in a window or channel that are finite numbers rather than NaN or infinity. Low finite coverage usually indicates gaps, logger faults, or corrupted packets.

Finite-difference grid#

A discretised numerical mesh on which derivatives in the governing electromagnetic equations are approximated by differences between neighbouring cells. Cell size, padding, and model extent control both numerical accuracy and boundary effects.

FLMA#
Fixed-length moving average#

An EMAP-style filter that smooths a response along a profile using a fixed count of neighbouring stations rather than a physical distance window. It is less sensitive to irregular station spacing than a purely distance-based AMA window.

Format-neutral metadata#

A metadata object under pycsamt.metadata – such as SiteMeta, SurveyMeta, or ProvenanceMeta – that describes a transfer function’s identity, provenance, processing, or quality independently of whether the underlying file is a historical EDI or an EMTF XML document. The same object is read from and written to either format by EMTF, so a scientific fact about a station is recorded once rather than being re-derived per format.

Forward model#

A concrete earth model and solver setup used to compute synthetic electromagnetic data from assumed subsurface parameters. In validation, related noise realizations generated from the same forward model should stay in the same data partition.

Forward modelling#

The calculation of a synthetic electromagnetic response from a prescribed earth model, survey geometry, source description, and solver setup. It is the reproducible “given the model, predict the data” counterpart to inversion, which tries to recover a model from observed data.

Forward operator#

The function \(F\) mapping a resistivity model \(m\) to predicted data, \(d_{\mathrm{pred}} = F(m)\). In pycsamt.forward it is implemented by the 1-D, 2-D, and quasi-3-D solvers, and in pycsamt.models by external engines such as Occam2D, ModEM, and MARE2DEM. The same operator sits inside the inversion objective function, so a forward assumption that does not match the true physics can bias the recovered model even while the data misfit looks small.

Forward response#

The predicted data produced by a forward solver for a specified model and survey setup. Depending on method and dimensionality it may contain impedance, apparent resistivity, phase, transient decay values, station positions, and tensor components.

Free parameter#

A resistivity region in a MARE2DEM model that the inversion is allowed to adjust, as opposed to a fixed region such as air, ocean, or a boundary padding cell held at a reference value. A region file lists every region regardless of type, so filtering to free parameters only is often necessary before a resistivity histogram or summary statistic is meaningful.

Frequency coverage#

The frequency interval in which a packet has spectral power above the configured noise floor. It is often reported as a low/high frequency, covered decades, and the fraction of survey target bands represented.

Frequency decade#

A factor-of-ten interval in frequency. A slope reported in degrees per decade means the fitted phase change for each unit increase in \(\log_{10}(f)\).

Frequency dropout#

A training augmentation that masks individual or contiguous frequency channels to represent missing periods or a dead band. The mask or fill convention must remain compatible with the model’s feature contract.

Frequency edit#

A processing operation that removes, restores, masks, or resamples selected frequencies before correction or inversion. It changes the data vector \(d\) by applying a frequency mask \(M_f\), giving \(d' = M_f d\); the mask should be archived because a different frequency set changes coverage, RMS misfit, and model resolution.

Frequency grid#

The ordered set of frequencies available in one station response. Nearby stations may not share exactly the same grid, so pyCSAMT records the requested frequency, selected frequency, absolute difference, and relative difference when extracting map values.

Galvanic distortion#

Frequency-independent distortion of the measured electric field caused by near-surface conductivity heterogeneities. It mixes and scales impedance tensor components without carrying the same inductive depth information as the regional earth response.

Gauss-Kruger#

A transverse-Mercator projected CRS family, in China typically referenced to the Beijing 1954 datum, that expresses position as metre-scale easting/northing rather than longitude/latitude. Field GPS tables projected this way commonly label their columns longitude/latitude out of habit even though the values are really easting/northing – the column name cannot be trusted, only the value magnitude (northing is the larger of the two in the northern hemisphere) reliably distinguishes them.

Gaussian noise#

Random noise whose samples follow a normal distribution. pyCSAMT simulation examples use it for background channel noise, clock jitter, and small battery-voltage perturbations.

Generated script#

A standalone Python script emitted by Agent Master’s code-generation workflow to reproduce an interactive pyCSAMT run outside the browser. It should use public pyCSAMT APIs directly, record the relevant workflow steps, and be validated for syntax and import resolution before use.

Genuine 3-D Maxwell training#

Supervised inversion training in which each synthetic example is a spatially varying three-dimensional conductivity volume and its response is computed by solving the coupled 3-D Maxwell system. It differs from tiling independent 1-D columns or combining 2-D slices: lateral and vertical conductivity contrasts enter the same forward solve. The phrase describes the dimensionality of the training operator, not production mesh accuracy or validation of a field interpretation.

Geodetic distance#

The great-circle separation between two (lat, lon) points on a spherical Earth of radius \(R\), used by station nearest-neighbour search. pyCSAMT evaluates the haversine formula

\[d = 2R \arcsin\left(\sqrt{\sin^2\tfrac{\Delta\phi}{2} + \cos\phi_1\cos\phi_2\sin^2\tfrac{\Delta\lambda}{2}}\right)\]

with latitudes and longitudes in radians, returning a distance in metres.

Geological grid#

The rectilinear physical grid on which a synthetic earth model is defined before forward simulation. Its cell values, axis order, edges, coordinate system, and units form the target-data geometry and need not match either the numerical solver mesh or the inversion output grid.

Geological prior#

A probability model for subsurface structures and electrical properties before field observations are fitted. In AI inversion it determines which layer arrangements, bodies, spatial scales, resistivities, and topographies can occur in synthetic training data, so it acts as a scientific restriction on what the trained model can learn. See Correlated geological priors.

GPS#

Global Positioning System. In field acquisition it is commonly used as a timing reference as well as a positioning system.

GPS lock#

The state in which a receiver reports that it is actively disciplined by GPS or an equivalent reference. Loss of lock means the node may be free-running even if its current offset is still small.

Gradient clipping#

A numerical safeguard that rescales an optimizer update when its gradient norm exceeds a threshold. It can contain isolated unstable steps but does not repair invalid scaling, targets, or loss formulation.

Grating lobe#

An unintended strong beam direction produced when array spacing is too large relative to wavelength or when steering creates additional valid main-lobe solutions.

Groom-Bailey decomposition#
Groom-Bailey#

A galvanic-distortion model that represents the observed impedance as a real distortion matrix multiplying an underlying regional tensor. It is commonly summarized by gain, twist, shear, and anisotropy-style parameters.

Grounded dipole transmitter#

A controlled-source transmitter that injects current between two grounded electrodes. Its length, current, frequency, and receiver offset are part of CSAMT/CSEM acquisition metadata.

Half-space#

The lowermost, infinitely thick layer of a layered model, assigned a resistivity but no thickness. It represents the electrical properties below the deepest resolved interface and anchors the long-period asymptote of the apparent resistivity curve.

Halfspace#

A uniform earth model that extends infinitely downward. In layered-earth notation it is the final layer, which has resistivity but no finite thickness.

Hallucination guard#

An evaluation check that flags a forbidden string – typically an invented import or API name – appearing anywhere in the text of the chunks retrieved for a query. It is declared per-record via a suite’s must_not_contain list and reported as a hard violation count by pycsamt.assistant.evals, distinct from the generated-code validator, which checks a specific script’s imports rather than the retrieved evidence itself.

Hampel filter#

A robust sliding-window outlier filter that replaces a value only when its deviation from the local median exceeds a chosen multiple of the median absolute deviation. In EM frequency processing it is useful for isolated spikes, but its window and threshold must be recorded and the changed station-frequency cells inspected.

Hash chain#

A tamper-evident sequence of records where each entry’s hash folds in the previous entry’s hash, so altering, inserting, or reordering any entry breaks every hash from that point forward. pyCSAMT chains QC decision logs this way so silent edits to the audit trail become detectable.

Heteroscedastic noise#

Noise whose variance changes with the observation rather than remaining constant. In the AI inversion corruption simulator, a relative standard deviation is sampled per station–frequency pair and scaled by impedance magnitude, so larger responses receive proportionally larger absolute perturbations; see (3).

Hodogram#

A parametric plot of a complex transfer-function component’s real part against its imaginary part as frequency (or period) varies, traced as a curve. A smooth hodogram indicates a coherent, frequency-dependent response; a scattered one signals noise or an unstable estimate.

Hybrid inversion#

A workflow that combines an AI estimate with physics-based refinement, for example by using the learned prediction as a starting model, prior, or proposal before iterative inversion.

Impedance Mohr circle#

The locus traced by one impedance tensor component as \(\mathbf{Z}\) is rotated through every angle, \(\mathbf{Z}_\theta = \mathbf{R}(\theta)\,\mathbf{Z}\, \mathbf{R}(\theta)^T\). A 1-D response collapses toward a point; a 2-D response traces a circle through the origin; a 3-D or distorted response traces a circle offset from the origin.

Impedance stability#

A repeatability measure for windowed complex impedance estimates. Stable windows have low variation in impedance magnitude and low phase scatter across repeated estimates.

Impedance tensor#
Z#

The frequency-dependent 2×2 complex tensor \(\mathbf{Z}\) relating the horizontal electric and magnetic fields, \(\mathbf{E} = \mathbf{Z}\,\mathbf{H}\). Its elements (\(Z_{xx}, Z_{xy}, Z_{yx}, Z_{yy}\)) are the primary MT observable, from which apparent resistivity and phase are derived.

Induction vector#

The real (in-phase) or imaginary (quadrature) part of the Tipper, \((T_x, T_y)\), drawn as a 2-D arrow. Its length reflects local induction strength and its azimuth is read as evidence for nearby lateral conductivity contrast, subject to whichever Parkinson convention the figure uses.

Input mapping#

The explicit conversion from accumulated previous step results to the input dictionary expected by the next agent. In AgentCoordinator.add_step this is the input_fn callback. It is a reproducibility boundary because it documents exactly which upstream output keys are consumed by each downstream step.

Interpretation package#

A controlled set of interpretation deliverables, usually including source run identifiers, configuration, evidence tables, exported grids or logs, figures, narrative report text, review status, checksums, and a provenance manifest. It is the unit a reviewer or client can audit and, when approved, archive.

Interstation transfer function#

A complex frequency-domain relation between magnetic fields recorded at two different locations, rather than between the electric and magnetic field at one location (contrast Impedance tensor). Tensor AFMAG/AirMt’s \((n_f, 3, 2)\) response – ground-reference horizontal \(H_x, H_y\) mapped to airborne \(H_x, H_y, H_z\) – is one; see AFMAG Tilt-Angle Diagnostics And Motion-Coupling Physics.

Inverse crime#

Solving the forward problem that generates synthetic “observed” data on the same discretisation an inversion later uses to recover it. Doing so lets the inversion implicitly benefit from a discretisation-error match it would never have against real field data, flattering its apparent accuracy. The standard precaution – used for both synthetic lines in Build A Two-Line Occam2D Survey For Interpretation – is to keep the true model’s forward-modelling grid and the inversion’s own mesh independent, built by unrelated code with no shared parameterisation.

Inversion backend#

The backend selected by InversionConfig.backend in pycsamt.inversion. It gives the backend-neutral workflow a named solver route while preserving a common configuration and result interface.

Inversion model#

The resistivity or conductivity distribution recovered by an inversion workflow from observed electromagnetic data and modelling assumptions. In reporting it is the reviewed source object from which interpreted, calibrated, gridded, and plotted products must be traced.

IoT#
Internet of Things#

The operational, connectivity layer around an acquisition survey — field devices, station inventory, telemetry packets, edge quality control, monitoring, power budgeting, clock synchronisation, provenance, and transport security — implemented in pycsamt.iot and covered in IoT-Enabled Field Acquisition. It audits and records how data were acquired; it does not change the electromagnetic inversion itself.

Isosurface#

A 3-D surface connecting points with the same plotted value. In pyCSAMT volume maps it is built from a dense interpolation of the finite pseudo-depth point cloud and is controlled by iso_range and surface_count.

Iteration file#

A per-iteration engine record, such as an Occam2D .iter file, pairing one candidate model with its RMS misfit and roughness at that step. Keeping the full sequence rather than only the final iteration makes it possible to check convergence behaviour and to roll back to an earlier, better-regularized model.

J-file#

The A.G. Jones (“BIRRP”) ASCII format for MT transfer functions, readable by pyCSAMT and convertible to EDI.

Kaleido#

Plotly’s static-image export engine. It converts Plotly figures to image files such as PNG, SVG, PDF, and WebP when interactive HTML is not the desired artifact.

Kolmogorov–Smirnov statistic#

The largest absolute separation between two empirical cumulative distribution functions. It measures marginal distribution mismatch on a scale from zero to one, without identifying its physical cause; see (6) and Domain-gap and noise simulation.

Lagrange multiplier#

The trade-off weight between data misfit and roughness at one inversion step, analogous to the ModEM control file’s \(\lambda\). Occam reduces it during a line search – stepsize_cut_count bounds how many reductions are tried – until the resulting model improves the objective function.

LAS#

Log ASCII Standard, a text format widely used for well-log curves. In pyCSAMT interpretation exports, LAS files can carry EM-derived station depth curves, but they should not be described as drilled well logs unless the station is actually tied to a borehole and validated as such.

Latency#

The delay between packet acquisition and packet arrival or assessment. pyCSAMT uses a payload latency_s value when present, otherwise it can estimate latency from now - timestamp.

Layered earth#

A one-dimensional earth model in which electrical resistivity changes only with depth. Each layer has a resistivity and, except for the bottom half-space, a thickness.

Layered model#

A 1-D resistivity model built from horizontal layers, \(\rho(\mathbf{x}) = \rho(z)\), each carrying a resistivity and a thickness except the terminal half-space. pyCSAMT’s LayeredModel builds one from explicit values or from random, blocky, smooth, and from_geology priors.

Learning-rate scheduler#

A rule that changes the optimizer step size during training. A plateau scheduler reduces it after validation loss stops improving for a declared interval.

Line picker#
Station picker#

A page-level control that restricts a processing operation to selected survey lines or stations. It applies a mask to the active survey before computation, so the output must be interpreted together with the selected line and station set.

Lineage leakage#

Leakage caused when samples derived from the same parent realization, survey, site, or geological scenario occur in both fitting and held-out partitions. Different noise draws or augmentations do not make those samples independent, so lineage-aware splitting keeps them together.

LLM cost#

The estimated provider charge associated with large-language-model calls made during an agent or workflow run. pyCSAMT records it in AgentResult.cost_estimate_usd and computes it from input and output token counts and configured per-million-token rates. Offline and purely local workflows report zero cost.

LLM provider#

The external or local large-language-model service selected to answer Agent Master requests, such as Anthropic Claude, OpenAI, Gemini, DeepSeek, MiniMax, or offline mode. Provider choice determines which model id, API key, and request policy the assistant uses.

Local server#

A server process bound to the user’s own machine, commonly at an address such as 127.0.0.1. Agent Master uses this pattern: Python hosts the Dash application and the browser connects to it over HTTP without moving survey files to a separate hosted service.

Magnitude-versus-offset#
MVO#

A CSEM curve showing response amplitude as a function of transmitter-receiver offset at one frequency.

Manifest signature#

An HMAC-SHA256 signature over a provenance manifest’s canonical JSON, computed with a shared key. Unlike a content hash, which anyone can recompute, a valid signature also proves the manifest was produced (or re-signed) by a party holding that key.

MapData#

The normalized survey container used by pycsamt.map. It stores the loaded site objects, one station record per station, one profile line per survey line, and loader metadata so different map renderers use the same station order and grouping.

MapView session#

The in-memory, code-first survey handle created by pycsamt.map.MapView. It wraps one normalized MapData object, possibly spanning several survey lines, so that station maps, pseudosections, 3-D fence views, and exports all read from the same loaded data instead of re-parsing EDI files for every figure.

MARE2DEM#

A 2-D/2.5-D goal-oriented adaptive finite-element inversion code for MT and CSEM; pyCSAMT can build its input files.

Matplotlib figure#

The Python object returned by Matplotlib plotting calls. pyCSAMT IoT plotting helpers return this object and attach the rows used to draw it so report figures remain auditable.

Maxwell adapter#

The validation boundary between a solver-neutral problem/result contract and one backend’s native input and output, in pycsamt.forward.maxwell. It runs a preflight assessment before calling its backend, and a postflight validation afterward, so a subclass cannot skip either check even by accident. See Maxwell Adapters.

Median absolute deviation#
MAD#

The median of absolute deviations from the median. Multiplying MAD by 1.4826 gives a robust estimate of standard deviation for normally distributed noise.

Mesh#

The discretised numerical domain on which a forward or inverse problem is solved. A mesh may consist of 1-D layers, a 2-D profile grid, triangular finite elements, or a 3-D volume of cells, depending on the backend.

Mesh convergence#

Demonstrated stability of selected numerical observables as a solver mesh is refined or enlarged. For a forward EM response, near-surface resolution, bottom padding, and lateral padding should be varied independently until impedance, apparent resistivity, or phase changes by less than a predeclared tolerance. A solver convergence flag alone does not establish mesh convergence; see Solver-neutral Maxwell contracts.

Metadata audit trail#

The ordered station-level record produced by a metadata plan or apply operation. Each row identifies the old and new station names, requested and changed fields, status, error, and compact before/after values so the transformation can be reviewed or tested reproducibly.

Metadata transaction#

A batch of station metadata changes evaluated on private copies before any in-place commit. With the default error policy, all station-level and batch-level constraints must pass before the source collection changes, preventing a late failure from leaving a partially edited survey.

Method profile#

The canonical per-method acquisition characteristics used by pyCSAMT’s IoT layer: typical frequency band, required channels, a nominal sample rate, and whether the method is controlled-source and powerline-sensitive. It turns an AMT/MT/CSAMT/ CSEM/TDEM label into concrete quality control defaults instead of leaving every threshold to be set by hand.

Minimum-phase consistency#
Bode consistency#

A check of whether observed phase agrees with the phase implied by the local log-log slope of apparent resistivity under a minimum-phase assumption, \(\phi_{\mathrm{Bode}}(T) \approx 45^\circ\bigl(1 + d\log\rho_a/d\log T\bigr)\). Persistent separation between observed and predicted phase points to galvanic distortion, source effects, or structure too complex for a simple layered model.

Mixup#

A training augmentation that forms a convex combination of two inputs and applies the same mixing coefficient to their targets. It assumes the interpolated response–model pair is meaningful for the intended task.

Model card#

A structured documentation record describing a model’s identity, intended use, training data, architecture, evaluation, uncertainty, limitations, and operational constraints.

Model container#

A Python object that stores the earth model and survey geometry needed by a forward solver, without itself solving the electromagnetic equations. Examples include LayeredModel, Grid2D, and Grid3D.

Model integration#

A direct interface under pycsamt.models for working with a native inversion engine’s files, runner, and result objects. It is used when the native project itself is part of the reproducible deliverable.

Model prior#

The assumptions used before simulation or inversion to restrict plausible earth models. A forward-model prior may define layer-count limits, resistivity bounds, anomaly geometry, geological class, or spatial correlation length.

Model zoo#

A registry of named, versioned pre-trained checkpoints with recorded architecture, layer count, and solver metadata, so a released model can be listed, downloaded, and applied without repeating training. Using a zoo entry still requires checking that its feature contract and training distribution match the field survey.

Model-space metric#

A validation metric computed directly on earth-model parameters, such as log-resistivity error, thickness error, interface depth error, or section similarity when synthetic truth is known.

ModEM#

A widely used 3-D MT inversion code; pyCSAMT can prepare its data files.

Monitoring status#

The per-stream health summary produced by assessing a telemetry packet stream against a monitoring configuration: an overall level (ok/warning/critical/no_data), packet success rate, edge acceptance rate, minimum battery voltage, maximum clock offset, maximum packet gap, and the list of threshold issues that were triggered.

Monte Carlo dropout#

A stochastic-inference technique that keeps a network’s dropout layers active at prediction time and repeats the forward pass to obtain a spread of outputs, treated as one epistemic-uncertainty estimate. It is one contributor to epistemic uncertainty alongside ensemble inversion, not a substitute for aleatoric uncertainty or distributional uncertainty sources it does not model.

Motion-induced noise#

Spurious signal in an airborne EM receiver caused by the coil’s own attitude (yaw/pitch/roll) changing relative to the local geomagnetic field during flight, rather than by the subsurface response. Its energy concentrates at low frequency, where it can dominate a genuine natural-source AFMAG signal [Liu2018].

MT#
Magnetotellurics#

A passive electromagnetic method that images subsurface electrical resistivity from natural time variations of the Earth’s electric and magnetic fields. The ratio of horizontal electric to magnetic field components yields the impedance tensor.

Multiplicative noise#

A noise model that perturbs a response in log-space, so the added scatter scales with signal magnitude instead of being a fixed absolute value. It suits responses such as apparent resistivity that span several orders of magnitude better than Gaussian noise alone.

Native file#

A file format read or written directly by an external modelling or inversion engine, such as an Occam2D mesh or a ModEM model file. It differs from a pyCSAMT configuration file in that it is the exact record the engine’s binary consumed or produced, not the editable parameters used to build it.

Native frequency#

A frequency value that is already present in a station’s recorded frequency grid, before interpolation or resampling to a requested common comparison frequency.

Natural sort#

Ordering file names by their embedded numeric value rather than lexicographically, so station.2 sorts before station.10. pyCSAMT applies it when loading a directory of Stratagem raw hardware or EDI files, since a plain path sort places …10 before …2 as soon as a delivery’s station numbers are not all zero-padded to the same width.

Navigation rail#

The collapsible left-hand application menu used by pyCSAMT browser and desktop-style interfaces to move between workflow pages. It changes the visible page without reloading the active survey, selected station, or line selection.

Near field#

The source-proximal regime where transmitter geometry strongly affects the measured electromagnetic field. CSAMT near-field rows usually require explicit review before plane-wave interpretation.

Near-field correction#

A correction or review step applied when controlled-source measurements are not far enough from the transmitter for a plane-wave approximation. It is commonly triggered by near-field or transition-field CSAMT rows.

Nearest-midpoint classification#

The default strategy of RockDatabase.classify() (method="nearest"): a resistivity value is compared, in \(\log_{10}\) space, to every entry’s geometric-mean midpoint \(\sqrt{\rho_{\min}\rho_{\max}}\), and the entry with the closest midpoint is returned. Because the ranges in RockDatabase overlap heavily, several entries may equally contain the queried value; method="overlap" returns the first such entry in database order instead, which can disagree with the nearest-midpoint answer.

NLCG#

Nonlinear conjugate-gradient, the iterative search algorithm ModEM uses to minimize its objective function. Each step moves along a search direction built from the current gradient and the previous step, scaled by the trade-off parameter tracked in the control file; Modular_NLCG in ModEM’s log and output filenames names this algorithm, not the survey or model.

No-harvest autonomy#

The runtime available from usable battery energy if no daily harvest is available.

Noise floor#

A background signal level used as the detection threshold for spectra or amplitudes. pyCSAMT often uses robust median estimates so isolated peaks do not define the floor.

Noise model#

The rule used to perturb a synthetic response so it resembles measured data. It defines the error distribution, scale, and sometimes field-style behaviour applied after the noise-free forward response is computed.

Noise removal#

A processing operation that suppresses incoherent, unstable, or contaminated response values before later correction or inversion. In pyCSAMT it may use filters, confidence scores, robust statistics, or component-aware editing, and should be checked against residual and response-shape diagnostics so real geologic signal is not smoothed away.

Non-uniqueness#

The property that more than one earth model can fit the same electromagnetic observations within uncertainty. It is a physical limitation of the inverse problem, not a limitation that disappears because a neural network predicts one model quickly.

Normalised plot data#

The table-like dictionaries derived from sessions, packets, or result objects before drawing a figure. They remove input-format differences so the same plotting code can handle live objects and serialised mappings.

Normalization state#

The fitted means, scales, axis labels, weighting policy, counts, and convention needed to reproduce a feature transformation. It is learned from the training partition and reused unchanged for validation, test, and field inputs; refitting it on those inputs is data leakage.

Objective function#

The scalar quantity minimized during inversion, usually combining a data misfit term with a regularization term so the recovered model fits the observations without becoming unnecessarily rough or unstable.

Occam1D#

The 1-D counterpart of Occam2D: a regularised (smooth) layered-earth inversion for one independent sounding at a time, with no lateral coupling between stations. pycsamt.models.occam1d implements the forward model, analytic Jacobian, and Occam nonlinear iteration natively in Python rather than wrapping an external binary, though it can still drive one if supplied.

Occam2D#

A 2-D regularised (smooth) inversion scheme and file format for MT data; pyCSAMT can write its data, mesh, and startup inputs.

Off-diagonal antisymmetry#

The ideal 1-D/2-D impedance relation \(Z_{xy}\approx -Z_{yx}\). A large antisymmetry residual means the off-diagonal modes no longer cancel as a simple 1-D/2-D response would suggest.

Off-diagonal component#

One of the cross-coupled impedance tensor elements \(Z_{xy}\) or \(Z_{yx}\). These components usually carry the primary TE/TM information for 1-D and 2-D MT-style interpretation, while diagonal components are expected to be small after rotation to strike.

Operating envelope#

The documented range of methods, components, frequencies, geometry, geology, noise, missingness, and quality conditions under which a model may be used with its stated acceptance evidence.

Operational acquisition plot#

A figure that explains field-system status rather than subsurface response. IoT operational plots show telemetry, QC, power, timing, and station health before geophysical transfer functions or inversions are interpreted.

Out-of-distribution diagnostic#

A check that estimates whether an input lies outside the distribution represented by training, validation, or calibration examples.

Output artifact#

A file or in-memory record produced by a pipeline run, such as a processed EDI file, QC figure, report, step result, or pipeline snapshot.

Output grid#

The coordinates and depths at which an inversion model is reported or displayed. In an AI workflow it is the checkpoint’s target schema and may be a resampling of geological columns rather than the forward solver’s mesh.

Packet acknowledgement#

A transport or storage confirmation showing whether a packet was successfully received, written, or otherwise accepted by the next system. In monitoring payloads this is usually the ack_ok field.

Packet gap#

The elapsed time between consecutive packet timestamps after sorting the telemetry stream. Large gaps usually indicate dropouts, buffering, or communication loss.

Packet loss#

The removal or non-arrival of telemetry packets during transport. The simulator reproduces it by drawing a seeded random keep/drop mask for the packet stream.

Packet success rate#

The fraction of collected telemetry packets whose transport acknowledgement (ack_ok) is true. It reflects link/transport reliability, independent of whether the payload itself was judged acceptable by edge diagnostics.

Padding cells#

Numerical buffer cells added outside the scientific core of a finite difference grid. They reduce boundary effects but should not be interpreted as part of the target model.

Parameter override#

A value supplied in a pipeline configuration that replaces the registered default for the same step parameter while leaving unspecified defaults unchanged.

Parkinson convention#
Wiese convention#

The two common sign/rotation conventions for drawing real induction vector arrows. Parkinson arrows point toward a nearby conductor; Wiese arrows are rotated a quarter turn from Parkinson and point away from it,

\[\begin{split}\mathbf{w} = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \mathbf{p},\end{split}\]

where \(\mathbf{p}\) is the Parkinson arrow. A figure drawn in one convention but captioned without naming it is easy to misread as the other.

Parts per million#
PPM#

A relative rate unit equal to one part in \(10^6\). For clock drift, 1 ppm means a clock gains or loses about one microsecond per second.

PCSF#

pyCSAMT Common Subsurface Format, an HDF5 container defined by pycsamt.format that any inversion backend’s result can be converted to (Occam2D, ModEM, MARE2DEM; a DUHI-prepared result, see AI inversion, converts through the same Occam2D path once folded back into a solved run). Unlike a native file, a PCSF file is backend-neutral: canonical resistivity is always linear \(\Omega\,\mathrm{m}\), geometry is discriminated explicitly by one of four kinds (grid2d, grid3d, mesh_unstructured, multiline) rather than inferred from array shape, and it is the one file format the desktop 3-D panel, the web 3-D view, and MapView all read directly. See PCSF — Common Subsurface Format.

PCSM#

pyCSAMT Common Subsurface Markup, the lossless, hand-editable ASCII projection of PCSF. A .pcsm file reconstructs the same PCSFModel and preserves canonical resistivity in linear \(\Omega\,\mathrm{m}\); it is a second encoding, not a separate inversion-result schema. Plain PCSM is useful for inspection, comments, and version-control diffs, while .pcsm.gz trades direct readability for smaller files. See PCSF — Common Subsurface Format.

Phase#

The phase angle of an impedance tensor element versus period; for a layered earth it tracks whether resistivity increases or decreases with depth. Reported in degrees.

Phase tensor#

A real 2×2 tensor derived from the real and imaginary parts of \(\mathbf{Z}\) that is provably immune to galvanic static shift. Its ellipse and skew angle summarise dimensionality and strike without distortion.

Phase-versus-offset#
PVO#

A CSEM curve showing response phase as a function of transmitter-receiver offset at one frequency.

Phased-array source#
PAS#

A controlled-source transmitter layout made from multiple source dipoles with controlled spacing and phase shifts, used to steer or narrow the transmitted field pattern.

Phasor#

A complex value represented by magnitude and phase, often drawn as a point or vector in the complex plane. Impedance phasor plots show how impedance tensor components move with period before they are reduced to apparent resistivity and phase.

Physics-informed inversion#

An inversion workflow that includes a differentiable physics residual in the optimization objective, commonly combining data fit with model regularization. The word physics-informed does not imply exact physics, uniqueness, or automatic field validity.

PINN#
Physics-informed neural network#

A neural model trained with a loss that includes both data or target error and a physics residual. In electromagnetic inversion, a simplified form is \(\mathcal{L}=\mathcal{L}_{data} +\alpha\mathcal{L}_{phys}+\beta\mathcal{L}_{reg}\), where the physics term penalizes violations of the selected forward equations or response constraints.

Pipeline configuration file#

A YAML, JSON, or trusted Python file that serialises the name, output directory, optional preset, ordered step list, and parameter overrides for a pyCSAMT processing pipeline.

Pipeline hand-off#

The compact per-station summary produced by FieldSession.to_pipeline_input, carrying packet counts, edge acceptance rate, and the accepted frequency band forward into processing code that does not have direct access to the raw telemetry packet stream.

Pipeline output directory#

The root folder created for one output-enabled pipeline run. It contains the reproduced pipeline.yaml, processed EDI files, QC figures, reports, and any optional intermediate snapshots for that run.

Pipeline plugin#

A StepSpec added to the step registry at runtime through register_step rather than through a reviewed pyCSAMT release. Its origin field reads "plugin", distinguishing it from the built-in steps shipped with pyCSAMT, whose origin reads "builtin".

Pipeline preset#

A named built-in processing workflow, such as basic_qc or publication_ready, that expands to an ordered list of registered pipeline steps with default parameters.

Pipeline step code#

A stable short identifier for a registered processing operation, such as NR001 or QC001. Step codes are accepted by the CLI and config files so workflows can refer to operations without depending on display labels.

PipelineResult#

The Python object returned by Pipeline.run. It carries the input and output site collections, per-step results, saved paths, output root, runtime, and overall success state.

Plane-wave field#

An electromagnetic field approximation in which the wavefront is treated as locally planar at the receiver. Standard MT-style interpretation is most defensible when the transmitter is far enough away for this approximation to hold.

Plotly#

The interactive plotting library used by pyCSAMT application pages for browser-rendered figures, maps, and exportable figure specifications.

Plotly modebar#

The floating toolbar attached to an interactive Plotly figure. It exposes view controls such as pan, zoom, autoscale, reset, and camera-style image download; the downloaded image captures the current browser view rather than a newly recomputed model.

Plugin discovery#

The explicit act of scanning the plugin entry-point group and running every callable found there, performed by pycsamt.pipeline.discover_plugins. It never runs merely because a plugin package is installed; it only runs when requested, either directly in Python or through pycsamt pipe plugins and pycsamt pipe --with-plugins.

Plugin entry-point group#

The pycsamt.pipeline.steps name that a third-party package declares under [project.entry-points] in its own pyproject.toml. Each entry resolves to a zero-argument callable that calls register_step for whatever steps the package contributes.

Porphyry#
Porphyry deposit#

A large-volume, disseminated ore deposit associated with felsic to intermediate porphyritic intrusions, for example granodiorite or quartz diorite, commonly zoned with a resistive, weakly altered intrusive core surrounded by lower-resistivity hydrothermally altered or sulfide-bearing zones. Cu-Mo porphyry systems are a common AMT and CSAMT exploration target because that resistivity contrast between fresh intrusion and alteration/mineralization is often detectable.

Postflight validation#

The contract check a Maxwell adapter runs on a backend’s raw output before returning it: frequency order, receiver order, component set, problem identity, and solver diagnostics must all match what was requested. A backend that silently drops or reorders part of a response fails postflight rather than returning a corrupted array.

Power budget#

A deployment estimate balancing battery capacity, daily load, harvest, reserve, and minimum runtime requirements.

Power spectral density#
PSD#

The auto-power spectrum of one channel as a function of frequency. In a cross-power matrix it is stored on the diagonal.

Power state#

The compact power-budget classification: sustaining, ok, warning, or critical.

Powerline harmonics#

Spectral peaks at integer multiples of the local mains frequency, usually 50 or 60 Hz. In AMT/CSAMT edge diagnostics they are treated as cultural noise because they can dominate natural-field energy in short packets.

Preflight assessment#

The backend capability check a Maxwell adapter runs against an incoming problem before calling its backend. It rejects dimensionality, component, mesh, or size mismatches before an expensive solve is attempted on a problem the backend never claimed to support.

Preset comparison run#

A controlled set of pipeline runs where the same input site collection is processed with different presets and separate output roots so reports, plots, processed EDIs, and pipeline snapshots can be compared.

Preset expansion#

The act of turning a named pipeline preset into its explicit ordered list of step labels, registry codes, and parameters. Expansion is useful before review because it exposes the exact recipe that will run.

Primary action#

The explicit button or command that starts computation on an application page, such as Plot, Generate, Run, Run Forward, Run Inversion, Preview, or Apply. It marks the moment where selected controls are converted into a reproducible package call.

Priority#

A static importance score attached to a chunk from its source path alone (pycsamt/agents, pycsamt/emtools, and similar high-value implementation paths score highest, general documentation next, everything else the baseline). It is a ranking boost applied at retrieval time, not a measure of a chunk’s textual relevance to any specific query.

Problem hash#

A content hash of a solved problem’s mesh, receivers, frequencies, and components, carried through to its forward response (and to a cache entry, when cached) so a saved or reused result can be tied back to the exact input that produced it.

Processed EDI#

An EDI file written after a processing pipeline has transformed a site collection. It should be stored separately from raw EDI files because it reflects filtering, editing, correction, or QC decisions.

Processing page#

A pyCSAMT application page that performs a scientific operation on the active survey, such as quality control, correction, forward modelling, inversion, interpretation, export, or agent execution. A processing page should be read as a user interface over package functions, not as a separate numerical implementation.

Processing pipeline#

The ordered pyCSAMT workflow that loads a site collection, applies one or more configured processing steps, records per-step results, and writes optional processed EDI files, plots, reports, and a reproduced pipeline.yaml.

Profile line#

A named ordered group of station records. Map loaders use profile lines to keep stations from different survey traverses separate while still allowing combined 2-D and 3-D views.

Profile linearity#

The fraction of local station-coordinate variance explained by the first principal component, \(L=\sigma_1^2/(\sigma_1^2+\sigma_2^2)\). A value near one indicates that the coordinates lie close to a single straight axis; it does not by itself prove that they belong to one acquisition line.

Protocol policy#

A local allow-list that decides whether a requested telemetry protocol is permitted before a client is built.

Provenance manifest#

A reproducibility record for a field session or processing run. It keeps acquisition metadata, thresholds, QC decisions, accepted bands, rejected windows, and other audit information together with the data products.

Pseudo-2-D training model#

A profile-shaped machine-learning example assembled from independent 1-D forward responses at neighbouring columns. It lets a network learn lateral patterns in the assembled image, but the synthetic responses do not contain electromagnetic coupling between columns and therefore are not the output of a 2-D Maxwell solver.

Pseudo-depth#

A depth-like plotting coordinate estimated from electromagnetic sampling scale rather than recovered by inversion. For pyCSAMT EDI volume maps it is computed from apparent resistivity and period using the skin-depth relation \(z \approx 503\sqrt{\rho_a T}\).

Pseudosection#

A profile plot where stations or along-line distance form the horizontal axis and period or frequency forms the vertical axis. Values such as apparent resistivity or phase are sampled from each station response and gridded for visual continuity; the result is a display aid, not a true depth section.

PSLG#

Planar straight-line graph: the boundary representation Triangle-based finite-element mesh generators build from, given as nodes, connecting segments, and interior region seed points. MARE2DEM reads and writes this geometry as a .poly file before it (or an external Triangle call) refines it into the .node/.ele files an inversion actually solves on.

QC figure#

A diagnostic Matplotlib figure produced by a registered pipeline step to show whether the transformed data remain physically plausible and useful for the next processing or inversion stage.

QC plot function#

A plotting callable attached to a step registry entry. After a successful step transform, the pipeline calls each registered QC plot function and saves any returned Matplotlib figures when plot output is enabled.

Quality control#
QC#

The set of checks used to decide whether data are acceptable, need review, or should be rejected before interpretation or inversion.

Quasi-3-D#

A forward-modelling approximation that assembles an approximate 3-D tensor response from orthogonal 2-D slices through a 3-D grid, instead of solving the full 3-D Maxwell equations. pyCSAMT’s MT3DForward uses it for survey-scale synthetic experiments where a full production 3-D solver would be too costly. It is a distinct idea from the site-level dimensionality classification used when interpreting recorded MT data.

Query expansion#

A deterministic, zero-dependency substitute for semantic matching in pycsamt.assistant.rag: a fixed table maps specific natural-language trigger phrases (for example “vertical offset”) to extra domain terms that are known to exist in the corpus vocabulary (static, shift, galvanic). Expansion terms are scored by the same BM25 function but added at a fixed 0.35 weight, so they can surface the right chunk when a user’s wording and the code’s vocabulary do not overlap, without ever outweighing the user’s own words.

RAG#
Retrieval-augmented generation#

Grounding a model’s answer in evidence retrieved from a corpus at query time, rather than relying only on parameters learned during training. pycsamt.assistant.rag implements the pyCSAMT instance: an offline, deterministic BM25 retriever over an indexed chunk corpus, with dense embeddings as an optional addition rather than a requirement.

Random seed#

The initial value passed to a pseudorandom number generator so a sequence of random-looking draws can be reproduced exactly.

Receiver array#

A set of receivers deployed at multiple offsets or stations to sample the controlled-source field. In CSEM it is used to build magnitude- and phase-versus-offset curves.

Receiver midpoint#

The spatial position assigned to a receiver measurement between two surveyed electrode or station pegs. When observations use midpoint chainages but the coordinate file uses peg chainages, coordinates must be interpolated between bracketing pegs; an equality join is incorrect, and extrapolation requires separate survey evidence.

Reciprocal Rank Fusion#
RRF#

A rank-based (not score-based) method for combining two or more ranked lists into one, used by pycsamt.assistant.rag to blend lexical (BM25) and optional dense retrieval. Each ranking \(r\) contributes

\[\mathrm{RRF}(i) = \sum_r \frac{w_r}{k + \mathrm{rank}_r(i)},\]

summed over the rankings \(i\) appears in (0-based rank; absence from a ranking contributes nothing), with pyCSAMT’s default \(k=60\) and equal weights \(w_r=1\). Rank-based fusion sidesteps the problem of combining BM25 scores and cosine similarities directly: the two live on incomparable numeric scales, while ranks do not.

Redaction#

Replacement of a non-empty secret value with a fixed placeholder before a configuration is printed or serialised. pyCSAMT uses redaction for credential summaries while preserving non-secret fields such as certificate paths.

Reference clock#

The timing source treated as correct when auditing field-node clocks, such as GPS time, a disciplined base-station clock, or a laboratory timing standard.

Regional tensor#

The impedance tensor that would be measured without local galvanic distortion. In 2-D Groom-Bailey workflows it is usually approximated as an anti-diagonal tensor after rotation to geoelectric strike.

Regularization#

Constraints or penalties added to an inverse problem to stabilize non-unique solutions. Common examples penalize roughness, departure from a reference model, or implausible parameter values.

Regulator efficiency#

The fraction of battery energy delivered to useful electronics after DC/DC conversion losses. Lower efficiency increases daily load.

Rejection policy#

The explicit rules deciding which generated, processed, or predicted samples are excluded and how those exclusions are recorded. Because failures may concentrate in particular geological or noise regimes, rejection changes the effective dataset distribution and must be audited rather than treated as an implementation detail.

Remote reference#

A processing workflow that uses a separate, synchronised station as a noise reference for transfer-function estimation. It is sensitive to clock errors between stations.

Report package#

The versioned collection of structured outputs, cards, manifests, figures, metrics, predictions, review records, and rendered narrative used to release an AI inversion result for a declared purpose.

Residual#

The difference between observed and predicted data, \(r_i=d_{obs,i}-d_{pred,i}\), usually inspected after weighting by the assigned data uncertainty. Residual patterns by station, component, or frequency are often more informative than a single global RMS value.

Resolution#

The ability of an acquisition and inversion setup to distinguish one subsurface feature from another. Resolution depends on frequency or time coverage, survey geometry, errors, regularization, and the physics of the selected backend.

Response container#

A Python object that stores predicted fields and derived quantities from a forward run. Response containers keep physical arrays, coordinates, and feature-array helpers together so plotting, inversion handoff, and machine learning use the same computed result.

Response file#

The engine-written file holding predicted data for the current model, such as an Occam2D .resp file or a MARE2DEM .EMResp file. It is compared against the observed data file to obtain the RMS misfit; loading it without also inspecting the misfit and residual pattern can hide a model that fits poorly in specific components.

Response reconstruction#

The diagnostic step that forwards a predicted earth model and compares the synthetic response with observed data in a declared residual space.

Response-space metric#

A validation metric computed after forwarding the predicted model and comparing the reconstructed response with observed or synthetic data.

Result tab#
Result tabs#

A grouped output panel in a pyCSAMT application page, commonly separating model images, convergence curves, statistics, response fits, logs, and export previews. Tabs change how results are inspected, not which scientific computation produced them.

Ridge regularization#

A small positive value added to a matrix diagonal before inversion to stabilize poorly conditioned least-squares estimates.

RMS#
RMS misfit#

Root-mean-square misfit between observed and predicted responses, normalised by data error. Writing the residual at datum \(i\) as \(r_i\) and its assigned uncertainty as \(\sigma_i\),

\[\mathrm{RMS} = \sqrt{\frac{1}{N}\sum_{i=1}^{N} \left(\frac{r_i}{\sigma_i}\right)^2},\]

over the \(N\) fitted data. It is the primary goodness-of-fit measure for an inversion; a value near \(1\) means the fit is consistent with the assigned error floor and uncertainties, while a much larger value points to underestimated errors, a poor starting model, or physics the forward operator cannot represent.

Robust spike fraction#

The fraction of finite samples that exceed a robust median/MAD threshold. It is less sensitive to a few extreme samples than a mean/std-only spike detector.

Roughness#

A scalar penalty on how much a model changes between adjacent cells, minimized alongside the RMS misfit in an objective function. In Occam2D, roughness typically rises across iterations while RMS falls, because the smoothest model that still fits the target misfit is usually rougher than the near-uniform starting half-space; a run whose roughness keeps climbing after RMS has already reached target is a sign to stop rather than keep iterating.

Run history log#

The append-only JSONL file (default ~/.pycsamt/pipeline_history.jsonl) that Pipeline.run(..., history=True) or the CLI’s --history flag writes one line to per run: pipeline name, overall status, timing, site counts, and a per-step summary. pycsamt pipe history lists it back; logging is opt-in and off by default.

Run log#

The text record produced by an application run, pipeline step, or agent execution. It records selected parameters, step status, warnings, errors, and output paths so an interactive action can be audited after the page state has changed.

Scalar overlay#

A single numeric value assigned to each station for coloring a map marker or building an interpolated layer. Station maps commonly use station index, elevation, apparent resistivity, phase, or skin depth as scalar overlays.

Secret#

A value that should not appear in logs, notebooks, manifests, or version control, such as a bearer token, password, API key, or private key.

Sensitivity#

The degree to which a change in a model parameter affects the predicted data. Low-sensitivity regions may be displayed in a model mesh but should not be interpreted with the same confidence as well-sampled regions.

Sensor dropout#

A missing or stuck sensor interval, visible as NaN gaps or unusually long flat runs in a time series.

Session JSON#

A downloadable JSON file that records browser-session state for the pyCSAMT web app, such as selected survey metadata, line choices, view settings, workflow state, and computation options. It is a reproducibility companion to the original survey folder, not a replacement for raw EDI, AVG, J, or inversion result files.

Sharpness#

Concentration of a predictive distribution, commonly summarized by mean predictive standard deviation or interval width. Smaller values indicate narrower predictions but are desirable only when empirical coverage is calibrated; an overconfident model can be sharp and unreliable. See (4) and AI inversion inference.

Shear#

A Groom-Bailey parameter describing non-orthogonal mixing of horizontal electric-field components. Large absolute shear can indicate strong local distortion or a poor 2-D assumption.

Short-lived credential#

A token, API key, or password issued with a limited validity window. Short lifetimes reduce the impact of accidental exposure because the credential expires without needing to reproduce the full acquisition.

Single-dipole antenna source#
SDAS#

A single controlled-source dipole transmitter element. A phased-array source combines several SDAS elements.

Site collection#

The ordered in-memory group of EDI-like station objects passed between pyCSAMT site, emtools, and pipeline functions. Pipeline steps treat this collection as the current survey state.

Size function#

The function a graded mesh generator evaluates at every candidate location to decide how large a cell or triangle may be there. build_graded_tri_mesh() grows its target edge length geometrically with distance from the nearest receiver, capped at a maximum, which is what produces a mesh fine near the stations that actually need resolution and coarse everywhere distance from them makes that resolution wasteful.

Skew#

The phase-tensor asymmetry angle \(\beta=\tfrac{1}{2}\arctan\!\big[(\Phi_{12}-\Phi_{21})/ (\Phi_{11}+\Phi_{22})\big]\), derived from the Phase tensor. Values near zero support a 1-D/2-D regional structure; large \(|\beta|\) flags 3-D structure, noise, or unresolved galvanic distortion and should be reviewed before rotating a line to a single strike angle.

Skin depth#

The depth at which an EM field attenuates to \(1/e\) of its surface amplitude, \(\delta \approx 503\,\sqrt{\rho / f}\) metres. It sets the attenuation scale for a given frequency and resistivity, but is not by itself a recoverable-depth or vertical-resolution estimate.

SNR#
Signal-to-noise ratio#

The ratio between useful signal power and estimated noise power, commonly reported in decibels as \(10\log_{10}(P_\mathrm{signal}/P_\mathrm{noise})\). pyCSAMT edge diagnostics can estimate it from in-band versus out-of-band spectral power.

Solar harvesting#

Energy collected from a solar panel or similar harvester. pyCSAMT applies charge efficiency before comparing harvested energy with daily load.

Solver diagnostics#

Per-frequency, per-receiver convergence flags, iteration counts, and numerical solver residuals reported alongside a forward response. This numerical residual is distinct from the data-misfit residual used in inversion review.

Solver mesh#

The numerical cells on which a forward backend discretizes Maxwell’s equations. It may refine the geological core and add graded padding to control boundary effects; conductivity must therefore be transferred explicitly from the geological grid rather than inferred from matching array dimensions.

Solver residual#

A numerical measure of how closely a computed field satisfies the discretized linear system, commonly \(\lVert A\mathbf u-\mathbf b\rVert_2/\lVert\mathbf b\rVert_2\). A small value indicates an accurate solve of that discrete system; it does not establish mesh convergence, correct boundary conditions, or fidelity of the discretization to the continuous physics.

Source current#

The current injected by a controlled-source transmitter. Its mean, variation, and drift constrain the reliability of receiver-side amplitudes.

Source overprint#

A controlled-source effect where the finite transmitter field influences the measured response strongly enough that a plane-wave MT interpretation becomes unreliable.

Source stability#

A transmitter QC summary based on the on-state source current and optional voltage. Stable source records have low current variation and no missing current.

Stack count#

The number of raw time-series windows a hardware instrument averaged together to produce one frequency-bin measurement. Stratagem records it per station and frequency in column 2 of each raw 19-column component file; a stack count of zero means no usable signal was captured at that bin, which StratagemRawReader turns into a boolean snr_mask_.

Starting model#

The initial resistivity or conductivity model supplied to an inversion before iterations begin. It can influence convergence and should be archived with the run because a different starting model may reach a different acceptable solution.

Startup file#

The Occam2D control file that names the paired data, mesh, and model files and sets the roughness type, initial resistivity, and iteration limits for the first solver call. pyCSAMT’s OccamStartup.from_model writes it as the last step of InputBuilder.build, after the data, mesh, and model files.

Static image export#

Writing a non-interactive image such as PNG, SVG, PDF, or WebP from a figure. Matplotlib static image export uses savefig directly, while Plotly static image export requires an image engine such as Kaleido.

Static shift#

A frequency-independent vertical shift of the apparent resistivity curve caused by galvanic charges on small near-surface heterogeneities. Left uncorrected it biases inverted depths and resistivities.

Static-shift correction#

A correction that rescales apparent-resistivity curves to compensate for frequency-independent galvanic static shift. If a station has shift factor \(g\), the corrected apparent resistivity is commonly written \(\rho_a'=\rho_a/g\), while phase is not shifted by the same galvanic factor.

Station distance#

The cumulative along-line separation between stations, in kilometres, used as the x_axis="distance" option on profile line and pseudosection views. pyCSAMT projects latitude/longitude to a local equirectangular frame, \(x=\lambda\cdot111.320\cos\bar\phi\) and \(y=\phi\cdot110.574\), with \(\bar\phi\) the mean station latitude, then sums consecutive point separations \(\sqrt{\Delta x^2+\Delta y^2}\). It falls back to plain station order when any station is missing a finite coordinate, so a distance axis is never silently wrong – only degraded to an index.

Station identity#

The normalized name pyCSAMT assigns to one site container. It is resolved from EDI HEAD fields in a fixed order – dataid, station, sitename, name, STATION, falling back to the file stem when none are present – and, once resolved, is written back into dataid (and station when absent) so that later name-based lookups and joins see one consistent label per station.

Station layout#

The receiver positions used to sample a modelled response. For profile simulations this is usually an along-line station count and spacing; for map or quasi-3-D simulations it may be a two-dimensional receiver grid.

Station map#

A 2-D map view that shows station positions or station order, optional profile-line traces and station labels, and one scalar overlay value per station. It is usually the first spatial quality-control view for a loaded survey.

Station record#

A single normalized station row in MapData, containing the station identifier, latitude, longitude, elevation, profile-line name, zero-based station index, and the original EDI-like source object.

Station status#

The per-station or per-profile decision attached to an inference result, commonly accepted, needs review, or rejected, with a reason and domain evidence.

Step cache#

The on-disk, content-addressed store of pipeline step outputs used by Pipeline.run(..., cache=...). A cache hit replays a step’s previously computed result instead of recomputing it, which is also how a crashed-and-rerun pipeline “resumes” – no separate checkpoint mechanism exists.

Step label#

The user-facing name assigned to one occurrence of a pipeline step inside a configuration file or constructed pipeline. It can describe the role of the occurrence, for example trim_to_amt_band, even when the registry operation is still FREQ001.

Step ordering#

The scientific and computational sequence in which pipeline steps are applied. Ordering matters because every transform receives the survey state produced by the previous transform.

Step registry#

The catalogue of processing operations known to the pipeline engine. Each registry entry defines a code, name, category, default parameters, callable transform, optional plot functions, and whether the operation returns a modified site collection.

StepResult#

The per-step record stored inside a PipelineResult. It records the step index, user label, registry code, parameters, elapsed time, site counts, saved plot paths, and any captured error.

Steps trace#

The ordered, user-visible record of workflow steps reported by Agent Master after a request completes. It summarises which routed steps ran, whether each one succeeded or produced warnings, elapsed time, generated figures, and cost metadata, so a conversational request can be reviewed as a reproducible workflow rather than only as prose.

StepSpec#

The registry metadata object for one pipeline operation. It binds the stable step code, snake-case name, category, transform function, default parameters, QC plot functions, and diagnostic-vs-transform behavior.

Store-and-forward#

A telemetry delivery pattern in which a client queues a telemetry packet instead of dropping it when the transport is unavailable, then drains the queue in order once connectivity returns. pyCSAMT’s StoreAndForwardClient wraps any transport this way, with an optional spool file so the backlog survives a restart.

Strike#
Geoelectric strike#

The azimuth of the principal geoelectric direction, estimated from the impedance or phase tensor. Rotating data to strike separates the TE and TM modes for 2-D interpretation.

Strike rotation#

Rotation of horizontal electromagnetic response components into the estimated geoelectric-strike frame. For a rotation angle \(\theta\), horizontal fields are transformed by a 2-D rotation matrix \(\mathbf{R}(\theta)\), and the impedance tensor transforms as \(\mathbf{Z}'=\mathbf{R}(\theta)\,\mathbf{Z}\,\mathbf{R}^T(\theta)\). The rotated frame is used to separate TE and TM modes for 2-D interpretation.

Structural uncertainty#

Uncertainty caused by an incorrect dimensionality, parameterization, forward physics, architecture, or geological assumption.

Suggestion chip#

A pre-written prompt displayed in the empty Agent Master chat area. A chip is not a special command; clicking it sends the same kind of natural-language request the user could type manually.

Supervised AI inversion#

A learned inverse mapping trained from response-model pairs, usually synthetic examples where both the forward response and target vector are known. It minimizes target error on the sampled examples and must still be checked in response space.

Survey geometry#

The spatial and source-receiver arrangement used by a simulation or field acquisition, including station positions, profile layout, transmitter geometry, offsets, and dimensionality.

Survey line#
Survey lines#

A named subgroup of stations inside an Active survey, usually corresponding to one acquisition profile or one loaded EDI folder. In application views, activating a subset of lines applies a station mask before plotting or processing so page-level operations use \(\mathcal{S}_{active}=\{s_i:\ell_i\in L_{active}\}\).

Swift skew#
Swift strike#

An older, raw-tensor dimensionality indicator, \(S = |Z_{xx}-Z_{yy}| / |Z_{xy}+Z_{yx}|\), distinct from the phase-tensor Skew above: Swift skew compares the impedance tensor’s diagonal and off-diagonal magnitudes directly, rather than the phase-tensor asymmetry, so it can react differently to noise and galvanic distortion. Its companion Swift strike is the rotation angle that minimizes the tensor’s diagonal terms, and inherits the usual EM strike ambiguity plus the numerical instability of Swift skew itself when \(|Z_{xy}+Z_{yx}|\) passes near zero.

Synchronisation quality#

A compact grade summarising clock offset, drift, jitter, and reference-lock state for one field node.

Synchronisation status#

The per-device result of a clock-sync assessment, including offset, drift, jitter, reference support, GPS lock, and an overall quality grade.

Synthetic data#

Data generated by a model or simulator rather than recorded by field hardware. In the IoT guide it is used for reproducible examples, tests, and demonstrations, and should be labelled clearly when mixed with real survey workflows.

Synthetic dataset#

A collection of model parameters, computed forward responses, metadata, and optional train/validation/test splits generated from known inputs rather than acquired in the field. It is useful for algorithm development because the target model is known.

Synthetic recovery#

A validation workflow that forward-models a known model, adds controlled noise, inverts the resulting response, and compares the recovered model with the known one. A successful synthetic recovery test shows that an inversion workflow can recover a known model under controlled assumptions; it does not, by itself, prove that a field inversion of unknown structure is correct.

Target vector#

The numeric output row that a supervised learning model is expected to predict. For layered-earth forward datasets it contains log-resistivities and layer thicknesses, with NaN padding when different samples have different layer counts.

TDEM#
TEM#
Time-domain electromagnetics#

A transient EM method: a controlled-source current is switched off abruptly and the induced secondary-field decay is recorded over time, rather than the continuous-wave impedance tensor that AMT/MT/CSAMT estimate. There is no steady spectrum to test for mains contamination, so pyCSAMT’s method-aware edge diagnostics skip powerline-harmonic detection for TDEM/TEM streams.

TE mode#
TM mode#

The transverse-electric (electric field along strike) and transverse-magnetic (magnetic field along strike) polarisations into which 2-D MT data separate after rotation to strike.

Telemetry packet#

A single timestamped message reported by an IoT field device — data, QC, heartbeat, or event — carrying a JSON-like payload. pyCSAMT represents it as a TelemetryPacket and aggregates the stream into station tables and a monitoring status.

Telemetry protocol#

A transport family used to move field telemetry, such as HTTPS, MQTT, WebSocket, serial, or file-backed replay.

Telemetry window#

The daily time spent transmitting or receiving telemetry. Its energy is transmitter power multiplied by telemetry seconds per day.

TEMAVG file#

Zonge’s processed-average export format for TEM/TDEM soundings – a different program and layout from the frequency-domain AVG file, despite the shared vendor and naming root. One .AVG per profile stores every station’s time-gated transient magnitude; companion .LOG and .Z files record processing provenance and a plotting-oriented export of the same magnitudes. pyCSAMT reads a TEMAVG survey folder with pycsamt.tdem and can transform it to a pseudo-frequency EDI collection.

Tensor#

In magnetotellurics, a frequency-dependent 2×2 matrix relating two vector field quantities — most importantly the impedance tensor and the phase tensor.

Ternary diagram#

A triangular plot in which a point’s position encodes three barycentric weights that sum to one — for dimensionality display, the soft 1-D, 2-D, and 3-D membership of one station-period datum. A point near a corner is dominated by that membership; a point near an edge is a soft mixture of the two nearest classes rather than a hard label.

Terrain-following coordinates#

A depth-section coordinate frame in which the flat datum \(z=0\) at every profile position \(x\) is replaced by the local topography elevation, so that

\[z_{\mathrm{real}}(x,z) = \mathrm{elev}(x) - z,\]

with \(\mathrm{elev}(x)\) in the same units as \(z\). Cell values keep their flat-datum depth \(z\); only the plotted vertical position moves, so a TopoSection drapes correctly over real relief instead of implying every station sits at the same elevation. It is distinct from a pseudosection, whose vertical axis is period or frequency and carries no elevation information at all.

Time gate#

One sample time in a transient electromagnetic decay curve. A TEM configuration uses a sequence of time gates rather than a frequency grid.

Time series#

A sequence of measurements ordered by time, such as live Ex, Ey, Hx, and Hy samples recorded by an edge device.

Timestamp#

A numeric time label attached to a packet or sample. In IoT acquisition it may be an epoch time or a relative survey time, but it must be finite and non-negative so clocks can be compared.

Timing jitter#

Short-timescale timing scatter after the best linear clock drift has been removed. pyCSAMT reports it as the standard deviation of residual offset in milliseconds.

Tipper#

The complex vertical magnetic transfer function relating the vertical to the horizontal magnetic field. Its induction arrows point toward (or away from) lateral conductivity contrasts.

TLS#
Transport Layer Security#

The standard encrypted transport protocol used by HTTPS, secure MQTT, and similar clients. pyCSAMT stores TLS settings such as certificate paths, verification mode, and minimum version, but the cryptographic handshake is performed by the underlying transport library.

TLS material#

The certificate and key configuration needed to initialise a TLS-enabled client, including CA certificates, optional client certificate files, and optional private-key files.

TMA#
Trimmed moving average#

A FLMA-style fixed-length spatial filter that discards the smallest and largest values inside the window before averaging. The trimming reduces sensitivity to one or two anomalous stations compared with a plain fixed-length average. In Zonge-style static-shift processing the same trimmed average estimates a spatial reference response, but the window length and reference frequency remain modelling choices that must be tested rather than assumed.

Topography#

The elevation of the ground surface represented in a model or plotting workflow. In inversion, topography can affect mesh geometry, air cells, receiver elevations, and the interpretation of near-surface structure.

Topography overlay#

A 3-D terrain layer built from scattered station elevations or a regular elevation grid. It provides surface context for map and volume views without changing the underlying electromagnetic response values.

Total divergence#
Peaker#

The along-line horizontal derivative of an airborne tipper component, \(\partial T_{zx}/\partial x\) (Lo and Zang 2008). Sattel and Witherly (2012) note that for a single flight line this coincides with the VLF-style “Peaker” (Pedersen et al. 1994): both convert a raw tipper crossover anomaly into a peak/trough centred on the causative contact, making the anomaly’s along-line position easier to read than from the raw crossover alone. See ZTEM Total-Divergence, Phase-Rotation, And Map-View Diagnostics.

Traditional inversion#

A physics-based iterative inversion that updates model parameters by repeatedly evaluating a forward operator, residuals, and regularization terms. Its objective is commonly written \(\Phi(m)=\|W_d(d_{obs}-F(m))\|_2^2+\lambda\|W_m(m-m_{ref})\|_2^2\), where \(W_d\) weights data errors, \(W_m\) encodes model roughness or prior structure, and \(\lambda\) controls the trade-off.

Training convergence#

The evolution of an optimization metric during AI or PINN training, usually shown as training and validation loss versus epoch. A decreasing curve indicates optimization progress, but final scientific acceptance still requires response-space checks and uncertainty review.

Training distribution#

The probability distribution that generated the training examples. In AI inversion it acts as a model prior because the network is mainly tested on structures, responses, noise, and nuisance effects sampled from it.

Transfer function#

A frequency-domain relation mapping input field components to output field components. The MT/AMT impedance tensor and tipper are transfer functions.

Transform step#

A pipeline step whose function returns a modified site collection that becomes the input to the next step.

Transient failure#

An exception BatchPolicy treats as worth retrying, such as a backend execution error or a non-converged solve, as opposed to a terminal failure like an incompatible problem that would fail identically on every attempt. A backend that wraps ordinary Python exceptions into a generic execution error can make an actually-deterministic bug look transient unless that wrapping is disabled.

Transition field#

The intermediate regime between near field and far field, where source effects may be present but are not as dominant as in the near field.

Transmissivity#

Aquifer transmissivity \(T=\int K\,dz\) integrated over the saturated interval represented by a resistivity model column, returned by pycsamt.interp.hydromodel.EMHydroModel and propagated by MonteCarloHydro. It inherits all uncertainty in water-table detection, hydraulic conductivity, and the model’s represented depth range.

Transmitter frequency comb#

The discrete set of frequencies emitted by a controlled-source transmitter. Edge QC checks whether each expected line has resolvable energy in the receiver window.

Transmitter timing lock#

A receiver-side sync status indicating that the receiver timing is locked to, or explicitly checked against, the controlled-source transmitter timing.

Transmitter-receiver offset#

The separation between the controlled-source transmitter and a receiver. In CSAMT field-zone checks it is compared with skin depth to classify near, transition, and far field behaviour.

Transport security#

The protection applied while telemetry moves between a field node and a receiver, gateway, broker, or server. In pyCSAMT IoT examples this is configured through TLS options and then enforced by the concrete transport implementation.

Twist#

A Groom-Bailey parameter describing rotational mixing of the two horizontal electric-field components by local galvanic distortion. It is reported as an angle, but should not be interpreted as geoelectric strike.

Type code#

The integer tag on an Occam2D data row identifying which response component it carries: 1/2 for TE apparent resistivity/phase and 5/6 for TM apparent resistivity/phase. Plot and diagnostic helpers select rows by type code rather than by column position.

UTM#
Universal Transverse Mercator#

A family of conformal projected CRS that divides the globe into 60 six-degree-wide longitude zones, each further split into latitude bands lettered C through X (excluding I and O), giving zone labels such as 49R. Within a zone, position is expressed as metre-scale easting/northing rather than longitude/latitude, with a false easting of 500,000 m and a scale factor of 0.9996 at the central meridian.

Validation leakage#

Any path by which information from validation, calibration, test, field, or challenge data influences model fitting, preprocessing, model selection, thresholds, or interpretation before those data are formally evaluated.

Validity mask#

A Boolean array aligned exactly with a scientific data array, where true marks observations permitted to enter computation and false marks missing, non-finite, rejected, or otherwise unusable entries. A finite fill value does not replace the mask or turn an invalid observation into a measurement.

Variogram#
Semivariogram#

Half the mean squared difference between values separated by a given lag. Its directional empirical form diagnoses spatial continuity and anisotropy; for a unit-variance stationary field it approaches a sill of one as covariance vanishes. See (3).

Verified benchmark#

An analytic reference case, such as a uniform half-space or a layered earth, that a backend has been checked against and is listed inside its backend capability. Naming the specific benchmarks a given adapter version has passed is a stronger claim than stating dimensionality support alone.

VTK#

Visualization Toolkit file format family. pyCSAMT interpretation exports use an ASCII rectilinear-grid VTK file for model resistivity values so the grid can be opened in tools such as ParaView or GIS viewers that support VTK.

Warm start#

An initial parameter estimate obtained from an earlier calculation, such as a trained inverse model, and supplied to a subsequent optimizer. It can reduce iteration cost or steer the optimizer toward a useful basin, but it is an initialization choice rather than independent evidence that the final model is correct.

Water table (hydrogeophysical)#

In pycsamt.interp, the shallowest depth per resistivity-model column where Archie-inverse water saturation first reaches Sw_water_table_threshold. It is an operational detection threshold derived from resistivity and configured parameters, not a directly measured phreatic surface; nan marks a column where no qualifying transition was found.

Waxman-Smits model#

A petrophysical model extending Archie’s law with a surface (clay) conductivity term, implemented as pycsamt.interp.petrophysics.WaxmanSmitsModel. In the current EMHydroModel, its parameters are converted to an Archie-form approximation for water-table detection and cell-wise inversion; sigma_s is not yet propagated through those inverse steps.

The Geometrics/EMI desktop program that converts raw Stratagem hardware files into EDI. It is an external, manual step – pycsamt.stratagem neither reads Stratagem’s raw spectral capture nor calls WinGLink itself, only the files and correction stages downstream of its export. A freshly exported EDI carries placeholder LAT/LONG (0:00:00.00) and no static-shift or noise correction; both are added later in the workflow.

Workflow checkpoint#

A serialized record written after an agent coordinator step so a later run can resume without recomputing completed work. pyCSAMT writes a pickled, figure-stripped AgentResult for execution and a JSON sidecar for human inspection; checkpoints accelerate resume but do not replace archived scientific deliverables.

Workflow step#

One named unit inside an agent coordinator workflow. A step stores an agent instance, a stable step name, an optional input-mapping callback, a human-readable description, and a required/optional flag that controls whether failure aborts the workflow.