Virdis is a precision agriculture field monitoring platform that combines satellite imagery, geospatial mapping, weather analytics, and AI-driven agronomic insights into a single web dashboard.
The platform allows farmers, agronomists, and agricultural analysts to map crop fields, monitor vegetation health using NDVI, and receive AI-generated recommendations for irrigation, crop stress, and field management.
Virdis enables users to:
- Map and manage crop fields on an interactive satellite map
- Monitor crop health using NDVI vegetation analysis
- Automatically detect fields from satellite imagery
- View real-time weather data for each field
- Receive AI-powered agronomy recommendations
- Track vegetation health and field analytics over time
The goal is to help identify crop stress early and support better irrigation and yield decisions.
- Satellite basemap powered by Mapbox
- Polygon drawing for custom field boundaries
- Field editing and deletion
- Map fly-to animations and field highlighting
- Layer visibility toggles
Sentinel-2 imagery is processed through Google Earth Engine to calculate NDVI. [NDVI = (NIR - Red) / (NIR + Red)]
| NDVI Value | Vegetation Health |
|---|---|
| Red | Stressed vegetation |
| Yellow | Moderate vegetation |
| Green | Healthy vegetation |
NDVI data is displayed as a semi-transparent raster layer above satellite imagery.
Users can detect crop fields by clicking on the map.
Process:
- User selects a location
- Sentinel-2 imagery is queried
- NDVI is calculated
- Region-growing segmentation detects vegetation boundaries
- Field polygon and statistics are returned
Returned data includes field area, vegetation health score, and NDVI statistics.
AI analyzes vegetation metrics and field data to generate:
- Crop health assessments
- Irrigation recommendations
- Pest and disease risk indicators
- Field scouting suggestions
AI results are cached to reduce API usage.
Per-field weather data including:
- Temperature
- Rainfall
- Humidity
- Wind speed
Weather data is powered by Open-Meteo.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 + TypeScript | UI framework |
| Build Tool | Vite | Development and bundling |
| Styling | Tailwind CSS + shadcn/ui | Interface design |
| Mapping | Mapbox GL JS | Satellite map rendering |
| Charts | Recharts | Data visualization |
| Routing | React Router | SPA navigation |
| State | TanStack React Query | Server state management |
| Backend | Supabase Edge Functions | APIs and backend logic |
| Database | Supabase PostgreSQL | Data storage |
| Satellite Data | Google Earth Engine | Sentinel-2 NDVI processing |
| AI | Gemini 2.5 Flash | Agronomic analysis |
| Weather | Open-Meteo API | Weather data |
User / Browser
│
▼
Frontend
React + Mapbox GL JS + Tailwind
│
▼
Edge Functions (Supabase)
│
┌────────────────────┼───────────────┬───────────────┐
▼ ▼ ▼ ▼
NDVI Tiles Field Detection AI Analysis Mapbox Token
(GEE) (GEE) (Gemini) (Mapbox API)
│
▼
Google Earth Engine
Sentinel-2 Satellite Data
git clone https://github.com/your-org/virdis
cd virdis
npm install
npm run devMAPBOX_TOKEN=
GEE_SERVICE_ACCOUNT_KEY=
OPEN_METEO_API_URL=
SUPABASE_URL=
SUPABASE_ANON_KEY=MIT License