Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions Solar_irradiance_code(modal)
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# below is the code (modal) for solar irradiance using random forest regressor algorithm

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.preprocessing import StandardScaler

# Load your data
data = pd.read_csv('solar_irradiance_data_1.csv')

# Feature Engineering
data['day_of_year'] = pd.to_datetime(data[['year', 'month', 'day']]).dt.dayofyear

# Define features and target variable
X = data[['latitude', 'longitude', 'day_of_year', 'hour']]
y = data['solar_irradiance']

# Optional: Standardize the features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Split data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# Initialize and train the model
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# Make predictions
y_pred = model.predict(X_test)

# Evaluate the model
mae = mean_absolute_error(y_test, y_pred)
print(f'Mean Absolute Error: {mae}')

# Example prediction
new_data = pd.DataFrame({
'latitude': [-16.5],
'longitude': [-68.5],
'day_of_year': [205],
'hour': [12]
})
new_data_scaled = scaler.transform(new_data)
predicted_irradiance = model.predict(new_data_scaled)
print(f'Predicted Solar Irradiance: {predicted_irradiance[0]} W/m^2')