Releases: dgegen/astrafocus
Release for v0.1.3
The release of AstrAFocus v0.1.3 focuses on improving the robustness of the sweeping autofocus, refining improving documentation, and adding citation.
Highlights
- Improved robustness of sweeping autofocus: failed measurements are skipped and NaN-heavy records trigger warnings.
- Added
FocusMeasureScanfor batch FITS focus analysis. - Enhanced simulators & examples: added
CabaretDeviceSimulator.default()and richer examples for the autofocuser, simulation, and star-fitter flows.
Enhancements
FocusMeasureOperatorimplementations accept constructorkwargsfor flexible configuration.- Refactored
StarFinderand integrated Cabaret simulators for streamlined testing/simulation. - Added registries and improved docstrings across modules to clarify APIs.
- Added CITATION.cff to support citability.
Documentation & CI
- Expanded API documentation and removed redundant files.
- Added documentation dependencies and updated project metadata.
- Updated Python publish workflow and removed the
test.pypiworkflow. - Adjusted pre-commit hooks to exclude uv.lock; added uv.lock to the repository.
Full Changelog: v0.1.3...v0.1.3
Release for v0.1.2
The release of AstrAFocus v0.1.2 focuses on improving the robustness of the autofocus estimation logic and refining the developer experience.
Core Improvements
- Enhanced Focus Estimation: Improvements to the
NonParametricResponseAutofocuserand analytic response models to better handle noisy data and provide more reliable point-of-optimal-focus estimates. - Device Interface Stability: Refinements to the
Alpacainterface (via thealpacaextra) to ensure more consistent communication with telescope hardware and focusers.
Technical & Maintenance
- Dependency Updates: Adjusted requirements to ensure compatibility with Python 3.11+ and updated internal math utilities for the focus measure operators.
- Bug Fixes: Resolved edge cases in the
ZenithNeighbourhoodQuerywhere specific sky regions could return empty results, causing the autofocus routine to hang. - Documentation: Add documentation page, cleaned up docstrings and type hints across the
interfaceandmodelsmodules to improve IDE integration for users.
Full Changelog: v0.1.1...v0.1.2
Release for v0.1.1
- Fix in LocalGaiaDatabaseQuery for queries with min_ra > max_ra.
Full Changelog: v0.1.0...v0.1.1
Release for v0.1.0
What's Changed
- Add
FocusMeasureOperatorRegistryandExtremumEstimatorRegistry. - Removed autofocuser ValueError on bad conditions by @ppp-one in #1
New Contributors
Full Changelog: v0.0.4...v0.0.5
Pre-deployment release for PyPI v0.0.4
As the last version was tested in the field, this version aims to incorporate features that were deemed useful
- GitHub Actions: Updated workflow to trigger on published releases
for Test PyPI. - Project Metadata: Revised
pyproject.toml. - ZenithNeighbourhoodQuery: Implemented a maximum star count limit
to prevent excessive queries. - Query Refactoring:
- Enhanced
ShardwiseQueryandLocalGaiaDatabaseQuerywith count
methods to avoid memory overload. - Added magnitude filtering in SQL queries for better precision.
- Adjusted zenith angle dynamically if star count exceeds the limit.
- Enhanced
- Logger Configuration: Refactored for improved clarity and removed
unnecessary handlers. - StarFinder Adjustment: Lowered star finding threshold from 5.0 to
3.0 to decrease the likelihood of not having any threshold crossings. Furthermore, now decrease star_finder threshold if no stars were found. - Autofocuser: Added
relative_search_rangeflag to allow searching around the initial focus position instead of providing an absolute search_range - Documentation: Improved examples for better clarity on usage and functionality.
Pre-deployment release for PyPI v0.0.3
This version will be tested in the field with a telescope this week. This will give us more data and experience to refine the current implementation and make improvements accordingly.
The changes done prior to its first application are
- Improve installation instructions and package description
- Improve logging in
AutofocuserBase.save_focus_record - Add more tests
- Add
extremum_estimators.py, a module that provides classes
for robustly estimating the minimum or maximum values in a set of
noisy measurements using various techniques. These are used by the
nonNonParametricResponseAutofocuserclass to find the minimum or
maximum of the focus measurements. - Add
NonParametricResponseAutofocuser - Correct a bug in
interface/simulation.py - Add
smaller_is_betterproperty toFocusMeasureOperator, indicating
if smaller values correspond to better focus than larger for the given
operator.
Pre-deployment release for PyPI
This version will be tested in practice with a telescope within the next week. This will give us more data and experience to refine the current implementation and make improvements accordingly.
It notably encompasses:
ZenithNeighbourhoodQueryandZenithNeighbourhoodQueryResult, to identify an area around the zenith that is suitable for focus calibration, given the chosen focus measurement operator.AnalyticResponseAutofocuser(SweepingAutofocuser), to perform an autofocusing procedure utilising the analytic nature of the focus response curve of a given focus measure, such asHFRStarFocusMeasureorGaussianStarFocusMeasure.