從地名到建構 HGIS 的數位鏈金術 (4):【交織】時空縫合術——讓古地名跨越百年,精準降落在 WGS84 座標上

經過前三篇的努力,我們左手握有中研院的「1920年代空間圖資」,右手拿著從《臺灣通史》榨取出來的「600+ 個古地名與基建列表」。 這就像是一場歷史級別的相親大會——我們要讓書本裡的名字,在歷史地圖上找到歸宿,並將它們賦予現代的 WGS84 GPS 經緯度座標。這個過程,技術上叫做 Geo-Coding (地理編碼)。 同名異地的災難 原以為只要用程式名稱對齊 (Fuzzy Label Matching) 就好,但代誌不是憨人想的那麼簡單! 台灣地名有驚人的重複率。古書裡寫了個「新莊」或「福興」,如果你不用大腦,程式很容易把北部的事蹟,釘到南部的地圖上,導致座標嚴重飄移。 第一波升級:內政部兵器庫支援 首先,1920 年代的「街庄/大字」顆粒度有時仍不夠細緻,很多《臺灣通史》提到的小聚落找不到。 我決定導入國家級的兵器庫支援:內政部 3 萬筆古地名資料庫 (moi_settlements)。我把這 37,758 筆資料匯入我的資料庫,形成了一個包含了「1920 歷史界線 + 現代文史調查點位」的「三層立體查詢網」。 第二波突破:上下文錨定法 (Hierarchical Anchor) 為了解決同名造成的標記錯誤,我幫自動配對腳本裝上了**「閱讀理解能力」**。 我實作了 guess_anchor 演算法。配對前,程式會先反查《臺灣通史》原文,看看這個地名的上下文寫了什麼。 如果上下文提到了「淡水 / 艋舺」,程式會自動將這個地名的搜尋範圍 錨定 (Anchor) 在「臺北州」。 如果上下文提到「打狗 / 阿猴」,程式就只准在地圖的「高雄州」範圍內尋找這個聚落。 這招「因文定地」,徹底解決了同名異地的痛點! 史圖合一的瞬間 當我按下 geo_coding.py 的執行鍵,看著終端機不斷吐出 Log: ⚓ Anchored: 中港 -> 對應到苗栗竹南的中港 (24.6853, 120.8519) ⚓ Anchored: 六張犁 -> 成功定錨... ⚓ Anchored: 牛罵 -> 臺中市清水區牛罵頭... 憑藉著上下文疊圖與三層過濾網,我成功地讓近 200 個寫在文言文裡的歷史地名,從泛黃的紙張上躍起,精準降落在 Google My Maps 的紅色圖釘上。 ...

2026-02-22 · 1 min · 78 words · Wuulong

從地名到建構 HGIS 的數位鏈金術 (3):【文本】教 AI 讀古書——《臺灣通史》的百萬字結構化工程

上一篇我們用 Python 打造了能解讀歷史座標的「時光羅盤」。但羅盤只會告訴你地名,無法告訴你歷史。真正的歷史,藏在文言文的汪洋大海中。 因為我本身對台灣史完全沒有概念,為了建立自己的知識體系,我首先向 AI 提問,得到了這份極具啟發性的「台灣方志演化樹」: 【根】 全域性/起源 (Early & Comprehensive) ║ ╚══ 1684《福建通志‧臺灣府》(清代最早的官方紀錄) ║ ╠══ 1694《臺灣府志》(確立台灣史志的基本架構) ║ ╠══ 1920《臺灣通史》(連橫著,民間史學集大成之作) ║ ╚══【幹】 區域行政中心 (以北台灣為例) ║ ╚══ 1871《淡水廳志》(新竹史料之源,具行政與大租分配紀載) ║ ╠══【枝】 縣級史志 (新竹設縣後) ║ ║ ║ ╠══ 1892《新竹縣志初稿》(新竹正式設縣後的首部地方志) ║ ║ ║ ╠══ 1895《新竹縣制度考》(日治初期清理清代制度之專作) ║ ║ ║ ╚══ 1907《新竹廳志》(結合日治調查與清代舊志) ║ ╚══【葉】 地方/微觀採訪 (Local & Micro-geographic) ║ ╠══ 1894《新竹縣採訪冊》(最細微的點位紀錄,如黃金洞、御史崎) ║ ╠══ 1898《樹杞林志》(專注於新竹東部山區與竹東拓墾) ║ ╚══ 1980+《新竹縣/市志》(現代修訂版本) 有了這張圖,我就知道該去哪裡尋寶了。於是,我花了一點時間想辦法把這些史書從網路上抓了下來(大部分都順利搞定了)。 ...

2026-02-22 · 1 min · 116 words · Wuulong

從地名到建構 HGIS 的數位鏈金術 (2):【開箱】時光羅盤:解析中研院古圖資與「GPS 反查百年地名」的魔法

