Satellite explorers of river basins in Argentina: rivers, streams and sub-basins on satellite imagery.
Translation pending
DataTypeScript · PythonGitHub @maggioniduffyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Satellite explorers of Argentine river basins: Río Negro (8,016 river reaches, 25 sub-basins) and Córdoba. Next.js, MapLibre GL, PMTiles, DuckDB.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Live: https://basinexplorer.vercel.app/ (hub with two explorers: /rionegro and /cordoba)
An interactive satellite explorer of the Río Negro basin in northern Patagonia (Limay, Neuquén and Río Negro). The map shows only the river system and a strip of land around it. Click a river, a reach or a sub-basin to open a panel with its metrics. The UI is in English and Spanish. Inspired by Amazon Basin Explorer.
The same app serves more regions, one per path, sharing every component. The Río Negro basin
(nqn, at /rionegro) and Córdoba (cba, at /cordoba, covering the Primero to Quinto rivers
and Mar Chiquita) are both live (see regions/cba/README.md).
HYRIV_ID. Every
view can be shared by its URL.Modeled data. HydroATLAS values are modeled estimates, each for its own period. Discharge is a natural long-term average for 1971–2000 and does not reflect today's dam regulation. Population is a 2010 estimate (GPWv4). Flooded area comes from 1993–2004 satellite data (GIEMS-D15). Dam regulation is based on GRanD v1.1. The app states this wherever these values appear.
Sources (HydroSHEDS, HydroLAKES, GIRES, IGN, OSM)
│ pipeline/ — TS steps running DuckDB + tippecanoe, each writes a report.json
▼
public/tiles/<region>/*.pmtiles (geometry) data/out/<region>/*.ndjson → npm run seed → MongoDB Atlas (metadata)
│ HTTP Range │
▼ ▼
MapLibre GL in the browser ── click → feature id → /api/* route handlers (CDN-cached)
?r=<river>, ?reach=<HYRIV_ID>, ?s=<subbasin>).Next.js 16 (App Router) · React 19 · TypeScript (strict) · Tailwind CSS 4 · MapLibre GL + PMTiles · Zustand · next-intl · MongoDB Atlas · zod · DuckDB · tippecanoe · Vitest · Playwright · Vercel
Requires Node 24.
npm ci
cp .env.example .env.local # fill in MONGODB_URI, MONGODB_DB and the imagery variables
npm run seed -- --region nqn # loads data/out/<region>/*.ndjson into MongoDB (idempotent)
npm run dev
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run check | Typecheck, lint, format check and unit tests |
npm run test:e2e | Playwright screenshot tests |
npm run pipeline:<step> -- --region <id> | One data pipeline step for one region (see pipeline/README.md) |
npm run seed -- --region <id> | Upserts a region's NDJSON outputs into MongoDB |
npm run atlas:check -- --region <id> | Verifies that the app's Mongo user can only read |
Rebuilding the data needs tippecanoe on your PATH. DuckDB is installed by npm ci. The full
pipeline order and its prerequisites are in pipeline/README.md.
app/[region]/ pages, /attributions, /api/{rivers,reaches,subbasins,search,health,ask} (one region per host, proxy.ts)
components/ map, panels, controls, search, mobile sheet
lib/ mongo.ts, data/ (schemas, queries), map/ (style, mask, minimap), store.ts, url-state.ts
messages/ shared en.json, es.json
regions/ region registry (index.ts, hosts.ts) and one folder per region: configs, messages/, content.ts
pipeline/ data pipeline steps, SOURCES.md
scripts/ seed, Atlas check, OG shapes
public/tiles/<region>/ PMTiles archives (committed)
Project docs: PLAN.md (phases and status) and DECISSIONS.md (dated decisions).
Data comes from HydroSHEDS (HydroRIVERS, RiverATLAS, HydroBASINS), HydroLAKES, GIRES, IGN
(Argentina) and OpenStreetMap. Satellite imagery is EOxCloudless 2024 (CC BY-NC-SA 4.0), so the
site is non-commercial. Full licenses and citations are in
pipeline/SOURCES.md and on the app's /attributions page.
The ask box uses Groq (openai/gpt-oss-20b) when LLM_PROVIDER is set, with Upstash Redis for the
rate limit and cache. Free-tier prompts may be logged or used by the provider; Gemini's free tier
uses prompts to improve Google's products and may not serve EEA/UK/CH users. Details in
pipeline/SOURCES.md.
Un explorador satelital interactivo de la cuenca del Río Negro, en el norte de la Patagonia (Limay, Neuquén y Río Negro). El mapa muestra solo la red de ríos y una franja de tierra a su alrededor. Al hacer clic en un río, un tramo o una subcuenca se abre un panel con sus métricas. La interfaz está en español e inglés. Inspirado en Amazon Basin Explorer.
La misma app sirve más regiones, una por ruta, compartiendo todos los componentes. La cuenca del
Río Negro (nqn, en /rionegro) y Córdoba (cba, en /cordoba, que abarca los ríos Primero a
Quinto y Mar Chiquita) están publicadas (ver regions/cba/README.md).
HYRIV_ID de
HydroRIVERS. Cada vista se puede compartir con su URL.Datos modelados. Los valores de HydroATLAS son estimaciones modeladas, cada una de su propio período. El caudal es un promedio natural de largo plazo de 1971–2000 y no refleja la regulación actual de las represas. La población es una estimación de 2010 (GPWv4). El área inundable viene de datos satelitales de 1993–2004 (GIEMS-D15). La regulación por represas se basa en GRanD v1.1. La app lo indica en cada lugar donde aparecen estos valores.
Fuentes (HydroSHEDS, HydroLAKES, GIRES, IGN, OSM)
│ pipeline/ — pasos en TS con DuckDB + tippecanoe; cada uno escribe un report.json
▼
public/tiles/<region>/*.pmtiles (geometría) data/out/<region>/*.ndjson → npm run seed → MongoDB Atlas (metadatos)
│ HTTP Range │
▼ ▼
MapLibre GL en el navegador ── clic → id del feature → route handlers /api/* (con caché de CDN)
?r=<río>, ?reach=<HYRIV_ID>, ?s=<subcuenca>).Next.js 16 (App Router) · React 19 · TypeScript (strict) · Tailwind CSS 4 · MapLibre GL + PMTiles · Zustand · next-intl · MongoDB Atlas · zod · DuckDB · tippecanoe · Vitest · Playwright · Vercel
Requiere Node 24.
npm ci
cp .env.example .env.local # completar MONGODB_URI, MONGODB_DB y las variables de imágenes
npm run seed -- --region nqn # carga data/out/<region>/*.ndjson en MongoDB (idempotente)
npm run dev
| Comando | Qué hace |
|---|---|
npm run dev | Servidor de desarrollo |
npm run check | Typecheck, lint, chequeo de formato y tests unitarios |
npm run test:e2e | Tests de capturas con Playwright |
npm run pipeline:<step> -- --region <id> | Un paso del pipeline de datos para una región (ver pipeline/README.md) |
npm run seed -- --region <id> | Hace upsert de los NDJSON de una región en MongoDB |
npm run atlas:check -- --region <id> | Verifica que el usuario de Mongo de la app solo lea |
Para regenerar los datos hace falta tener tippecanoe en el PATH. DuckDB se instala con npm ci.
El orden completo del pipeline y sus requisitos están en pipeline/README.md.
app/[region]/ páginas, /attributions, /api/{rivers,reaches,subbasins,search,health,ask} (una región por host, proxy.ts)
components/ mapa, paneles, controles, búsqueda, panel móvil
lib/ mongo.ts, data/ (esquemas, consultas), map/ (estilo, máscara, minimapa), store.ts, url-state.ts
messages/ en.json, es.json compartidos
regions/ registro de regiones (index.ts, hosts.ts) y una carpeta por región: configuración, messages/, content.ts
pipeline/ pasos del pipeline de datos, SOURCES.md
scripts/ seed, chequeo de Atlas, formas para la imagen OG
public/tiles/<region>/ archivos PMTiles (commiteados)
Documentación del proyecto: PLAN.md (fases y estado) y DECISSIONS.md (decisiones fechadas).
Los datos vienen de HydroSHEDS (HydroRIVERS, RiverATLAS, HydroBASINS), HydroLAKES, GIRES, IGN
(Argentina) y OpenStreetMap. Las imágenes satelitales son EOxCloudless 2024 (CC BY-NC-SA 4.0), por
lo que el sitio es no comercial. Las licencias y citas completas están en
pipeline/SOURCES.md y en la página /attributions de la app.
La caja de preguntas usa Groq (openai/gpt-oss-20b) cuando LLM_PROVIDER está definido, y Upstash
Redis para el límite de pedidos y la caché. En los planes gratuitos, el proveedor puede registrar o
usar las preguntas; el plan gratuito de Gemini las usa para mejorar los productos de Google y no
puede atender a usuarios del EEE, Reino Unido o Suiza. Detalles en
pipeline/SOURCES.md.