指南针没有指错,紫禁城指错了:一条偏了 2°13′ 的中轴线,和一千年里跑掉的北

先看一个数字。

2°13′。

2004 年,中国测绘科学研究院的夔中羽研究员从《北京航空影像图》和卫星影像上发现,北京中轴线"脑袋有点儿向左歪"。他挑了中轴线上的永定门、地安门、钟楼三个点量算,得出中轴线与子午线的夹角是 2°13′。为了验证,2004 年 11 月他在永定门城楼下向北的甬路中央立了根 2 米高的竿子,沿甬路中心线贴了 6 米黑胶带代表中轴线——太阳过中天时,竿影与胶带的夹角,也是 2°13′。

从永定门到钟楼,这 2°13′ 累积成大约 269 米的横向偏差(实测报道普遍引用的数字是"约 300 米",那是按整条 7.8 公里中轴线算的,我按 6957 米的永定门—钟楼段重算是 269 米)。

我一直以为这是个施工误差,或者某种"皇权忌讳正位"的风水玄学。直到我把地磁模型算了一遍,才发现问题问错了:

不是中轴线指错了。是"北"这个字本身在跑,而中轴线忠实地记录了它跑过的地方。

指南针与地球磁场的示意


# 一、"北"有两个,而它们在分家

日常说的"北",指的是真北——地球自转轴在地面上的投影,也就是地理北极。它由地球的自转决定,抛开人类活动,几万年尺度上基本不动。

但指南针指向的是磁北。地球内部的液态外核在流动,导电流体在里面形成巨大的电流,产生一个自己的磁场;这个磁场和自转轴歪着 9.21°,而且在缓慢地、方向不规则地漂移。

两者的夹角叫磁偏角(declination,也叫磁差)。约定上,磁北在真北以东为正(E),以西为负(W)。北京今天偏 −7.50°,也就是磁北在西边 7.5 度。

这就是"指南针没有指错"的意思:它指得非常准,只是指的不是真北。

宋代的司南:磁石磨成的针,靠浮力定向

磁偏角不是一个常数,这是全文的关键。 它不但随地点变化(同一个国家内能差十几度),还随时间变化——因为磁极在动。

# 沈括:世界最早的一次记录

北宋沈括在《梦溪笔谈》卷二十四《杂志一》里写:

方家以磁石磨针锋,则能指南,然常微偏东,不全南也。水浮多荡摇。指爪及碗唇上皆可为之,运转尤速,但坚滑易坠,不若缕悬为最善。其法取新纩中独茧缕,以芥子许蜡,缀于针腰,无风处悬之,则针常指南。其中有磨而指北者。予家指南、北者皆有之。磁石之指南,犹柏之指西,莫可原其理。

这一段信息密度极高:

  • "常微偏东,不全南也" —— 这是人类第一次明确记录磁偏角。他发现磁针并不精确指向正南。
  • 他试了四种安置方法:水浮、指甲、碗唇、缕悬(用蚕丝把针吊起来),最后认为缕悬最好,因为摩擦最小。这个判断是对的——今天所有精密罗盘都是悬挂式的。
  • "其中有磨而指北者" —— 他注意到有些磁针被磨过后会反过来指北。这是反极性现象,和今天解释磁极倒转的机制直接相关。
  • "磁石之指南,犹柏之指西,莫可原其理" —— 他诚实地承认不知道原理。

1088 年。哥伦布在海上第一次系统测量磁偏角是 1492 年。沈括早 404 年。

需要注意:沈括只给了定性描述("微偏东"),没有给数值。网上流传的"沈括测出偏角约 5 度""开封一寸一丈"之类说法,我查不到任何原始文献支撑,很可能是后人托名或杜撰。真正可靠的第一个数值记录,要等到三百多年后。

# 徐光启:1629 年的第一个数

崇祯二年(1629),徐光启在改历的奏疏里留下一段,《明史·天文志》完整收录:

指南针,术人用以定南北,辨方正位咸取则焉。然针非指正子午,曩云多偏丙午之间。以法考之,各地不同。**在京师则偏东五度四十分。**若凭以造晷,冬至午正先天一刻四十四分有奇,夏至午正先天五十一分有奇。

