The following graph shows the result of a very impressive differential measurement of the gravitational field in Boulder, Colorado, over a period of a couple of days.

graph of g as a function of t

Floris got it from a description in a book and posted it as part of an answer to this question. Based on the caption, I'm guessing that the experiment was described in this paper by Zumberge, which I don't have access to.

There is excellent agreement between theory and experiment, and the main features of the graph are these two Fourier components:

  • period=12 hrs, peak-to-peak amplitude $\approx 1.8\times10^{-7}g$

  • period=24 hrs, peak-to-peak amplitude $\approx 1\times10^{-7}g$

In addition, there is a slower trend, which I assume comes from interference between the solar and lunar effects.

Assuming a perfectly rigid earth, no solar effect, no effect from ocean tides, and a two-dimensional geometry, my calculation in this answer gives the following for $g_Z$, the apparent field when the moon is at the zenith, and $g_N$, when the moon is at its nadir.

$$ \frac{g_N}{g_0} = 1 -\frac{ 2Gmr}{g_0R^3} + \frac{3Gmr^2}{g_0R^4} $$

$$ \frac{g_Z}{g_0} = 1 -\frac{ 2Gmr}{g_0R^3} - \frac{3Gmr^2}{g_0R^4} $$

The difference is $(6Gmr^2/g_0R^4)=6\times10^{-9}$, which is far too small to explain the observed diurnal effect.

I gather that ocean tides can have not just a semidiurnal component but a diurnal one as well. I don't know why this is. Whatever the mechanism is, conceivably that same mechanism would also cause the diurnal effect observed here. I assume that the gravitational field of the ocean is not itself responsible for the effect observed here, since the experiment was done in Boulder, Colorado.

The spectacular agreement between theory and experiment shows that the diurnal experiment must be well understood theoretically. What causes it?

  • $\begingroup$ The scale on the graph is in $\mu m s^{-2}$, but the peak to peak values you have ($10^{-7}$) seem to be one order of magnitude lower. Why is that? $\endgroup$ – user_of_math Jul 30 '14 at 17:43
  • $\begingroup$ @user_of_math: I'm expressing them as fractions of $g$. The factor of 10 is from $g\approx 10$ m/s2. $\endgroup$ – Ben Crowell Jul 30 '14 at 17:48
  • $\begingroup$ Awww, from the linked paper by Zumberge, First, the instrument, which was packed into 18 suitcase-sized boxes (the total shipping weight of the 400 kg instrument was 600 kg), was lost by the airlines for three days somewhere between New York and Paris. It, of course, needed repairing too. $\endgroup$ – Kyle Kanos Jul 30 '14 at 17:55
  • 1
    $\begingroup$ Given the fact that the experiment is done by dropping a corner cube, the third author's name (Faller) makes me crack a smile. $\endgroup$ – Floris Jul 30 '14 at 22:05

I believe the explanation can be found in Manual of Harmonic Analysis and Prediction of Tides :

In deriving mathematical expressions for the tide-producing forces of the moon and sun, the principal factors to be taken into consideration are the rotation of the earth, the revolution of the moon around the earth, the revolution of the earth around the sun, the inclination of the moon's orbit to the earth's equator, and the obliquity of the ecliptic.

The key here is the fact that the earth's axis is at an angle relative to the plane of the sun, and that in general the moon will not be in the same plane. Thus, there are two sets of bulges - but they will be not be symmetrical with respect to the equator. What you are seeing then is the fact that a typical point on earth (away from the equator) will be closer to one bulge than the other...

enter image description here

