Skip to content

Releases: Caltech-IPAC/kete

v1.0.4

13 Nov 18:28
a35bf4f
Compare
Choose a tag to compare

[v1.0.4]

Added

  • Added support for saving and loading SimultaneousStates as Parquet files.

Changed

  • Horizons orbit table query now includes, M1/2, K1/2, PC, and rotation period.

Fixed

  • NEOS Chip size calculation was slightly incorrect with regard to the placement of the
    gaps between the chips.
  • NEOS FOV rotation was being calculated in the ecliptic frame, whereas images will be
    in the equatorial frame. Rotation is now defaulting to the equatorial frame.

v1.0.3

25 Oct 19:45
c2391dc
Compare
Choose a tag to compare

[v1.0.3]

Added

  • Added support for loading orbit information from JPL Horizons.
  • Added more complete testing for light delay computations in the various FOV checks.
  • Added quality of life function to SimultaneousState for computing the RA/Dec along
    with the projected on sky rates of motion.

Changed

  • Changed the return signature for fov_static_check, this now returns indices of
    the inputs, instead of the original inputs themselves.

Fixed

  • Sampling of JPL Horizons orbit fits was slightly off, and appears to be fixed by
    assuming that the epoch time of the covariance fits is in UTC. This assumption is
    now included in the covariance matrix sampling. This is different than their other
    data products.
  • Field of View checks for SPK checks was not returning the correct light delayed time,
    it was returning the position/velocity at the observed position, but the time was
    the instantaneous time.

Removed

  • Removed several polar coordinate transformations in the rust backend which were all
    equivalent variations of latitude/longitude conversions. Nothing in the Python was
    impacted.

v1.0.2

10 Oct 15:40
264ddb3
Compare
Choose a tag to compare

This release is small bump primarily to add support for Python 3.13.

[v1.0.2]

Added

  • Added Python 3.13 to the built packages.
  • Added sample to the HorizonsProperties object, allowing sampling of the orbit's
    uncertainty.
  • Added support for time delayed non-gravitational forces, as is found a number of
    comets in JPL Horizons.

v1.0.1

02 Oct 19:52
a30483f
Compare
Choose a tag to compare

This is a minor release, it primarily adds python 3.9 to the prebuilt binaries.

[v1.0.1]

Added

  • Added worked example of calculating if an object is an Earth Trojan.
  • Add Earth obliquity calculation.
  • Exposed WGS84 coordinate conversions in the python frontend.

Fixed

  • Epoch and Perihelion time conversion when loading JPL Horizons covariance matrices was
    not being done for UTC to TDB, leading to small residuals in covariance sampling.

v1.0.0

26 Sep 15:13
9986fff
Compare
Choose a tag to compare

Initial Public Release!

Kete is a tool to predict observations of solar system objects. It is designed to allow simulations of years of all-sky surveys, though it can readily be used to predict the location of single objects over the course of a single night.

The documentation may be found here.

The changelog since the last release:

[v1.0.0]

Added

  • Added final SPICE kernels for the WISE mission, it now contains all positions from
    all phases of operation. There is a gap for the years it was not operating.
  • Updated WISE mission phases to reflect the final data products about to be released.
  • Updated ZTF for the current release 22.
  • Added kete.RectangleFOV.from_wcs, allowing the construction of a FOV from a given
    Astropy WCS object.
  • Added kete.conversion.bin_data, which allows for binning matrix data such as images.
  • Added tutorial showing precovery of an asteroid from a 1950's glass plate observation
    done at the Palomar Observatory.
  • Added sun-shield rotation calculation for NEO Surveyor.
  • All FOV's now have the .jd() method which returns the JD of the observer state.

Changed

  • Building FOVs from corners, now will flip the corner ordering if the final FOV is
    pointing in the opposite direction of the input corners. This means Rectangle FOVs
    cannot be defined from corners with on sky angles greater than 180 degrees.