拆开看:

  1. "偏东五度四十分" —— 北京的磁偏角,5°40′。
  2. "曩云多偏丙午之间" —— 古人用二十四山定方向,"丙"在正南偏东 7.5°,"午"是正南。"偏丙午之间"是说针大致落在南偏东的方向上。
  3. "若凭以造晷,冬至午正先天一刻四十四分有奇" —— 如果用这个偏角去摆日晷,冬至那天正午会早 1.44 刻(1 刻 = 14.4 分钟,即 20.7 分钟);夏至早 0.51 刻(7.3 分钟)。

第三条是我最喜欢的一条。它给了两个互相独立的观测量,可以拿来交叉验证。


# 二、我把 IGRF-14 装上了

要做任何计算,得先有模型。我用了 IGRF-14(第 14 版国际地磁参考场,2024 年发布,有效期 2025.0–2030.0),系数文件直接从 NOAA NCEI 的 IAGA V-MOD 页面下载:

https://www.ngdc.noaa.gov/IAGA/vmod/coeffs/igrf14coeffs.txt

这个模型把地球磁场写成 13 阶球谐展开:

V(r,θ,λ) = a · Σ (a/r)^(n+1) · Σ [ g_n^m cos(mλ) + h_n^m sin(mλ) ] · P_n^m(cosθ)

其中 g、h 是高斯系数(单位 nT),P_n^m 是 Schmidt 半归一化连带勒让德函数。对球面上的任一点求梯度,就得到磁场的北向、东向、向下三分量,然后:

D = atan2(Y, X)      磁偏角
I = atan2(Z, √(X²+Y²))  磁倾角
F = √(X² + Y² + Z²)     磁场强度

我自己的实现有两个独立校验:

校验一:球谐合成。 我写的 Schmidt 连带勒让德函数递推,和 NASA 的 pytcl 参考实现(pytcl/magnetism/_schmidt.py)逐元素比对,在 cosθ = 0.3 / −0.5 / 0.866 / 0 / −0.99 / 0.9999 六个测试点上,最大误差为 0.0(浮点完全一致)。

校验二:整个模型的输出。 我的结果和 PyPI 上的独立实现 pyIGRF 对比:

地点 / 年份 我的 D pyIGRF 的 D
北京 2025 −7.4975° −7.4976°
北京 1970 −5.5821° −5.5821°
北京 1900 −3.1073° −3.1073°
丹佛 2025 +7.6378° +7.6378°
伦敦 2025 +0.8988° +0.8988°
悉尼 2025 +12.7762° +12.7762°

倾角也全部一致到小数点后三位。

校验三:和公开发布值对表。 我用模型找北磁极(倾角 90° 的点),得到 2025 年 85.73°N, 138.62°E;IGRF-14 论文公布的是 85.73°N, 138.65°E。找全球最弱磁场点,得到 22072 nT @ 26.0°S, 60.0°W;公布值是 22071 nT @ 26.22°S, 60.03°W。算偶极倾角得 9.211°,公布值 9.21°。

模型可信,下面可以开始算账了。


# 三、北京的北,125 年走了 4.39°

北京的磁偏角:1900 → 2030

用 IGRF-14 逐年算北京(39.9042°N, 116.4074°E)的磁偏角:

年份 磁偏角 D 倾角 I 强度 F (nT)
1900 −3.107° 57.087° 53244
1920 −4.144° 57.307° 53363
1940 −4.856° 57.359° 53585
1960 −5.532° 57.308° 54379
1980 −5.709° 57.401° 54043
2000 −5.878° 58.288° 54416
2020 −7.163° 59.135° 54734
2025 −7.498° 59.301° 54887

几个有意思的地方:

一、它一直在往西漂,而且最近在加速。 逐十年算变化率:

1900→1910  −0.0371 °/年
1920→1930  −0.0454 °/年
1940→1950  −0.0407 °/年
1960→1970  −0.0050 °/年     ← 最慢
1980→1990  −0.0101 °/年
2000→2010  −0.0528 °/年
2010→2020  −0.0756 °/年     ← 2010 年代的速率是 1960 年代的 15 倍

北京磁北的位置,125 年里从真北以西 3.11° 挪到以西 7.50°,总共 4.39°。而且最近十年的速率(−0.0756°/年)比二十世纪中叶(−0.0050°/年)快了 15 倍。

