深色模式
标量场:从数据到可信的颜色
温度、降水、气压都可以被表示为标量场(scalar field,每个位置对应一个数),但“每个位置一个数”并不足以决定画法。单位、有效范围、统计含义和网格拓扑,都会影响同一数值应呈现为什么颜色。一个可信的标量图层,必须让图像与读数来自同一个采样过程。
场函数的直觉见场与导数,格点之间如何估计数值见采样与插值。颜色映射发生在这些数值步骤之后。
建立完整数据链
最小链路是:元数据与数组 → 有效性判断 → 空间/时间采样 → 数值归一化 → 色带 → 透明与深度。把范围设为 [vmin,vmax],归一化(normalization)后的无量纲值 x 为:
text
x = clamp((value-vmin)/(vmax-vmin), 0, 1)
color = palette(x)value、vmin、vmax 必须使用同一种单位;clamp(x,0,1) 表示把 x 限制在 0–1,palette(x) 表示按 x 查色带(color map)。例如范围为 −10 到 30°C,10°C 正好位于色带中点。异常值裁到端点只影响显示,不应改写原数组或 tooltip 的数值。vmin==vmax、NaN 与缺测需要单独处理,不能让除零产生的结果进入渲染。
色带要支持读数
单向量适合顺序色带,正负异常量常用以零为中心的发散色带(diverging color map,让中心值两侧具有不同颜色方向)。彩虹并非绝对禁止,但颜色亮度的不均匀可能制造虚假的边界。图例必须包含单位与固定范围;逐帧自动伸缩色域会让同一种颜色在不同时间代表不同值,动画看起来变化剧烈,实际数值却可能几乎没变。
透明度也传递信息。为了减弱低值区域而设置透明阈值时,要说明“不可见”与“无数据”“真实零值”的区别。边界线、网格与标签用于定位,不应比数据主体更抢眼。
两种合成场解决不同问题
规则正弦场可以写成 f(lon,lat)=A*sin(k*lon)*cos(lat):lon、lat 用弧度,k 是无量纲整数,A 是带数值单位的振幅(amplitude),f 与 A 同单位。它有可预测的周期和极值,适合查方向、接缝、单位与采样误差。拟真合成场则叠加多尺度扰动、锋面、涡旋与缺测区域,检验现实形态下的视觉连续性、图例与边界处理。
含随机成分的拟真场应使用固定种子(random seed),使问题能复现;它仍不是观测或气象模式输出。纹理看起来像天气,不意味着满足质量守恒、热力平衡或可信预报。规则场负责可证明的正确性,拟真场负责更复杂的压力测试,两者需要配合。
实验控件可切换合成场、最近邻/双线性、两个时刻的权重和色带。教学区域为 111–117°E、20–25°N;两帧值以 RGBA8 编码,着色器先解码与采样数值,再查颜色。
一个场,多种颜色
在同一组合成场上切换采样、时间和颜色映射。
在浏览器本地运行 · 无需账号 · 鼠标拖动旋转,滚轮缩放
教学合成数据,不代表真实观测或天气预报。规则场用于验证,拟真形态用于观察复杂结构。 数据说明
查看运行源码
此代码直接读取实际运行的实验模块。按 kind 分支定位当前实验,也可查看数据公式和 GLSL。
读取源码…观察任务
分别观察规则与拟真合成场,切换最近邻和双线性,留意缺测边缘。再作一个思考实验:若调窄色带数值范围后强中心面积扩大,能否说高温区域真的扩大了?如何检查缺测值没有污染邻近正常格点?
展开答案
色带调整改变阈值对应的颜色,不改变数据。应比较固定数值阈值的覆盖范围。缺测检查可用常量场挖掉一块已知区域:周边有效区仍应保持常量,不能出现极端负值环;边缘透明策略则应符合预先约定。