Skip to content

daudee215/geobrief

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoBrief

GeoBrief is a semantic metadata and question-discovery engine for GIS datasets.

It reads a dataset, infers what the data is probably about, identifies quality and analysis constraints, proposes meaningful GIS questions, and explains which questions are answerable from the available fields.

The goal is not to be another GIS converter. GeoBrief answers a more useful first question:

What can this dataset actually help me understand?

What It Does

  • Reads CSV files with latitude/longitude columns.
  • Reads GeoJSON feature collections.
  • Infers geometry type, spatial extent, coordinate fields, temporal fields, category fields, count fields, population fields, and risk indicators.
  • Produces a semantic profile: likely dataset theme, entity type, strengths, warnings, and limitations.
  • Generates GIS question ideas across descriptive, comparative, proximity, equity, temporal, and quality-analysis categories.
  • Classifies each question as answerable, partially_answerable, or not_answerable.
  • Exports either Markdown or JSON.

Quick Start

python -m geobrief inspect sample_data/public_facilities.csv
python -m geobrief inspect sample_data/parks.geojson --format json
python -m geobrief inspect sample_data/transit_stops.csv
python -m geobrief inspect sample_data/flood_zones.geojson
python -m geobrief inspect sample_data/public_facilities.csv --output reports/public_facilities.md
python -m geobrief ask sample_data/public_facilities.csv "Which districts are underserved relative to population?"
python -m geobrief serve

Then open:

http://127.0.0.1:8765/geobrief

Website

The repo also includes a small tools website. Locally:

python -m geobrief serve

Open:

http://127.0.0.1:8765/

The public GitHub Pages site is designed to run as a static demo:

https://daudee215.github.io/geobrief/

GeoBrief will use the Python API when running locally and fall back to browser-only analysis when opened from GitHub Pages.

Example Output

Likely theme: public services / facilities
Likely entity: point locations

This dataset can support:
- Mapping individual facility locations
- Counting facilities by category or administrative area
- Identifying basic service distribution patterns

Question:
Which districts have the highest number of facilities?

Status:
answerable

Reason:
The dataset includes point geometry and administrative/category fields.

Project Structure

geobrief/
  cli.py              Command-line interface
  readers.py          CSV and GeoJSON readers
  semantic.py         Field, theme, and dataset inference
  questions.py        Question generation and answerability checks
  report.py           Markdown/JSON report output
  models.py           Core dataclasses
sample_data/          Small datasets for demos and tests
tests/                Unit tests

Why This Is Portfolio-Worthy

Most GIS tools help after you already know what you want to do. GeoBrief helps at the uncertain beginning: when someone sends a shapeless CSV, GeoJSON, or project folder and asks, "What is this, and what can we do with it?"

That makes it useful for:

  • GIS portfolio project discovery
  • Data catalog enrichment
  • Open-data onboarding
  • Early-stage spatial analysis planning
  • QA before sharing or publishing data

Current Scope

Version 0.1.0 supports CSV and GeoJSON through the Python standard library. The next natural additions are Shapefile/GeoPackage readers via GDAL or GeoPandas, spatial joins for multi-layer projects, and optional LLM-assisted natural-language summaries.

About

Semantic metadata and question-discovery engine for GIS datasets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors