Skip to content

concord-consortium/hurricane-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hurricane Model

Early research spike notes

https://docs.google.com/document/d/1gifmTd1_kFAumL7-1Pm2XibsnBZrrwkkLtW2eknzxI4/edit?usp=sharing

Global wind data

Global wind pattern is one of the most important factors affecting hurricane path. Thus, it's important to use accurate data. This model will use averaged, real world data coming from NOAA:

https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis2.pressure.html

NOAA provides separate dataset for U and V components of the wind speed vector. wind-data-netcdf directory contains monthly mean data (10m level) for four months representing different seasons:

  • December -> winter
  • March -> spring
  • June -> summer
  • September -> fall

Original data is in NetCDF format (binary). It's been converted to JSON using scripts/convert-wind-data.js script:

node scripts/convert-wind-data.js <u-dataset> <v-dataset> <json-file-output> <format-geosjon|simple>, e.g.:  
node scripts/convert-wind-data.js wind-data-netcdf/dec-u.nc wind-data-netcdf/dec-v.nc wind-data-json/dec-wind.json geojson

This script depends on ncdump tool. On OSX, it's part of the netcdf package that can be installed using Homebrew:

brew install netcdf

GeoJSON format has been used to visualize this data on http://geojson.io and compare to non-averaged, real data for a single day in a given month. The main purpose of that was to check whether some local, temporal pressure systems are visible in the NOAA averaged data. It would be problematic, as these pressure systems are supposed to be added by users of our model. Fortunately, it seems the averaged data does not present them. wind-data-comparision contains results of this comparision. <month>-real-wind.png images come from https://earth.nullschool.net/ and they clearly show some local, temporal pressure systems in contrast to <month>-avg-wind.png images showing NOAA averaged data.

Simple format (<month>-simple.json files) will be used by the model itself. GeoJSON is a bit verbose and its main advantage is that we can simply visualize it using various online tools.

Sea Surface Temperature

Sea Surface Temperature (SST) affects intensity of the hurricane. The warmer ocean is, the more likely is the strong hurricane. This model uses data coming from NASA:

Interactive visualization:

sea-surface-temp-netcdf directory contains monthly mean data for four months representing different seasons:

  • December -> winter
  • March -> spring
  • June -> summer
  • September -> fall

Original data is in NetCDF format (binary). It's been converted to PNG images using scripts/convert-sea-surface-temp-to-png.js script.

node --max-old-space-size=4092 scripts/convert-sea-surface-temp-to-png.js <dataset> <png-file-output>, e.g.:
node --max-old-space-size=4092 scripts/convert-sea-surface-temp-to-png.js sea-surface-temp-netcdf/dec.nc sea-surface-temp-json/dec.png 

Note that --max-old-space-size=4092 param is required, as reading converted files takes a lot of memory. Points that are over land, not sea, will be transparent.

This script uses src/temperature-scale.js file to map between temperatures and colors.

The same helper is used by the simulation engine to do the reverse mapping - color to temperature. It lets us use the same image data for visualization and simulation needs. PNG has lots of advantages compared to raw JSON data. It's compressed and lets us cover area way more precisely than JSON data with similar size.

IMPORTANT If you ever change anything in src/temperature-scale.js, remember to run all the conversion scripts and generate sea surface temperature images again. They need to stay in sync with temperature scale.

Sea Surface Temperature impact on the hurricane intensity

The model rules are based on the results of this research:

https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2006GL025757

These results suggest that there's no strong correlation between SST and hurricane intensity, but there's a clear, visible SST threshold necessary for hurricane to become a major one (category 3 or more). Researchers found this value to be 28.25°C.

We're using a few generic rules to convert SST into intensity (check models/hurricane.ts class):

  • if temperature is lower than 26, the hurricane will get weaker
  • if temperature is higher than 26 but lower than 28.25, the hurricane will get stronger (most likely), but it cannot get stronger than category 2
  • if temperature is higher than 28.25, the hurricane will get stronger (most likely) and it can become a major one (category 3, 4 or 5)

All these rules use random number generator to add variability to results (to make it more similar to real life and account for other, non-SST related factors that affect hurricane strength).