How himesh-mehta/geolens works
GeoLens is a web platform for satellite-based land-cover analysis across India. Users select an area or location, request Sentinel-2 analysis, and review classification, spectral indices, and reports; they can also compare periods, analyze uploaded imagery or shapefiles, and ask Orbit AI questions grounded in active results. The README documents these capabilities; sampled backend excerpts show Flask coordinating ML, imagery, and reasoning. Frontend service-to-page wiring and several upload workflows were not excerpted, so those connections are shown only where documented or evidenced.
Main entry points: app.py Flask API · api-client.ts Backend API client · model_service.py Land-cover classifier · reasoning_engine.py Reasoning engine
Components 23
Web experience
- Analysis workspace
frontend/app/explorer/page.tsx - Period comparison
frontend/app/compare/page.tsx - Image analysis
frontend/app/image-analysis/page.tsx - Shapefile analysis
frontend/app/shapefile-analysis/page.tsx - Orbit assistant
frontend/components/analysis/ai-assistant.tsx - Backend API client
frontend/lib/api-client.ts - Location analysis service
frontend/services/analysis-service.ts - Comparison service
frontend/services/comparison-service.ts
Analysis backend
- Flask API
backend/app.py - Land-cover classifier
backend/ml_layer/model_service.py - Vector analytics
backend/ml_layer/shapefile_service.py
Earth observation sources
- Earth Engine imagery
backend/data_sources/gee_source.py - Sentinel data source
backend/data_sources/sentinel_source.py - ISRO data source
backend/data_sources/isro_source.py
Interpretation and outputs
- EO visual extractor
backend/vision_layer/visual_extractor.py - Imagery renderer
backend/vision_layer/image_generator.py - Vision evaluator
backend/vision_layer/vision_evaluator.py - Reasoning engine
backend/gpt_oss_layer/reasoning_engine.py - Groq AI service
backend/gpt_oss_layer/ai_service.py - Prompt templates
backend/gpt_oss_layer/prompt_templates.py
Other components
- GeoLens user
- Groq LLM
- Google Earth Engine
Connections 23
- GeoLens user → Analysis workspace: selects area
README.md - Analysis workspace → Location analysis service: requests analysis
- Period comparison → Comparison service: requests comparison
- Image analysis → Backend API client: uploads imagery
README.md - Shapefile analysis → Backend API client: uploads shapefile
README.md - Orbit assistant → Backend API client: asks question
- Location analysis service → Backend API client: requests data
frontend/services/analysis-service.ts - Comparison service → Backend API client: requests change data
frontend/services/comparison-service.ts - Backend API client → Flask API: sends REST requests
README.md - Flask API → Land-cover classifier: runs classification
backend/app.py - Flask API → Vector analytics: dispatches analysis
README.md - Flask API → EO visual extractor: extracts EO features
backend/app.py - Flask API → Imagery renderer: generates imagery
backend/app.py - Flask API → Vision evaluator: evaluates agreement
backend/app.py - Flask API → Reasoning engine: requests reasoning
backend/app.py - Flask API → Earth Engine imagery: checks connectivity
backend/app.py - Land-cover classifier → Earth Engine imagery: fetches features
backend/ml_layer/model_service.py - Earth Engine imagery → Google Earth Engine: queries imagery
backend/data_sources/gee_source.py - Reasoning engine → Groq AI service: prepares response
backend/gpt_oss_layer/reasoning_engine.py - Reasoning engine → Prompt templates: uses prompts
backend/gpt_oss_layer/reasoning_engine.py - Groq AI service → Groq LLM: generates answer
README.md - Land-cover classifier → Sentinel data source: uses observations
- Land-cover classifier → ISRO data source: uses observations