Inspiration
The inspiration for AquaRoute came from the need to make a project which traverses through oceanic routes and develops a path that accumluates the highest levels of ocean plastic concentration. We initially revolved this project around a research study conducted, titled "A multilevel dataset of microplastic abundance in the world’s upper ocean and the Laurentian Great Lakes" and then further interpolated the dataset to train an AI model for user inputted locations.
What it does
AquaRoute is an AI-powered ocean navigation tool that calculates optimized plastic-concentration heavy marine routes between two global coordinates while avoiding land. It aims to maximize ocean pollution concentration based on a pickle file detailing a point's latitude, longitude, and concentration levels (x, y, z axes). Using advanced modified A* pathfinding algorithms and real-world geographical data, AquaRoute plots paths across water, factoring in user-defined constraints like maximum route distance. It utilizes environmental data in conjunction with machine learning models to determine routes that not only meet distance limits but also prioritize regions with the highest cumulative ocean concentration levels. The program also adds domain constraints to the latitude and longitude inputted by the user. Built on an interactive Streamlit web interface, AquaRoute provides a user-friendly map that allows users to set start and stop points by clicking on it and then visualize optimized paths. The program provides a summary detailing the distance of the total path, the various points of diversion, as well as the total concentration levels taken by that path. It embeds the reference study and also provides a graphical interpretation of the optimized path.
How we built it
We built AquaRoute by combining AI-powered pathfinding algorithms with interactive mapping tools to create an intuitive, data-driven navigation tool for ocean routes.
- Route Optimization with A* Pathfinding Algorithm
Implemented an A* algorithm using networkx to calculate optimized routes across water, avoiding any land masses. Each ocean grid cell became a node in our network, enabling efficient navigation between coordinates.
Ocean Data Integration
Using environmental data stored in zdata.pickle, we included ocean plastic concentration metrics in our routing. This allows us to identify paths that not only meet distance constraints but also maximize exposure to high-concentration regions.
Custom World Grid for Land and Water Detection
We simulated a basic land-water grid to test pathfinding across ocean and land. Additionally, we researched alternative geographic libraries to make AquaRoute scalable for real-world landmass checks.
Interactive Interface with Streamlit and Folium
We used Streamlit for AquaRoute’s web app interface, creating an interactive map with Folium to allow users to select start and stop points and visualize their routes. The interface dynamically updates, showing optimized paths and key metrics for the selected ocean route.
DataBricks for initial DataProcessing We used Databricks to manage and analyze the large datasets essential for AquaRoute's intelligent routing. We incorporated a dataset from a variety of resources and processed it to finally return a pickle file with latitude, longitude, and concentration of trash to convert our Map API into its own grid with nodes of trash concentration levels. Databricks streamlined our data preprocessing, model training, and evaluation processes, empowering AquaRoute with sophisticated insights and making it ready for real-time decision-making.
Process Data with Radio Basis Function to Interpolate Missing Spacial Concentration Data In AquaRoute, we needed to ensure accurate oceanic concentration data across the entire routing grid. However, due to incomplete or sparse data points in our oceanographic dataset, we faced gaps in the spatial concentration values. To address this, we implemented a Radial Basis Function (RBF) interpolation technique, enabling us to estimate and fill in missing concentration data points effectively.
Challenges we ran into
A significant challenge that we experienced in this project was ensuring that the map updated when the "Optimize Route" button was clicked. Initially, it would only demonstrate a straight line path from Point A to Point B, not accounting for if the path went through land or not. Ensuring that the route then went around land, in addition to choosing the nodes with the highest levels of concentration, was a significant struggle. Additionally, we also struggled a lot with the time complexity of the program. Optimizing this algorithm to account for long paths was a struggle. For longer start to end point distances, it took a couple of minutes for the optimized route map to render, which would not be an efficient and industry-scaled program.
Achievements that we're proud of
- Developing a thorough project implementing the trained AI model and the GeoPy API and pathfinding algorithm.
- Ensuring that the program utilizes the A* pathfinding algorithm and the K-nearest neighbor machine learning model to ensure that the closest nodes are of the highest concentration levels
- Collaborating as a team and ensuring the tasks were modularized to increase the efficiency of completion
What we learned
- Using geographic libary (ie. GeoPy)
- Integrating K-nearest neighbor algorithm with A* pathfinding algorithm
- Prioritizing certain data over other depending on importance (concentration vs distance)
- Integrating map API with Streamlit
- Basic infrastructure of databricks
- Creating data using ML RBF Model
What's next for AquaRoute
- Making the path finding algorithms more efficient
- Providing alternative paths
- Optimization for longer paths
Log in or sign up for Devpost to join the conversation.