2.1. pycsamt#
pycsamt v2 — Python toolbox for audio-magnetotellurics (AMT & CSAMT).
Documentation: https://pycsamt.org/ Source: earthai-tech/pycsamt
- class pycsamt.Pipeline(steps, *, name='pipeline', _output_dir=None)#
Bases:
PipelineBaseAn ordered, configurable MT processing pipeline.
- Parameters:
Examples
>>> from pycsamt.emtools.pipe import Pipeline, Step >>> pipe = Pipeline( ... [ ... ("notch", Step("NR001")), ... ("band", Step("FREQ001", band_hz=(0.001, 10000))), ... ("align", Step("FREQ004")), ... ] ... ) >>> print(pipe)
- append(label, step)#
Add step to the end of the pipeline.
Returns self so calls can be chained.
- insert(idx, label, step)#
Insert step at position idx (0-based).
Returns self.
- remove(label)#
Remove the first step whose label matches label.
Returns self.
- replace(label, step)#
Replace the step labelled label with step.
Returns self.
- run(sites, *, outdir=<object object>, save_plots=True, save_edis=True, save_report=True, api=None, cache=False, on_step=None, history=False)#
Run all steps in order and return a
PipelineResult.- Parameters:
outdir (Any) – Root output directory. Falls back first to the pipeline’s own
_output_dir(set byfrom_yaml), then tooutput_root.save_plots (bool) – Generate and save QC figures for each step.
save_edis (bool) – Write processed EDI files after the final step.
save_report (bool) – Write HTML and/or text reports to outdir.
api (Any) – Optional
PipelineAPIConfigoverride. WhenNonethe global singleton is used.cache (bool | str | Path) –
False(default) — no caching, identical behavior to every prior release.True— cache each step’s output undercache_root. A path — cache under that directory instead. A rerun of the identical call replays every already-completed step from cache instead of recomputing it — this is also how an interrupted run “resumes.” See Caching And Resume for what is and isn’t safe to cache.on_step (Callable[[StepResult], None] | None) – Optional callable invoked once per step, immediately after that step’s
StepResultis built — for a fresh computation, a cache hit, or a warn/skip error alike (a step that raises underon_step_error="raise"never gets aStepResultand so never fires this either, same as today). An exception raised by on_step itself is caught and warned, never allowed to corrupt or abort the run. This is the hook a notebook, a script, or a future GUI integration would use to observe a run in progress — see Live Observability.history (bool | str | Path) –
False(default) — no history logged.True— append a compact one-line JSON summary of this run tohistory_path(default~/.pycsamt/pipeline_history.jsonl). A path — log to that file instead. Read back withload_history().
- Return type:
- classmethod from_yaml(path)#
Load a pipeline from a YAML config file.
- classmethod from_json(path)#
Load a pipeline from a JSON config file.
- classmethod from_py(path)#
Load a pipeline from a Python config file.
The file must expose a
pipeline_configdict.
- classmethod from_preset(name, pipeline_name=None)#
Build a pipeline from a named preset.
- Parameters:
- Return type:
See also
pycsamt.emtools.pipe.preset_catalogue
- to_yaml(path)#
Write this pipeline config to path as YAML.
- to_json(path)#
Write this pipeline config to path as JSON.
- describe()#
Return a
pandas.DataFramedescribing the pipeline steps.- Return type:
- class pycsamt.Step(code_or_name, **params)#
Bases:
objectA configured pipeline step.
- Parameters:
Examples
>>> from pycsamt.emtools.pipe import Step >>> Step("NR001", mains_hz=50) Step [NR001] Power-line Harmonic Notch (mains_hz=50, n_harm=30, tol_hz=0.08) >>> Step("notch_powerline") Step [NR001] Power-line Harmonic Notch (mains_hz=50, n_harm=30, tol_hz=0.08)
- transform(sites)#
Apply the step’s transform function to sites.
If the step has
returns_sites=False(diagnostic-only), the input sites is returned unchanged.
- generate_qc_plots(sites, before=None)#
Call QC plot functions on sites and return
(name, Figure)pairs.before is the step’s input; comparison plots (before/after) need it and are skipped when it is not given (see
call_qc_fn()).Return values are normalised to
matplotlib.figure.Figureso the pipeline can callsavefigregardless of whether the underlying emtools function returned aFigureor anAxesobject. Failures are silently skipped so that a broken QC plot never kills a successful processing run.
- pycsamt.configure_pipe(**kw)#
Configure the global
PYCSAMT_PIPEsingleton.- Parameters:
kw (Any)
- Return type:
None
- pycsamt.reset_pipe()#
Reset
PYCSAMT_PIPEto package defaults.- Return type:
None