# Reproducerea calculelor / Reproducing the calculation Acest pachet păstrează exact cele 35 de fișiere NOAA folosite, manifestul cu SHA-256, codul analizei și programele de verificare. Arhiva publică NOAA se actualizează: o nouă descărcare poate produce alte rezultate. Pentru reproducerea ediției revizuite din 4 septembrie 2026, folosiți fișierele incluse. This package preserves the exact 35 NOAA input files, their SHA-256 manifest, the analysis code and verification programs. NOAA's live archive changes. Use the included files to reproduce the revised 4 September 2026 edition; a new download may produce different results. ## Run Requires Python 3.11 or later, NumPy 2.3.5 and pandas 2.2.3. From the extracted project directory: ```sh python3 -m venv .venv . .venv/bin/activate python -m pip install -r requirements.txt python scripts/analyze.py python scripts/test_analysis.py python scripts/verify_independent.py python scripts/check_source_sensitivity.py ``` The analysis writes estimates, the fixed Constanța episode history and station configurations to `public/data/` and an observation-quality audit to `research/data-quality.json`. Analysis takes several minutes. It uses no network and makes no external changes. Test results go to `qa/numerical-checks.json`; verification and sensitivity evidence go to `research/`. The public calculator reads these precomputed files. Its values are station-specific historical frequencies, not current forecasts, a national population estimate or causal effects of rituals. ## Verify the frozen inputs ```sh python - <<'PY' from pathlib import Path import hashlib, json root = Path('.') manifest = json.loads((root / 'data/manifest.json').read_text()) for item in manifest['files']: assert hashlib.sha256((root / item['file']).read_bytes()).hexdigest() == item['sha256'], item['file'] print('Verified', len(manifest['files']), 'input hashes') PY ``` `scripts/acquire.py` can acquire the current Romanian PRCP inventory into an empty project. It keeps existing raw files, so use a separate directory for a fresh snapshot. It writes a new manifest; do not overwrite the frozen edition when comparing versions. ## Definitions and scope - Periods: 1961–2025, 1961–1990, 1991–2025. Seasons: summer June–August, warm April–September, cold October–March, or all months. Season refers only to the assessment day. The preceding spell and the 28 subsequent days may extend into adjacent seasons. - Qualifying precipitation: strictly greater than 1, 5 or 10 mm/day. Default: Constanța, 1961–2025, summer assessment dates, >5 mm/day, 30 completed preceding days and a seven-day outcome. - Duration: completed days at or below threshold since an observed preceding day above it. Zero identifies the qualifying wet day itself. - Missing values, nonblank quality flags and presumed-zero measurement flags are excluded. No interpolation. - Each future deadline uses the same cohort with all 28 subsequent days observed; the anchor is excluded from the outcome. - Eligibility: at least 90% period coverage and 25 years with at least 90% coverage. Display rule: at least 30 anchors and 10 anchor years. - Intervals: 1,000 shared calendar-year resampling draws, seed 20260904 plus period length in years. These are pointwise intervals conditional on the observation process. Degenerate all-success/all-failure intervals are hidden. - The two weighted calendar references are descriptive and may include overlapping outcomes. They do not identify causal effects. ## Revised opening and verification scope The default case contains 64 eligible episodes across 51 years. Seven-day rain above 5 mm occurs in 12/64 episodes, or 18.75%; fourteen-day rain occurs in 28/64, or 43.75%. The dated history at `public/data/history.json` describes this fixed example. Null next-rain fields mean that no day above the threshold occurred in the 28-day observed window; they make no claim about later dates. The full analysis produces 31,104 rows in 864 configurations. Ten production boundary tests and whole-output invariants passed. Adding the summer selection preserved every former all-month, warm-season and cold-season configuration. The independent verifier uses a separate raw-data parser and does not import production analysis functions. It recounts all 1,296 Constanța rows and all 1,296 Băneasa rows, 2,592 in total, and reconstructs every dated history record. Its 20 fixture assertions test the independent implementation. It separately reproduces 1,000 bootstrap draws for the new Constanța seven-day example and the previous Băneasa warm-season example. General invariants cover all stations; there is no independent raw-data recount of every station. The source-S sensitivity program now evaluates the Constanța opening. Excluding its 30 source-S days from June 2024 leaves 62 episodes and 11 seven-day outcomes, or 17.74%, compared with 18.75% in the primary calculation. It uses production helpers and is separate from the independent verification. Read `SOURCES.md`, `research/method-en.md` or `research/method-ro.md` for the current method. The two review dossiers preserve the first edition's scientific objections and add the revised verification scope. The protocols describe a future ritual study, separate from the weather calculator. NOAA data retain their source attribution. Project calculations and text: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/. The archive does not include the rejected RoClimHom data or third-party article PDFs.