From 78d9d47c27efe345570d3dff27c57e817b9d7bc1 Mon Sep 17 00:00:00 2001
From: wuww <252740454@qq.com>
Date: 星期二, 06 五月 2025 17:39:04 +0800
Subject: [PATCH] 修订降雨文件生成的数值

---
 src/main/java/com/se/nsl/service/ResolveService.java |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/se/nsl/service/ResolveService.java b/src/main/java/com/se/nsl/service/ResolveService.java
index 75c4e9a..67f346b 100644
--- a/src/main/java/com/se/nsl/service/ResolveService.java
+++ b/src/main/java/com/se/nsl/service/ResolveService.java
@@ -103,14 +103,14 @@
             initArgs(data);
             createRainfallFile(data);
 
-            /*update(simu, 2, "璋冪敤姹傝В鍣�");
+            update(simu, 2, "璋冪敤姹傝В鍣�");
             callUwSolver(data);
 
             update(simu, 3, "璋冪敤Zarr杞琓if");
             callZarr2tif(data);
 
             update(simu, 4, "瑙f瀽鏁版嵁");
-            createNsl(data);*/
+            createNsl(data);
 
             update(simu, 10, "瀹屾垚");
         } catch (Exception ex) {
@@ -171,23 +171,30 @@
 
             list.addAll(calcRainfall(r1, r2, prefix, unit));
         }
-        list.add(prefix + YYYYMDHM.format(rainfalls.get(c).getTime()) + ComHelper.getMinVal(rainfalls.get(c).getIntensity() / unit, DIGIT));
+        //list.add(prefix + YYYYMDHM.format(rainfalls.get(c).getTime()) + getMinVal(rainfalls.get(c).getIntensity() / unit, DIGIT));
+        list.add(String.format("%s%s%f", prefix, YYYYMDHM.format(rainfalls.get(c).getTime()), getMinVal(rainfalls.get(c).getIntensity() / unit, DIGIT)));
 
         String rainfallFile = config.getInPath() + File.separator + data.getInPath() + File.separator + "rainfall.dat";
         Files.write(Paths.get(rainfallFile), list, StandardCharsets.UTF_8);
     }
 
+    public static double getMinVal(double val, double radix) {
+        return ((long) Math.floor(val * radix)) / radix;
+    }
+
     // beijing 116.0 40.0 2025 1 1 0 13 1.666666
     private List<String> calcRainfall(Rainfall r1, Rainfall r2, String prefix, int unit) {
         long mins = Math.abs(r2.getTime().getTime() - r1.getTime().getTime()) / (1000 * 60); // 璁$畻鍒嗛挓鏁�
-        double diff = ComHelper.getMinVal((r1.getIntensity() - r2.getIntensity()) / mins / unit, DIGIT);
+        double diff = (r2.getIntensity() - r1.getIntensity()) / mins / unit; //ComHelper.getMinVal((r1.getIntensity() - r2.getIntensity()) / mins / unit, DIGIT);
 
         Calendar cal = Calendar.getInstance();
         cal.setTime(r1.getTime());
 
         List<String> list = new ArrayList<>();
+        double intensity = ComHelper.getMinVal(r1.getIntensity() / unit, DIGIT);
         for (int i = 0; i < mins; i++) {
-            list.add(prefix + YYYYMDHM.format(cal.getTime()) + r1.getIntensity() + diff * i);
+            //list.add(prefix + YYYYMDHM.format(cal.getTime()) + getMinVal((intensity + diff * i), DIGIT));
+            list.add(String.format("%s%s%f", prefix, YYYYMDHM.format(cal.getTime()), getMinVal((intensity + diff * i), DIGIT)));
             cal.add(Calendar.MINUTE, 1);
         }
 

--
Gitblit v1.9.3