Monday, November 14, 2016

python implementation of CLIPER

A Python Implementation of CLIPER

Mike Fiorino
NOAA ESRL Boulder CO
14 November 2016
michael.fiorino@noaa.gov

1.0 CLIPER model

The CLImatology and PERsistence statistical model of tropical motion is often used as a baseline 'no-skill' aid.  Percent improvement (smaller) of mean position error over CLIPER defines 'skill.'  The classic implementation by Charlie Neumann makes 12-72 h position forecasts in all TC basins globally.  Although the classic CLIPER regression model has been updated with more best track data and extended to 120-h forecasts, the Neumann scheme is still used as a baseline...which begs the (Bill Gray) question -- "why are you doing this Mike?"  The answer is that I'm reviewing a paper and want to generate CLIP forecasts. It would also be good to run CLIPER with the same initialization as for the model trackers I run using fields from ECMWF/NCEP/CMC/UKMO/FNMOC...

2.0 .py implementation

Using .f code in the ATCF at both JTWC and NHC circa 2008, I put a .py wrapper on the subroutines (using 'f2py') and ran the model for the 2012-16 seasons using both CARQ (operational positions and motion) and best track data, and then compared to the operational runs from the JTWC/NHC adecks (the CLIP aid).

Of course I did not get the same answer as in operations even though I used the operational CARQ positions.  The results using the best track suggests that part of the difference may come from a different initialization as the .py implementation forecasts were better at tau 0 to 36 h...

The JTWC code: jtwc.cliper.lib.f and the NHC code: nhc.cliper.lib.f.

The question to Buck Sampson (and JTWC/NHC) is this the current code? 

3.0 2012-16 results 

Here are the mean position errors from CLIPER:  1) local .py; 2) operational JTWC/NHC adecks; and 3) local .py with the best track.

3.1 NIO (both Arabian Sea and Bay of Bengal)

 
2012-2016 NIO CLIPER mean position error [nm].  the first bar comes from the local .py with operational initial position and motion; the next from the JTWC adecks and the third and darkest from the local .py using the best track.  Note that the initial position error with the best track is 0 nmi.

 In the NIO, my local .py has lower error than in operations, because ??? (run incorrectly)

 3.2 WPAC (western North Pacific)



2012-2016 WPAC CLIPER mean position error [nm].  the first bar comes from the local .py with operational initial position and motion; the next from the JTWC adecks and the third and darkest from the local .py using the best track.  Note that the initial position error with the best track is 0 nmi. 
The best track version is clearly the best at 0-36 h, but my local .py is about 5% larger that the operational JTWC CLIP.

3.3 EPAC (eastern North Pacific (140W-60W))

2012-2016 EPAC CLIPER mean position error [nm].  the first bar comes from the local .py with operational initial position and motion; the next from the NHC adecks and the third and darkest from the local .py using the best track.  Note that the initial position error with the best track is 0 nmi.
The improvement using the best track in EPAC is confined to 0-24 h.  the 48-h and 72-h with the best track are actually higher that the NHC operational runs!

3.4 LANT (North atLANTic) 
2012-2016 LANT CLIPER mean position error [nm].  the first bar comes from the local .py with operational initial position and motion; the next from the NHC adecks and the third and darkest from the local .py using the best track.  Note that the initial position error with the best track is 0 nmi.        
 

Similar results as in EPAC...

4.0 Comments and Questions

As Charlie Neumann discovered many years ago, the LANT is the 'hardest' basin to forecast because the climatology and persistence have the highest position error.  In contrast, EPAC is the 'easiest' with mean errors 30-40% lower than in the LANT.  WPAC is the next hardest basin and the NIO is between EPAC and WPAC.

The NIO errors are puzzling in that my local implementation does better than in operations and note the strong sensitivity to the initial position and motion..

The code I'm using in EPAC/LANT must be slightly different than at NHC since I cannot reproduce their CLIP even using the best track...  

I need