An AI-powered geospatial intelligence platform that enables users to perform satellite data analysis using natural language.
Instead of writing complex Google Earth Engine (GEE) scripts, users can simply describe what they want to analyze. The system interprets the request, selects the appropriate dataset and workflow, executes the analysis through Google Earth Engine, and returns visual results with supporting explanations.
- Overview
- Features
- Supported Analysis Operations
- Supported Datasets
- System Architecture
- Request Processing Flow
- Folder Structure
- Technology Stack
- How to Run Locally
- Environment Variables
- Architecture & Design Decisions
- Challenges & Trade-offs
- Security Considerations
- Performance & Scalability
- Future Improvements
Satellite imagery contains valuable information about vegetation health, floods, urban expansion, deforestation, climate patterns, and environmental change.
However, extracting these insights traditionally requires expertise in:
- Remote Sensing
- GIS Software
- Google Earth Engine
- Satellite Data Processing
This project bridges that gap by providing a conversational interface for Earth Observation analysis.
Users can interact with satellite datasets using natural language while the platform handles:
- Dataset selection
- Workflow generation
- Google Earth Engine execution
- Result visualization
- Interpretation generation
Convert plain English requests into satellite analysis workflows.
Uses Google Earth Engine for large-scale geospatial processing.
View analysis outputs directly on an interactive map.
Generates human-readable explanations for analysis results.
Store and revisit previous analyses.
Reduces repeated processing for similar requests.
Supports long-running geospatial operations through Celery workers.
Secure user sessions using JWT authentication.
| Analysis | Purpose |
|---|---|
| NDVI | Vegetation Health Monitoring |
| NDWI | Water Body Detection |
| EVI | Enhanced Vegetation Monitoring |
| Crop Health Assessment | Agricultural Monitoring |
| Flood Mapping | Flood Extent Detection |
| Land Cover Classification | Land Use Analysis |
| Land Cover Change Detection | Temporal Change Analysis |
| Deforestation Detection | Forest Monitoring |
| Urban Heat Island (UHI) | Urban Temperature Analysis |
| NDBI | Built-up Area Detection |
| Burn Area Analysis | Fire Impact Assessment |
| SAR Analysis | Radar-Based Monitoring |
| Time-Series Analysis | Multi-Date Comparisons |
The platform leverages datasets available through Google Earth Engine, including:
- Sentinel-2
- Landsat 8
- Landsat 9
- MODIS
- Sentinel-1 SAR
- Dynamic World
- ESA WorldCover
- CHIRPS Rainfall
- ERA5 Climate Data
- SRTM DEM
Additional datasets can be integrated through Google Earth Engine.
User Query
│
▼
Frontend (React + Leaflet)
│
▼
FastAPI Backend
│
▼
LLM Processing Layer
│
▼
JSON Validation Layer
│
▼
Google Earth Engine
│
▼
Analysis Results
│
▼
Map Visualization + Interpretation
flowchart LR
A[User] --> B[React Frontend]
B --> C[FastAPI Backend]
C --> D[Groq Llama 3.1 70B]
D --> E[JSON Validation Layer]
E --> F[Google Earth Engine]
F --> G[Satellite Analysis Results]
G --> C
C --> H[PostgreSQL + pgvector]
C --> I[Redis]
I --> J[Celery Workers]
J --> F
C --> B
Natural Language Query
│
▼
Intent Understanding
│
▼
Structured JSON Generation
│
▼
Validation Layer
│
▼
GEE Operation Selection
│
▼
Satellite Processing
│
▼
Result Generation
│
▼
Visualization & Interpretation
Satellite-Data-Analysis-Chatbot/
├── backend/
│ ├── app/
│ │ ├── api/
│ │ ├── core/
│ │ ├── services/
│ │ ├── models/
│ │ ├── schemas/
│ │ ├── db/
│ │ └── main.py
│ │
│ ├── workers/
│ ├── requirements.txt
│ └── Dockerfile
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── layouts/
│ │ ├── context/
│ │ └── services/
│ │
│ ├── package.json
│ └── vite.config.js
│
└── README.md
- React
- Vite
- Tailwind CSS
- Leaflet.js
- FastAPI
- Pydantic
- JWT Authentication
- Groq API
- Llama 3.1 70B
- Gemini 1.5 Flash (Fallback)
- Google Earth Engine
- PostgreSQL
- pgvector
- Redis
- Celery
- Vercel
- Render
Install dependencies:
cd backend
pip install -r requirements.txtRun the backend:
uvicorn app.main:app --reloadBackend URL:
http://localhost:8000
Install dependencies:
cd frontend
npm installRun frontend:
npm run devFrontend URL:
http://localhost:5173
Backend:
GROQ_API_KEY=your_groq_key
GEMINI_API_KEY=your_gemini_key
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
SECRET_KEY=your_secret_key
GEE_SERVICE_ACCOUNT=your_service_account
GEE_PRIVATE_KEY=your_private_keyFrontend:
VITE_API_BASE_URL=http://localhost:8000Instead of allowing the LLM to generate executable code directly, the system generates structured analysis instructions.
Benefits:
- Safer execution
- Predictable behavior
- Easier validation
- Reduced hallucinations
Every generated operation passes through a validation layer before execution.
The validator checks:
- Supported operation
- Valid date range
- Dataset compatibility
- Region validity
Only validated requests are executed.
Long-running satellite operations are handled through:
- Celery
- Redis
This prevents blocking API requests and improves responsiveness.
Query embeddings are stored using pgvector.
Benefits:
- Faster repeated queries
- Reduced LLM calls
- Lower operational cost
Users often describe analyses in multiple ways.
Solution:
- Structured prompting
- Validation layer
- Operation whitelisting
Large-area analyses can take several minutes.
Solution:
- Celery task queue
- Background processing
- Status tracking
Direct code generation can produce invalid operations.
Solution:
- JSON-based workflow generation
- Strict schema validation
- Controlled operation mapping
Google Earth Engine has usage limits.
Solution:
- Caching
- Optimized workflows
- Background processing
- JWT Authentication
- Request Validation
- Protected API Endpoints
- Environment Variable Secrets
- Input Sanitization
- Rate Limiting
- Secure GEE Credential Management
Current architecture supports:
- Multi-user analysis
- Asynchronous processing
- Query caching
- Horizontal backend scaling
- PostgreSQL indexing
- Vector similarity search
Optimization techniques:
- Semantic caching
- Background task queues
- Thumbnail previews before full exports
- Efficient GEE workflows
- Advanced SAR Analytics
- Climate Trend Analysis
- Drought Monitoring
- Rainfall Analytics
- Carbon Monitoring
- Disaster Assessment
- GeoTIFF Export Workflows
- User Workspaces
- Analysis Sharing
- Scheduled Monitoring
- Multi-Region Comparison
- Collaboration Tools
- Conversational Memory
- Query Recommendations
- Intelligent Dataset Selection
- Automated Report Generation
This project is intended for educational, research, and demonstration purposes.
Built to make satellite data analysis more accessible through AI and natural language interfaces.