From ddee792c3e8991a72990dbb485bde26bdb968c93 Mon Sep 17 00:00:00 2001 From: wuww <252740454@qq.com> Date: 星期三, 14 五月 2025 14:07:42 +0800 Subject: [PATCH] 升级求解器至2.0 --- src/main/java/com/se/nsl/controller/TestController.java | 18 ++ src/main/java/com/se/nsl/domain/vo/ResultVo.java | 83 ++++++++++++++++ src/main/java/com/se/nsl/service/ResolveService.java | 17 +- data/init.sql | 2 src/main/resources/application-prod.yml | 5 src/main/java/com/se/nsl/domain/vo/ConfigVo.java | 130 +++++++++++-------------- 6 files changed, 169 insertions(+), 86 deletions(-) diff --git a/data/init.sql b/data/init.sql index 1c3dff9..1fefb81 100644 --- a/data/init.sql +++ b/data/init.sql @@ -47,7 +47,7 @@ select id,name,service_name,type,area_type,area_name,status,result,create_time,update_time,bak,data,st_astext(geom) from nsl.simu where id > 0 order by id desc; -- update nsl.simu set status=0,area_name='鎴垮北鍖�',result=null,data = '{"startTime":"2025-05-01 11:10:54","type":3,"total":50,"duration":6,"intensity":70,"history":"XX骞�50mm闄嶉洦"}' where id = 17; --- update nsl.simu set status=0,area_name='鎴垮北鍖�',result=null,data = '{"startTime":"2025-05-06 14:31:58","type":3,"total":1025,"duration":96,"intensity":78.5,"rainfalls":[{"time":"2023-07-29 22:00:00","intensity":2,"total":2},{"time":"2023-07-29 23:00:00","intensity":2,"total":4},{"time":"2023-07-30 00:00:00","intensity":3.5,"total":7.5},{"time":"2023-07-30 01:00:00","intensity":2.5,"total":10},{"time":"2023-07-30 02:00:00","intensity":2,"total":244.5},{"time":"2023-07-30 03:00:00","intensity":3.5,"total":339.5},{"time":"2023-07-30 04:00:00","intensity":6,"total":345.5},{"time":"2023-07-30 05:00:00","intensity":10.5,"total":356},{"time":"2023-07-30 06:00:00","intensity":4.5,"total":360.5},{"time":"2023-07-30 07:00:00","intensity":5.5,"total":366},{"time":"2023-07-30 08:00:00","intensity":13,"total":379},{"time":"2023-07-30 09:00:00","intensity":17,"total":396},{"time":"2023-07-30 10:00:00","intensity":15.5,"total":25.5},{"time":"2023-07-30 11:00:00","intensity":17.5,"total":43},{"time":"2023-07-30 12:00:00","intensity":16,"total":59},{"time":"2023-07-30 13:00:00","intensity":18.5,"total":77.5},{"time":"2023-07-30 14:00:00","intensity":13,"total":90.5},{"time":"2023-07-30 15:00:00","intensity":23.5,"total":114},{"time":"2023-07-30 16:00:00","intensity":28.5,"total":142.5},{"time":"2023-07-30 17:00:00","intensity":24.5,"total":167},{"time":"2023-07-30 18:00:00","intensity":43,"total":210},{"time":"2023-07-30 19:00:00","intensity":32.5,"total":242.5},{"time":"2023-07-30 20:00:00","intensity":49.5,"total":294},{"time":"2023-07-30 21:00:00","intensity":18.5,"total":312.5},{"time":"2023-07-30 22:00:00","intensity":8,"total":320.5},{"time":"2023-07-30 23:00:00","intensity":15.5,"total":336},{"time":"2023-07-31 00:00:00","intensity":12.5,"total":408.5},{"time":"2023-07-31 01:00:00","intensity":15,"total":423.5},{"time":"2023-07-31 02:00:00","intensity":4,"total":537},{"time":"2023-07-31 03:00:00","intensity":12,"total":647},{"time":"2023-07-31 04:00:00","intensity":5,"total":652},{"time":"2023-07-31 05:00:00","intensity":36.5,"total":688.5},{"time":"2023-07-31 06:00:00","intensity":18,"total":706.5},{"time":"2023-07-31 07:00:00","intensity":26,"total":732.5},{"time":"2023-07-31 08:00:00","intensity":38,"total":770.5},{"time":"2023-07-31 09:00:00","intensity":39.5,"total":810},{"time":"2023-07-31 10:00:00","intensity":38,"total":461.5},{"time":"2023-07-31 11:00:00","intensity":27,"total":488.5},{"time":"2023-07-31 12:00:00","intensity":5.5,"total":494},{"time":"2023-07-31 13:00:00","intensity":2.5,"total":496.5},{"time":"2023-07-31 14:00:00","intensity":4,"total":500.5},{"time":"2023-07-31 15:00:00","intensity":8,"total":508.5},{"time":"2023-07-31 16:00:00","intensity":8.5,"total":517},{"time":"2023-07-31 17:00:00","intensity":0.5,"total":517.5},{"time":"2023-07-31 18:00:00","intensity":10,"total":527.5},{"time":"2023-07-31 19:00:00","intensity":5.5,"total":533},{"time":"2023-07-31 20:00:00","intensity":20.5,"total":557.5},{"time":"2023-07-31 21:00:00","intensity":25,"total":582.5},{"time":"2023-07-31 22:00:00","intensity":25.5,"total":608},{"time":"2023-07-31 23:00:00","intensity":27,"total":635},{"time":"2023-08-01 00:00:00","intensity":78.5,"total":888.5},{"time":"2023-08-01 01:00:00","intensity":32.5,"total":921},{"time":"2023-08-01 02:00:00","intensity":9.5,"total":956.5},{"time":"2023-08-01 03:00:00","intensity":6.5,"total":981.5},{"time":"2023-08-01 04:00:00","intensity":22.5,"total":1004},{"time":"2023-08-01 05:00:00","intensity":1,"total":1005},{"time":"2023-08-01 06:00:00","intensity":0,"total":1005},{"time":"2023-08-01 07:00:00","intensity":8,"total":1013},{"time":"2023-08-01 08:00:00","intensity":6,"total":1019},{"time":"2023-08-01 09:00:00","intensity":5.5,"total":1024.5},{"time":"2023-08-01 10:00:00","intensity":3,"total":924},{"time":"2023-08-01 11:00:00","intensity":5.5,"total":929.5},{"time":"2023-08-01 12:00:00","intensity":8.5,"total":938},{"time":"2023-08-01 13:00:00","intensity":8,"total":946},{"time":"2023-08-01 14:00:00","intensity":0.5,"total":946.5},{"time":"2023-08-01 16:00:00","intensity":0,"total":946.5},{"time":"2023-08-01 18:00:00","intensity":0.5,"total":947},{"time":"2023-08-01 20:00:00","intensity":17,"total":973.5},{"time":"2023-08-01 21:00:00","intensity":1,"total":974.5},{"time":"2023-08-01 22:00:00","intensity":0.5,"total":975},{"time":"2023-08-02 00:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 02:00:00","intensity":0,"total":1025},{"time":"2023-08-02 03:00:00","intensity":0.5,"total":1025.5},{"time":"2023-08-02 04:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 06:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 08:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 12:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 14:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 15:00:00","intensity":0.5,"total":1025},{"time":"2023-08-02 18:00:00","intensity":0,"total":1025},{"time":"2023-08-02 20:00:00","intensity":0,"total":1025},{"time":"2023-08-02 22:00:00","intensity":0,"total":1025}]}' where id = 17; +-- update nsl.simu set status=0,area_name='鎴垮北鍖�',result=null,data = '{"startTime":"2025-05-06 14:31:58","type":3,"total":1025,"duration":14,"intensity":78.5,"rainfalls":[{"time":"2023-07-29 22:00:00","intensity":2,"total":2},{"time":"2023-07-29 23:00:00","intensity":2,"total":4},{"time":"2023-07-30 00:00:00","intensity":3.5,"total":7.5},{"time":"2023-07-30 01:00:00","intensity":2.5,"total":10},{"time":"2023-07-30 02:00:00","intensity":2,"total":244.5},{"time":"2023-07-30 03:00:00","intensity":3.5,"total":339.5},{"time":"2023-07-30 04:00:00","intensity":6,"total":345.5},{"time":"2023-07-30 05:00:00","intensity":10.5,"total":356},{"time":"2023-07-30 06:00:00","intensity":4.5,"total":360.5},{"time":"2023-07-30 07:00:00","intensity":5.5,"total":366},{"time":"2023-07-30 08:00:00","intensity":13,"total":379},{"time":"2023-07-30 09:00:00","intensity":17,"total":396},{"time":"2023-07-30 10:00:00","intensity":15.5,"total":25.5},{"time":"2023-07-30 11:00:00","intensity":17.5,"total":43},{"time":"2023-07-30 12:00:00","intensity":16,"total":59},{"time":"2023-07-30 13:00:00","intensity":18.5,"total":77.5},{"time":"2023-07-30 14:00:00","intensity":13,"total":90.5},{"time":"2023-07-30 15:00:00","intensity":23.5,"total":114},{"time":"2023-07-30 16:00:00","intensity":28.5,"total":142.5},{"time":"2023-07-30 17:00:00","intensity":24.5,"total":167},{"time":"2023-07-30 18:00:00","intensity":43,"total":210},{"time":"2023-07-30 19:00:00","intensity":32.5,"total":242.5},{"time":"2023-07-30 20:00:00","intensity":49.5,"total":294},{"time":"2023-07-30 21:00:00","intensity":18.5,"total":312.5},{"time":"2023-07-30 22:00:00","intensity":8,"total":320.5},{"time":"2023-07-30 23:00:00","intensity":15.5,"total":336},{"time":"2023-07-31 00:00:00","intensity":12.5,"total":408.5},{"time":"2023-07-31 01:00:00","intensity":15,"total":423.5},{"time":"2023-07-31 02:00:00","intensity":4,"total":537},{"time":"2023-07-31 03:00:00","intensity":12,"total":647},{"time":"2023-07-31 04:00:00","intensity":5,"total":652},{"time":"2023-07-31 05:00:00","intensity":36.5,"total":688.5},{"time":"2023-07-31 06:00:00","intensity":18,"total":706.5},{"time":"2023-07-31 07:00:00","intensity":26,"total":732.5},{"time":"2023-07-31 08:00:00","intensity":38,"total":770.5},{"time":"2023-07-31 09:00:00","intensity":39.5,"total":810},{"time":"2023-07-31 10:00:00","intensity":38,"total":461.5},{"time":"2023-07-31 11:00:00","intensity":27,"total":488.5},{"time":"2023-07-31 12:00:00","intensity":5.5,"total":494},{"time":"2023-07-31 13:00:00","intensity":2.5,"total":496.5},{"time":"2023-07-31 14:00:00","intensity":4,"total":500.5},{"time":"2023-07-31 15:00:00","intensity":8,"total":508.5},{"time":"2023-07-31 16:00:00","intensity":8.5,"total":517},{"time":"2023-07-31 17:00:00","intensity":0.5,"total":517.5},{"time":"2023-07-31 18:00:00","intensity":10,"total":527.5},{"time":"2023-07-31 19:00:00","intensity":5.5,"total":533},{"time":"2023-07-31 20:00:00","intensity":20.5,"total":557.5},{"time":"2023-07-31 21:00:00","intensity":25,"total":582.5},{"time":"2023-07-31 22:00:00","intensity":25.5,"total":608},{"time":"2023-07-31 23:00:00","intensity":27,"total":635},{"time":"2023-08-01 00:00:00","intensity":78.5,"total":888.5},{"time":"2023-08-01 01:00:00","intensity":32.5,"total":921},{"time":"2023-08-01 02:00:00","intensity":9.5,"total":956.5},{"time":"2023-08-01 03:00:00","intensity":6.5,"total":981.5},{"time":"2023-08-01 04:00:00","intensity":22.5,"total":1004},{"time":"2023-08-01 05:00:00","intensity":1,"total":1005},{"time":"2023-08-01 06:00:00","intensity":0,"total":1005},{"time":"2023-08-01 07:00:00","intensity":8,"total":1013},{"time":"2023-08-01 08:00:00","intensity":6,"total":1019},{"time":"2023-08-01 09:00:00","intensity":5.5,"total":1024.5},{"time":"2023-08-01 10:00:00","intensity":3,"total":924},{"time":"2023-08-01 11:00:00","intensity":5.5,"total":929.5},{"time":"2023-08-01 12:00:00","intensity":8.5,"total":938},{"time":"2023-08-01 13:00:00","intensity":8,"total":946},{"time":"2023-08-01 14:00:00","intensity":0.5,"total":946.5},{"time":"2023-08-01 16:00:00","intensity":0,"total":946.5},{"time":"2023-08-01 18:00:00","intensity":0.5,"total":947},{"time":"2023-08-01 20:00:00","intensity":17,"total":973.5},{"time":"2023-08-01 21:00:00","intensity":1,"total":974.5},{"time":"2023-08-01 22:00:00","intensity":0.5,"total":975},{"time":"2023-08-02 00:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 02:00:00","intensity":0,"total":1025},{"time":"2023-08-02 03:00:00","intensity":0.5,"total":1025.5},{"time":"2023-08-02 04:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 06:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 08:00:00","intensity":0,"total":1025.5},{"time":"2023-08-02 12:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 14:00:00","intensity":0,"total":1024.5},{"time":"2023-08-02 15:00:00","intensity":0.5,"total":1025},{"time":"2023-08-02 18:00:00","intensity":0,"total":1025},{"time":"2023-08-02 20:00:00","intensity":0,"total":1025},{"time":"2023-08-02 22:00:00","intensity":0,"total":1025}]}' where id = 17; ---------------------------------------------- 2.鎺ㄦ紨鍖哄煙 -- drop table if exists nsl.region; create table nsl.region ( diff --git a/src/main/java/com/se/nsl/controller/TestController.java b/src/main/java/com/se/nsl/controller/TestController.java index ebb9106..7cea5b6 100644 --- a/src/main/java/com/se/nsl/controller/TestController.java +++ b/src/main/java/com/se/nsl/controller/TestController.java @@ -1,8 +1,10 @@ package com.se.nsl.controller; +import com.alibaba.fastjson.JSON; import com.se.nsl.config.PropertiesConfig; import com.se.nsl.domain.po.DataPo; import com.se.nsl.domain.po.Region; +import com.se.nsl.domain.po.Simu; import com.se.nsl.domain.po.SimuData; import com.se.nsl.domain.vo.R; import com.se.nsl.helper.GdalHelper; @@ -65,6 +67,9 @@ @Resource PropertiesConfig config; + + @Resource + SimuService simuService; @Resource ResolveService resolveService; @@ -320,11 +325,16 @@ //rs = resolveService.createRainfallCsv("D:\\360\\bdpj.csv", "娉㈠姩骞冲潎鍒嗗竷", 100, 10, 1); //rs = resolveService.createRainfallCsv("D:\\360\\cxss.csv", "鎸佺画涓婂崌", 100, 10, 1); - SimuData data = new SimuData(); - data.setStartTime(new Date()); - data.setInPath("20250504203823"); + //SimuData data = new SimuData(); + //data.setStartTime(new Date()); + //data.setInPath("20250504203823"); + //String rs = resolveService.callZarr2tif(data); - String rs = resolveService.callZarr2tif(data); + Simu simu = simuService.selectById(17); + SimuData data = JSON.parseObject(simu.getData(), SimuData.class); + resolveService.initArgs(data); + resolveService.createRainfallFile(simu, data); + resolveService.callUwSolver(data); return (Object) System.currentTimeMillis(); } diff --git a/src/main/java/com/se/nsl/domain/vo/ConfigVo.java b/src/main/java/com/se/nsl/domain/vo/ConfigVo.java index 9b843de..87e4d79 100644 --- a/src/main/java/com/se/nsl/domain/vo/ConfigVo.java +++ b/src/main/java/com/se/nsl/domain/vo/ConfigVo.java @@ -14,53 +14,49 @@ private Integer kSt; + private Integer initial_depth; + + private Integer initial_xmomentum; + + private Integer initial_ymomentum; + private String raingage; private String infiltration; private Integer duration; - private Boolean save_state; - - private List<String> save_variables; - - private Integer save_interval; - - private Integer save_frames; - - private Integer save_start; - private Double dt; private Boolean variable_dt; + private ResultVo result; + public ConfigVo() { - terrain = new ArrayList<Object>(Arrays.asList("Data/Hillzone.tif", 1)); - landuse = new ArrayList<Object>(Arrays.asList("Data/landuse.tif", 1)); - station = new ArrayList<Object>(Arrays.asList("Data/station.tif", 1)); - kSt = 40; - raingage = "Data/beijing.dat"; - infiltration = "Data/landuse_to_infiltration.dat"; - duration = 3600 * 24; - save_state = true; - save_variables = new ArrayList<>(Arrays.asList("depth")); - save_interval = 60; - save_frames = 60; - save_start = 0; - dt = 0.1; - variable_dt = true; + this.terrain = new ArrayList<Object>(Arrays.asList("case1/LiuLiMiaoZhen_5m_f32.tif", 1)); + // 1-Cropland,2-Forest,3-Shrub,4-Grassland,5-Water,6-Snow/Ice,7-Barren,8-Impervious,9-Wetland + this.landuse = new ArrayList<Object>(Arrays.asList("case1/LiuLiMiaoZhen_5m_landuse_grassland.tif", 1)); + this.station = new ArrayList<Object>(Arrays.asList("case1/LiuLiMiaoZhen_5m_station.tif", 1)); + + this.kSt = 40; + this.initial_depth = 0; + this.initial_xmomentum = 0; + this.initial_ymomentum = 0; + this.infiltration = "case1/landuse_to_infiltration.dat"; + this.dt = 0.1; + this.variable_dt = true; } - public ConfigVo(int duration, int frames, String terrain, String landuse, String station, String raingage) { + public ConfigVo(String terrain, String landuse, String station, String raingage, String saveName, int duration, int frames) { this(); + this.terrain.set(0, terrain.replace("\\", "/")); // 鍦板舰楂樼▼鏁版嵁 + //this.landuse.set(0, landuse.replace("\\", "/")); // 鍦熷湴鍒╃敤绫诲瀷 + this.station.set(0, station.replace("\\", "/")); // 闆ㄩ噺绔欑储寮� + this.raingage = raingage.replace("\\", "/"); this.duration = duration; - this.save_frames = frames; - this.save_interval = this.duration / frames; - this.terrain.set(0, terrain); // 鍦板舰楂樼▼鏁版嵁 - this.landuse.set(0, landuse); // 鍦熷湴鍒╃敤绫诲瀷 - this.station.set(0, station); // 闆ㄩ噺绔欑储寮� - this.raingage = raingage; + + this.result = new ResultVo(saveName, duration, frames); } public List<Object> getTerrain() { @@ -95,6 +91,30 @@ this.kSt = kSt; } + public Integer getInitial_depth() { + return initial_depth; + } + + public void setInitial_depth(Integer initial_depth) { + this.initial_depth = initial_depth; + } + + public Integer getInitial_xmomentum() { + return initial_xmomentum; + } + + public void setInitial_xmomentum(Integer initial_xmomentum) { + this.initial_xmomentum = initial_xmomentum; + } + + public Integer getInitial_ymomentum() { + return initial_ymomentum; + } + + public void setInitial_ymomentum(Integer initial_ymomentum) { + this.initial_ymomentum = initial_ymomentum; + } + public String getRaingage() { return raingage; } @@ -119,46 +139,6 @@ this.duration = duration; } - public Boolean getSave_state() { - return save_state; - } - - public void setSave_state(Boolean save_state) { - this.save_state = save_state; - } - - public List<String> getSave_variables() { - return save_variables; - } - - public void setSave_variables(List<String> save_variables) { - this.save_variables = save_variables; - } - - public Integer getSave_interval() { - return save_interval; - } - - public void setSave_interval(Integer save_interval) { - this.save_interval = save_interval; - } - - public Integer getSave_frames() { - return save_frames; - } - - public void setSave_frames(Integer save_frames) { - this.save_frames = save_frames; - } - - public Integer getSave_start() { - return save_start; - } - - public void setSave_start(Integer save_start) { - this.save_start = save_start; - } - public Double getDt() { return dt; } @@ -174,4 +154,12 @@ public void setVariable_dt(Boolean variable_dt) { this.variable_dt = variable_dt; } + + public ResultVo getResult() { + return result; + } + + public void setResult(ResultVo result) { + this.result = result; + } } diff --git a/src/main/java/com/se/nsl/domain/vo/ResultVo.java b/src/main/java/com/se/nsl/domain/vo/ResultVo.java new file mode 100644 index 0000000..7096bf8 --- /dev/null +++ b/src/main/java/com/se/nsl/domain/vo/ResultVo.java @@ -0,0 +1,83 @@ +package com.se.nsl.domain.vo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@SuppressWarnings("ALL") +public class ResultVo { + private String save_name; + + private List<String> save_variables; + + private Integer save_frames; + + private Integer save_interval; + + private Integer save_start; + + private Integer save_filter; + + public ResultVo() { + this.save_variables = new ArrayList<>(Arrays.asList("depth", "xmomentum", "ymomentum")); + this.save_start = 0; + this.save_filter = 0; + } + + public ResultVo(String saveName, int duration, int frames) { + this(); + + this.save_name = saveName.replace("\\", "/"); + this.save_frames = frames; + // 缁撴灉鏁版嵁涓浉閭诲抚鐨勬ā鎷熸椂闂撮棿闅旓紙鍗曚綅锛氱锛夛紝save_start + save_frames * save_interval <= duration + this.save_interval = duration / frames; + } + + public String getSave_name() { + return save_name; + } + + public void setSave_name(String save_name) { + this.save_name = save_name; + } + + public List<String> getSave_variables() { + return save_variables; + } + + public void setSave_variables(List<String> save_variables) { + this.save_variables = save_variables; + } + + public Integer getSave_frames() { + return save_frames; + } + + public void setSave_frames(Integer save_frames) { + this.save_frames = save_frames; + } + + public Integer getSave_interval() { + return save_interval; + } + + public void setSave_interval(Integer save_interval) { + this.save_interval = save_interval; + } + + public Integer getSave_start() { + return save_start; + } + + public void setSave_start(Integer save_start) { + this.save_start = save_start; + } + + public Integer getSave_filter() { + return save_filter; + } + + public void setSave_filter(Integer save_filter) { + this.save_filter = save_filter; + } +} diff --git a/src/main/java/com/se/nsl/service/ResolveService.java b/src/main/java/com/se/nsl/service/ResolveService.java index 73b1841..e7115d5 100644 --- a/src/main/java/com/se/nsl/service/ResolveService.java +++ b/src/main/java/com/se/nsl/service/ResolveService.java @@ -138,7 +138,7 @@ /** * 鍒濆鍖栧弬鏁� */ - private void initArgs(SimuData data) throws IOException { + public void initArgs(SimuData data) throws IOException { String inPath = config.getInPath() + File.separator + data.getInPath(); createDir(inPath); createDir(inPath + File.separator + "depth"); @@ -147,7 +147,7 @@ // 涓存椂澶嶅埗楂樼▼tif锛屼互鍚庨渶瑕佽嚜琛屽垏鍓� File uwBat = new File(config.getUwSolverBat()); - String sourceTif = uwBat.getParent() + File.separator + "data" + File.separator + "Hillzone.tif"; + String sourceTif = uwBat.getParent() + File.separator + "case1" + File.separator + "LiuLiMiaoZhen_5m_f32.tif"; String targetTif = inPath + File.separator + config.getDemFile(); Files.copy(Paths.get(sourceTif), Paths.get(targetTif), StandardCopyOption.REPLACE_EXISTING); } @@ -160,7 +160,7 @@ f.mkdirs(); } - private void createRainfallFile(Simu simu, SimuData data) throws Exception { + public void createRainfallFile(Simu simu, SimuData data) throws Exception { List<Rainfall> rainfalls = data.getRainfalls(); if (null == rainfalls || rainfalls.size() < 2) createRainfall(simu); @@ -218,7 +218,7 @@ /** * 璋冪敤UWSolver */ - private String callUwSolver(SimuData data) throws Exception { + public String callUwSolver(SimuData data) throws Exception { File uwBat = new File(config.getUwSolverBat()); int duration = 3600 * data.getDuration(); // 绉掓暟 @@ -227,16 +227,17 @@ } String inPath = config.getInPath() + File.separator + data.getInPath(); - String terrainFile = (inPath + File.separator + config.getDemFile()).replace("\\", "/"); - String rainfallFile = (inPath + File.separator + "rainfall.dat").replace("\\", "/"); - ConfigVo vo = new ConfigVo(duration, config.getSaveFrames(), terrainFile, terrainFile, terrainFile, rainfallFile); + String terrainFile = (inPath + File.separator + config.getDemFile()); + String rainfallFile = (inPath + File.separator + "rainfall.dat"); + String saveName = inPath + File.separator + "result.zarr"; + ConfigVo vo = new ConfigVo(terrainFile, terrainFile, terrainFile, rainfallFile, saveName, duration, config.getSaveFrames()); String configFile = config.getInPath() + File.separator + data.getInPath() + File.separator + data.getInPath() + ".json"; ComHelper.writeJson(configFile, JSON.toJSONString(vo)); String cmd = String.format("%s %s", config.getUwSolverBat(), configFile); - return callBat(cmd); + return callBat2(cmd); } /** diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index e949b32..374e9c0 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -141,7 +141,8 @@ flowUnits: CMS solverBat: D:\other\simu\uwsolver\run_solver.bat sww2tifBat: D:\other\simu\uwsolver\sww2tif.bat - uwSolverBat: D:\other\simu\CudaUWSolver.Demo.NoVis.20250430\start.bat + #uwSolverBat: D:\other\simu\CudaUWSolver.Demo.NoVis.20250430\start.bat + uwSolverBat: D:\other\simu\CudaUWSolver-2.0\start.bat #zarr2tifBat: D:\other\simu\zarr2tif1.0\start.bat #zarr2tifBat: D:\other\simu\zarr2tif-2.0-mkl\start.bat zarr2tifBat: D:\other\simu\zarr2tif-2.1\start.bat @@ -149,7 +150,7 @@ rainfallTitle: Station Longitude Latitude Year Month Day Hour Minute Intensity rainfallSite: beijing epsg: 4548 - saveFrames: 10 + saveFrames: 12 # 鍦熷湴鍒╃敤锛�1-Cropland,2-Forest,3-Shrub,4-Grassland,5-Water,6-Snow/Ice,7-Barren,8-Impervious,9-Wetland landuse: 2 #sizes: 64,128,256,512,1024,2048,4096 -- Gitblit v1.9.3