From d8a1ab25881275da008b2801119f36b51554f427 Mon Sep 17 00:00:00 2001 From: wuww <252740454@qq.com> Date: 星期日, 04 五月 2025 11:11:30 +0800 Subject: [PATCH] 修改初始化方案参数 --- src/main/java/com/se/nsl/controller/SimuController.java | 1 src/main/java/com/se/nsl/controller/TestController.java | 2 src/main/resources/mybatis.xml | 2 src/main/java/com/se/nsl/domain/po/SimuData.java | 7 ++ src/main/java/com/se/nsl/service/ResolveService.java | 18 +++++ src/main/java/com/se/nsl/config/PropertiesConfig.java | 10 +++ data/init.sql | 21 ++++++- src/main/resources/application-dev.yml | 1 src/main/java/com/se/nsl/domain/vo/ConfigVo.java | 61 ++++++++++++++++++++ 9 files changed, 117 insertions(+), 6 deletions(-) diff --git a/data/init.sql b/data/init.sql index a7dbb76..56fe366 100644 --- a/data/init.sql +++ b/data/init.sql @@ -45,8 +45,8 @@ -- insert into nsl.simu (name, service_name, type, area_type, area_name, status, geom) values ('棰勬祴妯℃嫙-0416', '20250416100000', 1, 1, '澶у叴鍖�', 0, ST_GeomFromText('MULTIPOLYGON(((116.666748 39.639859,116.659403 39.626287,116.665956 39.654698,116.666748 39.639859)))')); -select id, name, service_name, type, area_type, area_name, status, result, create_time, create_user, update_time, update_user, bak, data, st_astext(geom) geom from nsl.simu order by id desc; --- update nsl.simu set status = 0, area_name = '鎴垮北鍖�' where id = 24; +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 = '鎴垮北鍖�', data = '{"startTime":"2025-05-01 11:10:54","type":3,"total":50,"duration":6,"intensity":70,"history":"XX骞�50mm闄嶉洦"}' where id = 24; ---------------------------------------------- 2.鎺ㄦ紨鍖哄煙 -- drop table if exists nsl.region; create table nsl.region ( @@ -85,6 +85,21 @@ comment on column nsl.udometer.geom is '绌洪棿浣嶇疆'; select * from nsl.udometer; ----------------------------------------------- +---------------------------------------------- 灏� MULTIPOLYGON 杞崲涓� POLYGON +select st_astext(ST_GeometryN(geom, generate_series(1, ST_NumGeometries(geom)))) as geom from nsl.region limit 1; + + + + + + + + + + + + + + diff --git a/src/main/java/com/se/nsl/config/PropertiesConfig.java b/src/main/java/com/se/nsl/config/PropertiesConfig.java index 5ad97c5..5f47732 100644 --- a/src/main/java/com/se/nsl/config/PropertiesConfig.java +++ b/src/main/java/com/se/nsl/config/PropertiesConfig.java @@ -62,6 +62,8 @@ private String zarr2tifBat; + private Integer saveFrames; + private List<Integer> sizes; private String terrainFile; @@ -262,6 +264,14 @@ this.zarr2tifBat = zarr2tifBat; } + public Integer getSaveFrames() { + return saveFrames; + } + + public void setSaveFrames(Integer saveFrames) { + this.saveFrames = saveFrames; + } + public boolean isCopyTif() { return copyTif; } diff --git a/src/main/java/com/se/nsl/controller/SimuController.java b/src/main/java/com/se/nsl/controller/SimuController.java index f4df136..51e9489 100644 --- a/src/main/java/com/se/nsl/controller/SimuController.java +++ b/src/main/java/com/se/nsl/controller/SimuController.java @@ -108,6 +108,7 @@ if (null == data) return fail("鏂规鏁版嵁鏍煎紡(JSON)涓嶆纭�"); if (simu.getStatus() != 0) return fail("鏂规姝e湪杩愯鎴栧凡瀹屾垚"); + if (StringUtils.isEmpty(simu.getGeom())) return fail("鏂规鐨勫浘褰负绌�"); int rows = resolveService.start(simu); diff --git a/src/main/java/com/se/nsl/controller/TestController.java b/src/main/java/com/se/nsl/controller/TestController.java index e167351..876f6f1 100644 --- a/src/main/java/com/se/nsl/controller/TestController.java +++ b/src/main/java/com/se/nsl/controller/TestController.java @@ -175,7 +175,7 @@ @ApiOperation(value = "04.testPngList <") @GetMapping("/testPngList") @ApiImplicitParams({ - @ApiImplicitParam(name = "path", value = "璺緞", dataType = "String", paramType = "query", example = "D:\\other\\simu\\out\\fs24cubic"), + @ApiImplicitParam(name = "path", value = "璺緞", dataType = "String", paramType = "query", example = "fs24cubic"), @ApiImplicitParam(name = "size", value = "灏哄", dataType = "Integer", paramType = "query", example = "1024") }) public R<Object> testPngList(String path, Integer size) { diff --git a/src/main/java/com/se/nsl/domain/po/SimuData.java b/src/main/java/com/se/nsl/domain/po/SimuData.java index 842bc46..f727183 100644 --- a/src/main/java/com/se/nsl/domain/po/SimuData.java +++ b/src/main/java/com/se/nsl/domain/po/SimuData.java @@ -103,6 +103,13 @@ return GdalHelper.createSpatialReference(this.getEpsg()); } + public void setEnvelope(double[] envelope) { + this.minx = envelope[0]; + this.maxx = envelope[1]; + this.miny = envelope[2]; + this.maxy = envelope[3]; + } + public String getInPath() { return inPath; } diff --git a/src/main/java/com/se/nsl/domain/vo/ConfigVo.java b/src/main/java/com/se/nsl/domain/vo/ConfigVo.java new file mode 100644 index 0000000..4054306 --- /dev/null +++ b/src/main/java/com/se/nsl/domain/vo/ConfigVo.java @@ -0,0 +1,61 @@ +package com.se.nsl.domain.vo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@SuppressWarnings("ALL") +public class ConfigVo { + private List<Object> terrain; + + private List<Object> landuse; + + private List<Object> station; + + private Integer kSt; + + 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; + + 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; + } + + public ConfigVo(int hours, int frames) { + this(); + + duration = 3600 * hours; + save_frames = frames; + save_interval = duration / frames; + } +} diff --git a/src/main/java/com/se/nsl/service/ResolveService.java b/src/main/java/com/se/nsl/service/ResolveService.java index 8ad7b98..0c7d47a 100644 --- a/src/main/java/com/se/nsl/service/ResolveService.java +++ b/src/main/java/com/se/nsl/service/ResolveService.java @@ -10,6 +10,8 @@ import com.se.nsl.helper.WebHelper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.gdal.ogr.Geometry; +import org.gdal.ogr.ogr; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -32,11 +34,21 @@ Date now = new Date(); String date = StringHelper.YMDHMS2_FORMAT.format(now); + // 灏哤KT杞崲涓篏eometry瀵硅薄 + Geometry geom = Geometry.CreateFromWkt(simu.getGeom()); + if (geom.GetGeometryType() == ogr.wkbMultiPolygon) { + geom = geom.GetGeometryRef(0); + } + double[] envelope = new double[4]; + geom.GetEnvelope(envelope); + SimuData data = JSON.parseObject(simu.getData(), SimuData.class); data.setInPath(date); data.setOutPath(date); data.setEpsg(4548); + data.setEnvelope(envelope); + simu.setData(JSON.toJSONString(data)); simu.setServiceName(date); simu.setStatus(1); // 0-鍒涘缓浠跨湡锛�1-棰勫鐞嗭紝2-鍒嗘瀽涓紝10-瀹屾垚锛�20-鍑洪敊 simu.setUpdateTime(new Timestamp(now.getTime())); @@ -65,7 +77,7 @@ try { DataPo data = JSONUtil.toBean(simu.getData(), DataPo.class); - //update(simu, 2, null); + update(simu, 1, null); //gedbService.copeVectors(token, data, db); //update(simu, 3, null); @@ -88,4 +100,8 @@ simuService.updateById(simu); } + + private void initArgs(){ + + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b4ed133..2fc80e2 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -143,6 +143,7 @@ sww2tifBat: D:\other\simu\uwsolver\sww2tif.bat uwSolverBat: D:\other\simu\uwsolver\CudaUWSolver.Demo.NoVis.20250430\start.bat zarr2tifBat: D:\other\simu\uwsolver\zarr2tif 1.0\CudaUWSolver.Demo.NoVis.20250430\start.bat + saveFrames: 10 #sizes: 64,128,256,512,1024,2048,4096 sizes: 1024 # 杈撳嚭鏂囦欢 diff --git a/src/main/resources/mybatis.xml b/src/main/resources/mybatis.xml index 7efed65..7ed3666 100644 --- a/src/main/resources/mybatis.xml +++ b/src/main/resources/mybatis.xml @@ -29,7 +29,7 @@ <!--鎸囧畾褰撶粨鏋滈泦涓�间负 null 鏃讹紝鏄惁璋冪敤鏄犲皠瀵硅薄鐨� setter锛坢ap 瀵硅薄鏃朵负 put锛夋柟娉�--> <setting name="callSettersOnNulls" value="true"/> <!--鎸囧畾 MyBatis 鎵�鐢ㄦ棩蹇楃殑鍏蜂綋瀹炵幇锛歀OG4J/LOG4J2/SLF4J/STDOUT_LOGGING/NO_LOGGING--> - <setting name="logImpl" value="NO_LOGGING" /> + <setting name="logImpl" value="STDOUT_LOGGING" /> </settings> <typeAliases> <package name="com.se.nsl.domain"/> -- Gitblit v1.9.3