只要是符合规范的 ERA5 经纬 NetCDF3,就可以上图。不限于库内已给默认色标的 2 米气温、平均海平面气压、总降水量、总云量和对流有效位能。工厂仍是 createEra5Layer,format: 'era5'。本页要素的绘制写在「能力」里。
参数
与 ERA5 同一套字段。没有内置色标,必须写 pieces。
| 参数 | 必选 | 用途 | 默认 |
|---|---|---|---|
data | 必选 | 解析出口的 values | — |
product | 必选 | 画哪一列,与 parse 的 product 相同,例如 d2m | — |
pieces | 必选 | 分档色标,至少两档 | — |
range | 可选 | 过滤可见数值 | 全开 |
fill | 可选 | 连续场可切三种填色 | cells |
convert | 可选 | 绘制换算。按换算后的单位写 pieces | 不换算 |
opacity | 可选 | 透明度 | 0.8 |
| 显示与交互 | 可选 | 见 图层 | — |
文件
须有 longitude / latitude。原件后缀 .nc,也可传 .gz / .bz2 / .zip / .tgz。一份文件里可以有多个变量,一次 parse 只出你指定的那一列。
ts
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'd2m'
})product 对文件短名。单位跟原件。
调用
没有内置色标,必须写 product 和 pieces。pieces.value 按换算后的单位写。
ts
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'd2m',
// 自行绘制必须给分档。d2m 原件是 K,这里按 °C 写档
convert: kelvinToCelsiusValue,
pieces: [
{ value: -20, color: 'rgb(7, 30, 120)', label: '-20' },
{ value: 0, color: 'rgb(215, 222, 126)', label: '0' },
{ value: 20, color: 'rgb(238, 88, 31)', label: '20' }
]
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
上传验证里选「自定义」,填写要素 key 和分档后再上传,即可对照着图看。
色标
由你给出。pieces 至少两档,value 为区间下沿(到下一档之前用此色),label 只作文案。低于第一档或缺测透明。写法见 图例。
能力
绘制 连续场可切逐格、等值面、渐变。
ts
// 等值面
fill: 'isobands'
// 切回逐格 / 渐变
layer.setFill('cells')
layer.setFill('gradient')