香港天气信息 — 提供香港天文台的当前天气状况和预报,适用于用户询问香港天气、温度、降雨等情况。
HK气象信息 : 概览 : 香港气象技能 使用 HKO( 香港天文台) OpenData API. 提供当前天气报告和当地天气预报
功能概述
HK气象信息 : 概览 : 香港气象技能 使用 HKO( 香港天文台) OpenData API. 提供当前天气报告和当地天气预报是一项面向实际任务的技能,主要用于支持区域过滤和粘合。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
香港天气信息
概述
基于香港天文台(HKO)OpenData API 的香港天气技能。提供当前天气实况和本地天气预报。支持按区域筛选及多语言输出(英文、繁体中文、简体中文)。
数据来源
HKO OpenData API — 免费开放,无需 API 密钥。
- 当前天气:
https://data.weather.gov.hk/weatherAPI/opendata/weather.php?dataType=rhrread&lang= - 天气预报:
https://data.weather.gov.hk/weatherAPI/opendata/weather.php?dataType=flw&lang=
变量
| 变量 | 说明 | 取值 |
|---|---|---|
HK_WEATHER_INFO_REGION |
目标区域/分区。若为 None,则返回全港整体天气信息。 | 例如:"Tsuen Wan"、"Central"、None |
HK_WEATHER_INFO_LANG |
语言偏好 | tc(繁体中文,默认)、en(英文)、sc(简体中文) |
步骤 1:获取用户输入
(a) 目标区域
向用户询问目标区域/分区。若用户拒绝提供,或表示“整体/全港”,则设 HK_WEATHER_INFO_REGION = None。
(b) 语言偏好
默认使用 tc(繁体中文),除非用户另行指定。支持以下选项:
tc— 繁体中文(繁體中文)— 默认en— Englishsc— 简体中文(简体中文)
存储为 HK_WEATHER_INFO_LANG。若未设置,默认为 tc。
步骤 2:工作流程
(a) 当前天气实况
调用:
GET https://data.weather.gov.hk/weatherAPI/opendata/weather.php?dataType=rhrread&lang=
API 返回 JSON,包含以下字段:
temperature— 数组,元素为{place, value, unit}humidity—{value, unit}rainfall— 数组,元素为{place, value, unit}icon— 天气图标代码uvindex— 紫外线指数(如可用)updateTime— 时间戳warningMessage— 当前生效的预警信息(字符串)rainstormReminder— 暴雨提醒(字符串)
区域筛选逻辑: 若设置了 HK_WEATHER_INFO_REGION(非 None):
- 在
temperature数组中查找place字段与目标区域**不区分大小写的部分匹配**的条目 - 在
rainfall数组中执行相同匹配 - 仅展示匹配到的区域数据
若未找到匹配项,或 HK_WEATHER_INFO_REGION 为 None:
- 展示全港整体天气(即所有气温观测站、所有降雨量观测站的数据)
(b) 本地天气预报
调用:
GET https://data.weather.gov.hk/weatherAPI/opendata/weather.php?dataType=flw&lang=
API 返回 JSON,包含以下字段:
generalSituation— 天气总体概况forecastDesc— 预报描述(面向用户的可读文本)outlook— 展望forecastPeriod— 字符串(风向缩写字母,不是数组)。请使用forecastDesc获取人类可读的预报正文。updateTime— 时间戳
区域筛选逻辑: 若设置了 HK_WEATHER_INFO_REGION:
- 预报本身为全港范围;呈现时需注明该区域上下文。
默认展示今日与明日预报。
步骤 3:1 分钟平均气温(CSV)
完成步骤 1 和步骤 2 后,从 HKO 提供的 CSV 文件中获取最新 1 分钟平均气温。
参考文档:
references/1min-temp-csv.md— 包含实际列名、别名映射、常见注意事项等详细说明。
(a) 确定 CSV URL
依据 HK_WEATHER_INFO_LANG 值确定:
| 语言 | CSV URL |
|---|---|
en |
https://data.weather.gov.hk/weatherAPI/hko_data/regional-weather/latest_1min_temperature.csv |
tc |
https://data.weather.gov.hk/weatherAPI/hko_data/regional-weather/latest_1min_temperature_uc.csv |
sc |
https://data.weather.gov.hk/weatherAPI/hko_data/regional-weather/latest_1min_temperature_sc.csv |
| 其他任意值 | 不获取 CSV |
(b) 带重试机制下载
- 通过
curl(或urllib)尝试下载 CSV。 - 若下载失败(网络错误、超时、空响应),最多重试 2 次。
- 若所有重试均失败,则跳过 1 分钟气温数据 — 不应阻塞其余天气信息的输出。
(c) 提取气温值
CSV 列名因语言而异。实际观察到的列名如下:
| 语言 | 地点列 | 气温列 |
|---|---|---|
tc |
自動氣象站 |
氣溫(攝氏) |
en |
Automatic Weather Station |
Air Temperature(degree Celsius) |
sc |
(类似中文名称) | (类似中文名称) |
CSV 文件以 UTF-8 BOM(ufeff)开头 — 解析前必须去除,否则首列键名将损坏。
CSV 包含约 39 个自动气象站,其站名具有特定性(例如:荃灣可觀、赤鱲角、京士柏),并非通用分区名称。进行区域匹配时:
- 若设置了
HK_WEATHER_INFO_REGION:优先尝试直接的部分匹配;若失败,则尝试英文→中文别名映射(例如 “Tsuen Wan” →荃灣,“Central” →中環)。采用首个匹配站点的气温值。 - 若未设置
HK_WEATHER_INFO_REGION或无匹配项:计算所有站点气温值的算术平均值,作为全港整体的 1 分钟平均气温。
(d) 追加至输出结果
若成功获取 1 分钟平均气温,则将其追加至最终回复末尾:
繁体中文(TC)输出:
🕒 1分鐘平均氣溫:XX°C([地區名稱 / 全港平均])
英文(EN)输出:
🕒 1-Min Avg Temp: XX°C ([Region Name / HK Average])
简体中文(SC)输出:
🕒 1分钟平均气温:XX°C([地区名称 / 全港平均])
输出格式
当 lang=tc(默认)时,HKO API 所有文本字段均返回繁体中文。为保持一致性,请使用中文标签:
当前天气(TC)
🇭🇰 香港天氣 [地區] 🌡️ 氣溫:XX°C(測站名稱) 💧 濕度:XX% 🌧️ 雨量:XXmm(測站名稱) ☀️ 紫外線指數:XX(如有) ⚠️ 生效警告:[警告內容 / 無] 🕐 更新時間:
天气预报(TC)
📅 天氣預測 📋 概況:📅 今日: | 溫度: °C | 濕度: % 📅 明日: | 溫度: °C | 濕度: % 🔮 展望: 🕐 更新時間:
当 lang=en 时,使用英文标签:
🌤️ Hong Kong Weather [Region if set] Temperature: XX°C (Station Name) Humidity: XX% ... Forecast:
时区与日期处理
务必首先检查系统时间。 运行 date '+%Y-%m-%d %H:%M:%S %Z' 并转换为香港标准时间(HKT,UTC+8)后再响应。切勿依赖对话上下文或系统提示中的时间戳推断日期 — 对话可能跨越多日。
无需 API 密钥。HKO OpenData 完全免费开放。
依赖项
- 仅需 Python 3.10+ 标准库(
urllib、json、datetime)
脚本
scripts/hk_weather.py — 命令行客户端,内置 10 分钟文件缓存。默认语言为 tc(繁体中文)。
python3 scripts/hk_weather.py # 全港整体天气,繁体中文(默认) python3 scripts/hk_weather.py --region "Tsuen Wan" # 指定区域,繁体中文 python3 scripts/hk_weather.py --lang en # 英文输出 python3 scripts/hk_weather.py --action current # 仅当前天气 python3 scripts/hk_weather.py --action forecast # 仅天气预报
常见陷阱
- 默认语言为繁体中文(TC) — 脚本默认使用
--lang tc。所有输出(包括标签)均应为繁体中文,除非用户明确指定--lang en或--lang sc。HKO API 在lang=tc时返回中文文本字段,因此输出标签也须统一使用中文以确保一致性。 - 无需 API 密钥 — HKO OpenData 完全免费开放
- 请求频率限制 — 请合理轮询,并对结果缓存 10–15 分钟
- 区域名称匹配 — 使用不区分大小写的部分匹配。部分气象站名称与行政区划名称存在差异
- 紫外线指数(UV index) — 夜间或阴天可能为空值
- 预警信息(warning message) — 若无生效预警,该字段可能为空字符串
- 预报语言 —
lang参数影响所有文本字段 - 降雨量条目可能缺失
value键 — 访问前务必检查"value" in matched。不同站点对空/缺失降雨数据的表示方式不一致。 forecastPeriod是字符串而非数组 —flwAPI 返回的forecastPeriod是一个字符串(风向缩写),不是 预报时段对象数组。请始终使用forecastDesc获取人类可读的预报正文。- 1 分钟 CSV 含 UTF-8 BOM — HKO CSV 文件以
ufeff开头。解析前必须去除,否则首列键名将损坏。CSV 同时使用语言特定的中文列名(如自動氣象站、氣溫(攝氏)),而非通用的地區/溫度等名称。 - CSV 区域匹配需依赖别名映射 — CSV 中的站点名称是具体自动气象站名称(如
荃灣可觀、赤鱲角),并非行政区划名称。“Tsuen Wan” 等英文区域名无法直接匹配中文站名 — 必须使用别名映射(如 “Tsuen Wan” →荃灣)。
验证清单
- 已使用 HKO OpenData API(无需 API 密钥)
- 已实现区域筛选功能
- 已支持语言偏好(en/tc/sc)
- 已同时获取当前天气与天气预报
- 已明确定义输出格式
- 无外部依赖(仅使用 Python 标准库)
更新日志
v1.1.0 — 修复 Bug 并新增 1 分钟平均气温 CSV 支持
- 修复
warningMessage格式化问题:HKO API 可能返回警告字符串列表,而非单个字符串。现改为遍历并逐行打印每条预警。 - 修正 SKILL.md 中
forecastPeriod描述:其为字符串(风向),非数组。已移除矛盾描述。 - 新增步骤 3:从 HKO regional-weather CSV 获取最新 1 分钟平均气温。
- 支持全部三种语言(en/tc/sc),各语言对应独立 CSV URL。
- 下载失败时最多重试 2 次。
- 区域匹配逻辑:提取所请求区域的气温值;若未匹配则计算全港平均值。
- 将 1 分钟气温信息追加至天气回复末尾。
- 修复
match_region函数,使其支持当前天气区域筛选中的英文→中文别名映射。 - 修复湿度单位显示问题:HKO API 返回
"percent"字符串,而非"%"符号。
v1.0.0 — 初始发布
- 集成 HKO OpenData API(rhrread + flw)、区域筛选、多语言支持(en/tc/sc),默认语言为繁体中文。
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章