Adiciona mosaico de múltiplos tiles, composição RGB e metadados de proveniência ao motor de cutout#68
Merged
Merged
Conversation
- Add _mosaic_extensions to reproject multi-tile FITS onto common grid - Add ORIGIN/SOFTNAME/SOFTVERS service provenance to FITS and PNG outputs - Read SOFTVERS from cutout.__version__ - Delegate RGB composition to color_composer.compose_rgb - Embed WCS keywords in PNG tEXt chunks for coordinate display - Compress PNG with compress_level=9 + optimize
- Usa fits_cut(memory_only=True) nos 3 caminhos (FITS, Color PNG, Mono PNG) em vez de escrever FITS temporários em disco e reler - _mosaic_extensions(path) → _mosaic_hdus(data_hdus): trabalha em memória e retorna PrimaryHDU; caller decide se escreve em disco - Extrai _extract_data_hdus e _add_provenance como helpers - Libera dados originais após reprojeção (hdu.data = None) para reduzir pico de memória durante np.stack no mosaico - Troca .astype(float) → .astype(np.float32) nas arrays acumuladas do RGB (float64 não era necessário e dobrava o uso de RAM) - Remove chamada a _ensure_unpacked no image_cutout — o astrocut já lê .fits.fz nativamente via .section, descomprimindo só a região do cutout - _ensure_unpacked mantido como legado com docstring explicativa - Remove imports mortos (shutil, uuid4) e _count_data_extensions
glaubervila
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Quando o
fits_cutdoastrocutproduz múltiplas extensões (cutout caindo em mais de um tile do survey), cada extensão é agora reprojetada para um grid comum centrado na coordenada solicitada viareproject_interpe combinada comnanmean, gerando um FITS de extensão única com o mosaico final. Isso vale para os três caminhos de saída (fits,pngcolorido epngmono).Para PNG colorido, foi criado um módulo dedicado de composição RGB (
color_composer.py) com duas estratégias:arcsinh_clip(compressão independente por banda via_arcsinh_stretch, alto contraste) elupton(implementação fiel do algoritmo de Lupton et al. 2004 comf(I)/I, preservando razões de fluxo entre bandas), ambas configuráveis por survey emCOLOR_PARAMS(atualmente com parâmetros parades_dr2). Ambos os formatos de saída agora embutem metadados de proveniência (ORIGIN,SOFTNAME,SOFTVERS,HISTORY).O teste existente foi ajustado com mock de
fits.openretornandoHDUListde extensão única para cobrir o caminho sem mosaico, ereproject==0.14.1entrou como dependência nova.Elimina arquivos FITS intermediários do pipeline de cutout. O engine agora processa inteiramente em memória usando
fits_cut(memory_only=True), e o astrocut lê.fits.fznativamente via.section(descomprime só a região do cutout, não o tile inteiro). A descompressão funpack em disco foi removida do fluxo principal mas código legado foi mantido emtasks.py. Otimizações adicionais de memória (liberação pós-reprojeção) aumentam o cutout RGB máximo com 8 tiles de 0.77° para 0.91° em 12 GB.