Skip to content

This dataset is the NOAA Atlantic hurricane database best track data, https://www.nhc.noaa.gov/data/#hurdat. The data includes the positions and attributes of storms from 1975-2022. Storms from 1979 onward are measured every six hours during the lifetime of the storm. Storms in earlier years have some missing data.

Usage

storms

Format

A tibble with 19,537 observations and 13 variables:

name

Storm Name

year,month,day

Date of report

hour

Hour of report (in UTC)

lat,long

Location of storm center

status

Storm classification (Tropical Depression, Tropical Storm, or Hurricane)

category

Saffir-Simpson hurricane category calculated from wind speed.

  • NA: Not a hurricane

  • 1: 64+ knots

  • 2: 83+ knots

  • 3: 96+ knots

  • 4: 113+ knots

  • 5: 137+ knots

wind

storm's maximum sustained wind speed (in knots)

pressure

Air pressure at the storm's center (in millibars)

tropicalstorm_force_diameter

Diameter (in nautical miles) of the area experiencing tropical storm strength winds (34 knots or above). Only available starting in 2004.

hurricane_force_diameter

Diameter (in nautical miles) of the area experiencing hurricane strength winds (64 knots or above). Only available starting in 2004.

See also

The script to create the storms data set: https://github.com/tidyverse/dplyr/blob/main/data-raw/storms.R

Examples

storms
#> # A tibble: 19,537 × 13
#>    name   year month   day  hour   lat  long status         category  wind
#>    <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <fct>             <dbl> <int>
#>  1 Amy    1975     6    27     0  27.5 -79   tropical depr…       NA    25
#>  2 Amy    1975     6    27     6  28.5 -79   tropical depr…       NA    25
#>  3 Amy    1975     6    27    12  29.5 -79   tropical depr…       NA    25
#>  4 Amy    1975     6    27    18  30.5 -79   tropical depr…       NA    25
#>  5 Amy    1975     6    28     0  31.5 -78.8 tropical depr…       NA    25
#>  6 Amy    1975     6    28     6  32.4 -78.7 tropical depr…       NA    25
#>  7 Amy    1975     6    28    12  33.3 -78   tropical depr…       NA    25
#>  8 Amy    1975     6    28    18  34   -77   tropical depr…       NA    30
#>  9 Amy    1975     6    29     0  34.4 -75.8 tropical storm       NA    35
#> 10 Amy    1975     6    29     6  34   -74.8 tropical storm       NA    40
#> # ℹ 19,527 more rows
#> # ℹ 3 more variables: pressure <int>, tropicalstorm_force_diameter <int>,
#> #   hurricane_force_diameter <int>

# Show a few recent storm paths
if (requireNamespace("ggplot2", quietly = TRUE)) {
  library(ggplot2)
  storms %>%
    filter(year >= 2000) %>%
    ggplot(aes(long, lat, color = paste(year, name))) +
    geom_path(show.legend = FALSE) +
    facet_wrap(~year)
}


storms
#> # A tibble: 19,537 × 13
#>    name   year month   day  hour   lat  long status         category  wind
#>    <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <fct>             <dbl> <int>
#>  1 Amy    1975     6    27     0  27.5 -79   tropical depr…       NA    25
#>  2 Amy    1975     6    27     6  28.5 -79   tropical depr…       NA    25
#>  3 Amy    1975     6    27    12  29.5 -79   tropical depr…       NA    25
#>  4 Amy    1975     6    27    18  30.5 -79   tropical depr…       NA    25
#>  5 Amy    1975     6    28     0  31.5 -78.8 tropical depr…       NA    25
#>  6 Amy    1975     6    28     6  32.4 -78.7 tropical depr…       NA    25
#>  7 Amy    1975     6    28    12  33.3 -78   tropical depr…       NA    25
#>  8 Amy    1975     6    28    18  34   -77   tropical depr…       NA    30
#>  9 Amy    1975     6    29     0  34.4 -75.8 tropical storm       NA    35
#> 10 Amy    1975     6    29     6  34   -74.8 tropical storm       NA    40
#> # ℹ 19,527 more rows
#> # ℹ 3 more variables: pressure <int>, tropicalstorm_force_diameter <int>,
#> #   hurricane_force_diameter <int>