← 返回 Skills 市场
wu-uk

conditioning

作者 wu-uk · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ 安全检测通过
77
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install gravitational-wave-detection-conditioning
功能描述
Data conditioning techniques for gravitational wave detector data. Use when preprocessing raw detector strain data before matched filtering, including high-p...
使用说明 (SKILL.md)

Gravitational Wave Data Conditioning

Data conditioning is essential before matched filtering. Raw gravitational wave detector data contains low-frequency noise, instrumental artifacts, and needs proper sampling rates for computational efficiency.

Overview

The conditioning pipeline typically involves:

  1. High-pass filtering (remove low-frequency noise below ~15 Hz)
  2. Resampling (downsample to appropriate sampling rate)
  3. Crop filter wraparound (remove edge artifacts from filtering)
  4. PSD estimation (calculate power spectral density for matched filtering)

High-Pass Filtering

Remove low-frequency noise and instrumental artifacts:

from pycbc.filter import highpass

# High-pass filter at 15 Hz (typical for LIGO/Virgo data)
strain_filtered = highpass(strain, 15.0)

# Common cutoff frequencies:
# 15 Hz: Standard for ground-based detectors
# 20 Hz: Higher cutoff, more aggressive noise removal
# 10 Hz: Lower cutoff, preserves more low-frequency content

Why 15 Hz? Ground-based detectors like LIGO/Virgo have significant low-frequency noise. High-pass filtering removes this noise while preserving the gravitational wave signal (typically >20 Hz for binary mergers).

Resampling

Downsample the data to reduce computational cost:

from pycbc.filter import resample_to_delta_t

# Resample to 2048 Hz (common for matched filtering)
delta_t = 1.0 / 2048
strain_resampled = resample_to_delta_t(strain_filtered, delta_t)

# Or to 4096 Hz for higher resolution
delta_t = 1.0 / 4096
strain_resampled = resample_to_delta_t(strain_filtered, delta_t)

# Common sampling rates:
# 2048 Hz: Standard, computationally efficient
# 4096 Hz: Higher resolution, better for high-mass systems

Note: Resampling should happen AFTER high-pass filtering to avoid aliasing. The Nyquist frequency (half the sampling rate) must be above the signal frequency of interest.

Crop Filter Wraparound

Remove edge artifacts introduced by filtering:

# Crop 2 seconds from both ends to remove filter wraparound
conditioned = strain_resampled.crop(2, 2)

# The crop() method removes time from start and end:
# crop(start_seconds, end_seconds)
# Common values: 2-4 seconds on each end

# Verify the duration
print(f"Original duration: {strain_resampled.duration} s")
print(f"Cropped duration: {conditioned.duration} s")

Why crop? Digital filters introduce artifacts at the edges of the time series. These artifacts can cause false triggers in matched filtering.

Power Spectral Density (PSD) Estimation

Calculate the PSD needed for matched filtering:

from pycbc.psd import interpolate, inverse_spectrum_truncation

# Estimate PSD using Welch's method
# seg_len: segment length in seconds (typically 4 seconds)
psd = conditioned.psd(4)

# Interpolate PSD to match data frequency resolution
psd = interpolate(psd, conditioned.delta_f)

# Inverse spectrum truncation for numerical stability
# This limits the effective filter length
psd = inverse_spectrum_truncation(
    psd,
    int(4 * conditioned.sample_rate),
    low_frequency_cutoff=15
)

# Check PSD properties
print(f"PSD length: {len(psd)}")
print(f"PSD delta_f: {psd.delta_f}")
print(f"PSD frequency range: {psd.sample_frequencies[0]:.2f} - {psd.sample_frequencies[-1]:.2f} Hz")

PSD Parameters Explained

  • Segment length (4 seconds): Longer segments give better frequency resolution but fewer averages. 4 seconds is a good balance.
  • Low frequency cutoff (15 Hz): Should match your high-pass filter cutoff. Frequencies below this are not well-characterized.

Best Practices

  1. Always high-pass filter first: Remove low-frequency noise before resampling
  2. Choose appropriate sampling rate: 2048 Hz is standard, 4096 Hz for high-mass systems
  3. Crop enough time: 2 seconds is minimum, but may need more for longer templates
  4. Match PSD cutoff to filter: PSD low-frequency cutoff should match high-pass filter frequency
  5. Verify data quality: Plot the conditioned strain to check for issues

Dependencies

pip install pycbc

References

Common Issues

Problem: PSD estimation fails with "must contain at least one sample" error

  • Solution: Ensure data is long enough after cropping (need several segments for Welch method)

Problem: Filter wraparound artifacts in matched filtering

  • Solution: Increase crop amount or check that filtering happened before cropping

Problem: Poor SNR due to low-frequency noise

  • Solution: Increase high-pass filter cutoff frequency or check PSD inverse spectrum truncation
安全使用建议
This is a documentation-style skill that provides PyCBC code snippets and best practices for conditioning gravitational-wave strain data. Before using it: run the examples in an isolated Python virtual environment, install pycbc from official sources (PyPI or project documentation), and ensure system build dependencies for pycbc are met (pycbc can pull compiled libs). Validate the recommended cutoff, resampling rates, and crop lengths on your own data — they are typical defaults but may need tuning. Because the skill is instruction-only, it itself does not install code or access credentials; risks come from the external packages you choose to install and from applying the processing to sensitive data, so review those separately.
功能分析
Type: OpenClaw Skill Name: gravitational-wave-detection-conditioning Version: 0.1.0 The skill bundle provides legitimate documentation and code snippets for gravitational wave data processing using the PyCBC library. There are no signs of malicious intent, data exfiltration, or prompt injection; all content is strictly aligned with the stated purpose of scientific data conditioning.
能力评估
Purpose & Capability
Name/description, the step-by-step pipeline (high-pass, resample, crop, PSD), and the single declared dependency (pycbc) are all appropriate and proportional to a data-conditioning guide for gravitational-wave strain data.
Instruction Scope
SKILL.md stays within scope: it shows PyCBC calls and parameters for filtering, resampling, cropping, and PSD estimation. It does not instruct reading unrelated files, accessing credentials, or sending data to external endpoints beyond recommending installing pycbc and linking public docs.
Install Mechanism
No install spec is present; the file simply recommends 'pip install pycbc'. As an instruction-only skill this is low-risk. The recommendation references a normal public Python package rather than arbitrary downloads.
Credentials
The skill requests no environment variables, credentials, or config paths. That is proportional for an offline data-conditioning recipe.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request persistent/system-wide changes or elevated privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install gravitational-wave-detection-conditioning
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /gravitational-wave-detection-conditioning 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Bulk publish from all-task-skills-dedup
元数据
Slug gravitational-wave-detection-conditioning
版本 0.1.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

conditioning 是什么?

Data conditioning techniques for gravitational wave detector data. Use when preprocessing raw detector strain data before matched filtering, including high-p... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 77 次。

如何安装 conditioning?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install gravitational-wave-detection-conditioning」即可一键安装,无需额外配置。

conditioning 是免费的吗?

是的,conditioning 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

conditioning 支持哪些平台?

conditioning 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 conditioning?

由 wu-uk(@wu-uk)开发并维护,当前版本 v0.1.0。

💬 留言讨论