AI-Powered Conversational Interface for ARGO Ocean Data Discovery and Visualization
FloatChat is a revolutionary platform that democratizes access to complex oceanographic data through natural language querying and interactive visualizations. Built for Smart India Hackathon 2025 (Problem Statement ID: SIH25040).
Background: Oceanographic data from sources like ARGO floats is vast, complex, and heterogeneous. Accessing, querying, and visualizing this data requires domain knowledge, technical skills, and familiarity with complex NetCDF formats and command-line tools.
Challenge: Bridge the gap between domain experts, decision-makers, and raw ocean data by enabling non-technical users to extract meaningful insights effortlessly through natural language interactions.
- Query historical and real-time ARGO data using natural language
- RAG pipeline powered by multimodal LLMs for accurate responses
- Data-validated responses tied to actual ARGO database records
- Visualize float trajectories with interactive maps
- Generate depth-time plots for temperature and salinity
- Historical ocean conditions through intuitive heat maps
- Real-time data exploration capabilities
- Direct download of dashboard-queried subsets
- Multiple formats: ASCII, NetCDF, CSV
- Bypass complex global ARGO NetCDF archives
- Transform massive NetCDF datasets into compact, query-ready PostgreSQL format
- Real-time data processing and aggregation
- Grid-based organization (2ยฐ ร 2ยฐ) for efficient storage
- Role-based access management via Supabase
- Separate portal for researchers to directly query databases
- Data integrity and security measures
ARGO NetCDF Data โ Data Cleaning โ Grid Organization (2ยฐร2ยฐ) โ PostgreSQL Storage
โ
Vector Embeddings โ ChromaDB โ Metadata Processing โ Summarizing Agent
User Query โ Query Embedding โ Semantic Search โ LLM SQL Generation โ Database Query โ Response
- ReactJS - User interface
- Plotly - Interactive visualizations
- Leaflet - Geospatial mapping
- FastAPI - Python web framework
- PostgreSQL - Primary database
- ChromaDB - Vector database
- Gemini API / LLaMA - Large Language Models
- Supabase - Backend-as-a-Service
- Docker - Containerization
- AWS EC2 - Cloud hosting
- Python 3.8+
- Node.js 16+
- Docker & Docker Compose
- PostgreSQL
- Git
- Clone the repository
git clone https://github.com/your-username/sih_25040.git
cd sih_25040- Backend Setup
# Navigate to backend directory
cd Fastapi_backend
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Configure your database URL, API keys, etc.
# Run database migrations
python manage.py migrate
# Start the FastAPI server
uvicorn main:app --reload- Frontend Setup
# Navigate to frontend directory
cd argo_frontend
# Install dependencies
npm install
# Start the React development server
npm start- Docker Deployment
# Build and run with Docker Compose
docker-compose up --buildDATABASE_URL=postgresql://username:password@localhost:5432/floatchat
GEMINI_API_KEY=your_gemini_api_key
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
CHROMA_PERSIST_DIRECTORY=./chroma_db๐ "Show me salinity profiles near the equator in March 2023"
๐ "Compare BGC parameters in the Arabian Sea for the last 6 months"
๐ "What are the nearest ARGO floats to latitude 15ยฐN, longitude 68ยฐE?"
๐ "Display temperature trends in the Indian Ocean over the past year"
- Float Trajectories: Interactive map showing ARGO float paths
- Depth-Time Plots: Temperature and salinity profiles over time
- Heat Maps: Spatial distribution of ocean parameters
- Data Export: Download filtered datasets in various formats
GET /api/floats # Get all ARGO floats
GET /api/floats/{float_id} # Get specific float data
POST /api/query # Natural language query
GET /api/profiles # Get temperature/salinity profiles
POST /api/export # Export filtered data
GET /api/dashboard/trajectories # Float trajectory data
GET /api/dashboard/heatmap # Heat map data
GET /api/dashboard/timeseries # Time series data
- LLM forms SQL queries using semantic context + user query
- Follows Model Context Protocol (MCP) for structured communication
- Summarizing agent forms detailed responses
- Vector embeddings stored in ChromaDB
- Top-k relevant document retrieval
- LLM-guided metadata filtering for precision
- Ocean divided into 2ยฐ ร 2ยฐ grids
- Aggregated data in optimized PostgreSQL tables
- Compact representation of massive NetCDF datasets
- Removes need for NetCDF expertise
- Natural language querying for all users
- Intuitive visual dashboards
- Fast data discovery and analysis
- Automated query generation
- Direct database access for advanced users
- Evidence-based insights for decision-makers
- Real-time ocean condition monitoring
- Climate policy and marine planning support
- Engaging platform for students
- Real-world dataset exploration
- Interactive learning experience
- BGC floats integration
- Buoy and glider data
- Satellite dataset incorporation
- INCOIS observation integration
- Anomaly detection capabilities
- Tsunami alert systems
- Cyclone tracking integration
- Coastal hazard warnings
- Open-source LLM integration (LLaMA, Mistral)
- Advanced caching mechanisms
- Multi-region deployment
| Challenge | Solution |
|---|---|
| Massive NetCDF Data Volume | Grid-based aggregation and preprocessing to compress TBs to GBs |
| LLM Query Ambiguity | Vector database with semantic search and metadata filtering |
| API Rate Limits & Costs | Query caching + open-source LLM integration |
| Data Integrity | All responses tied to actual database records, eliminating hallucinations |
Smart India Hackathon 2025
- Team ID: SIH-011
- Problem Statement: SIH25040
- Theme: Miscellaneous
- Category: Software
- Indian Argo Project
- Global Argo Data Repository
- Argopy Python Library
- Supabase PostgreSQL Database
- ChromaDB Documentation
๐ Making Ocean Data Accessible to Everyone ๐