ESRI的Geodatabase設計指導[理解資料結構]

來源:互聯網
上載者:User
 http://www.gispark.com/html/jichu/2006/1221/1005.html

一 對象建模與GeoDatabase
1 用GIS建模對象
地理資訊系統(GIS)的目標是提供地理架構以支援地球資源智能利用的決策和管理人
造環境。
大 部分時候,一個GIS以地圖和符號的形式提供資訊。觀察提供的地圖,它提供你這樣一些識:事物在那裡,他們是什麼,怎樣通過道路或者其他交通方式到達那 兒,以及領接和領近的事物事什麼。GIS也能夠通過與個人電腦上的地圖進行互動對話來傳播資訊。這一互動可以揭示紙質地圖上不明顯的資訊。
比如,我們可以查詢一個feature已知的所有屬性,建一個串連網路中兩點所有事物的列
表,以及對諸如水流、旅遊時間或汙染擴散等測量品質的類比。顯示和分析用的資訊取決於你如何個世界上的地理物體。

建模一個系統的諸多途徑

我們與在這個世界上的物體進行的互動是各種各樣的,你可以通過很多途徑為他們建模。
例如:河流。河流的設計就很有趣,因為它們是自然對象,它們為交通而用,它們劃定政治和行政地區,它們是地表重要的特徵。可以想到很多種方法來在GIS中建模河流。

地圖用途指導資料模型

很明顯,即使一個普通的地理物體比如河流也能夠在GIS中通過多種方式表達。沒有一種模型是一定優越的。你想要建立的地圖類型和要解決的問題領域將指導那種模型最佳。

2 地理資料模型進展

地理資料模型是真實世界的抽象,它使用一系列資料對象來支援地圖的顯示、查詢、編輯和分析。
ArcInfo 介紹了一種新的物件導向資料模型以及它對於表達自然行為和特徵關係的優勢。要理解這種新模型,我們首先回顧一下三代地理資料模型。

I CAD資料模型

最早電腦化的地圖系統繪製向量地圖是使用陰極射線管射出的線,繪製柵格地圖是使用線劃印表機的套印符號。由此起源,60和70年代產生圖形硬體和繪圖軟體的最佳化,能夠以合理的製圖逼真度渲染地圖。
在這個時代,地圖主要由普通的CAD(電腦輔助製圖)軟體繪製。CAD資料模型以二進位檔案格式儲存地理資料,並以點、線劃和面域的形式表達。很少屬性資訊能儲存在這些檔案裡;地圖圖層和註記是主要的屬性工作表達方式。

II Coverage資料模型

1981年,ESRI推出它第一個商業化GIS軟體ArcInfo,它應用了第二代地理資料模型—coverage資料模型(也稱為地理關係資料模型)。這種模型兩個關鍵方面:

* 空間資料與屬性資料相結合。空間資料儲存為索引化二進位檔案,它為顯示和存取做了最佳化。屬性資料存放區在表裡,有一定數量的行,行數等同於二進位檔案中的Feature數量,通過共同的唯一碼組織在一起。
* 能夠儲存向量feature的拓撲關係。這意味著一個線狀的空間資料紀錄包含了以下資訊:哪些節點界定了這條線,通過推斷可知哪些線相連,還有哪些多邊形在其左邊和右邊。
coverage資料模型的主要進步在於給與使用者自訂Feature表的能力;不僅僅可以添加欄位,而且相關資料庫可以建立為外部資料庫表。
由於當時電腦硬體和資料庫的限制,空間資料直接儲存入關聯式資料庫不可行。因此更好的選擇是,coverage資料模型結合了索引化二進位檔案的空間資料和表狀屬性資料。

儘管這種空間資料與屬性資料的分割是一種折衷選擇,coverage資料模型仍成為GIS主
流資料模型。這是有很好理由的——coverage資料模型使得高效能GIS成為可能,儲存了拓
撲關係便於改進地理分析和更加精確的資料錄入。

