Hi All,
I would like to learn the ins and outs of this technique. I've seen this in posts here in analyzing TC's and I'm wondering what is the formula and what's the best way to get the parameters?
I've always wanted to learn something new.
Thanks!
KZC Wind Pressure Relationship Technique
Moderator: S2k Moderators
Forum rules
The posts in this forum are NOT official forecasts and should not be used as such. They are just the opinion of the poster and may or may not be backed by sound meteorological data. They are NOT endorsed by any professional institution or STORM2K. For official information, please refer to products from the National Hurricane Center and National Weather Service.
- ManilaTC
- WesternPacificWeather.com
- Posts: 593
- Age: 46
- Joined: Mon Oct 26, 2009 5:13 am
- Location: Mandaluyong City, Philippines
- Contact:
KZC Wind Pressure Relationship Technique
0 likes
The above post is NOT official and should not be used as such. It is my opinion and may or may not be backed by sound meteorological data. It is not endorsed by any professional institution or storm2k.org. Please refer to your official national weather agency.
WEB http://goo.gl/JDiKXB | FB https://goo.gl/N5sIle | @ManilaTC
WEB http://goo.gl/JDiKXB | FB https://goo.gl/N5sIle | @ManilaTC
Re: KZC Wind Pressure Relationship Technique
https://www.google.com/url?sa=t&source= ... d3m32X6Xpu
Try this link, it is a journal article about the technique. They've got some formulas in there. I'm pretty sure you are referring to the analysis that is provided by 1900hurricane in your original post, and I believe he's stated before that he created a program for KZC using something called Python, so I don't think you'll find a KZC calculator on the web, as I'm pretty sure it is a program he created himself for personal use.
If you are good at programming though, that article might help you with formulas so you can start creating your own program to run KZC!
Hopefully that helps you somewhat.
Try this link, it is a journal article about the technique. They've got some formulas in there. I'm pretty sure you are referring to the analysis that is provided by 1900hurricane in your original post, and I believe he's stated before that he created a program for KZC using something called Python, so I don't think you'll find a KZC calculator on the web, as I'm pretty sure it is a program he created himself for personal use.
If you are good at programming though, that article might help you with formulas so you can start creating your own program to run KZC!
Hopefully that helps you somewhat.
0 likes
Solar Aquarian
Lunar Cancerian
Sagittarian
Lunar Cancerian

