# How much is the difference of gravity attraction between the highest and lowest point on Mars?

Mars has a very high mountain, Olympus Mons (25 km), while Hellas Planitia is a 9 km deep crater.

How much would the weight of a person weighing 100kg on Earth, change between the highest peak of the Olympus Mons and the Hellas Planitia crater's deepest point?

tl;dr: Relative to Earth, the weight of an object on Mars would be about 37.36% and 38.09% on Olympus Mons and Hellas Planitia. The difference between those two is about 2.0%. That compares to only a 0.7% range on Earth.

The three main terms for the phenomenon of weight on a typical rocky planet's surface are:

1. gravitational monopole (GM) force
3. centrifugal effects

I've copied the math from this answer.

$$a_G = -GM \frac{\mathbf{r}}{r^3}$$

$$a_{J2x} = J2 \frac{\mathbf{x}}{r^7}(6z^2 - 1.5(x^2+y^2))$$ $$a_{J2y} = J2 \frac{\mathbf{y}}{r^7}(6z^2 - 1.5(x^2+y^2))$$ $$a_{J2z} = J2 \frac{\mathbf{z}}{r^7}(3z^2 - 4.5(x^2+y^2))$$

$$a_C = \mathbf{r_{xy}} \omega^2$$

## Convert (x, y, z) to latitude and longitude

Reference ellipsoid of Mars:

$$a \approx 3396200$$

$$b \approx 3376200$$

According to Wikipedia's Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates

The 3D cartesian coordinates $$X, Y, Z$$ in Earth-centered, Earth-fixed coordinates assuming an ellipsoidal shape is given by:

$$X = \left(N(\phi) + h \right) \cos\phi \cos\lambda$$

$$Y = \left(N(\phi) + h \right) \cos\phi \sin\lambda$$

$$Z = \left(\frac{b^2}{a^2} N(\phi) + h \right) \sin\phi$$

where $$\phi, \lambda, h$$ are latitude, longitude, and altitude, and $$a, b$$ are the equatorial and polar radii of the ellipsoid used, and

$$N(\phi) = \frac{a^2}{\sqrt{a^2\cos^2\phi + b^2 \sin^2\phi}}.$$

• Olympus Mons: 18.65°N, 226.2°E, 21,287m: X=-2,242,521, Y=-2,338,480, Z= 1,080,757 meters

• Hellas Planitia: 42.4°S 70.5°E, -7,152m: X=837,649, Y=2,365,449, Z=2,264,417 meters

Using Python below (similar to the script in that answer):

            magnitudes shown only (sign indicates generally "up" or "down")
OM            HP
GM     (m/s^2)     -3.67139     -3.74879
J2     (m/s^2)     -0.00984     -0.01172
centri (m/s^2)     +0.01628     +0.01261

vector sum (m/s^2) -3.66344     -3.73562


So for a 100 kg mass:

                       OM            HP
weight (N)           366.34        373.56
Earth relative(%)    37.357        38.093


where "relative" is relative to Standard Earth gravity of 9.80665 m/s^2.

def accelerations(rr):

x,   y,   z   = rr
xsq, ysq, zsq = rr**2

rsq   = (rr**2).sum()
rabs  = np.sqrt(rsq)
nr    = rr / rabs
rxy   = np.sqrt(xsq + ysq)
rrxy  = rr * np.array([1.0, 1.0, 0.0])
nxy   = rrxy/rxy
rm3   = rsq**-1.5
rm7   = rsq**-3.5

acc0  = -GM_mars * rr * rm3

# https://en.wikipedia.org/wiki/Geopotential_model#The_deviations_of_Earth.27s_gravitational_field_from_that_of_a_homogeneous_sphere
acc2x = x * rm7 * (6*zsq - 1.5*(xsq + ysq))
acc2y = y * rm7 * (6*zsq - 1.5*(xsq + ysq))
acc2z = z * rm7 * (3*zsq - 4.5*(xsq + ysq))

acc2  = J2_mars * np.hstack((acc2x, acc2y, acc2z))

accc = nxy * omega**2 * rxy

return acc0, acc2, accc

def get_xyz(latdegs, londegs, alt):
clat, slat = np.cos(lat), np.sin(lat)
clon, slon = np.cos(lon), np.sin(lon)

N = a**2 / np.sqrt((a*clat)**2 + (b*slat)**2)
X = (N+alt) * clat * clon
Y = (N+alt) * clat * slon
Z = ((b/a)**2 * N + alt) * slat

return np.array((X, Y, Z))

import numpy as np

halfpi, pi, twopi = [f*np.pi for f in [0.5, 1, 2]]

R_mars  = 3396200.0
GM_mars = 4.282837E+13   #  m^3/s^2  https://en.wikipedia.org/wiki/Standard_gravitational_parameter
J2_mars = GM_mars * R_mars**2 * 1960.45E-06     # https://nssdc.gsfc.nasa.gov/planetary/factsheet/marsfact.html

Req = 3396.2 * 1000. # meters https://en.wikipedia.org/wiki/Mars
R   = Req - 4500.    # https://en.wikipedia.org/wiki/Gale_(crater)
Rpo = 3376.2 * 1000. # meters https://en.wikipedia.org/wiki/Mars

sidereal_day  = 1.025957 # https://en.wikipedia.org/wiki/Mars
T             = sidereal_day * 24 * 3600.
omega         = twopi/T
print "omega:   ", omega
print ''

a, b = Req, Rpo

OM_xyz = get_xyz(18.65, 226.2, 21287)
HP_xyz = get_xyz(42.4,  70.5, -7152)

print "OM: ", OM_xyz
print "HP: ", HP_xyz

OM_acs = accelerations(OM_xyz)
HP_acs = accelerations(HP_xyz)

print ""

print "OM: "
for thing in OM_acs:
print thing, np.sqrt((thing**2).sum())
print "vector sum: ", np.sqrt((sum(OM_acs)**2).sum())

print ""

print "HP: "
for thing in HP_acs:
print thing, np.sqrt((thing**2).sum())
print "vector sum: ", np.sqrt((sum(HP_acs)**2).sum())

• @Bea it's a great question! I had fun digging into it and learned some new things; thank you too. – uhoh Feb 14 '19 at 14:46
• I also love learning, luckily, I am very uneducated! After searching more info about the Mars gravity, I found out that Hellas Planitia, observed by the Viking 1, by the Mars Global Surveyor and other satellites, is an anomaly. It somehow compensates the difference in gravity that it should have as you showed me, notwithstanding its depth. It may be so because of a thick crust or even a mascon. I wonder if it's because the huge asteroid that created that area, compressed the soil with the impact. The Olympus Mons instead, is quite in line with the theoretical calculations of its gravity. – Bea Feb 14 '19 at 15:54
• (The source of the document I mentioned above: adsabs.harvard.edu/abs/2016SoSyR..50..235Z ) "On the model structure of the gravity field of Mars" – Bea Feb 14 '19 at 15:59
• @Bea A non-paywalled copy available here as well: researchgate.net/publication/… I'm out the door soon and won't be able to read it until tomorrow, please consider posting an additional answer based on this! – uhoh Feb 14 '19 at 23:33
• Neat, but using the reference ellipsoid instead of sphere is < 0.2% more accurate, in this case. Can you also show computation of gravity for a spherical assumption? – smci Jan 7 at 11:10