coverage資料模型的局限

coverage資料模型有一個重要的缺陷——feature由同樣的點、線、多邊形集合彙總而成,它們表達一般的行為。代表一條路的線的行為和代表一條小溪的線的行為是一樣的。
coverage 資料模型支援的一般行為導致一個資料集的拓撲完整性。一個例子,如果加一條線穿過一個多邊形,它就會自動分為兩個多邊形。但是也需要支援溪流、道路和其他 真實世界物體的特殊行為。例如,一條河流向一個方向流動,當兩條河流段合流時,下遊河段是兩股上遊水流的相加;當
兩條道路相交,在兩者接合處應該有一個交通交叉口,除非其中一條道路是立交或隧道。

在coverage中自訂feature

利用coverage資料模型,ArcInfo應用開發人員通過AML所寫的宏代碼在為feature加入這類行為方面取得了一些顯著的成功,建立了 許多成功的大型產業應用。然而,隨著應用變得越來越複雜,很明顯需要更好的方法來結合feature和behavior。其問題是開發人員要保持應用代碼與 feature類的同步性——這可不是容易的任務。一種新的能夠緊密結合behavior和feature的地理資料模型的時代到來了。

III Geodatabase 資料模型
ArcInfo推出一種新的物件導向資料模型稱為geodatabase資料模型。這種新的資料 模型的定義目的在於使得GIS資料集裡的feature更加智能,方法就是通過賦予它們自然行為以及允許feature間任何種類的關係。 geodatabase資料模型使得物理資料模型與其邏輯資料模型更加接近。geodatabase中
的資料對象最接近於邏輯模型中定義的,比如說所有者、建築物、地塊和道路。

進一步,geodatabase資料模型讓使用者不用寫一行代碼就可以實現大部分自訂行為。大部分行為是通過ArcInfo提供的領域、確認規則和其他函數的架構實現的。僅僅在為更專業的feature行為建模時才需要撰寫代碼。

對象互動情境

為了讓你對物件導向資料模型重要性有一個認識,這裡有舉了一個情境,它表明了通常你需要對feature所作的操作。從這個情境,我們仔細考察物件導向資料模型的長處以及總覽一下geodatabase資料模型的特性。

(1)填加編輯feature

當你為你的GIS資料庫填加地理feature時,你要保證feature根據規則進行正確的布置,就比如:
* 你賦予一個屬性的值必須在一個可預測可允許的值的集合內。一個土地地塊只能賦予一定的土地用途比如“居住”“農業”或者“工業”。
* 一定feature的集合遵從於他們自然的空間組合。一個河流系統應該總是往低處流。匯流點的下遊水流是上遊水流的總和。
* feature的幾何形狀遵從它的邏輯布局。構成道路的直線和曲線必須相切。建築物的拐角絕大部分是直角。

(2)feature間的關係

地球上所有物體都與其他物體有關係。從GIS角度看,這些關係可以分為三類:拓撲關係、空間關係和一般關係。
有些例子可以說明這三種關係:
* 當你在一個電力事業系統中編輯feature時,你要確定主線和次線的端點正好接上,你就能夠在電力網路上實施跟蹤分析。當在一個相互串連的系統中裝載和編輯feature時,就定義了一系列的拓撲關係。
* 當你操作一幅有建築、街區和學校區的地圖時,你可能想要判斷哪一個地塊有一個特殊的建築,所有包含學校區的建築集合,以及沒有建築的街區。一個GIS的基 本功能就是判斷一個feature是否與另一個feature是包含、相接、疊加。空間分析從feature的幾何形體推斷而來。
* 有一些對象之間的關係並不表現在地圖上。一個地塊與一個所有者有關係,但是這個所有者並不是地圖上的feature。一般關係聯結了地塊和所有者。一些地 圖上的feature有關係,但是他們的空間關係並不明顯。一個需給電錶在一個變壓器附近,但與其沒有接觸。在人口稠密地區電錶和變壓器空間上的接近可能 不能保證其可靠性,因此一般關係將兩個feature聯結在一起。

