光污染地图 × 实测 · 偏差分析

地图在亮处可信,
越往暗处越偏

条晴朗·无月·天顶的实测 SQM,按光污染地图给出的理论值分层,看两者的差距。结论很清楚:在乡村/郊区(波特尔 4 级)几乎重合,但进入低光污染的暗夜(波特尔 1–3 级),地图开始系统性地高估黑暗程度

波特尔 4 级(乡村/郊区)
残差中位数 · % 落在 ±0.2 内
对比
波特尔 1–3 级(暗夜)
残差中位数 · 实测普遍比地图更亮

残差 = 实测 − 地图理论;负值 = 实测比地图更亮(即地图高估了黑暗)。

01

差距随天变暗而增大

横轴是地图理论 SQM(越往右越暗)。中线是该亮度下实测残差的中位数,深带为 25–75 分位、浅带为 10–90 分位。背景色块是各波特尔等级对应的地图 SQM 区间。看中线如何从 0 附近一路下滑。

残差(实测 − 地图)随地图 SQM 的变化
灰点为单次读数;越贴近「残差 = 0」虚线,地图越准
残差中位数 25–75 / 10–90 分位带 残差 = 0(完美吻合)
在暗的一半(地图 ≥ 20.5),地图每声称暗 1 个星等,实测就少 个星等跟不上——这是一条明确的向下斜率。最佳吻合区在 地图 SQM ≈ 21.0–21.5(波特尔 4 到 3 的边界):残差中位数 % 的读数落在 ±0.2 mag 内。
02

逐级看:匹配度如何塌陷

按波特尔等级统计「落在 ±0.2 mag 内的读数比例」——这是地图在该等级下的可信度。波特尔 4 及以上(更亮)稳,进入 1–3 级明显下滑。

地图可信度 · 按波特尔等级
柱高 = 实测落在地图值 ±0.2 mag 内的比例;数字为该级残差中位数
波特尔环境地图 SQM 区间样本 实测 p10–p90实测中位残差中位±0.2内匹配
03

与「波特尔标称 SQM」的错位

每个等级都有其标称的 SQM 区间(灰框)。把实测分布(箱体 = 25–75 分位,须 = 10–90 分位,横线 = 中位)叠上去:波特尔 4 的实测正落在框内;但 1–3 级的实测箱体整体下沉、跌出框外——地图称「1 级」的地方,实测往往只有「3–4 级」的暗度。

实测 SQM 分布 vs 波特尔标称区间
灰框 = 该等级标称 SQM 区间;彩色箱 = 实测分布(按残差方向着色)
波特尔标称区间 实测比地图亮(暗端) 实测比地图暗(郊区)
04

暗端解耦 · 自己调阈值

越往暗处,天顶 SQM 越贴近物理天花板(~22.0),几乎不再变化;但同样天顶读数的两个点,四周暗区的范围可以天差地别。拖动滑块换定义与阈值、拖动散点图里的金色虚线设「交叉点判定线」,下面的图、读数与分级表都会实时重算。无论怎么定义,你都会看到天顶在 ~21.8 附近封顶、之后由旷野大小接管。

暗区范围指标
半径50 km
暗天阈值 SQM≥21.30
光穹阈值 SQM<20.50
同样的天顶,不同的旷野
交叉点:天顶何时封顶
横轴=所选暗区指标,纵轴=天顶 SQM;金线为均值,虚线为封顶值
波特尔天顶带样本天顶 std指标中位指标范围
05

谁才是真正的一级暗夜

三个天顶几乎相同(21.9–22.0)的站点,四周 240 km 见方的光污染实况却完全不同。同一个天顶读数,背后是三种截然不同的暗夜——差别全在旷野的大小。

06

地形遮挡:暗夜的隐形护城河

光污染是有方向的。几十公里外的城市,若那个方向正好被山脊挡在地平线以下,那束光根本进不来——所以"周围辉光"必须叠加地形遮挡。用公开的 Mapzen 地形瓦片,可算出每个方位的地平线角。

Crestone(美国科罗拉多)各方向地形地平线角
城市光穹低伏在地平线(~0°);地平线角越高,那个方向的城市光越被挡死
方向NNEE · 前岭城市SESSW · AlamosaWNW
地平线角3.2°5.8°3.9°2.1°3.8°5.6°12.1°2.7°

整个东半边被 Sangre de Cristo 山脉筑成一道 3–12° 的墙,把 100km 外的丹佛/科泉/Pueblo 前岭城市群彻底挡在地平线以下——这就是它虽近大城市却仍是顶级暗点的物理原因。

