---
name: accumulated-temperature
description: 积温（活动积温/有效积温）计算器。输入任意地名（中英文皆可），自动联网获取当地自年初至今的逐日平均气温，计算并输出当前累计积温，含 ≥0℃/≥5℃/≥10℃ 三档界限温度、达标天数、生长季起点及热量带量级参考。适用于农业种植规划、热量资源评估、物候与气候带查询。无需 API Key，仅用 Python 标准库。
agent_created: true
---

# 积温计算器（Accumulated Temperature / GDD Calculator）

## Overview

输入一个地名，即可知道当地**当前累计积温**是多少。积温（活动积温）是农业气候的核心指标，
用来衡量某地一年（或某时段）可供作物生长的热量总和，直接决定能种什么、几熟制、能否安全成熟。

本技能基于 Open-Meteo 免费接口（Geocoding + Archive 历史气候），**无需 API Key、无需注册**，
只用 Python 标准库。脚本会把地名解析为经纬度，拉取当地自年初（或自定义起止日期）至今的逐日平均气温，
按农业气象标准计算活动积温与有效积温。

## 概念速览

- **活动温度**：当日平均气温 ≥ 生物学下限温度 B 时，活动温度 = 日平均气温；否则为 0。
- **活动积温（≥B℃）**：时段内逐日「活动温度」之和（即所有日平均气温 ≥ B 的那些天的平均气温之和）。
- **有效温度**：日平均气温 ≥ B 时 = 日平均气温 − B；否则为 0。
- **有效积温（≥B℃）**：时段内逐日「有效温度」之和。
- 常用界限温度：**0℃**（多年生植物/无霜期）、**5℃**（喜凉作物）、**10℃**（喜温作物、热量带划分）。

## When to Use

- 用户问"XX 现在积温多少""某地 ≥10℃ 活动积温""这个地名热量够不够种玉米/水稻"
- 农业种植规划、熟制判断、热量资源评估、气候带/物候查询
- 任何需要把"地名 → 当前累计热量"落地为具体数值的场景

## How to Use

直接调用本技能自带脚本 `scripts/gdd.py`，优先使用托管 Python 运行时：

```bash
C:/Users/wenbo/.workbuddy/binaries/python/versions/3.13.12/python.exe \
  C:/Users/wenbo/.workbuddy/skills/accumulated-temperature/scripts/gdd.py "北京"
```

### 参数

- 位置参数（必填）：地名，中英文皆可，例如 `"北京"`、`"哈尔滨"`、`"Tokyo"`。模糊时可加省/国家，如 `"北京, 中国"`。
- `--base B`：只计算某一界限温度（如 `--base 10` 只看 ≥10℃）。不填则同时输出 0/5/10℃ 三档。
- `--from YYYY-MM-DD`：自定义起始日期（默认当地当年 1 月 1 日）。
- `--to YYYY-MM-DD`：自定义结束日期（默认当地今天）。
- `--lang L`：输出语言，`zh`（默认）或 `en`。
- `--card`：额外输出一张**大字体 HTML 卡片**（供对话内联展示，自动适配明/暗色），便于直接查看。可与去年对比叠加。
- `--last-year`：**默认已开启**（每次查询自动附带），无需显式传。在输出末尾（或卡片下方）附加两节对比：① **去年同期对比**（去年 1/1~同日，分别给出活动积温与有效积温的「今年 / 去年 / 差值」）；② **去年全年积温**（去年 1/1~12/31 完整年，含活动积温与有效积温、达标天数、起点）。便于判断今年热量进度偏早/偏晚。闰年 2/29 会自动回退到 2/28 对齐去年同周期。若某次不需要，可用 `--no-last-year` 关闭。

### 示例

```bash
# 默认：当年 1 月 1 日至今，输出 0/5/10℃ 三档
python scripts/gdd.py "北京"

# 只看喜温作物关键的 ≥10℃ 活动积温
python scripts/gdd.py "哈尔滨" --base 10

# 自定义统计时段（如玉米生长季）
python scripts/gdd.py "郑州" --from 2026-04-10 --to 2026-08-14

# 英文输出
python scripts/gdd.py "Tokyo" --lang en

# 大字体卡片 + 去年对比（对话内展示用）
python scripts/gdd.py "吉林市" --last-year --card

# 去年同期与去年全年积温（纯文本）
python scripts/gdd.py "海口" --last-year
```

### 输出内容

脚本打印结构化文本，包含：

- 地点（含省/州、国家）与当地时区
- 统计时段、纳入天数（若当天历史数据未定稿，会用当日最高/最低温估算并标注）
- 【当前积温】表格：每档界限温度的 `活动积温 / 有效积温 / 达标天数 / 生长季起点`
- 【热量带参考】：中国全年 ≥10℃ 活动积温热量带量级，以及当前累计值相对"暖温带下限"的进度

### 处理要点

- **地名解析增强**（已内置，无需手动处理）：
  - 别名表：Open-Meteo 对部分中文地名仅以拼音/英文建索引（中文查询会误中小镇或缺失），脚本内置别名将 `海口→Haikou`、`海拉尔→Hailar`、`扶余/扶余县/扶余市→扶余市(吉林)坐标`、`三井子镇→扶余市坐标代理` 等纠正。新增常用地名只需在 `gdd.py` 的 `_ALIASES` 追加。
  - 候选打分：取前 10 个候选，按「行政区级别 + 人口 + 名称精确匹配」优选，优先市/区/县级，避免误中"XX电厂青年点"等小地点。
  - 歧义提示：当存在势均力敌候选或优选为街区/点时，脚本在 stderr 打印候选清单，便于确认。
  - 缺失建议：完全无结果时抛出含「英文名 / 加省份 / 县市级代理」的提示。
- 乡镇级通常无独立气象站点，脚本会以所属县/市坐标代理并在输出注明（如三井子镇按扶余市）。
- 网络失败返回非零退出码并打印错误，可说明后重试。
- 积温为"年初至今"的累计值，属年内部分量；热量带参考给出的是全年总量量级，用于判断最终归属。
- 如需在回答中呈现，直接转述脚本输出即可，无需重新解读数值。

## Resources

### scripts/gdd.py

核心计算脚本。流程：Open-Meteo Geocoding 解析地名 → 用 forecast 接口取当地时区"今天"
→ Archive 接口拉取逐日平均气温（start→end）→ 当天未定稿则用当日最高/最低温估算补齐 →
按 0/5/10℃ 计算活动积温与有效积温，并对照中国热量带给出量级参考。
