KZC Wind Pressure Relationship Technique

This is the general tropical discussion area. Anyone can take their shot at predicting a storms path.

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.

Help Support Storm2K
Message
Author
User avatar
ManilaTC
WesternPacificWeather.com
WesternPacificWeather.com
Posts: 592
Age: 45
Joined: Mon Oct 26, 2009 5:13 am
Location: Mandaluyong City, Philippines
Contact:

KZC Wind Pressure Relationship Technique

#1 Postby ManilaTC » Tue Oct 29, 2019 3:11 am

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!
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

Chris90
Category 2
Category 2
Posts: 637
Age: 34
Joined: Thu Jun 01, 2017 9:36 pm

Re: KZC Wind Pressure Relationship Technique

#2 Postby Chris90 » Tue Oct 29, 2019 8:35 am

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.
0 likes   
Solar Aquarian
Lunar Cancerian
:uarrow: Sagittarian

USTropics
Category 5
Category 5
Posts: 2410
Joined: Sun Aug 12, 2007 3:45 am
Location: Florida State University

Re: KZC Wind Pressure Relationship Technique

#3 Postby USTropics » Tue Oct 29, 2019 10:14 am

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   

User avatar
1900hurricane
Category 5
Category 5
Posts: 6044
Age: 32
Joined: Fri Feb 06, 2015 12:04 pm
Location: Houston, TX
Contact:

Re: KZC Wind Pressure Relationship Technique

#4 Postby 1900hurricane » Tue Oct 29, 2019 11:36 pm

Here's how I have my KZC set up as a couple of functions in Python, the programming language I most frequently use.

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.

Image

Image

Image

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/

User avatar
1900hurricane
Category 5
Category 5
Posts: 6044
Age: 32
Joined: Fri Feb 06, 2015 12:04 pm
Location: Houston, TX
Contact:

Re: KZC Wind Pressure Relationship Technique

#5 Postby 1900hurricane » Tue Oct 29, 2019 11:54 pm

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
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/

User avatar
1900hurricane
Category 5
Category 5
Posts: 6044
Age: 32
Joined: Fri Feb 06, 2015 12:04 pm
Location: Houston, TX
Contact:

Re: KZC Wind Pressure Relationship Technique

#6 Postby 1900hurricane » Sun Jan 26, 2020 6:17 pm

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)

Image

Image

Image
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/


Return to “Talkin' Tropics”

Who is online

Users browsing this forum: Iceresistance, KirbyDude25 and 213 guests