[GIS筆記] 運用 AI 助理 Antigravity 整理「流域情報開放地圖」:以濁水溪為例
最近在研究 LASS 社群維護的 「流域情報開放地圖」 QGIS 專案,這是一個集結了政府開放資料與民間調適計畫成果的龐大資料庫。 資料雖豐富,但若只想專注於特定流域(例如:濁水溪),要從全台的圖資中「萃取」並「整理」出有結構的資料,手動操作相當繁瑣。這次我嘗試透過 AI 助理 Antigravity 來協助處理,發現這是一個非常高效的工作流,特別是針對舊式 Shapefile 資料結構的梳理。 以下分享這次的實作筆記,以及一個關鍵的發現:河川代碼 CSV 的重要性。 1. 任務目標 從全台的 GIS 圖資中,提取出 濁水溪流域 的完整資料,並轉換成 Google Earth 可用的 KMZ 格式。需求包含: 流域範圍:濁水溪集水區的面資料 (Polygon)。 河道水系:包含主流與所有支流的線資料 (Line)。 層級結構:需區分主流、一級支流(如陳有蘭溪)、二級支流(如和社溪),並以不同顏色與資料夾呈現。 2. 關鍵資料解析 在專案目錄中,主要的幾何資料位於 1-流域水文地理環境 下的 RIVERL.shp(全台中央管河川)。原本以為只要用 SQL 篩選 BASIN_NAME = '濁水溪' 即可,但 AI 分析後發現了一個隱藏的寶藏檔案: 📂 檔案位置: 河川整理資料 - 河川代碼主從 這份 CSV 檔案是解析河川「拓撲關係(Topology)」的關鍵,沒有它,GIS 圖資就只是一堆沒有從屬關係的線條。所以也很容易做出下圖 為什麼這份 CSV 很重要? Shapefile 本身雖然有 RV_NO (河川代碼),但要從代碼反推「誰是誰的上游」需要複雜的解碼邏輯。而這份 CSV 直接建立了樹狀結構: 欄位 說明 範例 (陳有蘭溪) river_id 河川唯一碼 151010 river_name 中文名稱 陳有蘭溪 in_id 注入的河川 ID (Parent) 151000 (注入濁水溪) river_link 全路徑字串 0@151000@151010 AI 應用的邏輯技巧 透過 Antigravity,我們利用 river_link 欄位快速算出了河川的「層級 (Stream Order)」,邏輯出奇簡單: ...