尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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.