factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Mapa interactivo y datos abiertos de compraventas de suelo rural inscritas en el Conservador de Bienes Raíces del centro-sur de Chile. Consulta por comuna, año, monto, superficie y ROL; descarga CSV/G
Translation pending
DataTypeScript · JavaScriptGitHub @gabrielpantoja-clOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
Interactive map of rural land transactions in south-central Chile, designed as a tool for eco-informatics research and real estate appraisals.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An interactive open-data map of rural land transactions recorded by Chilean Real Estate Registries (Conservadores de Bienes Raíces, CBR) across south-central Chile. It combines transaction records with official thematic layers such as protected areas, urban boundaries, administrative boundaries, the national road network, fruit-growing cadastres, and agricultural soils. The project is designed as an ecoinformatics research tool and as a practical reference for professionals working on court-ordered appraisals and expropriations.Read the full README ↗
An interactive open-data map of rural land transactions recorded by Chilean Real Estate Registries (Conservadores de Bienes Raíces, CBR) across most of Chile. It combines transaction records with official thematic layers such as protected areas, urban boundaries, administrative boundaries, the national road network, fruit-growing cadastres, and agricultural soils.
The project is designed as an ecoinformatics research tool and as a practical reference for professionals working on court-ordered appraisals and expropriations.
@neondatabase/serverless) as the source of truth for CBR
transactions, accessed through a SELECT-only web_readonly rolesig.gabrielpantoja.clThe browser never connects directly to PostgreSQL. All database access goes through server-side route handlers that query an explicit allowlist of privacy-safe columns:
Browser → /api/{points,stats,export,facets,hexbins} → Neon (web_readonly, SELECT)
Browser → /api/geocode → Nominatim/OSM (Chile-only address search, cached proxy)
Browser → /api/suelos/{export,identify} → CIREN (fixed, validated proxy)
Browser → /api/vegetacional/{export,identify} → CONAF (fixed, validated proxy)
Browser → /api/propiedades-rurales/{export,identify,feature,search} → SII/CIREN (fixed, validated proxy)
Browser → POST /api/analisis/predio → Neon PostGIS (capas.* + CBR points) + Copernicus DEM (parcel report)
The parcel report («Ficha del predio») takes a polygon drawn on the map,
pasted as UTM vertices, loaded from a KML or found by CIREN ROL, and returns
its comuna, urban limit and protected areas (official geometry loaded
unsimplified into the capas schema by npm run data:load:postgis), slope
by SAG class from Copernicus GLO-30 and nearby CBR comparables per land use.
The polygon is not stored.
Exports (/api/export?format=csv|geojson) are Excel-friendly CSV or GeoJSON
for QGIS. Filters are parameterised SQL (src/lib/filters.ts); full design
notes live in docs/.
Each point exposes lat, lng, monto, anio, comuna, predio,
superficie, rol, destino, fechaEscritura, fechaInscripcion, fojas,
numero and conservador.
rol is intentionally public: it is the SII property identifier, not
personal data under Chilean Law No. 19,628.comprador, vendedor, rut, user_id,
observaciones — excluded at the query/handler level.NEON_DATABASE_URL); the client never
connects to Neon.| Layer | Source | Licence / terms | Build or runtime path |
|---|---|---|---|
| CBR transactions | Project-maintained compilation of CBR registrations | Open data, anonymised in accordance with Chilean Law No. 19,628 | Neon Postgres through a read-only role |
| Value heat map ($/m²) | Derived from the CBR transactions: PostGIS hexagonal medians, interpolated client-side | Same as CBR transactions; market signal, not an appraisal | Derived layer, no ETL: /api/hexbins + src/lib/heat-surface.ts |
| Protected areas (RNAP) | Ministry of the Environment — National Registry of Protected Areas, Public Baselines portal | CC0 1.0 (public domain) | npm run data:build:protected (mapshaper ETL) |
| Urban boundaries (PRC) | MINVU — municipal regulatory plans | Confirm terms with MINVU; referential use | npm run data:build:urban |
| Municipal boundaries (DPA) | SUBDERE — 2023 Political-Administrative Division (geoportal.cl) | Chilean government open data | npm run data:build:comunas |
| National road network | MOP — Directorate of Roads (mapasvialidad.mop.gob.cl) | Confirm terms with MOP; referential use | npm run data:build:red-vial |
| Electrical transmission lines | Ministry of Energy — IDE Energía; CEN geometry | Institutional public coverage; no standard licence declared; attribution required | npm run data:build:lineas-transmision |
| Drainage network (rivers and streams) | DGA — Banco Nacional de Aguas (ArcGIS FeatureServer) | Chilean government open data; DGA attribution, see src/lib/red-drenaje.ts | npm run data:build:red-drenaje |
| Fruit-growing cadastre | CIREN-ODEPA through IDE Minagri | CIREN-ODEPA attribution; see src/lib/catastro-fruticola.ts | npm run data:build:catastro-fruticola |
| Vegetation resources | CONAF through SIT CONAF and IDE Minagri |
Static layers ship under public/data/ (~45 MB) with a *.meta.json
provenance file and are rebuilt with npm run data:build:<layer>. Exact
attribution strings live in src/lib/*.ts.
Reading the layers correctly
- RNAP has 12 legal designations, each with its own legal framework — never a single category.
- Bioclimate is a 1970–2000 climatology interpolated from weather stations, not a site measurement.
- Transmission lines are referential centre-lines, not safety corridors, easements or property encumbrances.
cp .env.example .env.local # set NEON_DATABASE_URL (web_readonly role)
npm install
npm run dev # http://localhost:3000
npm run lint && npm run typecheck # before submitting a change
NEON_DATABASE_URL is server-side only: never prefix it with NEXT_PUBLIC_
and never commit .env.local.
Planned layers and UX work are prioritised in
docs/roadmap.md. Contributions are welcome — read
CONTRIBUTING.md and
CODE_OF_CONDUCT.md first. Report security issues via
SECURITY.md, not a public issue.
src/lib/basemap.ts.CONAF attribution; review the official source terms in src/lib/vegetacional.ts |
Remote dynamic layer: viewport PNG plus point identify requests |
| Agricultural soils | CIREN public ArcGIS service (esri.ciren.cl) | CIREN attribution; see src/lib/suelos.ts | Remote dynamic layer through a validated proxy (one PNG per viewport) |
| Rural properties (ROL) | CIREN PROPIEDADES_RURALES through IDE Minagri | CIREN attribution; referential parcels, they do not prove ownership or legal boundaries — see src/lib/propiedades-rurales.ts | Remote dynamic layer through a validated proxy (export, identify, search) |
| Bioclimate (mean temperature, annual precipitation) | WorldClim 2.1, 1970–2000 climatology at 2.5 arc-minutes | CC BY 4.0; the Fick & Hijmans (2017) citation is part of the attribution, see src/lib/bioclima.ts | npm run data:build:bioclima (static PNG overlay) |
| NDVI (Sentinel-2) | Sentinel-2 L2A COGs via Element 84 Earth Search / AWS Open Data | Copernicus open licence; "Contains modified Copernicus Sentinel data" attribution, see src/lib/ndvi-visual.ts | Remote dynamic layer: one PNG composed server-side per viewport (/api/ndvi/export, zoom ≥ 10) |