factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
칠레 중남부 농지 매매 현황을 지도와 공개 데이터로 제공, 지역·연도·금액·면적·ROL 조회 및 CSV 다운로드
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
데이터TypeScript · JavaScriptGitHub @gabrielpantoja-cl온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Interactive map of rural land transactions in south-central Chile, designed as a tool for eco-informatics research and real estate appraisals.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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.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) |