尾流分析页 — 图表数据 JSON 格式说明
对应前端目录:src/views/windResourceWake/
后端接口:POST /energy-manage-analyse-service/wakewindfarm/getWakeWindFarm
当前前端图表配置:utils/overviewChartOptions.js、utils/wakeChartOptions.js
1. 页面与图表一览
| Tab |
区块 |
图表类型 |
前端函数 / 组件 |
| 资源概览 |
A2 各机组风速分布 |
阶梯折线图(多机组) |
getWindDistOption() |
| 资源概览 |
风向玫瑰图(每机组 1 张) |
极坐标堆叠柱状图 |
getSingleWindRoseOption(index) |
| 尾流情况 |
速度与损失分布(左) |
散点图 + 连续色带 |
getScatter1Option() |
| 尾流情况 |
速度与损失分布(右) |
散点图 |
getScatter2Option() |
| 尾流情况 |
尾流影响评估 |
双 Y 轴柱状图 |
getBarOption() |
| 尾流情况 |
尾流影响评估 |
表格 + 缩略图 |
WrwWakeTable |
2. 接口请求与响应(Swagger)
2.1 请求
POST /energy-manage-analyse-service/wakewindfarm/getWakeWindFarm?fieldCode={风场编号}&datatime={yyyy-MM-dd}
| 参数 |
位置 |
必填 |
说明 |
fieldCode |
query |
是 |
平台内部风场编号 |
datatime |
query |
否 |
查询日期;为空时默认昨天 |
2.2 响应包装
{
"code": 200,
"status": true,
"msg": "success",
"data": { }
}
2.3 data — WakeWindFarmVO(风场级)
| 字段 |
类型 |
说明 |
id |
number |
主键 |
fieldId |
string |
风场 ID |
dataDate |
string (date-time) |
数据日期(天) |
windSpeedDistributionChart |
string |
风速分布图资源路径(图片或 JSON 文件 URL) |
wakeRoseDiagramPath |
string |
风向玫瑰图资源路径 |
wakeDistributePath |
string |
风场尾流影响分布图路径 |
wakeLossConfidentPath |
string |
尾流亏损置信度散点图路径 |
velocityDeficitPath |
string |
速度亏损柱状图路径 |
wakeDiscriptionPath |
string |
尾流检测结果文本描述路径 |
getWakeTurbineList |
WakeTurbineVO[] |
风机明细列表(表格 / 散点数据源) |
2.4 WakeTurbineVO(风机级)
| 字段 |
类型 |
说明 |
前端表格列 |
engineId |
string |
风机 ID |
风机名称(可映射显示名) |
fieldId |
string |
风场 ID |
— |
dateResource |
string (date-time) |
数据采集时间 |
— |
isWake |
number |
是否受尾流影响 0/1 |
是否受尾流影响 |
turbulenceIntensity |
number |
湍流强度 |
附加湍流强度 |
velocityDeficit |
number |
尾流速度亏损 |
尾流速度损耗 |
confidentLevel |
number |
检测置信度(如 0.95) |
置信度(前端展示为百分比) |
wakeTurbinePath |
number |
单风机尾流影响图路径/标识 |
图片列 |
2.5 接口响应示例
{
"code": 200,
"status": true,
"msg": "success",
"data": {
"id": 1001,
"fieldId": "WOF047502757",
"dataDate": "2024-04-28T00:00:00",
"windSpeedDistributionChart": "/minio/wake/WOF047502757/2024-04-28/wind-speed-dist.json",
"wakeRoseDiagramPath": "/minio/wake/WOF047502757/2024-04-28/wind-rose.json",
"wakeDistributePath": "/minio/wake/WOF047502757/2024-04-28/wake-distribute.png",
"wakeLossConfidentPath": "/minio/wake/WOF047502757/2024-04-28/loss-confident.json",
"velocityDeficitPath": "/minio/wake/WOF047502757/2024-04-28/velocity-deficit.json",
"wakeDiscriptionPath": "/minio/wake/WOF047502757/2024-04-28/description.txt",
"getWakeTurbineList": [
{
"engineId": "JH03",
"fieldId": "WOF047502757",
"dateResource": "2024-04-28T00:00:00",
"isWake": 1,
"turbulenceIntensity": 80,
"velocityDeficit": 2,
"confidentLevel": 0.9,
"wakeTurbinePath": "/minio/wake/turbine/JH03.png"
},
{
"engineId": "JH04",
"fieldId": "WOF047502757",
"dateResource": "2024-04-28T00:00:00",
"isWake": 0,
"turbulenceIntensity": 45,
"velocityDeficit": 1,
"confidentLevel": 0.95,
"wakeTurbinePath": "/minio/wake/turbine/JH04.png"
}
]
}
}
说明:Swagger 中部分图表字段为 *Path 字符串。若后端直接返回可访问的 JSON 文件,前端需二次请求该 URL 并按下文「图表专用 JSON」解析;若后端改为在接口内嵌 JSON,建议使用下文推荐的 charts 结构。
3. 推荐:前端图表专用 JSON 结构
以下为与当前 ECharts 实现对齐的结构化数据格式,便于后端一次性返回或写入 *Path 指向的 JSON 文件。
{
"meta": {
"fieldCode": "WOF047502757",
"fieldId": "WOF047502757",
"datatime": "2024-04-28",
"titleDate": "2024-04-28"
},
"windSpeedDistribution": { },
"windRose": { },
"layoutLossScatter": { },
"lossConfidenceScatter": { },
"lossDelBar": { },
"turbineTable": [ ]
}
4. 各图表数据格式与示例
4.1 A2 各机组风速分布(阶梯折线图)
用途:对比各机组风速概率密度曲线。
X 轴:风速 (m/s),当前前端固定 0 ~ 25,步长 0.5。
Y 轴:概率密度,当前前端固定 0 ~ 0.24。
字段说明
| 字段 |
类型 |
必填 |
说明 |
turbines |
array |
是 |
机组列表 |
turbines[].engineId |
string |
是 |
机组编号,用于图例 |
turbines[].displayName |
string |
否 |
展示名,缺省用 engineId |
turbines[].color |
string |
否 |
折线颜色,缺省前端色板 |
turbines[].points |
array |
是 |
[风速, 概率密度] 二维点 |
points[][0] |
number |
是 |
风速 m/s |
points[][1] |
number |
是 |
概率密度 |
示例
{
"windSpeedDistribution": {
"xAxis": { "min": 0, "max": 25, "interval": 5, "name": "风速 (m/s)" },
"yAxis": { "min": 0, "max": 0.24, "interval": 0.05, "name": "概率密度" },
"turbines": [
{
"engineId": "JH03",
"displayName": "JH03",
"points": [
[0.0, 0.012],
[0.5, 0.028],
[1.0, 0.065],
[3.0, 0.135],
[5.0, 0.115],
[7.0, 0.042]
]
},
{
"engineId": "JH04",
"displayName": "JH04",
"points": [
[0.0, 0.010],
[0.5, 0.025],
[3.0, 0.128],
[5.5, 0.108]
]
}
]
}
}
映射到 ECharts series
// 每个 turbine 对应一条 series
{
name: turbine.engineId,
type: "line",
step: "middle",
data: turbine.points // [[x,y], ...]
}
4.2 风向玫瑰图(极坐标堆叠柱状图)
用途:每台机组一张玫瑰图,展示 16 方位 × 5 个风速段的频次。
方位:N → NE → E → SE → S → SW → W → NW(中间空槽位用于留白,共 16 格)。
风速段(固定顺序,与前端 ROSE_SPEED_BANDS 一致):
0~3 m/s
3~6 m/s
6~9 m/s
9~12 m/s
>12 m/s
字段说明
| 字段 |
类型 |
必填 |
说明 |
speedBands |
string[] |
否 |
风速段名称,默认见上 |
directions |
string[] |
否 |
16 方位标签,默认含空字符串间隔 |
turbines |
array |
是 |
每机组一组数据 |
turbines[].engineId |
string |
是 |
机组编号(卡片标题) |
turbines[].bands |
array |
是 |
长度 5,每个风速段一条 |
bands[].band |
string |
是 |
风速段名称 |
bands[].values |
number[] |
是 |
长度 16,各方位频次/占比 |
示例(单机组)
{
"windRose": {
"speedBands": ["0~3 m/s", "3~6 m/s", "6~9 m/s", "9~12 m/s", ">12 m/s"],
"directions": ["N", "", "NE", "", "E", "", "SE", "", "S", "", "SW", "", "W", "", "NW", ""],
"turbines": [
{
"engineId": "JH03",
"bands": [
{ "band": "0~3 m/s", "values": [2.1, 1.8, 2.3, 1.5, 0.9, 0.6, 0.5, 0.4, 0.5, 0.6, 0.8, 1.2, 1.9, 2.0, 2.2, 1.7] },
{ "band": "3~6 m/s", "values": [1.9, 1.6, 2.0, 1.3, 0.8, 0.5, 0.4, 0.3, 0.4, 0.5, 0.7, 1.0, 1.7, 1.8, 2.0, 1.5] },
{ "band": "6~9 m/s", "values": [1.2, 1.0, 1.5, 0.9, 0.6, 0.4, 0.3, 0.2, 0.3, 0.4, 0.5, 0.8, 1.2, 1.3, 1.5, 1.1] },
{ "band": "9~12 m/s", "values": [0.5, 0.4, 0.6, 0.3, 0.2, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.3, 0.5, 0.5, 0.6, 0.4] },
{ "band": ">12 m/s", "values": [0.2, 0.1, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.2] }
]
},
{
"engineId": "JH04",
"bands": [ ]
}
]
}
}
4.3 风电场布局与机组日尺度发电量损失图(散点图 1)
用途:平面坐标展示机组位置,颜色/大小编码发电量损失百分比。
点结构:[东西坐标(米), 南北坐标(米), 发电量损失(%)]
字段说明
| 字段 |
类型 |
必填 |
说明 |
title |
string |
否 |
图表标题 |
xAxis |
object |
否 |
{ min, max, name } 东西方向 |
yAxis |
object |
否 |
{ min, max, name } 南北方向 |
visualMap |
object |
否 |
{ min, max } 损失色带范围,默认 0~85 |
points |
array |
是 |
散点列表 |
points[].engineId |
string |
是 |
机组 ID(点标签) |
points[].east |
number |
是 |
东西坐标(米) |
points[].north |
number |
是 |
南北坐标(米) |
points[].lossPercent |
number |
是 |
发电量损失 % |
示例
{
"layoutLossScatter": {
"title": "风电场布局与机组日尺度发电量损失图(2024-04-28)",
"xAxis": { "min": 333200, "max": 333450, "name": "东西方向坐标(米)" },
"yAxis": { "min": 4172500, "max": 4174000, "name": "南北方向坐标(米)" },
"visualMap": { "min": 0, "max": 85 },
"points": [
{ "engineId": "L9Xcm4u0", "east": 333330, "north": 4173350, "lossPercent": 7.8 },
{ "engineId": "7xKAWgZW", "east": 333410, "north": 4172980, "lossPercent": 84.7 },
{ "engineId": "3jyH154U", "east": 333270, "north": 4172520, "lossPercent": 0.4 }
]
}
}
ECharts 数据格式
{ name: "L9Xcm4u0", value: [333330, 4173350, 7.8] }
4.4 日尺度损失与可信度散点图(散点图 2)
用途:损失 % vs 可信度 %,用于区分高损失高/低可信区域。
点结构:[发电量损失(%), 结果可信度(%)]
字段说明
| 字段 |
类型 |
必填 |
说明 |
title |
string |
否 |
图表标题 |
xAxis |
object |
否 |
损失轴 { min: 0, max: 90 } |
yAxis |
object |
否 |
可信度轴 { min: 65, max: 98 } |
points |
array |
是 |
散点列表 |
points[].engineId |
string |
是 |
机组 ID |
points[].lossPercent |
number |
是 |
发电量损失 % |
points[].confidencePercent |
number |
是 |
结果可信度 % |
points[].color |
string |
否 |
点颜色(如 #4CAF50 高可信) |
示例
{
"lossConfidenceScatter": {
"title": "日尺度损失与可信度散点图(2024-04-28)",
"points": [
{ "engineId": "L9Xcm4u0", "lossPercent": 7.8, "confidencePercent": 92, "color": "#C0C0C0" },
{ "engineId": "7xKAWgZW", "lossPercent": 84.7, "confidencePercent": 87, "color": "#E85D5D" },
{ "engineId": "3jyH154U", "lossPercent": 0.4, "confidencePercent": 67, "color": "#E85D5D" },
{ "engineId": "3dORuyAV", "lossPercent": 3.4, "confidencePercent": 95, "color": "#4CAF50" }
]
}
}
ECharts 数据格式
{ name: "L9Xcm4u0", value: [7.8, 92], itemStyle: { color: "#C0C0C0" } }
4.5 各机组日尺度发电量损失与相对 DEL 指标(双柱图)
用途:每台机组两根柱:发电量损失 %、相对 DEL 指标 %。
字段说明
| 字段 |
类型 |
必填 |
说明 |
title |
string |
否 |
图表标题 |
items |
array |
是 |
机组柱数据 |
items[].engineId |
string |
是 |
X 轴类目 |
items[].lossPercent |
number |
是 |
发电量损失 %(左 Y 轴,0~100) |
items[].delPercent |
number |
是 |
相对 DEL 指标 %(右 Y 轴,0~400) |
示例
{
"lossDelBar": {
"title": "各机组日尺度发电量损失与相对DEL指标(2024-04-28)",
"items": [
{ "engineId": "L9Xcm4u0", "lossPercent": 7.8, "delPercent": 50.8 },
{ "engineId": "o23d6LBB", "lossPercent": 7.5, "delPercent": 54.6 },
{ "engineId": "I7EJ4nPt", "lossPercent": 59.6, "delPercent": 348.4 },
{ "engineId": "7xKAWgZW", "lossPercent": 84.7, "delPercent": 324.4 }
]
}
}
4.6 尾流影响评估表格
用途:分页表格,展示单机尾流诊断结果与缩略图。
字段说明
| 字段 |
类型 |
必填 |
说明 |
name |
string |
是 |
风机名称(展示用) |
engineId |
string |
否 |
风机 ID |
affected |
string |
是 |
"yes" / "no" 或后端 isWake 映射 1→yes, 0→no |
turbulence |
number |
是 |
附加湍流强度 |
loss |
number |
是 |
尾流速度损耗 |
confidence |
string |
是 |
置信度展示,如 "90%" |
image |
string |
是 |
缩略图 URL |
示例
{
"turbineTable": [
{
"name": "风机01",
"engineId": "JH03",
"affected": "yes",
"turbulence": 80,
"loss": 2,
"confidence": "90%",
"image": "https://cdn.example.com/wake/JH03-thumb.png"
},
{
"name": "风机02",
"engineId": "JH04",
"affected": "no",
"turbulence": 90,
"loss": 1,
"confidence": "80%",
"image": "https://cdn.example.com/wake/JH04-thumb.png"
}
]
}
从 WakeTurbineVO 映射示例
{
name: item.engineId,
affected: item.isWake === 1 ? "yes" : "no",
turbulence: item.turbulenceIntensity,
loss: item.velocityDeficit,
confidence: `${Math.round(item.confidentLevel * 100)}%`,
image: item.wakeTurbinePath
}
5. 完整联调示例(推荐一次性返回)
以下为前端可直接消费的聚合 JSON 示例(可放在 data.charts 扩展字段,或由 windSpeedDistributionChart 等 Path 指向的同结构文件提供)。
{
"code": 200,
"status": true,
"msg": "success",
"data": {
"id": 1001,
"fieldId": "WOF047502757",
"dataDate": "2024-04-28T00:00:00",
"windSpeedDistributionChart": null,
"wakeRoseDiagramPath": null,
"wakeDistributePath": null,
"wakeLossConfidentPath": null,
"velocityDeficitPath": null,
"wakeDiscriptionPath": null,
"getWakeTurbineList": [],
"charts": {
"meta": {
"fieldCode": "WOF047502757",
"datatime": "2024-04-28",
"titleDate": "2024-04-28"
},
"windSpeedDistribution": {
"turbines": [
{
"engineId": "JH03",
"points": [[0, 0.01], [1, 0.04], [3, 0.13], [5, 0.11], [7, 0.03]]
}
]
},
"windRose": {
"turbines": [
{
"engineId": "JH03",
"bands": [
{ "band": "0~3 m/s", "values": [2.1, 1.8, 2.3, 1.5, 0.9, 0.6, 0.5, 0.4, 0.5, 0.6, 0.8, 1.2, 1.9, 2.0, 2.2, 1.7] }
]
}
]
},
"layoutLossScatter": {
"title": "风电场布局与机组日尺度发电量损失图(2024-04-28)",
"points": [
{ "engineId": "JH03", "east": 333330, "north": 4173350, "lossPercent": 7.8 }
]
},
"lossConfidenceScatter": {
"title": "日尺度损失与可信度散点图(2024-04-28)",
"points": [
{ "engineId": "JH03", "lossPercent": 7.8, "confidencePercent": 92 }
]
},
"lossDelBar": {
"title": "各机组日尺度发电量损失与相对DEL指标(2024-04-28)",
"items": [
{ "engineId": "JH03", "lossPercent": 7.8, "delPercent": 50.8 }
]
},
"turbineTable": [
{
"name": "JH03",
"engineId": "JH03",
"affected": "yes",
"turbulence": 80,
"loss": 2,
"confidence": "90%",
"image": "/minio/wake/turbine/JH03.png"
}
]
}
}
}
6. 前端对接建议
- 筛选参数:风场
fieldCode、日期 datatime 与 WrwFilterBar 保持一致。
- 优先顺序:若
data.charts 存在则直接渲染;否则按 *Path 拉取 JSON/图片。
- 表格数据:无
charts.turbineTable 时,用 getWakeTurbineList 按 §4.6 映射。
- 色阶与阈值(表格单元格样式,前端写死,无需接口返回):
- 湍流强度:
≥80 高、≥60 中、其余低
- 速度损耗:
≥3 高、≥2 中、其余低
- 置信度:
≥90% 高、≥80% 中、其余低
7. 相关源码索引
| 文件 |
说明 |
src/views/windResourceWake/utils/overviewChartOptions.js |
风速分布、风向玫瑰图 |
src/views/windResourceWake/utils/wakeChartOptions.js |
三张尾流散点/柱图 |
src/views/windResourceWake/data/mockData.js |
当前 Mock 表格与机组名 |
src/views/windResourceWake/components/WrwOverviewTab.vue |
资源概览 Tab |
src/views/windResourceWake/components/WrwWakeTab.vue |
尾流情况 Tab |
swagger.json |
WakeWindFarmVO / WakeTurbineVO 定义 |
docs/API_DESIGN_REPORT_energy-manage-analyse.md |
分析服务 API 总览 |