Dev evaluation - #7
Merged
Merged
Conversation
…warning actions/checkout@v4, actions/setup-python@v5, and codecov/codecov-action@v4 all still declare a node20 runtime, which GitHub now force-runs on node24 with a deprecation warning on every job. Bumped each to the first major that targets node24 (checkout v5, setup-python v6, codecov-action v5 switched to a composite action with no node runtime declared at all), plus upload-artifact v4->v5 in the build job for the same reason even though it wasn't in this particular log. Checked each release's notes for breaking changes against our actual usage (no deprecated inputs, no relevant behavior changes) before bumping. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: Copilot <copilot@github.com>
Docs had drifted badly behind the app: Ghost detection and PDF export were both removed months ago but still documented as live features, the report's actual 9-section structure (esp. Section 8's log-ratio/ local-maxima rework) was described as an old 10-section layout, and three Tools-menu utilities (Synthetic Data Generator, Spatial Target Generator, Halo Analyzer) were never documented at all. Adds tools/generate_screenshots.py, a committed dev script (mirrors tools/generate_icon.py) that drives the app headlessly via QWidget.grab() against synthetic data to regenerate every doc screenshot, so this doesn't go stale silently again. Also documents the headless-capture techniques and the doc-staleness pitfall in CLAUDE.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… default parallel on _compute_std_map still used generic_filter(np.std) long after entropy was migrated off the same ~10-50x-slower pattern; it ran 6x sequentially inside one of SpatialDetailAnalyzer's 5 concurrent families and was the likely cause of a "Spatial Detail only" run taking 10+ minutes instead of the usual ~2. Replaced with a uniform_filter-based box variance, matching the entropy map's existing precedent. Also extend core/fig_utils.py's mathtext thread-safety lock (locked_draw_call) to cover fig.colorbar()/ax.legend() calls in image_filters.py, which ran unlocked inside the same always-on thread pool despite the lock's own comment noting savefig() wasn't the only trigger. Added as_completed()-based timing prints for the 5 families so a future stall/hang shows which one is stuck. Default "Run metrics in parallel" to checked in the GUI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…oloring _compute_mtf compressed its frequency axis by EPSF_OVERSAMPLING^2 (divided instead of multiplied), so the Section 4 MTF plot stalled at 0.25 cyc/px instead of 0.5 and mtf50/mtf_nyquist were under-reported ~4x. Confirmed with a known-frequency synthetic test signal and fixed. Also: Section 4's MTF plot is now log-scale on the y-axis, with a new MTF-ratio-in-dB figure (20*log10, modeled on Section 7's power-ratio figure but resampled onto a shared frequency grid since each image's MTF bin count depends on its own star FWHM). Section 6's Edge contrast ratio and Gradient magnitude cells now get green/red A-vs-B coloring, and Gradient magnitude switched to scientific notation instead of rounding to 0.00. Documented the axis-calibration pitfall, the resampling-vs-strict-alignment distinction for ratio figures, and the _better_worse_class utility in CLAUDE.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wraps tools/extract_images.py as a reusable function and wires it into the GUI so users can pull embedded base64 images out of any HTML report without a terminal: prompts for an input file, writes <stem>_Extracted.html alongside a <stem>_images/ folder. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kern_ref was sized to match the oversampled ePSF array but built from ref_fwhm in native-pixel units, rendering the reference PSF artificially narrow next to the measured (oversampled) ePSF images in the Report Inspector. Scale ref_fwhm by epsf_oversampling before building the kernel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
multiple enhancements to report output and bug fixes.