solution_229_b.py

#!/usr/bin/pyton3
# ====================================================================
# plot the earth's rotational (eastward) speed at latitudes +90 to -90
# ====================================================================

import math
import matplotlib.pyplot as plt

description = '''\

+----------------------------------------------+
| plot the earth's rotational (eastward) speed |
| at latitudes +90 to -90 each degree          |
+----------------------------------------------+'''

print(description)

# ---- earth stats

circumference = 24901.0    # miles
period        = 24.0       # days

# --------------------------------------------------------------------
# ---- speed at latitude
# --------------------------------------------------------------------

def speed(latitude,circumference,period):

    equator_raidus = circumference / (math.pi*2.0)

    latitude_raidus = equator_raidus * math.cos(math.radians(latitude))

    latitude_circumference = 2.0 * math.pi * latitude_raidus

    return latitude_circumference / period

# --------------------------------------------------------------------
# main
# --------------------------------------------------------------------

if __name__ == '__main__':

    # ---- x,y values (latitude and speed)

    x = []
    y = []

    step = 2

    for lat in range(-90,90+step,step):

        x.append(speed(lat,circumference,period))
        y.append(lat)

    print()
    print(f'speed range    is {min(x):.2f} to {max(x):.2f}')
    print(f'latitude range is {y[0]} to {y[-1]}')

    # ---- plot

    plt.title('Earth\'s Rotation Speed at Latitude')
    plt.xlabel('Speed')
    plt.ylabel('Latitude')
    plt.grid(True)
    plt.plot(x,y,color='black',linewidth=1.0)
    plt.show()