From 0e6106783b59c2c4e173ad4b709c1415686e7505 Mon Sep 17 00:00:00 2001 From: dcb <xgybdcb@163.com> Date: 星期一, 14 七月 2025 15:02:22 +0800 Subject: [PATCH] 停止实时模拟时更新停止时间 --- src/test/java/com/se/nsl/AppTest.java | 159 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 127 insertions(+), 32 deletions(-) diff --git a/src/test/java/com/se/nsl/AppTest.java b/src/test/java/com/se/nsl/AppTest.java index 2affd86..8bafc75 100644 --- a/src/test/java/com/se/nsl/AppTest.java +++ b/src/test/java/com/se/nsl/AppTest.java @@ -1,15 +1,20 @@ package com.se.nsl; +import com.se.nsl.domain.po.Region; import com.se.nsl.helper.GdalHelper; +import com.se.nsl.mapper.RegionMapper; import org.gdal.gdal.Dataset; import org.gdal.gdal.Driver; import org.gdal.gdal.gdal; import org.gdal.gdalconst.gdalconst; import org.gdal.gdalconst.gdalconstConstants; +import org.gdal.ogr.*; import org.junit.Test; import org.springframework.boot.test.context.SpringBootTest; import com.alibaba.fastjson.JSONObject; + +import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.net.*; @@ -21,62 +26,152 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.List; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) public class AppTest { + @Resource + RegionMapper regionMapper; + @Test - public void procDepthFiles() { - String path = "D:\\other\\simu\\uwsolver\\20250412\\depth"; - for (File file : new File(path).listFiles()) { + public void test() { + System.out.println("> test ----------------------"); + //procDepthFiles(); + //readZarr(); + //collectPngToList(); + + SimpleDateFormat YYYYMMDDHHMM = new SimpleDateFormat("yyyy MM dd HH mm "); + System.out.println(YYYYMMDDHHMM.format(new Date())); + + SimpleDateFormat YYYYMDHM = new SimpleDateFormat("yyyy M d H m "); + System.out.println(YYYYMDHM.format(new Date())); + } + + private void procDepthFiles() { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date(2025 - 1900, 4 - 1, 21, 0, 0, 0)); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); + + String oldPath = "D:\\other\\simu\\uwsolver\\chicago"; + String newPath = "D:\\other\\simu\\uwsolver\\chicago\\depth"; + for (File file : new File(oldPath).listFiles()) { if (!file.exists() || !file.isDirectory()) continue; - File tif = new File(path + "\\" + file.getName() + "\\depth.tif"); + File tif = new File(oldPath + "\\" + file.getName() + "\\depth.tif"); if (!tif.exists() || tif.isDirectory()) continue; - File newFile = new File(path + "\\2025041200" + file.getName() + ".tif"); - System.out.println(newFile.getPath()); - tif.renameTo(newFile); + //String fileName = file.getName().replace("2025041200", "").replace(".tif", ""); + /*int second = Integer.parseInt(fileName); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR, 0); + calendar.add(Calendar.SECOND, second);*/ + calendar.add(Calendar.SECOND, 1); + String newName = df.format(calendar.getTime()); + String newFile = newPath + File.separator + newName + ".tif"; + + System.out.println(newFile); + tif.renameTo(new File(newFile)); file.delete(); } } //@Test - public void readZarr() throws Exception { - GdalHelper.init("D:\\soft\\release-1928-x64-dev\\release-1928-x64\\bin"); + public void collectPngToList() { + System.out.println("------------------------------------------- start"); + int size = 1024; + String outputPath = "D:\\other\\simu\\out\\chicago96\\waters"; // ""D:\\other\\simu\\out\\20250412\\waters"; + List<String> list = new ArrayList<>(); + for (File file : new File(outputPath).listFiles()) { + if (!file.exists() || file.isFile()) continue; - String zarrPath = "D:\\other\\simu\\CudaUWSolver.zarr"; + File pngFile = new File(file.getPath() + File.separator + size + "_" + size + ".png"); + if (!pngFile.exists() || pngFile.isDirectory()) continue; + + list.add("file '" + pngFile.getPath().replace("\\", "/") + "'"); + System.out.println(list.get(list.size() - 1)); + } + + Path path = Paths.get(outputPath + File.separator + "list.txt"); + try { + Files.write(path, list, StandardCharsets.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("------------------------------------------- end"); + } + + //@Test + public void insertRegion() { + GdalHelper.init("D:\\soft\\release-1928-x64-dev\\release-1928-x64\\bin"); + String path = "D:\\Documents\\WeChat Files\\wxid_llap8o5q8rm521\\FileStorage\\File\\2025-04\\瀛欒儭娌焔eometry.json"; + + org.gdal.ogr.Driver driver = ogr.GetDriverByName("GeoJSON"); + if (null == driver) return; + + DataSource ds = driver.Open(path); + if (null == ds) return; + + List<Region> list = new ArrayList<>(); + for (int i = 0, c = ds.GetLayerCount(); i < c; i++) { + Layer layer = ds.GetLayer(i); + for (long j = 0, d = layer.GetFeatureCount(); j < d; j++) { + Feature f = layer.GetFeature(j); + Geometry g = f.GetGeometryRef(); + if (null != g) { // && (g.GetGeometryType() == ogr.wkbPolygon || g.GetGeometryType() == ogr.wkbMultiPolygon) + list.add(new Region(f.GetFieldAsString(""), 3, g.ExportToWkt())); + } + } + } + + if (list.size() > 0) { + regionMapper.inserts(list); + } + + ds.delete(); + driver.delete(); + + System.out.println("hello world"); + } + + //@Test + public void readZarr() { + //GdalHelper.init("D:\\soft\\release-1928-x64-dev\\release-1928-x64\\bin"); + //GdalHelper.init("C:\\Program Files\\GDAL"); + + /*try { + System.setProperty("java.library.path", "C:\\Program Files\\GDAL"); + java.lang.reflect.Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths"); + fieldSysPath.setAccessible(true); + fieldSysPath.set(null, null); + //System.load("C:\\Program Files\\GDAL\\gdaljni.dll"); + } catch (Exception e) { + e.printStackTrace(); + }*/ + + gdal.AllRegister(); + System.out.println("GDAL Initialized. Version: " + gdal.VersionInfo("RELEASE_NAME")); + + String zarrPath = "D:\\other\\simu\\out\\out.zarr"; // "D:\\other\\simu\\out\\CudaUWSolver.zarr"; Dataset ds = null; try { Driver driver = gdal.GetDriverByName("Zarr"); ds = gdal.Open(zarrPath, gdalconst.GA_ReadOnly); - if (null == ds || ds.getRasterCount() < 1) return; - System.out.println(ds.getRasterCount()); + if (null == ds || ds.getRasterCount() < 1) { + System.err.println("Could not open input dataset: " + zarrPath); + return; + } + + System.out.println("Successfully opened..."); + System.out.println("Driver: " + ds.GetDriver().getShortName() + "/" + ds.GetDriver().getLongName()); + System.out.println("Size: " + ds.getRasterXSize() + " - " + ds.getRasterYSize() + " - " + ds.getRasterCount()); } finally { if (null != ds) ds.delete(); } - } - - //@Test - public void readZarr2() throws Exception { - String zarrInputPath = "D:\\other\\simu\\out\\out.zarr"; - gdal.AllRegister(); - System.out.println("GDAL Initialized. Version: " + gdal.VersionInfo("RELEASE_NAME")); - - Dataset inputDataset = gdal.Open(zarrInputPath, gdalconst.GA_ReadOnly); - - if (inputDataset == null) { - System.err.println("Could not open input dataset: " + zarrInputPath); - return; - } - - System.out.println("Successfully opened"); - System.out.println( - "Driver: " + inputDataset.GetDriver().getShortName() + "/" + inputDataset.GetDriver().getLongName()); - System.out.println("Size: " + inputDataset.getRasterXSize() + "x" + inputDataset.getRasterYSize() + "x" - + inputDataset.getRasterCount()); } } -- Gitblit v1.9.3