satkit 0.2.6__tar.gz → 0.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {satkit-0.2.6 → satkit-0.2.7}/Cargo.toml +4 -4
- {satkit-0.2.6/python/satkit.egg-info → satkit-0.2.7}/PKG-INFO +4 -2
- {satkit-0.2.6 → satkit-0.2.7}/README.md +3 -1
- {satkit-0.2.6 → satkit-0.2.7}/pyproject.toml +2 -1
- satkit-0.2.7/python/docs/source/conf.py +328 -0
- satkit-0.2.7/python/satkit/__init__.pyi +33 -0
- satkit-0.2.7/python/satkit/frametransform.pyi +204 -0
- satkit-0.2.7/python/satkit/jplephem.pyi +74 -0
- satkit-0.2.7/python/satkit/satkit.pyi +1310 -0
- satkit-0.2.7/python/satkit/satprop.pyi +319 -0
- satkit-0.2.7/python/satkit/utils.pyi +80 -0
- {satkit-0.2.6 → satkit-0.2.7/python/satkit.egg-info}/PKG-INFO +4 -2
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit.egg-info/SOURCES.txt +9 -14
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit.egg-info/top_level.txt +1 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/itrfcoord.rs +3 -3
- {satkit-0.2.6 → satkit-0.2.7}/src/lib.rs +3 -3
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/propagator.rs +1 -1
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/mod.rs +6 -6
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/mod_utils.rs +40 -30
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyastrotime.rs +213 -154
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyconsts.rs +3 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pydensity.rs +10 -27
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyduration.rs +86 -77
- satkit-0.2.7/src/pybindings/pyframetransform.rs +203 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pygravity.rs +42 -93
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyitrfcoord.rs +116 -85
- satkit-0.2.7/src/pybindings/pyjplephem.rs +89 -0
- satkit-0.2.7/src/pybindings/pylpephem_moon.rs +20 -0
- satkit-0.2.7/src/pybindings/pylpephem_sun.rs +67 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pynrlmsise.rs +1 -1
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pypropagate.rs +14 -14
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyquaternion.rs +83 -59
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pysatproperties.rs +18 -1
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pysatstate.rs +66 -39
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pysgp4.rs +58 -77
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pyutils.rs +16 -15
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/mod.rs +1 -1
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/sgp4.rs +69 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/datadir.rs +9 -18
- satkit-0.2.6/python/satkit/__init__.pyi +0 -1417
- satkit-0.2.6/python/satkit/frametransform/__init__.pyi +0 -287
- satkit-0.2.6/python/satkit/frametransform/py.typed +0 -0
- satkit-0.2.6/python/satkit/jplephem/__init__.pyi +0 -118
- satkit-0.2.6/python/satkit/jplephem/py.typed +0 -0
- satkit-0.2.6/python/satkit/moon/py.typed +0 -0
- satkit-0.2.6/python/satkit/py.typed +0 -0
- satkit-0.2.6/python/satkit/satprop/__init__.pyi +0 -327
- satkit-0.2.6/python/satkit/satprop/py.typed +0 -0
- satkit-0.2.6/python/satkit/sun/py.typed +0 -0
- satkit-0.2.6/python/satkit/utils/__init__.pyi +0 -85
- satkit-0.2.6/python/satkit/utils/py.typed +0 -0
- satkit-0.2.6/src/pybindings/pyframetransform.rs +0 -253
- satkit-0.2.6/src/pybindings/pyjplephem.rs +0 -115
- satkit-0.2.6/src/pybindings/pylpephem_moon.rs +0 -26
- satkit-0.2.6/src/pybindings/pylpephem_sun.rs +0 -94
- {satkit-0.2.6 → satkit-0.2.7}/LICENSE +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/MANIFEST.in +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit/__init__.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit/astro-data/py.typed +0 -0
- /satkit-0.2.6/python/satkit/density/__init__.pyi → /satkit-0.2.7/python/satkit/density.pyi +0 -0
- /satkit-0.2.6/python/satkit/moon/__init__.py → /satkit-0.2.7/python/satkit/moon.pyi +0 -0
- {satkit-0.2.6/python/satkit/density → satkit-0.2.7/python/satkit}/py.typed +0 -0
- /satkit-0.2.6/python/satkit/sun/__init__.pyi → /satkit-0.2.7/python/satkit/sun.pyi +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit.egg-info/dependency_links.txt +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/satkit.egg-info/requires.txt +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/download_data.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/download_from_json.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/download_testvecs.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/orbitprop_gps_fit.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/sp3file.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/python/test/test.py +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/setup.cfg +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/astrotime.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/consts.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/duration.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/earth_orientation_params.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/earthgravity.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/frametransform/ierstable.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/frametransform/mod.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/frametransform/qcirs2gcrs.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/jplephem.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/lpephem/mod.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/lpephem/moon.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/lpephem/sun.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/nrlmsise.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/harmonic_oscillator.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/mod.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/nalgebra.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rk_adaptive.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rk_adaptive_settings.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rk_explicit.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkf45.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkts54.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv65.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv65_table.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv87.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv87_table.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv98.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv98_nointerp.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv98_nointerp_table.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/rkv98_table.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/ode/types.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/drag.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/mod.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/point_gravity.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/satproperties.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/satstate.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/orbitprop/settings.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pypropsettings.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pysolarsystem.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/pybindings/pytle.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/dpper.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/dscom.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/dsinit.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/dspace.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/getgravconst.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/initl.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/satrec.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/sgp4_lowlevel.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/sgp4/sgp4init.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/solarsystem.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/spaceweather.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/tle.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/types.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/download.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/mod.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/skerror.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/test.rs +0 -0
- {satkit-0.2.6 → satkit-0.2.7}/src/utils/update_data.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "satkit"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.7"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
description = "Satellite Toolkit"
|
|
6
6
|
readme = "README.md"
|
|
@@ -29,8 +29,8 @@ num-traits = "0.2"
|
|
|
29
29
|
thiserror = "1.0"
|
|
30
30
|
simba = "0.8"
|
|
31
31
|
once_cell = "1.6.0"
|
|
32
|
-
numpy = { version = "0.
|
|
33
|
-
pyo3 = { version = "0.
|
|
32
|
+
numpy = { version = "0.21.0", optional = true }
|
|
33
|
+
pyo3 = { version = "0.21.0", features = ["extension-module"], optional = true }
|
|
34
34
|
ureq = "2.9.1"
|
|
35
35
|
json = "0.12.4"
|
|
36
36
|
process_path = "0.1.4"
|
|
@@ -38,7 +38,7 @@ process_path = "0.1.4"
|
|
|
38
38
|
[build-dependencies]
|
|
39
39
|
cc = { version = "1.0.74", features = ["parallel"] }
|
|
40
40
|
chrono = "0.4.19"
|
|
41
|
-
pyo3-build-config = { version = "0.
|
|
41
|
+
pyo3-build-config = { version = "0.21.0", optional = true }
|
|
42
42
|
|
|
43
43
|
[dev-dependencies]
|
|
44
44
|
rand = "0.8.5"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: satkit
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Satellite Orbital Dynamics Toolkit
|
|
5
5
|
Author-email: Steven Michael <ssmichael@gmail.com>
|
|
6
6
|
Maintainer-email: Steven Michael <ssmichael@gmail.com>
|
|
@@ -40,6 +40,9 @@ An accurate, high-performance satellite orbital kinematics toolkit, written in R
|
|
|
40
40
|

|
|
41
41
|

|
|
42
42
|
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
43
46
|
## Language Bindings
|
|
44
47
|
|
|
45
48
|
- **Native Rust** bindings
|
|
@@ -49,7 +52,6 @@ An accurate, high-performance satellite orbital kinematics toolkit, written in R
|
|
|
49
52
|
|
|
50
53
|
## Features
|
|
51
54
|
|
|
52
|
-
- Timescale transformations (UTC, GPS, UT1, TBD, TT, ...)
|
|
53
55
|
- High-precision coordinate transforms between:
|
|
54
56
|
- International Terrestrial Reference Frame (ITRF)
|
|
55
57
|
- Geocentric Celestial Reference Frame (GCRF) using IAU-2000 reduction
|
|
@@ -21,6 +21,9 @@ An accurate, high-performance satellite orbital kinematics toolkit, written in R
|
|
|
21
21
|

|
|
22
22
|

|
|
23
23
|
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
24
27
|
## Language Bindings
|
|
25
28
|
|
|
26
29
|
- **Native Rust** bindings
|
|
@@ -30,7 +33,6 @@ An accurate, high-performance satellite orbital kinematics toolkit, written in R
|
|
|
30
33
|
|
|
31
34
|
## Features
|
|
32
35
|
|
|
33
|
-
- Timescale transformations (UTC, GPS, UT1, TBD, TT, ...)
|
|
34
36
|
- High-precision coordinate transforms between:
|
|
35
37
|
- International Terrestrial Reference Frame (ITRF)
|
|
36
38
|
- Geocentric Celestial Reference Frame (GCRF) using IAU-2000 reduction
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "satkit"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.7"
|
|
8
8
|
dependencies = ["numpy>=1.20.0"]
|
|
9
9
|
requires-python = ">= 3.8"
|
|
10
10
|
authors = [{ name = "Steven Michael", email = "ssmichael@gmail.com" }]
|
|
@@ -53,6 +53,7 @@ before-build = [
|
|
|
53
53
|
"pip install -U setuptools-rust",
|
|
54
54
|
"rustup default stable",
|
|
55
55
|
"rustup target add aarch64-apple-darwin",
|
|
56
|
+
"rustup target add x86_64-apple-darwin",
|
|
56
57
|
"rustup show",
|
|
57
58
|
]
|
|
58
59
|
environment = { PATH = "$PATH:$HOME/.cargo/bin" }
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
# Jupyter Notebook documentation build configuration file, created by
|
|
2
|
+
# sphinx-quickstart on Mon Apr 13 09:51:11 2015.
|
|
3
|
+
#
|
|
4
|
+
# This file is execfile()d with the current directory set to its
|
|
5
|
+
# containing dir.
|
|
6
|
+
#
|
|
7
|
+
# Note that not all possible configuration values are present in this
|
|
8
|
+
# autogenerated file.
|
|
9
|
+
#
|
|
10
|
+
# All configuration values have a default; values that are commented out
|
|
11
|
+
# serve to show the default.
|
|
12
|
+
import os
|
|
13
|
+
import shutil
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
sys.path.insert(0, "python/satkit")
|
|
17
|
+
sys.path.insert(0, "../satkit")
|
|
18
|
+
|
|
19
|
+
# -- General configuration ------------------------------------------------
|
|
20
|
+
|
|
21
|
+
# If your documentation needs a minimal Sphinx version, state it here.
|
|
22
|
+
# needs_sphinx = '1.0'
|
|
23
|
+
|
|
24
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
|
25
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
26
|
+
# ones.
|
|
27
|
+
extensions = [
|
|
28
|
+
"sphinx.ext.autodoc",
|
|
29
|
+
"sphinx.ext.doctest",
|
|
30
|
+
"autoapi.extension",
|
|
31
|
+
"sphinx.ext.intersphinx",
|
|
32
|
+
"sphinx.ext.napoleon",
|
|
33
|
+
"sphinx.ext.mathjax",
|
|
34
|
+
"IPython.sphinxext.ipython_console_highlighting",
|
|
35
|
+
"nbsphinx",
|
|
36
|
+
"myst_parser",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
autoapi_dirs = ["../../satkit"]
|
|
40
|
+
autoapi_generate_api_docs = False
|
|
41
|
+
autoapi_member_order = "bysource"
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
myst_enable_extensions = ["html_image", "amsmath", "dollarmath"]
|
|
45
|
+
myst_update_mathjax = False
|
|
46
|
+
|
|
47
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
48
|
+
templates_path = ["_templates"]
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# The suffix(es) of source filenames.
|
|
52
|
+
# You can specify multiple suffix as a list of string:
|
|
53
|
+
source_suffix = ['.md']
|
|
54
|
+
|
|
55
|
+
# The encoding of source files.
|
|
56
|
+
# source_encoding = 'utf-8-sig'
|
|
57
|
+
|
|
58
|
+
# The master toctree document.
|
|
59
|
+
master_doc = "index"
|
|
60
|
+
|
|
61
|
+
# General information about the project.
|
|
62
|
+
project = "SatKit"
|
|
63
|
+
copyright = "2024 Steven Michael"
|
|
64
|
+
author = "Steven Michael (ssmichael@gmail.com)"
|
|
65
|
+
|
|
66
|
+
# ghissue config
|
|
67
|
+
github_project_url = "https://github.com/ssmichael1/satkit"
|
|
68
|
+
|
|
69
|
+
# The version info for the project you're documenting, acts as replacement for
|
|
70
|
+
# |version| and |release|, also used in various other places throughout the
|
|
71
|
+
# built documents.
|
|
72
|
+
#
|
|
73
|
+
#_version_py = os.path.join(here, "../../notebook/_version.py")
|
|
74
|
+
#version_ns = {}
|
|
75
|
+
#exec(compile(open(_version_py).read(), _version_py, "exec"), version_ns) # noqa: S102, SIM115
|
|
76
|
+
# The short X.Y version.
|
|
77
|
+
##version = "%i.%i" % version_ns["version_info"][:2]
|
|
78
|
+
# The full version, including alpha/beta/rc tags.
|
|
79
|
+
##release = version_ns["__version__"]
|
|
80
|
+
version = "0.2.7"
|
|
81
|
+
release = "0.2.7"
|
|
82
|
+
|
|
83
|
+
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
84
|
+
# for a list of supported languages.
|
|
85
|
+
#
|
|
86
|
+
# This is also used if you do content translation via gettext catalogs.
|
|
87
|
+
# Usually you set "language" from the command line for these cases.
|
|
88
|
+
language = "en"
|
|
89
|
+
|
|
90
|
+
# There are two options for replacing |today|: either, you set today to some
|
|
91
|
+
# non-false value, then it is used:
|
|
92
|
+
# today = ''
|
|
93
|
+
# Else, today_fmt is used as the format for a strftime call.
|
|
94
|
+
# today_fmt = '%B %d, %Y'
|
|
95
|
+
|
|
96
|
+
# List of patterns, relative to source directory, that match files and
|
|
97
|
+
# directories to ignore when looking for source files.
|
|
98
|
+
exclude_patterns = [
|
|
99
|
+
"examples/Notebook/.ipynb_checkpoints",
|
|
100
|
+
"examples/Notebook/nbpackage/*.ipynb",
|
|
101
|
+
"examples/Notebook/nbpackage/nbs/*.ipynb",
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
# The reST default role (used for this markup: `text`) to use for all
|
|
105
|
+
# documents.
|
|
106
|
+
# default_role = None
|
|
107
|
+
|
|
108
|
+
# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
109
|
+
# add_function_parentheses = True
|
|
110
|
+
|
|
111
|
+
# If true, the current module name will be prepended to all description
|
|
112
|
+
# unit titles (such as .. function::).
|
|
113
|
+
# add_module_names = True
|
|
114
|
+
|
|
115
|
+
# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
116
|
+
# output. They are ignored by default.
|
|
117
|
+
# show_authors = False
|
|
118
|
+
|
|
119
|
+
# The name of the Pygments (syntax highlighting) style to use.
|
|
120
|
+
# pygments_style = "sphinx"
|
|
121
|
+
|
|
122
|
+
# A list of ignored prefixes for module index sorting.
|
|
123
|
+
# modindex_common_prefix = []
|
|
124
|
+
|
|
125
|
+
# If true, keep warnings as "system message" paragraphs in the built documents.
|
|
126
|
+
# keep_warnings = False
|
|
127
|
+
|
|
128
|
+
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
|
129
|
+
todo_include_todos = False
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
# -- Options for HTML output ----------------------------------------------
|
|
133
|
+
|
|
134
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
135
|
+
# a list of builtin themes.
|
|
136
|
+
# html_theme = "alabaster"
|
|
137
|
+
html_theme = "sphinx_rtd_theme"
|
|
138
|
+
# html_theme = "furo"
|
|
139
|
+
|
|
140
|
+
# Add any paths that contain custom themes here, relative to this directory.
|
|
141
|
+
# html_theme_path = []
|
|
142
|
+
|
|
143
|
+
# The name for this set of Sphinx documents. If None, it defaults to
|
|
144
|
+
# "<project> v<release> documentation".
|
|
145
|
+
# html_title = None
|
|
146
|
+
|
|
147
|
+
# A shorter title for the navigation bar. Default is the same as html_title.
|
|
148
|
+
# html_short_title = None
|
|
149
|
+
|
|
150
|
+
# The name of an image file (relative to this directory) to place at the top
|
|
151
|
+
# of the sidebar.
|
|
152
|
+
# html_logo = "examples/images/jupyter_logo.png"
|
|
153
|
+
|
|
154
|
+
# The name of an image file (within the static path) to use as favicon of the
|
|
155
|
+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
|
156
|
+
# pixels large.
|
|
157
|
+
# html_favicon = None
|
|
158
|
+
|
|
159
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
|
160
|
+
# relative to this directory. They are copied after the builtin static files,
|
|
161
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
162
|
+
# NOTE: Sphinx's 'make html' builder will throw a warning about an unfound
|
|
163
|
+
# _static directory. Do not remove or comment out html_static_path
|
|
164
|
+
# since it is needed to properly generate _static in the build directory
|
|
165
|
+
html_static_path = ["source/_static"]
|
|
166
|
+
|
|
167
|
+
# Add any extra paths that contain custom files (such as robots.txt or
|
|
168
|
+
# .htaccess) here, relative to this directory. These files are copied
|
|
169
|
+
# directly to the root of the documentation.
|
|
170
|
+
# html_extra_path = []
|
|
171
|
+
|
|
172
|
+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
|
173
|
+
# using the given strftime format.
|
|
174
|
+
# html_last_updated_fmt = '%b %d, %Y'
|
|
175
|
+
|
|
176
|
+
# If true, SmartyPants will be used to convert quotes and dashes to
|
|
177
|
+
# typographically correct entities.
|
|
178
|
+
# html_use_smartypants = True
|
|
179
|
+
|
|
180
|
+
# Custom sidebar templates, maps document names to template names.
|
|
181
|
+
# html_sidebars = {}
|
|
182
|
+
|
|
183
|
+
# Additional templates that should be rendered to pages, maps page names to
|
|
184
|
+
# template names.
|
|
185
|
+
# html_additional_pages = {}
|
|
186
|
+
|
|
187
|
+
# If false, no module index is generated.
|
|
188
|
+
# html_domain_indices = True
|
|
189
|
+
|
|
190
|
+
# If false, no index is generated.
|
|
191
|
+
# html_use_index = True
|
|
192
|
+
|
|
193
|
+
# If true, the index is split into individual pages for each letter.
|
|
194
|
+
# html_split_index = False
|
|
195
|
+
|
|
196
|
+
# If true, links to the reST sources are added to the pages.
|
|
197
|
+
# html_show_sourcelink = True
|
|
198
|
+
|
|
199
|
+
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
|
200
|
+
# html_show_sphinx = True
|
|
201
|
+
|
|
202
|
+
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
|
203
|
+
# html_show_copyright = True
|
|
204
|
+
|
|
205
|
+
# If true, an OpenSearch description file will be output, and all pages will
|
|
206
|
+
# contain a <link> tag referring to it. The value of this option must be the
|
|
207
|
+
# base URL from which the finished HTML is served.
|
|
208
|
+
# html_use_opensearch = ''
|
|
209
|
+
|
|
210
|
+
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
|
211
|
+
# html_file_suffix = None
|
|
212
|
+
|
|
213
|
+
# Language to be used for generating the HTML full-text search index.
|
|
214
|
+
# Sphinx supports the following languages:
|
|
215
|
+
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
|
|
216
|
+
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
|
|
217
|
+
# html_search_language = 'en'
|
|
218
|
+
|
|
219
|
+
# A dictionary with options for the search language support, empty by default.
|
|
220
|
+
# Now only 'ja' uses this config value
|
|
221
|
+
# html_search_options = {'type': 'default'}
|
|
222
|
+
|
|
223
|
+
# The name of a javascript file (relative to the configuration directory) that
|
|
224
|
+
# implements a search results scorer. If empty, the default will be used.
|
|
225
|
+
# html_search_scorer = 'scorer.js'
|
|
226
|
+
|
|
227
|
+
# Output file base name for HTML help builder.
|
|
228
|
+
htmlhelp_basename = "JupyterNotebookdoc"
|
|
229
|
+
|
|
230
|
+
# This will ensure that we use the correctly set environment for canonical URLs
|
|
231
|
+
# Old Read the Docs injections makes it point only to the default version,
|
|
232
|
+
# for instance /en/stable/
|
|
233
|
+
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/")
|
|
234
|
+
|
|
235
|
+
# -- Options for LaTeX output ---------------------------------------------
|
|
236
|
+
|
|
237
|
+
latex_elements = {}
|
|
238
|
+
|
|
239
|
+
# Grouping the document tree into LaTeX files. List of tuples
|
|
240
|
+
# (source start file, target name, title,
|
|
241
|
+
# author, documentclass [howto, manual, or own class]).
|
|
242
|
+
latex_documents = [
|
|
243
|
+
(
|
|
244
|
+
master_doc,
|
|
245
|
+
"JupyterNotebook.tex",
|
|
246
|
+
"Jupyter Notebook Documentation",
|
|
247
|
+
"https://jupyter.org",
|
|
248
|
+
"manual",
|
|
249
|
+
),
|
|
250
|
+
]
|
|
251
|
+
|
|
252
|
+
# The name of an image file (relative to this directory) to place at the top of
|
|
253
|
+
# the title page.
|
|
254
|
+
# latex_logo = None
|
|
255
|
+
|
|
256
|
+
# For "manual" documents, if this is true, then toplevel headings are parts,
|
|
257
|
+
# not chapters.
|
|
258
|
+
# latex_use_parts = False
|
|
259
|
+
|
|
260
|
+
# If true, show page references after internal links.
|
|
261
|
+
# latex_show_pagerefs = False
|
|
262
|
+
|
|
263
|
+
# If true, show URL addresses after external links.
|
|
264
|
+
# latex_show_urls = False
|
|
265
|
+
|
|
266
|
+
# Documents to append as an appendix to all manuals.
|
|
267
|
+
# latex_appendices = []
|
|
268
|
+
|
|
269
|
+
# If false, no module index is generated.
|
|
270
|
+
# latex_domain_indices = True
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
# -- Options for manual page output ---------------------------------------
|
|
274
|
+
|
|
275
|
+
# One entry per manual page. List of tuples
|
|
276
|
+
# (source start file, name, description, authors, manual section).
|
|
277
|
+
man_pages = [(master_doc, "jupyternotebook", "Jupyter Notebook Documentation", [author], 1)]
|
|
278
|
+
|
|
279
|
+
# If true, show URL addresses after external links.
|
|
280
|
+
# man_show_urls = False
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
# -- Options for link checks ----------------------------------------------
|
|
284
|
+
|
|
285
|
+
linkcheck_ignore = [r"http://127\.0\.0\.1/*"]
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
# -- Options for Texinfo output -------------------------------------------
|
|
289
|
+
|
|
290
|
+
# Grouping the document tree into Texinfo files. List of tuples
|
|
291
|
+
# (source start file, target name, title, author,
|
|
292
|
+
# dir menu entry, description, category)
|
|
293
|
+
texinfo_documents = [
|
|
294
|
+
(
|
|
295
|
+
master_doc,
|
|
296
|
+
"JupyterNotebook",
|
|
297
|
+
"Jupyter Notebook Documentation",
|
|
298
|
+
author,
|
|
299
|
+
"JupyterNotebook",
|
|
300
|
+
"One line description of project.",
|
|
301
|
+
"Miscellaneous",
|
|
302
|
+
),
|
|
303
|
+
]
|
|
304
|
+
|
|
305
|
+
# Documents to append as an appendix to all manuals.
|
|
306
|
+
# texinfo_appendices = []
|
|
307
|
+
|
|
308
|
+
# If false, no module index is generated.
|
|
309
|
+
# texinfo_domain_indices = True
|
|
310
|
+
|
|
311
|
+
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
|
312
|
+
# texinfo_show_urls = 'footnote'
|
|
313
|
+
|
|
314
|
+
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
|
315
|
+
# texinfo_no_detailmenu = False
|
|
316
|
+
|
|
317
|
+
intersphinx_mapping = {
|
|
318
|
+
"ipython": ("https://ipython.readthedocs.io/en/stable/", None),
|
|
319
|
+
"nbconvert": ("https://nbconvert.readthedocs.io/en/latest/", None),
|
|
320
|
+
"nbformat": ("https://nbformat.readthedocs.io/en/latest/", None),
|
|
321
|
+
"jupyter": ("https://jupyter.readthedocs.io/en/latest/", None),
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
spelling_lang = "en_US"
|
|
325
|
+
spelling_word_list_filename = "spelling_wordlist.txt"
|
|
326
|
+
|
|
327
|
+
primary_domain = "python"
|
|
328
|
+
highlight_language = "python"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from .satkit import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
from . import jplephem
|
|
5
|
+
from . import frametransform
|
|
6
|
+
from . import moon
|
|
7
|
+
from . import sun
|
|
8
|
+
from . import satprop
|
|
9
|
+
from . import density
|
|
10
|
+
from . import utils
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"time",
|
|
14
|
+
"duration",
|
|
15
|
+
"timescale",
|
|
16
|
+
"quaternion",
|
|
17
|
+
"sgp4",
|
|
18
|
+
"gravmodel",
|
|
19
|
+
"gravity",
|
|
20
|
+
"nrlmsise00",
|
|
21
|
+
"solarsystem",
|
|
22
|
+
"TLE",
|
|
23
|
+
"itrfcoord",
|
|
24
|
+
"consts",
|
|
25
|
+
"frametransform",
|
|
26
|
+
"jplephem",
|
|
27
|
+
"utils",
|
|
28
|
+
"moon",
|
|
29
|
+
"sun",
|
|
30
|
+
"satprop",
|
|
31
|
+
"density",
|
|
32
|
+
"utils"
|
|
33
|
+
]
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Transformations between coordinate frames, and associated utility functions
|
|
3
|
+
|
|
4
|
+
Coordinate frame transforms are mostly pulled from Vallado:
|
|
5
|
+
https://www.google.com/books/edition/Fundamentals_of_satkitdynamics_and_Applic/PJLlWzMBKjkC?hl=en&gbpv=0
|
|
6
|
+
|
|
7
|
+
or the IERS:
|
|
8
|
+
https://www.iers.org/
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
import typing
|
|
14
|
+
import numpy.typing as npt
|
|
15
|
+
import numpy as np
|
|
16
|
+
|
|
17
|
+
import datetime
|
|
18
|
+
|
|
19
|
+
def gmst(
|
|
20
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
21
|
+
) -> float | npt.ArrayLike[np.float]:
|
|
22
|
+
"""Greenwich Mean Sidereal Time
|
|
23
|
+
|
|
24
|
+
Notes:
|
|
25
|
+
* GMST is the angle between the vernal equinox and the Greenwich meridian
|
|
26
|
+
* Vallado algorithm 15
|
|
27
|
+
* GMST = 67310.5481 + (876600h + 8640184.812866) * tᵤₜ₁ * (0.983104 + tᵤₜ₁ * −6.2e−6)
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): scalar, list, or numpy array of astro.time or datetime.datetime representing time at which to calculate output
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
float | npt.ArrayLike[np.float]: Greenwich Mean Sideral Time, radians, at intput time(s)
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def gast(
|
|
38
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
39
|
+
) -> float | npt.ArrayLike[np.float]:
|
|
40
|
+
""" Greenwich Apparent Sideral Time
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): scalar, list, or numpy array of astro.time or datetime.datetime representing time at which to calculate output
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
float | npt.ArrayLike[np.float]: Greenwich apparant sidereal time, radians, at input time(s)
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
def earth_rotation_angle(
|
|
50
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
51
|
+
) -> float | npt.ArrayLike[np.float]:
|
|
52
|
+
"""Earth Rotation Angle
|
|
53
|
+
|
|
54
|
+
Notes:
|
|
55
|
+
* See: IERS Technical Note 36, Chapter 5, Equation 5.15
|
|
56
|
+
* Calculation Details:
|
|
57
|
+
* Let t be UT1 Julian date
|
|
58
|
+
* let f be fractional component of t (fraction of day)
|
|
59
|
+
* ERA = 2𝜋 ((0.7790572732640 + f + 0.00273781191135448 * (t - 2451545.0))
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
tm (satkit.time|datetime.datetime|list|numpy.array): Time[s] at which to calculate Earth Rotation Angle
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
float|numpy.array: Earth Rotation Angle at input time[s] in radians
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
def qitrf2tirs(
|
|
69
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
70
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
71
|
+
"""Rotation from Terrestrial Intermediate Reference System to Celestial Intermediate Reference Systems
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from ITRF to TIRS at input time(s)
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
def qcirs2gcrf(tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
81
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
82
|
+
""" Rotation from Celestial Intermediate Reference System to Geocentric Celestial Reference Frame
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from CIRS to GCRF at input time(s)
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def qtirs2cirs(
|
|
93
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
94
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
95
|
+
"""Rotation from Terrestrial Intermediate Reference System (TIRS) to the Celestial Intermediate Reference System (CIRS)
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
99
|
+
|
|
100
|
+
Returns:
|
|
101
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from TIRS to CIRS at input time(s)
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
def qgcrf2itrf_approx(
|
|
105
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
106
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
107
|
+
"""Quaternion representing approximate rotation from the Geocentric Celestial Reference Frame (GCRF) to the International Terrestrial Reference Frame (ITRF)
|
|
108
|
+
|
|
109
|
+
Notes:
|
|
110
|
+
* Accurate to approx. 1 arcsec
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
114
|
+
|
|
115
|
+
Returns:
|
|
116
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from GCRF to ITRF at input time(s)
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def qitrf2gcrf_approx(
|
|
121
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
122
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
123
|
+
"""Quaternion representing approximate rotation from the International Terrestrial Reference Frame (ITRF) to the Geocentric Celestial Reference Frame (GCRF)
|
|
124
|
+
|
|
125
|
+
Notes:
|
|
126
|
+
* Accurate to approx. 1 arcsec
|
|
127
|
+
|
|
128
|
+
Args:
|
|
129
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
130
|
+
|
|
131
|
+
Returns:
|
|
132
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from ITRF to GCRF at input time(s)
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def qgcrf2itrf(
|
|
137
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
138
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
139
|
+
"""Quaternion representing rotation from the Geocentric Celestial Reference Frame (GCRF) to the International Terrestrial Reference Frame (ITRF)
|
|
140
|
+
|
|
141
|
+
Notes:
|
|
142
|
+
* Uses full IAU2010 Reduction
|
|
143
|
+
* See IERS Technical Note 36, Chapter 5
|
|
144
|
+
* Does not include solid tides, ocean tides
|
|
145
|
+
* Very computationally expensive
|
|
146
|
+
|
|
147
|
+
Args:
|
|
148
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from GCRF to ITRF at input time(s)
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
def qitrf2gcrf(
|
|
155
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
156
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
157
|
+
"""Quaternion representing rotation from the International Terrestrial Reference Frame (ITRF) to the Geocentric Celestial Reference Frame (GCRF)
|
|
158
|
+
|
|
159
|
+
Notes:
|
|
160
|
+
* Uses full IAU2010 Reduction
|
|
161
|
+
* See IERS Technical Note 36, Chapter 5
|
|
162
|
+
* Does not include solid tides, ocean tides
|
|
163
|
+
* Very computationally expensive
|
|
164
|
+
|
|
165
|
+
Args:
|
|
166
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
167
|
+
Returns:
|
|
168
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from ITRF to GCRF at input time(s)
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def qteme2itrf(
|
|
173
|
+
tm: time | npt.ArrayLike[time] | datetime.datetime | npt.ArrayLike[datetime.datetime],
|
|
174
|
+
) -> quaternion | npt.ArrayLike[quaternion]:
|
|
175
|
+
""" Quaternion representing rotation from the True Equator Mean Equinox (TEME) frame to the International Terrestrial Reference Frame (ITRF)
|
|
176
|
+
|
|
177
|
+
Notes:
|
|
178
|
+
* This is equation 3-90 in Vallado
|
|
179
|
+
* TEME is the output frame of the SGP4 propagator used to compute position from two-line element sets.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
tm (satkit.time | npt.ArrayLike[satkit.time] | datetime.datetime | npt.ArrayLike[datetime.datetime]): Time[s] at which to calculate the quaternion
|
|
183
|
+
|
|
184
|
+
Returns:
|
|
185
|
+
quaternion | npt.ArrayLike[quaternion]: Quaternion representing rotation from TEME to ITRF at input time(s)
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def earth_orientation_params(time: time) -> tuple[float, float, float, float] | None:
|
|
190
|
+
"""Get Earth Orientation Parameters at given instant
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
time (satkit.time): Instant at which to query parameters
|
|
194
|
+
|
|
195
|
+
Returns:
|
|
196
|
+
(float, float, float, float, float, float) | None: Tuple with following elements:
|
|
197
|
+
0 : (UT1 - UTC) in seconds
|
|
198
|
+
1 : X polar motion in arcsecs
|
|
199
|
+
2 : Y polar motion in arcsecs
|
|
200
|
+
3 : LOD: instantaneous rate of change in (UT1-UTC), msec/day
|
|
201
|
+
4 : dX wrt IAU-2000A nutation, milli-arcsecs
|
|
202
|
+
5 : dY wrt IAU-2000A nutation, milli-arcsecs
|
|
203
|
+
|
|
204
|
+
"""
|