二、倾角反而在增大。 磁倾角从 1900 年的 57.09° 涨到 2025 年的 59.30°——磁针越来越"扎"向地面。这说明磁极在往高纬度跑。

三、磁场总强度在升,但偶极矩在降。 这两件事不矛盾,因为"总强度"包含所有阶次,"偶极矩"只算 n=1 那一阶:

偶极矩 |M| = √(g₁₀² + g₁₁² + h₁₁²)
1900:  32176 nT
2025:  29733 nT      ← 降了 7.6%

北京本地 F 从 53244 涨到 54887(+3.1%),但全球偶极分量降了 7.6%。"磁场在减弱"这句话只有在限定空间尺度时才成立——南大西洋异常区在减弱,北京在增强。

# 这个数字有多要命

磁偏角直接换算成走路误差:

磁偏角 每走 1 公里的横向误差
3° 52 m
5° 87 m
7.5° 132 m
10° 176 m
12° 213 m
15° 268 m

北京今天 7.5°。你拿着罗盘说"往北走一公里",实际会偏出去 132 米。

这不是纸上谈兵。用中国自己的例子:南宋曾三异《因话录》记"地螺"(罗盘),除子午正针外,还有"子午丙壬间缝针"——刻意偏了 7.5° 的针。7.5° 就是 132 米/公里。古代商船用这种针走海路,误差就是这么累积的。


# 四、北磁极:一场 2476 公里的长跑

磁偏角为什么会漂?因为磁极在漂。

北磁极的漂移轨迹(1900–2025)

我用模型逐年定位北磁极(磁场垂直向下的那个点),得到完整轨迹:

年份 位置 5 年移动
1900 70.46°N, 96.19°W —
1930 72.27°N, 98.68°W 58.6 km(11.7 km/年)
1950 74.64°N, 100.86°W 81.3 km(16.3 km/年)
1970 75.88°N, 100.97°W 29.7 km(5.9 km/年)
1990 78.10°N, 103.69°W 81.6 km(16.3 km/年)
2000 80.97°N, 109.64°W 230.1 km(46.0 km/年)
2005 83.19°N, 118.22°W 278.4 km(55.7 km/年)
2010 85.02°N, 132.81°W 261.8 km(52.4 km/年)
2015 86.30°N, 160.16°W 266.8 km(53.4 km/年)
2020 86.49°N, 162.91°E 254.4 km(50.9 km/年)
2025 85.73°N, 138.62°E 200.0 km(40.0 km/年)

几个要点:

一、它从加拿大跑到了俄罗斯。 1831 年 6 月 1 日,詹姆斯·克拉克·罗斯在布西亚半岛首次测定磁极位置(70°05′N, 96°47′W),正好在 1900 年我算出的位置的附近。此后 190 多年,它一路向东、加速,在 2017 年前后横跨了 180° 经线——换句话说,磁极从加拿大"跑过"了国际日期变更线,跑进了俄罗斯北冰洋。累计位移 2476 公里。

二、2000 年是分水岭。 20 世纪大部分时间,磁极每年挪 10–15 公里;2000 年代突然跳到 50 公里以上。2020 年 Livermore 等人在《Nature Geoscience》给出的解释是地核里一个高速急流的"叶瓣伸长"把磁极拽了过去。2024 年的 IGRF-14 和 WMM2025 则都预测这个减速会持续:2025–2030 年间回落到约 35 公里/年。

三、它还在继续。 2026 年 1 月发布的年度地磁状态报告实测 2025–2026 年平均漂移约 36 公里/年,方向仍然是西伯利亚。

北极点附近那 300 公里的"空白",对人类是个谜题——指南针在极点附近没有意义(所有方向都是南)。而"磁极在往哪跑"直接决定了你的罗盘偏多少。


# 五、紫禁城的那 2°13′

现在回到开头。

元大都建于 1267 年,明初直接沿用。如果元代工匠真的用罗盘定过中轴线,那么中轴线记下的就是元朝的磁北,和真北差多少度,中轴线就偏多少度。

