Changelog¶
Version 0.4.0 (2026-06)¶
Major redesign of the curryer.correction package with a new modular architecture, Pydantic-based configuration, standalone verification workflows, GCP regridding support, and expanded documentation and examples.
Highlights¶
Refactored
curryer.correctioninto focused modules – split the former monolithic implementation into dedicated modules:config,pipeline,verification,parameters,kernel_ops,image_io,results_io,regrid, anderror_stats.Pydantic-based configuration – introduced structured config models (
GeolocationSetup,Sweep,OutputConfig,DataConfig,GeolocationConfig,NetCDFConfig,RequirementsConfig,RegridConfig) with improved validation and serialization.Split correction config into Setup / Sweep / Output – replaced the monolithic
CorrectionConfiggod-object with three focused models:GeolocationSetup(durable, mission-specific setup built once),Sweep(the lightweight parameter experiment varied between runs), andOutputConfig. AddedSweep.with_strategy()/Sweep.update_param()for cheap, eagerly re-validated copies. Calibration collapsed to direct file paths (CalibrationFiles.los_vectors_file/psf_file). JSON loading is nowload_config_files()(returns(setup, sweep, output)from"setup"/"sweep"/ optional"output"sections), plusload_setup_from_json()/load_sweep_from_json();load_config_from_json()was removed.Standalone verification workflow – new
verify()entry point and result models (VerificationResult,GCPError) for checking geolocation performance without running a full correction sweep.GCP chip regridding support – new tooling to load HDF GCP chips, convert ECEF coordinates to geodetic coordinates, and regrid them to regular lat/lon grids; includes CLI examples for batch workflows.
Expanded correction workflow API – clearer public entry points (
run_correction,run_image_matching,compute_error_stats) and structured result types (CorrectionResult,ParameterSetResult).Deterministic parameter search strategies – support for random sampling, grid search, and single-parameter sweep via the
SearchStrategyenum.Improved image/data I/O – unified path resolution with optional S3 support; format-agnostic helpers for MATLAB, NetCDF, HDF, and GeoTIFF workflows.
Expanded documentation and examples – new correction user guide, regridding documentation, runnable examples, and JSON config templates.
Breaking Changes¶
curryer.correctionhas been significantly reorganized internally; loader protocols were removed.Configuration now uses Pydantic models; some module, class, and function names were renamed or relocated.
Removed the monolithic
CorrectionConfig(andload_config_from_json) in favor ofGeolocationSetup/Sweep/OutputConfigandload_config_files/load_setup_from_json/load_sweep_from_json. Entry points now takesetupfirst:run_correction(setup, sweep, inputs, work_dir)andverify(setup, ...).This release should be treated as a breaking redesign, however there are minimal downstream users of correction.
Version 0.3.3 (2026-06)¶
Added the
curryer.compute.geometrymodule:GeometryDatacomputes geolocation/geometry ancillary fields (subsatellite and subsolar points, satellite radius, Earth-Sun distance, spacecraft position and geodetic altitude) through a selective-compute registry that queries each SPICE input once, with importable math-only leaf functions and a documented per-field NaN fill contractAdded frame-to-frame rotation primitives to
curryer.compute.spatial:frame_to_frame_rotation,frame_to_frame_euler, andframe_to_frame_quaternion
Version 0.3.2 (2026-04)¶
Pinned SpiceyPy below 8.1.0 for compatibility
Refreshed the documentation
Version 0.3.1 (2026-02)¶
Added a citation file
Version 0.3.0¶
Add automatic SPICE file path shortening tools
Corrected a bug within the apply_offsets function of Correction loop
BREAKING CHANGE: Renamed MonteCarlo function to more generic “Correction”
Version 0.2.1 (2025-12)¶
Added support for custom pointing vectors in
compute.spatial.compute_ellipsoid_intersectionClarified function and parameter naming and improved testing for associated functions
Left deprecated spatial compute functions in place for backward compatibility with warnings
Both
pixel_vectorsandinstrument_intersect_ellipsoidwere deprecated
Bug fix for montecarlo testing using pytest tmp_path
Version 1.0.0 (unreleased)¶
Add documentation building framework with Sphinx