Skip to content

Add simplified IMCOM coadd simulation#98

Open
yuedong0607 wants to merge 9 commits into
mainfrom
integrate_coadd_sim
Open

Add simplified IMCOM coadd simulation#98
yuedong0607 wants to merge 9 commits into
mainfrom
integrate_coadd_sim

Conversation

@yuedong0607
Copy link
Copy Markdown
Collaborator

This PR introduces an initial implementation for simulating IMCOM coadded images within roman_imsim.

The current version is simplified and primarily intended as a prototype to support early testing and discussion of IMCOM-like simulations. The implementation generates simulated IMCOM coadd image block by:

  • Taking an existing IMCOM block file as input
  • Reusing the WCS and relevant metadata from the input block
  • Using the target Gaussian PSFs specified for the IMCOMSim_2024 run (currently hardcoded in psf.py)
  • Adding large-scale correlated noise via a weighted combination of white and pink noise, corresponding to layers 11 and 10 in the IMCOM block, respectively.
Screenshot 2026-03-05 at 6 59 01 PM

@yuedong0607 yuedong0607 force-pushed the integrate_coadd_sim branch 2 times, most recently from 6c6468e to 7766a3c Compare March 6, 2026 22:29
@aguinot
Copy link
Copy Markdown
Collaborator

aguinot commented Mar 7, 2026

Hello,
It would be greate if this PR could wait for atleast #65 and idealy #89 to be merged.
Also, this PR do not make use of the new implementation of the noise builder from #66 where the noise builder is defined as intended by the galsim.config module and not inside the ImageBuilder directly. It could be something like ImcomNoiseBuilder but I would argue that it is not mendatory at the moment as we can use the galsim implementation of GaussionNoise or PoissonNoise to start with and workout a better implementation later.
I would also recommend to remove the dependence to an existing IMCOM coadd as it limits the number of simulated images and the region we can simulate. I have an implementation here as an example. Or directly from the pyIMCOM implementation here.

I'd be happy to help making those changes and/or review them! 🙂

@sidneymau
Copy link
Copy Markdown
Contributor

I'm very interested in this -- let me know if/how I can help.

@yuedong0607 yuedong0607 force-pushed the integrate_coadd_sim branch from f78640d to 6066691 Compare March 20, 2026 18:53
@yuedong0607
Copy link
Copy Markdown
Collaborator Author

Hello, It would be greate if this PR could wait for atleast #65 and idealy #89 to be merged. Also, this PR do not make use of the new implementation of the noise builder from #66 where the noise builder is defined as intended by the galsim.config module and not inside the ImageBuilder directly. It could be something like ImcomNoiseBuilder but I would argue that it is not mendatory at the moment as we can use the galsim implementation of GaussionNoise or PoissonNoise to start with and workout a better implementation later. I would also recommend to remove the dependence to an existing IMCOM coadd as it limits the number of simulated images and the region we can simulate. I have an implementation here as an example. Or directly from the pyIMCOM implementation here.

I'd be happy to help making those changes and/or review them! 🙂

Hi Axel, I'm sorry for the delayed response, as the notification email slipped past me. This is still a very preliminary version mainly aimed at reproducing the IMCOM sci layer by taking an existing IMCOM block as input. The background noise is modeled as a linear combination of white and pink noise layers at this moment.

I agree that the natural next step should be to remove the dependency on reusing the WCS from an existing IMCOM product. It would be great to combine efforts with what's already being implemented in roman_shear_sim and pyimcom.

@yuedong0607
Copy link
Copy Markdown
Collaborator Author

I'm very interested in this -- let me know if/how I can help.

Thanks Sid! Apologies for the delayed response! I just noticed the comments on the PR today. Happy to learn that there're interests in implementing and using the coadd sims. To move things forward, I think we can start outlining what we'd like these simulations to include. Below're a few initial thoughts I have at this moment:

  1. As Axel suggested, a natural next step is to remove the dependency on reusing the WCS from existing IMCOM products.
  2. Incorporate residuals on top of the modeled PSFs. Currently the PSF is simply target PSF (Gaussians) used in IMCOM.
  3. Improve background noise modeling.
  4. Add noise modeling at the object level, especially accounting for Poisson noise after coaddition.

Happy to hear any thoughts or suggestions!

@sidneymau
Copy link
Copy Markdown
Contributor

I would also recommend to remove the dependence to an existing IMCOM coadd as it limits the number of simulated images and the region we can simulate.

I feel like it is useful to be able to make simulations for existing coadds -- for example, this could be one approach for doing astrophysical shear systematic calibration. So even if the dependence is removed, I do think this is an important feature to have as an option. I haven't checked the code to know if this is easy to whether or not we remove the dependence on an existing coadd, but just flagging this as something to keep in mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants