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