Baseline clásico de referencia: BM3D (C-optimizado) para el benchmark reproducible de denoising en imágenes astronómicas DC2/LSST.
- Aplica BM3D (paquete pip
bm3d, versión rápida C-optimizada) a parches o imágenes completas FITS del DC2. - Estima el sigma de ruido desde el plano de varianzas (en los coadds DC2 es el HDU 3), desde config explícito, o con MAD sobre el propio patch.
- Implementa la interfaz estándar
DenoiseMethody el protocolo CLI del orquestador (astro-denoise-bench), con salida JSON por stdout.
uv sync --all-extrasEsto crea .venv/ e instala el paquete en modo editable (src/astro_denoise_bm3d/),
registrando el entry point astro_denoise.methods/bm3d y las dependencias de
desarrollo (pytest, ruff, mypy).
from astro_denoise_bm3d import BM3DDenoiser, estimate_sigma_from_variance
denoiser = BM3DDenoiser(sigma=19.4) # sigma explícito, o
denoiser.set_sigma_from_variance(var_plane) # desde plano de varianzas
clean = denoiser.denoise(patch) # ndarray 2-D -> ndarray 2-DBM3DDenoiser normaliza cada patch con estadísticos robustos
(mediana / percentil 99.5) antes de aplicar BM3D y restaura la escala
original, de modo que funciona con el rango dinámico arbitrario de las
imágenes astronómicas.
python -m astro_denoise_bm3d \
--input input.fits \
--output output.fits \
--config config.jsonconfig.json (todas las claves opcionales):
{
"sigma": 19.4,
"stage": "all",
"variance_hdu": 3
}stdout devuelve una línea JSON con los metadatos mínimos del protocolo:
{"algorithm": "bm3d", "version": "0.1.0", "status": "ok"}- No usar la versión slow/pura-Python de BM3D: este baseline usa la rápida y
C-optimizada del paquete
bm3d. - El módulo se descubre automáticamente vía el entry point
astro_denoise.methodscuando se instala conpip install -e ..
El código de este repositorio es Apache-2.0. La dependencia bm3d (y su
dependencia bm4d, ambas de Tampere University) es free for non-commercial
use: quien instale este baseline queda sujeto a esa condición. Para un uso
comercial hay que pedir licencia a sus autores o reemplazar el método.
uv run pytestCubren la estimación de sigma (variance plane y MAD), la reducción efectiva de ruido del denoiser y el protocolo CLI end-to-end con FITS temporales.
uv run ruff format .
uv run ruff check .
uv run mypy src/Las cuatro comprobaciones (format, lint, mypy, pytest) corren en CI vía el
workflow reusable UniverLab/workflows.
astro-denoise-bm3d/
├── pyproject.toml
├── src/
│ └── astro_denoise_bm3d/
│ ├── __init__.py
│ ├── __main__.py # CLI entry point
│ ├── interface.py # DenoiseMethod ABC
│ └── bm3d_denoiser.py
├── tests/
└── README.md
Este submódulo forma parte de la plataforma astro-denoise; véase
CONTEXT_v2.md para arquitectura y motivación.