Fixed

  • Orbital elements calculations for True Anomaly and Eccentric Anomaly were numerically
    unstable with nearly parabolic orbits.
  • Time scaling bugs when loading times from both Horizons and the MPC were fixed, these
    were causing offsets of about a minute in the loaded states. However it was shifting
    both the perihelion time and the epoch time by the same amount, leading to only minor
    effective errors.
  • Fixed a time offset in the FOV's downloaded from IRSA WISE/NEOWISE. They were offset
    by 4.4 seconds.
  • Fixed rotation approximation in WISE/NEOWISE field of views which was causing a small
    percentage of objects to not be found during FOV checks when they were close to the
    edge of the field.
  • Constant for the sqrt of GMS was incorrect by a small amount, this value was fixed.
  • IRSA username/password options are now being passed through correctly in WISE.

Removed

  • Removed plot_frame from ZTF, as a better version of this is available in kete.irsa.
  • Removed cache_WISE_frame and fetch_WISE_frame deprecated functions in WISE.

v0.3.0

26 Aug 20:52
Compare
Choose a tag to compare

Renamed project to Kete.

[0.3.0] - 2024 - 8 - 28

Added

  • Added an Omni-Directional Field of View.
  • Added a "getting started" example.

Changed

  • Renamed the project to Kete.
  • Optimized the moid computation, improving performance by over 30x.

Fixed

  • Field of View checks for states was optimized for multi-core processing on millions
    of objects, leading to huge speed gains for large queries.
  • Fixed a bug where saving lists of SimultaneousStates had a bug where field of view
    information was not being saved correctly.
  • Fixed incompatibility with older versions of the rust compiler, working back to
    at least v1.75.0

v0.2.5

12 Aug 17:43
87bee34
Compare
Choose a tag to compare

[0.2.5] - 2024 - 8 - 12

Added

  • Added support for long term integrations, on the scale of less than a mega-year.
  • Added clear deprecation tooling, which helps indicate how to update neospy when a
    function's signature changes or is removed.
  • Added default plotting tools for fits files, which make decent scaling guesses for
    ZTF and WISE frames. This includes annotation and zooming functions.

Changed

  • Cached files are now zipped if possible after download.
  • Cached WISE frames are sorted by folders by the last 2 digits of the scan id, this
    helps when downloading thousands of frames.
  • Combined fetch_WISE_frame and cache_WISE_frame functions into fetch_frame.
  • Renamed cached_gzip_json_download to download_json.
  • Renamed cached_file_download to download_file.
  • Optimizations to SPICE kernel queries leading to a 20% speedup in orbit propagation,
    along with >43% speedup in state queries from the spice kernels. Speedup from orbit
    propagation comes directly from the spice kernel optimization.
  • Moved python wrappers over propagation into the rust backend entirely.
  • Simplified polymorphic support in the rust wrappers, removing some intermediate
    objects which were over-complicating the interface.
  • Refactored the computation of gravitational forces, improving maintainability.

Fixed

  • Fixed documentation on Time which was not being displayed correctly in python.

Removed

  • cached_zip_download was deprecated, this was automatically unzipping folders.

v0.2.4

15 Jul 15:51
c02b0e3
Compare
Choose a tag to compare

[0.2.4] - 2024 - 7 - 15

Added

  • Add J2 non-spherical terms for the gravitational models of Earth and Jupiter.
  • Add non-gravitational force model for dust particles which includes the
    Poynting-Roberterson effect.
  • Added Time.year_float which converts the Time object to the Year as a float.
  • Added SimultaneousState.obs_vecs which creates vectors from the observer to the
    objects contained within the state.
  • Added NEATM tutorial which gives an overview of NEATM along with a small example.

