Files

47 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""Routines to download Earth orientation data."""
import numpy as np
import os
from skyfield.api import load
from skyfield.timelib import julian_date
def morrison_and_stephenson_2004_table():
"""Table of smoothed Delta T values from Morrison and Stephenson, 2004."""
import pandas as pd
f = load.open('http://eclipse.gsfc.nasa.gov/SEcat5/deltat.html')
tables = pd.read_html(f.read())
df = tables[0]
return pd.DataFrame({'year': df[0], 'delta_t': df[1]})
def parse_S15_table(f):
"""Parse polynomial coefficients from Table S15.
The table is available at the website of Her Majesty's Nautical
Almanac Office, from the paper “Measurement of the Earth's Rotation:
720 BC to AD 2015” by L.V. Morrison, F.R. Stephenson, C.Y. Hohenkerk
and M. Zawilski 2021.
"""
# http://astro.ukho.gov.uk/nao/lvm/Table-S15.2020.txt
content = f.read()
banner = b'- ' * 36 + b'-\n'
sections = content.split(banner)
names = sections[1].splitlines()[-1].decode('utf-8').split()
table = np.loadtxt(sections[2].splitlines())
return names, table.T
def main():
thisdir = os.path.dirname(__file__)
df = morrison_and_stephenson_2004_table()
year = df.year.values
jd = julian_date(year, 1, 1)
delta_t = df.delta_t.values
array = np.array((jd, delta_t))
np.save(os.path.join(thisdir, 'morrison_stephenson_deltat.npy'),
array)
if __name__ == '__main__':
main()