这个假设的漂亮之处在于可以被数字检验:

  • 实测偏角:2°13′ = 2.2167°(永定门 → 钟楼,约 270 米)
  • 元代北京磁偏角,如果取二手来源的数字(百度百科"磁子午线方向"记为"元代约 −2 度多"),是西偏 2° 多
  • 两者在大小上吻合(差十几角分),方向上也一致(轴线北端偏西 ⟺ 磁针指向南的那一端偏东,正是古人记"偏东"的口径)

也就是说:中轴线记下的那个"北",可以解释为元朝的磁北。这条假设不是空穴来风。

但我必须交代清楚它有多弱:

它没有一手测量支撑。 我能查到的"元代北京磁偏角约 −2 度"只在百度百科和《老北京城风云变幻一千年》一类二手来源里流传;后者按"2003 年为北偏西 2.19°、年变率 0.0098°/年"反推 1267 年为北偏西 2.06°——可这个年变率只有我算的北京实际值的七分之一(2000→2010 年是 −0.053°/年),而且"2003 年为北偏西 2.19°"与 IGRF-14 给出的 2003 年 −6.4° 差了 4°,两个数都对不上。反推这条链是断的。

它也没有考古地磁佐证。 我把能找到的两份中国考古地磁一手资料翻了一遍:邓兴惠、李东节 1965 年那批北京古砖测的是倾角和强度,没有偏角;魏青云等人 1984 年那张 17 个时代的表里,没有北京——元代那一行的采样点是浙江龙泉(28°05′N),偏角 +3°56′(东偏),离北京 1500 公里,而且方向还是反的。

所以这条线目前只有"数值巧合"这一层支撑。

但它有真实的反对意见,我得说清楚:

质疑一(王金甲,中科院,2023 年): 数量级对不上。磁偏角随纬度增大,北京在北纬 40°,按他的推算该有 5° 以上的偏角,实测却只有 2°13′。

质疑二(元上都说): 元上都是刘秉忠和郭守敬主持建的,正南正北。同样的人、同样的技术,为什么元大都偏了?

质疑三(北京时间说): 夔中羽那个"立竿见影"的实验,用的是北京时间 12:00。北京在东经 116.39°,而北京时间以东经 120° 为准。差 3.59°,对应 14.4 分钟。太阳上中天的真时刻其实是 12:14.4。我算了一下这个误差的影响:

真太阳时 12:00(正确)    → 影子恰好在真子午线上,偏移 0.000°
北京时间 12:00(错误)    → 影子偏西 3.69°(冬至)/ 5.59°(春分)/ 11.51°(夏至)

如果当时是夏至做的实验,2°13′ 这个读数根本不可能是这么来的;如果是冬至,还差得远。所以"北京时间说"并不能干净地解释 2°13′——除非还有别的因素。这个反驳我认为不成立,但它说明实测本身也不是铁证。

质疑四(别的解释): 施工误差、避讳正位、元上都指向、风水"庚子龙"、地球较差自转……七八种说法都有人提。至今没有定论。

2024 年申遗期间,北京市测绘设计研究院用数字技术重新拟合中轴线,测得"与正北方向呈逆时针约 2° 的偏角"(基础测绘部部长王攀)。这跟 2004 年的结果在精度上互相印证。

所以:磁偏角说是一个有力但未被证明的解释。 我把它写在这里,是因为它把一件孤立的城市奇观,接进了一条已经有一千年连续记录的物理量上——不管结论是否成立,这条线本身是实的。

而且不管中轴线当初是不是照罗盘画的,今天的中轴线和今天的罗盘,已经差了 5.28°:

轴线北端方位角:−2.2167°(真北以西 2°13′)
今天北京磁北:  −7.4976°(真北以西 7°30′)
差:             5.2809°(轴线落在磁北的东侧)

在永定门→钟楼(6957 m)上:643 m
在整条中轴线(7.8 km)上:  721 m

如果你今天拿着罗盘沿着中轴线走一遍,走到钟楼,你会偏离轴线 643 米。


# 六、徐光启留下的那把尺子

回到徐光启那段奏疏的第三条,那两个日晷误差值。我一开始以为那只是随口一提的补充,直到我试着反推。

设定: 用罗盘摆一个水平日晷,晷针的影子在磁子午线上。日晷的"正午线"(子午线)按罗盘定,因此指向磁南(方位角 180° + D)。