-
- Category 5
- Posts: 2635
- Joined: Sun Aug 12, 2007 3:45 am
- Location: Florida State University
Re: KZC Wind Pressure Relationship Technique
ManilaTC wrote:Hi All,
I would like to learn the ins and outs of this technique. I've seen this in posts here in analyzing TC's and I'm wondering what is the formula and what's the best way to get the parameters?
I've always wanted to learn something new.
Thanks!
The formula is MSLP = 23.286 - (0.483 * V_storm) - (V_storm/24.254)^2 - (12.587 * S) - 0.483 * ABS(Lat[denoted by Φ]) + P_env
You can further break this down/find the parameters:
Code: Select all
P_env = Environmental MSLP (input from ATCF values)
Lat (or Φ) = storm center position latitude value
S = MAX(V_storm500/V_storm500C),0.4)
V_storm = V_max - (1.5 * SS**0.63)
SS (StormSpeed) = 11 knots (constant value)
V_storm500 = (R34/9.0) - 3.0
R34 (gale radius) = average of 34 knot winds (input from ATCF values). If not available, use formula
R34 = (0.354 * ROCI) + 13.3
ROCI = radius of last closed isobar (input from ATCF value)
V_storm500C = V_storm * [(66.785 * V_storm) + (1.0619*(ABS(Lat)-25)))/500]**A
A = 0.1147 + (0.0055 * V_storm) - (0.001 * ABS(Lat) - 25.0))
This is a Visual Basic macro for the formula (should be usable in Excel):
Code: Select all
Function MSLP_WPR (Penv, R34bar, slat, speed, Vmax)
'INPUT Penv: tropical cyclone outer edge pressure, R34bar: wind speed 34 knot average radius, slat: tropical cyclone center position (latitude unit), speed: moving speed, VMax: maximum wind speed (1 minute average)
'OUTPUT MSLP_WPR: Minimum pressure
abslat = Abs (slat)
ipoci = Penv-2
afact = 1.5 * speed ^ 0.63
'from Schwerdt et al. (1979)
Vsrm = Vmax-afact
ex = 0.1147 + 0.0055 * Vmax-0.001 * (abslat-25)
V500C = Vmax * ((66.785-0.09102 * Vmax + 1.0619 * (abslat-25)) / 500) ^ ex
V500 = R34bar / 9-3
Size = V500 / V500C
dp1 = 5.962-0.267 * Vsrm-(Vsrm / 18.26) ^ 2-6.8 * Size
dp2 = 23.286-0.483 * Vsrm-(Vsrm / 24.254) ^ 2-12.587 * Size-0.483 * abslat
If abslat <18 Then
dp = dp1
ElseIf abslat> 25 Then
dp = dp2
Else
wt1 = (25-abslat) / 7
wt2 = 1-wt1
dp = wt1 * dp1 + wt2 * dp2
End If
MSLP_WPR = dp + Penv
End Function
You can check out this github repository for a java function:
https://github.com/mcidasv/mcidasv/blob/master/edu/wisc/ssec/mcidasv/adt/Functions.java
1 likes
- 1900hurricane
- Category 5
- Posts: 6059
- Age: 34
- Joined: Fri Feb 06, 2015 12:04 pm
- Location: Houston, TX
- Contact:
Re: KZC Wind Pressure Relationship Technique
Here's how I have my KZC set up as a couple of functions in Python, the programming language I most frequently use.
I personally have it set up as two different functions because although usually I'm solving for a pressure estimate (P), there are occasions where I'm only looking for a pressure departure from whatever the environmental pressure is (dP), in which case I'll only use KZCdP. Otherwise I'll call the function as such:
where v is maximum one minute sustained winds in knots, c is system translational speed in knots, r34 is the average radius of tropical storm force winds in nautical miles, l is the system's latitude in decimal degrees, and oci is the pressure of the outermost closed isobar in millibars/hectopascals.
A couple of notes on my specific setup:
I've followed Courtney & Knaff (the link provided by Chris90) very closely, but there is one subtle difference that can create quite an impact in some cases. KZC is a piecewise function, using two functions for equatorialwards and polewards of 18º. However, when verifying NHC's 872 mb pressure estimate for Hurricane Patricia '15, I noticed that the NHC used the >18º formula, even though Patricia was at 17.3º. Because of the NHC's use of the >18º formula even below 18º with a very intense system, I put together some comparison tables to see if there was a point where the two formulas converged and I could jump from one to the other seamlessly in order to emulate the NHC. Based on that, convergence seemed to be around the T5.0 intensity. I have 95 kt as the jumpover point right now, but I'm thinking of adjusting that even lower to 85 kt since I recently started testing it with more combinations that seem to favor the low side of 5.0 instead of the high side. Anyway, in Patricia '15's case, it makes a big difference in expected pressure.



