Skip to main content

Kete Asteroid Survey Tools

Project description

Kete

Github Actions DOI

The repository for Kete, Solar System Survey Simulation Software. 'Kete' comes from ancient greek mythology, meaning sea monsters, and is the root word for Cetaceans (Whales).

Introduction

The kete tools are intended to enable the simulation of all-sky surveys of minor planets. This includes multi-body physics orbital dynamics, thermal and optical modeling of the objects, as well as field of view and light delay corrections. These tools in conjunction with the Minor Planet Centers (MPC) database of known asteroids can be used to not only plan surveys but can also be used to predict what objects are visible for existing or past surveys.

The primary goal for kete is to enable a set of tools that can operate on the entire MPC catalog at once, without having to do queries on specific objects. It has been used to simulate over 10 years of survey time for the NEO Surveyor mission using 10 million main-belt and near-Earth asteroids.

Documentation

https://github.com/user-attachments/assets/a48491d8-9c15-4659-9022-1767a3aa1e94

Here is a simulation of what the ZTF survey would observe during the entirety of 2023. This is every position of every numbered asteroid, along with a calculation of the expected V-band magnitudes. If the expected magnitude is less than ZTF's reported magnitude limit for the specific frame, then the object will flash light grey.

This took about 50 minutes on a desktop computer to compute, and about 40 minutes to generate the movie.

Installation

Kete may be installed using pip:

pip install kete

Installation - From Source

If kete is built from source, the rust compiler must be installed. Installation instructions may be found here:

https://www.rust-lang.org/learn/get-started

Ensure that your Python is up to date, this code runs on Python 3.9+.

python --version

Ensure that your pip is up to date, this should be at least version 22.0.0.

pip --version

This can be updated using:

python -m pip install "pip>=22.0.0" --upgrade
pip install setuptools --upgrade

Units and Reference Frame

Kete uses the ICRF Reference frame as the base coordinate frame, with units of AU, with time in JD with Barycentric Dynamical Time (TDB) scaling. Internally this frame converted to an Ecliptic coordinate system which is defined by the Obliquity Angle definition used by JPL Horizons, which is the defined IAU76/80 model in the J2000 frame.

  - https://en.wikipedia.org/wiki/Axial_tilt#Short_term
  - https://ssd.jpl.nasa.gov/horizons/manual.html#defs

Both JPL Horizons and the Minor Planet Center (MPC) use this coordinate frame, which is essentially equivalent to J2000 Ecliptic coordinates. Conversion tools are available in kete which enable conversion to the Equatorial frame and to various flavors of time.

Cache directory

Many operations in kete result in downloading various files. These files are cached automatically, the directory where this cache is stored may be set by setting the environment variable KETE_CACHE_DIR. The default directory is ~/.kete/.

export KETE_CACHE_DIR="~/.kete/"

Development

If you plan on doing development, it is recommended to install with the following:

pip install '.[dev]'

The [dev] in that line has pip install a number of optional dependencies which are useful for development. Including pytest and documentation tools.

Building Documentation

In order for documentation to be built, some additional Python libraries are needed. These can be installed with:

pip install sphinx sphinx_gallery autodoc

After this has been installed, the documentation can be built by running inside the kete directory.

(cd docs && make html && open html/index.html&)

Once this has completed running, open the file kete/docs/html/index.html for access to the HTML documentation.

To clean the previous docs build:

(cd docs && make clean)

Documentation tests may be run with:

(cd docs && make doctest)

Running tests

Running tests require that the pytest and pytest-cov packages be installed.

Open a terminal in the base of this folder and run the following command:

pytest --cov-report term-missing --cov=kete   

Another coverage report type is HTML, this will generate a folder called htmlcov in the directory where the command was run, then you can open the htmlcov/index.html file. This is a user-friendly website representation of the code coverage.

pytest --cov-report html --cov=kete   

Running Tutorials

Tutorials are computationally expensive examples which are more indicative of typical expected use. Since these examples are so expensive to run, they are not run unless manually performed. A convenience python script has been provided to do just this.

cd docs
python utils.py

Running Benchmarks

There are a test suite of micro-benchmarks in the rust backend of kete. These require gnuplot to be installed, and may be run using the following command:

cargo bench
open target/criterion/report/index.html

Additionally, Flamegraphs may be produced using the following:

cargo bench --bench propagation -- --profile-time=5
cargo bench --bench spice -- --profile-time=5
cargo bench --bench thermal -- --profile-time=5

