ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

今早 23.3 度就喊冷?我翻了 79 年气温记录,香港的秋天平均迟到两周

今早 23.3 度就喊冷?我翻了 79 年气温记录,香港的秋天平均迟到两周 目录一、数据源一条 URL 一年80 次请求拉完 79 年二、把 23.3 度放回 79 年的 10 月三、秋天在迟到每年第一天的「清凉日」漂移了两周四、底色在变热2.5 度与 42 天到 5 天五、给你的三个带走结论六、30 秒带走版今早的新闻说天文台录得最低气温 23.3 度是今年入秋以来最低同一波冷空气南下广州已经跌破 20 度。朋友圈里开始有人翻长袖。我的第一反应不是翻衣柜是翻数据——「入秋最低」这四个字放在香港的 10 月里到底算多冷天文台的开放数据接口里有答案HKO 站 1947 年至今的每日最低气温79 年、29,098 天、零缺失一次脚本全部拉完。结论先说今天这个 23.3 度在 79 年的 10 月里比 55% 的日子还要暖至于大家心心念念的「秋天」它不但没提前来还平均迟到了约两周。一、数据源一条 URL 一年80 次请求拉完 79 年接口是天文台开放数据 API 的气候族dataType分别有 CLMTEMP日均、CLMMAXT日最高、CLMMINT日最低参数带站号和年份JSON 返回fieldsdata两段。HKO 站香港天文台总部的序列从 1947 年起连续可用我逐年抓了 1947-2026 共 80 个年份文件每个一个请求间隔 0.25 秒全程不到一分钟。先做完整性检查两个结果值得记下来importjson,datetime,statistics rowsjson.load(open(原始返回/tmin_1947_2026.json))recs[]fory,datainrows.items():forrindata:try:vfloat(r[3])except(ValueError,TypeError):vNonerecs.append((int(r[0]),int(r[1]),int(r[2]),v))assertlen(recs)29098# 79 个整年 2026 到 8/31assertsum(1forrinrecsifr[3]isNone)0# 零缺失assertmax((m,d)fory,m,d,_inrecsify2026)(8,31)# 跨年日序号统一用闰年锚2001-01-01 为第 1 天避免 2 月偏移defdoy(y,m,d):returndatetime.date(2001,m,d).timetuple().tm_yday firsts{}foryinrange(1947,2026):foryy,m,d,vinrecs:ifyyyandm9andv20:firsts[y](m,d)breakassertlen(firsts)79dv[doy(y,*firsts[y])foryinfirsts]assertround(statistics.median(dv))301# 中位 10-28print(中位首破日:,(datetime.date(2001,1,1)datetime.timedelta(days300)).strftime(%m-%d))两个坑直接写在断言里。其一2026 年的表只到 8 月 31 日——这套接口按月更新滞后约两个月今早的 23.3 度不在这张表里那是实时读数本文所有 2026 年 10 月的对照只能来自新闻口径表内的历史统计到 2025 年为止。其二「某年第一天」的计算必须用固定锚点的日序号直接拿月日做字符串排序会把 10 月排在 11 月前面拿timetuple().tm_yday又会被闰年平移一天——79 年跨度里这种一天误差足以污染中位数。二、把 23.3 度放回 79 年的 10 月79 年的 10 月一共有 2,449 天日最低温直方图的主体横在 22 到 26 度之间。今天的 23.3 度落在第 44.6 个百分位上——79 年里 44.6% 的 10 月日子比今天更冷换句话说一个普通香港 10 月的夜晚比今天冷才是常态。20 度那条「清凉线」左边只住着 48 个年份的尾巴10 月真正跌破 20 度的年份占 79 年的六成但天数极少——后面会看到近三十年这个尾巴正在消失。历史极值是 1978 年 10 月的 13.5 度最近一次 10 月跌破 20 度是 2025 年18.2 度。这些都是异常值不是基线。基线是10 月的香港还在夏天里新闻说的「入秋」是日历意义上的不是体感意义上的。三、秋天在迟到每年第一天的「清凉日」漂移了两周更有意思的是时间轴。我给每年定义一个「清凉日」——入秋9 月之后第一个日最低温 ≤ 20 度的日子然后把 79 年画在一张图上本文第一张图。年代中位数的轨迹年代中位首破 20 度日期1940s3 年样本10-151950s10-191960s10-261970s10-271980s10-291990s10-272000s11-052010s11-012020s6 年11-01**从 1950 年代到 2010 年代香港的「清凉日」中位数从 10 月 19 日漂到了 11 月 1 日迟到约两周。**最早的纪录是 1997 年 9 月 21 日最晚是 1998 年 11 月 23 日一头一尾相差 63 天。个别极端年份比如 1997、2015 年的 10 月 11 日说明快秋天也会发生但中位数不撒谎近 25 年里你要等到 11 月才大概率摸到 20 度以下的夜晚。两个口径必须交代「秋天开始」没有官方定义20 度阈值是我自定义的体感口径与内地气象入秋标准的滑差另计换 18 度阈值结论方向不变、日期后移首破日是极值统计单年噪声大所以本文只引用年代中位不引用任何单年趋势。四、底色在变热2.5 度与 42 天到 5 天漂移的背后是基线本身在动。10 月日最低温的十年均值1940s 22.1 度 → 2020s 24.6 度抬升 2.5 度1965-1994 与 1995-2024 两个 30 年窗口对比是 23.08 → 24.11 度。更直观的是 10 月内跌破 20 度的累计天数1950 年代 42 天、1970 年代 32 天到 2000 年代只剩 5 天2010 年代 11 天、2020 年代6 年9 天——这个指标塌了近九成。就算某年冷空气够劲2022 年 10 月 18 日就破了 20 度也只是短促的一次过境不再是一段季节。成因本文不推断——城市化、气候变化、站点环境变迁都可能贡献官方未做归因我只呈现口径内的数字。但有一点可以说「香港秋天越来越短」不是体感错觉它在 79 年的官方记录里是可测量的。五、给你的三个带走结论**别被「入秋最低」骗了。**它是「今年 10 月以来的最低」不是「冷」。79 年里 44.6% 的 10 月夜晚比 23.3 度更冷——想要真正的凉看 20 度线别看新闻标题。**长袖不用急着翻出来。**按年代中位清凉日已经漂到 11 月 1 日前后按 2025 年的节奏10 月 22 日破线今年若接近中位还要等三周以上。**做时间序列先问三件事数据到哪天、阈值谁定的、极值还是基线。**今早这条新闻三条全占——数据滞后两个月、入秋无官方定义、拿极值当基线。不是新闻错了是它回答的问题和你想问的不是同一个。六、30 秒带走版HKO 开放数据 CLMMINT/CLMTEMP/CLMMAXT 三族站号 年份一请求一年HKO 站 1947 起连续、零缺失2026 年数据滞后到 8/31月更约两个月的时差实时读数不在这张表里中位首破 20 度日1950s 10-19 → 2010s/2020s 11-01秋天平均迟到约两周10 月均最低温 70 年抬升 2.5 度10 月破 20 度天数 421950s→ 52000s23.3 度在历史 10 月里比 55% 的日子暖。参考链接https://data.weather.gov.hk/weatherAPI/opendata/opendata.php?dataTypeCLMMINTstationHKOyear2025rformatjsonhttps://data.gov.hk/en-data/dataset/hk-hko-rss-daily-temperature-info-hko本文实验环境Python 3.13.12仅标准库数据源为香港天文台开放数据 APICLMMINTHKO 站1947-2026.08。20 度阈值为自定义体感口径「入秋」无官方定义成因不做归因不构成任何生活或出行判断。
返回列表