Module:Storm categories

This template is used to control a multitude of tropical cyclone-related templates: {{storm colour}}, {{storm name}}, {{storm sortkey}}, and {{storm icon}}. It acts as a centralized location for storm categories to avoid discrepancies between templates, allowing for the same ID to be used across all related templates.

Data is located in the following submodules:

This module exports three functions for templates: p.color, p.name, p.sortkey, and p.icon. It also provides p._color, p._name, p._sortkey, and p._icon for use in other modules.

All input IDs are case-insensitive, and all non-alphanumeric characters are stripped.

Provides the color of the given tropical cyclone category code. This comes in the format of their raw hexadecimal code. This function is available as a template at {{storm colour}}.

Code Output
<span style="padding:4px;border:1px solid black;background-color:#{{#invoke:Storm categories|color|depression}}">depression</span> depression

Provides the name of the given tropical cyclone category code. A optional basin argument can be provided as the second argument in order to slightly tweak the name of the category, if the given category definition supports it. This function is available as a template at {{storm name}}.

Code Interpreted Output
ID Basin
{{#invoke:Storm categories|name|severe}} severe (default) Severe tropical storm
{{#invoke:Storm categories|name|spr - cYcL -s TorM}} sprcyclstorm (default) Super cyclonic storm
{{#invoke:Storm categories|name|cat5}} cat5 (default) Category 5-equivalent tropical cyclone
{{#invoke:Storm categories|name|cat5|ATl}} cat5 ATl Category 5 hurricane
{{#invoke:Storm categories|name|cat5|WPac}} cat5 WPac Category 5-equivalent super typhoon

Sortkey

change

The sortkey is a number that aids in sorting categories. Using the sortkey, it is possible to automatically sort a table of tropical cyclones given their category code. Due to the ambiguous nature of sortkeys, tables may be sorted incorrectly if values from other basins were used. For categories that span multiple basins, however, (e.g. depression and storm) they are given the lowest possible sortkeys in order to achieve maximum compatibility.

This sortkey is used in {{storm sortkey}} and {{Tropical cyclone season effects (cyclone)}}, a subtemplate of {{Tropical cyclone season effects}}.

The sortkey format is as follows. Note that not all values between the given ranges were used. The arrangement of these were determined by their positions in the {{Storm colour}} template.

Basin Sortkey range
Global (unused) 90000 to 99999
Atl/EPac/SAtl 80000 to 89999
WPac 60000 to 69999
Nio 50000 to 59999
Aus/Fiji 40000 to 49999
SWio 30000 to 39999
Historical 20000 to 29999
Global 0 to 9999

A demonstration of a sortable table using these sortkeys can be found below. Note that it does not use categories outside of its own basin (in this case, the Atl/EPac/SAtl basin) and the global range.

Category Sortkey Code
cat3 80,030 {{#invoke:Storm categories|sortkey|cat3}}
cat1 80,010 {{#invoke:Storm categories|sortkey|cat1}}
cat5 80,050 {{#invoke:Storm categories|sortkey|cat5}}
cat4 80,040 {{#invoke:Storm categories|sortkey|cat4}}
depression 90 {{#invoke:Storm categories|sortkey|depression}}
cat2 80,020 {{#invoke:Storm categories|sortkey|cat2}}
Sorting table which uses different basins
Category Sortkey Code
typhoon 60,010 {{#invoke:Storm categories|sortkey|typhoon}}
potential 25 {{#invoke:Storm categories|sortkey|potential}}
cat5 80,050 {{#invoke:Storm categories|sortkey|cat5}}
svrcyclstorm 50,008 {{#invoke:Storm categories|sortkey|svrcyclstorm}}
unknown 0 {{#invoke:Storm categories|sortkey|unknown}}
supertyphoon 80,045 {{#invoke:Storm categories|sortkey|supertyphoon}}
niodepression 50,001 {{#invoke:Storm categories|sortkey|niodepression}}

Icons exist for some Storm categories for presentation purposes. This function is available as a template at {{storm icon}}. p.icon will return wikitext of an image or formatted text.

Full list of available values

change

The following table is generated by invoking the demo function of this module. Some IDs are only available as colors or icons because they existed as parameters on old non-module template implementations and cannot be feasibly aliased to a specific tropical cyclone category.

It will show any color errors, including colors which aren't compliant with the minimal Web Content Accessibility Guidelines 2.0 AA color standards (see MOS:COLOR for more information).

Legend

  1. 1.0 1.1 Overriden from original color (  #6EC1EA)
  2. 2.0 2.1 Overriden from original icon (File:Severe tropical storm icon.png)
  3. 3.0 3.1 3.2 Overriden from original icon (TC)
IconIDNameColorSortkey
BasinNameBasinSortkey
atmosriv1Category 1: Weak (Atmospheric river)#FFFFD9Atl/EPac/SAtl81200
atmosriv2Category 2: Moderate (Atmospheric river)#FFD98CAtl/EPac/SAtl81201
atmosriv3Category 3: Strong (Atmospheric river)#FF9E59[W 1]Atl/EPac/SAtl81202
atmosriv4Category 4: Extreme (Atmospheric river)#FF738A[W 1]Atl/EPac/SAtl81203
atmosriv5Category 5: Exceptional (Atmospheric river)#A188FC[W 1]Atl/EPac/SAtl81204
aus1Category 1 tropical cyclone#4DFFFFAus/Fiji40006
aus2Category 2 tropical cyclone#C0FFC0Aus/Fiji40008
aus3Category 3 severe tropical cyclone#FFD98CAus/Fiji40010
aus4Category 4 severe tropical cyclone#FF738A[W 1]Aus/Fiji40013
aus5Category 5 severe tropical cyclone#A188FC[W 1]Aus/Fiji40015
beaufort0Calm (Force 0)#FFFFFFGlobal1500
beaufort1Light Air (Force 1)#757575[W 1][W 2]Global1510
beaufort10Storm (Force 10)#C0FFC0Global1600
beaufort11Violent Storm (Force 11)#E0FFCDGlobal1610
beaufort12Hurricane-force (Force 12)#FFFFD9Global1620
beaufort2Light Breeze (Force 2)#909090[W 1]Global1520
beaufort3Gentle Breeze (Force 3)#B7B7B7[W 1]Global1530
beaufort4Moderate Breeze (Force 4)#D2D2D2Global1540
beaufort5Fresh Breeze (Force 5)#F1F1F1Global1550
beaufort6Strong Breeze (Force 6)#1591DE[W 1]Global1560
beaufort7Near Gale (Force 7)#6EC1EA[W 1]Global1570
beaufort8Gale (Force 8)#5EE0F5Global1580
beaufort9Strong Gale (Force 9)#4DFFFFGlobal1590
cat1atlCategory 1 hurricane#FFFFD9Atl/EPac/SAtl80010
defaultCategory 1-equivalent tropical cyclone
epacCategory 1 hurricane
satlCategory 1 hurricane
wpacCategory 1-equivalent typhoon
cat2atlCategory 2 hurricane#FFD98CAtl/EPac/SAtl80020
defaultCategory 2-equivalent tropical cyclone
epacCategory 2 hurricane
satlCategory 2 hurricane
wpacCategory 2-equivalent typhoon
cat3atlCategory 3 hurricane#FF9E59[W 1]Atl/EPac/SAtl80030
defaultCategory 3-equivalent tropical cyclone
epacCategory 3 hurricane
satlCategory 3 hurricane
wpacCategory 3-equivalent typhoon
cat4atlCategory 4 hurricane#FF738A[W 1]Atl/EPac/SAtl80040
defaultCategory 4-equivalent tropical cyclone
epacCategory 4 hurricane
satlCategory 4 hurricane
wpacCategory 4-equivalent typhoon
cat5atlCategory 5 hurricane#A188FC[W 1]Atl/EPac/SAtl80050
defaultCategory 5-equivalent tropical cyclone
epacCategory 5 hurricane
satlCategory 5 hurricane
wpacCategory 5-equivalent super typhoon
criticalrCritical Risk#FF738A[W 1]Atl/EPac/SAtl84101
criticalriskCritical Risk#FF738A[W 1]Atl/EPac/SAtl84101
csCyclonic storm#4DFFFFNIO50006
cyclstormCyclonic storm#4DFFFFNIO50006
dTropical depression#1591de[1][W 1]Global90
TCd0Abnormally Dry#FFFFD9Atl/EPac/SAtl81100
TCd1Moderate Drought#FFD98CAtl/EPac/SAtl81101
TCd2Severe Drought#FF9E59[W 1]Atl/EPac/SAtl81102
TCd3Extreme Drought#FF738A[W 1]Atl/EPac/SAtl81103
TCd4Exceptional Drought#A188FC[W 1]Atl/EPac/SAtl81104
ddDeep depression#6EC1EA[W 1]NIO50002
deepdepressionDeep depression#6EC1EA[W 1]NIO50002
depressionTropical depression#6EC1EA[W 1]Global90
diTropical disturbance#1591DE[W 1]Global80
disturbanceTropical disturbance#1591DE[W 1]Global80
TCdrought0Abnormally Dry#FFFFD9Atl/EPac/SAtl81100
TCdrought1Moderate Drought#FFD98CAtl/EPac/SAtl81101
TCdrought2Severe Drought#FF9E59[W 1]Atl/EPac/SAtl81102
TCdrought3Extreme Drought#FF738A[W 1]Atl/EPac/SAtl81103
TCdrought4Exceptional Drought#A188FC[W 1]Atl/EPac/SAtl81104
ef0EF0 tornado#4DFFFFGlobal1000
ef1EF1 tornado#FFFFD9Global1010
ef2EF2 tornado#FFD98CGlobal1020
ef3EF3 tornado#FF9E59[W 1]Global1030
ef4EF4 tornado#FF738A[W 1]Global1040
ef5EF5 tornado#A188FC[W 1]Global1050
efuEFU tornado#CCCCCCGlobal1001
elevatedrElevated Risk#FF9E59[W 1]Atl/EPac/SAtl84100
elevatedriskElevated Risk#FF9E59[W 1]Atl/EPac/SAtl84100
enhancedriskEnhanced Risk#FF9E59[W 1]Atl/EPac/SAtl84003
enhrEnhanced Risk#FF9E59[W 1]Atl/EPac/SAtl84003
TCensomenENSO Moderate El Nino#D46356[W 1][W 2]Global202
TCensomlnENSO Moderate La Nina#3A90D2[W 1]Global206
TCensonENSO Neutral#ACACAC[W 1]Global200
TCensosenENSO Strong El Nino#E73E2B[W 1][W 2]Global203
TCensoslnENSO Strong La Nina#0082E6[W 1][W 2]Global205
TCensovsenENSO Very Strong El Nino#FA1900[W 1][W 2]Global204
TCensowenENSO Weak El Nino#C18881[W 1]Global201
TCensowlnENSO Weak La Nina#739EBF[W 1]Global207
escsExtremely severe cyclonic storm#FF738A[W 1]NIO50015
esvrcyclstormExtremely severe cyclonic storm#FF738A[W 1]NIO50015
etExtratropical cyclone#CCCCCCGlobal50
exExtratropical cyclone#CCCCCCGlobal50
extratropicalExtratropical cyclone#CCCCCCGlobal50
extremerExtreme risk#A188FC[W 1]Atl/EPac/SAtl84102
extremeriskExtreme risk#A188FC[W 1]Atl/EPac/SAtl84102
f0Calm (Force 0)#FFFFFFGlobal1500
f1Light Air (Force 1)#757575[W 1][W 2]Global1510
f10Storm (Force 10)#C0FFC0Global1600
f11Violent Storm (Force 11)#E0FFCDGlobal1610
f12Hurricane-force (Force 12)#FFFFD9Global1620
f2Light Breeze (Force 2)#909090[W 1]Global1520
f3Gentle Breeze (Force 3)#B7B7B7[W 1]Global1530
f4Moderate Breeze (Force 4)#D2D2D2Global1540
f5Fresh Breeze (Force 5)#F1F1F1Global1550
f6Strong Breeze (Force 6)#1591DE[W 1]Global1560
f7Near Gale (Force 7)#6EC1EA[W 1]Global1570
f8Gale (Force 8)#5EE0F5Global1580
f9Strong Gale (Force 9)#4DFFFFGlobal1590
fcFunnel Cloud#6EC1EA[W 1]Global1201
fiji1Category 1 tropical cyclone#4DFFFFAus/Fiji40006
fiji2Category 2 tropical cyclone#C0FFC0Aus/Fiji40008
fiji3Category 3 severe tropical cyclone#FFD98CAus/Fiji40010
fiji4Category 4 severe tropical cyclone#FF738A[W 1]Aus/Fiji40013
fiji5Category 5 severe tropical cyclone#A188FC[W 1]Aus/Fiji40015
TCfrostbite10US: Frostbite 10 mins#FF738A[W 1]Atl/EPac/SAtl83011
TCfrostbite30US: Frostbite 30 mins#FFD98CAtl/EPac/SAtl83012
TCfrostbite5US: Frostbite 5 mins#A188FC[W 1]Atl/EPac/SAtl83010
TCfrostbitenUS: Frostbite more than 30 mins/not possible#FFFFD9Atl/EPac/SAtl83013
funnelcloudFunnel Cloud#6EC1EA[W 1]Global1201
g1Minor Geomagnetic Storms#FFFFD9Atl/EPac/SAtl82200
g2Moderate Geomagnetic Storms#FFD98CAtl/EPac/SAtl82201
g3Strong Geomagnetic Storms#FF9E59[W 1]Atl/EPac/SAtl82202
g4Severe Geomagnetic Storms#FF738A[W 1]Atl/EPac/SAtl82203
g5Extreme Geomagnetic Storms#A188FC[W 1]Atl/EPac/SAtl82204
geo1Minor Geomagnetic Storms#FFFFD9Atl/EPac/SAtl82200
geo2Moderate Geomagnetic Storms#FFD98CAtl/EPac/SAtl82201
geo3Strong Geomagnetic Storms#FF9E59[W 1]Atl/EPac/SAtl82202
geo4Severe Geomagnetic Storms#FF738A[W 1]Atl/EPac/SAtl82203
geo5Extreme Geomagnetic Storms#A188FC[W 1]Atl/EPac/SAtl82204
TCh1Category 1: Extremely Hot#A188FC[W 1]Atl/EPac/SAtl83004
TCh2Category 2: Very Hot#FF738A[W 1]Atl/EPac/SAtl83003
TCh3Category 3: Hot#FF9E59[W 1]Atl/EPac/SAtl83002
TCh4Category 4: Very Warm#FFD98CAtl/EPac/SAtl83001
TCheat1Category 1: Extremely Hot#A188FC[W 1]Atl/EPac/SAtl83004
TCheat2Category 2: Very Hot#FF738A[W 1]Atl/EPac/SAtl83003
TCheat3Category 3: Hot#FF9E59[W 1]Atl/EPac/SAtl83002
TCheat4Category 4: Very Warm#FFD98CAtl/EPac/SAtl83001
TCheatindex100f≥ 100F heat index#FE1212[W 1][W 2]Global2208
TCheatindex110f≥ 110F heat index#FE1284[W 1][W 2]Global2209
TCheatindex120f≥ 120F heat index#FF7BC3[W 1]Global2210
TCheatindex130f≥ 130F heat index#FFC1E3Global2211
TCheatindex140f≥ 140F heat index#FFD6EDGlobal2212
TCheatindex150f≥ 150F heat index#FFEDF7Global2214
TCheatindex160f≥ 160F heat index#FFFFFFGlobal2215
TCheatindex30f≥ 30F heat index#009614[W 1][W 2]Global2201
TCheatindex30fb< 30F heat index#aedff9Global2200
TCheatindex40f≥ 40F heat index#96df00Global2202
TCheatindex50f≥ 50F heat index#c5ee03Global2203
TCheatindex60f≥ 60F heat index#ffff00Global2204
TCheatindex70f≥ 70F heat index#ffc502Global2205
TCheatindex80f≥ 80F heat index#ff9606[W 1]Global2206
TCheatindex90f≥ 90F heat index#FF5500[W 1]Global2207
TCheatwWarm#FFFFD9Atl/EPac/SAtl83000
highrHigh Risk#A188FC[W 1]Atl/EPac/SAtl84005
highriskHigh Risk#A188FC[W 1]Atl/EPac/SAtl84005
TChwWarm#FFFFD9Atl/EPac/SAtl83000
ice0Ice Damage Index: 0#4DFFFFAtl/EPac/SAtl80300
ice1Ice Damage Index: 1#FFFFD9Atl/EPac/SAtl80301
ice2Ice Damage Index: 2#FFD98CAtl/EPac/SAtl80302
ice3Ice Damage Index: 3#FF9E59[W 1]Atl/EPac/SAtl80303
ice4Ice Damage Index: 4#FF738A[W 1]Atl/EPac/SAtl80304
ice5Ice Damage Index: 5#A188FC[W 1]Atl/EPac/SAtl80305
if0IF0 tornado#4DFFFFGlobal1102
if0mIF0- tornado#58EBF8Global1101
if0pIF0+ tornado#89FFF3Global1103
if1IF1 tornado#FFFFD9Global1105
if1mIF1- tornado#C4FFE6Global1104
if1pIF1+ tornado#FFF2BFGlobal1106
if2IF2 tornado#FFD98CGlobal1108
if2mIF2- tornado#FFE5A5Global1107
if2pIF2+ tornado#FFC57BGlobal1109
if3IF3 tornado#FF9E59[W 1]Global1110
if4IF4 tornado#FF738A[W 1]Global1111
if5IF5 tornado#A188FC[W 1]Global1112
ifuIFU tornado#CCCCCCGlobal1100
intenseIntense tropical cyclone#FF738A[W 1]SWIO30008
itcIntense tropical cyclone#FF738A[W 1]SWIO30008
landLand depression#1591DE[W 1]NIO50000
landdepressionLand depression#1591DE[W 1]NIO50000
ldLand depression#1591DE[W 1]NIO50000
lowTropical low#6EC1EA[W 1]Aus/Fiji40002
marginalriskMarginal Risk#1BC800[W 1]Atl/EPac/SAtl84001
mdMonsoon depression#6EC1EA[W 1]Global30
mdtrModerate Risk#FF738A[W 1]Atl/EPac/SAtl84004
TCmoddepressionModerate tropical depression#6EC1EA[W 1]Global95
moderateriskModerate Risk#FF738A[W 1]Atl/EPac/SAtl84004
monsoondepressionMonsoon depression#6EC1EA[W 1]Global30
mrglrMarginal Risk#1BC800[W 1]Atl/EPac/SAtl84001
mstormModerate tropical storm#4DFFFFSWIO30004
mtsModerate tropical storm#4DFFFFSWIO30004
mtstormModerate tropical storm#4DFFFFGlobal105
niocycloneCyclonic storm#4DFFFFNIO50006
niodepressionDepression#1591DE[W 1]NIO50001
niolandLand depression#1591DE[W 1]NIO50000
nwpdepressionTropical depression#6EC1EA[W 1]Global90
nwpsevereSevere tropical storm#C0FFC0Global120
nwpstormTropical storm#4DFFFFGlobal100
odOverland depression#6EC1EA[W 1]Global60
overlandOverland depression#6EC1EA[W 1]Global60
overlanddepressionOverland depression#6EC1EA[W 1]Global60
TCp1Extremely moist#1BC800[W 1]Atl/EPac/SAtl81006
TCp2Very Moist#5FFF46Atl/EPac/SAtl81005
TCp3Moderately Moist#A9FEC4Atl/EPac/SAtl81004
TCp4Near Normal#FFFFFFAtl/EPac/SAtl81003
TCp5Moderate Drought#FFB3B0Atl/EPac/SAtl81002
TCp6Severe Drought#FF5A55[W 1]Atl/EPac/SAtl81001
TCp7Extreme Drought#FF0800[W 1][W 2]Atl/EPac/SAtl81000
TCpalmer1Extremely moist#1BC800[W 1]Atl/EPac/SAtl81006
TCpalmer2Very Moist#5FFF46Atl/EPac/SAtl81005
TCpalmer3Moderately Moist#A9FEC4Atl/EPac/SAtl81004
TCpalmer4Near Normal#FFFFFFAtl/EPac/SAtl81003
TCpalmer5Moderate Drought#FFB3B0Atl/EPac/SAtl81002
TCpalmer6Severe Drought#FF5A55[W 1]Atl/EPac/SAtl81001
TCpalmer7Extreme Drought#FF0800[W 1][W 2]Atl/EPac/SAtl81000
postPost-tropical depression#CCCCCCGlobal70
posttropicalPost-tropical depression#CCCCCCGlobal70
potentialPotential tropical cyclone#1591DE[W 1]Global25
potentialtropicalcyclonePotential tropical cyclone#1591DE[W 1]Global25
ptPotential tropical cyclone#1591DE[W 1]Global25
TCr1Minor Radio Blackout#FFFFD9Atl/EPac/SAtl82000
TCr2Moderate Radio Blackout#FFD98CAtl/EPac/SAtl82001
TCr3Strong Radio Blackout#FF9E59[W 1]Atl/EPac/SAtl82002
TCr4Severe Radio Blackout#FF738A[W 1]Atl/EPac/SAtl82003
TCr5Extreme Radio Blackout#A188FC[W 1]Atl/EPac/SAtl82004
TCradio1Minor Radio Blackout#FFFFD9Atl/EPac/SAtl82000
TCradio2Moderate Radio Blackout#FFD98CAtl/EPac/SAtl82001
TCradio3Strong Radio Blackout#FF9E59[W 1]Atl/EPac/SAtl82002
TCradio4Severe Radio Blackout#FF738A[W 1]Atl/EPac/SAtl82003
TCradio5Extreme Radio Blackout#A188FC[W 1]Atl/EPac/SAtl82004
redflag0RFTI NIL#4DFFFFAtl/EPac/SAtl83100
redflag1RFTI Elevated#FFFFD9Atl/EPac/SAtl83101
redflag3RFTI Critical-low#FFD98CAtl/EPac/SAtl83102
redflag5RFTI Critical-High#FF9E59[W 1]Atl/EPac/SAtl83103
redflag7RFTI Extremely Critical#FF738A[W 1]Atl/EPac/SAtl83104
redflag9RFTI Historically critical#A188FC[W 1]Atl/EPac/SAtl83004
redflagcrhRFTI Critical-High#FF9E59[W 1]Atl/EPac/SAtl83103
redflagcrlRFTI Critical-low#FFD98CAtl/EPac/SAtl83102
redflagecrRFTI Extremely Critical#FF738A[W 1]Atl/EPac/SAtl83104
redflagelvRFTI Elevated#FFFFD9Atl/EPac/SAtl83101
redflaghcrRFTI Historically critical#A188FC[W 1]Atl/EPac/SAtl83004
redflagnilRFTI NIL#4DFFFFAtl/EPac/SAtl83100
remnantPost-tropical depression#CCCCCCGlobal70
remnantlowPost-tropical depression#CCCCCCGlobal70
rfti0RFTI NIL#4DFFFFAtl/EPac/SAtl83100
rfti1RFTI Elevated#FFFFD9Atl/EPac/SAtl83101
rfti3RFTI Critical-low#FFD98CAtl/EPac/SAtl83102
rfti5RFTI Critical-High#FF9E59[W 1]Atl/EPac/SAtl83103
rfti7RFTI Extremely Critical#FF738A[W 1]Atl/EPac/SAtl83104
rfti9RFTI Historically critical#A188FC[W 1]Atl/EPac/SAtl83004
rlPost-tropical depression#CCCCCCGlobal70
rsi0Category 0 "Nuisance"#CCCCCCAtl/EPac/SAtl80100
rsi1Category 1 "Notable"#FFFFD9Atl/EPac/SAtl80110
rsi2Category 2 "Minor"#FFD98CAtl/EPac/SAtl80120
rsi3Category 3 "Major"#FF9E59[W 1]Atl/EPac/SAtl80130
rsi4Category 4 "Crippling"#FF738A[W 1]Atl/EPac/SAtl80140
rsi5Category 5 "Extreme"#A188FC[W 1]Atl/EPac/SAtl80150
rsicripplingCategory 4 "Crippling"#FF738A[W 1]Atl/EPac/SAtl80140
rsiextremeCategory 5 "Extreme"#A188FC[W 1]Atl/EPac/SAtl80150
rsimajorCategory 3 "Major"#FF9E59[W 1]Atl/EPac/SAtl80130
rsiminorCategory 2 "Minor"#FFD98CAtl/EPac/SAtl80120
rsinotableCategory 1 "Notable"#FFFFD9Atl/EPac/SAtl80110
rsinuisanceCategory 0 "Nuisance"#CCCCCCAtl/EPac/SAtl80100
TCs1Minor Solar Radiation Storms#FFFFD9Atl/EPac/SAtl82100
TCs2Moderate Solar Radiation Storms#FFD98CAtl/EPac/SAtl82101
TCs3Strong Solar Radiation Storms#FF9E59[W 1]Atl/EPac/SAtl82102
TCs4Severe Solar Radiation Storms#FF738A[W 1]Atl/EPac/SAtl82103
TCs5Extreme Solar Radiation Storms#A188FC[W 1]Atl/EPac/SAtl82104
scsSevere cyclonic storm#C0FFC0NIO50008
sdSubtropical depression#6EC1EA[W 1]Global62
severeSevere tropical storm#C0FFC0Global120
TCseveredepSevere tropical depression#6EC1EA[W 1]Global120
severetsSevere tropical storm#C0FFC0Global120
shdepressionTropical depression#6EC1EA[W 1]Global90
TCshem1Tropical cyclone#4DFFFFHistorical20008
TCshem2Tropical cyclone#C0FFC0Historical20008
TCshem3Tropical cyclone#FFD98CSWIO30006
TCshem4Tropical cyclone#FFD98CHistorical20008
TCshem5Severe tropical cyclone#A188FC[W 1]Historical20010
shemdepressionTropical depression#6EC1EA[W 1]Global90
TCshemsvrtcSevere tropical cyclone#FFD98CHistorical20020
TCshemtcTropical cyclone#FFD98CSWIO30006
slgtrSlight Risk#FFD98CAtl/EPac/SAtl84002
slightriskSlight Risk#FFD98CAtl/EPac/SAtl84002
TCsolar1Minor Solar Radiation Storms#FFFFD9Atl/EPac/SAtl82100
TCsolar2Moderate Solar Radiation Storms#FFD98CAtl/EPac/SAtl82101
TCsolar3Strong Solar Radiation Storms#FF9E59[W 1]Atl/EPac/SAtl82102
TCsolar4Severe Solar Radiation Storms#FF738A[W 1]Atl/EPac/SAtl82103
TCsolar5Extreme Solar Radiation Storms#A188FC[W 1]Atl/EPac/SAtl82104
spdepressionTropical depression#6EC1EA[W 1]Global90
spia0Ice Damage Index: 0#4DFFFFAtl/EPac/SAtl80300
spia1Ice Damage Index: 1#FFFFD9Atl/EPac/SAtl80301
spia2Ice Damage Index: 2#FFD98CAtl/EPac/SAtl80302
spia3Ice Damage Index: 3#FF9E59[W 1]Atl/EPac/SAtl80303
spia4Ice Damage Index: 4#FF738A[W 1]Atl/EPac/SAtl80304
spia5Ice Damage Index: 5#A188FC[W 1]Atl/EPac/SAtl80305
sprcyclstormSuper cyclonic storm#A188FC[W 1]NIO50020
ssSubtropical storm#4DFFFFGlobal65
stormTropical storm#4DFFFFGlobal100
strongSevere tropical storm#C0FFC0Global120
stsSevere tropical storm#C0FFC0Global120
styCategory 4-equivalent super typhoon#FF738A[W 1]Atl/EPac/SAtl80045
TCstyphoonSupertyphoon#A188FC[W 1]WPAC60050
subModerate tropical storm#4DFFFFSWIO30004
subdepressionSubtropical depression#6EC1EA[W 1]Global62
subdisturbanceSubtropical disturbance#1591DE[W 1]Global55
TCsublowSubtropical low#6EC1EA[W 1]Aus/Fiji40000
subtropicalSubtropical storm#4DFFFFGlobal65
TCsubtropicalcycloneSubtropical cyclone#4DFFFFGlobal70
sucsSuper cyclonic storm#A188FC[W 1]NIO50020
supertyphoonCategory 4-equivalent super typhoon#FF738A[W 1]Atl/EPac/SAtl80045
svrcyclstormSevere cyclonic storm#C0FFC0NIO50008
TCsvtyphoonSevere typhoon#FF738A[W 1]WPAC60015
swiodepressionTropical depression#6EC1EA[W 1]Global90
swiodisturbanceTropical disturbance#1591DE[W 1]Global80
[2]swiostsSevere tropical storm#C0FFC0Global120
[3]swiotcTropical cyclone#FFD98CSWIO30006
swsubdepSubtropical depression#6EC1EA[W 1]Global62
t0T0 tornado#5EE0F5Global1202
t1T1 tornado#4DFFFFGlobal1203
t10T10 tornado#D07EC3[W 1]Global1212
t11T11 tornado#A188FC[W 1]Global1213
t2T2 tornado#A6FFECGlobal1204
t3T3 tornado#FFFFD9Global1205
t4T4 tornado#FFECB3Global1206
t5T5 tornado#FFD98CGlobal1207
t6T6 tornado#FFBC73Global1208
t7T7 tornado#FF9E59[W 1]Global1209
t8T8 tornado#FF8972[W 1]Global1210
t9T9 tornado#FF738A[W 1]Global1211
[3]tcTropical cyclone#FFD98CSWIO30006
tdTropical depression#6EC1EA[W 1]Global90
tdistTropical disturbance#1591DE[W 1]Global80
TCtemp0c≥ 0C temperature#009614[W 1][W 2]Global2015
TCtemp10c≥ 10C temperature#c5ee03Global2017
TCtemp10cn≥ -10C temperature#19c5ff[W 1]Global2013
TCtemp15c≥ 15C temperature#ffff00Global2018
TCtemp15cn≥ -15C temperature#1e96f8[W 1]Global2012
TCtemp20c≥ 20C temperature#ffc502Global2019
TCtemp20cn≥ -20C temperature#716EEE[W 1][W 2]Global2011
TCtemp25c≥ 25C temperature#ff9606[W 1]Global2020
TCtemp25cn≥ -25C temperature#9F6FD2[W 1][W 2]Global2010
TCtemp30c≥ 30C temperature#FF5500[W 1]Global2021
TCtemp30cn≥ -30C temperature#CEA8E7[W 1]Global2009
TCtemp35c≥ 35C temperature#FE1212[W 1][W 2]Global2022
TCtemp35cn≥ -35C temperature#FEE9FFGlobal2008
TCtemp40c≥ 40C temperature#FE1284[W 1][W 2]Global2023
TCtemp40cn≥ -40C temperature#FFFFFFGlobal2007
TCtemp45c≥ 45C temperature#FF7BC3[W 1]Global2024
TCtemp45cn≥ -45C temperature#DCDCDCGlobal2006
TCtemp50c≥ 50C temperature#FFC1E3Global2025
TCtemp50cn≥ -50C temperature#BEBEBEGlobal2005
TCtemp55c≥ 55C temperature#FFD6EDGlobal2026
TCtemp55cn≥ -55C temperature#868686[W 1][W 2]Global2004
TCtemp5c≥ 5C temperature#96df00Global2016
TCtemp5cn≥ -5C temperature#aedff9Global2014
TCtemp60cn≥ -60C temperature#FAD6EBGlobal2003
TCtemp65cn≥ -65C temperature#DCAAC2[W 1]Global2002
TCtemp70cn≥ -70C temperature#CB83A5[W 1]Global2001
TCtempb70cn< -70C temperature#B7698E[W 1][W 2]Global2000
thunderstormT-storm#A9FEC4Atl/EPac/SAtl84000
tlTropical low#6EC1EA[W 1]Aus/Fiji40002
torro0T0 tornado#5EE0F5Global1202
torro1T1 tornado#4DFFFFGlobal1203
torro10T10 tornado#D07EC3[W 1]Global1212
torro11T11 tornado#A188FC[W 1]Global1213
torro2T2 tornado#A6FFECGlobal1204
torro3T3 tornado#FFFFD9Global1205
torro4T4 tornado#FFECB3Global1206
torro5T5 tornado#FFD98CGlobal1207
torro6T6 tornado#FFBC73Global1208
torro7T7 tornado#FF9E59[W 1]Global1209
torro8T8 tornado#FF8972[W 1]Global1210
torro9T9 tornado#FF738A[W 1]Global1211
torrouTU tornado#CCCCCCGlobal1200
TCtropicalcycloneTropical cyclone#FFD98CSWIO30006
tsTropical storm#4DFFFFGlobal100
tstmT-storm#A9FEC4Atl/EPac/SAtl84000
tstormT-storm#A9FEC4Atl/EPac/SAtl84000
tuTU tornado#CCCCCCGlobal1200
tyTyphoon#FFD98CWPAC60010
typhoonTyphoon#FFD98CWPAC60010
?unknownUnknown-strength storm#C0C0C0Global0
vintenseVery intense tropical cyclone#A188FC[W 1]SWIO30010
vitcVery intense tropical cyclone#A188FC[W 1]SWIO30010
vityViolent typhoon#A188FC[W 1]WPAC60030
vityphoonViolent typhoon#A188FC[W 1]WPAC60030
vscsVery severe cyclonic storm#FFD98CNIO50010
vstrtyphoonVery strong typhoon#FF738A[W 1]WPAC60020
vstyVery strong typhoon#FF738A[W 1]WPAC60020
vstyphoonVery strong typhoon#FF738A[W 1]WPAC60020
vsvrcyclstormVery severe cyclonic storm#FFD98CNIO50010
TCwindchill0f≥ 0F wind chill#716EEE[W 1][W 2]Global2111
TCwindchill100fn≥ -100F wind chill#CB83A5[W 1]Global2101
TCwindchill10f≥ 10F wind chill#1e96f8[W 1]Global2112
TCwindchill10fn≥ -10F wind chill#9F6FD2[W 1][W 2]Global2110
TCwindchill20f≥ 20F wind chill#19c5ff[W 1]Global2113
TCwindchill20fn≥ -20F wind chill#CEA8E7[W 1]Global2109
TCwindchill30f≥ 30F wind chill#aedff9Global2114
TCwindchill30fn≥ -30F wind chill#FEE9FFGlobal2108
TCwindchill40f≥ 40F wind chill#009614[W 1][W 2]Global2115
TCwindchill40fn≥ -40F wind chill#FFFFFFGlobal2107
TCwindchill50f≥ 50F wind chill#96df00Global2116
TCwindchill50fn≥ -50F wind chill#DCDCDCGlobal2106
TCwindchill60f≥ 60F wind chill#c5ee03Global2117
TCwindchill60fn≥ -60F wind chill#BEBEBEGlobal2105
TCwindchill70fn≥ -70F wind chill#868686[W 1][W 2]Global2104
TCwindchill80fn≥ -80F wind chill#FAD6EBGlobal2103
TCwindchill90fn≥ -90F wind chill#DCAAC2[W 1]Global2102
TCwindchillb100fn≤ -100F wind chill#B7698E[W 1][W 2]Global2100
TCwindchillextremeCanada: extreme windchill risk#A188FC[W 1]Atl/EPac/SAtl83025
TCwindchillhighCanada: high windchill risk#FFD98CAtl/EPac/SAtl83022
TCwindchilllowCanada: low windchill risk#4DFFFFAtl/EPac/SAtl83020
TCwindchillmoderateCanada: moderate windchill risk#FFFFD9Atl/EPac/SAtl83021
TCwindchillsevereCanada: severe windchill risk#FF738A[W 1]Atl/EPac/SAtl83024
TCwindchillveryhighCanada: very high windchill risk#FF9E59[W 1]Atl/EPac/SAtl83023
TCwssi0No impacts#CCCCCCAtl/EPac/SAtl80200
TCwssi1Limited impacts#1591DE[W 1]Atl/EPac/SAtl80210
TCwssi2Minor impacts#FFFFD9Atl/EPac/SAtl80220
TCwssi3Moderate impacts#FF9E59[W 1]Atl/EPac/SAtl80230
TCwssi4Major impacts#FF738A[W 1]Atl/EPac/SAtl80240
TCwssi5Extreme impacts#A188FC[W 1]Atl/EPac/SAtl80250
TCwssiextremeExtreme impacts#A188FC[W 1]Atl/EPac/SAtl80250
TCwssilimitedLimited impacts#1591DE[W 1]Atl/EPac/SAtl80210
TCwssimajorMajor impacts#FF738A[W 1]Atl/EPac/SAtl80240
TCwssiminorMinor impacts#FFFFD9Atl/EPac/SAtl80220
TCwssimoderateModerate impacts#FF9E59[W 1]Atl/EPac/SAtl80230
TCwssinoneNo impacts#CCCCCCAtl/EPac/SAtl80200
zodwZone of disturbed weather#1591DE[W 1]SWIO30000
1not available#FFFFD9not available
2not available#FFD98Cnot available
3not available#FF9E59[W 1]not available
4not available#FF738A[W 1]not available
5not available#A188FC[W 1]not available
a1not available#4DFFFFnot available
a2not available#C0FFC0not available
a3not available#FFD98Cnot available
a4not available#FF738A[W 1]not available
a5not available#A188FC[W 1]not available
et2not available
ex2not available
extratropical2not available
stssnot available

Warnings

This table contains warnings than should be addressed. Please note that some warnings cannot be fully addressed without changes that would require consensus.

  1. 1.000 1.001 1.002 1.003 1.004 1.005 1.006 1.007 1.008 1.009 1.010 1.011 1.012 1.013 1.014 1.015 1.016 1.017 1.018 1.019 1.020 1.021 1.022 1.023 1.024 1.025 1.026 1.027 1.028 1.029 1.030 1.031 1.032 1.033 1.034 1.035 1.036 1.037 1.038 1.039 1.040 1.041 1.042 1.043 1.044 1.045 1.046 1.047 1.048 1.049 1.050 1.051 1.052 1.053 1.054 1.055 1.056 1.057 1.058 1.059 1.060 1.061 1.062 1.063 1.064 1.065 1.066 1.067 1.068 1.069 1.070 1.071 1.072 1.073 1.074 1.075 1.076 1.077 1.078 1.079 1.080 1.081 1.082 1.083 1.084 1.085 1.086 1.087 1.088 1.089 1.090 1.091 1.092 1.093 1.094 1.095 1.096 1.097 1.098 1.099 1.100 1.101 1.102 1.103 1.104 1.105 1.106 1.107 1.108 1.109 1.110 1.111 1.112 1.113 1.114 1.115 1.116 1.117 1.118 1.119 1.120 1.121 1.122 1.123 1.124 1.125 1.126 1.127 1.128 1.129 1.130 1.131 1.132 1.133 1.134 1.135 1.136 1.137 1.138 1.139 1.140 1.141 1.142 1.143 1.144 1.145 1.146 1.147 1.148 1.149 1.150 1.151 1.152 1.153 1.154 1.155 1.156 1.157 1.158 1.159 1.160 1.161 1.162 1.163 1.164 1.165 1.166 1.167 1.168 1.169 1.170 1.171 1.172 1.173 1.174 1.175 1.176 1.177 1.178 1.179 1.180 1.181 1.182 1.183 1.184 1.185 1.186 1.187 1.188 1.189 1.190 1.191 1.192 1.193 1.194 1.195 1.196 1.197 1.198 1.199 1.200 1.201 1.202 1.203 1.204 1.205 1.206 1.207 1.208 1.209 1.210 1.211 1.212 1.213 1.214 1.215 1.216 1.217 1.218 1.219 1.220 1.221 This color has contrast issues with links (not WCAG 2.0 AA-compatible). It should not be used in conjunction with a link.
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 This color has contrast issues with visited links (not WCAG 2.0 AA-compatible with #0b0080). It should not be used in conjunction with a visited link.

local categoryData = require("Module:Storm categories/categories")
local colors = require("Module:Storm categories/colors").colors
local icons = require("Module:Storm categories/icons").icons
local cats = categoryData.cats
local defaultCategory = categoryData.defaultCategory
local p = {}

function p.color(frame)
	return p._color(frame.args[1] or frame:getParent().args[1], false)
end

function p.name(frame)
	return p._name(
		frame.args[1] or frame:getParent().args[1],
		frame.args[2] or frame:getParent().args[2],
		false
	)
end

function p.sortkey(frame)
	return p._sortkey(frame.args[1] or frame:getParent().args[1], false)
end

function p.icon(frame)
	return p._icon(frame.args[1] or frame:getParent().args[1], false)
end

function p.isEqual(frame)
	return p._isEqual(
		frame.args[1] or frame:getParent().args[1],
		frame.args[2] or frame:getParent().args[2]
	) and "yes" or ""
end

function p._normalizeId(category, fallback)
	-- Normalize if normalizable, fall back to default if not.
	return (category ~= nil and string.len(category) ~= 0) and
		string.gsub(string.lower(category), "[^%w]", "") or fallback
end

function p._color(category, nilIfMissing)
	-- This looks confusing, but it's actually nested ternaries (for nil checks)
	local color = p._normalizeId(category, defaultCategory)
		
	return colors[color] or ((cats[color] or (
		nilIfMissing
		and { color = nil }
		or cats[defaultCategory]
	)).color)
end

function p._name(category, basin, nilIfMissing)
	local name_def = (cats[
		p._normalizeId(category, defaultCategory)
	] or (nilIfMissing and { name = nil } or cats[defaultCategory])).name
	return type(name_def) == "table" and 
		(
			name_def[string.lower(basin or "default")]
			or name_def["default"]
			or (not nilIfMissing and error("No default name for basin-based category name.") or nil)
		) 
		or name_def
end

function p._sortkey(category, nilIfMissing)
	-- This looks confusing, but it's actually nested ternaries (for nil checks)
	return (cats[
		p._normalizeId(category, defaultCategory)
	] or (nilIfMissing and { sortkey = nil } or cats[defaultCategory])).sortkey
end

function p._icon(category, nilIfMissing)
	-- This looks confusing, but it's actually nested ternaries (for nil checks)
	local icon = p._normalizeId(category, defaultCategory)
		
	return icons[icon] or (cats[icon] ~= nil and (
		cats[icon].icon or cats["tropicalcyclone"].icon
	) or (not nilIfMissing and cats[defaultCategory].icon) or nil)
end

function p._isEqual(category1, category2)
	-- Checks if two IDs are equal.
	-- An {{#ifeq}} check does not consider aliases. This function compares two
	-- IDs in a way that considers category aliases. This works because alias
	-- assignments are references to the actual table containing the category
	-- info found in the main category table.
	-- 
	-- `false` will be returned if at least one of the categories are nil or
	-- if the category is not defined.
	local _category1 = p._normalizeId(category1)
	local _category2 = p._normalizeId(category2)
	return (_category1 == _category2 and _category1 ~= nil) or
		cats[ _category1 ] == cats[ _category2 ] and
			-- `false` if categories are undefined and not equal.
			cats[ _category1 ] ~= nil
end

function p.demo(frame)
	return require("Module:Storm categories/demo").demo(frame)
end

return p