Skip to content

Releases: michaelaye/planetarypy

v0.52.2

13 Apr 12:34

Choose a tag to compare

Only show satellite ephemeris download message when actually downloading.

v0.52.1 — Outer solar system support

13 Apr 12:13

Choose a tag to compare

Fixed

Spicer now works for outer solar system bodies. Satellite ephemeris SPKs are downloaded on demand:

$ plp spicer triton
Body 'TRITON' needs Neptune satellite ephemeris (~100 MB).
Downloading Neptune satellite ephemeris (~100 MB)...

  TRITON — Solar constant: 2 W/m²

Available systems: Jupiter (~1.1 GB), Saturn (~630 MB), Neptune (~100 MB), Pluto (~129 MB). One-time download, cached locally.

Also: suppress pvl deprecation warning, graceful CLI fallback for missing ephemeris.

pip install --upgrade planetarypy

v0.52.0 — Spicer illumination calculator

13 Apr 11:54

Choose a tag to compare

New: Spicer class

Surface illumination for any solar system body (79 bodies from generic PCK kernel):

from planetarypy.spice.spicer import Spicer

mars = Spicer("MARS")
mars.Ls                          # current solar longitude
mars.illumination(lon=137.4, lat=-4.6, time="2024-06-15T00:00:00")
mars.illumination(..., slope=30, aspect=180)  # tilted surface flux
mars.solar_azimuth_at(lon, lat, time)         # validated to <1° vs HiRISE index

CLI

plp spicer Mars
plp spicer Mars --lon 137.4 --lat -4.6
plp spicer Moon --time 2024-06-15T12:00:00

Details

  • units=True for astropy Quantity output
  • supported_bodies() to discover available NAIF bodies
  • Integration with planetarypy.geo.Point
  • Tutorial with diurnal flux curve, slope effects, multi-body comparison, HiRISE validation
  • 17 tests including 3 cross-validation against HiRISE PDS index
pip install --upgrade planetarypy

v0.51.0 — Geo module, plotting, HiRISE API

13 Apr 10:30

Choose a tag to compare

New Modules

  • planetarypy.geo: GDAL-free coordinate transforms for planetary images (pixel↔map↔lonlat), IAU CRS support, Point class with .is_within(), .to_shapely(), .azimuth_to()
  • planetarypy.plotting: imshow_gray with percentile stretch, add_sun_indicator with arrow + sun symbol, imshow_with_sun
  • planetarypy.instruments.mro.hirise: get_browse(annotated=True/False), get_metadata(), sun_azimuth_from_top()

New Tutorial

Geospatial tutorial with real HiRISE data (ESP_013807_2035): coordinate transforms, IAU CRS codes, Point class, sun indicator verified against crater shadows.

CLI Updates

  • plp hibrowse --annotated/--clean for browse variant selection
  • HiRISE CLI commands now use the hirise instrument module
pip install --upgrade planetarypy

v0.50.1 — Patch: duckdb core dep, pandas 2.x compat

13 Apr 07:32

Choose a tag to compare

Fixed

  • duckdb moved from optional [catalog] extra to core dependency
  • Pandas 2.x compatibility in test assertions (datetime64 resolution, StringDtype)
  • CI: mock catalog DB in tests that need it
  • Stale docs: rewrite index config explanation, update landing page, fix tutorial

Added

  • Logo in docs navbar and browser favicon
pip install --upgrade planetarypy

v0.50.0 — Ground-up rewrite

13 Apr 03:09

Choose a tag to compare

Ground-up rewrite with new API. Major version bump from 0.32.x to signal the breaking change from the nbplanetary-based versions.

Note for users of v0.32 and earlier: If you need functionality from the previous version, it remains available at github.com/michaelaye/nbplanetary. Features will be reintegrated over time.

Highlights

  • PDS Catalog: 65 missions, 2042 product types from the entire PDS archive, built from pdr-tests into a local DuckDB database
  • Direct data access: fetch_product("mro.ctx.edr", "PRODUCT_ID") — 58 product types across 29 instruments on 15 missions, resolved via PDS cumulative indexes
  • Unified CLI (plp): plp fetch, plp hibrowse, plp hifetch, plp ctxqv, plp catalog build
  • 90+ PDS index files: auto-downloaded, cached as Parquet, auto-updated
  • 37 SPICE missions: date-filtered kernel subsets via NAIF
  • CTX quickview: memory-mapped strided reads for fast previews

Install

pip install planetarypy

See CHANGELOG.md for full details.