2.32.4.21. pycsamt.iot.monitoring#
Functions
|
Convenience wrapper around |
|
Return monitoring statuses as a pyCSAMT table. |
|
Return telemetry packets as a pyCSAMT table. |
|
Summarise telemetry packet counts by device and topic. |
Classes
|
Electromagnetic survey methods recognised by IoT monitoring. |
|
Thresholds used to monitor AMT/MT/CSAMT telemetry streams. |
|
Overall status level for a monitored telemetry stream. |
|
Status returned by |
|
Monitor field telemetry from AMT, MT, CSAMT, and related surveys. |
- class pycsamt.iot.monitoring.EMMethod(*values)[source]
-
Electromagnetic survey methods recognised by IoT monitoring.
- AMT = 'amt'
- MT = 'mt'
- CSAMT = 'csamt'
- CSEM = 'csem'
- TDEM = 'tdem'
- TEM = 'tem'
- UNKNOWN = 'unknown'
- class pycsamt.iot.monitoring.MonitoringConfig(method=EMMethod.UNKNOWN, expected_interval_s=None, max_latency_s=30.0, max_gap_s=None, min_packet_success_rate=0.95, min_edge_acceptance_rate=0.85, min_battery_v=None, max_clock_offset_ms=None, frequency_band_hz=None, required_channels=<factory>, metadata=<factory>)[source]
Bases:
PyCSAMTObject,MetadataMixinThresholds used to monitor AMT/MT/CSAMT telemetry streams.
- Parameters:
- min_packet_success_rate: float = 0.95
- min_edge_acceptance_rate: float = 0.85
- classmethod for_method(method, **overrides)[source]
Build a config seeded with a method’s canonical defaults.
The expected frequency band and required channels are taken from the method’s
MethodProfile, so the method-mismatch, missing-channel, and out-of-band checks inTelemetryMonitorbecome method-aware without any manual threshold tuning. Any keyword overrides win over the defaults.Example
>>> cfg = MonitoringConfig.for_method("csamt", min_battery_v=11.5) >>> cfg.required_channels ['ex', 'ey', 'hx', 'hy']
- Parameters:
- Return type:
- validate()[source]
Validate and normalise monitoring thresholds.
- Return type:
None
- class pycsamt.iot.monitoring.MonitoringLevel(*values)[source]
-
Overall status level for a monitored telemetry stream.
- OK = 'ok'
- WARNING = 'warning'
- CRITICAL = 'critical'
- NO_DATA = 'no_data'
- class pycsamt.iot.monitoring.MonitoringStatus(level, n_packet, packet_success_rate, edge_acceptance_rate, mean_latency_s, max_gap_s, battery_min_v, clock_offset_max_ms, methods=<factory>, stations=<factory>, channels=<factory>, frequency_min_hz=nan, frequency_max_hz=nan, issues=<factory>)[source]
Bases:
PyCSAMTObjectStatus returned by
TelemetryMonitor.- Parameters:
- level: MonitoringLevel | str
- n_packet: int
- packet_success_rate: float
- edge_acceptance_rate: float
- mean_latency_s: float
- max_gap_s: float
- battery_min_v: float
- clock_offset_max_ms: float
- frequency_min_hz: float = nan
- frequency_max_hz: float = nan
- validate()[source]
Validate and normalise status fields.
- Return type:
None
- class pycsamt.iot.monitoring.TelemetryMonitor(config=None)[source]
Bases:
PyCSAMTObjectMonitor field telemetry from AMT, MT, CSAMT, and related surveys.
- Parameters:
config (MonitoringConfig | None)
- assess(packets, *, now=None)[source]
Assess a telemetry packet stream against configured thresholds.
- Parameters:
- Return type:
- pycsamt.iot.monitoring.assess_telemetry(packets, *, config=None, now=None)[source]
Convenience wrapper around
TelemetryMonitor.- Parameters:
packets (Iterable[TelemetryPacket | Mapping[str, Any]])
config (MonitoringConfig | None)
now (float | None)
- Return type:
- pycsamt.iot.monitoring.monitoring_status_table(statuses, *, api=None)[source]
Return monitoring statuses as a pyCSAMT table.
- Parameters:
statuses (MonitoringStatus | Iterable[MonitoringStatus])
api (bool | None)
- Return type:
- pycsamt.iot.monitoring.packet_table(packets, *, api=None)[source]
Return telemetry packets as a pyCSAMT table.