In this picture you can see that for a given latitude away from the equator, you will "see" more of one bulge of the tides than the other. This asymmetry is present for both the lunar and the solar tides (although to different degree, given that the moon's orbit is tilted differently). The result is a 24 hour component.

This is described very well at http://oceanmotion.org/html/background/tides-types.htm - confirming that the tides become more symmetrical when the moon is over the equator, and less so when it moves towards the tropics of Cancer or Capricorn.

Quoting from that reference:

Different types of tides occur when the moon is either north or south of the equator. Whereas semidiurnal tides are observed at the equator at all times, most locations north or south of the equator experience two unequal high tides and two unequal low tides per tidal day; this is called a mixed tide and the difference in height between successive high (or low) tides is called the diurnal inequality. When the moon is above the Tropic of Cancer or Tropic of Capricorn, the diurnal inequality is at its maximum and the tides are called tropic tides. When the moon is above or nearly above the equator, the diurnal inequality is minimum and the tides are known as equatorial tides. When the moon and its associated tidal bulges are either north or south of the equator, most points at high latitudes in theory would be impacted by one tidal bulge and would experience one high tide and one low tide per tidal day. This so-called diurnal tide has a period of 24 hrs and 50 min.

If you are interested in the math, you might want to spend the time decoding this program which implements the equations and shows good agreement with observations.

EDIT I got curious and converted the code at the link above to Python (so I could run it). Then I ran it for three different cases. The Y axis is in microgals ($1\ gal = 1\ cm/s^{2}$ - the galileo is the common unit in this field). The units on the X axis are hours - but the date is wrong (I had some trouble initially adapting the code properly - I believe these plots might correspond to January 1981, but I am not certain. The effect, however, is real.)

Latitude = 0:

enter image description here

Latitude = 20:

enter image description here

Latitude = 40:

enter image description here

It is pretty obvious that the asymmetry between the tides is a function of the latitude, just at my picture above would predict, and although there are clear discrepancies between this plot and the one in the original paper, the general shape and magnitude is the same - especially for latitude 40 (Boulder is at 40 degrees latitude). I think we have found the culprit.


I had some problems getting the output from my program to match the figure; but I figured it out. Here is the overlay of the data with the output of the program for May 2/3/5 1981 for latitude 40, longitude 105: enter image description here

And here is the Python code (note - I took the BASIC code and adapted it as little as possible... this is not being offered for code review, just for reference!)

From the original:

'       Copyright, 1993, J. L. Ahern
'  Calculates the acceleration due to the sun and moon at a given location,
'    for every hour, beginning at a specified hour, day, month and year.
'    Value calculated is the UPWARD pull due to the sun and moon. To use
'    as correction to measured gravity data, you would need to ADD these
'    numbers, not subtract them.  When the moon is overhead, for example
'    this program predicts a relatively large positive number, indicating
'    a large upward pull due to the moon. This would result in a DECREASE
'    in a gravity meter reading. Thus the tide value would be ADDED to
'    correct for this effect.
'    Based on equations presented by
'       Schureman, P., A manual of the harmonic analysis and prediction of
'         tides. U.S. Coast and Geodetic Survey, Spec. Pub. 98, 1924 (revised
'         in 1941 and 1958).
'  and collected by
'       Longman, I. M., Formulas for computing the tidal acceleration due to
'         the moon and the sun. J. Geophys. Res., 64, 2351-2355, 1959.
'  Love numbers from Stacey, Physics of the Earth.
'  Algorithm for computing days since 1900 seems to be correct (except for
'    for first 3 months of 1900); Excel calls Jan. 1, 1900 day 1 (not day
'    0) and then mistakenly includes a leap day in 1900, even though 1900
'    is not divisible by 400. Quattro correctly skips the leap year in
'    1900, but calls Jan. 1, 1900 day 2, apparently so it gives the same
'    results as Excel (and probably, Lotus 123)

This version adapted to Python by Floris for physics.stackexchange.com
- for illustration of the tides calculation only
Please do not rely on this code unless you check it carefully against the 
original source:


from math import sin,cos,asin,acos,atan, floor, sqrt
from numpy import arange, zeros
from datetime import date
import matplotlib.pyplot as plt


lamda = 40 # latitude
h = 160000  # elevation, cm; tides are VERY insensitive to elevation changes


pi = 3.1415927#
mu = 6.67E-08
m = 7.3537E+25
s = 1.993E+33
il = .08979719#
omega = .4093146162#
ml = .074804
el = .0549
cl1 = 1.495E+13
cl = 3.84402E+10
al = 6.37827E+08
# Love Numbers
h2 = .59
k2 = .27
LoveFactor = (1 + h2 - 1.5 * k2) #' w/h2=0.59 & k2=0.27, LoveFactor=1.185

# starting day of the month:
minc=[ 0,31,59,90,120,151,181,212,243,273,304,334]

g0max = 0
g0min = 0

minit = 0
timezone = 0 # offset in time vs gmt
hour = 16    # start at 4 pm in local time
day = 2      # May 2, 1981
month = 5
year = 1981
nhours = 55
hrinc = 0.5
xb = hour + timezone
xe = xb + nhours
# algorithm doesn't work for the first two months of 1900
nn = nhours / hrinc
for hrgmt in arange(xb, xe, hrinc):
        dday = day + hrgmt / 24
        tl0 = hrgmt + minit / 60
        nleap = int((year - 1900) / 4)
        if (year % 4 == 0 and month < 3):
            nleap = nleap - 1

        xm = minc[month-1]
        tdays = .5 + (year - 1900) * 365 + nleap + xm + (day - 1) + tl0 / 24

        t = tdays / 36525
        n = 4.523601612 - 33.75715303 * t + .0000367488 * t * t + .0000000387 * t * t * t
        el1 = .01675104 - .0000418 * t + .000000126 * t * t
        sl = 4.720023438 + 8399.7093 * t + .0000440695 * t * t + .0000000329 * t * t * t
        pl = 5.835124721 + 71.01800935999999 * t - .0001805446 * t * t - .0000002181 * t * t * t
        hl = 4.881627934 + 628.3319508 * t + .0000052796 * t * t
        pl1 = 4.908229467 + .0300052641 * t + 7.902400000000001E-06 * t * t + .0000000581 * t * t * t
        i = acos(.9136975738000001 - .0356895353 * cos(n))
        nu = asin(.0896765581 * sin(n) / sin(i))
        L = lng * .0174532925
        tl = (15 * (tl0 - 12) - lng) * .0174532925  # magic number converts degrees to radians: 2 pi / 360
        chi = tl + hl - nu
        chi1 = tl + hl
        ll1 = hl + 2 * el1 * sin(hl - pl1)
        cosalf = cos(n) * cos(nu) + sin(n) * sin(nu) * .9173938078
        sinalf = .3979806546 * sin(n) / sin(i)
        alf = 2 * atan(sinalf / (1 + cosalf))
        xi = n - alf
        sigma = sl - xi
        ll = sigma + .1098 * sin(sl - pl) + .0037675125 * sin(2 * (sl - pl)) + .0154002735 * sin(sl - 2 * hl + pl) + .0076940028 * sin(2 * (sl - hl))
        lm = lamda * .0174532925
        costht = sin(lm) * sin(i) * sin(ll) + cos(lm) * (((cos(.5 * i)) ** 2) * cos(ll - chi) + ((sin(.5 * i)) ** 2) * cos(ll + chi))
        cosphi = sin(lm) * .3979806546 * sin(ll1) + cos(lm) * (.9586969039 * cos(ll1 - chi1) + .0413030961 * cos(ll1 + chi1))
        c = 1 / sqrt(1 + .006738 * (sin(lm) ** 2))
        rl = 6.37827E+08 * c + h
        ap = 2.60930776E-11
        ap1 = 1 / (1.495E+13 * (1 - el1 * el1))
        dl = 1 / (1 / cl + ap * el * cos(sl - pl) + ap * el * el * cos(2 * (sl - pl)) + 1.875 * ap * ml * el * cos(sl - 2 * hl + pl) + ap * ml * ml * cos(2 * (sl - hl)))
        D = 1 / (1 / cl1 + ap1 * el1 * cos(hl - pl1))
        gm = mu * m * rl * (3 * (costht ** 2) - 1) / (dl * dl * dl) + 1.5 * mu * m * rl * rl * (5 * (costht ** 3) - 3 * costht) / (dl ** 4)
        gs = mu * s * rl * (3 * (cosphi ** 2) - 1) / (D * D * D)
        g0 = (gm + gs) * LoveFactor

        xx[ii]=day+(hrgmt-timezone)/24 # back to local time - in days
        yy[ii]=-g0 # flip the sign to match diagram

  • $\begingroup$ There's something wrong with that program. I just modified a detailed spacecraft launch simulation to compute the tidal gravitational acceleration. Then I never launched the vehicle. I just let it sit on the pad for four days, starting from 06:00Z May 1, 1981. Then I ran the sim a few times, moving the launchpad around the globe. I didn't see a nice sinusoid. I always saw a sum of multiple sinusoids, with ~half day and ~full day components. That makes sense. The Earth's rotation axis is tilted by about 23 degrees the Earth's orbit about the Sun. You should never see a pure sinusoid. $\endgroup$ – David Hammen Jul 31 '14 at 19:40
  • $\begingroup$ @DavidHammen - it depends on the time of the year and the relative phases of the sun and moon. Around the equinox the equator should give something close to a sinusoid. My initial plots were for a different date than the final one... I had some trouble interpreting the BASIC code so my date was off for the first three plots (but not the last one). $\endgroup$ – Floris Jul 31 '14 at 19:47
  • $\begingroup$ Of course what I just said applies to the tides due to the sun (the weaker ones). Because the moon's orbit is not coplanar with the earth's around the sun, things are a bit more complicated still. But I do believe that positions closer to the equator should have less of a 24 hour component in their gravitational variation. $\endgroup$ – Floris Jul 31 '14 at 20:11
  • 2
    $\begingroup$ A hearty +1 for reproducing the plot in question! $\endgroup$ – rob Aug 1 '14 at 16:26

I posted a link to a summary paper on tides in a comment yesterday. That paper is Agnew, D. C. (2007), "Earth Tides", pp. 163-195 in Treatise on Geophysics: Geodesy, T. A. Herring, ed., Elsevier. That paper contains the answer to your question.

I don't know how long that link will last, so I'll summarize some of what Agnew described. This is a summary paper; there's nothing new here. Much of this is 100 years old or older. The key work on this was done by Sir William Thomson, George Darwin (Charles's son), Doodson (google "Doodson number"), and A.E.H. Love (google "Love number", but watch out for the mis-hits.)

