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/App.config       |    5 +++--
 DataLoader/CS/GdalHelper.cs |   25 +++++++++++++++++++++++++
 DataLoader/MainWindow.xaml  |    2 +-
 DataLoader/CS/DBHelper.cs   |    2 +-
 DataLoader/Model/SysMeta.cs |   10 ++++++++++
 5 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/DataLoader/App.config b/DataLoader/App.config
index bef7937..26885e2 100644
--- a/DataLoader/App.config
+++ b/DataLoader/App.config
@@ -4,10 +4,11 @@
 	<!-- 鑾峰彇鏂囦欢鐨凪D5鐮侊細0-鍚︼紝1-鏄� -->
 	<add key="GetMD5" value="1"/>
 	<add key="StartPath" value="3"/>
-	<add key="SourcePath" value="D:\Moon\data"/>
+	<add key="SourcePath" value="D:\Moon\data\DOM"/>
 	<add key="TargetPath" value="D:\LF\upload"/>
     <!--<add key="pgConn" value="Server=127.0.0.1;Port=5433;Database=langfang;User Id=postgres;Password=postgres;"/>-->
-    <add key="pgConn" value="Server=192.168.20.83;Port=5433;Database=moon;User Id=postgres;Password=Postgres!_14_moon;"/>
+    <!--<add key="pgConn" value="Server=192.168.20.83;Port=5433;Database=moon;User Id=postgres;Password=Postgres!_14_moon;"/>-->
+	<add key="pgConn" value="Server=103.85.165.99;Port=5433;Database=moon;User Id=postgres;Password=Postgres!_14_moon;"/>
   </appSettings>
   <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
diff --git a/DataLoader/CS/DBHelper.cs b/DataLoader/CS/DBHelper.cs
index 3edabc4..19a4aa2 100644
--- a/DataLoader/CS/DBHelper.cs
+++ b/DataLoader/CS/DBHelper.cs
@@ -14,7 +14,7 @@
     public class DBHelper
     {
         // id, eventid, metaid, verid, name, type, guid, path, sizes, tab, rows, create_user, create_time, update_user, update_time, bak, geom, layer, depcode, dircode, ismeta, sensortype, acq_time, resolution, gridsize, coor_sys, epsg, h_datum, mata_type, bands, band_type, ct
-        private const string insertMeta = "insert into lf.sys_meta (eventid, metaid, verid, name, type, guid, path, sizes, tab, rows, create_user, create_time, bak, geom, layer, depcode, dircode, ismeta, sensortype, acq_time, resolution, gridsize, coor_sys, epsg, h_datum, mata_type, bands, band_type, ct) values (@eventid, @metaid, @verid, @name, @type, @guid, @path, @sizes, @tab, @rows, @create_user, now(), @bak, {0}, @layer, @depcode, @dircode, @ismeta, @sensortype, @acq_time, @resolution, @gridsize, @coor_sys, @epsg, @h_datum, @mata_type, @bands, @band_type, @ct) returning id";
+        private const string insertMeta = "insert into lf.sys_meta (eventid, metaid, verid, name, type, guid, path, sizes, tab, rows, create_user, create_time, bak, geom, layer, depcode, dircode, ismeta, sensortype, acq_time, resolution, gridsize, coor_sys, epsg, h_datum, mata_type, bands, band_type, ct, min, max) values (@eventid, @metaid, @verid, @name, @type, @guid, @path, @sizes, @tab, @rows, @create_user, now(), @bak, {0}, @layer, @depcode, @dircode, @ismeta, @sensortype, @acq_time, @resolution, @gridsize, @coor_sys, @epsg, @h_datum, @mata_type, @bands, @band_type, @ct, @min, @max) returning id";
 
         /// <summary>
         /// 鎻掑叆鍏冩暟鎹�
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
     }
 }
diff --git a/DataLoader/MainWindow.xaml b/DataLoader/MainWindow.xaml
index 35ddc8a..01bf2ba 100644
--- a/DataLoader/MainWindow.xaml
+++ b/DataLoader/MainWindow.xaml
@@ -2,7 +2,7 @@
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Height="700" Width="900" Loaded="Window_Loaded" Closing="Window_Closing"
-        Title="鏁版嵁鍏ュ簱 v1.7" WindowStartupLocation="CenterScreen">
+        Title="鏁版嵁鍏ュ簱 v1.72" WindowStartupLocation="CenterScreen">
     <Window.Resources>
         <Style x:Key="btn" TargetType="Button">
             <Setter Property="Background" Value="#005699"/>
diff --git a/DataLoader/Model/SysMeta.cs b/DataLoader/Model/SysMeta.cs
index b99fa3c..fe82a9c 100644
--- a/DataLoader/Model/SysMeta.cs
+++ b/DataLoader/Model/SysMeta.cs
@@ -163,6 +163,16 @@
         public string bands { set; get; }
 
         /// <summary>
+        /// 鏈�灏忓��
+        /// </summary>
+        public string min { set; get; }
+
+        /// <summary>
+        /// 鏈�灏忓ぇ鍊�
+        /// </summary>
+        public string max { set; get; }
+
+        /// <summary>
         /// 娉㈡鏁版嵁绫诲瀷
         /// </summary>
         public string band_type { set; get; }

--
Gitblit v1.9.3