From cfe4c50c31f9b8a9b17a4cc29266f9ac11e45cc8 Mon Sep 17 00:00:00 2001 From: DXC Date: Wed, 10 Jun 2026 09:55:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(step8=E2=86=92step9):=20=E6=BA=90=E5=A4=B4?= =?UTF-8?q?=E9=80=8F=E4=BC=A0=E5=9D=90=E6=A0=87=E5=85=83=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E6=89=93=E9=80=9A=E7=A9=BA=E9=97=B4=E5=9D=90=E6=A0=87?= =?UTF-8?q?=E5=85=A8=E7=A8=8B=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/water_quality_inversion_pipeline_GUI.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/water_quality_inversion_pipeline_GUI.py b/src/core/water_quality_inversion_pipeline_GUI.py index ac02378..ff43bc3 100644 --- a/src/core/water_quality_inversion_pipeline_GUI.py +++ b/src/core/water_quality_inversion_pipeline_GUI.py @@ -795,6 +795,9 @@ class WaterQualityInversionPipeline: (self.logger.info if hasattr(self, 'logger') else print)(msg) return + # ── 源头透传:提取元数据列(左列),与数据行一一对应 ──────────── + meta_df = df.iloc[:, :wavelength_col_idx].copy() + wavelengths = np.array([float(c) for c in col_names[wavelength_col_idx:]], dtype=np.float64) data_matrix = df.iloc[:, wavelength_col_idx:].values.astype(np.float64) if data_matrix.ndim == 1: @@ -814,12 +817,15 @@ class WaterQualityInversionPipeline: wl_arr = wavelengths a_arr = sample_result['a_lambda'] bb_arr = sample_result['bb_lambda'] + # 取出第 i 个样本的元数据行(如 X, Y, Lon, Lat 等),与光谱行一一对齐 + meta_row = meta_df.iloc[i].to_dict() if i < len(meta_df) else {} for j, wl in enumerate(wl_arr): rows_out.append({ 'sample_id': f"sample_{i}", 'Wavelength': wl, 'a_lambda': a_arr[j], 'bb_lambda': bb_arr[j], + **meta_row, }) result_df = pd.DataFrame(rows_out)