问题: 太阳的方位角什么时候等于这个值?那就是日晷影子落在自己"正午线"上的时刻——也就是晷面上显示正午的时刻,与真太阳时的差。

我在北京纬度(39.9042°N)上,用标准球面天文公式解这个方程(H 是时角,δ 是太阳赤纬):

方位角:  tan(A) = −sin H / (sin φ cos H − cos φ tan δ)

结果:

D = +5.667°(磁北在真北以东) D = −5.667°(磁北在真北以西)
冬至 δ = −23.44° 1.536 刻,晚 1.536 刻,早
夏至 δ = +23.44° 0.487 刻,晚 0.487 刻,早

徐光启记的是:冬至先天 1.44 刻,夏至先天 0.51 刻——两个都是"早"(先天 = 日晷显示的时刻比实际早)。

所以只有 D = −5.667° 成立。 这就锁死了符号:古人笔下"偏东五度四十分",对应的是现代符号里的西偏 5°40′(因为中国的针是指南的,指向南的那一端偏了,就等于指北的那一端反向偏)。

顺便说,量级也对得上:D = −5.667° 时我算出冬至 1.536 刻 / 夏至 0.487 刻,他记的是 1.44 / 0.51。反解冬至那个值,得 D = −5.314°,与 5.667° 差 0.35°。

还有一个漂亮的旁证:不管 D 取多少,冬至/夏至误差比值恒定在 0.317(这是几何决定的,与偏角大小无关)。徐光启的记录是 0.51/1.44 = 0.354。两个独立数字的比值对得上,说明他记的确实是这两个量的真实观测值,而不是抄来的。

一个附带的推论:如果把"五十一分"读成 51 分钟(即 3.54 刻),夏至误差会大于冬至——但几何上不可能,夏至的影子在正午附近走得更快,方位误差折算成时间更短。所以"分"必然是"刻的百分之一"。

徐光启在 1629 年,用一副罗盘和一次日晷,测出了北京的磁偏角,并把它和"造晷会差多少刻"这个可验证的推论一起写进了奏疏。 这个记录距今 397 年。


# 七、古砖里的两千年

磁偏角之外,还有一条更长的线索:磁场强度。

1965 年,中国科学院地球物理研究所的邓兴惠和李东节做了一件很酷的事:他们从北京各朝各代的古砖里测剩余磁性。

原理是这样的:砖在窑里被烧到几百度,出炉后冷却时,砖内铁质颗粒的磁畴会沿着当时的地球磁场方向排列,并在之后的几千年里保持不变(除非被后来的高温再次磁化)。所以一块汉代的砖,就相当于一个记录了汉代磁场方向的化石。测量用逐步加热法(Thellier 法):把标本一步步加热,每次退火后测剩磁,靠剩磁强度随温度的衰减曲线反推出原始磁化方向和强度。

北京古砖里的磁场:邓兴惠、李东节(1965)测的两千年

他们测了四十块砖,结果:

朝代 磁场强度 / 现代值
汉(206 BC – 219 AD) 1.57
三国(220–280) 1.41
唐(618–905) 1.42
宋(960–1276) 1.29
元(1280–1368) 1.21
清(1644–1911) 1.12

两千年,一路单调下降,从 1.57 倍掉到 1.12 倍。

同时他们发现北京的磁倾角在 51°–66° 之间变化,有约千年的周期特征。

这篇论文还有个让我印象深刻的细节:作者在论文里用"现代北京地区磁倾角 57.2°"作为参照值(1965 年的实测)。我用自己的 IGRF-14 算 1965 年北京的倾角——57.28°。差 0.08°。

(他们在论文里写,1963 年才开始收集标本,1965 年就发了文。)

再往后,1984 年魏青云、李东节等人在《地球物理学报》上把陕西、湖北、浙江、江西、北京的烧土标本合起来,用中心偶极模型算出六千年的**虚地磁极(VGP)**移动曲线。他们的结论很克制也很重要:

在近数千年间,磁极运动的方向无固定的趋势,运动的速度亦不均匀,而运动的轨迹迂迥曲折,其平均位置与地理极不重合。

