# Earth curvature

Whether the Earth's curvature is taken to have lowered a distant target below the horizontal line you entered as the slope.

## Generated table

**Setting:** Earth curvature

| Choice | Used by |
|---|---|
| Off | Standard, Physics, Classic, Spin |
| On (inclination from map heights) | Custom only |

## What it does

The solver needs the slope of the line of sight. This setting says where that slope came from.

- **Off:** the slope you entered is the angle of the line of sight to the target, as an angle meter or a phone reads it. The Earth's curvature is already inside that reading, so nothing is added. This is the setting in all four models.
- **On (inclination from map heights):** the slope you entered is the angle of the line from the shooter's height to the target's height, taken from a map, as if the ground were flat. The solver then lowers the slope by the angle the curvature adds, separately for each range, and works the shot at that lowered slope. Every come-up it prints is relative to the lowered line of sight, which is the line the scope looks along. The solution carries the lowering in mils, so the app can say it in words.

## When to choose it

Leave it off whenever you measured the angle to the target. Turn it on only when the slope was worked out from the heights of the two points on a map. The lowering is a quarter of a mil at two miles on level ground, and what it changes in the dial is much smaller still (see "On a real shot"), so on most shots the choice is lost in the other uncertainties. It makes a range card take longer, because each row is its own solve.

## How to picture it

Stand at the rifle and look level. The horizon plane through your eye is flat, but the Earth falls away beneath it: a point on the ground a distance $R$ away has dropped below that plane by $R^2/(2R_E)$, with $R_E$ the Earth's radius. A target at the same height above sea level as you therefore sits a little below your horizontal, and the straight line to it points slightly downward, by $R/(2R_E)$ as an angle. At two miles (3520 yd) that is about 0.81 m, or 32 in, below the horizontal, an angle of 0.25 mil. A diagram would draw a level line from the rifle, the curve of the ground falling away under it, a target on the curve, and the sight line to it tilted below the level line by that angle. A map that gives heights only (and treats the ground as flat) gives you the level line's slope; the option adds the tilt.

The tilt grows in proportion to range, so each range on a card has its own tilt. That is why the option solves each range separately.

## The math

For a range $R$ (yards), the line-of-sight dip is

$$ \delta = \frac{0.9144\,R}{2\,R_E} $$

in radians, and the slope the solver works the shot at is

$$ \theta' = \theta - \delta\,\frac{180}{\pi} $$

in degrees. The dip reported with the solution is

$$ \text{dip}_{\text{mil}} = 1000\,\delta $$

| Symbol | Meaning | Value / unit |
|---|---|---|
| $R$ | range of the row being solved | yd |
| $0.9144$ | metres per yard | m/yd |
| $R_E$ | radius of the Earth, one fixed sphere | 6,371,000 m |
| $\delta$ | dip of the line of sight below the entered slope | rad |
| $\theta$ | entered inclination, up positive | degrees |
| $\theta'$ | inclination the shot is worked at | degrees |

**Off.** $\theta' = \theta$ and no dip is reported.

**On.** Nothing else in the solve is changed. The solver runs the ordinary shot at $\theta'$ with this option set to off, for that one range, and attaches $\text{dip}_{\text{mil}}$ to the row. The curvature is not added as a drop term, and gravity is not rotated by a separate rule: the lowered slope goes wherever the slope is already used (gravity split along and across the line of sight, the height used for the air under `lapse`, the Earth-rotation terms of `coriolis`, the spin drift's cosine of the slope). The zeroing flight does not see the dip: it uses the profile's own zero slope, or level. The dials are relative to the line of sight at $\theta'$, so the dip itself is not added to the come-up.

Since $\delta$ is small, the quantity to compare against is $\sin\theta'$ and $\cos\theta'$ against $\sin\theta$ and $\cos\theta$: they differ by about $\delta\cos\theta$ and $\delta\sin\theta$ respectively.

## The algorithm

Run at the top of every card (a single shot is a card of one range), before the flights.

```
function card(profile, env, target, ranges, options):
    if options.curvature == 'on':
        rows = []
        for r in ranges:                                   # one solve per range
            dip = (r * 0.9144) / (2 * 6371000)             # rad
            theta2 = target.inclination_deg - dip * 180 / pi
            row = card(profile, env, target with inclination theta2, [r], options with curvature = 'off')[0]
            row.los_dip_mil = dip * 1000
            rows.append(row)
        return rows
    ... the ordinary solve (zero, then the flight at target.inclination_deg)
```

The earth radius:

## On a real shot

**Changing only this setting on the Standard model**

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 3520 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. All other settings are the Standard model's. In the first column (North, level) the reference arc reaches 223 ft above the line of sight at 2160 yd.

| Value | Shown in the app as | North, level | East, level | North, 10° uphill | North, 10° downhill |
|---|---|---|---|---|---|
| `'off'` | Off | reference | reference | reference | reference |
| `'on'` | On (inclination from map heights) | 0.000 / 0.000 / 0.0 | 0.000 / 0.000 / 0.0 | +0.002 / 0.000 / 0.0 | -0.003 / 0.000 / 0.0 |

**Each value under the Physics model's other settings**

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 3520 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. All other settings are the Physics model's. In the first column (North, level) the reference arc reaches 221 ft above the line of sight at 2150 yd.

| Value | Shown in the app as | North, level | East, level | North, 10° uphill | North, 10° downhill |
|---|---|---|---|---|---|
| `'off'` | Off | reference | reference | reference | reference |
| `'on'` | On (inclination from map heights) | 0.000 / 0.000 / 0.0 | 0.000 / 0.000 / 0.0 | +0.002 / 0.000 / 0.0 | -0.003 / 0.000 / 0.0 |

Each cell is the change from the reference row (`'off'`) in the same shot, as elevation (mil) / windage (mil) / velocity at the target (fps). Elevation: plus means more elevation must be dialed. Windage: plus means the windage correction moves to the right (dial further right); this is a correction, not where the bullet lands. Velocity: plus means the bullet arrives faster. A zero means no difference at the shown precision.

Read from the table: turning the option on changes the come-up by 0.000 mil on the north and east level shots, by +0.002 mil on the 10-degree uphill shot and by -0.003 mil on the 10-degree downhill shot, under both the Standard and the Physics settings; windage and arrival velocity do not change at the shown precision. The dip itself is about a quarter of a mil at this range (see "How to picture it"), but the dials are relative to the lowered line of sight, so the dip is not in the come-up; only the small change of the slope is. By the math section, the across-the-line part of gravity goes as $\cos\theta'$, and lowering $\theta$ by $\delta$ changes $\cos\theta$ by about $\delta\sin\theta$: nothing at the printed precision on a level shot, and of opposite sign on an uphill and a downhill one, which is the pattern of signs in the table. The change is the dial times $\delta$ times $\tan\theta$, so it is largest on steep slopes and vanishes on a level shot.

---

[All reference pages](../index.md)
