Awards & Nominations
Mystic Coders has received the following awards and nominations. Way to go!
Mystic Coders has received the following awards and nominations. Way to go!
There is a vast untapped holding of renewable energy resources that can have great benefit if utilized. We have made our platform to shine some light on this. Anyone wishing to get comprehendible data on renewable energy prospects or objective information on their green energy systems can use this platform. We have developed an application that uses NASAs POWER API to provide environmental data in a comprehensive manner to anyone anywhere. Further more, we have made an algorithm that uses current and historical data to give some forecast on solar irradiation. Companies and home owners can connect their solar panel tracking apps to our application and derive statistics about their system.
Our project consists of two components: the flutter application(GUI) we call 'Illuminate' that users use to get and compare solar irradiation data with their systems output, and the python algorithm(python program) that processes and also forecasts solar irradiation data based on historical data provided by NASAs POWER API.
The application will allow users to integrate 3rd party solar panel tracking software with our system to be able to get users historical data for analysis:

After that, users will choose the range of solar irradiation data they want to look at and compare it with their solar panels output (if solar panel data is available. If not, they'll be able to just look at solar irradiation data) :



Solar irradiation data will be provided based on their location or the location they have chosen:

Lastly, their solar panels output data will be displayed with solar irradiation data:

They can choose to just view solar irradiation data if they're using the application for siting purposes:

Since this application was programmed in flutter, it can be built for Android and IOS devices.
The algorithm uses Python with Jupyter Notebook from anaconda for all ipynb files based on Python with modules. We also have pdf which give example of what features look like in ipynb format. Our algorithm will only be using daily and point data, and the ALLSKY_SFC_SW_DWN and/or ALLSKY_NKT parameter from NASAs POWER API will be used. We assume for this algorithm that all input from user will be a csv monthly or yearly or all time table in csv format that include date and mean of kw per hour for a day which index by date
Our python program includes the following features:
1. select and download csv from NASA Power API by given input(Start time, end time, latitude, longitude).
For this feature, we edit the download link with different parameters, so we can download data from any where, any time, with any conditions. Then, we used some libraries, to help us catch data from the link and convert it to csv file.


2.CurrentMonth - Compare your daily solar system output in kw-day or mean kw-hour(x24) to ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data for a month.
For this feature, we have gotten the csv we need from main.py(feature 1) using datatime in python. We then developed one graph for solar irradiance, and a combined graph that has each type of data (kilowatt per day, shortwave solar irradiance, and skyclearness index).
We also have descriptive summary, for example mean, maximum, minimum, and total for some parameters.
All csv file contain data have maximum length of one month.


3.CurrentYear - Compare your daily solar system output in kw-day or mean kw-hour(x24) to ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data for a Year
For this feature, we develop one graph for each type of data (kilowatt per day, shortwave solar irradiance, and skyclearness index) and a combined graph have all type of data .
We also have descriptive summary, for example mean, maximum, minimum, and total for some parameters.
All csv file contain data have maximum length of one year.



4.CompareMonth_yoursolarpanels - Compare your one month of daily solar system output in kw-day to another month of daily solar system output in kw-day
For this feature, we compared two csv data we assumed from came from user that contains mean kilowatt per hour which we converted to kilowatt per day. Data from the two files was combined into one dataset and compared with each other to see the differences.
These two files can be from different time periods for any solar panel system, but with maximum length of one month.
We then have descriptive summary, for example mean, maximum, minimum, and total for each file(month).

5.CompareYear_yoursolarpanels - Compare your one year of daily solar system output in kw-day to another year of daily solar system output in kw-day
For this feature, we compared two csv data we assumed came from user containing mean kilowatt per hour which converted to kilowatt per day. Data from the two files have been combined into one dataset and compared with each other to see the differences.
These two file can be from different time periods for any solar panel system, but with maximum length of one year.
We then have descriptive summary, for example mean, maximum, minimum, and total for each file(year).



6.CompareMonth - Compare one month of ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data to another month of ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data
For this feature, we compared two csv data from NASA by forming two graphs, one graph for each parameter which are solar irradiance and sky clearness(ALLSKY_SFC_SW_DWN and ALLSKY_NKT).
Then we have descriptive summary, which contain mean, maximum, minimum of two parameters for each file(month).


7.CompareYear - Compare one year of ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data to another year of ALLSKY_SFC_SW_DWN and ALLSKY_NKT daily data
For this feature, it is similar to compare a month, however it needs to combine all data from the year take the mean to form monthly data, so it can be easier for comparison. It will also have two graph to compare each parameters (solar irradiance and sky clearness) from two file(year) which could also be from different locations.
Then we have descriptive summary, which contain mean, maximum, minimum of two parameters for each file(year).







8.forecast solar irradiance - forecast the solar irradiance(ALLSKY_SFC_SW_DWN) for next year in your selected location
For this feature, firstly we made a time series graph with monthly mean and yearly mean, this will allow user to understand the pattern of the data, which is the solar irradiance in this locations, then we simplified the process by only leaving the prediction graph for the next year.
we purposely set the prediction time to next year, since it is not too short or too long, however even if the user doesn't like the prediction, they will be able to gain insights and form assumptions and prediction based on first graph.
We chose to use Holt-Winters model since it will respond to changes in both trend and seasonality, and it is easy to compare to others.
For parameters used in Holt-Winters model, we assumed both the trend and the seasonality will be addictive not multiplicative, because when we look into data, solar irradiance and solar panel output which rely on solar irradiance do not change greatly in attitude and sizes . Regard to seasonal period, because we use daily data, and the pattern seen to repeat yearly, so it will be 365.
Since data need to train into model before make prediction, we will automatically select 6 years of solar irradiance data from the day user started using this feature. However, the user still need to select the location(input the latitude and the longitude).



9.forecast your solar system output - forecast the your solar system output for next year in kw-day or mean kw-hour(x24)
Same as feature 8 but change data to kilo watt per day which generated from mean kilo watt per hour x 24(suggested in the challenge video), and user is required to submit at least one year of data. For the assumed input in this features we multiplied a random number to solar radiance in a random place.


What we plan to do for this app in future:
Due to time restrictions, we were unable to integrate the finished python backend algorithm with our application. However, we plan on integrating this with the application and also making a web app version that can be used on all devices. Most solar panel tracking applications provide an API we can connect to. We want to make the feature of being able to integrate third party solar panel tracking apps with our system fully functional.
We also plan on improving the project by including more parameters (e.g. humidity and regional data). We could explore the effect of these parameters on user's solar panel system output. With regional data we can create a map that show the intensity of parameter(e.g. solar irradiance)by color filter. We would also like to explore more renewable energy sources (eg. Wind) and add that to our system.
All the data we used, except for the users solar panel data, come from the NASA POWER project, through their publicly available API. After we/user get this data, our program will use it to make and display analysis, summaries, comparisons and predictions.
How we utilized it:
This data allows users to gain knowledge on anything related to solar power. We used this data to allow users to objectively decide which solar panel is most efficient and what conditions(where, when) it performs the best in among other things. This data also gives us general information on our environment which can be used for renewable energy resource siting purposes. Moreover, users can also learn how and possibly why the output of their solar panel system changes over time, and what the pattern would look like in the future.
Our team:
I am currently a undergraduate IT student, I was taking this opportunity as a practice for my skills and knowledge I learned in school. I chose this challenge as I have some background and interest in the solar energy topic, as felt this project aligned with my skills. During the brainstorming process, I had the idea of two prediction features, however, even though I know how to make some parts of the features into actual programs, I was frustrated by the other parts which I did not learn how to do in University. There were some small mistakes that took a while to notice, but there are other difficult problems that required trying various solutions, look into many guides, and take some time which mean you need to have rest and think about other things before you continue to try and solve. Overall, since practice is one of most important part for programmers, this opportunity provided me experience on how to solve problems that can benefit me in future.
-Terry Zhang
I joined this challenge because I want to see more people using renewable energy resources. I wanted to learn more about it and see what I can do. Besides having learned new things, I've met nice people from all over the world. We all had varying skills and it was interesting to see this project come together.
-Heran
I am a grade 9 student from Toronto, Canada and this was my first experience with a team in a hackathon. My members were extremely knowledgeable, professional and understood this was my "first time experience." I contributed to the team where I could with PowerPoint and as editor. This challenge and especially my team mates have encouraged me to dig deeper into programming languages. This by far has been a formidable experience and I thank each of my team mates for allowing me to join them in this journey!
-Isaak Lee
Reference of the prediction feature:
1.Holt winters exponential smoothing
2.Forecasting time series model using python
Reference of guide used to develop graph:
1.https://pandas.pydata.org/docs/
2.https://seaborn.pydata.org/generated/seaborn.lineplot.html
3.https://www.statsmodels.org/dev/generated/statsmodels.tsa.holtwinters.HoltWintersResults.html
4.https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
For all project files: here
Github:
https://github.com/technical-zebra/youaremysunshine_mysticcoders
https://github.com/jetsniper25/Nasa-space-app-challenge---app
#software #app #solar #charts #renewable_energy #analysis #comparsion #prediction #python #dart #graph
This project has been submitted for consideration during the Judging process.
NASA produces a variety of surface solar and meteorological data parameters that are useful to commercial renewable energy and sustainable building ventures, but this information is not easily accessible to the typical homeowner. Your challenge is to develop a mobile application to access the information on NASA’s Prediction of Worldwide renewable Energy Resources (POWER) web services portal and provide useful information about sunshine to the general public.
