本發(fā)明屬于曲面重建
技術領域:
:,尤其涉及一種基于云計算的大規(guī)模曲面重建系統(tǒng)。
背景技術:
::隨著互聯(lián)網(wǎng)時代數(shù)據(jù)量的爆炸式增長,我們面臨著如何存儲、處理這些大數(shù)據(jù),讓大數(shù)據(jù)發(fā)揮其內(nèi)在價值的問題。處理大規(guī)模運算問題并不等價于小規(guī)模運算的簡單線性累加,而是運用新的思路、算法去高效率解決他們。云計算技術在眾多解決方案中脫穎而出。云計算是效用計算、分布式計算、并行計算和網(wǎng)格計算的進一步升華發(fā)展。云計算是指一個獨特的計算環(huán)境,它的目的是提供遠程可擴展、可測量的IT資源——包括硬件服務、基礎架構(gòu)服務、平臺服務、軟件服務、存儲系統(tǒng)服務等。使得用戶可以方便地獲取資源,進行高效計算。2000年之前屬于云計算的前期積累階段,在這個階段里,云計算的相關技術,例如虛擬化、分布式等技術逐漸成熟,云計算的概念也逐漸形成。2005年,美國Amazon公司推出AWS,以Web的形式向互聯(lián)網(wǎng)用戶提供基礎設施云服務,是將云計算概念落地并商業(yè)化的先驅(qū)。美國Microsoft公司也推出了自己的云服務平臺WindowsAzure,這一平臺將轉(zhuǎn)變傳統(tǒng)的數(shù)據(jù)中心環(huán)境,幫助各個公司深入了解在任何地點存儲的數(shù)據(jù),支持它們開發(fā)廣泛的現(xiàn)代商業(yè)應用程序。美國Google公司則發(fā)表專著說明了公司內(nèi)部設計的TheGoogleFileSystem(GFS)、Mapreduce編程模型以及Bigtable。后來這三項技術被稱為Google的三駕馬車,足以見得它們在當下云計算服務里面的重要地位。目前,國內(nèi)外的公司已經(jīng)利用現(xiàn)有技術開發(fā)過不少能夠進行曲面重建的商業(yè)軟件。例如德國西門子(Siemens)公司開發(fā)的NX,是一款高端的計算機輔助設計軟件,主要提供靈活的數(shù)值求解偏微分方程功能,進行無結(jié)構(gòu)網(wǎng)格的自適應加密;由法國達索系統(tǒng)(DassaultSystemesS.A.)公司開發(fā)的CATIA,主要利用NURBS作為平面算法核心進行計算機輔助設計;由法國斯倫貝榭(Schlumberger)公司開發(fā)的Petrel軟件是專門針是三維地質(zhì)建模的地球物理專業(yè)軟件,可以進行各種曲面模擬現(xiàn)實及虛擬現(xiàn)實;由美國EDS公司開發(fā)的Imageware,具有強大的點云處理能力、曲面編輯能力和A級曲面的構(gòu)建能力。由中國金雙狐油氣技術有限公司開發(fā)的金雙狐地質(zhì)成圖系統(tǒng),可以完成基本的等值線繪制及圖件處理功能。云計算(CloudComputing)是分布式計算(DistributedComputing)、并行計算(ParallelComputing)、效用計算(UtilityComputing)、網(wǎng)絡存儲(NetworkStorageTechnologies)、虛擬化(Virtualization)、負載均衡(LoadBalance)、熱備份冗余(HighAvailable)等傳統(tǒng)計算機和網(wǎng)絡技術發(fā)展融合的產(chǎn)物??蛻舳硕x運算任務,將繁雜的計算過程交給擁有強大計算能力的云端服務器,服務器運算完畢以后將簡潔的結(jié)果交還給客戶端,這便是云計算的整個過程。從用戶的角度講,通過云計算過程,能夠1)節(jié)省費用。通常用戶不需要單獨購買硬件配置環(huán)境,購買的只是運算服務。這種服務可以按任務量大小定制化購買;2)節(jié)省資源。一個云計算中心可以為多個用戶進行運算,利用時分復用機制,提高了效率的同時也節(jié)省了硬件及能源消耗;3)后臺化。用戶無需關心計算任務在后臺的運行過程,只需要完成任務交付,接收輸出結(jié)果即可。另外,從系統(tǒng)角度講,云計算系統(tǒng)本身也具有很多單機系統(tǒng)沒有的優(yōu)勢。例如1)虛擬化和自動化;2)服務器、存儲介質(zhì)等可以方便替換;3)所有資源都在云端進行管理;4)高度的計算彈性。這些特性使得云計算能夠很好解決目前單機系統(tǒng)計算能力不足的問題,尤其在企業(yè)級的大型計算任務上得到了很好的應用,例如互聯(lián)網(wǎng)內(nèi)容服務、金融數(shù)據(jù)服務、通信服務以及氣象服務等。云計算按部署模型可以分為公有云、私有云和混合云三種類型。公有云主要是商業(yè)化公司進行開發(fā)和維護,公有的概念是指全世界任何地方的組織或個人,都可以通過購買授權的方式來獲取公有云平臺上的計算資源。利用規(guī)模效應,公有云使得用戶極大程度地降低了IT成本。私有云是指只開放給某一特定范圍使用的云計算服務,例如企業(yè)私有云,僅僅企業(yè)內(nèi)部的部門可以使用私有云上面的資源和服務,與外部網(wǎng)絡有防火墻隔離。私有云使得企業(yè)的控制權更高,獲得更好的保密性。混合云,顧名思義,融合了私有云和公有云。用戶對于不同的數(shù)據(jù),可能會選擇不同的部署模型。例如,將涉密內(nèi)部數(shù)據(jù)的處理工作放到私有云平臺上,而普通的計算則可以放到公有云平臺上。企業(yè)將兩套平臺融合到一個架構(gòu)上,形成混合云。石油勘探行業(yè)涉及的地質(zhì)數(shù)據(jù)關系到企業(yè)盈利壁壘和國家資源安全,數(shù)據(jù)是涉密數(shù)據(jù),如果直接購買公有云服務,將數(shù)據(jù)和計算都托付給第三方機構(gòu)或企業(yè),會產(chǎn)生數(shù)據(jù)泄露的危險。因此,要運用云計算技術解決大規(guī)模地質(zhì)曲面重建問題,則需要搭建一個簡單、易用的私有云計算環(huán)境。地質(zhì)曲面最重要的概念就是斷層。在地殼運動中,板塊與板塊之間經(jīng)常發(fā)生相互的擠壓、碰撞。一旦運動中形成的張力超過了巖層的承受限度,巖層作為剛度較高的物體將產(chǎn)生斷裂,斷裂后如果板塊運動還在繼續(xù),那么在斷裂處會進一步發(fā)生位移,造成巖層錯位的發(fā)生。地質(zhì)學家把這種地質(zhì)現(xiàn)象稱為斷層。斷層包含了斷層面、斷層線和斷層盤三個基本要素。斷裂后,巖層的裸露面稱為斷層面,巖層發(fā)生斷裂的邊緣線稱為斷層線,斷裂處一左一右、一上一下的兩個同質(zhì)巖層稱為斷層盤,根據(jù)空間位置關系,通常分為斷層上盤和斷層下盤。巖層因受力情況不同而發(fā)生的斷裂形式不同,地質(zhì)學家通常根據(jù)斷層形態(tài)將斷層分為三種類型:正斷層,逆斷層和走滑斷層。正斷層(NormalFault)是巖層受到板塊張力形成的。由于巖層承受不了兩側(cè)的外拉力量,使得巖層從中間斷開,斷層上下盤朝相互背離的方向運動,通常還伴有一定程度的上下運動。正斷層從俯視的角度看,巖層在斷裂處形成了一道縫隙,斷層上下盤分別位于縫隙的左右兩側(cè),相當于在巖層上挖了一個空洞。逆斷層(ReverseFault)是巖層受到板塊壓力形成的。由于巖層承受不了兩側(cè)的內(nèi)推力量,使得巖層從中間斷開,斷層上下盤朝相互靠攏的方向運動,通常還伴有一定程度的上下運動。逆斷層從俯視的角度看,巖層在斷裂處發(fā)生了重疊,上盤巖層直接蓋在了下盤巖層上方。走滑斷層(Strike-SlipFault)是巖層受到板塊剪切力形成的。剪切力是指一對距離很近、大小相近又指向相反的外力。由于巖層承受不了兩側(cè)的反扭力量,使得巖層在剪切力中點斷開,發(fā)生平移錯位。走滑斷層從俯視角度看,斷裂處是一條線。由于目前的地震勘探手段很難精準判定走滑斷層。隨著計算機輔助設計與地質(zhì)勘探技術的發(fā)展。在石油、天然氣等礦物能源勘探中,大量運用了曲面重建。曲面重建技術是逆向工程的一個重要分支,通過有限的數(shù)據(jù)點,還原出最接近實際情況的曲面,是曲面重建的主要目的。現(xiàn)今,勘探技術的提升使得地質(zhì)數(shù)據(jù)更加精細,地質(zhì)勘探的廣度也不斷加大,鑒于約束曲面重建的復雜性,以及石油勘探企業(yè)對于曲面重建的效率和精度要求不斷提高,現(xiàn)有的算法和計算資源已經(jīng)沒有能力處理如此復雜龐大的數(shù)據(jù)。技術實現(xiàn)要素:本發(fā)明的發(fā)明目的是:為了解決現(xiàn)有技術存在的以上問題,本發(fā)明提出了一種通過分布式、并行化地處理數(shù)據(jù),高精度,高效率完成大規(guī)模曲面重建任務的基于云計算的大規(guī)模曲面重建系統(tǒng)。本發(fā)明的技術方案是:一種基于云計算的大規(guī)模曲面重建系統(tǒng),包括部署有Hadoop框架的云計算平臺,所述云計算平臺包括主節(jié)點及從節(jié)點,所述從節(jié)點以心跳包的形式通過LAN與主節(jié)點通信連接;所述主節(jié)點用于對原始勘探數(shù)據(jù)進行切割、任務啟動、跟蹤和調(diào)度及曲面重建效果顯示,其部署有Hadoop客戶端、NameNode組件及JobTracker組件,所述Hadoop客戶端用于根據(jù)用戶指令與其它組件進行通信并完成曲面重建結(jié)果的處理,所述NameNode組件用于對HDFS文件系統(tǒng)中文件的元數(shù)據(jù)進行管理、維護HDFS文件系統(tǒng)的目錄樹并記錄文件塊被保存位置,所述JobTracker組件用于分發(fā)MapReduce任務至各個從節(jié)點;所述從節(jié)點用于進行數(shù)據(jù)存儲和分塊曲面重建,其部署有DataNode組件和TaskTracker組件,所述DataNode組件用于存儲文件塊的元數(shù)據(jù)并根據(jù)預設周期將存儲的文件塊的元數(shù)據(jù)發(fā)送至NameNode組件,所述TaskTracker組件用于接收JobTracker組件發(fā)送的MapReduce任務、讀取DataNode組件存儲的數(shù)據(jù)并進行處理、將處理結(jié)果返回至Hadoop客戶端。進一步地,所述從節(jié)點包括數(shù)據(jù)預處理模塊、網(wǎng)格構(gòu)建模塊、斷層投影模塊、Delaunay拓撲連接模塊、插值平滑模塊及數(shù)據(jù)存儲模塊;所述數(shù)據(jù)預處理模塊用于對層位點的冗余點進行刪除并測線組段,所述網(wǎng)格構(gòu)建模塊用于網(wǎng)格點生成及屬性賦初值,所述斷層投影模塊用于多邊形分段及分段投影,所述Delaunay拓撲連接模塊用于2D拓撲生成及2.5D拓撲恢復,所述插值平滑模塊用于網(wǎng)格點插值、斷層點插值及整體平滑,所述數(shù)據(jù)存儲模塊用于保存曲面數(shù)據(jù)。進一步地,所述Hadoop框架的MapReduce任務包括分塊MapReduce和網(wǎng)格MapReduce;所述分塊MapReduce與網(wǎng)格MapReduce為嵌套式任務,分塊MapReduce中包含網(wǎng)格MapReduce。進一步地,所述分塊MapReduce具體為基于Delaunay三角網(wǎng)進行大規(guī)模曲面拓撲重建,將地震數(shù)據(jù)劃分為塊,對單塊進行小范圍的曲面重建,在所有塊的曲面恢復完成后再進行拼接處理,將單塊進行組合形成整個大規(guī)模的空間三維曲面拓撲。進一步地,所述分塊MapReduce包括分塊map任務和分塊reduce任務;所述分塊map任務具體為針對單塊曲面進行重構(gòu),所述分塊reduce任務具體為將重構(gòu)好的單塊曲面進行拼接。進一步地,所述網(wǎng)格MapReduce具體為對單塊小范圍的曲面重建時,通過構(gòu)建虛擬的網(wǎng)格點,將塊內(nèi)Delaunay劃分為了按網(wǎng)格連接拓撲的任務。進一步地,所述網(wǎng)格MapReduce包括網(wǎng)格map任務和網(wǎng)格reduce任務;所述網(wǎng)格map任務具體為網(wǎng)格內(nèi)Delaunay三角拓撲連接任務,所述網(wǎng)格reduce任務具體為合并網(wǎng)格、形成塊級別的Delaunay拓撲結(jié)構(gòu)。進一步地,所述分塊MapReduce與網(wǎng)格MapReduce為嵌套式任務具體為將分塊map任務和網(wǎng)格map任務重構(gòu)為一個前序MapReduce任務,將分塊reduce任務和網(wǎng)格reduce任務重構(gòu)為一個后序MapReduce任務。進一步地,所述分塊MapReduce與網(wǎng)格MapReduce為嵌套式任務具體為將分塊map任務和網(wǎng)格map任務集成為一個map任務,將分塊reduce任務和網(wǎng)格reduce任務集成為一個reduce任務。進一步地所述云計算平臺還包括特殊從節(jié)點,所述特殊從節(jié)點部署有SecondaryNameNode組件、DataNode組件及TaskTracker組件,所述SecondaryNameNode組件用于對主節(jié)點進行備份。本發(fā)明具有以下有益效果:1、本發(fā)明通過在曲面重建系統(tǒng)中引入云計算的方式,利用云計算運算能力強、系統(tǒng)并行程度高等特點,極大地提升了曲面重建系統(tǒng)的曲面重建能力;2、本發(fā)明提出的由主節(jié)點和從節(jié)點組成的計算功能體,具有可擴展性強,資源利用合理,耦合度低等優(yōu)點;3、本發(fā)明提出的分塊Mapreduce及網(wǎng)格Mapreduce流程,通過將數(shù)據(jù)點切分成塊或者以網(wǎng)格形式組織,計算任務拆分為小粒度并行,從而解決了單機內(nèi)存和計算能力不足及曲面拓撲合并等問題。附圖說明圖1是本發(fā)明的基于云計算的大規(guī)模曲面重建系統(tǒng)結(jié)構(gòu)示意圖。具體實施方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,為本發(fā)明的基于云計算的大規(guī)模曲面重建系統(tǒng)結(jié)構(gòu)示意圖。本發(fā)明的基于云計算的大規(guī)模曲面重建系統(tǒng)將Hadoop分布式計算框架部署在服務器集群上,從而形成一個小型的私有云計算平臺。本發(fā)明的云計算平臺由主節(jié)點(Master)和從節(jié)點(Slave)組成,通過高速局域網(wǎng)絡(LocalAreaNetwork,LAN)連接在一起進行相互通信。從節(jié)點以心跳包的形式與主節(jié)點進行通信,一方面用于確認JobTracker組件的有效性,另一方面用于通知主節(jié)點當前從節(jié)點可接受任務數(shù)。從而解決了目前基于地質(zhì)數(shù)據(jù)更加精細,地質(zhì)勘探的廣度不斷加大,單臺計算機已經(jīng)無法滿足要求精度下的復雜計算密集型大規(guī)模曲面重建任務的問題。本發(fā)明的主節(jié)點具體用于對原始勘探數(shù)據(jù)進行切割、任務啟動、跟蹤和調(diào)度及最終效果顯示,是系統(tǒng)的核心控制部分;主節(jié)點部署有Hadoop框架中的Hadoop客戶端、NameNode組件及JobTracker組件,在系統(tǒng)中負責用戶交互、節(jié)點管理、數(shù)據(jù)調(diào)度以及三維成圖。本發(fā)明的主節(jié)點中Hadoop客戶端作為用戶交互部分向用戶提供一個簡單易用的界面,通過這個界面,用戶可以選擇原始構(gòu)造數(shù)據(jù)路徑,設置曲面重建參數(shù)。原始構(gòu)造數(shù)據(jù)包括層位點數(shù)據(jù)、斷層點數(shù)據(jù)和斷層多邊形數(shù)據(jù),曲面重建參數(shù)包括分塊量級、塊內(nèi)小網(wǎng)格分辨率、深度值插值的搜索范圍和平滑控制點的搜索范圍等。本發(fā)明的主節(jié)點中NameNode組件負責整個HDFS文件系統(tǒng)中的文件的元數(shù)據(jù)的保管和管理。NameNode組件自己本身并不存儲數(shù)據(jù),而是維護HDFS文件系統(tǒng)的目錄樹,記錄文件塊被保存在哪臺機器上。所有的DataNode組件均可以與NameNode組件通信,獲取到所需處理數(shù)據(jù)的位置,然后對這些文件進行讀取、拷貝、移動或者刪除操作。本發(fā)明的主節(jié)點中JobTracker組件負責分發(fā)MapReduce任務到各個從節(jié)點。在云計算領域,一條核心概念是移動計算比移動數(shù)據(jù)更劃算,JobTracker組件會依照以下兩個原則來分發(fā)任務:1)最理想的情況是接受任務的機器自身存儲了所需的數(shù)據(jù)塊;2)至少保證機器所需的數(shù)據(jù)塊在當前機器所處的機架上。一個應用請求的計算,離它操作的數(shù)據(jù)越近就越高效,在數(shù)據(jù)達到海量級別的時候更是如此,這樣的設計大大提升了系統(tǒng)效率。在數(shù)據(jù)處理完成后,用戶需要的最終效果是三維地質(zhì)曲面圖。因此本發(fā)明的主節(jié)點還集成了三維成圖功能,通過加載OpenGL繪圖模塊,利用空間三角網(wǎng)拓撲數(shù)據(jù)進行三維點、邊、面的繪制與填充,對大規(guī)模地質(zhì)曲面進行可視化。本發(fā)明的從節(jié)點具體用于進行分塊的曲面重建以及分塊曲面的拼接平滑,并最終形成大規(guī)模的曲面數(shù)據(jù),是系統(tǒng)的核心計算部分。從節(jié)點部署有DataNode組件和TaskTracker組件,在系統(tǒng)中負責數(shù)據(jù)存儲和分塊曲面重建工作。本發(fā)明的從節(jié)點中DataNode組件是文件存儲的基本單元,它存儲文件塊在本地文件系統(tǒng)中,保存了文件塊的元數(shù)據(jù),同時周期性的將其所存儲的文件塊的信息發(fā)送給NameNode組件。各個DataNode組件在保存?zhèn)浞輸?shù)據(jù)時相互之間也會進行通信。本發(fā)明的從節(jié)點中TaskTracker組件用于接受主節(jié)點的JobTracker組件發(fā)送來的Map、Reduce以及Shuffle任務。每個TaskTracker組件都配置了一個Slot集合,這個集合表示了當前DataNode組件可以接受的任務數(shù)。TaskTracker組件運行獨立的JVM進程來處理實際的計算任務,這樣保證了任務失敗不會導致從節(jié)點的整體失效。從節(jié)點自身監(jiān)視這些進程的運行情況,捕獲退出代碼以及輸出。本發(fā)明的從節(jié)點包括數(shù)據(jù)預處理模塊、網(wǎng)格構(gòu)建模塊、斷層投影模塊、Delaunay拓撲連接模塊、插值平滑模塊及數(shù)據(jù)存儲模塊,從而實現(xiàn)分塊曲面重建功能;所述數(shù)據(jù)預處理模塊用于對重建數(shù)據(jù)中的冗余點進行刪除并測線組段,所述網(wǎng)格構(gòu)建模塊用于網(wǎng)格點生成及屬性賦初值,所述斷層投影模塊用于多邊形分段及分段投影,所述Delaunay拓撲連接模塊用于2D拓撲生成及2.5D拓撲恢復,所述插值平滑模塊用于網(wǎng)格點插值、斷層點插值及整體平滑,所述數(shù)據(jù)存儲模塊用于保存曲面數(shù)據(jù)。數(shù)據(jù)預處理模塊、網(wǎng)格構(gòu)建模塊、斷層投影模塊、Delaunay拓撲連接模塊、插值平滑模塊及數(shù)據(jù)存儲模塊均以多級嵌套Mapreduce的形式組織起來。如表1所示,為本發(fā)明的系統(tǒng)架構(gòu)設計表。本發(fā)明的主節(jié)點部署有Hadoop客戶端、NameNode組件及JobTracker組件,當需要直接進行計算時,也可以同時部署TaskTracker組件和DataNode組件;從節(jié)點部署有DataNode組件和TaskTracker組件;本發(fā)明還包括特殊從節(jié)點,特殊從節(jié)點部署有SecondaryNameNode組件、DataNode組件及TaskTracker組件。表1.本發(fā)明的系統(tǒng)架構(gòu)設計表本發(fā)明的系統(tǒng)整體從層次上分為用戶層、管理層和任務層三個層次。只有發(fā)起云計算任務的節(jié)點包含用戶層,其上面部署Hadoop客戶端,自動成為云計算系統(tǒng)的主節(jié)點。Hadoop客戶端主要提供用戶交互功能,并根據(jù)用戶的指令,與下層模塊進行指令傳達與其他通信,執(zhí)行任務并完成回傳結(jié)果的處理,如可視化等。管理層位于用戶層的下方,NameNode組件接收用戶層傳來的任務信息,維護HDFS文件系統(tǒng)的目錄樹,JobTracker組件根據(jù)文件位置和任務基本信息,進行任務的劃分與調(diào)度,將細分的任務指令進一步傳給任務層。另外,系統(tǒng)設計中特殊從節(jié)點可以包含一個SecondaryNameNode以提升魯棒性,為了節(jié)省資源,這個模塊可以直接部署到一個從節(jié)點上面,即作為特殊從節(jié)點。本發(fā)明的任務執(zhí)行部分都由處于最底層的任務層完成。在任務層上的每個節(jié)點都包含TaskTracker組件和DataNode組件。TaskTracker組件接收JobTracker組件傳來的任務信息,讀取DataNode組件里面的數(shù)據(jù),完成對數(shù)據(jù)的處理工作,并將最后的結(jié)果又返回給Hadoop客戶端,具體的形式可以是寫在HDFS文件系統(tǒng)上面也可以是直接回寫到主節(jié)點的硬盤上面。為了解決單機內(nèi)存和計算能力不足等問題,本發(fā)明的Hadoop框架的MapReduce任務包括分塊MapReduce和網(wǎng)格MapReduce;所述分塊MapReduce與網(wǎng)格MapReduce為嵌套式任務,分塊MapReduce中包含網(wǎng)格MapReduce。它們的執(zhí)行順序是:分塊Mapper、網(wǎng)格Mapper、網(wǎng)格Reducer、分塊Reducer。當存在多個Mapreduce任務相互依賴,前一個任務的輸出作為后一個任務的輸入時,最常見的實現(xiàn)方式是鏈式執(zhí)行。它們的任務執(zhí)行流程通常是:Mapper1、Reducer1、Mapper2、Reducer2。本發(fā)明的嵌套式任務可以通過以下兩種方式來具體實現(xiàn):1)任務重構(gòu):將分塊map任務和網(wǎng)格map任務重構(gòu)為一個前序Mapreduce任務,將網(wǎng)格reduce任務和分塊reduce任務重構(gòu)為一個后序Mapreduce任務;2)任務集成:將分塊map任務和網(wǎng)格map任務集成為一個map任務,將網(wǎng)格reduce任務和分塊reduce任務集成為一個reduce任務,系統(tǒng)將它們視為一個Mapreduce任務運行。在分塊MapReduce中,本發(fā)明基于Delaunay三角網(wǎng)進行大規(guī)模曲面拓撲重建,將地震數(shù)據(jù)劃分為塊,對單塊進行小范圍的曲面重建,在所有塊的曲面恢復完成后再進行拼接處理,將單塊進行組合形成整個大規(guī)模的空間三維曲面拓撲。分塊MapReduce包括分塊map任務和分塊reduce任務;所述分塊map任務具體為針對單塊曲面進行重構(gòu),所述分塊reduce任務具體為將重構(gòu)好的單塊曲面進行拼接。分塊MapReduce的處理流程具體為:輸入層位點數(shù)據(jù)、斷層點數(shù)據(jù)及多邊形數(shù)據(jù);切分ID為1的塊數(shù)據(jù)至ID為n的塊數(shù)據(jù);執(zhí)行分塊map任務進行曲面重建,得到ID為i的曲面數(shù)據(jù);執(zhí)行分塊reduce任務進行曲面拼接,得到大規(guī)模曲面數(shù)據(jù);輸出大規(guī)模曲面數(shù)據(jù)。本發(fā)明采用分片線性曲面重建方法進行大規(guī)模地質(zhì)曲面重建,對曲面的分片剖分方式是Delaunay三角剖分,這里的Delaunay三角網(wǎng)為本領域公知常識,本發(fā)明不做贅述。本發(fā)明中分塊Mapreduce的數(shù)據(jù)基本單元是小的地形塊;首先Hadoop客戶端會根據(jù)用戶指定路徑讀取層位點數(shù)據(jù)、斷層點數(shù)據(jù)和斷層多邊形數(shù)據(jù)文件;對于原始層位數(shù)據(jù),將它們解析為<測線ID,測線點>形式的鍵值對;下一步,主節(jié)點將對每條測線進行逐一處理:根據(jù)用戶設置的分塊量級,把每條測線上的點映射到不同的塊中,每個塊形成一個<塊ID,原始點>形式的鍵值對,并且把這個信息存儲到文件里;對于斷層信息,為了保證其完整性,不能直接根據(jù)塊邊界切分斷層多邊形的邊或斷層點。本發(fā)明的處理方法是判定哪些斷層點歸屬于當前塊,只要有一個斷層點處于當前塊內(nèi),則把該斷層的全部信息放入該塊。最終每個塊的數(shù)據(jù)都由一個文件存儲,它們都是<塊ID,原始點+斷層信息>形式的鍵值對,這些文件將被推送到HDFS文件系統(tǒng)上。隨后分塊Mapper會根據(jù)分到的任務,從HDFS文件系統(tǒng)上讀取指定塊數(shù)據(jù),進行層位點數(shù)據(jù)預處理、網(wǎng)格生成、斷層投影、Delaunay空間拓撲連接與恢復、網(wǎng)格點插值與平滑等步驟,對每個塊進行分塊曲面重建。最終輸出<塊ID,重建點>形式的鍵值對,作為每個塊的地形數(shù)學表示,這些數(shù)據(jù)也會被存儲到HDFS文件系統(tǒng)中。本發(fā)明中分塊Reducer接受分塊Mapper處理后的數(shù)據(jù),它把所有分塊Mapper輸出的<塊ID,重建點>鍵值對讀入,按照分塊的邏輯位置關系,根據(jù)一定的拼接規(guī)則拼接起來,還原大規(guī)模曲面地形數(shù)據(jù)。分塊Reducer最重要的是拼接時保證相鄰塊的邊界一致性,并且結(jié)合周圍點進行平滑,不至于顯得突兀,最終處理完成的數(shù)據(jù)以文件的形式寫入到HDFS文件系統(tǒng)或者主節(jié)點的網(wǎng)絡硬盤中,供用戶進行后續(xù)流程的處理。在網(wǎng)格MapReduce中,本發(fā)明對單塊小范圍的曲面重建時,通過構(gòu)建虛擬的網(wǎng)格點,將塊內(nèi)Delaunay劃分為了按網(wǎng)格連接拓撲的任務。網(wǎng)格MapReduce包括網(wǎng)格map任務和網(wǎng)格reduce任務;所述網(wǎng)格map任務具體為網(wǎng)格內(nèi)Delaunay三角拓撲連接任務,所述網(wǎng)格reduce任務具體為合并網(wǎng)格、形成塊級別的Delaunay拓撲結(jié)構(gòu)。這里的拓撲是2.5D的,含有多重點、多重邊信息。網(wǎng)格MapReduce的處理流程具體為:輸入分塊網(wǎng)格數(shù)據(jù);切分ID為1的網(wǎng)格數(shù)據(jù)至ID為m*n的網(wǎng)格數(shù)據(jù);執(zhí)行網(wǎng)格map任務進行Delaunay三角拓撲連接,得到ID為i的網(wǎng)格拓撲;執(zhí)行網(wǎng)格reduce任務進行2.5D恢復,得到分塊拓撲;輸入分塊拓撲數(shù)據(jù)。本發(fā)明中網(wǎng)格Mapreduce的數(shù)據(jù)基本單元是小網(wǎng)格,首先控制程序?qū)⑨槍Ξ斍疤幚淼膲K生成網(wǎng)格,網(wǎng)格的范圍由塊內(nèi)點數(shù)據(jù)的最大最小X,Y值確定,然后橫縱均勻切分,因此每個網(wǎng)格都是一個規(guī)整的矩形單元。有了網(wǎng)格線后,將塊內(nèi)所有的斷層投影到小網(wǎng)格的邊上,相交的位置稱為斷層投影點,最后的數(shù)據(jù)單元內(nèi)包含網(wǎng)格頂點數(shù)據(jù)和斷層投影點數(shù)據(jù)。每個網(wǎng)格的數(shù)據(jù)都以<網(wǎng)格ID,點數(shù)據(jù)>形式的鍵值對存儲在文件里面,這些文件將被推送到HDFS文件系統(tǒng)上。網(wǎng)格Mapper讀取HDFS文件系統(tǒng)中的網(wǎng)格數(shù)據(jù),對網(wǎng)格內(nèi)所有點數(shù)據(jù)采用分治法進行Delaunay三角剖分,構(gòu)建Delaunay三角網(wǎng),然后以文件的形式存儲三角網(wǎng)。網(wǎng)格Mapper輸出<網(wǎng)格ID,拓撲結(jié)構(gòu)>形式的鍵值對,作為每個網(wǎng)格的拓撲數(shù)學表示,這些數(shù)據(jù)也會被存儲到HDFS文件系統(tǒng)中。本發(fā)明中網(wǎng)格Reducer接受網(wǎng)格Mapper處理后的數(shù)據(jù),它把所有網(wǎng)格Mapper輸出的<網(wǎng)格ID,拓撲結(jié)構(gòu)>鍵值對讀入,按照網(wǎng)格與當前Delaunay凸包的邏輯位置關系進行Delaunay拓撲合并,合并的目的是生成2.5D的空間Delaunay三角網(wǎng),處理算法主要涉及重合邊的合并以及多重邊的分離和多重三角形的構(gòu)建;最后,網(wǎng)格Reducer輸出<塊ID,Delaunay拓撲>形式的鍵值對,寫入到HDFS文件系統(tǒng)中,供后續(xù)的流程處理。本領域的普通技術人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。本領域的普通技術人員可以根據(jù)本發(fā)明公開的這些技術啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。當前第1頁1 2 3 當前第1頁1 2 3