|
|
@@ -157,18 +157,21 @@ public class UltraShortTermPowerForecastingController extends BaseController
|
|
|
DataUltraShortTermPowerForecasting::getPower240
|
|
|
);
|
|
|
int step = 15;
|
|
|
- for(int i = 0; i < 16; i++){
|
|
|
- UltraShortTermPowerForecastOnceData onceData =
|
|
|
+ // 16个预测点对应 power15..power240 列(相对起报时间 start_time 的 +15min..+240min)
|
|
|
+ for(int i = 1; i < 17; i++){
|
|
|
+ UltraShortTermPowerForecastOnceData onceData =
|
|
|
toOnceData(data, (long) i * step, realDataMap, timePowerConsumers.get(i));
|
|
|
result.add(onceData);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private UltraShortTermPowerForecastOnceData toOnceData(DataUltraShortTermPowerForecasting data, Long plusMinutes, Map<Long, DataElectricityLocal> realDataMap,
|
|
|
+ private UltraShortTermPowerForecastOnceData toOnceData(DataUltraShortTermPowerForecasting data, Long plusMinutes, Map<Long, DataElectricityLocal> realDataMap,
|
|
|
Function<DataUltraShortTermPowerForecasting, String> timePowerConsumer)
|
|
|
{
|
|
|
- Long time = data.getForecastTime() + plusMinutes * 60;
|
|
|
+ // 预测列偏移量相对起报时间 start_time, 实发功率(tm)也须按 start_time 对齐查找;
|
|
|
+ // forecast_time 是末点时间(= start_time+240min), 若作为基准会导致所有点在实发数据窗口外
|
|
|
+ Long time = data.getStartTime() + plusMinutes * 60;
|
|
|
DataElectricityLocal realData = realDataMap.get(time);
|
|
|
double power = parsePower(timePowerConsumer.apply(data));
|
|
|
double actualPower = realData != null ? realData.getActualPower() : 0D;
|