From 68372fd1905515c5c8dbb9e3b158241994439e06 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期四, 19 六月 2025 14:18:53 +0800
Subject: [PATCH] 增加生成结果的水深过滤参数

---
 src/main/java/com/se/nsl/helper/ComHelper.java |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/se/nsl/helper/ComHelper.java b/src/main/java/com/se/nsl/helper/ComHelper.java
index 7988031..0b52369 100644
--- a/src/main/java/com/se/nsl/helper/ComHelper.java
+++ b/src/main/java/com/se/nsl/helper/ComHelper.java
@@ -2,10 +2,7 @@
 
 import com.se.nsl.domain.dto.*;
 import lombok.extern.slf4j.Slf4j;
-import org.gdal.gdal.Band;
-import org.gdal.gdal.Dataset;
-import org.gdal.gdal.WarpOptions;
-import org.gdal.gdal.gdal;
+import org.gdal.gdal.*;
 import org.gdal.gdalconst.gdalconst;
 import org.gdal.ogr.Geometry;
 import org.gdal.ogr.ogr;
@@ -44,7 +41,8 @@
         }
     }
 
-    public static void Resample(Dataset ds, String dest, int width, int height, LayerDto layer) {
+    public static void cutAndResample(Dataset ds, String dest, int width, int height,
+                                      LayerDto layer, boolean resample) {
         Vector<String> vector = new Vector<>();
         //vector.add("-s_srs");
         //vector.add("EPSG:" + 4548);
@@ -60,17 +58,19 @@
         //vector.add("" + layer.getExtension().getMaxy());
         //vector.add("-te_srs");
         //vector.add("EPSG:" + 4326);
-        vector.add("-r");
-        vector.add("bilinear"); // 鍙岀嚎鎬ф彃鍊�
-        vector.add("-of");
-        vector.add("GTiff");
+        if (resample) {
+            vector.add("-r");
+            vector.add("bilinear"); // 鍙岀嚎鎬ф彃鍊�
+            vector.add("-of");
+            vector.add("GTiff");
+        }
         WarpOptions warpOptions = new WarpOptions(vector);
 
         Dataset destDs = gdal.Warp(dest, new Dataset[]{ds}, warpOptions);
         destDs.delete();
     }
 
-    public static void Resample(Dataset ds, Integer targetEpsg, String dest, String wkt, Integer width, Integer height) {
+    public static void cutAndResample(Dataset ds, Integer targetEpsg, String dest, Double destNoData, String wkt, Integer width, Integer height) {
         Vector<String> vector = new Vector<>();
         if (targetEpsg != null) {
             //vector.add("-s_srs");
@@ -78,6 +78,10 @@
             vector.add("-t_srs");
             vector.add("EPSG:" + targetEpsg);
         }
+        //if (destNoData != null) {
+        //    vector.add("-dstnodata");
+        //    vector.add("" + destNoData);
+        //}
         if (wkt != null) {
             vector.add("-cutline");
             vector.add(wkt);
@@ -94,10 +98,11 @@
         vector.add("GTiff");
 
         Dataset destDs = gdal.Warp(dest, new Dataset[]{ds}, new WarpOptions(vector));
-        destDs.delete();
+        if (null != destDs) destDs.delete();
     }
 
-    public static void Resample2(Dataset ds, String dest, int width, int height, LayerDto layer) {
+    public static void coordinateTransformAndResample(Dataset ds, String dest, int width, int height,
+                                                      LayerDto layer, boolean resample) {
         Vector<String> vector = new Vector<>();
         vector.add("-s_srs");
         vector.add("EPSG:" + 4548);
@@ -113,10 +118,13 @@
         //vector.add("" + layer.getExtension().getMaxy());
         //vector.add("-te_srs");
         //vector.add("EPSG:" + 4326);
-        vector.add("-r");
-        vector.add("average");
-        vector.add("-of");
-        vector.add("GTiff");
+        if (resample) {
+            vector.add("-r");
+//        vector.add("average");
+            vector.add("cubic");
+            vector.add("-of");
+            vector.add("GTiff");
+        }
         WarpOptions warpOptions = new WarpOptions(vector);
 
         Dataset destDs = gdal.Warp(dest, new Dataset[]{ds}, warpOptions);

--
Gitblit v1.9.3