Within the framework of the SUNRISE project, the research units at Unisalento were tasked with developing and testing algorithms for simulating Euclid-like images and for “Euclidizing” pre-existing astrophysical images. The primary motivation for providing such software was to enable the evaluation of available detection methods, such as those implemented in Source Extractor or DAOphot, using sources with known properties.
The team focused on the development and maintenance of two codes, LSBsim and BLOB_DET, designed for the simulation and detection of faint sources in ESA/Euclid VIS images.
a) LSBsim
LSBsim is a Python-based tool developed to inject low surface brightness (LSB) galaxies, dwarf galaxies, and globular clusters—including their nuclei—into real VIS images. Given a calibrated Euclid VIS single exposure, LSBsim takes a list of galactic parameters (right ascension, declination, total magnitude, position angle, effective radius, ellipticity, and Sérsic index) to simulate sources.
As an example, LSBsim has been used to simulate globular clusters, modeled with King profiles, using parameters such as right ascension, declination, total magnitude, ellipticity, core radius, and tidal radius (Euclid Collaboration: Urbano et al., 2025, in press, Astronomy & Astrophysics). The code scans all 144 quadrants of an image and injects these sources using the GalSim Python package, convolving them with the instrument PSF. It has been extensively employed to test detection software’s capability to recover the injected parameters. This workflow, particularly suitable for studies of Local Universe dwarf galaxies, also serves as a benchmark for data reduction pipelines and as a validation tool for other deep surveys.
LSBsim is currently available for download at this link, though access is restricted. Interested users must contact the development team to obtain permission. Here, we briefly describe the working principle of LSBsim and refer to the software tutorial for further details.
The main purpose of LSBsim is to simulate realistic Euclid-like images in the same format provided by the EC consortium and after processed to L2 data products. In particular, each Euclid/VIS image consists of a Multi Extension Fits file. In order to speed-up the simulation, the code works on OU-MER like images (really acquired by the Euclid satellite and processed by the consortium or completely simulated L2 products) as the input basis on which galaxies of given shape and luminosity are added. This allow one to add into the image those peculiar objects that other detection algorithms aim to detect. In inpuy it is also given a catalogue of Sersic galaxies and/or King Globular Clusters each of which characterized by its own structural parameters as described in (https://wiki.cosmos.esa.int/euclid/index.php/SWG_LU_WP3_DATA_MODEL_NOTES). The code simulates each target (one per entry in the input catalogue) and returns a *_LSBsim.fits file with the format as expected by OU-MER. LSBSim uses GALSIM to perform the simulation of galaxies with standard shapes. Globular clusters (used by the team involved in the search of such objects) are simulated via KING models by using the home made function "makeKing2D". After convolving with the instrument PSF and adding random noise, we tested that, for each simulated object, the integrated magnitude corresponds to the recovered one (see e.g. the script make_photometry.py which performs a fast simulation on an SC8-like image, save the fits file and get back the total counts and magnitude of the simulated object by using the daophot suite).
To run under the Euclid ELEMENTS (i.e. the typical software infrastructure used by the Euclid Consortium), the user must execute the following command
ErRun LSBsim 0.1 LSBSimPy -f[--gCatalogue] GalaxyCatalogueName -g[--gcCatalogue] GlobularClusterCatalogueName -uG[--useG] True[False] -uGC[--useGC] True[False] -anc[--ancillary] PathToAncillaryFolder -d[--dir] PathToFataFolder -i[--image] FileNameSC8IMAGE
Outside ELEMENTS (more typical for a common user) the run command is simply
python LSBSimPy.py -f[--gCatalogue] GalaxyCatalogueName -g[--gcCatalogue] GlobularClusterCatalogueName -uG[--useG] True[False] -uGC[--useGC] True[False] -anc[--ancillary] PathToAncillaryFolder -d[--dir] PathToFataFolder -i[--image] FileNameSC8IMAGE
For the meaning of interesting keywords we refer to the manual available on code repository (this link) and to the header section of the same software.
A final remark on the code usage comes from the mandatory catalogue format to be used.
Each catalogue MUST be formatted as in the following:
1) For a Galaxy catalogue:
#RA_deg DEC_deg model m_r_AB n_sersic Re_asec SEDidx_gal ellip PA size_gal_px D_gal_Mpc Mabs Re_pc R23surRe R1surRe
234.7097506 40.8618704 0 9.99 2.0 41.253 6 0.1 8.8 8208 5.0 -18.5 1000.0 2.26 9.83
[...]
where
RA_deg: Right Ascension in degrees
DEC_deg: Declination in degrees
m_r_AB: AB magnitude here intended to be the VIS integrated magnitude of the object
n_sersic: the sersic index in the range 0.3-6.5 (due to galsim allowed range). No issue is given if outside this range, but note that the simulation is simply wrong due to numerical problems in GALSIM.
ellip: ellipticity
PA: position angle in degrees
2) For Globular cluster catalogue
#RA_deg DEC_deg model m_r_AB cc Rc_asec SEDidx imgside_px D_Mpc Mabs Rc_pc d12_arcsec m_VIS m_Y m_J m_H
234.2725181 41.0281675 1 19.49 1.4 0.495 0 125 5.0 -9.0 1.2 0.259 19.39 19.17 19.17 19.29
[...]
where
RA_deg: Right Ascension in degrees
DEC_deg: Declination in degrees
cc: the compactness parameter
Rc_arsec: the half light radius in arcseconds
b) BLOB_DET (SDET)
Part of the effort was dedicated to developing a suite of Python scripts (SDET) available here, with restricted access requiring developer approval. The pipeline relies heavily on the Python package scikit-image and implements three object detection methods:
Laplacian of Gaussians (LoG)
Difference of Gaussians (DoG)
Determinant of the Hessian (DoH)
In this context, a “blob” is defined as a group of connected pixels sharing a common property, such as intensity. Blobs can appear either as bright regions on a dark background or vice versa. LoG and DoG are based on convolving the image with kernels at different spatial scales, while DoH exploits second derivatives of pixel intensities to locate local maxima and minima.
The Rome node, in collaboration with Unisalento, performed initial tests of BLOB_DET (Strafella, Testa, Nucita, et al., in preparation) to identify low surface brightness objects in EUCLID VIS and NIR images. Tests were carried out on both simulated and real mission images. Real images were pre-processed using a background subtraction and uniformization procedure developed within the SWG-LU working group (Dimauro et al., in preparation) to maximize detection of LSB sources and minimize false positives due to suboptimal standard pipeline reduction. Work is ongoing to integrate photometry and surface brightness measurements of candidates into the Python-based software.
c) Convolutional Neural Networks for LSB Detection
The team also explored the use of convolutional neural networks (CNNs) for detecting LSB objects in VIS images. Extensive testing on simulated datasets (produced with LSBsim) demonstrated the CNN’s ability to recognize faint galaxies with high precision, outperforming traditional detection methods. The model achieved an 84.5% success rate for galaxies with integrated magnitudes between 22 and 24, with improved performance for brighter sources. Detection performance, however, declines significantly for magnitudes 24–26, where background noise dominates.
This work formed the basis of the Master’s thesis of Dr. G. Donatiello, defended in 2025 at the University of Salento.
Publications Supported by the Project
Euclid Collaboration; Urbano et al., 2025, A&A, in press
Franco A. et al., 2023, New Astronomy, 103, 10204
Franco A. et al., 2024, New Astronomy, 108, 102174
Franco et al., 2025, ApJS, 279, 20
Franco et al., 2025, ApJS, 279, 33