A Quarto website that documents the computational , experimental, and analytical processes of training, testing, and evaluating of machine learning algorithms.
In the modern day, climate change is an issue that becomes more prevalent with each passing day. With this, it is important to ensure that we, as a society, minimize our contributions to accelerating climate change unnaturally. One major way that this is done is by utilizing green energy technology like wind turbines or solar panels. In the United States, there are a wide range of biomes and ecosystems that each experience varying conditions like wind speed and solar irradiance. This makes it somewhat difficult to make use of green energy technologies just anywhere. This work seeks to alleviate this difficulty by allowing for the quick access to accurate predictions of energy output and cost of a potential wind farm or solar array of a certain size in a certain location in the United States, through the power of machine learning.
The website can be found at this link
Google Colab can be used to run the notebooks without the need for any installations. Keep in mind, the commands to read in the datasets change depending on the environment being used to run the notebooks.
If it is desired to run the notebooks manually and/or interact with the
datasets, Jupyter
makes this possible through the use of a few simple
commands.
Renewable ML assumes Python 3.11.X and Poetry are installed prior to any of the steps below.
To run the notebooks, follow the steps below:
- Clone or fork the repository
- In the base of the repository, type
poetry shell
to create an isolated virtual environment - Type
poetry install
to get all of the dependencies - Type
jupyter notebook
to boot up a Jupyter server on your localhost
The notebooks are located in the \app
directory. Once navigated there,
each notebook can be accessed and ran individually. More can also be made
and the data is free to be interacted with.
Renewable ML uses Quarto for the creation of the website. Detailed steps can always be found at their documentation. for how to get started with Quarto. The process of creating the website for this repository was a followed (assuming VS Code is being used):
Be sure to have cloned/forked the repo and that Python 3.11.X and poetry are installed.
- First, install the Quarto CLI
- Then get the Quarto extension from the Extensions tab in VS Code.
- Now click on the search bar up at the top of VS Code and type
>Quarto: Create Project
- Select that command and click on
Website Project
- Choose a directory or make a new one to house the website project.
- Navigate to this new directory in the CLI
- Type
poetry shell
and thenpoetry install
- Now commands like
quarto preview
andquarto render
can be used to update a local version of the website and track changes. - The command
quarto publish netlify
was used for this project to host the website on Netlify
One also has the option boot up the Renewable ML website locally just by using
quarto preview app
in the repository's root in the CLI.
There is now a website that hosts the note books! You can find it here
Some similar work has been done in the past. The largest one, NREL's PVWatts, gives very detailed solar irradiance data based on location, and many other factors pertaining specifically to solar panels. This, and other related tools, work, and articles are listed below:
- NREL's PVWatts: API Docs, Online Calculator
- NREL's WIND Toolkit Power Data: Full Report, Data
- ML for Solar Energy Production: GitHub
- Solarpy: GitHub, Inspiring Writing
- Windpowerlib: GitHub, Inspiring Work
- Windtools: GitHub
- Open Sustainable Technology: GitHub
- Climate Change 2021: Report
- Climate Change Impacts On Wind Power Generation: Article
- Renewable Energy and Climate Change: Article
- Wind and Solar Effectiveness: Article
To perform these predictions, a sufficient swath of data had to be collected,
as machine learning techniques would be used to analyze data and make
predictions. This data can be found in the data
directory, and consists
of two main data sets: wind.csv
and solar.csv
. These two data sets
each consist of 13 attributes, with each attribute having either approximately
125000 or 11500 observations depending on the data set being examined. Full
diagnostic reports regarding these data sets can be found on the
website.
These data sets are the heart of this artifact, in that they are what drives the predictions to be made. Making use of Python Jupyter Notebooks, the data are read in as Pandas data frames and passed into various Scikit-Learn machine learning tools. These include random forest, support vector machine, and artificial nerual network. These tools, along with Matplotlib, allow for drawing connections between the data through graphical representations.
Some future plans include expanding this work into a user study. An idea that was brought up early in development consisted of using the models generated through this process to create a tool that users can interface with that allows for them to make predictions regarding renewable energy array simply by inputting the location of the array, as well as the desired size of the array. Their opinions of the process would then be extracted and compared to their experience using similar, more complex tools like PVsyst. The hope would be to track that users have an easier time and gain better insights relative to time spent on the tool when interacting the tool produced from this work.
Other avenues for future work include better data collection, model fine-tuning, and using a larger selection of models.