昨天刷到一段航拍视频:开学前夜的合肥居民区,镜头缓缓推过去,整片楼的窗户密密麻麻亮着灯——那是还在赶作业的孩子,和陪着的家长。
评论区一片"同一个世界"。
看完我只剩一个好奇:北京呢?回龙观、天通苑那种几十万人的睡城,开学前夜是不是也这样灯火通明?
我没有航拍设备。但我有个AI搭档——就是智谱的GLM-5.3-flash,本文所有实验都是和它一起做的。
我的问题扔过去:北京没法航拍,还有没有办法验证?
它给了一条路:NASA的Suomi NPP卫星每晚凌晨1点30分过境北京上空,用夜光传感器给地面拍照,数据在GIBS平台上向所有人开放。
卫星不关心教育理念,它只记录光。
数据到手,先泼了一盆冷水:这颗卫星的一个像素,边长约750米,装着约56万平方米的地面——差不多700个标准足球场。
它看不见一栋楼、一扇窗,更别提一盏台灯。拿这个验证"开学前夜的灯火",靠谱吗?
我和它来回讨论了几轮,最后定的思路是:看不见单盏灯,不代表什么都测不到——如果整片居民区的作息真的集体改变,统计上一定会留下痕迹。
那就一层一层验证下去。下面是全过程,论证思路比结论重要。
第一层:整城对比——睡城睡了吗
拿开学前一周的周一凌晨1:30,和开学前夜的周一凌晨1:30,同为晴空,先做辐射增益归一化,再对比。
结果:城区指数3.33对3.17,睡城与CBD的亮度比0.99对0.98——纹丝不动。
回龙观·天通苑,四十万人的睡城,两晚在卫星眼里毫无区别。
▲ 半夜1:30,北京睡城对比:一周前 vs 开学前夜

第二层:较真——均值没变,不代表每个像素没变
这是我追问AI的:平均值不变,会不会是"有的楼亮了、有的楼关了"互相抵消?它给了第二层方案:逐像素差分。
对全区1080×1080个像素做差值,再做3σ显著性检验——成片关灯会在差分图上留下暗斑,随机噪声只是雪花。
结果:一片灰。回龙观、通州、大兴、良乡四个居民区带的差分与噪声完全无异,零斑块,零聚集。
▲ 逐像素差分热力图:零斑块,零聚集

第三层:还不服——50个像素的户口调查
我还想再较真一次:干脆抽样,逐个对比。
在回龙观-天通苑的范围里随机抽50个像素(种子固定为42,任何人可复现;采样框约100平方公里,相当于180个像素的地盘)。
先说怎么读数:和手机照片一样,卫星影像的明暗是0到255的数字——0是纯黑,255是亮到刻度顶头。
结果:50个像素里,32个两晚读数一个数都不差;更关键的是,基线夜就有44个(88%)读到254以上——刻度早就顶满了。
这就像体重秤上限150公斤,指针压到底,上面的人再踮脚尖,读数也纹丝不动。
开学前夜这些楼里就算有人开灯,读数最多从254挪到255,只剩1格,物理上无处可去。
唯一一个"显著变暗"的像素孤悬在噪声里,周围没有任何同伴:单个孤立波动是传感器噪声,成片连斑才是真信号,而这里连一个斑都没有。
▲ 50像素采样:88%焊死在饱和上限

反向验证:这颗卫星到底看得见什么?
三层验下来都是"看不见",那这套方法是不是什么都测不了?
为了划出边界,我们做了一个反向验证:找一个它"看得见"的案例。
2022年10月10日起,乌克兰电网遭大规模打击,基辅全城停电。
我们从NASA档案调出停电前后的原始影像:10月9日晚,基辅主城一片完整的光网;10月11日晚,同一片区域几乎整体熄灭。
主城区灰度超过200的亮斑像素,从5726个掉到286个,缩水约95%。
▲ 基辅停电前后:整座城市熄灭,卫星一清二楚

同样这颗卫星,还记录过2019年美国图森把两万盏路灯调暗70%的实验,记录过2022年欧洲能源危机里法国降33%、英国降22%的集体关灯。
共同点:动的是城市照明基础设施。
研究测算,午夜之后路灯只占卫星所测城市亮度的13%,住户窗户的上射光占14%左右。
学生一盏10瓦的台灯,在一格56万平方米的像素里,是往沸腾的池子里滴一滴温水——何况88%的像素早就顶到了刻度天花板。
看不见,不是因为灯不够亮,是这台卫星的精度不够。
750米一格是设计取舍——它的任务是每晚扫完整个地球,拿分辨率换了覆盖面。
换成军用侦察卫星,厘米级分辨率,哪栋楼、哪扇窗亮着灯,一清二楚。
"看不见"从来不是物理定律,只是这台民用卫星的量程边界。
实验做完,我看了看窗外
开学前夜的北京睡城,在这颗卫星眼里纹丝不动。数据是冷的。但那晚收工,我合上屏幕,透过窗户看了看远处的居民区——比平时灯火璀璨,一格一格的窗子亮着。
明天就是9月1日,开学日。想来,又是一个无数家长和孩子的不眠之夜。
这样的夜,我也经历过。卫星看不见那些窗子里的台灯。
但我看得到。
#开学第一课 #卫星遥感 #夜光数据 #NASA #AI搭档
数据与方法:
NASA GIBS平台 Suomi NPP/VIIRS 日夜波段(DNB)每日档案,传感器原生约750米/像素,北京成像时刻为当地凌晨1:30。对比夜均为晴空,经辐射增益归一化与3σ显著性检验;50像素采样种子42,采样框约100平方公里(40.045–40.115°N,116.30–116.46°E),完整数据表可在后台索取。基辅影像为GIBS档案(ENCC增强档),日期为产品档案日,已避开满月与浓云夜,亮斑统计为示意量级。区划轮廓来自高德DataV。
方法局限:单个像素混合约56万平方米地表的全部光源,无法区分个体灯光;月相差异带来的系统误差约4至5个百分点,已在解读中排除。
关于本文的AI分工:模型为智谱GLM-5.3-flash(本文开篇即交代)。数据抓取、像素统计与差分检验,由它编写Python脚本完成,数值结果全部是确定性计算;卫星影像均为NASA原始数据直接渲染,未经任何AI生成、重绘或超分;选夜查云等图像判读由其多模态视觉辅助,信息图版式由其生成SVG代码排版渲染。
文章由它起草、笔者逐段修订定稿。AI负责算图和排版,数据与结论由笔者核验并负责,最后人工润色完成。
数据如何获取(任何人可复现):
NASA GIBS开放接口(gibs.earthdata.nasa.gov),无需注册、无需密钥,浏览器里贴一条网址就能出图。
北京图:WMS接口,图层VIIRS_SNPP_DayNightBand_At_Sensor_Radiance,范围BBOX=115.0,39.0,117.8,41.2,参数TIME填日期(如2026-08-30),返回1080×1080的PNG。
基辅图:同一接口,图层换ENCC增强档,范围BBOX=28.5,49.3,32.5,51.3,TIME=2022-10-09与2022-10-11。接口只出图,灰度统计是下载后用Python逐像素计算的。
不想碰代码的读者,可到Worldview网页版(worldview.earthdata.nasa.gov)选同日期、同图层自行核对。
注意:档案有1至2天延迟,请求还没有数据的日期会返回一张纯灰占位图,别误读成"全城熄灯"。