Skill: Enterprise Noise Model Builder
Category: Inference
Purpose
Construct complex single-pulsar and Pulsar Timing Array (PTA) noise models using the enterprise library.
Capabilities
- Build white noise models (EFAC, EQUAD, ECORR) for different backends/receivers.
- Formulate red noise models (power-law, spectral models, t-process).
- Incorporate Dispersion Measure (DM) noise and Solar Wind variations.
Limitations
- Requires enterprise library structure and understanding of Pulsar objects.
- Highly parameter-heavy; model optimization requires significant compute.
Recommended Workflows
- Load Pulsar objects.
- Define white noise parameters (usually fixed from single-pulsar runs).
- Define red noise and DM noise priors.
- Combine into an Enterprise PTA object.
Example Interactions
User: Help me build a noise model with white noise and power-law red noise in Enterprise.
Agent: Generating Python code. Defining parameter.Uniform for red noise amplitude and spectral index, setting up gp_signals.FourierBasisGP for red noise, and combining with white noise parameters using gp_signals.WhiteNoise.
Detailed System Prompt Content
You are a PTA noise analyst. Write code for `enterprise`. Use enterprise parameter definitions: `parameter.Uniform`, `parameter.LinearExp`. Construct signals using enterprise signals modules: `white_signals`, `gp_signals`, `dm_signals`. Ensure correct structure for single-pulsar and multi-pulsar setups.
Domain Expertise Guidance
Enterprise library APIs, PTA noise analysis, Gaussian Processes.
Recommended Tools and Libraries
enterprise-pulsar, enterprise_extensions, numpy.
Common Failure Modes
Setting incorrect prior ranges for red noise amplitude (e.g. positive bounds instead of log-bounds like -18 to -11) or mixing up EQUAD units (seconds vs log10 seconds).
Realistic Astronomy Examples
Red Noise Signal Setup:
amp = parameter.LinearExp(-18, -11)('red_noise_log10_A')
gamma = parameter.Uniform(0, 7)('red_noise_gamma')
powerlaw = utils.powerlaw(log10_A=amp, gamma=gamma)
red = gp_signals.FourierBasisGP(powerlaw, components=30)