ECMWF 第五代全球再分析经纬场。原件是 NetCDF3,format: 'era5',必须写 product,按文件短名取列。工厂 createEra5Layer。下表是库内带默认色标的产品。同一规范的其它变量见 自行绘制。每个要素的绘制写在该产品的「能力」里。
参数
本页绘制用这些字段。范围写在记录的经纬界上。
| 参数 | 必选 | 用途 | 默认 |
|---|---|---|---|
data | 必选 | 解析出口的 values,一条经纬格网记录 | — |
product | 必选 | 画哪一列,与 parse 的 product 相同 | — |
pieces | 可选 | 分档色标。内置产品可省 | 产品默认档 |
range | 可选 | 过滤可见数值 | 全开 |
fill | 可选 | 连续场可切 cells / isobands / gradient | cells |
convert | 可选 | 绘制换算 (value) => number。自定义时必须同时传 pieces。分类码不能写 | t2m 默认开尔文→摄氏,msl 默认帕斯卡→百帕,tp 默认米→毫米,tcc 默认小数→百分数 |
opacity | 可选 | 透明度,透出底图 | 0.8 |
| 显示与交互 | 可选 | 见 图层 | — |
| 产品 | key | 单位 | 能力 |
|---|---|---|---|
| 2米气温 | t2m | 原件 K,默认画 °C | 绘制:逐格 / 等值面 / 渐变 · 数据裁剪 |
| 平均海平面气压 | msl | 原件 Pa,默认画 hPa | 绘制:逐格 / 等值面 / 渐变 |
| 总降水量 | tp | 原件 m,默认画 mm | 绘制:逐格 / 等值面 / 渐变 |
| 总云量 | tcc | 原件 0~1,默认画 % | 绘制:逐格 / 等值面 / 渐变 |
| 对流有效位能 | cape | J kg⁻¹ | 绘制:逐格 / 等值面 / 渐变 |
| 10米纬向风 | u10 | m/s,西风为正 | 绘制:逐格 / 等值面 / 渐变 |
| 10米经向风 | v10 | m/s,南风为正 | 绘制:逐格 / 等值面 / 渐变 |
| 10米风场 | u10+v10 | 填色 m/s | createEra5WindLayer:风速填色 + 粒子 · 数据裁剪 |
| 降水类型 | ptype | 分类码 4.201 | 绘制:只认逐格 |
数据
经纬 NetCDF3。必须有 longitude / latitude / time(或 valid_time)。一次 parse 一个时次、一层。选填 hour(UTC 0~23)、level(hPa)。单位跟原件。
NetCDF3
longitude[]
latitude[]
time[]
要素变量 (time, latitude, longitude)| 参数 | 含义 |
|---|---|
longitude | 一维经度,西向东 |
latitude | 一维纬度。第 0 行在北;源 lat 从南往北则翻行 |
time | 时次。不写 hour 取第一个 |
| 要素变量 | 按 parse 的 product 取列。对上只出这一列 |
也可传打包,解开再认 NetCDF3。
2米气温
通过绘制经纬格网色斑,用来看 2 米气温。产品 key 为 t2m。parse 出口是 K,默认按 °C 画。本产品能绘制。
文件
ECMWF ERA5「2 metre temperature」(短名 t2m)。原件是经纬 NetCDF3,单位 K。常见日文件 era5.t2m.YYYYMMDD.nc。format: 'era5',product: 't2m'。也可传打包。
数据
文件规则见页头。本产品变量是 2 米气温,原件单位 K。低于 −120 °C 或缺测铺色透明。铺色请传 parse 出口,不要先换成摄氏再喂工厂。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 't2m'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 't2m',
// 示例页默认渐变填色
fill: 'gradient'
// 不传 convert,默认开尔文→摄氏。要按开尔文画就自己传 convert 和 pieces
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
气象预报服务产品色标征求意见稿表 1「气温分布图」。默认档位按摄氏下沿。要按开尔文画就自己传 convert 和对应 pieces。低于 −120 °C 或缺测透明。
| 档 (°C) | <−30 | −30 | −20 | −10 | 0 | 10 | 20 | 30 | 35 | >40 |
|---|---|---|---|---|---|---|---|---|---|---|
| 色 | rgb(2, 12, 100) | rgb(7, 30, 120) | rgb(59, 126, 219) | rgb(155, 188, 232) | rgb(215, 222, 126) | rgb(242, 155, 0) | rgb(238, 88, 31) | rgb(194, 0, 3) | rgb(138, 5, 25) | rgb(80, 0, 15) |
中间 2 °C 一档,色值按表 1 递进。34 / 35 / 37 / 40 按原文加档。图例只挂上表主刻度,铺色仍用全档。
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 2米气温示例。
数据裁剪 setClipPath 按省界贴边。clipField 只给导出 / 统计,不要把格心 NaN 场喂给图层。风场填色和粒子同一套 setClipPath。
平均海平面气压
通过绘制经纬格网色斑,用来看平均海平面气压。产品 key 为 msl。parse 出口是 Pa,默认按 hPa 画。不要写成地面分析 prs 或模式 slp。本产品能绘制。
文件
ECMWF ERA5「Mean sea level pressure」(短名 msl)。原件是经纬 NetCDF3,单位 Pa。常见日文件 era5.msl.YYYYMMDD.nc。format: 'era5',product: 'msl'。也可传打包。
数据
文件规则见页头。本产品变量是平均海平面气压,原件单位 Pa。低于 980 hPa 或缺测铺色透明。铺色请传 parse 出口,不要先换成百帕再喂工厂。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'msl'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'msl',
// 示例页默认渐变填色
fill: 'gradient'
// 不传 convert,默认帕斯卡→百帕。要按帕斯卡画就自己传 convert 和 pieces
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
与地面分析气压同一套业务档(官方色表未到)。默认档位按百帕下沿。要按帕斯卡画就自己传 convert 和对应 pieces。低于 980 hPa 或缺测透明。不要写成 prs / slp。
| 档 (hPa) | 980 | 990 | 1000 | 1005 | 1010 | 1015 | 1020 | 1025 | 1030 | 1040 |
|---|---|---|---|---|---|---|---|---|---|---|
| 色 | rgb(20, 40, 140) | rgb(40, 90, 190) | rgb(70, 150, 210) | rgb(120, 200, 170) | rgb(190, 220, 110) | rgb(240, 210, 70) | rgb(250, 160, 40) | rgb(230, 90, 30) | rgb(190, 30, 40) | rgb(120, 10, 70) |
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 平均海平面气压示例。
总降水量
通过绘制经纬格网色斑,用来看总降水量。产品 key 为 tp。parse 出口是米水深,默认按 mm 画。不要写成地面分析 pre 或卫星定量 qpe。本产品能绘制。
文件
ECMWF ERA5「Total precipitation」(短名 tp)。原件是经纬 NetCDF3,单位 m。常见日文件 era5.tp.YYYYMMDD.nc。format: 'era5',product: 'tp'。也可传打包。
数据
文件规则见页头。本产品变量是累计水深,原件单位 m。低于 0.1 mm(含 0)或缺测铺色透明。铺色请传 parse 出口,不要先换成毫米再喂工厂。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'tp'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'tp',
// 示例页默认渐变填色
fill: 'gradient'
// 不传 convert,默认米→毫米。要按米画就自己传 convert 和 pieces
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
档位按 GB/T 28592(0.1 / 10 / 25 / 50 / 100 / 250 mm),色值同地面分析降水。官方 ERA5 色表未到。默认档位按毫米下沿。要按米画就自己传 convert 和对应 pieces。低于 0.1 mm(含 0)或缺测透明。不要写成 pre / qpe。
| 档 (mm) | 0.1 | 10 | 25 | 50 | 100 | 250 |
|---|---|---|---|---|---|---|
| 色 | rgb(166, 242, 143) | rgb(61, 186, 61) | rgb(97, 184, 255) | rgb(0, 115, 255) | rgb(250, 38, 255) | rgb(133, 0, 133) |
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 总降水量示例。
总云量
通过绘制经纬格网色斑,用来看总云量。产品 key 为 tcc。parse 出口是 0~1,默认按 % 画。不要为 hcc / mcc / lcc 另开页。本产品能绘制。
文件
ECMWF ERA5「Total cloud cover」(短名 tcc)。原件是经纬 NetCDF3,0~1。常见日文件 era5.tcc.YYYYMMDD.nc。format: 'era5',product: 'tcc'。也可传打包。
数据
文件规则见页头。本产品变量是总云量,原件是 0~1。低于 0% 或缺测铺色透明。铺色请传 parse 出口,不要先换成百分数再喂工厂。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'tcc'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'tcc',
// 示例页默认渐变填色
fill: 'gradient'
// 不传 convert,默认小数→百分数。要按 0~1 画就自己传 convert 和 pieces
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
按云量业务档起草(官方色表未到)。默认档位按百分数下沿。要按 0~1 画就自己传 convert 和对应 pieces。低于 0% 或缺测透明。不要复用相对湿度色标。
| 档 (%) | 0 | 20 | 40 | 60 | 80 | 100 |
|---|---|---|---|---|---|---|
| 色 | rgb(236, 244, 252) | rgb(184, 208, 230) | rgb(128, 166, 200) | rgb(76, 122, 168) | rgb(40, 78, 136) | rgb(18, 36, 96) |
中间 10% 一档。
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 总云量示例。
对流有效位能
通过绘制经纬格网色斑,用来看对流有效位能。产品 key 为 cape。单位 J kg⁻¹。不要为 cin / kx 另开页。本产品能绘制。
文件
ECMWF ERA5「Convective available potential energy」(短名 cape)。原件是经纬 NetCDF3,单位 J kg⁻¹。常见日文件 era5.cape.YYYYMMDD.nc。format: 'era5',product: 'cape'。也可传打包。
数据
文件规则见页头。本产品变量是对流有效位能,原件单位 J kg⁻¹。低于 0 或缺测铺色透明。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'cape'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'cape',
// 示例页默认渐变填色
fill: 'gradient'
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
按对流业务档起草(官方色表未到)。档位按 J kg⁻¹ 下沿。低于 0 或缺测透明。
| 档 (J/kg) | 0 | 250 | 1000 | 2000 | 3000 | 5000 |
|---|---|---|---|---|---|---|
| 色 | rgb(220, 240, 200) | rgb(130, 200, 70) | rgb(250, 200, 40) | rgb(240, 90, 20) | rgb(180, 15, 70) | rgb(90, 0, 90) |
中间另有 100 / 500 / 1500 / 2500 / 4000。
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 对流有效位能示例。
10米纬向风
通过绘制经纬格网色斑,用来看 10 米纬向风。产品 key 为 u10。单位 m/s,西风为正。不要合成 ws,不要复用地面分析 ws。本产品能绘制。
文件
ECMWF ERA5「10 metre U wind component」(短名 u10)。原件是经纬 NetCDF3,单位 m/s。常见日文件 era5.u10.YYYYMMDD.nc。format: 'era5',product: 'u10'。也可传打包。
数据
文件规则见页头。本产品变量是 10 米纬向风,原件单位 m/s,西风为正。低于 -20 m/s 或缺测铺色透明。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'u10'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'u10',
// 示例页默认渐变填色
fill: 'gradient'
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
u10 / v10 共用有符号风速档。负值冷色、正值暖色。档位按近地面风分量业务档起草,官方色表未到。按下沿取值,不插值。不要复用地面分析 ws。
| 档 (m/s) | -20 | -12 | -4 | 0 | 4 | 12 | 20 |
|---|---|---|---|---|---|---|---|
| 色 | rgb(20, 40, 140) | rgb(70, 130, 210) | rgb(180, 220, 240) | rgb(250, 245, 220) | rgb(250, 200, 120) | rgb(220, 70, 30) | rgb(110, 0, 50) |
中间另有 -16 / -8 / 8 / 16。
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
// 示例页默认渐变
fill: 'gradient'
// 切逐格 / 等值面
layer.setFill('cells')
layer.setFill('isobands')对照 10米纬向风示例。
10米经向风
通过绘制经纬格网色斑,用来看 10 米经向风。产品 key 为 v10。单位 m/s,南风为正。不要合成 ws,不要复用地面分析 ws。本产品能绘制。
文件
ECMWF ERA5「10 metre V wind component」(短名 v10)。原件是经纬 NetCDF3,单位 m/s。常见日文件 era5.v10.YYYYMMDD.nc。format: 'era5',product: 'v10'。也可传打包。
数据
文件规则见页头。本产品变量是 10 米经向风,原件单位 m/s,南风为正。低于 -20 m/s 或缺测铺色透明。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'v10'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'v10',
// 示例页默认渐变填色
fill: 'gradient'
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
与 u10 同一套有符号风速档。官方色表未到。不要复用地面分析 ws。
能力
绘制 cells / isobands / gradient 互斥。示例页默认渐变填色。
对照 10米经向风示例。
10米风场
成对 U/V 填色加粒子流线。工厂 createEra5WindLayer,product: ['u10','v10']。填色画 √(u²+v²),色档与地面分析风速相同,但不是 product=ws。不能写 convert。
文件
两份单列:ERA5-U10.nc 与 ERA5-V10.nc,各 parse 一次。一份双列:同一 NetCDF3 里同时有 u10 / v10,product: ['u10','v10'] 一次出两列。不要传 GRIB2。
调用
const u = await parse(uBuffer, { format: 'era5', product: 'u10' })
const v = await parse(vBuffer, { format: 'era5', product: 'v10' })
const layer = createEra5WindLayer({
data: [u.values, v.values],
product: ['u10', 'v10'],
fill: { type: 'gradient', show: true },
wind: { show: true, density: 1, speed: 1 }
})
layer.addTo(map)一份双列:
const parsed = await parse(buffer, { format: 'era5', product: ['u10', 'v10'] })
createEra5WindLayer({
data: parsed.values,
product: ['u10', 'v10']
})wind.density / wind.speed 默认 1。密度 1 约 4000 粒(0.25~3 → 400~12000)。速度 1 按大陆尺度进近。
对照 10米风场示例。风场填色和粒子同一套 setClipPath,对照 风场裁剪示例。
降水类型
通过绘制经纬格网色斑,用来看降水类型。产品 key 为 ptype。分类码,码表 4.201。只认逐格铺色,不能写 convert。本产品能绘制。
文件
ECMWF ERA5「Precipitation type」(短名 ptype)。原件是经纬 NetCDF3,分类码。常见日文件 era5.ptype.YYYYMMDD.nc。format: 'era5',product: 'ptype'。也可传打包。
数据
文件规则见页头。本产品变量是降水类型。IFS 只用 0 / 1 / 3 / 5 / 6 / 7 / 8,其余码表行不要写进默认档。无降水透明。
调用
const parsed = await parse(buffer, {
format: 'era5',
// 一次只出这一列
product: 'ptype'
})
const layer = createEra5Layer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'ptype',
// 分类码只认逐格
fill: 'cells'
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
色标
类号按 IFS / WMO 码表 4.201。色值按 ECMWF Forecast User Guide 降水类型配色起草,官方色表未到。按整数类号取色,不插值。无降水透明。
| 类号 | 0 | 1 | 3 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|
| 类名 | 无降水 | 雨 | 冻雨 | 雪 | 湿雪 | 雨夹雪 | 冰粒 |
| 色 | 透明 | rgb(46, 184, 64) | rgb(220, 40, 40) | rgb(50, 110, 220) | rgb(40, 190, 190) | rgb(230, 120, 180) | rgb(240, 210, 50) |
能力
绘制 只认 cells。setFill('isobands') / setFill('gradient') 会报分类码。
fill: 'cells'对照 降水类型示例。