Inspiration

As an international student from Nicaragua, our team member has shared how El Niño disrupts his community, threatening livelihoods. This firsthand experience ignited his passion for tackling climate issues through technology, and as a team, we are committed to supporting his vision for those severely affected by this environmental condition.

What it does

The model analyzes El Niño data to predict key climate factors such as humidity, air temperature, sea surface temperature, and meridional winds. It aims to assist farmers in making informed decisions about resource allocation by providing localized predictions tailored to specific regions and crops. The model helps weather stations and farmers to optimize their agricultural practices in response to the impacts of El Niño.

How we built it

Machine Learning: We conducted exploratory data analysis (EDA) using Matplotlib, Seaborn, and NumPy to uncover key insights related to geospatial clustering. Our analysis revealed significant patterns formed by geospatial coordinates, which led us to develop an ensemble model.

This ensemble model consists of a standardization step that prepares the data for a KMeans clustering algorithm. The results from KMeans are then utilized as inputs for a MultiRegression XGBoost model, alongside a multi-layer perceptron (MLP) neural network. The MLP was built using TensorFlow’s functional API, allowing for a flexible architecture. We initialized the learning rate at a higher value and employed the Adam optimizer, which resulted in optimal loss behavior throughout the training epochs.

The features included in our models were latitude, longitude, month, and day, while the outputs we aimed to predict included humidity, air temperature, wind speed, and seabed temperature. This structured approach allowed us to leverage both clustering and regression techniques to analyze and predict environmental conditions effectively.

BackEnd: For the Back end implementation of our project we worked using Flask and visual studio code in order to carry out the connection between the Machine learning models and our GUI. alongside flask we used Flask Restful, xgboost, and numpy.

FrontEnd: We developed the frontend using React and Visual Studio Code to effectively present model data and associated theories. React Router was integrated for streamlined navigation, enabling buttons to trigger route changes and load new components. The main page features a looping background video, accompanied by an impact statement and buttons that allow users to navigate to the calculator and theoretical explanations as they scroll. Additionally, most elements are designed to be responsive, ensuring an optimal experience across various devices.

Challenges we ran into

Machine Learning: The dataset contained ambiguous features that showed no strong correlation with other variables.

BackEnd: Some challenges that we ran into was establishing a connection between our API and our UI. We encountered issues with the programs not properly linking to the API url due to differences between local host and connection.

FrontEnd: As this was my first time building a website, I aimed to incorporate advanced features like subtle animations while maintaining a functional UI. I faced the most difficulty programming the transitions for the impact textbox and buttons as users scrolled down from the video background, primarily due to the complexities of JavaScript involved. Through trial and error, I successfully implemented a fading transition effect by utilizing the Intersection Observer API to monitor the visibility of a section on the main page, dynamically adding or removing a CSS class based on its intersection status, which created a smooth fade-in animation as users scrolled.

Accomplishments that we're proud of

Machine Learning: We created a 3 step ensemble model that consisted of 6 ML models to predict the 4 critically related to agriculture features.

BackEnd: I am proud of making a functioning API, the Api creates a proper local URL and takes .JSON input to return computations of predicted results in

FrontEnd: I am most proud of my understanding of flex direction. I was having trouble creating a layout for the 6 models that explains the theory, and after discovering flex direction, I was able to utilize this layout method in other aspects to nicely organize information. Flex direction was a challenging concept to understand, especially when I had to decide between space-evenly or space-around was the best approach; however, I’m extremely satisfied to take away a new topic.

What we learned

Machine Learning:

I learned how to use the Kmeans algorithm after input StandardScalar values for the geospatial locations to find regions that exhibit similar locations, especially since the Wind that's being outputted is vertically related same as the clusters being able to cluster locations off of latitude.

BackEnd: I learned to use flask extensions like flask_cors and Rest to build an API. Furthermore used json file management tools to compute and

FrontEnd: In developing the NewPage component, I added a pop-up image feature using React's useState to manage modal state. A click handler (handleImageClick) sets the image source and caption, enhancing user experience with dynamic content. The modal can be closed by clicking the "X," allowing for interactive image viewing with descriptive captions.

Built With

Share this project:

Updates