Skip to content

Implement Project-Level Statistical Grading Engine and UI Configuration Controls #290

Description

@johnwhobbs

Description:

We need to implement a project-level grading pipeline that evaluates subframes within distinct filter planes across multi-night datasets using a Z-score distribution model. This issue covers adding global parameter inputs to the Settings tab, refactoring the actions on the Projects tab, and executing the statistical culling loop.

Required Changes:

  • Settings Tab UI:

  • Add a new QGroupBox titled "Subframe Grading Defaults" below the Updates section.

  • Implement QDoubleSpinBox fields for the following parameters:

  • Max Star Roundness Limit (Default: 0.22, range: 0.05 to 0.50)

  • Rejection Cutoff Threshold (Default: 0.55, range: 0.10 to 0.90)

  • HFD Weight, SNR Weight, and Sky Flux Weight inputs.

  • Add a Save button that pushes these configuration values to the local settings table/JSON file, including a validation rule ensuring the three weights sum up to exactly 1.0.

  • Projects Tab UI & Action Button:

  • Refactor the "Import Quality Data" button to be named "Grade Project Subframes" (or "Recalculate Project Grades").

  • Connect its click-handler to a worker that pulls the custom parameters from settings and executes the grading loop on all subframes tied to the selected project.

  • Backend Grading Execution:

  • Group the active project's frames by filter.

  • Apply a hard gate for any frame exceeding the Max Star Roundness Limit.

  • Calculate statistical Z-scores for HFD (lower is better), SNR Weight (higher is better), and Sky Flux (lower is better) relative to the filter group's mean and standard deviation.

  • Combine metrics via user weights to produce a quality_score (between 0 and 1, flag frames below the cutoff as Rejected and frames equal to or above the objective as Approved, and trigger a refresh of the project's goal counters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions