Hurricane Helene, after its devastating landfall in Florida as a Category 4 storm, continues to wreak havoc across the Southeastern US. The storm has left a trail of destruction, with millions without power, catastrophic flooding, and a rising death toll. As of now, Helene, downgraded to a tropical storm, is stalling over the Tennessee Valley, threatening further rainfall and potential landslides.
To track the development of this hurricane, I wrote some code that generate a video from NOAA satellite image data. You can easily import this image data with Wolfram Language from the NOAA web site. For example, this is around the time Helene made landfall:
In[]:=
Import["https://cdn.star.nesdis.noaa.gov/FLOATER/data/AL092024/GEOCOLOR/20242710230_GOES16-ABI-FL-GEOCOLOR-AL092024-1000x1000.jpg"]
Out[]=
The images are updated every ten minutes. To get an image for any time of day you can use StringTemplate to parameterize the date part:
In[]:=
template=StringTemplate["https://cdn.star.nesdis.noaa.gov/FLOATER/data/AL092024/GEOCOLOR/`date`_GOES16-ABI-FL-GEOCOLOR-AL092024-1000x1000.jpg"]
Out[]=
TemplateObject
You can then call this TemplateObject with an appropriately formatted DateString. Note that NOAA uses the “Zulu” time zone here:
In[]:=
date=DateObject[{2024,9,27,2,30,0},TimeZone->"Zulu"]dstring=DateString[date,{"Year","ISOYearDay","Hour","Minute"}]template[<|"date"->dstring|>]
Out[]=
Out[]=
20242710230
Out[]=
https://cdn.star.nesdis.noaa.gov/FLOATER/data/AL092024/GEOCOLOR/20242710230_GOES16-ABI-FL-GEOCOLOR-AL092024-1000x1000.jpg
We can wrap this functionality up into a function called “getSatelliteImage”. This function also uses URLDownload to locally cache downloaded images to avoid downloading the same image more than once:
In[]:=
getSatelliteImage[date_DateObject]:=Module[{template,dstring},template=StringTemplate["https://cdn.star.nesdis.noaa.gov/FLOATER/data/AL092024/GEOCOLOR/`date`_GOES16-ABI-FL-GEOCOLOR-AL092024-1000x1000.jpg"];dstring=DateString[date,{"Year","ISOYearDay","Hour","Minute"}];If[FileType["~/helene/"<>dstring<>".jpg"]=!=File,URLDownload[template[<|"date"->dstring|>],"~/helene/"<>dstring<>".jpg"]];Import["~/helene/"<>dstring<>".jpg"]]
We can now loop over multiple days/hours/minutes and use FrameListVideo to construct a video that shows Helene’s development over time:
video=FrameListVideo[Select[Flatten[Table[Table[Table[getSatelliteImage[DateObject[{2024,9,day,hour,min,00},TimeZone->"Zulu"]],{min,0,50,10}],{hour,0,23,1}],{day,23,27}]],ImageQ]];
Finally we can publish the video in the Wolfram Cloud:
In[]:=
CloudPublish[ExportForm[video,"MP4"],"helene.mp4"]
Out[]=
Out[]=
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Tracking Hurricane Helene
by Arnoud Buzing
Wolfram Community, STAFF PICKS, September 27, 2024
https://community.wolfram.com/groups/-/m/t/3286126
by Arnoud Buzing
Wolfram Community, STAFF PICKS, September 27, 2024
https://community.wolfram.com/groups/-/m/t/3286126