Uniformly Distributed Tweets
2014 Mar 22 01:49 AM UTC | 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.