How shubhagarwal-03/geo-reconciliation works
LandLens is a geospatial building-footprint reconciliation product: an offline batch workflow ingests independent sources, normalizes and matches footprints, reconciles conflicts, scores confidence, and stores canonical entities; the live application displays those results and lets operators review or resolve uncertain entities. The frontend also documents upload, map, dashboard, and reporting capabilities. The README and sampled files establish the main batch and query paths; some unsampled router and view wiring is represented only where the documented API or product capability supports it.
Main entry points: run_offline_batch.py Offline batch · geoReconciliationClient.ts API client · App.tsx Frontend application · connection.py PostGIS data store
Components 25
Ingestion and pipeline
- Offline batch
pipeline/run_offline_batch.py - OSM ingestion
ingestion/fetch_osm_buildings.py - Google Buildings ingestion
ingestion/fetch_google_open_buildings.py - Uploaded-file ingestion
ingestion/fetch_uploaded_file.py
Matching and reconciliation
- Normalize features
matching/normalize.py - Spatial matching
matching/match_entities.py - Similarity scoring
matching/similarity.py - Conflict resolution
reconciliation/resolve_conflicts.py - Confidence and review routing
reconciliation/confidence_score.py
API and spatial data
- PostGIS data store
db/connection.py - FastAPI application
backend/main.py - Entity queries
backend/routers/entities.py - Review queue
backend/routers/review_queue.py - Upload endpoint
backend/routers/upload.py - Reconcile endpoint
backend/routers/reconcile.py
LandLens interface
- Frontend application
frontend/src/App.tsx - Live data loader
frontend/src/hooks/useLiveBuildings.ts - API client
frontend/src/api/geoReconciliationClient.ts - Dashboard and map
frontend/src/components/DashboardView.tsx - Data upload view
frontend/src/components/DataUploadView.tsx - Review queue view
frontend/src/components/ReviewQueueView.tsx - Reports view
frontend/src/components/ReportsView.tsx
Other components
- LandLens operator
- OpenStreetMap
- Google Earth Engine
Connections 35
- OSM ingestion → OpenStreetMap: fetches footprints
- Google Buildings ingestion → Google Earth Engine: fetches footprints
- Offline batch → OSM ingestion: fetches
- Offline batch → Google Buildings ingestion: fetches
- Offline batch → Uploaded-file ingestion: optionally fetches
- Offline batch → Normalize features: normalizes and inserts
- Normalize features → PostGIS data store: writes raw features
- Offline batch → Spatial matching: runs matching
- Spatial matching → Similarity scoring: scores candidates
- Spatial matching → PostGIS data store: reads features, writes edges
- Offline batch → Conflict resolution: reconciles clusters
- Offline batch → Confidence and review routing: scores entities
- Confidence and review routing → PostGIS data store: writes canonical entities
- FastAPI application → Entity queries: registers routes
- FastAPI application → Review queue: registers routes
- FastAPI application → Upload endpoint: registers routes
- FastAPI application → Reconcile endpoint: registers routes
- Entity queries → PostGIS data store: queries entities
- Review queue → PostGIS data store: queries flagged entities
- Upload endpoint → PostGIS data store: records upload
- Reconcile endpoint → Offline batch: triggers batch run
- Frontend application → Live data loader: loads buildings
- Frontend application → Dashboard and map: renders dashboard
- Frontend application → Data upload view: renders upload
- Frontend application → Review queue view: renders review
- Frontend application → Reports view: renders reports
- Live data loader → API client: requests entities
- API client → Entity queries: calls entity API
- API client → Review queue: calls review API
- Data upload view → API client: uploads file
- API client → Upload endpoint: calls upload API
- API client → Reconcile endpoint: triggers reconciliation
- Review queue view → API client: submits resolution
- API client → Entity queries: resolves entity
- LandLens operator → Frontend application: uses