GeoPulse:從地理數據迷霧到精準感知的「空間大腦」設計實錄

在 AI 密集開發的時代,我們常說 AI 是大腦,但大腦若沒有「感官」來感知現實世界的空間脈絡,它的建議就容易流於空泛。這篇文章記錄了我與 AI 代理程式(Antigravity)共同打造 GeoPulse —— 一個空間感知與導航引擎的設計經驗。 這不僅是一個技術腳本的開發,更是一場關於「如何解決雜亂大數據」與「架構落地」的實踐。 1. 發想:在地理數據的迷霧中尋找座標 作為一個長期進行河流探勘與 GIS 研究的開發者,我面臨一個典型的數位資產困境: 資產巨大且分散:幾十 GB 的政府 SHP 圖資散落在外接硬碟中(縣市界、流域圖、配水管線)。 環境斷裂:這些資料並非隨時掛載在系統內,AI 無法直接存取。 格式混亂:編碼有 CP950 與 UTF-8 的混雜,座標系則有 TWD97 與 WGS84 的轉換問題。 當我想問 AI:「我現在這個座標在哪个流域?附近有沒有我標記過的私房點?」時,AI 是盲目的。我們需要一個「空間導航核心」,讓 AI 具備地理感知的能力。 2. 架構:虛擬化優先 (Virtual-First) 的戰略選擇 在設計 GeoPulse 時,我們面臨一個關鍵選擇:要把所有資料匯入資料庫(Solidification),還是保持資料的原始性? 為了保持靈活性與減少磁碟開銷,我們選擇了 「虛擬化優先」 架構。這套架構由三個核心組件構成: A. 資源索引員 (GIS Cataloger) 我們不強迫資料進場,而是讓腳本主動去「掃描」。它會掃描硬碟,識別所有的 .shp, .kml, .geojson 等檔案,產出一份 GIS_CATALOG.md。這讓 AI 知道我們「擁有什麼」。 B. 語義地圖 (GIS Knowledge Hub) 光有路徑是不夠的。我們透過一個 GIS_KNOWLEDGE.yaml,告訴系統每一張表的「意義」。 這張表叫 river_basin,它的座標系統是 EPSG:3826,名稱欄位在 basin_name。 這種「定義大於匯入」的做法,讓工具與圖資之間產生了透明的語義連結。 C. 空間引擎 (GeoPulse Engine) 這是最精彩的部分。我們利用 SpatiaLite 的 VirtualShape 技術,在查詢發送的瞬間,才將外部的 SHP 虛擬掛載進「具備空間處理能力」的 SQLite 內存中。 ...

2026-02-20 · 1 min · 132 words · Wuulong

實驗紀錄:使用 GDAL 進行大甲溪流域 1km 緩衝區萃取與合併

本實驗使用 GDAL/ogr2ogr 工具,從中央管河川區域 Shapefile 中萃取大甲溪河流範圍,解決 Big5 編碼篩選問題,進行 1 公里緩衝分析 (Buffer),並透過 SQL ST_Union 合併多個圖層特徵,最終產出 KML 檔案。

2025-12-13 · 1 min · 201 words · Wuulong

實驗紀錄:取得河川流域 Shapefile 圖資並轉換為 KML 匯入 Google My Maps

本實驗記錄了從政府開放資料平台取得水利署河川流域 Shapefile 資料,並將其中「大甲溪」流域資料篩選後,使用 GDAL/ogr2ogr 工具轉換為 Google My Maps 支援的 KML 格式的完整過程。

2025-12-13 · 1 min · 184 words · Wuulong