# Reproducibility Package — Hurricane Occurrence Along the U.S. Gulf and Atlantic Coasts, 1900-2025

Armor Pro Windows & Doors, August 2026. Package date: 16 August 2026.

This package contains the complete analytical code, every derived CSV table, and the transcribed comparison data used in the report. It intentionally omits the large public source files; download those from the official NOAA sources below and verify the SHA-256 fingerprints in `source_checksums.txt` to reproduce the exact run.

## Inputs you must supply

| File | Source | Place at |
| --- | --- | --- |
| `ibtracs.NA.list.v04r01.csv` | NOAA/NCEI IBTrACS v04r01, North Atlantic subset (accessed August 2026) | `data/` |
| `RONI.ascii.txt` | NOAA CPC Relative Oceanic Niño Index | `data/` |

## Inputs included in this package

| File | What it is |
| --- | --- |
| `data/kms2007_fig5_return_periods.csv` | Return periods for 45 coastal sites transcribed from Keim, Muller & Stone (2007), *J. Climate* 20, 3498–3509, Fig. 5 (TS+, hurricane, major; "N+" marks censored values). Used by `compute_kms_comparison.py`. |
| `derived_tables/*.csv` | Every derived output (regenerated by `run_all.sh`). |
| `figures/`, `figures/plain/` | Web (branded) and PDF (plain) figure variants. |

## Execution

```bash
sh run_all.sh
```

Order and purpose of the stages:

1. `compute_core_fast.py` — candidate mesh (33,916 points), H50/M50 fields, hotspot optimization
2. `compute_landfalls.py` — strict landfall catalogue (incl. 1971–1982 reconstruction), L50 fields, ENSO-conditioned fields
3. `compute_wind_radii.py` — R64/R34 analyzed-envelope fields, 2004–2025
4. `compute_report_tables.py` — NHC/HURISK comparisons, radius sensitivity, ENSO rate ratios (exact conditional intervals), Poisson intervals
5. `compute_inference.py` — season block bootstrap with re-optimization (**B = 2000, seed 20260815**), dispersion tests, season-bootstrap intervals
6. `compute_position_perturbation.py` — landfall positions perturbed by era-dependent uncertainty (60 / 20 / 20→12 / 12 n mi), alone and jointly with season resampling (**B = 1000 each, seed 20260816**)
7. `compute_kms_comparison.py` — site-by-site comparison with Keim et al. (2007) at their 45 coordinates over their 1901–2005 window
8. `compute_nhc_windows.py` — H50/M50 at the eleven NHC-6 communities on 1851–2010, 1886–2010, 1900–2010, 1900–2025
9. `compute_r64_shrink.py` — R64 recomputed with every radius scaled to 85%
10. `compute_county_and_florida_checks.py` — county-integrated vs point H50 for Monroe and Miami-Dade; Florida multi-hit statistic vs Elsner & Kara (1997)
11. `make_figures.py` — all figures; house style in `figure_style.py`

Path constants live at the top of `compute_core_fast.py`; the other scripts import them. Random-number use is confined to `compute_inference.py` (seed 20260815) and `compute_position_perturbation.py` (seed 20260816) and is fully seeded, so the resampling outputs are bit-reproducible.

## Environment

Python 3.13; pandas, numpy, scipy, geopandas, shapely, pyproj, matplotlib, basemap + basemap-data-hires, Pillow. A `requirements.txt` is not pinned; the versions used are recorded in the report's Data Availability statement.

## License

Code, derived tables, and figures: CC BY 4.0. Source data remain under their NOAA terms; Keim et al. (2007) values are transcribed for comparison under fair use and are cited.
