Hong Kong Weather Information

Polar Sponsor
爱发电 赞助
.NET 9.0

香港天气信息 — 提供香港天文台的当前天气状况和预报,适用于用户询问香港天气、温度、降雨等情况。

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 — English
  • sc — 简体中文(简体中文)

存储为 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):

  1. 在 temperature 数组中查找 place 字段与目标区域**不区分大小写的部分匹配**的条目
  2. 在 rainfall 数组中执行相同匹配
  3. 仅展示匹配到的区域数据

若未找到匹配项,或 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         # 仅天气预报

常见陷阱

  1. 默认语言为繁体中文(TC) — 脚本默认使用 --lang tc。所有输出(包括标签)均应为繁体中文,除非用户明确指定 --lang en 或 --lang sc。HKO API 在 lang=tc 时返回中文文本字段,因此输出标签也须统一使用中文以确保一致性。
  2. 无需 API 密钥 — HKO OpenData 完全免费开放
  3. 请求频率限制 — 请合理轮询,并对结果缓存 10–15 分钟
  4. 区域名称匹配 — 使用不区分大小写的部分匹配。部分气象站名称与行政区划名称存在差异
  5. 紫外线指数(UV index) — 夜间或阴天可能为空值
  6. 预警信息(warning message) — 若无生效预警,该字段可能为空字符串
  7. 预报语言 — lang 参数影响所有文本字段
  8. 降雨量条目可能缺失 value 键 — 访问前务必检查 "value" in matched。不同站点对空/缺失降雨数据的表示方式不一致。
  9. forecastPeriod 是字符串而非数组 — flw API 返回的 forecastPeriod 是一个字符串(风向缩写),不是 预报时段对象数组。请始终使用 forecastDesc 获取人类可读的预报正文。
  10. 1 分钟 CSV 含 UTF-8 BOM — HKO CSV 文件以 ufeff 开头。解析前必须去除,否则首列键名将损坏。CSV 同时使用语言特定的中文列名(如 自動氣象站、氣溫(攝氏)),而非通用的 地區/溫度 等名称。
  11. 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),默认语言为繁体中文。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习