加入地形后,"暗袋"被正确区分
同样天顶(~21.9–22.0),地形门控把被山挡住的光穹削掉;辉光指数越低越暗
站点天顶原始辉光地形辉光被山挡掉
Tivoli(纳米比亚沙漠)22.00−3.70−3.700%
Wiruna(澳洲)21.96−2.42−2.420%
Kendrick Park(Flagstaff 旁)21.91−2.07−2.3952%
Crestone(背靠 4300m 山脊)21.85−2.25−2.6156%
Kendrick Park 被圣弗朗西斯科峰(3850m)挡掉 52% 辉光 → 从"暗袋降 3 级"救回 2 级;Crestone 被挡 56% → 实际反超 Wiruna。地形还会挡月光(实测满月被山挡后少提亮 0.6 mag)。中国境内坐标须先做 GCJ-02 → WGS-84 修正(偏移 ~600m),否则地形遮挡算错。
07

动态光污染等级 · 完整框架

把所有因素拼起来:某地的等级不是固定数,而是随当夜天象变化的动态值,并分成"光污染"和"能不能看"两条轴。

评级公式
静态基准(某地固有,无月) = f( 天顶暗度 , 地形感知周围辉光 )
    · ≥4 级(较亮):天顶主导
    · 1–3 级(暗端):天顶 + 周围辉光(含地形遮挡)

当夜动态  有效SQM(t) = 基准 − Δ月光(t) − Δ银河(t) − Δ曙暮(t)
                       ↓  用重标定表反查
                    动态波特尔等级(t)

观测可行轴(独立)  = 云(闸门) + 湿度 + 通透度

✅ 已从 16k 实测拟合

天顶↔SQM 重标定、云的双向影响、月光提亮曲线(满月高挂 +1.8 mag)。这些预测量独立、效应作用在天顶,能干净拟合。

✅ 用公开数据算得

周围辉光(光污染瓦片,距离加权 d⁻²·⁵)+ 地形遮挡(Mapzen 地形瓦片,地平线门控)。全程不依赖外部付费数据。

⏳ 唯一需外部真值

"周围辉光该降几级"——实测只有天顶、波特尔是全天空,此系数拟合不出来。现用物理模型 + 波特尔定义 + Walker 距离 + 标杆点锚定。

外部佐证

波特尔 1 vs 2 的定义本身就是"地平线有无光穹"(SQM 仅差 0.15–0.4);NPS 专业界用全天空 ASL;Walker 定律给距离阈值——全指向同一思路。

实测验证:中国点1(4级,地图 21.24 ≈ 实测 21.25,天顶主导,吻合);点2(地图 20.84 但实测仅 20.20,近处路灯 + 高湿度散射 −0.64 mag,达不到 4 级)——揭示"亚网格局部污染"需外部湿度/本地灯光数据(v2)。
08

为什么会这样,怎么用

暗端有一层「自然地板」

真实夜空受大气辉光、黄道光、银河本身限制,实测极限一般到 ~21.9–22.0。地图可以外推出更暗的数值,但天空到不了;加上云、月、曙暮光等干扰只会把读数往亮里拉,于是暗端残差单向为负、且越暗越大。

波特尔暗端的刻度极密

标称区间里,1/2/3 级挤在 21.69–22.00 这 0.3 mag 内,而 4 级独占 20.49–21.69 足足 1.2 mag。暗端零点几的实测误差就能跨越一个等级,这放大了「与标称 SQM 差异很大」的观感。

亮端也不是零偏差

郊区(波特尔 5–6)实测反而比地图略暗(残差 +0.1~+0.2),可能与 SQM-L 窄视场、以及地图对近郊亮度的平滑有关;城市端(7 及以下)又回到较好吻合。

天顶饱和 → 等级变成空间量

过了 SQM≈21.7,天顶读数触到天花板便不再增长(波特尔 3 起标准差已塌到 0.06,到 1 级仅 0.005)。此时决定「几级暗夜」的,是四周暗区的面积——即地平线上有没有光穹、旷野有多深,这正是波特尔当年定义 1/2 级时描述的东西。

给你的分析的建议

把地图值当作波特尔 4 级及更亮区域的可靠 SQM 估计;进入暗夜点,别再用天顶数值分辨 1/2/3 级,改用区域指标(到最近光穹的距离、100 km 内暗区占比)。这也解释了你实测中「暗区差异远大于 SQM 差异」的观察。