"轨迹迂迥曲折" —— 这四个字是我读到的关于地磁史最有分量的一句话。它意味着:

  1. 你不能用今天的磁偏角去线性外推几百年后(我在第三节开头做的那件事,其实只能覆盖 1900–2025,IGRF 本身的模型也只保证 1900 年之后)。
  2. 磁极的历史路径里有回摆。所以《明史》记的"偏东 5°40′"和今天北京的"偏西 7°30′",中间必然发生过归零和反向——这跟"明清之际归零、19 世纪前后由东转西"的说法是一致的。

# 考古地磁学给出的偏角

偏角的历史比强度更难测——它需要一个有方向的参照物(烧砖在窑里躺着时的朝向),所以一直到 1984 年才有人系统地做出来。魏青云、李东节等人在《地球物理学报》上发表的表 1 里,用 300 多块烧土标本测了十七个时代的倾角和偏角。

我用他们自己发表的 VGP 坐标做了交叉验证:对一个中心偶极子,用表里的极点位置去反算各地的 I 和 D,十五个采样点能复现到 0.01° 以内——说明我读表没有读错行。以下是唐宋以后的那几条:

朝代 采样地点 倾角 I 偏角 D
唐(618–907) 河南洛阳 60°59′ −10°57′
北宋(960–1127) 河南禹县 56°57′ −12°25′
金(1115–1234) 陕西铜川 39°26′ −3°18′
南宋(1127–1279) 江西景德镇 45°29′ +2°26′
元(1271–1368) 浙江龙泉 44°57′ +3°56′
明(1368–1644) 江西景德镇 35°43′ −2°31′

这张表里最有说服力的一条,是同一个采样地点在两个朝代之间的符号翻转:

江西景德镇:南宋 +2°26′(东偏)→ 明 −2°31′(西偏)。 大约三百年,同一个窑址,磁偏角从东偏翻成西偏。

这直接击破了一个常见的误读:很多人把《明史》的"偏东五度四十分"读成"北京磁北在真北以东 5°40′",再对比今天的"西偏 7.5°",得出"磁偏角翻转过一次"的结论。方向是对的,但机制搞反了——不是因为磁偏角翻转,而是因为中国的针尖指向南。

再强调一遍这个陷阱:中国罗盘的传统用法是指南("指南针"三个字就是这么来的)。徐光启说的"偏东五度四十分",指的是针尖指向南的那一端偏到了真南的东侧——等价于指北的那一端偏到了真北的西侧。换成现代符号就是 D = −5.67°,和今天北京的 −7.50° 是同一个方向。"

这里还有一个我必须诚实交代的空缺:这张表里没有北京。魏青云等人用的烧土标本采自陕西、河南、湖北、江西、浙江,最近的元代样本在浙江龙泉(28°05′N),离北京 1500 公里。而邓兴惠、李东节 1965 年那批北京古砖,测的是倾角和强度,没有给偏角。所以"元代北京磁偏角约 −2°"这个数字,目前能找到的只有百度百科"磁子午线方向"词条和《老北京城风云变幻一千年》一类二手来源,我没能追到一手测量——这一点必须留白。


# 八、如果磁极真的倒转

地磁场会倒转。这是被地质记录反复确认的事实:最后一次完整倒转发生在 78 万年前(布容期 → 马图亚期),平均间隔约 20–30 万年,过程可能持续 1000–2000 年。

倒转期间会发生什么?文献里的描述是:偶极分量衰减到接近零,非偶极分量占比上升,磁场变得多极化——赤道上可能出现四个甚至更多临时磁极,罗盘指针会剧烈摆动。

但文献没告诉你具体怎么摆。我做了个模拟:保持 IGRF-14 的所有高阶系数不变,只把偶极项(g₁₀, g₁₁, h₁₁)按系数从 +1 扫到 −1,看四个城市的磁偏角怎么走。

磁极倒转过程中,磁偏角会怎样疯

偶极缩放系数 北京 开封 广州 乌鲁木齐
+1.0(今天) −7.50° −5.75° −3.26° +2.52°
+0.5 −15.13° −10.97° −5.90° +8.83°
+0.2 −30.56° −20.53° −9.98° +26.64°
0.0(过渡期) −64.77° −41.23° −16.98° +94.59°
−0.2 −123.82° −106.44° −43.82° +149.68°
−0.5 −156.00° −156.43° −153.63° +164.44°
−1.0(完全翻转) −167.64° −169.23° −171.21° +170.19°

