0核心理念
动态光污染等级 区别于传统"静态波特尔"的三点:
- 参照波特尔(1–9 级),但 SQM 对应数值重新校准——用真实实测值替换流传已久、约定俗成的对照数值(波特尔原文并未给出 SQM 对应)。
- 暗端由空间决定,而非天顶读数——天顶 SQM 在 ~21.8 以上饱和,1–3 级的区分靠"周围暗区面积 + 地形遮挡"。
- 等级随天象动态变化——月相/月位、银河、云、湿度都会临时拉低当夜的实际等级。
分两条轴输出:光污染轴(动态有效 SQM → 动态波特尔)与观测可行性轴(云 + 湿度 + 通透度,决定"今晚能不能看、看多清")。
1数据源(全部公开、免鉴权)
| 数据 | 来源 | 说明 |
|---|---|---|
| 光污染 SQM 瓦片 | djlorenz.github.io /astronomy/lp2024 | David Lorenz 2024;5°×5°/瓦片、600×600 网格(~0.9km);WGS-84 |
| 地形 DEM | s3.amazonaws.com /elevation-tiles-prod/terrarium | Mapzen terrarium;z12(~37m/px);WGS-84 |
| 标定实测 | unihedron.com /projects/darksky/database | 16,074 条全球众包实测(2005–2026),用于拟合校准 |
图集以二进制格网瓦片形式公开发布;对瓦片做确定性解码即可由坐标得到 SQM 值——复现下述算法即得与图集逐位一致的结果。
1.1 坐标系(中国境内必做修正)
- 瓦片均为 WGS-84;小程序
wx.getLocation返回 GCJ-02。中国境内坐标须先 GCJ-02 → WGS-84,偏移约 600 米。 - 对光污染 SQM 影响很小(<1 格,通常同格),但对地形遮挡影响巨大(海拔可差 100+ 米、地平线角可差 6°)。
- 采用标准 GCJ-02 → WGS-84 反解("火星坐标系"逆变换)后再查询瓦片与地形。
2SQM 瓦片解码算法(从公开瓦片复现)
输入: lat, lon (WGS-84)
lonD = ((lon+180) mod 360 + 360) mod 360
tileX = floor(lonD/5)+1 ; tileY = floor((lat+65)/5)+1 # tileY∈[1,28]
文件 = binary_tile_{tileX}_{tileY}.dat.gz → gzip 解压 (360001 字节)
ix = round(120*((lonD - 5*(tileX-1)) + 1/240)) # ∈[1,600]
iy = round(120*(((lat+65) - 5*(tileY-1)) + 1/240))
first = data[0]*128 + data[1]
latSum = Σ_{i=1}^{iy-1} signed(data[600*i + 1]) # signed: b<128?b:b-256
lonSum = Σ_{i=1}^{ix-1} signed(data[600*(iy-1) + 1 + i])
C = clamp(first + latSum + lonSum, 0, 10000)
亮度比 = (5/195)*(exp(0.0195*C) - 1)
SQM = 22.0 - 5*log10(1+亮度比) / log10(100) # mag/arcsec²
向量化:预计算每瓦片 cumcol[iy] 与 cr[r][k],则 C = first + cumcol[iy-1] + cr[iy-1][ix-1],O(1) 查询。已验证与官方存储值 max|diff|=0.0000。
3天顶 SQM ↔ 波特尔:重标定表
流传最广的 Bortle–SQM 对照其实会误导人(把 1 级标成 22.0)——它并非出自波特尔原文或任何权威定义,只是多年约定俗成的划分;真去测只有 ~21.7。下表用 6,438 条"晴朗·无月·天顶"实测重标定,给出预估实测天顶 SQM:
| 级 | 环境 | 地图 SQM(定级) | 预估实测 p25/中位/p75 | 到光穹中位 | 暗区占比 |
|---|---|---|---|---|---|
| 1 | 极致暗夜 | ≥21.99 +极大旷野 | 21.61 / 21.72 / 21.86 | 105 km | 100% |
| 2 | 典型暗夜 | 21.89–21.99 +中旷野 | 21.45 / 21.60 / 21.79 | 77 | 96% |
| 3 | 乡村暗 | 21.69–21.89 | 21.40 / 21.58 / 21.73 | 44 | 64% |
| 4 | 乡村/郊区 | 20.49–21.69 | 21.03 / 21.29 / 21.47 | 18 | 18% |
| 5 | 郊区 | 19.50–20.49 | 19.78 / 20.25 / 20.58 | 0 | 5% |
| 6 | 亮郊区 | 18.94–19.50 | 18.95 / 19.25 / 19.61 | — | — |
| 7 | 城郊过渡 | 18.38–18.94 | 18.30 / 18.58 / 18.81 | — | — |
| 8–9 | 城市 | <18.38 | 17.84 / 18.14 / 18.26 | — | — |
3.1 交叉点(天顶何时失效)
- 逐级天顶标准差:B4 0.346 → B3 0.058 → B2 0.031 → B1 0.005(塌陷到零)。
- 约 SQM 21.7(波特尔 3 起)天顶开始饱和;到 SQM 21.9(波特尔 2)被彻底钉死。
- 物理地板 ~21.9–22.0(大气辉光/黄道光/银河);实测 >22.0 物理不可能(已剔 196 条,71% 来自单一坏站)。
4静态基准等级(某地固有,无月晴夜)
有效波特尔基准 = f( 天顶暗度 , 地形感知周围辉光 ) · ≥4 级(地图SQM<21.7):天顶主导,直接查表 §3 · 1–3 级(地图SQM≥21.7):天顶 + 周围辉光(含地形遮挡) 共同定级/降级
4.1 周围辉光指数(距离加权,纯用光污染瓦片)
辉光_raw = Σ_周围格 A(s) / d^2.5 # d=距离km, 采样±120km/步4km, 排除 d<3km A(s) = max(0, 10^(8-0.4·s) - 10^(-0.8)) # 该格"人工光超出自然地板"的线性量 辉光指数 = log10(辉光_raw + 1e-9)
距离幂 2.5 = Walker/Garstang 光传播定律;半径、幂、地板均为可调参数。抓的是整片周边辉光,不只最近一个光穹。
4.2 地形遮挡门控(关键,中国坐标先转 WGS-84)
对每方位 φ(每5°):沿 φ 采样海拔到 ~50km,算地平线角 = atan((海拔 - 站点海拔 - 曲率修正)/距离) 曲率修正 = d²/(2·(7/6)·R地球) shield[φ] = 地平线角首次 >2° 的距离 辉光_地形 = Σ A(s)/d^2.5 × 可见度(φ,d) 可见度 = 0 若 d > shield[φ] (被山挡在地平线下) ; 否则 1
| 验证点 | 天顶 | 原始辉光 | 地形辉光 | 被挡 |
|---|---|---|---|---|
| Tivoli(纳米比亚沙漠) | 22.00 | −3.70 | −3.70 | 0% |
| Wiruna(澳洲) | 21.96 | −2.42 | −2.42 | 0% |
| Kendrick Park(Flagstaff旁) | 21.91 | −2.07 | −2.39 | 52% |
| Crestone(背靠4300m山脊) | 21.85 | −2.25 | −2.61 | 56% |
Crestone 东半边被 Sangre de Cristo 5–16° 山脊挡住 100km 外前岭城市群 → 削 56%,实际反超 Wiruna。Kendrick Park 被圣弗朗西斯科峰(3850m)挡 52% → 从"暗袋降3级"救回 2 级。
4.3 降级阈值(暗端 1–3 级;地图SQM≥21.89)
| 地形辉光指数 | 判定 | 观测含义(波特尔定义) |
|---|---|---|
| < −3.0 | 1 级 | 地平线无任何光穹 |
| −3.0 ~ −2.2 | 2 级 | 1–2 个远处微弱光穹 |
| > −2.2 | 降为 3 级 | 光穹明显(暗袋) |
阈值现由"物理模型 + 4 标杆点 + 波特尔定义 + Walker 距离"支撑,属 v0.1;待暗区实测微调(§7)。
5动态层(当夜天象修正)
有效SQM(t) = 基准SQM(地) − Δ月光(t) − Δ银河(t) − Δ曙暮(t) 动态等级(t) = 用 §3 重标定表反查 有效SQM(t)
5.1 月光曲线(已从 16k 实测拟合)
令 u = 月相% / 100 × sin(月高),天顶提亮量 ΔSQM(mag):
| 月高 \ 月相 | <30% | 30–70% | 70–100% |
|---|---|---|---|
| 0–15° | +0.08 | +0.07 | +0.22 |
| 15–30° | +0.07 | +0.11 | +0.42 |
| 30–45° | +0.20 | +0.21 | +0.69 |
| 45°+ | — | +1.02 | +1.78 |
- 光滑近似:ΔSQM ≈ 1.18 · u^0.65(生产版建议直接用上表插值,单点离散大 R²≈0.10)。
- 月光也被地形挡:实测点1 满月提亮 2.35 mag,月被山挡后仅 1.75(少 0.6)→ 月光项也过 §4.2 地形门控(按当时月方位角)。
- 生产版可加"月-目标角距"细化,或改用 Krisciunas-Schaefer 形式。
5.2 银河 / 曙暮光(v2)
- 银河:银道面/银心在天顶附近时天顶变亮 ~±0.2–0.4 mag;按时间地点算天顶银道坐标。
- 曙暮光:太阳高度 > −18° 时天空偏亮(可 >0.5 mag);判断是否在天文夜内。
6观测可行性轴(独立于光污染等级)
6.1 云(双向影响,已从实测得系数)
各环境满云相对晴天的 SQM 变化:
| 环境(地图SQM) | 少云 | 多云 | 满云 |
|---|---|---|---|
| 城市/亮(<19) | −0.2 | −0.4 | −2.2 |
| 郊区(19–20.5) | −0.2 | −0.5 | −3.8 |
| 乡村(20.5–21.3) | −0.1 | — | −1.8 |
| 极暗(>21.3) | 0 | 0 | +0.3 |
6.2 湿度 + 近处路灯(亚网格局部污染)
- 实测点2:地图 20.84,实测仅 20.20(−0.64 mag),因近处零星路灯 + 溪边高湿度散射。
- 这些在地图(~0.9km)和辉光采样(4km)分辨率之下,抓不到。
- 需外部数据:湿度(气象 API)+ 高分辨率本地灯光(OSM 路灯 / VIIRS)。属 v2。
7标定状态与外部锚定
| 要标定的量 | 能否从 16k 天顶实测拟合 | 状态 |
|---|---|---|
| 天顶↔SQM 重标定 | ✅ 能 | 已完成(§3) |
| 云影响系数 | ✅ 能 | 已完成(§6.1) |
| 月光曲线 | ✅ 能 | 已完成(§5.1) |
| 周围/地形→天顶残差 | ✅ 能 | 可做(待跑) |
| 周围辉光→降几级 | ❌ 不能 | 需外部真值 |
为何降级系数拟合不出来:实测是天顶,波特尔是全天空;周边光穹主要影响地平线,天顶 SQM 几乎看不到 → 在"天顶固定"下数据里没有随地平线变化的量。结构性限制。
外部锚定(替代暗区实测):
- 波特尔 1 vs 2 的定义本身就是"地平线有无光穹":1级=无远处光污染;2级=地平线 1–2 个微弱光穹;SQM 仅差 0.15–0.4 mag。→ 直接验证 §4 并给定性阈值。
- SQM 暗端失效:官方承认 <21.5 精度下降、1–2 级读数仅近似。
- NPS/Duriscoe 用全天空"平均天空亮度(ASL)",正因"光穹在地平线比天顶亮" → 专业界同款思路。
- Walker 定律距离:人口 1000 → 32km、10000 → 80km 可避开;大城市光穹 150+ 英里可见。→ 校准辉光/距离阈值。
8实测验证(ground truth)
8.1 中国实测点(用户提供)
| 点 | WGS-84(修正后) | 地图SQM | 实测 | 用户评级 | 模型 |
|---|---|---|---|---|---|
| 点1 | 23.820, 114.099 | 21.24 | 21.25 | 4级 | ✅ 天顶主导,吻合 |
| 点2 | 23.834, 112.886 | 20.84 | 20.20 | 达不到4级 | ✅ 局部污染−0.64→5级 |
点1:地图准、天顶主导、4 级吻合;月被山挡少提亮 0.6mag(验证地形挡月光)。点2:地图高估 0.64 mag,揭示"亚网格局部污染"(§6.2);E 向城市对应"E 银河不可见"。两点均验证 GCJ→WGS 修正对地形关键(偏移 ~600m)。
8.2 标杆暗点
Tivoli / Hakos(纳米比亚)、Wiruna(澳洲)、Crestone / Kendrick Park(美国) —— 见 §4.2,地形门控正确分离"背山谷地"与"开阔暗袋"。
9实现路线
v1(现在可做,全公开数据)
坐标修正 → SQM 瓦片 → 重标定等级(§3) → 地形感知辉光(§4) → 月光动态层(§5.1) → 云可观测闸门(§6.1)。降级阈值用 v0.1(§4.3)。
v2
银河/曙暮项(§5.2);湿度 + 本地灯光(§6.2,需外部数据);用户实测暗区点微调降级阈值。
10常量与公式速查
SQM 公式 SQM = 22 − 5·log10(1 + (5/195)(e^(0.0195·C)−1)) / log10(100) 辉光 Σ max(0,10^(8−0.4s)−10^(−0.8)) / d^2.5 R=120km, step=4km, 排除 d<3km, 幂 2.5 地形门控 地平线角 > 2° 即挡(含曲率修正 d²/(2·(7/6)·R地球)) 降级阈值 地形辉光指数 <−3.0→1级 / −3.0~−2.2→2级 / >−2.2→3级 月光 ΔSQM ≈ 1.18·u^0.65 , u=月相/100×sin(月高) (或用 §5.1 表插值) 云闸门 满云=不可观测;云"提亮"仅用于有光污染环境 自然地板 SQM 上限 ~22.0,>22.0 视为坏数据剔除 坐标 中国境内 GCJ-02 → WGS-84 反解,偏移 ~600m,地形必做