只要是符合规范的 MICAPS 第 4 类文件,就可以上图。不限于库内已给默认色标的平均温度、降水、冰雹概率、相对湿度、风速、海平面气压、露点、最高气温、最低气温、3小时变压、24小时变压和24小时变温。工厂仍是 createFieldLayer,format: 'micaps4'。本页要素同样能绘制、裁剪、订正、图件出图。
参数
与 地面分析 同一套字段。没有内置色标,必须写 pieces。
| 参数 | 必选 | 用途 | 默认 |
|---|---|---|---|
data | 必选 | 解析出口的 values | — |
product | 必选 | 画哪一列,与 parse 的 product 相同,例如 vis | — |
pieces | 必选 | 分档色标,至少两档 | — |
range | 可选 | 过滤可见数值 | 全开 |
fill | 可选 | cells / isobands / gradient | cells |
convert | 可选 | 绘制换算。按换算后的单位写 pieces | 不换算 |
contour | 可选 | 等值线 | 关 |
labels | 可选 | 格点填值 | 关 |
thin | 可选 | 缩放稀释 | 开 |
| 显示与交互 | 可选 | 见 图层 | — |
文件
头为文本 diamond 4。原件常见 .001 / .000 / .txt,也可传 .gz / .bz2 / .zip / .tgz。一份文件里可以有多个要素,一次 parse 只出你指定的那一列。
ts
const parsed = await parse(buffer, {
format: 'micaps4',
// 一次只出这一列
product: 'vis'
})product 是记录列名,字母开头,例如 vis。已有默认色标的列见 地面分析。
数据
文件规则见 地面分析。本列名与 parse 的 product 相同,对文件说明里的要素。缺测写 9999。
调用
没有内置色标,必须写 product 和 pieces。
ts
const layer = createFieldLayer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'vis',
// 自行绘制必须给分档
pieces: [
{ value: 0, color: 'rgb(200, 220, 255)', label: '0~50' },
{ value: 50, color: 'rgb(40, 120, 200)', label: '50~80' },
{ value: 80, color: 'rgb(10, 40, 120)', label: '≥80' }
],
// 等值面填色
fill: 'isobands'
})
layer.addTo(map)当前场四至:layer.getBounds(),套合视野由调用侧做。见 图层。
上传验证里选「自定义」,填写要素 key 和分档后再上传,即可对照着图看。
色标
由你给出。pieces 至少两档,value 为区间下沿(到下一档之前用此色),label 只作文案,可写成 '0~50'。低于第一档或缺测透明。写法见 图例。
能力
绘制 cells / isobands / gradient 互斥,可叠等值线、填值、框线。
ts
// 切填色、等值线、填值、框线
layer.setFill('cells')
layer.setFill('gradient')
layer.setContour(true)
layer.setLabels(true)
layer.setStroke(true)细写见 绘制。
图件出图 与地面分析同一套。细写见 图件出图。对照 图件出图示例。
数据裁剪 列名与 parse 的 product 相同,例如 vis。
ts
const clipped = clipField(parsed.values, {
// 要裁的列,与 parse 相同
product: 'vis',
boundary
})
layer.setClipPath(boundary)格点订正 写回当前列。
ts
const session = createFieldCorrect(layer)
session.start()
// 选区写成新值
session.apply(60)