Suppose the Earth is some distance $R(t)$ from a gravitating body of mass $M$, measured center of mass to center of mass, and suppose the angle between the line between those two bodies and some point of interest on the surface of the Earth is $\alpha(t)$. The gravitational potential energy due to the gravitating body at that point is $V(t) = \frac{GM}{\rho(t)}$ where $\rho(t)$ is the distance between the point of interest and the gravitating body. (Note: I'm adopting the convention that potential energy is positive, which is fairly standard in treatises on the tides.) Assuming a spherical earth of radius $r$, $\rho(t)$ can be written in terms of $R$ and $\alpha$

$$V(t) = \frac{GM}{R(t)}\frac 1 {\sqrt{1+(r/R)^2-2(r/R)\cos\alpha(t)}}$$

Expanding this using Legendre polynomials yields

$$V(t) = \frac{GM}{R(t)}\sum_{n=0}^{\infty} \left(\frac r R\right)^n P_n(\cos\alpha) $$

We want to omit the $n=0$ and $n=1$ terms. The $n=0$ term can be omitted since it has no gradient (we ultimately want force), and the $n=1$ term is the potential at the center of the Earth. Thus the tide generating potential is

$$V_{\text{tide}}(t) = \frac{GM}{R(t)}\sum_{n=2}^{\infty} \left(\frac r R\right)^n P_n(\cos\alpha) $$

The next step is to re-expand this in terms of spherical harmonics. That angle $\alpha$ is a function of where the gravitating body is in space and time, how the Earth is oriented in time, and the latitude and longitude of the point.

Some spherical cow assumptions: Assume the Earth is rotating uniformly with angular velocity $\Omega$, the point in question is at 0° latitude, 0° longitude, that the body is orbiting circularly with angular velocity $\beta$ and inclination $\varepsilon$ , and that at time $t=0$ the body was at its ascending node with a longitude of ascending node equal to zero.

With a lot of work, the $n=2, m=2$ term of the spherical harmonic expansion leads to three harmonics with angular frequencies of $2\Omega$, $2\Omega-2\beta$, and $2\Omega+2\beta$. These are the semidiurnal tides. The third term is typically negligibly small. With multiple gravitating bodies, all will contribute a term to the twice per sidereal day ($2\Omega$). This is the semidiurnal lunisolar tide, also fairly small. The $2\Omega-2\beta$ term is huge. For the Moon, this is a period of 12.42 hours. For the Sun, it's exactly 12 hours.

With even more work, the $n=2, m=1$ term of the spherical harmonic expansion leads to three more harmonics with angular frequencies of $\Omega$, $\Omega-2\beta$, and $\Omega+2\beta$. The $\Omega$ term once again comprises contributions from multiple bodies. The $\Omega-2\beta$ terms are unique per body. These are the diurnal tides, and they are what you are seeing in that graph.

The picture becomes much more complex when you get rid of those spherical cow assumptions.

  • $\begingroup$ The biggest spherical cow is the "latitude zero" assumption - as my picture shows the main cause of diurnal tides is the fact that the earth-moon vector is in general not perpendicular to the axis of rotation of the earth - and when it is not perpendicular, higher latitudes will sample different parts of the tidal bulge during a 24 hour revolution. $\endgroup$ – Floris Aug 9 '14 at 23:04
  • $\begingroup$ @Floris -- The earth-moon vector is never perpendicular to the axis of rotation for any point on the surface of the Earth. The Moon's orbit has an inclination between 4.99 and 5.30 degrees with respect to the ecliptic, which in turn is inclined 23.5 degrees with respect to the equator. There's something wrong with the program you used. $\endgroup$ – David Hammen Aug 9 '14 at 23:27
  • $\begingroup$ Earth-sun vector is obviously perpendicular to the axis of rotation at the equinox (sun over the equator). Moon passes over the equator during its orbit. Not sure what a "equimoon" should be called - but that is when I would expect the lunar tides to be even. For a program that has "something wrong" I got awfully good agreement with the experimental data that started this question... What is the source of your launch program? $\endgroup$ – Floris Aug 10 '14 at 6:06

An overview of how to do the tidal corrections is at http://gravmag.ou.edu/reduce/reduce.html (from Googling 'gravity tide correction'). You might also follow up looking at http://www.applied-gravity.com/gb/html/tides.html.

From http://eclipse.gsfc.nasa.gov/phase/phases1901.html one can see that May 4th of 1981 (the Zumberge paper) was a new moon. For the first link provided, the timescale is relative to March 25th, 1993, which is two days after the new moon. The second link shows the tidal variations over a full month (September 2003, 9/25 is the new moon).

Hope that helps...


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.