cosmicraysandearthquakes/claude.md
root e5a812fa14 Initial commit: full analysis pipeline source code
Scripts 01-08 implement the complete cosmic-ray/earthquake correlation
analysis from data ingestion through out-of-sample validation and
combined timeseries sinusoid fitting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 02:45:10 +02:00

35 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cosmic Ray / Earthquake Correlation Study
## Scientific context
Testing Homola et al. 2023 (JASTP 247, 106068, DOI 10.1016/j.jastp.2023.106068)
which claims a 6σ correlation between cosmic ray rate variations and global seismic
activity at a 15-day lag, with ~11-year periodicity. Prior replication attempt
using independent NMDB data failed. This project is a rigorous methodological
replication + stress test.
## Key hypotheses to test
1. The 15-day lag signal survives phase-randomised surrogate null models
2. The signal survives solar cycle detrending (both series share an ~11-year component)
3. The signal is stable across NMDB station subsets
4. The signal is stable across time windows (e.g., 1980-95, 1995-2010, 2005-19)
5. The signal appears with seismic moment (M₀ ∝ 10^(1.5Mw)) not raw magnitude sum
## Data sources
- NMDB: http://nest.nmdb.eu (44 stations, pressure-corrected hourly neutron counts)
- USGS: earthquake catalogue (M≥4.5 for completeness)
- SIDC/KSO: daily sunspot numbers
- Reference: Pierre Auger scaler data (optional, secondary)
## Hardware
- CPU: Xeon E5-2680 v4 (14 physical / 28 logical cores)
- RAM: 60 GB
- GPU: Nvidia M40, 12 GB VRAM, compute capability 5.2 (CUDA 11.x max)
- Prefer CuPy over PyTorch for FFT work; M40 does not support bfloat16
## Code standards
- Python 3.11+, type hints required for public functions
- pytest for all data-transformation functions
- Keep raw data in `data/raw/`, processed in `data/processed/`, results in `results/`
- All station metadata (lat, lon, altitude, rigidity cutoff) in `config/stations.yaml`
- Seed all random operations; log seed + git SHA in every results file
- Use `polars` or `pandas` with `pyarrow` backend (not default pandas) for speed