pycsamt.iot.methods#

Per-method acquisition profiles for method-aware IoT QC.

EMMethod names the survey method, but on its own it does not change any threshold: an operator still has to set the expected frequency band, the required channels, and so on by hand. This module carries the canonical, method-specific knowledge that turns EMMethod into concrete QC defaults.

A MethodProfile records, per method, the typical acquisition band, the channels a valid record must carry, a nominal sample rate, and whether the method uses a controlled source or is sensitive to powerline noise. method_profile() looks one up, target_bands_for_method() breaks the band into decade sub-bands for coverage checks, and for_method() seeds a monitor from a profile.

The band edges are representative defaults, not hard standards; override them per survey when acquisition parameters differ.

Functions

method_profile(method)

Return the MethodProfile for method.

target_bands_for_method(method)

Return per-decade sub-bands spanning a method's frequency band.

Classes

MethodProfile(method, frequency_band_hz, ...)

Canonical acquisition characteristics for one EM method.

class pycsamt.iot.methods.MethodProfile(method, frequency_band_hz, required_channels, default_sample_rate_hz=None, controlled_source=False, powerline_sensitive=False, description='')[source]#

Bases: object

Canonical acquisition characteristics for one EM method.

Parameters:
method: EMMethod#
frequency_band_hz: tuple[float, float] | None#
required_channels: tuple[str, ...]#
default_sample_rate_hz: float | None = None#
controlled_source: bool = False#
powerline_sensitive: bool = False#
description: str = ''#
property is_natural_source: bool[source]#

True for passive methods (no transmitter).

as_dict()[source]#
Return type:

dict[str, Any]

pycsamt.iot.methods.method_profile(method)[source]#

Return the MethodProfile for method.

Parameters:

method (EMMethod or str) – Method enum member or a name/value such as "csamt".

Returns:

The registered profile, or the UNKNOWN profile for a method with no registered defaults.

Return type:

MethodProfile

pycsamt.iot.methods.target_bands_for_method(method)[source]#

Return per-decade sub-bands spanning a method’s frequency band.

These feed coverage checks such as estimate_frequency_coverage(), which report the fraction of target bands a recording actually resolves. A method without a defined band (e.g. time-domain) returns an empty list.

Parameters:

method (EMMethod | str)

Return type:

list[tuple[float, float]]