Inspiration
When considering ways to encourage the use of renewable energy, our team realized the underutilization of efficient solar technologies. Our goal was to build a tool that could determine whether or not a specified set of latitude and longitude coordinates would be a beneficial region to place solar panels.
What it does
Our application takes in user input in the form of a pair of latitude and longitude coordinates and performs an algorithm to determine how suited that location is for solar panels. This is done by considering variables such as temperature, global horizontal irradiance (GHI), relative humidity, solar zenith angle, wind direction, and wind speed. We determined that these factors play a role in how efficient solar panels are able to run and trained a neural network to be able to predict values based on a dataset of weather-related information.
How we built it
We started by writing python scripts to parse through all the data that we found. We wanted to isolate what we considered to be the most important variables in order to train the neural network using those values. The workings of the neural network’s training algorithm are detailed in the section below. Our front end was built to include a map that allows users to drag and drop a pin to find a set of latitude and longitude coordinates which will then be run through our algorithm which predicts the efficiency of the solar panels at that specified location.
For the neural network, the input layer of the encoder takes the latitude and longitude of a location, and the output layer of the encoder predicts the relative humidity, wind speed, and temperature. The input layer of the decoder takes the relative humidity, wind speed, and temperature as inputs, and the output layer of the decoder predicts the GHI score. Intermediate layers between these also calculate solar zenith angle and pressure.
The weights and biases of the network are learned during the training process by minimizing the difference between the predicted GHI and the actual GHI values in the training data set. The network was trained using the Adam optimization algorithm, in which the learning rate is adjusted adaptively for each parameter in the model and an exponential moving average of the gradient and the squared gradient is calculated to update the parameters. We also used mean absolute error and mean squared error as loss functions to minimize.
Finally, the cost function is used to determine the suitability of a location. The cost function is a simple design based on various factors such as the GHI score, and efficiency of a solar panel, etc. The cost function is then used to determine the final score that indicates the suitability of the location for building a solar panel.
Challenges we ran into
One of the biggest challenges we faced was finding a dataset that (a) recorded the data that we had determined played a large role in the efficiency of a solar panel in a location and (b) was not so big that parsing through it took an incredibly long time. Once we were able to find some data, we had to modify the available information to ensure that we were only keeping track of the values we needed.
Accomplishments that we're proud of
In this project, we used a neural network to predict the global horizontal irradiance (GHI) based on the location's latitude and longitude. A GHI score can be used to determine the suitability of a site for building a solar panel.
What we learned
Members of our team were able to develop frontend and backend skills that we largely have had little to no experience with.
What's next for Solar Sight
Our ultimate goals for Solar Sight include gathering more data to allow our neural network to train itself off a larger sample of information and to use more variables when evaluating the potential efficiency of a solar panel. If more weather data regarding latitude, longitude, and other effective variables were more readily available, we would be able to have the prediction algorithm more likely accurate.
Built With
- javascript
- python
- react
- tensorflow
Log in or sign up for Devpost to join the conversation.