| | |
| | | } |
| | | 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(); |
| | |
| | | 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计算,否则按照mm/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); |
| | |
| | | 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)); |