| | |
| | | import com.se.nsl.domain.po.Region; |
| | | import com.se.nsl.helper.GdalHelper; |
| | | import com.se.nsl.mapper.RegionMapper; |
| | | import javafx.scene.input.DataFormat; |
| | | import org.gdal.gdal.Dataset; |
| | | import org.gdal.gdal.Driver; |
| | | import org.gdal.gdal.gdal; |
| | |
| | | RegionMapper regionMapper; |
| | | |
| | | @Test |
| | | public void test() { |
| | | //procDepthFiles(); |
| | | System.out.println("> test ----------------------"); |
| | | readZarr(); |
| | | } |
| | | |
| | | 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(oldPath + "\\" + file.getName() + "\\depth.tif"); |
| | | if (!tif.exists() || tif.isDirectory()) continue; |
| | | |
| | | //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 collectPngToList() { |
| | | System.out.println("------------------------------------------- start"); |
| | | int size = 1024; |
| | | String outputPath = "D:\\other\\simu\\out\\20250412\\waters"; |
| | | List<String> list = new ArrayList<>(); |
| | | for (File file : new File(outputPath).listFiles()) { |
| | | if (!file.exists() || file.isFile()) continue; |
| | | |
| | | 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\\孙胡沟geometry.json"; |
| | |
| | | } |
| | | |
| | | //@Test |
| | | public void procDepthFiles() { |
| | | String path = "D:\\other\\simu\\uwsolver\\20250412\\depth"; |
| | | /*for (File file : new File(path).listFiles()) { |
| | | if (!file.exists() || !file.isDirectory()) continue; |
| | | public void readZarr() { |
| | | //GdalHelper.init("D:\\soft\\release-1928-x64-dev\\release-1928-x64\\bin"); |
| | | //GdalHelper.init("C:\\Program Files\\GDAL"); |
| | | |
| | | File tif = new File(path + "\\" + 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); |
| | | file.delete(); |
| | | /*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(); |
| | | }*/ |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(new Date(2025 - 1900, 3, 12, 0, 0, 0)); |
| | | SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | gdal.AllRegister(); |
| | | System.out.println("GDAL Initialized. Version: " + gdal.VersionInfo("RELEASE_NAME")); |
| | | |
| | | String oldPath = "D:\\other\\simu\\uwsolver\\20250412\\depth-old"; |
| | | String newPath = "D:\\other\\simu\\uwsolver\\20250412\\depth"; |
| | | for (File file : new File(oldPath).listFiles()) { |
| | | 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); |
| | | String newName = df.format(calendar.getTime()); |
| | | String newFile = newPath + File.separator + newName + ".tif"; |
| | | |
| | | System.out.println(newFile); |
| | | file.renameTo(new File(newFile)); |
| | | } |
| | | } |
| | | |
| | | //@Test |
| | | public void collectPngToList() { |
| | | System.out.println("------------------------------------------- start"); |
| | | int size = 1024; |
| | | String outputPath = "D:\\other\\simu\\out\\20250412\\waters"; |
| | | List<String> list = new ArrayList<>(); |
| | | for (File file : new File(outputPath).listFiles()) { |
| | | if (!file.exists() || file.isFile()) continue; |
| | | |
| | | 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 readZarr() throws Exception { |
| | | GdalHelper.init("D:\\soft\\release-1928-x64-dev\\release-1928-x64\\bin"); |
| | | |
| | | String zarrPath = "D:\\other\\simu\\CudaUWSolver.zarr"; |
| | | 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()); |
| | | } 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); |
| | | 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: " + inputDataset.GetDriver().getShortName() + "/" + inputDataset.GetDriver().getLongName()); |
| | | System.out.println("Size: " + inputDataset.getRasterXSize() + "x" + inputDataset.getRasterYSize() + "x" |
| | | + inputDataset.getRasterCount()); |
| | | System.out.println("Successfully opened..."); |
| | | System.out.println("Driver: " + ds.GetDriver().getShortName() + "/" + ds.GetDriver().getLongName()); |
| | | System.out.println("Size: " + ds.getRasterXSize() + "x" + ds.getRasterYSize() + "x" + ds.getRasterCount()); |
| | | } finally { |
| | | if (null != ds) ds.delete(); |
| | | } |
| | | } |
| | | } |