(3)製圖顯示

大部分時候,你能夠以預先定義好的符號在地圖上繪製feature,但有時你想要更多地控feature如何被繪製。這裡談一些特殊的繪圖行為。
* 當顯示一條等高線時,你想要它的高程值隨等高線平滑段註記,要以一個平均的間
隔比如4英寸註記,以及不要遮掩到其他feature。
* 當你在詳細地圖上繪製道路時,你想道路以平行線繪製,並有著流線型的道路交叉
口。
* 當多種電線布置在同一個公用事業管道時,你想以一列平行線將其延展表達,平行
線要以地圖單位為標準間隔。

(4)互動分析

動態地圖顯示需要使用者觸及feature找到屬性、關係以及進行分析。舉一些範例,這些範例可能是你在選擇feature時想要知道的。
* 觸及地圖上feature,喚起自訂表單來查詢和更新其屬性。
* 當規劃需要維護的線路時,選擇電力網路的一部分,找到受影響的下遊客戶,郵寄通知他們。

Geodatabase資料模型的優勢

貫穿這些情境的主線就是將物件導向建模方法應用到feature中去是非常有用的。物件導向建模方法讓你能夠更自然的描繪feature,其途徑就 是讓你定義自己的物件類型,定義拓撲、空間和一般關係,以及緊抓住這些對象如何與其它對象相互作用。這是應用geodatabase資料模型的一些優勢:
* 資料錄入和編輯更加精確。由於對資料的錄入和編輯大多數能被智能的檢測行為所保護 ,所以幾乎不會犯什麼錯誤。對於很多使用者來說,光是這一點就可以成為接受geodatabase資料模型的原因了。
* 使用者操作更直觀的對象。經過適當的設計,一個geodatabase包含的資料對象與使用者資料的模型是一致的。使用者操作的是他們感興趣的對象諸如變壓器、道路和湖泊,代替了通用的點、線和面。
* feature擁有更加豐富的上下文關係(context)。有了拓撲關聯、空間表達和一般關係,你不僅定義了一個feature的特性,而且還有它與其 他feature的context。這樣就在其他相關feature動、改變或刪除時,有助於說明整個feature集合到底發生了什麼。這種 context也讓你可以定位或尋找到與一個feature相關的另一個feature。
* 可以製作更優質的地圖。能更多的控制feature的繪製 ,也能增加智能的繪圖行為。能把複雜的繪圖方法直接應用到ArcInfo的繪圖應用程式中,而且通過編寫軟體代碼還能執行高度專業化的繪圖方法。
* 在地圖上顯示的特徵是動態。當在ArcInfo中對feature進行處理時 ,這些feature能對鄰接feature的改變做出相應的反應。你也能使feature與定製的查詢或分析工具發生聯絡。
* 定義了更好的feature外形。geodatabase資料模型用直線、圓弧、橢圓弧和貝齊而(Bezier)曲線來定義feature的外形。
* feature集合是連續的。通過設計,geodatabase資料模型能容納非常巨大的feature集合而不需要其他的空間分區或塊 (title)。
* 許多使用者能同時編輯地理資料。geodatabase資料模型支援許多人能在本地編輯feature ,然後對出現的任何差異進行處理使之達成一致。當然,你也可以不用物件導向模型實現上述一些優點,但你可能要面對這樣一個缺憾:
——你需要寫外部代碼,這些外部代碼與feature鬆散地相聯,而且可能複雜和錯誤geodatabase資料模型一個基本的優點在於你擁有一個架構,在這個架構裡你可以儘可能容易地建立與真實世界對象互動和行為更加接近的智能feauter。

3 Geodatabase,地理資料的儲存

