get_signal_info
Retrieve metadata for a stored signal without loading its full array. Returns sampling rate, unit, shape, timestamps, and companion source metadata like RPM and reference frequencies.
Instructions
Get metadata for a stored signal without loading the full array.
Includes the COMPLETE companion-metadata dict (source_metadata: rpm/
shaft_speed, reference frequencies, ...) alongside the repository
fields (sampling_rate, declared signal_unit, shape, timestamps).
Args:
ctx: MCP context. Unused — see this module's docstring on logging.
signal_id: ID of a signal previously loaded via load_signal.
Returns:
StoredSignalInfo with source_metadata populated from the companion
_metadata.json (empty dict when the file has none).
Raises:
ValueError: If the signal_id is not in the repository.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| signal_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| shape | Yes | Shape of the signal array | |
| filepath | Yes | Original file path | |
| signal_id | Yes | Unique identifier for the stored signal | |
| duration_s | No | Duration in seconds | |
| raw_format | No | EFFECTIVE raw-binary decode parameters (sample_format, byte_order, n_channels, channel_index, header_offset, scale_factor) after the explicit > companion > default merge — recorded as provenance so get_signal_info can answer 'how was this file decoded'. None for self-describing formats. | |
| size_bytes | Yes | Approximate memory size in bytes | |
| measurement | No | Normalized measurement identity declared in the companion's "measurement" object: asset_id, measurement_point_id, acquired_at (ISO 8601 normalized to UTC), timezone_declared, timestamp_suspect, rpm, load, operating_state, sensor_id, direction, declared_by, measurement_id (first 16 hex of the SHA-256 of the file bytes plus the channel index), channel_index, content_sha256 (full digest of the file bytes) and size_bytes (file size). This block is AUTHORITATIVE over the verbatim object kept in source_metadata. None when the companion declares no measurement object (the file behaves exactly as before). The value RETURNED BY load_signal carries, in addition, the outcome of the asset-ledger registration: ledger_status ('recorded' | 'already_recorded' | 'superseded' | 'not_recorded'), reason (None, or why the status or the snapshot is not nominal), changed (keys that differ from the previous declaration of the same measurement, 'location' when the file moved), reattributed_from (asset the measurement was recorded under by mistake, or None), declaration_version, snapshot_status ('complete' | 'partial' | 'failed' | 'skipped'), snapshot_id, processing_id (the snapshot lineage), comparability ({grade, qualifications} against the current declaration of the measurement point, informational, never stored) and missing ({block: {reason, remedy}} of the snapshot blocks the declared context could not support). get_signal_info and list_signals show the identity only. | |
| num_samples | Yes | Number of samples | |
| signal_unit | No | DECLARED signal unit — from load_signal(signal_unit=...) or the companion _metadata.json ('signal_unit' field). Never guessed. None means undeclared: ISO severity verdicts will be refused until the unit is declared. | |
| sampling_rate | No | Sampling rate in Hz (must be positive when set) | |
| load_timestamp | Yes | ISO 8601 timestamp when signal was loaded | |
| source_metadata | No | Complete companion _metadata.json of the source file (rpm/shaft_speed, reference frequencies, ...). Empty when the file has no companion metadata. | |
| companion_warning | No | Set when a companion _metadata.json exists but could not be used (not valid JSON, or not a JSON object): names the file and the case, and the signal was loaded exactly as if it had no companion. None when the companion was read fine or is absent. |