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.3-cp313-none-win_amd64.whl (87.0 MB view details)

Uploaded CPython 3.13 Windows x86-64

kete-1.0.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

kete-1.0.3-cp312-none-win_amd64.whl (87.0 MB view details)

Uploaded CPython 3.12 Windows x86-64

kete-1.0.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

kete-1.0.3-cp311-none-win_amd64.whl (87.0 MB view details)

Uploaded CPython 3.11 Windows x86-64

kete-1.0.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

kete-1.0.3-cp310-none-win_amd64.whl (87.0 MB view details)

Uploaded CPython 3.10 Windows x86-64

kete-1.0.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (87.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

kete-1.0.3-cp39-none-win_amd64.whl (87.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

kete-1.0.3-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.3-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.3-cp313-none-win_amd64.whl.

File metadata

  • Download URL: kete-1.0.3-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 87.0 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.3-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 82577994a1cddbd6587486e224dea11f199c387d9a9c51f1f93aa7f7c85d8fb3
MD5 d18a64b8a56a8e9f11a5368c2d965c08
BLAKE2b-256 b456a04ac85c32742a0ca15cf5df187be402434deb6e9a2558ba011fc13d4521

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cb06e94545a26cbfed981002155af4a1e444477178a94eb3905c705a23a828b
MD5 f24b982e35e5e37efe89a46ca29d3758
BLAKE2b-256 e10d9d37dd22876c5998542f927164a519cdf845919e8c7e2cd7898c9c7381cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86776414fbfbbb1e6e8c21db64a7c617f0c99dbdd328774ec42e0f59f3dcb37b
MD5 5001a4a3535ba34885307da1141109f3
BLAKE2b-256 1c035f9696bcafcd62345d4f4775cc1ef0d6b7eb2f58586243dd72e6aae0c383

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kete-1.0.3-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 87.0 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.3-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 3127b7ec85fc99b5ca87c16e103b941f71c203d12a640d5272b7f5c8fba4d73a
MD5 2ef37eb77ed591e7c1c10e9188080a44
BLAKE2b-256 08edb0148888eb79ecd58d4e68e071d083856cb16fb9f4b5198c319466745556

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b1f40406aa4a87b31e3d26bc2b39638a3e53c454bd76c7b181490c0eca0a097
MD5 c2d1adcfe013e9f5f1f2d61ec657e2eb
BLAKE2b-256 7ad1774e2da1075ac81366d4ac578f2ce78c75028f581f57cccd3929b9015e54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81ae05b21949e25d81466c800af6d1142f1412b204aa8cba8dff0a8c09d22d6a
MD5 a1099e6a43781e183d9336cea12708e2
BLAKE2b-256 6962122530caae352c2c7f4445e77a56adbb3a24d1f9499d4df325d44100692e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kete-1.0.3-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 87.0 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.3-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 95739a268292c37eb5b3b28429a0f47bd329db26d73588a2fd32b3257b730487
MD5 3e1729c40c857b6bede8dc4c7b78c21c
BLAKE2b-256 d06d989c0a13def06853f083f25153b291b6799da908d6cfc202c5b2557349fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc92e79639ce6edd7976cb5925a33b864e8e7a807e0a552192bd01bba0a1baaf
MD5 54903bdadd50e715d66347591722fbc9
BLAKE2b-256 ddf1e30f9e958c9c4c69ed515d05e77f1dffcbc436fd5c5ffa6e06c6225431e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3606c796360726fd2be7b300bc8f6de62ba1b855d748109f4d872b276e97cc6a
MD5 105f9edc78fad19650df50235fd4732d
BLAKE2b-256 b7ce7daa9c9ea56fea93eabe4eeff142289eac9328fed2bce6eec11625c92f70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kete-1.0.3-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 87.0 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.3-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 a24d8fb8296b500f4117506f33b87510bcb7af7f48d9571c75755b6d08f398c1
MD5 b11de9d5fec82d241228975c15e4bc39
BLAKE2b-256 e4bd28cdda6d7ac5e2548369eced635f9594c06f963ffd3cc8abb0e66ccc6182

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a93ed6beca824b118af2426e2d41e4366c227be84a30c37a16a90dfdcf4947f
MD5 393601f11cba3d75e4dc584985caf8da
BLAKE2b-256 fd4c9e1435a8b72766dbb5edcc432cdcc68cd962e82d3e4d45a66cf028a3a302

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0e52daf641bd68832eff40a6ef263395420dc05ee3737e6323570caf9172020
MD5 0991298165a76d15cf326385256e7c03
BLAKE2b-256 a66a2f33757349dd8e969e2de01584cab6d0487966a477b34c0689a8f2944936

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kete-1.0.3-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 87.0 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.3-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 1636f64a754d1b89b59418bae8f99942fb8e981a3f4718e7b70d6dcc76f47607
MD5 6c92782378ef176792cea77581538a14
BLAKE2b-256 64cf0290e9ec8fa31e3989b79d77949b42b7a91e7d38f264d57204fee18069ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 428649258749f0cc47592f466bd69faac9d518ae484f652390e47300d5b6949d
MD5 797aabe34ace4ae43185ad5c25068c29
BLAKE2b-256 080917bc7b4c9dfc6954a9f7868ab47b2ec704559e5859d4bf9c3097cb30e4c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kete-1.0.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f6e7afd2995eda3c9f1b7056df44a03a88de219b9e75392e542b93eaaa06f3f
MD5 b25ba0548779601dfc5446c7d45a0f6b
BLAKE2b-256 c9c3bd15c4450152eafc90b6f23431894d969c18d44842ff98173e3eca98aec0

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