1、解算数据表增加一个字段:是否稳定。每次滤波时检查滤波窗口内的原始数据时间,当前时间距离最后一条时间超过滤波窗口的2/3时,稳定字段设为true,否则false
2、周跳判断改为东+北的位移之和与门限比较,门限改为800mm
This commit is contained in:
parent
090e148738
commit
7bfc7ec610
@ -42,3 +42,9 @@ beidou-exapi 9908(外)
|
||||
1)离线:设备记录最后一次收到任何数据的时间。定时任务检查设备最后一次时间,如果与当前时间差距大于门限,则判断为离线;D3F0/D3F2清除离线告警
|
||||
2)连续无效解:每次解算完,如果是无效解,则无效解次数加1;否则清0;如果等于N,则产生一次告警。
|
||||
3)连续无固定解:每个周期结束,如果是有效解解,则记录当前时间;D3F2检测当前时间和最近一次有效解时间差距,如果大于N,则产生一次告警。
|
||||
|
||||
2025-03
|
||||
优化推送策略:
|
||||
1)解算数据表增加一个字段:是否稳定。每次滤波时检查滤波窗口内的原始数据时间,当前时间距离最后一条时间超过滤波窗口的2/3时,稳定字段设为true,否则false
|
||||
2)每次推送只推送稳定字段为true的结果
|
||||
例如滤波窗口是24小时,最近一次上线时间是0点,13点上线,则将开始上线时间置为13点,第二天13点开始推送
|
||||
@ -75,4 +75,7 @@ public class GnssCalcData {
|
||||
|
||||
@ExcelProperty("平均延迟")
|
||||
Integer pps;
|
||||
|
||||
@ExcelProperty("是否稳定")
|
||||
Boolean stabled;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ import static com.imdroid.sideslope.bd.GeoCoordConverterUtil.*;
|
||||
*/
|
||||
public class FocusCalculator3 extends FocusCalculator1{
|
||||
//final static long scale = 100000000L;//地球1°:111km,放大到mm乘以100,000,000
|
||||
final static int bad_change_mm = 300;//固定解跳变连续10次超过500mm,认为是周跳
|
||||
final static int bad_change_mm = 800;//固定解水平跳变连续10次超过800mm,认为是周跳
|
||||
final static int bad_duration = 10;
|
||||
|
||||
int bad_count = 0;
|
||||
@ -62,9 +62,8 @@ public class FocusCalculator3 extends FocusCalculator1{
|
||||
counterFixedResult++;
|
||||
if(pointList.size()>0){
|
||||
double[] lastXyz = pointList.get(pointList.size()-1);
|
||||
if(Math.abs(end[0]-lastXyz[0])>bad_change_mm ||
|
||||
Math.abs(end[1]-lastXyz[1])>bad_change_mm ||
|
||||
Math.abs(end[2]-lastXyz[2])>bad_change_mm){
|
||||
if((Math.abs(end[0]-lastXyz[0])+Math.abs(end[1]-lastXyz[1])>bad_change_mm )
|
||||
|| (Math.abs(end[2]-lastXyz[2])>bad_change_mm)){
|
||||
bad_count++;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -138,6 +138,7 @@ public class GNSSCalcFilterService {
|
||||
double msumD = sumD;
|
||||
int count = 1;
|
||||
int minCount = 1;
|
||||
LocalDateTime lastRecordTime = null;
|
||||
|
||||
for (GnssCalcData record : gnssHistoryRecords) {
|
||||
if (record.getEnabled()) {//只选取好点参与滤波
|
||||
@ -145,8 +146,10 @@ public class GNSSCalcFilterService {
|
||||
sumN += record.getB562n();
|
||||
sumD += record.getB562d();
|
||||
count++;
|
||||
//记录最后一条有效解的时间
|
||||
lastRecordTime = record.getCreatetime();
|
||||
// 计算短周期
|
||||
if(record.getCreatetime().isAfter(minCycleTime)){
|
||||
if(lastRecordTime.isAfter(minCycleTime)){
|
||||
msumE = sumE;
|
||||
msumN = sumN;
|
||||
msumD = sumD;
|
||||
@ -162,6 +165,8 @@ public class GNSSCalcFilterService {
|
||||
newRecord.setAuxe(NumberUtils.scaleTwo(msumE / minCount));
|
||||
newRecord.setAuxn(NumberUtils.scaleTwo(msumN / minCount));
|
||||
newRecord.setAuxd(NumberUtils.scaleTwo(msumD / minCount));
|
||||
//滤波窗口里的时间跨度超过滤波时间的2/3才认为稳定
|
||||
newRecord.setStabled(lastRecordTime.isBefore(newRecordTime.minusHours(filterCycleHour * 2 / 3)));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -168,6 +168,7 @@ CREATE TABLE IF NOT EXISTS `gnssdevicelocationrecords` (
|
||||
`auxn` double DEFAULT NULL COMMENT '中间过程北N',
|
||||
`auxd` double DEFAULT NULL COMMENT '中间过程天D',
|
||||
`pps` int DEFAULT NULL,
|
||||
`stabled` bit(1) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_deviceid_time` (`createtime` desc,`deviceid`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
@ -132,6 +132,7 @@
|
||||
{field: 'r9250n', title: '拟合北', templet: "<div>{{d.r9250n==null?'':d.r9250n.toFixed(2)}}</div>"},
|
||||
{field: 'r9250d', title: '拟合天', templet: "<div>{{d.r9250d==null?'':d.r9250d.toFixed(2)}}</div>"},
|
||||
{field: 'enabled', title: '有效',templet: '#enabledTrans'},
|
||||
{field: 'stabled', title: '稳定',templet: '#stabledTrans'},
|
||||
{title: '操作', toolbar: '#currentTableBar', fixed: "right", width: 100}
|
||||
];
|
||||
if([[${role}]] != "SUPER_ADMIN") {
|
||||
@ -139,6 +140,7 @@
|
||||
data_cols[10].hide = true;
|
||||
data_cols[11].hide = true;
|
||||
data_cols[13].hide = true;
|
||||
data_cols[14].hide = true;
|
||||
}
|
||||
/**
|
||||
* 初始化表单,要加上,不然刷新部分组件可能会不加载
|
||||
@ -595,5 +597,15 @@
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="stabledTrans">
|
||||
{{# if(d.stabled == false){ }}
|
||||
<span>否</span>
|
||||
{{# } else if(d.stabled == true){ }}
|
||||
<span>是</span>
|
||||
{{# } else { }}
|
||||
<span></span>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
x
Reference in New Issue
Block a user