lolzysiu commited on
Commit
743cf47
1 Parent(s): 0744071

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -9
app.py CHANGED
@@ -115,30 +115,37 @@ def preprocess_csv_for_prediction(csv_file):
115
  try:
116
  # Load the dataset
117
  data = pd.read_csv(csv_file.name)
118
-
119
  # Validate column names
120
  expected_columns = ['Month', 'Hour', 'Irradiance(W/m^2)', 'Latitude', 'Longitude',
121
  'Panel_Capacity(W)', 'Panel_Efficiency', 'Wind_Speed(km/h)',
122
  'Cloud_Cover(%)', 'temperature (°f)']
123
  if not all(col in data.columns for col in expected_columns):
124
  return f"Error: Missing expected columns. Required: {expected_columns}"
125
-
126
- # Select the relevant columns (ensure all 43 features are included)
127
- last_row = data.tail(1)[expected_columns] # Use only the last row of data
128
-
129
- # Fill missing values
130
- last_row.fillna(0, inplace=True)
131
-
 
 
 
 
 
 
132
  # Reshape the data to match the model's input shape
133
  sequence = last_row.values.astype(np.float32)
134
  sequence = sequence.reshape((1, 1, 43)) # (batch_size, time_step, features)
135
-
136
  return sequence
137
  except Exception as e:
138
  return f"Error in preprocessing CSV: {str(e)}"
139
 
140
 
141
 
 
142
  # Function to process image and forecast energy using CSV file
143
  # Function to process image and forecast energy using CSV file
144
  def process_image_and_forecast(image, min_area, pixel_area, clip_limit, tile_size, panel_type,
 
115
  try:
116
  # Load the dataset
117
  data = pd.read_csv(csv_file.name)
118
+
119
  # Validate column names
120
  expected_columns = ['Month', 'Hour', 'Irradiance(W/m^2)', 'Latitude', 'Longitude',
121
  'Panel_Capacity(W)', 'Panel_Efficiency', 'Wind_Speed(km/h)',
122
  'Cloud_Cover(%)', 'temperature (°f)']
123
  if not all(col in data.columns for col in expected_columns):
124
  return f"Error: Missing expected columns. Required: {expected_columns}"
125
+
126
+ # Ensure columns with string values like 'Month' are removed or processed
127
+ data = data[expected_columns]
128
+
129
+ # Convert all non-numeric columns to numeric (handling errors where conversion is not possible)
130
+ data = data.apply(pd.to_numeric, errors='coerce')
131
+
132
+ # Handle any missing values (NaNs)
133
+ data.fillna(0, inplace=True)
134
+
135
+ # Select the relevant last row for prediction
136
+ last_row = data.tail(1)
137
+
138
  # Reshape the data to match the model's input shape
139
  sequence = last_row.values.astype(np.float32)
140
  sequence = sequence.reshape((1, 1, 43)) # (batch_size, time_step, features)
141
+
142
  return sequence
143
  except Exception as e:
144
  return f"Error in preprocessing CSV: {str(e)}"
145
 
146
 
147
 
148
+
149
  # Function to process image and forecast energy using CSV file
150
  # Function to process image and forecast energy using CSV file
151
  def process_image_and_forecast(image, min_area, pixel_area, clip_limit, tile_size, panel_type,