几个结论:

一、北京的指南针会先转向正西,再扫过正南,最后才停在"北"上。 总摆幅 160°。

二、乌鲁木齐会先转到 94.59°——也就是直接指向东。 到了过渡期,新疆的罗盘完全不能用。

三、这不是一次"啪的一下换向"。 磁偏角在几百年里平滑地、连续地扫过整个圆周。真正发生倒转的那几百年,是所有依赖磁北的东西最失效的时候。

四、强度会先塌到 32%,再回升。 我算的北京总强度随偶极缩放系数变化:

frac = +1.00   F = 54887 nT  (100.0%)
frac = +0.25   F = 26304 nT  ( 47.9%)
frac =  0.00   F = 17663 nT  ( 32.2%)   ← 最弱
frac = −0.25   F = 11350 nT  ( 20.7%)
frac = −1.00   F = 27571 nT  ( 50.2%)

这和古地磁记录的量级吻合:地磁场强度在倒转过程中可以掉到现代值的 10%–20%。

但要注意,这个模拟是理想化的。 它假设高阶系数不变,而真实倒转中非偶极场会重组,实际路径会更混乱。定性结论(罗盘废掉、磁场显著减弱、动物导航受扰)可靠,具体数字要打折。

# 现在的状况:南大西洋异常区

倒转什么时候来?现在没有定论。但有一个正在被监控的信号:

2025 年 10 月 13 日,ESA 发布 Swarm 卫星 11 年数据的研究(Finlay, Kloss & Gillet, Physics of the Earth and Planetary Interiors):

  • 南大西洋异常区(SAA)自 2014 年以来扩大了约 0.9% 的地球表面积——大约半个欧洲
  • 它不再是一整块:2020 年以来,非洲西南方向的一个区域衰减得更快,导致异常区分裂成了两个瓣
  • 全球最低场强从 2014 年的 22430 nT 降到 2025 年的 22094 nT
  • 我用 IGRF-14 独立算出今天的最低点是 22072 nT @ 26.0°S, 60.0°W,和 ESA 报的 22071 nT @ 26.22°S, 60.03°W 几乎完全重合

不过同期的报道也强调了审慎:GFZ 波茨坦的 Monika Korte 指出,过去 5 万年的重建显示,SAA 目前的强度和形状仍在自然历史变幅之内,类似的弱区以前也出现过,并没有导致倒转。

考古地磁学给出的证据更直接。Tarduno 等人 2015 年发表在《Nature Communications》上的工作,从南非林波波河谷(南非、津巴布韦、博茨瓦纳)的铁器时代烧土——草屋地面、粮仓、畜栏——测出了公元 1000–1600 年的第一条南部非洲考古地磁曲线。结果显示约公元 1300 年出现过一次急剧的强度下降,衰减速率与今天的 SAA 相当,甚至降到比今天更低的绝对值;随后磁场自行恢复。

他们把这解释为一次"已经过去的 SAA 事件":南部非洲地幔边界下方那片非洲大型低速剪切波速省(African LLSVP)是一个存在了数千万年的结构,它促进了核内反向磁通的喷发,恰好与今天 SAA 反向磁通斑块的东缘近乎重合。这块"病灶"是长期的,不是新出现的。

他们的结论是:当前这轮弱化很可能是一个反复出现的现象,而不是倒转的前兆——但到底会不会在未来几千年内真的倒转,仍然未知。

所以目前没有人能给出倒转的时间表。ESA 自己的表述也很谨慎。

真到了那一天,实际受影响的是:电网(地磁暴在地磁感应电流里烧变压器:1989 年 3 月一场地磁暴让魁北克电网瘫痪 9 小时;1859 年的卡林顿事件则让电报机自己打出了摩斯电码)、卫星姿态控制、GPS 精确定位、以及靠地磁导航的候鸟和海龟。不是文明末日——大气层顶还有约 10 米水当量的屏蔽,绝大部分太阳风辐射仍然被挡住,倒转和物种大灭绝之间没有可靠联系。

极光:磁层和太阳风相互作用的可视化


# 最后

我原本以为这是一个"城市趣闻"——紫禁城为什么歪了 2°13′,答案可能是风水、可能是误差、可能是玄学。

