A Challenge to Flat Earthers


Is the Earth round? Most people say yes, obviously. But a growing (or at least growing in loudness) number on the internet say no. Flat Earthers are (or seem to be) real, and they seem to have an answer to every argument that we are living on a spinning globe.

But shouldn’t it be obvious that the Earth is round, you ask? How do you explain the sunrise and sunset or time zones if Earth is flat? What about ships disappearing over the horizon? But Flat Earthers will say it’s refraction*—light bending through the atmosphere makes things appear to vanish over the horizon. What about the circular shadow of the Earth during a lunar eclipse? Most of them say Earth is a circular disk, so it can still cast a circular shadow (even though there are lots of other problems like that).

Fine, but there are quantitative experiments that can be done to measure the curvature of the Earth, aren’t there? Eratosthenes’ shadows and so forth. Surveying equipment over the ocean or flat stretches of water. Taking a photo from a high-altitude balloon or actual space. But no. Conspiracies, conceptual errors, and camera artifacts, they say. These things are all difficult for the average layperson to measure, and it’s hard to account for all the complications when you do. (Camera distortions are very real, especially over wide angles.)

However, I thought of an idea. It wasn’t even about proving Earth is round at first; I was just wondering if I could see the curvature of the Earth. But I realized it applies here, and it’s something that I haven’t seen in my admittedly limited reading on the subject.

So here is my Flat Earth Challenge. This is an experiment that you personally can do with nothing but a smartphone, a ruler, and a window seat on a commercial airliner: Take a photo of the horizon from the plane and measure the curvature. I tried to do this myself during my trip to Iceland a few months ago, but I wasn’t able to get a window seat during daylight, so I couldn’t get a good shot. I’ll try it again the next time I fly. (If there are any fellow astrophysicists reading who are going to the AAS, try it on your flight to Hawaii.)

Flat Earthers never accept photographic evidence for a round Earth because they can blame any apparent curvature on lens distortion, which can indeed make a straight line appear curved in a photo. There are ways to account for lens distortion, but they’re complicated, and you won’t necessarily know how to do them, so let’s not worry about them. Instead, there’s a simple way to correct for this: just hold a ruler up to the horizon against the window in the photo. That will give you an absolute standard for what is “straight.” If the horizon is straight, and you line it up right, they should match exactly, but if it’s curved, this is roughly what it should look like:

Behold my amazing photoshop skills! (Actually, I mostly did it in PowerPoint.)

Is this actually measurable? One of the problems with trying to observe the curvature of the Earth is that Earth is so big. Even up in an airplane, it’s too big to see the curvature easily with the naked eye. Will it work with a ruler to compare to? That’s something we can calculate mathematically.

First, lets make some simple assumptions about the photo. Suppose your field of view is 60 degrees, typical of many smartphone cameras. Next, assume your ruler is one foot long (or rather 30 cm), and you hold the camera about a foot away from it so that the ruler stretches all the way across the image. (Airplane windows are usually less than a foot wide, so you may need to use a shorter ruler at a closer distance, but the idea is the same.) If the horizon is curved, and you line the ruler up at the edges of the window, the curve of the Earth should stick up above it.

It’s kind of hard to visualize, but here is what you’re actually doing when you take the photo:

This is on a round Earth, of course, for a flat Earth, you have to replace the horizon circle with the edge of the flat disk. In the photo, you’re looking down at an angle at the circular horizon, and that means when projected into the photo, the middle of the horizon should be curved up relative to the edges. Geometrically, you’re looking at this trigonometry problem, where you need to solve for x:

This is still kind of confusing, and you’re probably asking where that y came from. Again, this is a projection. The distance r is the radius of Earth, h is the height of the plane, and the horizontal line represented by the distance d is the horizon circle from the previous picture, just viewed edge-on. The point where the second line of sight meets it is where the horizon intersects the edge of the photo, and if the field of view on the camera is the angle θ, then the distance y is y = d×cos(θ/2).

It takes quite a bit of trigonometry, but you can solve for x from there. If you do the math, the curvature above the ruler at an altitude of 10,000 meters (32,800 feet) is 0.376%, or 1.15 mm relative to a 1-foot ruler. In other words, the horizon should appear to bow upward in the middle by 1.16 millimeters. This isn’t much—probably too small to see without the help of the ruler, but it’s enough to show up on camera.

But hold on! Many flat Earthers believe that Earth is a circular disk 40,000 km (25,000 miles) in diameter—the same as the circumference of the round Earth. And if you go high enough above a circular disk, you’ll also see a curved edge. How much curvature will you see on a flat Earth?

