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