技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
signal-analysis【数据与研究】The signal-analysis skill guides agents through ObsPy waveform filtering, trigger/STA-LTA detection, correlation, spectral quality control, response correction or simulation, array processing, and stateful real-time analysis with explicit sampling assumptions.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill after a Trace/Stream is available and the task is waveform
processing, detection, correlation, spectral QC, response handling, array
beamforming, or packet-by-packet processing. Keep raw data intact with
.copy() before any in-place operation. This skill does not acquire remote
waveforms, solve travel times/geodesy, or make plots the primary deliverable.
Trace or Stream with numeric samples, accurate
stats.sampling_rate, and (for time-aware work) starttime/trace IDs.
Before processing, report sample rate, duration, gaps/overlaps, masked data,
units, and response metadata status.nsta < nlta; never silently reuse
thresholds or windows from another sampling rate.Trace.filter, Stream.filter, trigger, simulate,
remove_response, merge, and realtime append/processes mutate or consume
data/state. Copy first when raw data or packet data must remain available.For a deterministic CPU smoke check, run the bundled helper (it creates only in-memory data):
python scripts/signal_smoke.py --help
python scripts/signal_smoke.py
See api-reference.md for public signatures and processing-recipes.md for complete recipes. Use troubleshooting.md when a processing gate fails.
Trace.filter/Stream.filter for labeled waveforms;
use obspy.signal.filter functions only when operating on arrays and pass
df. Prefer zerophase=True for offline phase-preserving analysis; use
causal/stateful processing for real time.trigger_onset.
Preserve the original waveform because Trace.trigger overwrites samples.
Use coincidence_trigger for weighted multi-trace evidence.correlate for bounded shifts, correlate_template
for a search trace, and correlation_detector for thresholded detections.
Report lag convention, peak value, normalization, and detection distance.PPSD only with a stable ID/sample rate and
response metadata (Inventory, Parser/RESP, or an explicit PAZ dictionary).
For remove_response, an Inventory or attached response is mandatory;
without it, stop and request metadata rather than guessing. For controlled
PAZ simulation, use Trace.simulate/simulate_seismometer with complete
poles/zeros/gain (and sensitivity when sensitivity correction is enabled),
taper, zero-mean, and an appropriate water level or pre-filter.array_processing requires equal sample rates and
per-trace coordinates plus a declared coordinate system. RtTrace requires
matching IDs, sample rates, dtypes, calibration, and contiguous packet
timing; register stateful processes and reset/raise on gaps as appropriate.inventory=None unless a valid response is
already attached; missing response is a prerequisite failure, not a reason to
substitute a guessed PAZ.coincidence_trigger maps its sta/lta options from seconds per
trace; direct STA/LTA functions require integer samples.pre_filt=(f1, f2, f3, f4) and inspect the response plot or
spectral bounds when physical amplitudes matter.