QUOTE (URISoxFan @ May 19 2009, 08:40 AM)
index.php?act=findpost&pid=2301481
I have the time. When you get a second, can you post them, as well as the explaination?
I'm pretty interested in this, and I've fallen behind the curve on the pitch f/x stuff...I'm begging to be taught.
First, the de facto strike zone, derived from a lot of 2008 data. Negative numbers mean distance outside the edge of the rulebook zone and positive numbers indicate inches inside the edge.
To the left:
-3.5 or worse, ball
-2.75 to -3.5, usual ball
-2.0 to -2.75, usual strike
-2.0 or better, strike
To the right:
-2.0 or worse, ball
-1.5 to -2.0, usual ball
-1.0 to -1.5, usual strike
-1.0 or better, strike
High:
0 or worse, ball
0 to 0.5, usual ball
0.5 to 1.0, usual strike
1.0 or better, strike
Low:
-0.5 or worse, ball
-0.5 to 0.5, usual ball
0.5 to 1.5, usual strike
1.5 or better, strike
You can see that the gray area ("usual strike" + "usual ball") to the right and at the top is only an inch wide, but it's 1.5 inches wide left and two inches wide low. The division between the "ball," "strike", and gray area is based on the data, after that I just divided the gray areas in half for the sake of consistency (which I also think would be the pattern with more data -- the actual number of pitches I had in the gray area wasn't enough to divide them up empirically).
And now, the hairy formulas to calculate final pitch position from the pfx data:
The actual position of a pitch to the umpire's left is (pitch/fx tags in {}):
=IF({@px}<0,10+12*{@px}+MAX(0,({@vx0}*(85/176/{end_speed})+0.5*{@ax}*((85/176/{end_speed})^2+2*(85/176/{end_speed})*(({@y0}-17/12)/({end_speed}+{start_speed})*15/11)))*12),"")
What this is doing is calculating how long the pitch is passing over the plate and how much it is moving from left to right while it is doing so. As with the strike zone report above, a value of "0" means on the edge of the rulebook strike zone, negative values are outside and positive ones over the plate; if the pitch was to the right of the center of the plate it just returns the null string. Numbers like "85/176" are mostly converting from mph to feet or inches per second.
(This actually is an estimation since it calculates time to the plate by averaging initial and final velocity. I just discovered that I haven't been using the inconsequentially more accurate version which solves a quadratic equation instead -- but here's the version of that for strikes to the ump's right:
=IF({@px}>0,10-12*{@px}-MIN(0,({vx0)*(85/176/{end_speed})+0.5*{@ax}*((85/176/{end_speed})^2+2*(85/176/{end_speed})*((-SQRT({@vy0}^2-2*{@ay}*({@y0}-17/12))-{@vy0})/{@ay})))*12),"")
An estimate of the high strike:
=({@sz_top}-{@pz})*12+1.5+192*((82.5/({start_speed}+{end_speed})+((17-MIN(8.5,12*ABS({@px})))/12)/({end_speed}*22/15))^2-((82.5/({start_speed}+{end_speed}))^2))-(17-MIN(8.5,12*ABS({@px})))/600*{@pfx_z}
This roughly calculates the drop due to both gravity and spin as the pitch passes over the plate. I have notes for a more accurate version that includes the interaction between the shape of the plate and the horizontal break of the pitch.
The low strike needs no adjustment and is simply:
=({@pz}-{@sz_bot})*12-1.5
The 1.5 in both of these is half a ball width.