Source code for pycsamt.stratagem
# Author: LKouadio <etanoyau@gmail.com>
# License: LGPL-3.0
"""
pycsamt.stratagem
=================
Tools for ingesting and pre-processing AMT surveys collected with
the Geometrics/EMI Stratagem hardware.
Workflow
--------
Raw Stratagem files (.HXX / .MDX)
→ WinGLink EDI export (external tool, required once)
→ :class:`EDIBatch` load the EDI directory
→ :class:`CoordinateInjector` inject GPS coords (CSV / XLS / XLSX)
→ export to corrected EDIs ready for emtools processing
Classes
-------
StratagemRawReader
Parse raw 19-column Stratagem ASCII files for QC diagnostics and
SNR masks. Does not produce EDI output.
EDIBatch
Load a WinGLink-exported EDI directory as a list of
:class:`~pycsamt.seg.edi.EDIFile` objects with natural-sort ordering.
CoordinateInjector
Read a GPS coordinate table (CSV / XLS / XLSX), convert projected
coordinates to WGS84, and inject them into EDI ``>HEAD`` sections.
StationLocator
Detect or specify the mapping between EDI acquisition order and GPS
table row order (forward / reversed / custom index).
"""
from .gis_correct import CoordinateInjector, StationLocator
from .io import EDIBatch, StratagemRawReader
from .process import NoiseRemover, StaticShiftCorrector
from .qc import FrequencyFilter, QualityController
from .rename import EDIRenamer, EDIWriter
from .survey import StratagemSurvey
__all__ = [
# Phase 1 – I/O & coordinate injection
"EDIBatch",
"StratagemRawReader",
"CoordinateInjector",
"StationLocator",
# Phase 2 – QC & processing
"FrequencyFilter",
"QualityController",
"NoiseRemover",
"StaticShiftCorrector",
# Phase 3 – rename & orchestration
"EDIRenamer",
"EDIWriter",
"StratagemSurvey",
]