Back to Skills

accumulated-temperature

accumulated-temperature

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

SKILL.md

积温计算器(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 运行时:

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 关闭。

示例

# 默认:当年 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℃ 计算活动积温与有效积温,并对照中国热量带给出量级参考。