For solving for an expected Vmax with a pressure, the original Knaff & Zehr '07 had a separate regression, but it's slightly different, so I just backsolve the original algorithm with raw computing power like so:
Perhaps not the most elegant solution (I'm not a computer scientist by trade after all), but it gets the job done well enough for me!
I also have a KZC set up based on some work by Knaff where the radius of the outermost closed isobar is used as a size parameter instead of r34. I don't mind sharing that one at some point if there is interest.
Code: Select all
def KZC (dP, oci = 1007):
P = 2 + oci + dP
return P
Code: Select all
def KZCdP (v, c, r34, lat):
if lat < 0:
lat = -lat
Vsrm = v - 1.5 * c ** 0.63
V500 = r34 / 9 - 3
Rmax = 66.785 - 0.09102 * v + 1.0619 * (lat - 25)
X = 0.1147 + 0.0055 * v - 0.001 * (lat - 25)
V500c = v * (Rmax / 500) ** X
S = V500 / V500c
if S < 0.4:
S = 0.4
if lat >= 18 or v > 95:
dP = 23.286 - 0.483 * Vsrm - (Vsrm / 24.254) ** 2 - 12.587 * S - 0.483 * lat
else:
dP = 5.962 - 0.267 * Vsrm - (Vsrm / 18.26) ** 2 - 6.8 * S
return dP
I personally have it set up as two different functions because although usually I'm solving for a pressure estimate (P), there are occasions where I'm only looking for a pressure departure from whatever the environmental pressure is (dP), in which case I'll only use KZCdP. Otherwise I'll call the function as such:
Code: Select all
KZC(KZCdP(v, c, r34, l), oci)
where v is maximum one minute sustained winds in knots, c is system translational speed in knots, r34 is the average radius of tropical storm force winds in nautical miles, l is the system's latitude in decimal degrees, and oci is the pressure of the outermost closed isobar in millibars/hectopascals.
A couple of notes on my specific setup:
I've followed Courtney & Knaff (the link provided by Chris90) very closely, but there is one subtle difference that can create quite an impact in some cases. KZC is a piecewise function, using two functions for equatorialwards and polewards of 18º. However, when verifying NHC's 872 mb pressure estimate for Hurricane Patricia '15, I noticed that the NHC used the >18º formula, even though Patricia was at 17.3º. Because of the NHC's use of the >18º formula even below 18º with a very intense system, I put together some comparison tables to see if there was a point where the two formulas converged and I could jump from one to the other seamlessly in order to emulate the NHC. Based on that, convergence seemed to be around the T5.0 intensity. I have 95 kt as the jumpover point right now, but I'm thinking of adjusting that even lower to 85 kt since I recently started testing it with more combinations that seem to favor the low side of 5.0 instead of the high side. Anyway, in Patricia '15's case, it makes a big difference in expected pressure.



For solving for an expected Vmax with a pressure, the original Knaff & Zehr '07 had a separate regression, but it's slightly different, so I just backsolve the original algorithm with raw computing power like so:
Code: Select all
def KZCV(p, c, r34, lat, oci = 1007):
p0 = 1100
v = 19.5
while p0 > p:
v = v + 0.1
p0 = KZC(KZCdP(v, c, r34, lat), oci)
return v
Perhaps not the most elegant solution (I'm not a computer scientist by trade after all), but it gets the job done well enough for me!
I also have a KZC set up based on some work by Knaff where the radius of the outermost closed isobar is used as a size parameter instead of r34. I don't mind sharing that one at some point if there is interest.
5 likes
Contract Meteorologist. TAMU & MSST. Fiercely authentic, one of a kind. We are all given free will, so choose a life meant to be lived. We are the Masters of our own Stories.
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
- 1900hurricane
- Category 5
- Posts: 6059
- Age: 34
- Joined: Fri Feb 06, 2015 12:04 pm
- Location: Houston, TX
- Contact:
Re: KZC Wind Pressure Relationship Technique
As far as where I get the parameters, I pull them straight from the best track files (ATCF b-decks). All the data needed to plug into KZC can be found there. A guide on how to decipher the b-deck is provided by JTWC on their best track page.
https://www.metoc.navy.mil/jtwc/jtwc.html?western-pacific
https://www.metoc.navy.mil/jtwc/jtwc.html?western-pacific
1 likes
Contract Meteorologist. TAMU & MSST. Fiercely authentic, one of a kind. We are all given free will, so choose a life meant to be lived. We are the Masters of our own Stories.
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
- 1900hurricane
- Category 5
- Posts: 6059
- Age: 34
- Joined: Fri Feb 06, 2015 12:04 pm
- Location: Houston, TX
- Contact:
Re: KZC Wind Pressure Relationship Technique
Just going to bump this up with screenshots of the KZC code I use in Python. (EDIT: updated 11/08/2020 to reflect my latest scripts)






2 likes
Contract Meteorologist. TAMU & MSST. Fiercely authentic, one of a kind. We are all given free will, so choose a life meant to be lived. We are the Masters of our own Stories.
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Re: KZC Wind Pressure Relationship Technique
I also made a quick Python script for KZC and ran it for the 1985 typhoons, the first post-recon season for the WPAC. I had to exclude Skip, Tess, Faye & Hope since I couldn't find 1-minute equivalent wind speed estimates for those (only 10-minute ones). Positive delta values indicate that the KZC analysis results in a more intense storm than the official pressure value. Anyways here are the results:
-- 1985 WPAC (KZC analysis) --
Gay - Calculated pressure = 949 mb - Original pressure = 950 mb - Delta pressure = 1 mb
Hal - Calculated pressure = 939 mb - Original pressure = 960 mb - Delta pressure = 21 mb
Irma - Calculated pressure = 945 mb - Original pressure = 955 mb - Delta pressure = 10 mb
Jeff - Calculated pressure = 962 mb - Original pressure = 965 mb - Delta pressure = 3 mb
Kit - Calculated pressure = 957 mb - Original pressure = 960 mb - Delta pressure = 3 mb
Mamie - Calculated pressure = 969 mb - Original pressure = 975 mb - Delta pressure = 6 mb
Nelson - Calculated pressure = 945 mb - Original pressure = 960 mb - Delta pressure = 15 mb
Odessa - Calculated pressure = 956 mb - Original pressure = 955 mb - Delta pressure = -1 mb
Pat - Calculated pressure = 951 mb - Original pressure = 955 mb - Delta pressure = 4 mb
Brenda - Calculated pressure = 950 mb - Original pressure = 955 mb - Delta pressure = 5 mb
Cecil - Calculated pressure = 951 mb - Original pressure = 960 mb - Delta pressure = 9 mb
Dot - Calculated pressure = 901 mb - Original pressure = 895 mb - Delta pressure = -6 mb
And here is the raw data for people who are interested.
# [Cyclone name, Year, Basin, Official pressure, Vmax, R34, Lat1, Lat2, Long1, Long2, Time span, Penv]
test_data = [
['Gay', 1985, 'WPAC', 950, 100, 175, 20.5, 21.6, 128.8, 129.1, 6, 1005],
['Hal', 1985, 'WPAC', 960, 100, 400, 17.6, 18.6, 124.2, 122.8, 6, 1002],
['Irma', 1985, 'WPAC', 955, 90, 275, 24.3, 25.8, 130.2, 130.3, 6, 1000],
['Jeff', 1985, 'WPAC', 965, 75, 200, 26.0, 26.4, 123.7, 122.8, 6, 1003],
['Kit', 1985, 'WPAC', 960, 85, 110, 29.5, 29.9, 132.4, 131.8, 6, 1002],
['Mamie', 1985, 'WPAC', 975, 70, 200, 30.1, 31.0, 123.4, 122.4, 6, 1007],
['Nelson', 1985, 'WPAC', 960, 95, 225, 25.3, 25.5, 122.9, 121.5, 6, 1001],
['Odessa', 1985, 'WPAC', 955, 90, 125, 29.0, 29.6, 134.9, 133.6, 6, 1004],
['Pat', 1985, 'WPAC', 955, 95, 150, 28.9, 30.9, 130.5, 130.4, 6, 1003],
['Brenda', 1985, 'WPAC', 955, 90, 350, 22.9, 24.5, 123.0, 122.8, 6, 1008],
['Dot', 1985, 'WPAC', 895, 150, 250, 14.6, 14.7, 131.2, 129.9, 6, 1006],
['Cecil', 1985, 'WPAC', 960, 100, 200, 15.9, 16.4, 110.6, 109.4, 6, 1002]
]
-- 1985 WPAC (KZC analysis) --
Gay - Calculated pressure = 949 mb - Original pressure = 950 mb - Delta pressure = 1 mb
Hal - Calculated pressure = 939 mb - Original pressure = 960 mb - Delta pressure = 21 mb
Irma - Calculated pressure = 945 mb - Original pressure = 955 mb - Delta pressure = 10 mb
Jeff - Calculated pressure = 962 mb - Original pressure = 965 mb - Delta pressure = 3 mb
Kit - Calculated pressure = 957 mb - Original pressure = 960 mb - Delta pressure = 3 mb
Mamie - Calculated pressure = 969 mb - Original pressure = 975 mb - Delta pressure = 6 mb
Nelson - Calculated pressure = 945 mb - Original pressure = 960 mb - Delta pressure = 15 mb
Odessa - Calculated pressure = 956 mb - Original pressure = 955 mb - Delta pressure = -1 mb
Pat - Calculated pressure = 951 mb - Original pressure = 955 mb - Delta pressure = 4 mb
Brenda - Calculated pressure = 950 mb - Original pressure = 955 mb - Delta pressure = 5 mb
Cecil - Calculated pressure = 951 mb - Original pressure = 960 mb - Delta pressure = 9 mb
Dot - Calculated pressure = 901 mb - Original pressure = 895 mb - Delta pressure = -6 mb
And here is the raw data for people who are interested.
# [Cyclone name, Year, Basin, Official pressure, Vmax, R34, Lat1, Lat2, Long1, Long2, Time span, Penv]
test_data = [
['Gay', 1985, 'WPAC', 950, 100, 175, 20.5, 21.6, 128.8, 129.1, 6, 1005],
['Hal', 1985, 'WPAC', 960, 100, 400, 17.6, 18.6, 124.2, 122.8, 6, 1002],
['Irma', 1985, 'WPAC', 955, 90, 275, 24.3, 25.8, 130.2, 130.3, 6, 1000],
['Jeff', 1985, 'WPAC', 965, 75, 200, 26.0, 26.4, 123.7, 122.8, 6, 1003],
['Kit', 1985, 'WPAC', 960, 85, 110, 29.5, 29.9, 132.4, 131.8, 6, 1002],
['Mamie', 1985, 'WPAC', 975, 70, 200, 30.1, 31.0, 123.4, 122.4, 6, 1007],
['Nelson', 1985, 'WPAC', 960, 95, 225, 25.3, 25.5, 122.9, 121.5, 6, 1001],
['Odessa', 1985, 'WPAC', 955, 90, 125, 29.0, 29.6, 134.9, 133.6, 6, 1004],
['Pat', 1985, 'WPAC', 955, 95, 150, 28.9, 30.9, 130.5, 130.4, 6, 1003],
['Brenda', 1985, 'WPAC', 955, 90, 350, 22.9, 24.5, 123.0, 122.8, 6, 1008],
['Dot', 1985, 'WPAC', 895, 150, 250, 14.6, 14.7, 131.2, 129.9, 6, 1006],
['Cecil', 1985, 'WPAC', 960, 100, 200, 15.9, 16.4, 110.6, 109.4, 6, 1002]
]
2 likes
- 1900hurricane
- Category 5
- Posts: 6059
- Age: 34
- Joined: Fri Feb 06, 2015 12:04 pm
- Location: Houston, TX
- Contact:
Re: KZC Wind Pressure Relationship Technique
Recon ran until part way through the 1987 season.
0 likes
Contract Meteorologist. TAMU & MSST. Fiercely authentic, one of a kind. We are all given free will, so choose a life meant to be lived. We are the Masters of our own Stories.
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Opinions expressed are mine alone.
Follow me on Twitter at @1900hurricane : Read blogs at https://1900hurricane.wordpress.com/
Who is online
Users browsing this forum: No registered users and 83 guests