上一篇提到,為了驗證地形圖上的「黃金洞」與歷史水利的關聯,我決定打造一個「歷史空間感知引擎」。要建構這套系統,第一步就是要獲得一把能夠解開空間座標的鑰匙。 我將目光轉向了中央研究院的 GIS 寶庫。 寶藏開箱:1920 年代的台灣地理切片 幸運的是,台灣學界已經將日治時期(1920 年代)的行政區劃轉換為數值圖資。我順利取得了當時的「街庄(1920b_1.shp)」與更細緻的村落級別「大字(1920a_1.shp)」Shapefile 檔案。 這兩份檔案就像是兩張巨大的網子,完整罩住了百年前的台灣島。 不過,要將百年前的網子跟現代的手機 GPS 疊合,遭遇了第一個技術難關:座標系的跨時空翻譯。歷史圖資通常使用 TWD67(台灣二度分帶),而我們現在的手機或 Google Maps 則是使用 WGS84 經緯度系統。利用 Python 的 Geopandas 套件,我寫了一段優美的投影轉換代碼,成功讓百年前的地圖「滑」進了現代的經緯網格中。 魔法實做 1:GPS 腳下檢索 (Point in Polygon) 有了吻合的圖資後,我開發了第一個功能。這是一個純粹的數學運算,俗稱 Point in Polygon (點在多邊形內)。 現在,只要我輸入一組現代的 GPS 座標(或許是我走在竹北街頭,或是站在台南的田野),程式就會瞬間吃進這組座標,穿越時空,告訴我:「你腳下站的地方,在 1920 年屬於新竹州新竹郡新竹街!」 魔法實做 2:方圓百里的時光雷達 (Spatial Proximity) 光知道腳下叫什麼名字還不夠,我想要有「導遊」的感覺。 於是我加入了 Buffer(緩衝區)的概念,實作了「附近古地名查詢」功能。想像你站在定點,按下啟動鍵,程式會以你為中心,發射出半徑數公里的虛擬雷達波。雷達波不僅會掃過 1920 年代的各級行政區,更進一步結合了內政部釋出的 3 萬多筆「古地名/歷史聚落」空間圖資。這樣一疊加,所有被涵蓋在範圍內的聚落名稱(甚至是已經消失的微小地名)全部都會列印出來。 這套被我戲稱為「時光羅盤」的模組,讓我們具備了強大的 空間反查能力。 執行例子: python scripts/query_hgis_point.py 24.785150 120.967825 在 1920 年屬於: 🏛️ 州廳: 新竹州 🏰 郡市: 新竹郡 🏘️ 街庄: 香山庄 但問題是,地圖上的地名是冷的。這個古地名背後曾經發生過什麼驚心動魄的故事?有哪個先賢曾經在這裡開圳引水? ...

2026-02-22 · 1 min · 77 words · Wuulong

從地名到建構 HGIS 的數位鏈金術 (1):當 DTM 數值地形遇上在地 curiosity——解開「潭後」與「黃金洞」之謎

一切的起點,源自於對家鄉地名的好奇。 老爸出生在潭後,但我一直不知道為什麼是這個名字。這裡沒有水潭,何來「潭後」之名?如果只是在 Google Maps 上滑動縮放,這個問題可能永遠得不到解答,因為現代的衛星空照圖,早就被密集的建築與柏油路給覆蓋。 於是我開始在網路上搜尋,想知道名稱的可能由來。透過查閱資料,我找到了「北庄13」這條線索,並追溯到了開墾先賢王世傑的紀錄。這才發現,原來在古書中指出,以前頭前溪在此處曾經有一個深潭。 更引人入勝的是,古書原文中還記載著附近有「黃金洞」,但我身為在地人卻從來沒有聽過這個詞!於是,我開始在各種古書中搜尋「黃金洞」,這便是為什麼後來會需要下載並整理好幾本地方志與史書的原因。 例如在《新竹縣採訪冊》記載著水圳「西南行二里至黃金洞,又三里至潭後莊」,另有紀錄點出「西南行一里許至黃金洞,鑿山三十餘丈引水出…經潭後」。這些古籍清晰地描繪了水路行經的節點,但對「黃金洞」本身僅有文字描述,大意就是「在潭後到九甲埔中間有個高起的小山,所以需要挖隧道引水」。既然只有文字描述,於是我心想:那或許可以從 DTM 數值地形去分析它大概的位置? 我不甘於僅止於文字記載,決定戴上另一副眼鏡——打開具備高解析度的高程資料,俗稱 DTM (Digital Terrain Model) 數值地形圖,試圖在地表尋找先民的遺跡。 DTM 就像是將地表的樹木與建築物全部扒光,只留下最純粹的山地與溝壑起伏。當我將「潭後」附近的地形顯示在 QGIS 上,經由 GIS 處理與高程分析後,確實可以看到一條具備劇烈落差的線。 雖然看到這條線,但傳說中的「黃金洞」確切點位在哪,一開始還是不太知道。於是我將它與目前的現代地圖進行疊加,赫然發現那條異常落差的線上,剛好就有目前的「水源街取水口」! 直覺告訴我:就是這裡了。而再經過後續的文獻交叉比對,那裡證實就是傳說中「黃金洞」的所在。 這不是外星人的遺跡,而是兩百多年前,我們的先民在缺乏現代大型機具的情況下,為了將水資源從頭前溪引進竹塹平原,硬生生地以人力穿山鑿石,刻下的大型水利基建(引水穿山的隧道)。有了這條隧道,龐大的水流才得以穿過高起的小山,灌溉出兩千甲的良田。 這個 Aha Moment 深深震撼了我。 我體悟到一件事:「地理,其實就是凝固的歷史。」 現代地表上看起來微不足道的一個小土丘、一條乾涸的溝渠、甚至只是一個站牌的名稱「潭後」,在數百年前,可能都是決定整座城市生死存亡的戰略設施。 但下一個問題來了:這條水路是誰修的?什麼時候修的?除了「黃金洞」,台灣的地底下是不是還有無數條這樣凝固在時間裡的生命線? 為了解開這些謎團,過程中勢必會需要將古書記載與真實的古地圖進行疊加比對。因此,我想先探索一下中央研究院(中研院)到底有哪些相關的歷史圖資資源可以使用。 (未完待續:下一篇,我們將打開中研院的百寶箱,解析歷史圖資的魔法!) 本文為哈爸與 AI 助理協作產出,紀錄實體探勘與數位工程之歷程。

2026-02-22 · 1 min · 37 words · Wuulong