Papers › SCARLET: Source separation in multi-band images by Constrained Matrix Factorization
SCARLET: Source separation in multi-band images by Constrained Matrix Factorization
Peter Melchior, Fred Moolekamp, Maximilian Jerdee, Robert Armstrong, Ai-Lei Sun, James Bosch, Robert Lupton
The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.
We present the source separation framework SCARLET for multi-band images, which is based on a generalization of the Non-negative Matrix Factorization to alternative and several simultaneous constraints. Our approach describes the observed scene as a mixture of components with compact spatial support and uniform spectra over their support. We present the algorithm to perform the matrix factorization and introduce constraints that are useful for optical images of stars and distinct stellar populations in galaxies, in particular symmetry and monotonicity with respect to the source peak position. We also derive the treatment of correlated noise and convolutions with band-dependent point spread functions, rendering our approach applicable to coadded images observed under variable seeing conditions. SCARLET thus yields a PSF-matched photometry measurement with an optimally chosen weight function given by the mean morphology in all available bands. We demonstrate the performance of SCARLET for deblending crowded extragalactic scenes and on an AGN jet -- host galaxy separation problem in deep 5-band imaging from the Hyper Suprime-Cam Stategic Survey Program. Using simulations with prominent crowding we show that SCARLET yields superior results to the HSC-SDSS deblender for the recovery of total fluxes, colors, and morphologies. Due to its non-parametric nature, a conceptual limitation of SCARLET is its sensitivity to undetected sources or multiple stellar population within detected sources, but an iterative strategy that adds components at the location of significant residuals appears promising. The code is implemented in Python with C++ extensions and is available at https://github.com/fred3m/scarlet
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1802.10157")
Code
Syntology Ran 2 of 37 code samples harvested from 4 repositories linked to this paper; 35 have no recorded run. Of those that ran: 2 ran · our draft was wrong.
By repository: official repository: 18 samples from 2 repositories, 2 ran; community (archive-listed): 19 samples from 2 repositories, 0 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
37 samples harvested; 2 ran; 0 honoured the contract we drafted; 35 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 0 of the 37 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 4 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
5b1edbc5178af928 · report
c9ae8bfcd6a8134f · report
7685bd9e0b61668e · report
fa5a71fd35d529a5 · report
609f46126e6fdd0c · report
f64f9f315400a3ed · report
c762972251944add · report
e19d6606be65dbfc · report
e6dcb05d3d66201a · report
5129633075a467cf · report
ae372a6b1295d160 · report
0fc8fb03cebac2b4 · report
380a95e22f8af0a6 · report
5673a4ea33b2749f · report
0a1925f2ef97f7b1 · report
8c1f007c5ddb44ae · report
47543c70ea3e72ce · report
cb492b5b0a9c4153 · report
4a469f49e50f19d7 · report
c7b3bea951cfab74 · report
e6458fe124e7e5ee · report
01028fe9d12d2260 · report
5dfc438d66678b96 · report
03d84bdc8fd219c3 · report
7838796abb4c9a6a · report
0797f19575911143 · report
8f54c0b99cc9d4b9 · report
def0a10810077962 · report
b78c5b0837a51743 · report
03c08ce8d98ca390 · report
025cdf3ba20ed087 · report
399194c75ab1ab15 · report
e3f100ed55e5130f · report
af8381e2c1ce599f · report
22f8a375d9af043a · report
73eab8ee673489ad · report
c18eceb1e0fae726 · report
Results from the paper archive 2025-07-28
No leaderboard rows for this paper in the archive.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections