Releases: michaelaye/planetarypy
v0.52.2
v0.52.1 — Outer solar system support
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 planetarypyv0.52.0 — Spicer illumination calculator
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 indexCLI
plp spicer Mars
plp spicer Mars --lon 137.4 --lat -4.6
plp spicer Moon --time 2024-06-15T12:00:00Details
units=Truefor astropy Quantity outputsupported_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 planetarypyv0.51.0 — Geo module, plotting, HiRISE API
New Modules
planetarypy.geo: GDAL-free coordinate transforms for planetary images (pixel↔map↔lonlat), IAU CRS support,Pointclass with.is_within(),.to_shapely(),.azimuth_to()planetarypy.plotting:imshow_graywith percentile stretch,add_sun_indicatorwith arrow + sun symbol,imshow_with_sunplanetarypy.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/--cleanfor browse variant selection- HiRISE CLI commands now use the hirise instrument module
pip install --upgrade planetarypyv0.50.1 — Patch: duckdb core dep, pandas 2.x compat
Fixed
duckdbmoved 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 planetarypyv0.50.0 — Ground-up rewrite
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 planetarypySee CHANGELOG.md for full details.