|
@@ -358,7 +358,7 @@ public class CalculationUtil {
|
|
BigDecimal total = BigDecimal.ZERO;
|
|
BigDecimal total = BigDecimal.ZERO;
|
|
|
|
|
|
for (String maxHeight : heights) {
|
|
for (String maxHeight : heights) {
|
|
- if(maxHeight.contains( "A")){
|
|
|
|
|
|
+ if (maxHeight.contains("A")) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
List<BigDecimal> maxHeightForWsList = prophaseAnemometryData.stream().filter(p -> p.getLayerHeight().equals(maxHeight)).map(p -> {
|
|
List<BigDecimal> maxHeightForWsList = prophaseAnemometryData.stream().filter(p -> p.getLayerHeight().equals(maxHeight)).map(p -> {
|
|
@@ -369,7 +369,7 @@ public class CalculationUtil {
|
|
List<String> heightList = new ArrayList<>(Arrays.asList(heights)).stream().filter(s -> Integer.valueOf(CalculationUtil.getNumberFromString(maxHeight)) > Integer.valueOf(CalculationUtil.getNumberFromString(s))).collect(Collectors.toList());
|
|
List<String> heightList = new ArrayList<>(Arrays.asList(heights)).stream().filter(s -> Integer.valueOf(CalculationUtil.getNumberFromString(maxHeight)) > Integer.valueOf(CalculationUtil.getNumberFromString(s))).collect(Collectors.toList());
|
|
//计算风切变
|
|
//计算风切变
|
|
for (String minHeight : heightList) {
|
|
for (String minHeight : heightList) {
|
|
- if(minHeight.contains( "A")){
|
|
|
|
|
|
+ if (minHeight.contains("A")) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
List<BigDecimal> minHeightForWsList = prophaseAnemometryData.stream().filter(p -> p.getLayerHeight().equals(minHeight)).map(p -> {
|
|
List<BigDecimal> minHeightForWsList = prophaseAnemometryData.stream().filter(p -> p.getLayerHeight().equals(minHeight)).map(p -> {
|
|
@@ -377,11 +377,11 @@ public class CalculationUtil {
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
//计算平均风速
|
|
//计算平均风速
|
|
BigDecimal wsAveMin = getAvgWind(minHeightForWsList);
|
|
BigDecimal wsAveMin = getAvgWind(minHeightForWsList);
|
|
- double z = new BigDecimal(getNumberFromString(maxHeight)).divide(new BigDecimal(getNumberFromString(minHeight)),8,RoundingMode.HALF_UP).doubleValue();
|
|
|
|
|
|
+ double z = new BigDecimal(getNumberFromString(maxHeight)).divide(new BigDecimal(getNumberFromString(minHeight)), 8, RoundingMode.HALF_UP).doubleValue();
|
|
//计算log 层高
|
|
//计算log 层高
|
|
double z1 = Math.log10(z);
|
|
double z1 = Math.log10(z);
|
|
- if(wsAveMin.compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
- BigDecimal shear = Convert.toBigDecimal(Math.log10(Convert.toDouble(wsAveForMax.divide(wsAveMin,8,RoundingMode.HALF_UP))))
|
|
|
|
|
|
+ if (wsAveForMax.compareTo(BigDecimal.ZERO) > 0 && wsAveMin.compareTo(BigDecimal.ZERO) > 0 && z1 != 0) {
|
|
|
|
+ BigDecimal shear = Convert.toBigDecimal(Math.log10(Convert.toDouble(wsAveForMax.divide(wsAveMin, 8, RoundingMode.HALF_UP))))
|
|
.divide(BigDecimal.valueOf(z1), 8, RoundingMode.HALF_UP);
|
|
.divide(BigDecimal.valueOf(z1), 8, RoundingMode.HALF_UP);
|
|
sumWShear = sumWShear.add(shear);
|
|
sumWShear = sumWShear.add(shear);
|
|
total = total.add(BigDecimal.ONE);
|
|
total = total.add(BigDecimal.ONE);
|