Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import numpy as np | |
| from utils.excel_loader import load_submarine_forecast_data | |
| from utils.preprocessing import preprocess_load_data, preprocess_temperature_data, preprocess_measurement_data | |
| from utils.merge_data import aggregate_daily_max, merge_load_temp, merge_with_measurements, calculate_capacity_analysis | |
| print("=" * 80) | |
| print("🧪 TEST: Fixed Data Pipeline") | |
| print("=" * 80) | |
| # Load | |
| print("\n1️⃣ Loading data...") | |
| data = load_submarine_forecast_data('dataset/submarine_forecast.xlsx') | |
| # Preprocess | |
| print("\n2️⃣ Preprocessing...") | |
| df_load = preprocess_load_data(data['load']) | |
| df_temp = preprocess_temperature_data(data['temp']) | |
| print(f"✅ Load preprocessed: {df_load.shape}, mw range: {df_load['mw'].min():.2f}-{df_load['mw'].max():.2f}") | |
| print(f"✅ Temp preprocessed: {df_temp.shape}, MaxTemp range: {df_temp['MaxTemp'].min():.2f}-{df_temp['MaxTemp'].max():.2f}") | |
| # Aggregate & Merge | |
| print("\n3️⃣ Aggregating & merging...") | |
| df_daily = aggregate_daily_max(df_load) | |
| df_merged = merge_load_temp(df_daily, df_temp) | |
| print(f"✅ Merged: {df_merged.shape}, mw_max range: {df_merged['mw_max'].min():.2f}-{df_merged['mw_max'].max():.2f}") | |
| # Merge with measurements (FIXED) | |
| print("\n4️⃣ Merging with TEPR/STRR (NOW FIXED)...") | |
| df_merged_full = merge_with_measurements(df_merged, data['tepr'], data['strr']) | |
| print(f"✅ After measurement merge: {df_merged_full.shape}") | |
| print(f" mw_max range: {df_merged_full['mw_max'].min():.2f}-{df_merged_full['mw_max'].max():.2f} MW ✅") | |
| print(f" tepr_mean: {df_merged_full['tepr_mean'].iloc[0]:.2f}") | |
| print(f" strr_mean: {df_merged_full['strr_mean'].iloc[0]:.2f}") | |
| # Capacity Analysis | |
| print("\n5️⃣ Capacity Analysis...") | |
| df_analysis = calculate_capacity_analysis(df_merged_full) | |
| print(f"✅ Analysis complete: {df_analysis.shape}") | |
| print(f" Load % of 80%: {df_analysis['load_pct_of_80'].mean():.2f}%") | |
| print(f" Available Margin: {df_analysis['mw_available_margin'].mean():.2f} MW") | |
| print(f" Thermal Margin: {df_analysis['temp_margin_available'].mean():.2f}°C") | |
| print("\n" + "=" * 80) | |
| print("✅ TEST PASSED - Data pipeline is now FIXED!") | |
| print("=" * 80) | |