diff --git a/Solar_irradiance_code(modal) b/Solar_irradiance_code(modal) new file mode 100644 index 0000000..8c8a9c1 --- /dev/null +++ b/Solar_irradiance_code(modal) @@ -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')