In fact, it’s the same problem! We need to calculate the projected curvature of the visible circle of the Earth in your field of view. Whether that circle is domed in the middle or flat is irrelevant to the calculation because you have line of sight to the edge of that circle either way. The difference is that for a round Earth, that circle is the horizon and is only a few hundred miles in diameter. For a flat Earth, that circle is the entire Earth and is as much as a hundred times larger.

So I started to calculate the apparent curvature for a flat Earth, and it was at this point that I thought, “Why am I doing this by hand? I can just write a Python script that will compute it at any altitude.” He’s the script and…actually, no. WordPress doesn’t allow code files for security reasons. Apparently. Well, fine, I’ll paste it in at the end of the post.

Anyway, if you have Python, you can run the code for yourself. Just enter your altitude in meters as a command line argument:

python RoundEarth.py <altitude>

The expected visible curvature on a flat Earth is 0.02 mm, too small to see or photograph. Therefore, my Flat Earth Challenge will distinguish between a flat Earth and a round Earth.

If you can get higher up, you’ll see more curvature. If you’re lucky enough to find yourself on a Learjet at 15,500 meters (50,800 feet), the visible curvature should be 1.43 mm. (Again, this is relative to a 1-foot ruler covering 60 degrees of arc.) If you’re Felix Baumgartner and fly up to 39,000 meters (127,900 feet), you should see 2.28 mm of curvature. On the other hand, if you can’t get on an airplane, but you can make it to the summit of Kilimanjaro at 5,900 meters (19,300 feet), you should still see 0.88 mm of curvature. Even on the observation deck of the Burj Khalifa at 555 meters (1,821 feet), you might still be able to measure 0.27 mm of curvature.

Basically, anywhere you can get up high enough, you can see the curvature of the Earth if you’re careful about how you measure it. You don’t have to worry about camera distortion. You don’t have to rely on NASA’s satellites and “doctored” images. And you don’t have to take the word of us scientists for it. So go try it for yourself.

Full disclosure: I work at NASA, but the opinions expressed on this blog are solely my own. I only study other planets, so I’m definitely not getting any money to say this stuff.

*Refraction is a subject that will need its own post, in case you wanted to call me on that.

And here is the script to calculate the curvature in the photo:

import numpy as np
import sys

rround = 6371.0
rflat = rround*np.pi

    print('No altitude given.')
    h = (float)(sys.argv[1])/1000

horizonr = np.sqrt((rround+h)**2 - rround**2)  # 3-D distance to horizon on round Earth
thetar = np.arccos(rround/(rround+h))          # Angle between observer and horizon on round Earth
overlandr = thetar*rround                      # Overland distance to horizon on round Earth
d = np.sqrt(horizonr**2 - h**2)                # Perpendicular between the line between the observer and Earth's center, and the horizon
d = horizonr*rround/(rround+h)

if horizonr >= 2*d:
    print('Entire (round) Earth in field of view.')
alpha = np.arcsin(horizonr/2./d)               # Angle the field of view subtends of the horizon

ds = d*np.cos(alpha)                           # Projected distance along that line to the horizon's intersection with the edge of the field of view
a = np.sqrt(ds**2 + h**2)                      # Projected distance on the midplane of the image from the observer to that intersection
theta = np.arctan(h/d)                         # Angle between the observer and the perpendicular to the observer's altitude seen from the horizon
phi = np.arctan(h/ds)                          # Projected angle from the edge of the field of view
x = a*np.sin(phi-theta)/np.sin(np.pi/2-phi+theta) # Absolute difference in height between the edges and middle of the horizon
curver = x/horizonr
rulerr = curver*304.8

horizonf = np.sqrt(rflat**2 + h**2)
thetaf = np.arctan(h/horizonf)
ds = horizonf*np.cos(np.pi/6)
a = np.sqrt(ds**2 + h**2)
phi = np.arctan(h/ds)
x = a*np.sin(phi-thetaf)/np.sin(np.pi/2-phi+thetaf)
curvef = x/horizonf
rulerf = curvef*304.8

print('Altitude: {0:9.3f} km ({1:1.0f} ft)\n'.format(h,h*1.e5/30.48))
print('                          Round Earth         Flat Earth')
print('Distance to horizon        {0:9.3f} km       {1:9.3f} km'.format(horizonr,horizonf))
print('Overland                   {0:9.3f} km       {1:9.3f} km'.format(overlandr,rflat))
print('Underground                {0:9.3f} km       {1:9.3f} km'.format(horizonr*rround/(rround+h),rflat))
print('Curvature                  {0:9.3f} %        {1:9.3f} %'.format(curver*100,curvef*100))
print('Deviation from straight    {0:9.3f} mm       {1:9.3f} mm'.format(rulerr,rulerf))

About Alex R. Howe

I'm a full-time astrophysicist and a part-time science fiction writer.
This entry was posted in Debunking, Science, Uncategorized and tagged , , . Bookmark the permalink.