From 6d817179edaf2a6c793595056f5d250eb4396ab0 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期一, 26 五月 2025 09:54:02 +0800
Subject: [PATCH] 输出的png结果修改为可以通过设置间隔时间来输出

---
 src/main/java/com/se/nsl/service/ResolveService.java |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/se/nsl/service/ResolveService.java b/src/main/java/com/se/nsl/service/ResolveService.java
index cfe6efc..0ee73a6 100644
--- a/src/main/java/com/se/nsl/service/ResolveService.java
+++ b/src/main/java/com/se/nsl/service/ResolveService.java
@@ -210,6 +210,30 @@
         }
         f.mkdirs();
     }
+    
+    enum RainFallUnit {
+        MM_H("mm/h", 60),
+        MM_15MIN("mm/15min", 15),
+        MM_5MIN("mm/5min", 5),
+        MM_MIN("mm/min", 1);
+        private String unit;
+        private int c; //绯绘暟
+        RainFallUnit(String unit, int c) {
+            this.unit = unit;
+            this.c = c;
+        }
+
+        public static RainFallUnit of(String unit) {
+            RainFallUnit[] values = values();
+            for (RainFallUnit v : values) {
+                if (v.unit.equals(unit)) {
+                    return v;
+                }
+            }
+            return MM_H; //榛樿鎸夌収mm/h璁$畻
+        }
+
+    }
 
     public void createRainfallFile(Simu simu, SimuData data) throws Exception {
         List<Rainfall> rainfalls = data.getRainfalls();
@@ -228,8 +252,12 @@
         double centerX = ComHelper.getMinVal((data.getMinx() + data.getMaxx()) / 2, DIGIT);
         double centerY = ComHelper.getMinVal((data.getMiny() + data.getMaxy()) / 2, DIGIT);
         String prefix = config.getRainfallSite() + " " + centerX + " " + centerY + " ";
-        int unit = StringUtils.isEmpty(data.getIntensityUnit()) || "mm/h".equals(data.getIntensityUnit()) ? 60 : 5;
-
+        //濡傛灉娌℃湁鍗曚綅鎴栬�呭崟浣嶄负mm/h鍒欐寜鐓� mm/h璁$畻锛屽惁鍒欐寜鐓m/5min璁$畻
+//        int unit = StringUtils.isEmpty(data.getIntensityUnit()) || "mm/h".equals(data.getIntensityUnit()) ? 60 : 5;
+        String iu = data.getIntensityUnit();
+        RainFallUnit rfUnit = RainFallUnit.of(iu);
+        data.setIntensityUnit(rfUnit.unit);
+        int unit = rfUnit.c;
         int c = rainfalls.size() - 1;
         for (int i = 0; i < c; i++) {
             Rainfall r1 = rainfalls.get(i);
@@ -290,7 +318,10 @@
         String landuseFile = inPath + File.separator + config.getLanduseFile();
         String rainfallFile = (inPath + File.separator + "rainfall.dat");
         String saveName = inPath + File.separator + "result.zarr";
-        ConfigVo vo = new ConfigVo(terrainFile, landuseFile, terrainFile, rainfallFile, saveName, duration, config.getSaveFrames());
+//        ConfigVo vo = new ConfigVo(terrainFile, landuseFile, terrainFile, rainfallFile, saveName, duration, config.getSaveFrames());
+        Integer saveFrameInterval = config.getSaveFrameInterval();
+        int saveFrames = duration / 60 / saveFrameInterval;
+        ConfigVo vo = new ConfigVo(terrainFile, landuseFile, terrainFile, rainfallFile, saveName, duration, saveFrames);
 
         String configFile = config.getInPath() + File.separator + data.getInPath() + File.separator + data.getInPath() + ".json";
         ComHelper.writeJson(configFile, JSON.toJSONString(vo));

--
Gitblit v1.9.3