Or, Taking ‘geometry’ too literally

One of the advantages of this time of year is that sunrise tends to happen just after I get up in the morning, meaning that occasionally, my south-east facing room gets treated to a nice sunrise. One of the best kinds is when the sun shines upwards onto the bottom of a layer of clouds, producing a lovely orange-pink sky which only lasts a few minutes. After one such sunrise, while I was slowly waking up over breakfast, I realised that this is only possible because of the curvature of the Earth (the lighting of the bottom of the clouds, I mean – though of course, this is true of the sunrise itself, too).
After some further thought, I realised that you could use this to measure the height of the clouds if you know the radius of the Earth, or vice versa, which is a bit more interesting.
The geometry of the problem is pretty simple, and will be familiar to anyone who’s calculated the distance to the horizon:

In this highly technical rendering, the brown circle is the Earth, with its radius \(R\); and above it, a flat layer of clouds at an altitude \(h\). From this height, the distance to the horizon is \(d\), which can be calculated using Pythagoras. The sun is rising to the right, and the amount of time the clouds will be illuminated is just the time that the sun spends between the dashed and dotted lines.
So the thing we need to know is the angle \(\varphi\), which is easily obtained from the right triangle:
\(\cos \varphi = \frac{R}{R + h}\)
To make things a little simpler, we can assume that \(R \gg h\), i.e. the altitude of the clouds is very small compared to the Earth. This is hopefully a reasonable assumption, but the \(\cos\) can be left in if you really want:
\(\varphi = \sqrt{\frac{2h}{R+h}}\)
Now we’ve calculated \(\varphi\) one way, let’s do it another way, and equate the two. Naïvely, this could be done by assuming that the Earth rotates at a rate of \(2\pi\) radians per day, so the angle is just
\(\varphi = \frac{T}{1~\mathrm{day}}2\pi\),
where \(T\) is time for which the clouds are illuminated. The problem here is that the sun does not (generally) rise perpendicular to the horizon; if you’re not near the equator, it will also move to the right (or left if you’re in the southern hemisphere). Generally speaking, the sun’s deviation from vertical will be roughly equal to your latitude:

This approximation won’t work so well during the solstices at higher latitudes, but it’s pretty good when you consider I’m going to have to guess the altitude of some clouds in a minute. This brings our modified, more accurate formula for \(\varphi\) to
\(\varphi = \frac{T \cos \mathcal{l}}{1~\mathrm{ day}}2\pi\),
where \(\mathcal{l}\) is your latitude.
Finally, we can equate the two formulae for \(\varphi\) to give us
\(\sqrt{\frac{2h}{R+h}} = \frac{T \cos \mathcal{l}}{1~\mathrm{ day}}2\pi\)
If we want to work out the radius of the Earth, this can be contorted into
\( R = h \left( \frac{1}{2} \left( \frac{1~\mathrm{day}}{\pi T \cos \mathcal{l}} \right)^{2} – 1\right) \)
We can see that as long as \(T \ll 1~\mathrm{day}\), we’re going to get a pretty big number for \(R\). We have a problem though, in that this means that our estimate for the radius is proportional to the estimate for cloud height and the square of our estimate for how long they’re lit up:
\( R \propto h T^{-2} \)
Essentially, this means that errors in \(h\) will produce proportional errors in \(R\), but the effect of errors in \(T\) will be doubled. There’s not much that can be done about this, so let’s plug in some numbers and see how we did:
Luckily, I know \(\mathcal{l} = 52^o\), so that’s easy enough. The clouds in the photo above are altocumulus, which means they’re probably somewhere between 3 and 6 kilometres up; I’ll take the middle of the range – \( h = 4.5\) km. Finally, \(T\): I wasn’t sitting around watching the sky all morning, so I don’t have a measurement. About 10 minutes, or maybe a bit less, seems reasonable.
Taking these values gives a final result of 12 500 kilometres. This would have been really great if we were measuring the Earth’s diameter, but since we’re not, it means that a factor of two has crept in somewhere. The actual value is about 6 350 kilometres.
So, what went wrong? I believe the main culprit is that it’s still quite close to the winter solstice (the photo was taken on the 20th of January), meaning that the sun rose at a shallower angle than it would later in the year. This angle is a bit tedious to calculate (so I haven’t), but to explain the factor of 2 error, you only need to vary it by 13\(^\circ\), which seems pretty reasonable. The squared term in the formula is actually quite helpful here, as you only need a small change in angle to produce a large change in \(R\).
There are a couple of other possibilities, too: I assumed the cloud layer is flat, while it will probably conform neatly to the curvature of the Earth. This also introduces the possibility that the edge of the cloud sheet could shade the rest, making the sunrise seem faster. On the other hand, I feel like 10 minutes is an overestimate of the duration. A lower value would counteract these effects, but (probably) only partially.
So there you have it: if you ever find yourself wondering how big the Earth is, simply look up at sunrise (and know your latitude, and the date, and the height of the clouds. Oh, and keep a stopwatch handy.)