developmentseed / developmentseed/eo-predictor

Explore Gazet-powered natural-language AOI search

Open
#133 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
22
Forks
2
Avg merge
1d 2h
Merged PRs (30d)
2

Description

## Summary

Explore using [Gazet](https://github.com/developmentseed/gazet) — Development Seed's natural-language geocoding tool with GIS operations over Overture/Natural Earth data — to let users type a query like "50km buffer around Paris" and get back a GeoJSON AOI polygon, feeding directly into the AOI pipeline shipped in #90.

## Why

#90 added AOI loading via GeoJSON file upload. Gazet could offer a second, more casual way to define an AOI — typed natural language instead of a prepared file — for cases where the user doesn't already have a GeoJSON (e.g. "I just want a buffer around a city," not a precise rapid-mapping polygon).

## Proposed approach

- Gazet exposes a FastAPI `/search` endpoint that returns GeoJSON (`FeatureCollection`/`Feature`) for a natural-language query.
- Feed the returned GeoJSON through the existing AOI pipeline rather than building a parallel code path: `loadAoiFromFile`-style normalization → `filterStore.setAoi()` → `map.fitBounds()` (same as `AoiUpload.tsx` / `aoiUtils.ts`).
- Positioned as complementary to file upload, not a replacement — a second entry point into the same AOI state.

## Dependency risk (needs resolving before scoping further)

- Development Seed has a hosted Gazet instance, but it currently appears to be down/unreliable. Need to confirm status, ownership, and uptime expectations before committing to a UI build — no point building a search box against a service that isn't reliably available.
- If the hosted instance isn't viable, this may require deploying/maintaining our own instance (Gazet ships a Dockerfile/docker-compose), which is a bigger lift than the search UI itself.

## Open questions

- Does Gazet support buffer distances natively in the query (e.g. "50km buffer around Paris"), or would we need to parse a distance + place and construct the buffer ourselves (e.g. with Turf, matching the geometry libraries already used in `aoiUtils.ts`)?
- What's the reliability/ownership story for the hosted instance?
- Should this be gated behind a feature flag until Gazet's hosting story is settled?

Contributor guide

No contributing guide indexed for this repository

Research direction

First verify the hosted Gazet /search service's status, ownership, and uptime expectations before scoping implementation. Then read AoiUpload.tsx, aoiUtils.ts, and the AOI pipeline from #90 to understand the existing normalization, filterStore.setAoi(), and map.fitBounds() flow. Done means choosing a viable hosting or feature-flag approach and defining whether Gazet or local geometry handling supports the proposed queries.

Written by the indexing model from the issue text.

Assessment

Tech stack
fastapi, typescript
Domain
api, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.