張 宇,李遠(yuǎn)華,劉嘉宸,徐 達(dá),蔡德森
(吉林大學(xué)地球探測科學(xué)與技術(shù)學(xué)院,長春 130026)
遼金文化發(fā)源于東北地區(qū),殘留了眾多遼金古城遺址,保存著上千年的歷史,是極其寶貴的文化資源。對(duì)遼金古城遺址空間信息的研究和建設(shè),對(duì)東北地區(qū)旅游資源的開發(fā)、增強(qiáng)文化自信具有積極作用。遼金古城遺址作為特色文化資源,其空間結(jié)構(gòu)、文史信息都具有重要的文化價(jià)值。以往的學(xué)者在遼金古城遺址考古、空間數(shù)據(jù)調(diào)查、文化信息挖掘方面開展了諸多研究[1-5]。但是由于東北遼金文化尚屬小眾文化,對(duì)古城遺址結(jié)構(gòu)多為總結(jié)性研究,對(duì)離散分布古城主要采用簡單的點(diǎn)狀數(shù)據(jù)和結(jié)構(gòu)素描圖進(jìn)行展示[4],對(duì)每個(gè)古城的空間信息缺乏專業(yè)的GIS表現(xiàn)技術(shù)和管理手段[6],沒有針對(duì)性的空間數(shù)據(jù)模型,影響了遼金古城遺址信息化建設(shè)和管理。
因?yàn)檫|金古城結(jié)構(gòu)復(fù)雜,類型多樣,其內(nèi)部具有差異化的空間結(jié)構(gòu),對(duì)其進(jìn)行個(gè)體化的展現(xiàn)就離不開有針對(duì)性的空間數(shù)據(jù)模型和空間管理技術(shù)。因此,如何根據(jù)古城特點(diǎn),構(gòu)建恰當(dāng)?shù)目臻g數(shù)據(jù)模型,并提出有針對(duì)性的古城信息管理與查詢技術(shù)是一個(gè)值得研究的問題。
空間數(shù)據(jù)模型的建立需要明確對(duì)象的空間拓?fù)潢P(guān)系、框架圖形表達(dá)、屬性結(jié)構(gòu)和空間數(shù)據(jù)集的組織問題,因此,本文在古城空間特征分析的基礎(chǔ)上,從以上幾個(gè)方面構(gòu)建古城空間數(shù)據(jù)模型。每個(gè)古城都由復(fù)雜多樣的矢量圖形構(gòu)成,如果采用傳統(tǒng)形式,文件雜亂且難以管理,空間數(shù)據(jù)庫能將矢量圖進(jìn)行封閉式管理,因此,為每個(gè)古城構(gòu)建一個(gè)空間數(shù)據(jù)庫,即能解決上述問題,開展離散式的數(shù)據(jù)庫技術(shù)研究,從而解決綜合的管理與查詢問題。本文即是圍繞上述關(guān)鍵問題開展研究。
本文的技術(shù)思路:首先,收集遼金古城遺址遙感數(shù)據(jù),為古城結(jié)構(gòu)分析和空間提取奠定數(shù)據(jù)基礎(chǔ);其次,從空間結(jié)構(gòu)、空間要素特性和數(shù)據(jù)管理需求等方面對(duì)古城要素進(jìn)行分類,分析其空間結(jié)構(gòu);之后,以古城空間結(jié)構(gòu)為依據(jù),分析古城要素拓?fù)潢P(guān)系和對(duì)應(yīng)的圖形表達(dá),并按照古城要素特性構(gòu)建屬性結(jié)構(gòu),結(jié)合古城空間結(jié)構(gòu)層次組織各要素類,完成古城空間模型的構(gòu)建;然后,對(duì)于古城空間模型的管理,建立個(gè)體和整體古城空間數(shù)據(jù)庫,并分別設(shè)計(jì)屬性查詢、數(shù)據(jù)修改和空間顯示與統(tǒng)計(jì)方案,將個(gè)體和整體古城空間數(shù)據(jù)實(shí)現(xiàn)聯(lián)動(dòng)管理;最后,基于古城空間模型實(shí)例化古城對(duì)象,對(duì)古城空間模型和古城管理系統(tǒng)進(jìn)行應(yīng)用與分析,實(shí)現(xiàn)對(duì)古城空間數(shù)據(jù)統(tǒng)一、集成式的管理(圖1)。
圖1 技術(shù)路線圖
由于古城是一個(gè)要素眾多的集合,需要對(duì)古城的結(jié)構(gòu)進(jìn)行分析,明確古城的空間結(jié)構(gòu),為古城空間數(shù)據(jù)模型的建立提供依據(jù)。
從整體形態(tài)上看,遼金古城形態(tài)、種類多樣,按面積大小可分為特大型、大型、中型和小型城址4 種,依據(jù)平面形狀不同可分為4 個(gè)亞型:長方形、正方形、四邊形和不規(guī)則形城址[7]。古城遺址四周被殘缺的城墻環(huán)繞,多呈現(xiàn)“口”字形,部分古城具有“日”字形雙城結(jié)構(gòu)或“回”字形的內(nèi)外城結(jié)構(gòu)。
從結(jié)構(gòu)上看,遼金古城在水平方向主要由夯土、砌石構(gòu)成防御城墻體,墻體上窄下寬,城門和城防設(shè)備鑲嵌在城墻體之上或與之緊密結(jié)合;古城內(nèi)部結(jié)構(gòu)同樣復(fù)雜,設(shè)施種類眾多,城墻和交通設(shè)施構(gòu)成了古城遺址的基本框架,殘存的城墻分段離散,由內(nèi)外城墻線包圍封閉形成;古城交通設(shè)施包括城門和主干道路,城門嵌入城墻,表現(xiàn)為殘存城墻的缺口,狹長的主干道路連接各城門。內(nèi)城區(qū)被城墻環(huán)繞包圍,并被主干道路分割。對(duì)于城防設(shè)施,馬面、角臺(tái)分別在城墻外圍和拐角處,甕城與城門位置重合,包含城門。古城內(nèi)部建筑大多消失殆盡,被現(xiàn)代耕地和建筑替代[8-9]。
遼金古城遺址形態(tài)各異,但建筑布局具有共性??梢酝ㄟ^分析遺址要素之間的拓?fù)潢P(guān)系以及空間特征,結(jié)合要素之間的層次結(jié)構(gòu),從古城的空間圖形結(jié)構(gòu)、屬性結(jié)構(gòu)和數(shù)據(jù)組織結(jié)構(gòu)3 個(gè)方面構(gòu)建古城空間模型,為集成式管理古城空間數(shù)據(jù)奠定理論基礎(chǔ)。
古城范圍數(shù)據(jù)標(biāo)識(shí)古城存在的區(qū)域,以略大于古城面積的矩形面要素表示;古城位置以遺址中心為代表,在大范圍展示古城遺址分布時(shí),用點(diǎn)要素表示;城墻內(nèi)外邊界圍繞古城,確定了古城形狀和范圍,為線要素;城墻面被城墻內(nèi)外邊界線包含,以面要素表示;城門、馬面、角臺(tái)及甕城附著于城墻,以點(diǎn)要素分布在城墻不同位置;主干道路在古城內(nèi)部,與城墻相交,端點(diǎn)連接城門,呈線狀,有一定寬度,用面要素表示。城內(nèi)各要素以不規(guī)則區(qū)域分布在內(nèi)城區(qū),用面要素表示(圖2)。
圖2 古城空間結(jié)構(gòu)概念圖
屬性數(shù)據(jù)即非空間數(shù)據(jù),是要素必要的空間特征描述。古城的共性信息(如古城名、坐標(biāo)點(diǎn)等)通過古城范圍要素的屬性字段表示。然后,依據(jù)每一個(gè)古城矢量要素的文化內(nèi)涵與空間圖形特征設(shè)計(jì)相應(yīng)的屬性字段,并且每個(gè)要素用一個(gè)編號(hào)字段標(biāo)志其所屬的古城。例如古城范圍要素集有古城區(qū)域(面狀)和古城位置點(diǎn)(點(diǎn)狀)2 個(gè)要素類,古城區(qū)域的屬性字段有:古城編號(hào)(int)、古城名(char)、經(jīng)度Px(decimal)、緯度Py(decimal)、古城類別(char)、殘存度(%)(int)。
古城遺址各要素離散而有聯(lián)系,需要對(duì)數(shù)據(jù)集成封裝??衫肁rcGIS Geodatabase 空間數(shù)據(jù)庫實(shí)現(xiàn)古城空間數(shù)據(jù)模型。對(duì)單個(gè)古城對(duì)象,新建一個(gè)Geodatabase 數(shù)據(jù)庫,按照古城空間結(jié)構(gòu)組織古城要素集和對(duì)應(yīng)要素類,構(gòu)建古城空間層次關(guān)系,并建立各要素類的屬性結(jié)構(gòu)。對(duì)古城遺址空間信息提取時(shí),要素類保存提取的古城空間幾何數(shù)據(jù),并添加對(duì)應(yīng)屬性值。
作為一個(gè)整體,古城可被視作獨(dú)立的對(duì)象,而這些獨(dú)立的對(duì)象又構(gòu)成了新的數(shù)據(jù)集,可單獨(dú)建立集成數(shù)據(jù)庫存儲(chǔ)管理整體古城信息,并分別設(shè)計(jì)數(shù)據(jù)庫的屬性查詢、數(shù)據(jù)修改和空間顯示與統(tǒng)計(jì)方案,從而實(shí)現(xiàn)個(gè)體和集成古城空間數(shù)據(jù)庫的交互管理。
對(duì)于個(gè)體古城空間數(shù)據(jù)的存儲(chǔ),可將單個(gè)古城視作獨(dú)立的對(duì)象。按照古城空間數(shù)據(jù)模型,古城提取的結(jié)果是一個(gè)獨(dú)立的空間數(shù)據(jù)庫,代替繁雜的圖層文件,具有封裝性和統(tǒng)一空間坐標(biāo)系。數(shù)據(jù)庫文件存儲(chǔ)在程序指定的文件夾下,可通過文件名檢索古城,便于管理、儲(chǔ)存和共享古城遺址圖層數(shù)據(jù)。由于古城數(shù)據(jù)之間相互獨(dú)立,因此對(duì)單個(gè)古城數(shù)據(jù)庫的操作不會(huì)影響其他數(shù)據(jù)庫,從而實(shí)現(xiàn)了面向?qū)ο蟮墓懦强臻g數(shù)據(jù)管理。
集成古城空間數(shù)據(jù)存儲(chǔ)方案的關(guān)鍵在于提取古城遺址的共性特點(diǎn),因此可以單獨(dú)建立古城信息數(shù)據(jù)庫,以管理古城遺址的相關(guān)描述和位置坐標(biāo)等宏觀屬性信息。在初始化時(shí),可通過循環(huán)連接個(gè)體古城數(shù)據(jù)庫,導(dǎo)入對(duì)應(yīng)古城屬性信息,以此實(shí)現(xiàn)封裝性和數(shù)據(jù)共享。
針對(duì)個(gè)體古城空間數(shù)據(jù)庫的查詢,個(gè)體古城空間數(shù)據(jù)庫以一個(gè)Geodatabase 數(shù)據(jù)庫文件形式存儲(chǔ),因此,打開古城數(shù)據(jù)庫所在文件夾,通過古城名稱檢索數(shù)據(jù)庫文件,運(yùn)用C#+OLEDB 空間數(shù)據(jù)庫技術(shù),連接古城空間數(shù)據(jù)庫,訪問其屬性信息。每個(gè)要素類即是一張關(guān)系表,通過Select 語句,可查詢單個(gè)古城的空間數(shù)據(jù)。
而對(duì)于集成空間數(shù)據(jù)庫,古城信息數(shù)據(jù)庫中記錄古城宏觀屬性數(shù)據(jù),與個(gè)體空間數(shù)據(jù)庫中的空間數(shù)據(jù)分別存儲(chǔ),在不涉及古城空間幾何數(shù)據(jù)時(shí),不再逐一連接古城空間數(shù)據(jù)庫,僅連接集成空間數(shù)據(jù)庫,直接對(duì)信息表中的古城信息查詢統(tǒng)計(jì)即可,從而提高程序運(yùn)行效率。
個(gè)體古城數(shù)據(jù)的修改可以直接通過ArcGIS 數(shù)據(jù)平臺(tái)編輯,在要素類的編輯狀態(tài)下手動(dòng)修改屬性表,部分屬性值可通過幾何計(jì)算自動(dòng)更改,如面積、周長等幾何屬性;也可以在古城所在文件夾內(nèi),檢索目標(biāo)古城,通過OLEDB 語句連接古城數(shù)據(jù)庫,運(yùn)用Update 語句修改其中的屬性信息;修改后在集成數(shù)據(jù)庫內(nèi)部連接該古城空間數(shù)據(jù)庫,將古城相應(yīng)屬性更新至集成數(shù)據(jù)庫,實(shí)現(xiàn)與古城信息表的聯(lián)動(dòng)管理。
集成數(shù)據(jù)庫的數(shù)據(jù)修改可以通過連接古城信息表由程序直接進(jìn)行,對(duì)各獨(dú)立的古城空間數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)連接。連接集成數(shù)據(jù)庫后,依據(jù)權(quán)限對(duì)古城信息進(jìn)行訪問修改。同時(shí)總庫的修改也會(huì)涉及子庫數(shù)據(jù)的更新,因此需要根據(jù)所修改的古城對(duì)應(yīng)編號(hào),訪問該古城空間數(shù)據(jù)庫,更新相應(yīng)數(shù)據(jù)集下的空間數(shù)據(jù)。
由于遼金古城遺址是空間化數(shù)據(jù),因此需要考慮其空間特征。古城本身是具有獨(dú)特空間結(jié)構(gòu)和組成要素的實(shí)體。對(duì)于整體古城數(shù)據(jù)來說,由于其數(shù)量多、分布廣泛,可以被視為空間中的點(diǎn)狀數(shù)據(jù)。因此,在解決遼金古城遺址的空間查詢和顯示問題時(shí),需要從個(gè)體和整體古城數(shù)據(jù)的角度進(jìn)行考慮。
本文基于C#和ArcGIS Engine 二次開發(fā)技術(shù)實(shí)現(xiàn)古城遺址的空間查詢與顯示。其中,查詢系統(tǒng)中使用了地圖控件(MapControl)用于空間圖形和查詢結(jié)果的顯示,同時(shí)通過窗體中的DataGridView、TextBox、Chart 等控件顯示空間查詢的數(shù)量和統(tǒng)計(jì)值。算法的具體實(shí)現(xiàn)思路如下:首先,運(yùn)用ArcGIS Engine 數(shù)據(jù)連接方法打開對(duì)應(yīng)古城的Geodatabase 空間數(shù)據(jù)庫;然后,定義空間查詢過濾器對(duì)象(ISpatialFilter),并為其設(shè)定WhereClause(sql 查詢語句)、Geometry(查詢的空間范圍)、SpatialRel(給定范圍與查詢對(duì)象的空間關(guān)系)等參數(shù);最后,執(zhí)行的結(jié)果將存儲(chǔ)在內(nèi)存變量中,并通過地圖控件與之關(guān)聯(lián)和顯示,從而實(shí)現(xiàn)空間數(shù)據(jù)的查詢。整體空間查詢對(duì)象和結(jié)果均為該古城的點(diǎn)狀數(shù)據(jù),個(gè)體查詢結(jié)果將詳細(xì)顯示該古城的空間結(jié)構(gòu),并以高亮方式呈現(xiàn)查詢結(jié)果。
根據(jù)前期提取的古城信息,依據(jù)模型要求和建模步驟,完成了6 個(gè)具有代表性的古城空間數(shù)據(jù)提取(圖3),并基于本文古城空間模型創(chuàng)建了空間數(shù)據(jù)庫(圖4),形成了測試數(shù)據(jù)集;然后,用C#+數(shù)據(jù)庫技術(shù),將6 個(gè)獨(dú)立的古城空間數(shù)據(jù)庫進(jìn)行邏輯連接,同時(shí)構(gòu)建了古城信息總數(shù)據(jù)庫(Total.mdb)用于管理所有古城的基本信息;最后,對(duì)于基本信息的查詢與修改,通過Select、Update 等SQL語句實(shí)現(xiàn),如果古城數(shù)據(jù)發(fā)生修改,采用Update 方法更新相應(yīng)個(gè)體古城數(shù)據(jù)庫;針對(duì)個(gè)體古城進(jìn)行詳細(xì)的信息查詢、屬性修改、數(shù)據(jù)增加等操作,可通過循環(huán)連接數(shù)據(jù)庫的SQL 語句實(shí)現(xiàn),其中涉及空間數(shù)據(jù)的修改可通過ArcGIS 等空間數(shù)據(jù)處理平臺(tái)完成,初步實(shí)現(xiàn)了古城數(shù)據(jù)的一體化管理(圖5)。
圖3 提取效果圖
圖4 古城空間數(shù)據(jù)庫模型
圖5 程序運(yùn)行圖
本文針對(duì)遼金古城空間信息的集成化管理,建立了古城空間數(shù)據(jù)模型,并提出了面向?qū)ο蟮墓懦强臻g數(shù)據(jù)管理方法,同時(shí)開展了古城空間數(shù)據(jù)模型實(shí)踐和程序設(shè)計(jì),取得了如下認(rèn)識(shí)。
其一,要想體現(xiàn)出古城的內(nèi)涵與復(fù)雜的空間信息,需要構(gòu)建如下空間模型:古城多為方形,城墻構(gòu)成古城的中外層骨架,內(nèi)城墻線是古城內(nèi)部空間的邊界線,角臺(tái)等主要城防設(shè)施附著于城墻外沿;利用線圖形反映古城主體框架,面圖形表現(xiàn)墻體、建筑或大型城防設(shè)施等,可用點(diǎn)圖形標(biāo)志小型城防設(shè)施等重要部位,并為每種要素根據(jù)其內(nèi)涵、文化描述構(gòu)建相應(yīng)屬性結(jié)構(gòu)。采用空間數(shù)據(jù)庫多要素方法,集中管理數(shù)據(jù),實(shí)現(xiàn)古城集成空間信息的管理。
其二,對(duì)古城空間數(shù)據(jù)的集成管理可以利用面向?qū)ο蟮姆椒?,將古城看作?dú)立的對(duì)象,通過程序?qū)ξ募?、?shù)據(jù)庫、SQL 語言進(jìn)行融合式算法設(shè)計(jì)可實(shí)現(xiàn)個(gè)體、總體古城數(shù)據(jù)交互式查詢和管理。還可利用Visual Stadio C#+OLEDB+ArcEngine 的編程模式將整體與個(gè)體古城空間數(shù)據(jù)聯(lián)動(dòng),具體解決屬性查詢、數(shù)據(jù)修改和空間顯示與統(tǒng)計(jì)分析問題。
本文重點(diǎn)圍繞“遼金古城”遺址空間數(shù)據(jù)模型和集成管理技術(shù)開展研究,構(gòu)建了空間數(shù)據(jù)模型,并提出了集成式管理技術(shù)的解決方案。然而由于遼金古城相關(guān)文化底蘊(yùn)深厚,對(duì)古城空間或?qū)傩孕畔⒌慕庾x水平受歷史、考古和文學(xué)等方面的知識(shí)、能力局限,因此在數(shù)據(jù)庫優(yōu)化、系統(tǒng)設(shè)計(jì)和算法優(yōu)化方面還有待深入的研究和探索。