Browse Source

Merge remote-tracking branch 'remotes/origin/dev_screen_data_2.0' into dev_temp

dev_shibei_match
jianjun 5 years ago
parent
commit
79a0f4cf7c
  1. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java
  2. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
  3. 23
      epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java

@ -500,7 +500,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService {
log.info("计算的结果(List)"+JSON.toJSONString(listTemp));*/
HashMap<String, CalculateResult> resultMap = batchScoreCalculator.getScoreTotalOfSampleId(indexInputVOS);
log.info("计算的结果{}", resultMap);
log.info("计算的结果{}", JSON.toJSONString(resultMap));
return resultMap;
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java

@ -65,9 +65,17 @@ public class BatchScoreCalculator {
normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold));
}
//反正切函数 [-pi/2,pi/2]
if (idx.getScoreCalculator().getMaxValue().compareTo(idx.getScoreCalculator().getMinValue()) == 0) {
normalizeValue = new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP);
BigDecimal maxValue = idx.getScoreCalculator().getMaxValue();
BigDecimal minValue = idx.getScoreCalculator().getMinValue();
if (maxValue.compareTo(minValue) == 0) {
//*((max-min)/ (Math.PI/2))+min
//Math.atan(new Double(vo.getSampleValue().toString()))*
normalizeValue = new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())))
.multiply(
(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.UNNECESSARY))).add(minValue).setScale(6, RoundingMode.HALF_UP);
}
BigDecimal score = normalizeValue.multiply(weight).setScale(6, RoundingMode.HALF_UP);
CalculateResult result = scoreCountOfSamples.get(sampleId);
@ -81,7 +89,7 @@ public class BatchScoreCalculator {
}
IndexScoreVo sampleScore = new IndexScoreVo(idx.getIndexId(), idx.getAllParentIndexCode(), String.valueOf(vo.getSampleValue()), normalizeValue, idx.getWeight());
result.getDetails().add(sampleScore);
result.setTotalScore(result.getTotalScore().add(score).setScale(6, RoundingMode.HALF_UP));
result.setTotalScore(result.getTotalScore().add(score));
}
}

23
epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java

@ -1,17 +1,30 @@
package com.epmet.stats.test.normalizing;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class MathUtilTest {
public static void main(String[] args) {
//值 域:(-π/2,π/2) ->(60,100)
double tan = Math.atan(4);
double tan2 = Math.atan(1);
double tan3 = Math.atan(8);
double tan4 = Math.atan(3);
double tan4 = Math.atan(1000);
double min = 60;
double max = 100;
System.out.println(tan * ((max - min) / (Math.PI / 2)) + min);
System.out.println(tan2 * ((max - min) / (Math.PI / 2)) + min);
System.out.println(tan3 * ((max - min) / (Math.PI / 2)) + min);
System.out.println(tan4 * ((max - min) / (Math.PI / 2)) + min);
System.out.println((tan / Math.PI));
System.out.println((tan2 / Math.PI));
System.out.println((tan3 / Math.PI));
System.out.println((tan4 / Math.PI * 200));
BigDecimal maxValue = new BigDecimal(100);
BigDecimal minValue = new BigDecimal(60);
BigDecimal normalizeValue = new BigDecimal(Math.atan(new Double("4")))
.multiply(
(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))).add(minValue).setScale(6, RoundingMode.HALF_UP);
System.out.println(normalizeValue);
//new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP);
}
}

Loading…
Cancel
Save