Skip to main content
1 of 3
Uwe
  • 49.5k
  • 4
  • 126
  • 211

I found it in the meantime:

Using the length_of function to check an arcminute length, a meridian, the equator and pole diameter:

from skyfield.api import Topos, load
from skyfield.functions import length_of

ts = load.timescale(builtin=True)
t = ts.utc(2021, 1, 1)

b1 = Topos(0., 0., elevation_m=0.0)
b2 = Topos(1. / 60., 0., elevation_m=0.0)
print(round(length_of(b1.at(t).position.km - b2.at(t).position.km), 5))

b3 = Topos(90., 0., elevation_m=0.0)
b2 = Topos(90.0 - 1. / 60., 0., elevation_m=0.0)
print(round(length_of(b3.at(t).position.km - b2.at(t).position.km), 5))

b2 = Topos(0., 1. / 60., elevation_m=0.0)
print(round(length_of(b1.at(t).position.km - b2.at(t).position.km), 5))

#Meridianminute der geographischen Breite am Äquator 1842,90 m,
#an den Polen aber 1861,57 m
# Bogenminute am Äquator eine Bogenlänge von 1855,31 m.

b4 = Topos(90., 0., elevation_m=0.0)
print(round(length_of(b1.at(t).position.km - b4.at(t).position.km), 3))

#Meridians vom Äquator bis zum Pol von ca. 10.001,966 km

b5 = Topos(0., 180., elevation_m=0.0)
print(round(length_of(b1.at(t).position.km - b5.at(t).position.km), 3))
#Äquatordurchmesser*    12.756,27 km
#Poldurchmesser*    12.713,50 km

b6 = Topos(-90., 0., elevation_m=0.0)
print(round(length_of(b4.at(t).position.km - b6.at(t).position.km), 3))

The results are very precise:

1.8429 km 1.86157 km 1.85532 km 9004.939 km 12756.273 km 12713.504 km

Of course the meridian is measured thru the ground and not at the surface, therefore 9004.939 instead of 10,001.966 km

Uwe
  • 49.5k
  • 4
  • 126
  • 211