factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
2024~현재 NOAA 실제 해양 데이터로 2026 엘니뇨가 태평양에 형성되고 워커 순환 변화와 가뭄·홍수를 보여줍니다
Real NOAA ocean data from 2024 to today. See the 2026 El Niño build up across the Pacific, how the Walker circulation shifts, and the droughts and floods it brings.
데이터TypeScript · JavaScriptGitHub @kmd-labs온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Interactive 3D WebGL globe visualizing the El Niño–Southern Oscillation (ENSO), Walker atmospheric circulation, and historical climate impacts.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗An interactive 3D WebGL climatological simulation visualizing the El Niño–Southern Oscillation (ENSO) cycle and Super El Niño extremes. Built with Angular 21, Three.js, and modern SCSS design tokens.
🔗 Explore Live Demo: https://kmd-labs.github.io/el-nino/
Interactive 3D WebGL Globe:
world-atlas GeoJSON) with offline local asset fallback.Walker Circulation & Thermocline (merged view):
Live data & splash experience:
Historical Impacts Database:
Simulation & Time Controls:
The codebase follows modern Angular standalone component architecture with reactive state management powered by Angular Signals:
src/
├── _variables.scss # Reusable SCSS design system tokens (colors, radii, mixins, glass panels)
├── styles.scss # Global resets and typography
├── index.html # HTML entry point configured for GitHub Pages
├── main.ts # Application bootstrap
├── app/
│ ├── app.component.ts|html|scss# Root application shell
│ ├── core/
│ │ ├── constants/
│ │ │ └── enso-data.ts # Scientific data constants, color LUTs, and historical event records
│ │ ├── models/
│ │ │ └── enso.model.ts # TypeScript interfaces and domain types
│ │ └── services/
│ │ ├── enso-math.service.ts # Pure math model (climatology, anomalies, thermocline, 3D math)
│ │ └── enso-state.service.ts# Centralized reactive state using Angular Signals
│ └── components/
│ ├── globe/ # Three.js 3D viewport, particles, labels, and raycasting
│ ├── header/ # Brand logotype, language selector and view switcher
│ ├── map-dock/ # Floating glassmorphic control dock, date pill and legends
│ ├── walker-view/ # Walker circulation + thermocline cross-section
│ ├── splash/ # Host timing for the shared design-system loader
│ ├── impact-modal/ # Event detail dialog with external research links
│ └── glossary/ # Searchable glossary popup
└── assets/
└── data/
├── land-50m.json # Bundled Natural Earth land topology
├── timeline-meta.json # Weekly keyframes, live Open-Meteo snapshot
└── timeline-sst.bin.gz # Packed 0.5° weekly SST frames
All UI styling is strictly tokenized in src/_variables.scss:
$colors, $breakpoints, $transitions, $radii, $font-weights, $font-sizes.color($key), radius($key), font-size($key), font-weight($key), transition($key).@mixin glass-panel($heavy): Glassmorphic panel styling with backdrop-filter: blur(...) and glowing border highlights.@mixin respond-to($breakpoint): Mobile-first responsive layout breakpoints.@mixin custom-scrollbar: Sleek, unobtrusive dark-theme scrollbars.Sea Surface Temperature (SST) Climatology: $$T_{\text{clim}}(\lambda, \phi) = -1.8 + 30.5 \cos^{2.2}(\phi) + \sum_{k} A_k \exp\left(-\frac{\Delta\lambda_k^2}{w_k^2}\right) \exp\left(-\frac{\phi^2}{\sigma_k^2}\right)$$ Models the Pacific warm pool, equatorial cold tongue, Humboldt Current, and global oceanic features.
ENSO Anomaly Formulation: $$A(\lambda, \phi, s) = \begin{cases} s \cdot \text{basis}_P + \max(0, s - 1.4) \cdot \text{basis}_C & \text{if } s \ge 0 \ -s \cdot \text{basis}_N & \text{if } s < 0 \end{cases}$$ Incorporates the non-linear coastal Peruvian warming characteristic of historic Super El Niño events (1982–83, 1997–98, 2015–16).
Thermocline Profile: Calculates the 20 °C isotherm depth across $120^\circ\text{E} \to 80^\circ\text{W}$ coupled to trade wind strength variations: $$z(\lambda, s) = -1.75 + 0.85 \cdot \text{trade}(s) \cdot u(\lambda)$$
# Clone the repository
git clone https://github.com/kmd-labs/el-nino.git
cd el-nino
# Install dependencies
npm install
# Start local development server (runs on http://localhost:4200/)
npm start
# Production build
npm run build
# Production build with GitHub Pages base-href
npm run build:gh-pages
Deployments to GitHub Pages are automated via .github/workflows/deploy.yml:
main, scheduled every 3 hours, repository dispatch or manual workflow_dispatch.ubuntu-latest, refreshes the live Open-Meteo snapshot and NOAA OISST frames, compiles the application with npm run build:gh-pages (--base-href /el-nino/), and uploads static assets via actions/upload-pages-artifact@v3.actions/deploy-pages@v4.dist/) is gitignored, and build artifacts reside strictly in ephemeral runner environments..github/workflows/update-weather.yml runs daily at 05:17 UTC. It extends the weekly NOAA OISST backfill, refreshes the Open-Meteo air-temperature/wind/wave snapshot in src/assets/data/, commits the updated data to main, and dispatches the Pages deployment. The NOAA NetCDF downloads are cached between runs.