diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0fc7d92..5295fcc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: inputs: tag: - description: 'Tag version to release (e.g., 1.0.2)' + description: 'Tag version to release (e.g., 1.0.3)' required: true type: string @@ -78,7 +78,7 @@ jobs: - Para outros sistemas operacionais, consulte [BUILD.md](https://github.com/${{ github.repository }}/blob/main/BUILD.md) --- - **Full Changelog**: https://github.com/${{ github.repository }}/compare/v1.0.1...v${{ steps.get_version.outputs.VERSION }} + **Full Changelog**: https://github.com/${{ github.repository }}/compare/v1.0.2...v${{ steps.get_version.outputs.VERSION }} draft: false prerelease: false generateReleaseNotes: false diff --git a/README.md b/README.md index c14ff08..79f5067 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Acesse o site:** [https://geovannisz.github.io/LayoutGeneratorBINGO/](https://geovannisz.github.io/LayoutGeneratorBINGO/) -**Versão:** 1.0.2 | **Autor:** Geovanni Fernandes Garcia | **Licença:** MIT +**Versão:** 1.0.3 | **Autor:** Geovanni Fernandes Garcia | **Licença:** MIT --- @@ -135,10 +135,15 @@ A seção final permite exportar os dados configurados em formatos compatíveis * **Estrutura JavaScript Modular**: * `constants.js`: Constantes físicas, dimensões e configurações centralizadas. * `main.js`: Ponto de entrada e orquestração. + * `tabs.js`: Gerenciador de navegação por abas (TabManager). * `bingo_layouts.js`: Algoritmos de geração de layouts. * `generator.js`: UI e lógica do "Gerador de Layout". + * `stations.js`: Gerenciador de estações com 10 tipos de layout. * `map.js`: Funcionalidades do mapa interativo. - * `export.js`: Exportação de dados OSKAR. + * `export.js`: Exportação de dados OSKAR (WGS84, ECEF, ENU). + * `ini_generator.js`: Geradores de arquivos INI OSKAR (Interferometer, Imager, Beam Pattern). + * `sky_model.js`: Gerador de Sky Model OSKAR (12 colunas, 4 modos). + * `uv_coverage.js`: Visualização de cobertura UV com aceleração WebGPU. * `beam_pattern.js`: Simulação do padrão de feixe. * `beam_worker.js` (2D), `beam_worker_3d.js` (3D), `beam_gpu.js` (WebGPU), `heatmap_worker.js` (Mapa de Calor). * `psf_analyzer.js`: UI da Análise da PSF. @@ -150,7 +155,37 @@ A seção final permite exportar os dados configurados em formatos compatíveis * `csv_filter.py`: Filtro de dados CSV. * `telescope_gen.py`: Geração de configurações de telescópio (desenvolvimento). -## 🔧 Melhorias Recentes (v1.0.2) +## 🔧 Melhorias Recentes (v1.0.3) + +### 🆕 Novos Módulos + +* **Sistema de Abas (TabManager)**: Navegação por abas com botões `.tab-btn` e painéis `.tab-content`, evento `tabChanged` customizado. +* **Gerenciador de Estações (`stations.js`)**: 10 tipos de layout de estação (grid, circular, spiral, y_shape, cross, random, logarithmic, sunflower, dual_ring, elliptical) com geração em tempo real (debounce 150ms) ao alterar parâmetros. +* **Gerador INI OSKAR (`ini_generator.js`)**: Três geradores — `oskar_sim_interferometer` (73 parâmetros), `oskar_imager` (34 parâmetros), `oskar_sim_beam_pattern` (42 parâmetros) — alinhados com TutorialOSKAR.tex. Inputs de caminho de arquivo usam colagem via clipboard (fa-paste). +* **Gerador de Sky Model (`sky_model.js`)**: 4 modos (single, grid, random, power_law) com suporte completo a 12 colunas OSKAR (RA, Dec, I, Q, U, V, refFreq, spectralIndex, RM, major, minor, pa). Validação de fontes e tabela interativa com ordenação por coluna. +* **Cobertura UV (`uv_coverage.js`)**: Visualização de cobertura UV com aceleração WebGPU (≥10 estações), shader WGSL (workgroup_size 64), fallback CPU automático. Componente Bz incluído no cálculo de baselines 3D. + +### 📐 Exportação e Coordenadas + +* **Correção de ordem de coordenadas**: `layout_wgs84.txt` e `position.txt` agora usam lon,lat,alt conforme convenção OSKAR. +* **Seletor de formato de coordenadas**: Radio buttons para alternar entre WGS84 (padrão), ECEF e ENU na seção de exportação, com tooltips explicativos (ℹ️). +* **Consolidação WGS84**: Textarea standalone removida; dados WGS84 servidos exclusivamente via seletor de rádio. + +### 🗺️ Mapa e Interação + +* **Ctrl+scroll zoom**: Zoom no mapa desabilitado por scroll simples; mensagem overlay "Use Ctrl + scroll para dar zoom" exibida por 1.5s. +* **Toggle de distância no mapa**: Exibição de linhas de distância entre estações. +* **Leaflet atualizado**: CDN de 1.7.1 → 1.9.4. + +### 🔧 Correções e Melhorias + +* **Heatmap race condition**: Worker agora retorna `layoutHash` para validar resultados contra o layout atual, evitando resultados descartados incorretamente. +* **Heatmap tooltip**: Exibição de intensidade interpolada no tooltip do mapa de calor. +* **BUILD.md**: Seções adicionadas para Linux e macOS, detecção de LFS melhorada. +* **Python `telescope_gen.py`**: Caminhos hardcoded substituídos por `os.path.dirname` + `argparse` CLI. +* **Terminação de linha adaptativa**: `getOsLineEnding()` detecta Windows via `navigator.userAgentData.platform` com fallback para `navigator.platform`. + +### 🔧 Melhorias da v1.0.2 ### Organização do Código * Criado arquivo `js/constants.js` centralizando constantes físicas, CIDs IPFS e configurações compartilhadas diff --git a/TODO.md b/TODO.md index 24622ab..6f2ea9c 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,7 @@ Este documento rastreia as tarefas concluídas durante o desenvolvimento do site Gerador de Layouts de Antenas BINGO e lista possíveis melhorias e adições futuras. -**Versão Atual:** 1.0.2 | **Última Atualização:** Janeiro 2026 +**Versão Atual:** 1.0.3 | **Última Atualização:** Fevereiro 2026 ## 🚀 Fase 1: Fundação e Configuração Inicial @@ -227,6 +227,58 @@ Este documento rastreia as tarefas concluídas durante o desenvolvimento do site * [x] Executar code review e corrigir issues. * [x] Executar CodeQL scan (0 vulnerabilidades). +## 🚀 Fase 9: Módulos OSKAR, Estações, Sky Model e Cobertura UV (v1.0.3) + +* [x] **Sistema de Abas e Navegação:** + * [x] Implementar `TabManager` com botões `.tab-btn` e painéis `.tab-content`. + * [x] Disparar evento customizado `tabChanged` ao trocar de aba. + * [x] Adicionar acesso rápido às abas no `main.js`. +* [x] **Gerenciador de Estações (`stations.js`):** + * [x] Implementar 10 tipos de layout: grid, circular, spiral, y_shape, cross, random, logarithmic, sunflower (Fibonacci), dual_ring, elliptical. + * [x] Adicionar geração automática em tempo real com debounce (150ms) ao alterar parâmetros. + * [x] Manter botões "Gerar" e "Randomizar" para controle explícito. + * [x] Geração inicial no carregamento da página. + * [x] Implementar parâmetros de espaçamento exponencial por tipo de layout. +* [x] **Gerador INI OSKAR (`ini_generator.js`):** + * [x] Implementar `OskarIniGenerator` para `oskar_sim_interferometer` (73 parâmetros em 5 seções). + * [x] Implementar `OskarImagerGenerator` para `oskar_imager` (34 parâmetros). + * [x] Implementar `OskarBeamPatternGenerator` para `oskar_sim_beam_pattern` (42 parâmetros). + * [x] Alinhar todos os geradores com TutorialOSKAR.tex (tooltips, defaults, parâmetros faltantes). + * [x] Inputs de caminho de arquivo via clipboard paste (fa-paste) com fallback. + * [x] Utilitário `getOsLineEnding()` para detectar terminação de linha do SO. + * [x] Todos os geradores prepõem seção `[General] app=...`. +* [x] **Gerador de Sky Model (`sky_model.js`):** + * [x] Implementar 4 modos de geração: single, grid, random, power_law. + * [x] Suporte completo a 12 colunas OSKAR (RA, Dec, I, Q, U, V, refFreq, spix, RM, major, minor, pa). + * [x] Helper `_buildGaussianFields(prefix)` para evitar duplicação. + * [x] Validação de fontes: RA ∈ [0°, 360°), Dec ∈ [-90°, +90°], Flux ≥ 0. + * [x] Tabela interativa com coluna "Tipo" (ponto vs Gaussiana) e ordenação por coluna. + * [x] Exportação no formato OSKAR de 12 colunas. +* [x] **Cobertura UV (`uv_coverage.js`):** + * [x] Implementar visualização de cobertura UV com Plotly.js. + * [x] Aceleração WebGPU com shader WGSL (workgroup_size 64) para ≥10 estações. + * [x] Fallback automático para CPU (`_computeUVonCPU`). + * [x] Incluir componente Bz no cálculo de baselines 3D. +* [x] **Exportação e Coordenadas:** + * [x] Corrigir ordem de coordenadas: `layout_wgs84.txt` e `position.txt` para lon,lat,alt. + * [x] Implementar seletor de formato (WGS84/ECEF/ENU) com radio buttons e tooltips. + * [x] Remover textarea WGS84 standalone; consolidar no seletor de rádio. + * [x] ZIP export lê de `export-layout-wgs84-alt`. +* [x] **Mapa Interativo:** + * [x] Implementar Ctrl+scroll zoom com overlay de mensagem (1.5s). + * [x] Adicionar toggle de distância no mapa. + * [x] Atualizar Leaflet CDN de 1.7.1 → 1.9.4. +* [x] **Correções de Bugs:** + * [x] Corrigir race condition no heatmap (worker retorna `layoutHash` para validação). + * [x] Corrigir cache de heatmap para evitar dados obsoletos. + * [x] Adicionar tooltip de intensidade no mapa de calor. + * [x] Melhorar sincronização de workers. +* [x] **Infraestrutura:** + * [x] Atualizar BUILD.md com seções Linux e macOS. + * [x] Python `telescope_gen.py`: substituir caminhos hardcoded por `os.path.dirname` + `argparse`. + * [x] Adicionar campo de nome de arquivo de imagem customizável. + * [x] Habilitar carregamento local de dados. + --- ## 🔮 Futuras Melhorias e Adições @@ -250,8 +302,8 @@ Este documento rastreia as tarefas concluídas durante o desenvolvimento do site * [ ] **Mais Algoritmos de Layout**: * [ ] Implementar layouts otimizados para baixa redundância (algoritmo de minimização de sidelobes). * [ ] Layouts baseados em otimização por algoritmos genéticos. - * [ ] Layout Y-shaped (formato em Y) comum em radioastronomia. - * [ ] Layout logarítmico-espiral. + * [x] Layout Y-shaped (formato em Y) comum em radioastronomia. *(implementado em v1.0.3 no StationManager)* + * [x] Layout logarítmico-espiral. *(implementado em v1.0.3 no StationManager)* * [ ] **Editor de Layout Manual Avançado**: * [ ] Ferramentas de alinhamento (alinhar à grade, alinhar horizontalmente/verticalmente). * [ ] Ferramentas de distribuição (distribuir uniformemente). @@ -271,9 +323,9 @@ Este documento rastreia as tarefas concluídas durante o desenvolvimento do site * [ ] Identificação e listagem dos níveis dos lóbulos laterais mais altos. * [ ] Visualização 2D/3D da própria PSF como superfície. * [ ] Comparação lado-a-lado de PSFs de diferentes layouts. -* [ ] **Análise de Cobertura UV**: - * [ ] Plotar a cobertura no plano UV para o arranjo gerado. - * [ ] Simular cobertura UV ao longo de diferentes horas de observação (Earth rotation synthesis). +* [x] **Análise de Cobertura UV**: *(implementado em v1.0.3)* + * [x] Plotar a cobertura no plano UV para o arranjo gerado. + * [x] Simular cobertura UV ao longo de diferentes horas de observação (Earth rotation synthesis). * [ ] Calcular métricas de cobertura UV (filling factor, gaps). * [ ] **Simulação de Observação**: * [ ] Simular imagem de fonte pontual com o beam pattern atual. diff --git a/index.html b/index.html index fc1451b..be276ab 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ - + Gerador de Layouts de Antenas BINGO | Design e Simulação de Arranjos | Rádio Astronomia @@ -62,7 +62,7 @@ "operatingSystem": "Web-based", "url": "https://geovannisz.github.io/LayoutGeneratorBINGO/", "browserRequirements": "HTML5-compatible browser with JavaScript and Canvas support", - "softwareVersion": "1.0.2", + "softwareVersion": "1.0.3", "releaseNotes": "https://github.com/Geovannisz/LayoutGeneratorBINGO/releases", "screenshot": "https://geovannisz.github.io/LayoutGeneratorBINGO/BINGO-ABDUS.png", "featureList": [ @@ -690,7 +690,7 @@

Resolução Angular