# Atmosphere

基于过去十年逐日天气数据的气候宜居分析仪，面向城市比较、旅居判断和旅行窗口推演。

## Metadata

- HTML: https://glenzli.com/projects/atmosphere/
- Markdown: https://glenzli.com/projects/atmosphere.md
- Collection: Projects
- Language: zh-CN
- Published: 2026-06-30
- Status: active
- Tags: climate, travel, open-meteo

## Content

Atmosphere 是一个面向城市选择、旅居判断和旅行准备的气候宜居分析仪。它不是传统天气 App，也不只展示月均温这类粗粒度指标，而是把过去十年的逐日历史气象、湿球体感、PM2.5、降水、风速、极端事件和真实季节转换放在一起，回答一个更实际的问题：这个城市在一年中的哪些时间真正舒服，哪些时间只是平均值看起来不错。

新版界面支持全球城市搜索、逐年气候细察、近十年趋势、最多 8 个城市横向对比和未来旅行窗口推演。界面支持中文和英文，可以通过顶部语言按钮切换，也可以使用 `?lang=zh` 或 `?lang=en` 指定初始语言。

## 项目入口

  ![Atmosphere 项目 banner](/images/projects/atmosphere-cover.webp)

## 分析工作流

### 逐年气象细察

  ![Atmosphere 逐年气象细察界面](/apps/atmosphere/app/readme/yearly-detail.png)
  按年份查看城市真实气候曲线：干球气温、湿球体感、相对湿度、降水、PM2.5、灾害散点和宜居条带放在同一张图里。四季不是按自然月份切分，而是根据气温滑动趋势推演。

### 十年宏观趋势

  ![Atmosphere 十年趋势分析界面](/apps/atmosphere/app/readme/ten-year-trend.png)
  用近十年数据观察四季长度、宜居天数、恶劣天数、高温预警和寒冷预警的变化，帮助判断一个城市的长期气候稳定性和极端化趋势。

### 跨城市对比

  ![Atmosphere 跨城市对比界面](/apps/atmosphere/app/readme/city-compare.png)
  最多加入 8 个城市，从综合宜居天数、四季结构、极端气温、回南天、汛期、连续干湿期和雾霾风险等维度横向比较。

### 旅行气候预测

  ![Atmosphere 旅行气候预测界面](/apps/atmosphere/app/readme/travel-predictor.png)
  选择未来出行日期后，系统会基于历史同日期窗口、年份新近权重和 ENSO 状态，推演体感温度、降水概率、极端灾害、空气质量和行前装备建议。

## 数据与模型

- 历史天气、空气质量和城市地理编码由浏览器直接请求 Open-Meteo。
- 历史 ENSO 年份标签基于内置 NOAA/PSL Oceanic Nino Index 年度摘要。
- 天气数据缓存在浏览器 IndexedDB，最近搜索和缓存城市列表保存在 localStorage。
- 宜居模型会把高温、严寒、昼夜温差、湿热、湿冷、干燥、暴雨、大风和 PM2.5 统一折算为宜居等级。
- 体质偏好支持怕热、怕冷和高敏三类，对热应激、冷应激、污染和湿度不适进行加权。

## 说明

Atmosphere 更适合作为决策辅助工具，而不是实时天气预报。静态部署下，只有当前 ENSO 自动识别会因为本地辅助接口不可用而降级，其余核心分析能力仍然保留；需要时可以在旅行预测页手动选择 El Nino、La Nina 或 Neutral。