一個geodatabase能夠容納四種地理資料表示:
* 向量資料表示feature,
* 柵格資料表示映像、網格化(gridded)專題資料和表面(surface)
* 不規則三角網(TIN)表示表面
* 定位器(locator)和地址用來根據地址尋找一個地理地點。一個geodatabase可以在任一個商用關聯式資料庫裡儲存所有這幾種地理資料表示。這就使得地理資訊主要由資訊技術專業人員管理,也就讓ArcInfo跟上了資料庫技術的發展。

(1) 用向量資料表示feature

世界上很多feature都有很好的外形定義。向量資料用一組帶有關聯屬性的有序座標精確簡潔地表示了這些feature的外形。這種表示支援幾何運算,例如,計算長度和面積,識別重疊和交叉,找到相鄰的或附近的其他的feature。向量資料可以用維數進行分類
* 點是零維的,它表示地理特徵太小而不能用線或面來描述。點是用單個x,y座標值來儲存的。
* 線是一維的 ,它表示地理特徵太狹窄而不能用面來描述。線是用一組有序的x,y座標值來儲存的。一條線段可以是直的、圓的、橢圓的或曲線的。
* 面是二維的,它表示寬闊的地理特徵。面用一組圍繞面的線段來儲存,這些線段構成一個封閉的面。另外一種向量資料類型是標註。這些標註是用於顯示相關feature的名字和屬性的描述
性符號。
在geodatabase 中,向量資料有一個利用維數和關係直接儲存feature的結構。一個feature資料集(dataset)是儲存空間實體(feature)、非空間 實體(對象)和它們之間關係的容器。拓樸關係用幾何網路和平面圖表示。geodatabase也儲存一些有效規則和域,當feature被建立或更新時 用來確保它們的屬性在與它們相關聯的feature和對象的上下文關係(context)中繼續有效。

(2) 用柵格表示網格化(gridded)資料。

收集在geodatabse中的許多資料都是柵格型的,這是因為攝影機和成像系統是以像素值的形式將資料記錄在二維的網格(grid)或光柵中的。 像素是組成柵格的基本單元,它的值能描述多種資料。像素能夠為一部分光譜儲存光的反射,為映像儲存顏色值,以及儲存專題屬性,比如植物類型,或表面值,或 海拔高度。

(3) 用TIN表示表面

一個不規則三角網(TIN)就是一個表面模型。一個geodatabase在儲存TINs時,將其作為一個帶有高程值的節點和帶有邊(edge)的 三角形的整體來對待。通過三角形的邊,TIN的地理擴充能夠插入任何有高程值(或z值)的點。TIN支援表面分析,比如:流域研究;在一個觀測點能看到表 面的哪些地區;表面特徵的描述(如山脈、河流和山峰)。TIN還能描述自然地形的起伏。

(4) 用定位器(locator)尋找地址

或許最普通的地理工作就是通過地址定位一個地方了。geodatabase能儲存定位器和地址。定位器是一種利用全國郵政協定將一個地址轉換成地理位置的方法。你可以找到任意這些點在地圖上相對應的點feature。
4 物件導向資料模型中的feature

ArcInfo與前面版本不同之處在於將物件導向方法學應用於地理資料建模。開發人員通過稱為“geodatabase資料擷取對象”(geodatabase data access objects)的物件導向軟體類架構來操作資料對象。
物件導向有三個關鍵特點:多態(polymorphism)、封裝(encapsulation)和繼承(inheritance)。
* 多態是指一個對象類的行為(或方法)能夠適應類的變化。舉一個例子,不管是geodatabase、coverage還是shapefile裡,feature的核心行為比如繪製、添加和刪除操作絕大部分是一樣的。
* 封裝是指類只能通過定義好的軟體方法集才能擷取,並組織成軟體介面。geodatabase資料擷取對象掩蓋了資料對象內部細節並提供一個標準的編程介面。
* 繼承是指對象類的定義能夠包含其他對象類的行為和新增的行為。你可以在ArcInfo裡建立一個自訂的feature類型,並繼承標準feature的 行為。比如,一個變壓器對象可以從一個標準的ArcInfo feature類型比如簡單的交叉點(junction)feature擴充(也稱sub-type)而來。