These flamegraphs will be put in target/criterion/*/profile/flamegraph.svg. Opening these files in a web browser will show what functions are being used during the bench.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

kete-1.0.2-cp313-none-win_amd64.whl (87.1 MB view details)

Uploaded CPython 3.13 Windows x86-64

kete-1.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.2 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

kete-1.0.2-cp313-cp313-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

kete-1.0.2-cp312-none-win_amd64.whl (87.1 MB view details)

Uploaded CPython 3.12 Windows x86-64

kete-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

kete-1.0.2-cp312-cp312-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

kete-1.0.2-cp311-none-win_amd64.whl (87.1 MB view details)

Uploaded CPython 3.11 Windows x86-64

kete-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

kete-1.0.2-cp311-cp311-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

kete-1.0.2-cp310-none-win_amd64.whl (87.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

kete-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

kete-1.0.2-cp310-cp310-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

kete-1.0.2-cp39-none-win_amd64.whl (87.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

kete-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

kete-1.0.2-cp39-cp39-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

File details

Details for the file kete-1.0.2-cp313-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.2-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 87.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kete-1.0.2-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 a8df702178569564835329973aa62897d5ce8fc080b3daf32ed2ec43a52ba90d
MD5 c8eac619567b05aba105b0cce44c00e4
BLAKE2b-256 e3fcd1a53cf909f1c48a5383cc129b63a28ff3af09cb0a1c34d327dc1b93ac45

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a16d92c68a5c1df5075a9bd9ed0ebd0769da428ceda00df901bdd01ce0f5867
MD5 b2d98b62bcb32655089425883f96891a
BLAKE2b-256 09cece6fa4c2e77c059f551d1b7b92dc327977dd191c179122aee85f483fc3eb

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e906a3ce2582e823a397f9f7f621320f43f71c1a05fae1fa6579735f2db469e
MD5 6d0edfff518d0f5c90d045ae0ec84327
BLAKE2b-256 3a24fca862509be658cafda8e6b36d319c4ca023250069260ba06f44d76d9516

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp312-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.2-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 87.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kete-1.0.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 f3398f45ae6ec65c52c82fdeb7ef941e80343ec68547639638c96751084ff2a3
MD5 54035eb3aef55e46011677bb7e25f589
BLAKE2b-256 a2393dd2a914169f41e2f697d364fdc5307fef77946dfc8054b31d219acf965c

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1390069a9f13d3b3f7335cdfd51eac631f2f9446025c9e6920820ecdb4e87782
MD5 721772c8ef0d149f6aeb30927cfdc659
BLAKE2b-256 b7f30183ddaa0e35dc21240fadfdf0d65039b5e22caf0b13677e2115af413b03

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7af07fbd55af77cb789ebbd9b2a72340213daafaccd0e8420facb027f64f623
MD5 726ac663a080fa84ab4774885d13b88d
BLAKE2b-256 d885a5c9de17fa9b9f7c352c30faf6771c196940b4a501d2ccbeaa10b2cd09e5

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp311-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.2-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 87.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kete-1.0.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 a1bf36a3c87d9cb1331cf0bc76ddac3c5e24ff79800fe7d32cc05f53779db40b
MD5 a5531fb65218c4d701b05457a48e338d
BLAKE2b-256 a404ca92a316e25a60f899f6d86dce120574fe21f074da0a3eb28f0edb0ec77c

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21739b1b86e54b71650f0c50326df002860b926615787f9d470e7ec2b98b6114
MD5 266d7d032ab1f2cdb70b07073f318833
BLAKE2b-256 3129c2cf0167f3938e8d802fb3cab1e957e65214a9da638d63a5cfe8509cafd1

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ae990daf6027d25ca67326f1c7b9760eb369e1fae50a27aa03c2b58f7745a32
MD5 d9d5c44f1e54690d39e2184aebd1bb17
BLAKE2b-256 35d1a8770b50e2f1ba7579dfd4ef97dcf66f17c2d695613aa1e14eeeb35ae5a9

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp310-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.2-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 87.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kete-1.0.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 4134c361621f9b50feb4ea7ddb29c618bdb5a1867e7b58070ad9747bb604979d
MD5 1e3f371b18cb2770bbef050459312661
BLAKE2b-256 0e099c9512c89cd80d6e33bd90168711c8c77b6a3e673fa7c4b3033d486d9939

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6f297d4c38b5fbf274431f4b083c64e0ec1d7b937b0c3a3c43ad42929b09595
MD5 194cdad2744e992d6f24c39305fa8981
BLAKE2b-256 46c468ee7b779152e715432ab4a1f18ce7d68bfccd90270f6dd90798934b9b05

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f86f0ba6e352c9e16803339febf1dc7da27f0386bced66a2437c3186038904e
MD5 11925a8a76dbf23277f2a22a442bf1f6
BLAKE2b-256 c9192e22aecbe00d7c36e64a1fa276e333d244c12dba8936a9b89dd8bdc96f73

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp39-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.2-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 87.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kete-1.0.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 d1813f1509edd9a2c86a9227dcbe9a2efba3419785d9661425f4de3d4aca40a7
MD5 3d9bd5973e4bea7dd0b65cf53942e8d5
BLAKE2b-256 21cbfb63eacf322f7c1da97ef2f7d05597f508ac3ac7acd9e90c94995d1d5476

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80114505e012290a2691e024f35cefdc0c6ef2f744b6ce7b685dbf2e72856d11
MD5 d903d647700f874b660dfa05f156823d
BLAKE2b-256 9181d4213544c6a8f55106d98516f434fface73fbb87c90a4e8b6846b4f89f3c

See more details on using hashes here.

File details

Details for the file kete-1.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kete-1.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 897ed68f30eeed874ec7fedeb475958ce1e6c50441bf04237003a3abbeaf3929
MD5 caf371718b609527db94bccef6b827d2
BLAKE2b-256 e81a087d653e11369c55abbe3e73e6da537133e79270a22eacc4cd60ce92638c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page