From 2264d9de37892022293424a818fa7ee5ac9c50a6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 16 九月 2023 08:55:05 +0800
Subject: [PATCH] 1

---
 DataLoader/CS/GdalHelper.cs |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/DataLoader/CS/GdalHelper.cs b/DataLoader/CS/GdalHelper.cs
index 9e5e701..95153a8 100644
--- a/DataLoader/CS/GdalHelper.cs
+++ b/DataLoader/CS/GdalHelper.cs
@@ -129,6 +129,7 @@
                 ColorTable ct = ds.GetRasterBand(1).GetRasterColorTable();
                 vd.Meta.ct = null == ct ? null : ct.ToString(); // 鏁版嵁棰滆壊琛�
                 vd.Meta.h_datum = null; // 楂樼▼鍩哄噯
+                setMinAndMax(ds, vd.Meta); // 璁剧疆鏈�鍊�
 
                 double[] tr = new double[6];
                 ds.GetGeoTransform(tr);
@@ -235,6 +236,30 @@
 
             return geo;
         }
+
+        /// <summary>
+        /// 璁剧疆鏈�鍊�
+        /// GDALRasterBand::GetHistogram聽鈥嬧�嬬粺璁$洿鏂瑰浘
+        /// </summary>
+        private void setMinAndMax(Dataset ds, SysMeta meta)
+        {
+            List<double> minList = new List<double>();
+            List<double> maxList = new List<double>();
+
+            for (int i = 1; i <= ds.RasterCount; i++)
+            {
+                int hasval;
+                double min, max;
+                ds.GetRasterBand(i).GetMinimum(out min, out hasval);
+                ds.GetRasterBand(i).GetMaximum(out max, out hasval);
+
+                minList.Add(min);
+                maxList.Add(max);
+            }
+
+            meta.min = string.Join(",", minList.ToArray());
+            meta.max = string.Join(",", maxList.ToArray());
+        }
         #endregion
     }
 }

--
Gitblit v1.9.3