查下来发现,它其实是一条很长的线的末端。这条线的一端在北冰洋(磁极 125 年挪了 2476 公里),中间穿过北京古砖的剩余磁性(两千年衰减 1.57→1.12)、沈括《梦溪笔谈》的六个字("常微偏东,不全南也")、徐光启奏疏里的 5°40′ 和两个可以反推的刻数,另一端是元大都 1267 年那个工匠手里的罗盘。

同一个数字,换了三种记法:一千年前的"微偏东"、四百年前的"偏东五度四十分"、今天的"西偏 7.50°"。 它们指的是同一件事,只是随着磁极漂移而改变符号和大小。而紫禁城中轴线——如果磁偏角说成立的话——把 1267 年那一刻的答案,永久地砌进了城砖里。

有一个反直觉的结论值得单独说:指南针从来没有指错。 错的是我们默认"北"是个常数。它不是常数,它是个每秒都在动的目标,人类只是在它跑得还慢的时候,误以为它静止了。

下一次你看到罗盘,你可以做一个小实验:拿它读出方位,然后查一下当地的磁偏角(NOAA 有在线计算器),加上那个角度,才是真北。在北京这个数字今天是 7.50°——你手里那根针,此刻正指着离真北约 7.5 度的地方。

而它每 10 年还要再偏 0.5 度左右,并且越来越快。


附注与复现

模型:IGRF-14 系数文件,NOAA NCEI / IAGA V-MOD,https://www.ngdc.noaa.gov/IAGA/vmod/coeffs/igrf14coeffs.txt。主模型 n = 13,Schmidt 半归一化,参考球半径 6371.2 km,epoch 2025.0,2025–2030 用公布的长期变化外推。

实现:Python + NumPy,球谐合成、Schmidt 连带勒让德递推、WGS-84 地心/地纬转换(与 pytcl 的 _wmm_core 一致)。

校验:(1) Schmidt 递推与 pytcl/magnetism/_schmidt.py 逐元素比对,最大误差 0.0;(2) 磁偏角/倾角与 PyPI 的 pyIGRF 对比,六个地点年份全部一致到小数点后 4 位;(3) 北磁极 2025 = 85.73°N, 138.62°E(公布值 85.73°N, 138.65°E);全球场强最低点 22072 nT @ 26.0°S, 60.0°W(公布值 22071 nT @ 26.22°S, 60.03°W);偶极倾角 9.211°(公布值 9.21°);北京 1965 年磁倾角 57.28°(邓兴惠、李东节 1965 年论文引用现代值 57.2°)。

日晷反推:方位角公式 tan A = −sin H / (sin φ cos H − cos φ tan δ),二分法求根,φ = 39.9042°N,δ = ±23.44°,1 刻 = 14.4 分钟。

磁极定位:网格搜索 + 局部精化,求水平分量 |√(X²+Y²)| 的极小点(北)/ 极大点(南)。

倒转模拟:保持 n ≥ 2 的所有系数不变,对 n = 1 的 (g₁₀, g₁₁, h₁₁) 施加统一缩放因子从 +1 扫到 −1。真实倒转中高阶场会重组,此模拟只保证定性结论。

一手资料:邓兴惠、李东节《北京地区史期地磁場及其变化的研究》,《地球物理学报》1965, 14(3): 181–196;魏青云、李东节、曹冠宇、张维玺、王双萍《近六千年间的磁极移动曲线》,《地球物理学报》1984, 27(6): 562–572;徐光启奏疏(见《明史》卷二十五·志第一·天文一);沈括《梦溪笔谈》卷二十四·杂志一。

不确定性:中轴线偏角的成因(磁偏角说 vs 其它解释)至今无定论,本文只陈述可测量的部分和各方论据。IGRF 只覆盖 1900 年以后,1267 年的磁偏角用的是考古地磁重建值,非直接测量。


# 配图说明

本文四张数据图(北京的磁偏角曲线、北磁极漂移轨迹、倒转过程偏角扫动、古砖剩磁强度)均由本机脚本基于 IGRF-14 系数绘制,绘图代码与上文计算同源。四张摄影/渲染图由 MiniMax 文生图模型生成,无版权限制。