Uniformly Distributed Tweets
2014 Mar 21 07:49 PM MDT | Math7 Programming18 [2014]3
For my Grammar bot, I added a new feature: GPS coordinates are added to the tweets. This is just for fun and serves no practical purpose.
However, I wanted the tweets to be uniformly distributed over a sphere. Earth’s shape is not a sphere, but the error is under 1%.
$a$ and $b$ are random values uniformly distributed in $[-1,1]$
\(latitude=\theta=\sin^{-1}(u)\)
\(longitude=\phi=\pi v=(180^{\circ}) v\)
According to Wolfram MathWorld, points are randomly distributed over a sphere if:
$\theta$ represents latitude and $\phi$ longitude.
$u$ and $v$ are uniformly distributed in $[0,1]$
\(\theta=\cos^{-1}(2u-1)\)
\(\phi=2\pi v\)
Adjusting $u$ and $v$, now distributed in $[-1,1]$, we get:
\(\theta=\cos^{-1}(u)\)
\(\phi=\pi (v + 1)\)
However, latitude is to be in -90 to 90 degrees, not 0 to 180 degrees, and longitude is to be in -180 to 180 degrees, not 0 to 360 degrees.
\(\theta=\cos^{-1}(u)-\frac\pi2=-\sin^{-1}u\)
\(\phi=\pi v\)
By spherical symmetry, the negative sign can be removed from latitude, and the distribution will remain the same.