pub struct AnalysisResult {Show 19 fields
pub width: usize,
pub height: usize,
pub source_channels: usize,
pub background: f32,
pub noise: f32,
pub detection_threshold: f32,
pub stars_detected: usize,
pub stars: Vec<StarMetrics>,
pub median_fwhm: f32,
pub median_eccentricity: f32,
pub median_snr: f32,
pub median_hfr: f32,
pub snr_weight: f32,
pub psf_signal: f32,
pub frame_snr: f32,
pub trail_r_squared: f32,
pub possibly_trailed: bool,
pub measured_fwhm_kernel: f32,
pub median_beta: Option<f32>,
}Expand description
Full analysis result for an image.
Fields§
§width: usizeImage width (after debayer if applicable).
height: usizeImage height (after debayer if applicable).
source_channels: usizeNumber of source channels: 1 = mono, 3 = color (after debayer).
background: f32Global background level (ADU).
noise: f32Background noise sigma (ADU).
detection_threshold: f32Actual detection threshold used (ADU above background).
stars_detected: usizeTotal stars detected (raw detection count, before measure cap).
stars: Vec<StarMetrics>Per-star metrics, sorted by flux descending, capped at max_stars.
median_fwhm: f32Median FWHM across all measured stars (pixels).
median_eccentricity: f32Median eccentricity across all measured stars.
median_snr: f32Median per-star SNR.
median_hfr: f32Median half-flux radius (pixels).
snr_weight: f32SNR weight for frame ranking: (MeanDev / noise)².
psf_signal: f32PSF signal: median(star_peaks) / noise.
frame_snr: f32Per-frame SNR: background / noise (linear ratio). Use for stacking prediction: stacked_snr = sqrt(sum(frame_snr_i²)).
trail_r_squared: f32Rayleigh R̄² (squared mean resultant length) for directional coherence of star position angles. Uses 2θ doubling for axial orientation data. 0.0 = uniform (no trail), 1.0 = all stars aligned (strong trail). A threshold of 0.5 corresponds to R̄ ≈ 0.71 (strong coherence).
possibly_trailed: boolTrue if the image is likely trailed, based on the Rayleigh test. Fires when R̄² > threshold with significant p-value, or when R̄² > 0.05 with high median eccentricity (catches non-coherent guiding issues). Requires ≥20 detected stars for statistical reliability.
measured_fwhm_kernel: f32Measured FWHM from adaptive two-pass detection (pixels). This is the FWHM used for the final matched filter kernel. If the first-pass FWHM was within 30% of 3.0, this equals 3.0.
median_beta: Option<f32>Median Moffat β across all stars (None if Moffat fitting not used). Typical range: 2.0-5.0 for real optics. Lower = broader wings.
Auto Trait Implementations§
impl Freeze for AnalysisResult
impl RefUnwindSafe for AnalysisResult
impl Send for AnalysisResult
impl Sync for AnalysisResult
impl Unpin for AnalysisResult
impl UnsafeUnpin for AnalysisResult
impl UnwindSafe for AnalysisResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more