Changed

  • Optimized SPICE kernel loading for Type 2 records, which is what DE440 is saved as.
    This means effectively all n-body propagation is now 15-20% faster than before.
  • Removed SpiceKernel as a class, lowering all its methods to the submodule level,
    see #68 for more discussion.
  • Removed Time object which was a wrapper over astropy.Time, instead making a
    custom implementation of time which is ~3-400x faster than previous.
  • Improved orbital element conversion, leading to a 2-3x speedup in two body orbit
    propagation.
  • Significant rewrite of the SPICE kernel file management, this rewrite is required
    so that future work can enable writing SPICE kernel files.
  • Moved the downloading of Horizons spice kernels from SpiceKernel to horizons.
  • Renamed all field of view checking functions to similar names: fov_static_check,
    fov_state_check, and fov_spice_check. These functions are exposed at the base
    level of neospy.
  • Moved much of the python documentation into the rust wrappers, and removed the
    remaining empty python files. Part of the rewrite involved moving and renaming many
    functions.
  • Updated nalgebra to minimum version ^0.33.0, which uses a simplified allocator.
  • Fixed minimum versions for all rust libraries.

Fixed

  • Orbital Elements now correctly computes true_anomaly, mean_anomaly,
    eccentric_anomaly, semi_major_axis, and mean_motion for parabolic and
    hyperbolic orbits.
  • Two body propagation for parabolic orbits was incorrect.
  • Typo in Observability example was leading to an incorrect Magnitude value.
  • Astropy WCS warnings are now suppressed.
  • SpiceKernels.moon_illuminated_frac now agrees with JPL Horizons, this was doing a
    geometric calculation which was correct, but with a different interpretation than
    desired.

Removed

  • Removed support for SPK Files of type 3, these should be a trivial change from type 2
    however I do not have access to a file of type 3 for testing. Because it cannot be
    validated at the moment, the code has been removed.

v0.2.3

12 Jun 20:31
ead0eb7
Compare
Choose a tag to compare

[0.2.3] - 2024 - 6 - 12

Added

  • Added computation for Tisserand's Parameter.
  • Added support for NEOS Visit FOVs, which are joint FOVs containing 4 rectangles.
  • Added python interface to WISE Color Correction functions.
  • Added support for querying static sky sources in FOVs.
  • SpiceKernels can now load SPK files directly, without needing the files to be in the
    cache.
  • SpiceKernels now supports displaying the contents of the headers of SPk/PCK files.
  • SpiceKernels can now return the available loaded SPK segments of an object.

Changed

  • Renamed "HorizonsCovariance" to "Covariance" and generalized it to support both
    cometary and cartesian representations.
  • Made api more consistent for conversion to State objects by renaming all instances of
    .as_state to .state.
  • Improved performance of integration and propagation by about 10%.
  • Restructured the Rust FOVs to be organized by observatory.
  • Renamed SpiceKernels.cache_kernel_reload to kernel_reload and changed it's args.

Fixed

  • Astropy will no longer warning about deprecated WCS header values for NEOWISE images.

v0.2.2

20 May 20:37
Compare
Choose a tag to compare

[0.2.2] - 2024 - 5 - 20

Added

  • Added support for downloading ZTF full fields FOV information into the neospy cache.
  • Added simple lookup for observatory ecliptic state using MPC observatory codes.
  • Added 'Tutorials' to the documentation, these are larger worked examples which do not
    build at the same time as the standard docs. They are designed to be examples which
    take significant compute, and may run for many minutes.
  • Added Tutorials for 'KONA' and 'WISE Precovery'.

Changed

  • Moved population definitions to the base level and renamed it population.
  • Changed references to diameters in the broken power law sampler.
  • FOV propagation tests now return a flatten list of states.
  • Renamed data to cache to more accurately represent its function.

Fixed

  • Coordinate frame conversion was resulting in incorrect coordinate positions when
    passing Equatorial based frames to some FOV related functions. Specifically it was
    failing to convert the Equatorial frame to Ecliptic frame before performing orbit
    calculations.

Removed

  • Removed construction of populations entirely.
  • Removed folder for population, the remaining contents were moved up to the base
    level of the package.
  • Removed PDS related tools.