From e5bdf2e02090357cbd580d54e6cd2406dd541760 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 21 三月 2025 17:39:30 +0800
Subject: [PATCH] 1. 新增卫星遥测网格热力图计算逻辑(待完成)
---
src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
index 2c6cc71..d4d315c 100644
--- a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
+++ b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
@@ -1,18 +1,20 @@
package com.flightfeather.uav.domain.entity
+import com.flightfeather.uav.biz.dataprocess.AvgPair
import com.flightfeather.uav.common.utils.DateUtil
-import com.flightfeather.uav.dataprocess.AvgPair
import com.flightfeather.uav.lightshare.bean.DataVo
import com.flightfeather.uav.socket.bean.AirData
import com.flightfeather.uav.socket.eunm.FactorType
import java.math.BigDecimal
import java.time.LocalDateTime
import java.time.ZoneId
-import java.time.ZoneOffset
import java.util.*
import javax.persistence.Column
import javax.persistence.Id
-import kotlin.math.*
+import kotlin.math.atan
+import kotlin.math.cos
+import kotlin.math.round
+import kotlin.math.sin
/**
* 瀹炴椂鐩戞祴鏁版嵁鍩虹被
@@ -67,6 +69,9 @@
@Column(name = "NOI")
var noi: Float? = null
+ @Column(name = "NO")
+ var no: Float? = null
+
var velocity: Float? = null
@Column(name = "wind_speed")
@@ -106,11 +111,38 @@
add(AirData().apply { setData(FactorType.WIND_SPEED, windSpeed) })
add(AirData().apply { setData(FactorType.WIND_DIRECTION, windDirection) })
add(AirData().apply { setData(FactorType.HEIGHT, height) })
+ add(AirData().apply { setData(FactorType.NO, no) })
}
}
+
+ fun getByFactorType(type: FactorType?): Float? {
+ return when (type) {
+ FactorType.NO2 -> no2
+ FactorType.CO -> co
+ FactorType.H2S -> h2s
+ FactorType.SO2 -> so2
+ FactorType.O3 -> o3
+ FactorType.PM25 -> pm25
+ FactorType.PM10 -> pm10
+ FactorType.TEMPERATURE -> temperature
+ FactorType.HUMIDITY -> humidity
+ FactorType.VOC -> voc
+ FactorType.NOI -> noi
+ FactorType.LNG -> longitude?.toFloat()
+ FactorType.LAT -> latitude?.toFloat()
+ FactorType.VELOCITY -> velocity
+// FactorType.TIME -> dataTime?.time?.toFloat()
+ FactorType.WIND_SPEED -> windSpeed
+ FactorType.WIND_DIRECTION -> windDirection
+ FactorType.HEIGHT -> height
+ FactorType.NO -> no
+ else -> null
+ }
+ }
+
}
-fun List<BaseRealTimeData>.avg(): RealTimeDataGridMin {
+fun List<BaseRealTimeData>.avg(): BaseRealTimeData {
//椋庡悜閲囩敤鍗曚綅鐭㈤噺娉曟眰鍙栧潎鍊�
var u = .0//涓滆タ鏂逛綅鍒嗛噺鎬诲拰
var v = .0//鍗楀寳鏂逛綅鍒嗛噺鎬诲拰
@@ -118,7 +150,7 @@
//闄ら鍚戝鐨勫叾浠栧洜瀛愰噰鐢ㄧ畻鏈钩鍧囨硶姹傚彇鍧囧��
val tmpList = mutableListOf<AvgPair>()
- repeat(17) {
+ repeat(18) {
tmpList.add(AvgPair(0f, 0))
}
@@ -233,6 +265,12 @@
this.c++
}
}
+ tmpList[17].apply {
+ it.no?.let {
+ t += it
+ this.c++
+ }
+ }
}
return RealTimeDataGridMin().apply {
@@ -257,6 +295,7 @@
velocity = tmpList[14].avg()
windSpeed = tmpList[15].avg()
height = tmpList[16].avg()
+ no = tmpList[17].avg()
if (c != 0) {
val avgU = u / c
--
Gitblit v1.9.3