Geospatial Data Copilot
A natural-language interface over spatial/infrastructure data — ask a question in plain English about San Francisco's utility infrastructure and get back a SQL-grounded answer, an interactive map, or a semantic search result.
View the code on GitHubLive demo map
This is a real render of the seeded dataset (~1,500 power assets — poles, transmission towers, transformers — fetched live from OpenStreetMap for downtown/Mission/SoMa San Francisco). This overview loads instantly with no LLM call involved; the full app renders maps like this on demand in response to a chat question.
What you can ask it
The full chat agent runs locally against Ollama and isn't hosted here (GitHub Pages only serves static files — see "Run it yourself" below). These are real, verified queries from development against the seeded dataset:
ST_Distance_Sphere), answering with the true total count even when the row
preview is capped for context-window safety.condition_score - condition_score_last_year grouped
by asset type.nomic-embed-text,
via Chroma's vector index — catches paraphrases like "heavy rust and metal thinning" that a
keyword filter would miss.Run it yourself
The interactive chat + map UI runs entirely locally (no API keys, no usage cost) via Ollama. To try it:
git clone https://github.com/DBishal13/geospatial-data-copilot cd geospatial-data-copilot pip install -r requirements.txt ollama pull llama3.1:8b ollama pull nomic-embed-text python db/build_dataset.py python db/build_notes_index.py uvicorn api.main:app --port 8000 streamlit run frontend/app.py
Full setup details, architecture notes, and known-bugs-fixed writeup are in the README.