統一資料模型

geodatabase資料擷取對象是一種軟體技術,它提供對各種資料來源(比如geodatabase、coverage和shapfile)的地 理資料的統一擷取。ArcInfo開發人員通過一系列資料對象,比如datasets、tables、feature classes、rows、objects和features,來操作地理資料。這些對象都包含了一個共用一致的地理資料視圖。
由於有了這種統一資料模型,ArcInfo使用者能夠最大程度以同樣的方式操作geodatabase、coverage和shapefile。統一資料模型通過強調資料的共有特性來簡化了資料的操作。

可擴充feature

geodatabase一個重要的方面就是你可以有選擇地建立自訂feature,比如變壓器、道路,從而代替了點和線。對於ArcInfo的使用者來說,這就意味著變壓器或者道路不僅擁有標準點feature和線fe
ature 的標準繪製、查詢和編輯表現方式,而且還有附加的行為。你可以規定變壓器必須接觸到一個電線杆以及必須通過這個電線杆垂直於電力線。或者,當編輯一條道路時, 所有它的分段必須相切。資料建模者能夠使用標準的feature類型來實現豐富的資料模型。對於進階應用程式來說,開發人員能夠擴充標準的feature類型, 使用物件導向的類型繼承技術來建立自訂feature。
任一個你建立的自訂feature擁有同樣的效能和功能,就像ArcInfo提供的標準feature類型那樣。這就為複雜應用的開發提供了無限的機會。

feature和物件導向

geodatabase中得feature實現為一組相關聯的表。其中一些表表達了feature的集合。其他表表示了feature間關係、有效性規則和範圍。
ArcInfo 管理這一結構和這些表的整合,並通過地理資料擷取對象提供了物件導向的地理資料。所有的使用者和絕大部分開發人員可以不用瞭解也無需關心 geodatabase的內部結構細節。ArcCatalog是一個用來建立、修改和精化geoudatabase結構的使用者介面應用。資料的物件檢視隱 藏了geodatabase大部分資料庫物理結構,使你只需關注如何建立一個地理資料模型。如想擷取geodatabase物理實現的更多資訊,可以閱讀 《SDE概念指南》
5 提供(serving)地理資料

ArcInfo通過ArcSDE(Arc空間資料庫引擎)的服務來存取地理資料。ArcSDE是一種軟體技術,它讓你能夠建立geodatabase,範圍從小規模到很大規模的空間資料集合。它還提供與你選擇的關聯式資料庫的開放介面。

個人型和多使用者型geodatabase

ArcSDE有兩種:個人型和多使用者型。
個人型ArcSDE構建在ArcInfo中,適合面向項目型的GIS。個人型ArcSDE提供的 geodatabase以Microsoft Access來實現。當你安裝了ArcInfo,也就安裝上了Microsoft Jet,它為ArcSDE提供服務以建立和更新Access資料庫。你不需要單獨安裝Microsoft Access軟體產品。對於大型企業來說,ArcSDE是一種對於ArcInfo的多使用者資料存取擴充。ArcSDE安裝在一個資料服務器上,這個伺服器 用來管理你單位的關聯式資料庫。通過TCO/IP網路,ArcSDE提供geodatabase給運行在個人電腦上的ArcInfo應用系統。ArcSDE 可以配置在Windows NT或者UNIX上。
個人型ArcSDE使得地理資料能夠在本地存取。它無需系統管理,並且對ArcInfo使用者是不可見的。
ArcSDE允許地理資料的遠程存取,也允許多個使用者瀏覽編輯同樣的地理資料。ArcSDE由你的資料庫管理者集中調控和管理。

