Skip to content

feat: oversampled PSF support in SimulatorImaging + workspace example #482

Description

@Jammy2211

Overview

Follow-up to the oversampled-PSF series (design PyAutoArray#353; chosen as option (a) at the phase-3 sign-off, autolens_workspace#232): support simulation with an oversampled PSF and land the user-facing simulator.py example with it. Run mode: supervised --auto.

Plan

  • PyAutoGalaxyOperateImage.convolved_padded_image_2d_from(grid, psf, xp) (shared by Galaxies and Tracer): build the padded all-false mask (as padded_grid_from, using psf.kernel_shape_image_resolution), a padded grid with uniform over-sample size s (the existing padded_grid_from pads the border with 1s, which the uniformity guard correctly rejects), evaluate unbinned on its over-sampled coordinates, convolve at the fine resolution (blurring_image=None — all flux in-frame, same as today's padded flow) and return the image-resolution convolved padded image. via_galaxies_from switches on psf.convolve_over_sample_size > 1.
  • PyAutoArraySimulatorImaging.via_image_from(..., image_is_convolved: bool = False): skip the internal convolution when handed an already-convolved image. Additive, default preserves behaviour.
  • PyAutoLens — the same switch in via_tracer_from (it duplicates the PyAutoGalaxy pattern); trims with kernel_shape_image_resolution.
  • autolens_workspace — extend scripts/imaging/simulator.py with the oversampled-PSF example (fine kernel, convolve_over_sample_size, uniform over-sampling requirement).
  • Tests — unit: s=2 simulation equals brute-force fine construction; s=1 regression parity; noise semantics unchanged. Workspace: extend convolution_over_sampled.py with a simulate-at-s=2 → fit-at-s=2 round trip (chi² ≈ noise expectation).

Prompt: PyAutoMind/issued/oversampled_psf_simulator.md. Suggested branch: feature/psf-oversample-simulator.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions