pycsamt.metadata.quality#
pycsamt.metadata.quality#
Data-quality assessment for MT impedance sites.
DataQuality is a first-class object that captures the
coverage, validity, and signal-to-noise ratio of every impedance
component at a single station. assess_collection() computes
quality for an entire Sites collection
and returns a DataFrame suitable for reporting, filtering, or
upstream ML pipelines.
Quality thresholds#
Flag |
Coverage |
Meaning |
|---|---|---|
GOOD |
≥ 0.90 |
suitable for inversion |
PARTIAL |
0.50 – 0.90 |
use with care |
POOR |
0.01 – 0.50 |
likely noisy / incomplete |
MISSING |
0.00 |
component absent |
Quick start#
from pycsamt.metadata.quality import DataQuality, assess_collection
# single site
dq = DataQuality.from_site(site)
print(dq.overall) # QualityFlag.GOOD / PARTIAL / POOR / MISSING
print(dq.summary())
# collection
df = assess_collection(sites) # pandas DataFrame
Functions
|
Compute |
|
Return a |
Classes
|
Quality metrics for a single impedance component. |
|
Data-quality summary for a single MT station. |
|
Data-quality classification for one component or a whole station. |
- class pycsamt.metadata.quality.QualityFlag(*values)[source]#
-
Data-quality classification for one component or a whole station.
- Variables:
GOOD ("good") – Coverage ≥ 90 %; component is reliable for inversion.
PARTIAL ("partial") – 50 % ≤ coverage < 90 %; component has significant gaps.
POOR ("poor") – 0 % < coverage < 50 %; component is largely missing or noisy.
MISSING ("missing") – Zero finite values; component is absent.
- GOOD = 'good'#
- PARTIAL = 'partial'#
- POOR = 'poor'#
- MISSING = 'missing'#
- classmethod from_coverage(coverage)[source]#
Return the flag that matches coverage (0–1).
- Parameters:
coverage (float)
- Return type:
- classmethod worst(flags)[source]#
Return the worst (lowest-rank) flag in flags.
- Parameters:
flags (list[QualityFlag])
- Return type:
- classmethod best(flags)[source]#
Return the best (highest-rank) flag in flags.
- Parameters:
flags (list[QualityFlag])
- Return type:
- class pycsamt.metadata.quality.ComponentQuality(name, coverage, n_valid, n_total, snr_mean=None, snr_std=None)[source]#
Bases:
objectQuality metrics for a single impedance component.
- Parameters:
name (str) – Component label:
"Zxx","Zxy","Zyx","Zyy", or"Tipper".coverage (float) – Fraction of finite values in the frequency range (0–1).
n_valid (int) – Number of frequencies with finite values.
n_total (int) – Total number of frequencies.
flag (QualityFlag) – Auto-computed classification from coverage.
snr_mean (float, optional) – Mean signal-to-noise ratio (dB) when available.
snr_std (float, optional) – Standard deviation of the SNR (dB) when available.
Examples
cq = ComponentQuality.from_array("Zxy", z_arr) print(cq.flag) # QualityFlag.GOOD print(cq.pct_str) # "100%"
- flag: QualityFlag#
- classmethod from_array(name, arr, snr=None)[source]#
Compute quality from a raw array.
- Parameters:
name (str) – Component label.
arr (array-like or None) – Raw complex or real impedance values; shape
(n,)or(n, 2, 2)(only the relevant component is expected).snr (array-like, optional) – Per-frequency SNR values in dB (same length as arr).
- Return type:
- class pycsamt.metadata.quality.DataQuality(station, n_freq, freq_min=None, freq_max=None, components=<factory>)[source]#
Bases:
objectData-quality summary for a single MT station.
- Parameters:
station (str) – Station identifier.
n_freq (int) – Total number of frequencies.
freq_min (float, optional) – Minimum frequency (Hz).
freq_max (float, optional) – Maximum frequency (Hz).
components (list of ComponentQuality) – Per-component quality records.
overall (QualityFlag) – Worst flag across all present components (auto-computed).
Examples
dq = DataQuality.from_site(site) print(dq.overall) print(dq.get("Zxy").coverage) df_row = dq.to_dict()
- components: list[ComponentQuality]#
- overall: QualityFlag#
- classmethod from_site(site)[source]#
Build a
DataQualityfrom a Site-like object.Accepts any object exposing
.name,.freq,.z, and.tipper(as perSiteMixin).- Parameters:
site (Any)
- Return type:
- classmethod from_edi(edi_path)[source]#
Build from a spectra/impedance EDI file path.
- Parameters:
edi_path (Any)
- Return type:
- get(name)[source]#
Return
ComponentQualityfor name, or None.- Parameters:
name (str)
- Return type:
ComponentQuality | None
- property z_components: list[ComponentQuality][source]#
Return only the Z-tensor component records.
- pycsamt.metadata.quality.assess_collection(sites)[source]#
Compute
DataQualityfor every site in sites.- Parameters:
- Return type:
list of DataQuality
- pycsamt.metadata.quality.quality_dataframe(sites, *, api=None)[source]#
Return a
pandas.DataFramewith one quality row per station.Columns:
station,n_freq,freq_min,freq_max,overall,mean_coverage, and onecov_<component>column per impedance component.