開放和可升級的資料服務

ArcSDE允許你設定和配置從小規模到很大規模的geodatabase。如果你操作中等規模的資料集,你可以配置你自己的Access資料庫, 這一資料庫是通過ArcCatalog裡的個人型ArcSDE建立的。這種配置使得一些優良效能受到限制,資料集上限大約為100,000個對象,而且只 支援一個編輯使用者和幾個同時的瀏覽使用者。如果需要更多需求的資料集或者要支援更多即時編輯使用者,你可以在關聯式資料庫裡配置對於ArcInfo的 ArcSDE擴充,這對於你的機構來說是再適合不過了。
ArcSDE是一個開放的體系,有這樣一些自由:
* 在選擇資料庫層級方面你有無限自由度
* 可以為不同部門配置不同資料庫
* 可以從UNIX或Windows NT裡得到資料
* 可以集中管理geodatabase
* 可以從其他應用系統中得到資料,諸如MapObject、ArcView和CAD應用系統
* 可以建構符合開放GIS協會(OGC)規定的應用系統
* 可以建立SQL應用來存取geodatabase中的表和列
6 擷取地理資料

在geodatabase裡開發人員能夠以三個基本層級擷取資料:
* 通過geodatabase資料擷取對象,它是一個ArcObject的子集,也是作為案頭ArcInfo應用建構基礎的軟體組件。
* 作為簡單的非拓撲feature,可以通過ArcSDE API,它遵從開放GIS協會的簡單feature規範。
* 作為單純的行、列和表格,可以通過關聯式資料庫原有的SQL介面。

通過ArcObject擷取資料

擷取地理資料最豐富的層級就是通過geodatabase資料擷取對象。在這個層級,顯示geadatabase全部的結構:拓撲、關係、完整性規 則、行為,還有柵格表示、表面表示和位置表示。你可以在ArcInfo內使用VBA擷取資料,也可以使用Visual C++或任何其他遵從COM規範的開發環境編程來擷取資料。這是一個簡化的UML圖,它是ArcObject中geodatabase資料擷取對象的一部 分。這個模型將在第四章——地理資料結構——深入探討。

擷取簡單feature資料

對於許多空間應用系統來說,擷取以簡單無拓撲feature形式存在的地理資料就足夠了。這一方法特別適合建立整套應用系統—系統中地理資料是關鍵的組成部分,但不是系統關注的焦點。其例子包括裝置管理和交通分析。
ArcSDE提供了一個簡單的feature應用編程介面(API),它遵從開發GIS協會(OGC)的簡單feature規範。
OGC是一個是一個包含了所有主流空間資料供應商的組織,它的目標在於為異構地理資訊系統間空間資訊的自由交換髮展標準的軟體結構。
網路中擁有不同格式地理資料的組織能夠建立一個以簡單feature形式整合了這些資料的應用系統。

ESRI是OGC技術規範的主要貢獻者,而且做到了地理資料的開放交換。

通過SQL擷取資料

地理資訊系統是一個豐富的資料寶庫,這些資料是自然features和facilities,比如交通和公用事業網路。當這些資料以geodatabase收集和管理時,如果不為了地理用途,外部的資料庫應用系統也可以有效地擷取和共用這些資料。
通過使用你的關聯式資料庫原有的SQL介面,你可以建立應用系統從你的geodatabase中挖掘資料,並應用這些資料完成一些任務,比如管理倉庫貨物、處理工單和統計分析。
在 這種視圖下,geodatabase就是一系列的表格、行和列。通過SQL介面,你能夠看到geodatabase內部的資料庫結構,它包含了對象的元數 據表比如網路。這一結構在ArcInfo裡不是直接可見的,並且是通過ArcCatalog的使用者介面管理的。你可以有選擇地更新行的屬性,一行代表一個 feature。但是你一定要小心以免破壞geodatabase的結構。
(轉自ESRI)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.