Atlantic Hurricane Data 1851-2017

A modification of the NOAA "Hurdat2" Dataset on Atlantic Hurricanes to facilitate use with the Wolfram Language

Originator: National Oceanic and Atmospheric Administration, National Hurricane Center

Examples

Basic Examples

Retrieve the resource:

In[1]:=
ResourceObject["Atlantic Hurricane Data 1851-2017"]
Out[1]=

Retrieve the default content:

In[2]:=
ResourceData["Atlantic Hurricane Data 1851-2017"]
Out[2]=

What are the most popular Atlantic hurricane names?

In[3]:=
Query[GroupBy[#ATCF &]/*Counts/*ReverseSort, First, #Name &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[3]=

A date histogram showing the times of year at which there are Atlantic hurricanes.

In[4]:=
Query[Select[#Status === "Hurricane" &]/*(DateHistogram[#, "Day", DateReduction -> "Year", ImageSize -> 300] &), #DateTime &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[4]=

When do Atlantic hurricanes make landfall?

In[5]:=
Query[Select[#Status === "Hurricane" && #Event === "Landfall" &]/*(DateHistogram[#, "Week", DateReduction -> "Year", ImageSize -> 300] &), #DateTime &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[5]=

The relationship between wind speed and pressure (log scaled), but with metric data.

In[6]:=
Query[Query[
    DeleteMissing[#, 1, 2] &]/*(Histogram3D[#, AxesLabel -> {"Wind Speed (meters/second)", "Pressure (HectoPascals)", "Count"}, ScalingFunctions -> "Log", ImageSize -> 500] &), {#Wind, #Pressure} &][
 ResourceData["Atlantic Hurricane Data 1851-2017", "Metric"]](*The nested Query is to alter the default order of operations*)
Out[6]=

Trajectory of Hurricane Katrina from 2005 with windspeed determining the area of the circle.

In[7]:=
Query[Select[#Name === "Katrina" && #DateTime > DateObject[{2004, 1, 1}] &]/*(GeoBubbleChart[#, BubbleScale -> "Area", ImageSize -> 300] &), Thread[Rule[#GeoCoordinates, #Wind]] &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[7]=

The distance of the center of Hurricane Harvey from Houston, Texas, but using miles rather than nautical miles.

In[8]:=
Query[Select[#Name === "Harvey"  && #DateTime > DateObject[{2017, 1, 1}] &]/*(DateListPlot[#, PlotLabel -> "Hurricane Harvey 2017", FrameLabel -> {"Date", "Distance (miles) from Houston, Texas"}, ImageSize -> 300] &), {#DateTime, GeoDistance[
     Entity["City", {"Houston", "Texas", "UnitedStates"}][
      "Coordinates"], #GeoCoordinates, UnitSystem -> "Imperial"]} &][
 ResourceData["Atlantic Hurricane Data 1851-2017", "Miles"]]
Out[8]=

Location of all landfalls of Category 3 (or higher) hurricanes.

In[9]:=
Query[Select[#Event === "Landfall" && #Status === "Hurricane" && #Wind >= Quantity[96, "Knots"] &]/*(GeoListPlot[#, ImageSize -> 300] &), #GeoCoordinates &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[9]=

Same data but shown as GeoHistogram. The Florida keys, the Mississippi-Louisiana border and the northeast tip of the Yucatan Peninsula look most vulnerable.

In[10]:=
Query[Select[#Event === "Landfall" && #Status === "Hurricane" && #Wind >= Quantity[96, "Knots"] &]/*(GeoHistogram[#(*,{"Total",80}*), ImageSize -> 300] &), #GeoCoordinates &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[10]=

Visualize Hurricane Sandy's windfields. (The largest of any Atlantic Hurricane).

In[11]:=
Query[Select[#Name === "Sandy" && #DateTime > DateObject[{2012, 1, 1}] &]/*(GeoGraphics[#, ImageSize -> 300] &), {ColorData["DarkRainbow"][
     0], #Primitives34, ColorData["DarkRainbow"][0.5], #Primitives50, ColorData["DarkRainbow"][1], #Primitives64} &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[11]=

Construct a sequence predictor for making "random tropical cyclones" using sequences of wind and pressure (quantized to fall within 20 mile per hour bins and 20 millibar bins). The "trick" for doing this using the built-in SequencePredict function is to quantize the wind and pressures of the storm into a small "alphabet" and then develop a Markov Chain that shows transitions between the "letters" of this "alphabet."

In[12]:=
quantizer = Floor[#/20] &;
unquantizer = 20*# &;
characterOfInteger = CharacterRange["A", "z"][[#]] &;

{sp, mapper} = Reap[Module[{sequences, mapping, stringSequences},
   sequences = Normal@Query[
       Select[Not[MissingQ[#Wind]] && Not[MissingQ[#Pressure]] &]/*
        GroupBy[#ATCF &]/*Select[Length[#] > 3 &]/*Values, All, ({QuantityMagnitude@#Wind, QuantityMagnitude@#Pressure} &)/*({quantizer[#[[1]]], quantizer[#[[2]]]} &)][
      ResourceData["Atlantic Hurricane Data 1851-2017"]];
   mapping = MapIndexed[#1 -> characterOfInteger[#2[[1]]] &, DeleteDuplicates@Flatten[sequences, 1]];
   Sow[mapping];
   stringSequences = StringJoin @@@ (sequences /. mapping);
   SequencePredict[stringSequences, FeatureExtractor -> "SegmentedCharacters"]
   ]
  ]
Out[15]=

Create the start to a tropical storm using wind and pressure. And now generate 1000 next states of the storm to develop a smoothed three dimensional histogram of the wind and pressure six hours later.

In[16]:=
stormStart = {{57, 1003}, {62, 990}, {73, 986}};
SmoothHistogram3D[
 With[{seq = StringJoin @@ Flatten[Map[
        With[{wind = #[[1]], pressure = #[[2]]}, {quantizer[wind], quantizer[pressure]}] &, stormStart] /. mapper[[1, 1]]]}, Table[unquantizer[(sp[seq, "RandomNextElement"]) /. (Reverse /@ mapper[[1, 1]])], 1000]
  ], ImageSize -> 300
 ]
Out[17]=

A geographic histogram of the location of tropical storms by month of the year (May through November shown). The output could be converted into a movie, although one might want to group by week of year rather than month to create more frames for the animation.

In[18]:=
Query[Select[#Status === "Tropical Storm" &]/*(GroupBy[
     DateValue[#DateTime, "MonthName"] &])/*
   KeyTake[{"May", "June", "July", "August", "September", "October", "November"}], GeoHistogram[#, "Hexagon", #2/120 &, ColorFunctionScaling -> False, GeoRange -> {{0, 60}, {-100, 0}}, ImageSize -> 300] &, #GeoCoordinates &][
 ResourceData["Atlantic Hurricane Data 1851-2017"]]
Out[18]=

Seth J. Chandler, "Atlantic Hurricane Data 1851-2017" from the Wolfram Data Repository (2018)  

License Information

Public domain

Data Resource History

Source Metadata

Data Downloads

Publisher Information