欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

面向遙感影像數(shù)據(jù)的快速瓦片生成方法與流程

文檔序號:11654363閱讀:705來源:國知局
面向遙感影像數(shù)據(jù)的快速瓦片生成方法與流程

本發(fā)明涉及一種面向遙感影像數(shù)據(jù)的快速瓦片生成方法,屬于地圖生成技術(shù)領(lǐng)域。



背景技術(shù):

隨著地理空間數(shù)據(jù)獲取技術(shù)的發(fā)展,國內(nèi)外許多職能機構(gòu)、研究團體已經(jīng)可以比較便利地獲得較高分辨率的影像地圖。尤其是無人機航拍技術(shù)的突飛猛進,使得獲取縣域、地區(qū)域范圍的高分辨率影像數(shù)據(jù)集成為可能。高分辨率影像數(shù)據(jù)一般以地理分布上連續(xù)、文件存儲上分立的大量相同格式的柵格數(shù)據(jù)存儲在磁盤文件系統(tǒng)中,而數(shù)據(jù)的大規(guī)模特性限制了其在傳統(tǒng)關(guān)系數(shù)據(jù)庫中的高效組織與索引訪問,成為其快速可視化的效率瓶頸。

現(xiàn)階段大規(guī)模柵格數(shù)據(jù)集的可視化通常需要大量的數(shù)據(jù)預(yù)處理時間,主要消耗在影像拼接、構(gòu)建影像金字塔和瓦片金字塔等數(shù)據(jù)可視化準備工作,這段漫長的等待時間往往是高端用戶尤其是應(yīng)急決策部門所不能容忍的。為克服這種準備工作的低效性,瓦片切分技術(shù)應(yīng)運而生,但是,業(yè)界現(xiàn)有的針對大規(guī)模柵格數(shù)據(jù)集的瓦片生成方法效率較低,較少采用并行化的思路,不能有效利用硬件計算資源,已經(jīng)遠不能適應(yīng)當前地理數(shù)據(jù)集規(guī)模日益增大的趨勢。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種面向遙感影像數(shù)據(jù)的快速瓦片生成方法,能夠?qū)崿F(xiàn)大規(guī)模柵格數(shù)據(jù)集瓦片金字塔的快速生成,以支持在地理信息系統(tǒng)中提供大規(guī)模柵格數(shù)據(jù)集的快速瓦片服務(wù),有效提高瓦片生成效率。

按照本發(fā)明提供的技術(shù)方案,所述面向遙感影像數(shù)據(jù)的快速瓦片生成方法,其特征是,包括以下步驟:

(1)影像金字塔構(gòu)建;

(2)基于影像金字塔進行瓦片網(wǎng)格化分割,生成瓦片數(shù)據(jù);

所述瓦片數(shù)據(jù)的生成服務(wù)由瓦片生成服務(wù)模塊完成,瓦片生成服務(wù)模塊主要包括瓦片生成控制器、瓦片生成啟動器和瓦片生成工具;

所述瓦片數(shù)據(jù)生成的過程為:瓦片生成控制器主要負責監(jiān)聽kafka(分布式消息隊列)上發(fā)來的瓦片生成請求,解析瓦片生成請求,根據(jù)瓦片生成請求向yarn(分布式資源調(diào)度系統(tǒng))提交處理作業(yè);瓦片生成啟動器由提交的yarn作業(yè)負責啟動,主要包括啟動瓦片生成工具程序、向yarn注冊并匯報心跳以及向kafka發(fā)送瓦片生成結(jié)果;瓦片生成工具程序由瓦片生成啟動器啟動,負責根據(jù)相應(yīng)的處理請求向spark(大規(guī)模數(shù)據(jù)分布式計算系統(tǒng))提交瓦片生成作業(yè);

所述瓦片處理工具包括并行化瓦片生成模塊,該并行化瓦片生成模塊通過預(yù)分區(qū)的模式將瓦片生成任務(wù)劃分成多個并行處理的小任務(wù),每個小任務(wù)處理影像的一部分。

進一步的,所述瓦片生成控制器包含、任務(wù)提交模塊、任務(wù)監(jiān)控模塊以及結(jié)果發(fā)送模塊;

所述請求接收模塊從kafka接收瓦片生成請求,并解析成瓦片生成任務(wù);

所述任務(wù)提交模塊根據(jù)瓦片生成任務(wù)提交相應(yīng)的yarn作業(yè),包括使用控制參數(shù)設(shè)定yarn作業(yè)的資源描述,傳遞運行參數(shù)給瓦片生成啟動器;

所述任務(wù)監(jiān)控模塊負責周期性向yarn查詢處理任務(wù)的執(zhí)行狀態(tài),當執(zhí)行失敗時調(diào)用處理結(jié)果發(fā)送模塊向kafka發(fā)送任務(wù)執(zhí)行失敗的消息;

所述處理結(jié)果發(fā)送模塊負責向kafka發(fā)送瓦片生成的執(zhí)行結(jié)果。

進一步的,所述瓦片生成啟動器包括啟動模塊、心跳模塊以及報告模塊;

所述啟動模塊負責啟動瓦片生成任務(wù)、啟動心跳模塊以及使用報告模塊向kafka發(fā)送瓦片生成結(jié)果;

所述心跳模塊負責向yarn注冊容器以及周期性的匯報容器的狀態(tài);

所述報告模塊負責根據(jù)工具程序的運行狀態(tài)向kafka發(fā)送最終的執(zhí)行結(jié)果。

進一步的,所述瓦片生成工具還包括spark任務(wù)提交模塊,該spark任務(wù)提交模塊接收瓦片生成啟動器傳遞的運行參數(shù),使用并行化瓦片生成模塊提交瓦片生成的spark作業(yè)。

進一步的,所述并行化瓦片生成模塊并行處理的每個小任務(wù)包括生成金字塔、將影像數(shù)據(jù)生成為瓦片以及將瓦片存儲。

進一步的,所述影像金字塔的構(gòu)建參數(shù)為分辨率倍率、影像層級數(shù)量和影像區(qū)塊粒度。

進一步的,所述步驟(1)影像金字塔構(gòu)建流程為:原始遙感影像作為第0層,計算該層影像分塊方法,并記錄元數(shù)據(jù);計算下一層的影像分辨率倍率,并計算該層影像的像素大小和影像分塊方法,并記錄元數(shù)據(jù);判斷該層影像的數(shù)據(jù)量是否小于影像區(qū)塊粒度,若小于則結(jié)束,否則繼續(xù)計算下一層的數(shù)據(jù)。

進一步的,所述kafka上發(fā)來的瓦片生成請求為json格式的瓦片生成請求。

進一步的,所述瓦片生成請求為一個單層非嵌套的json字符串,瓦片生成請求主要包含必填參數(shù)、結(jié)果隊列名、控制參數(shù)以及運行參數(shù)。

進一步的,所述瓦片生成結(jié)果為一個非嵌套的單層json字符串,包括如下字段:瓦片生成請求的id、返回碼和附帶數(shù)據(jù)。

本發(fā)明具有以下有益效果:

(1)本發(fā)明比業(yè)界現(xiàn)有的針對大規(guī)模柵格數(shù)據(jù)集的瓦片生成方法效率提升了數(shù)倍;

(2)本發(fā)明采用并行化的思路,有效利用硬件計算資源,能夠適應(yīng)當前地理數(shù)據(jù)集規(guī)模日益增大的趨勢;

(3)本發(fā)明在實際工程項目中得到了應(yīng)用,完成了arcgis傳統(tǒng)方案不能勝任的任務(wù),極大程度上地接近了大規(guī)模數(shù)據(jù)集“獲取即可視”的最高技術(shù)指標,為相關(guān)部門基于數(shù)據(jù)集可視化的高效應(yīng)用打好了基礎(chǔ)。

附圖說明

圖1為本發(fā)明所述瓦片生成方法的整體流程圖。

圖2為影像金字塔的結(jié)構(gòu)示意圖。

圖3為影像金字塔的構(gòu)建流程圖。

圖4為瓦片生成服務(wù)模塊的示意圖。

圖5為瓦片生成服務(wù)的過程圖。

圖6為瓦片生成控制器的示意圖。

圖7為瓦片生成服務(wù)交互方式示意圖。

具體實施方式

下面結(jié)合具體附圖對本發(fā)明作進一步說明。

本發(fā)明所述面向遙感影像數(shù)據(jù)的快速瓦片生成方法包括2部分:第一步是影像金字塔構(gòu)建;第二步是基于影像金字塔的瓦片網(wǎng)格化分割。

本發(fā)明的設(shè)計思路為:影像金字塔建立之后要分別對各層數(shù)據(jù)進行網(wǎng)格化分割,分割時要根據(jù)瓦片所處的層級以及所在的行列的不同對瓦片進行唯一編號,這就是瓦片數(shù)據(jù)的生成?;诮鹱炙耐咂蟹滞ǔ2捎盟牟鏄湫问剑匆越鹱炙铐攲訑?shù)據(jù)為基準,依次向下做(2*2)^n瓦片數(shù)量等大小分割,n為金字塔的層級,每個瓦片使用其所擁有的層、行、列號生成一個唯一的編號。最終完成整個金字塔瓦片化。

本發(fā)明所述面向遙感影像數(shù)據(jù)的快速瓦片生成方法的整體流程如圖1所示,包括:

(1)影像金字塔構(gòu)建:

影像金字塔模型是由原始圖像按一定重采樣規(guī)則生成的一個多分辨率的層次數(shù)據(jù)模型,按照一定的倍率,形成多個分辨率層次并將每層數(shù)據(jù)再分割為多個數(shù)據(jù)分塊,以實現(xiàn)遙感數(shù)據(jù)的多層剖分。這樣在顯示低分辨率尺度的影像時可以操作相對少量的數(shù)據(jù),減少系統(tǒng)的吞吐量提高效率。影像金字塔結(jié)構(gòu)如圖2所示。

影像金字塔的構(gòu)建流程如圖3所示。影像金字塔的構(gòu)建參數(shù)為分辨率倍率、影像層級數(shù)量和影像區(qū)塊粒度。原始遙感影像作為第0層,計算該層影像分塊方法,并記錄元數(shù)據(jù)。計算下一層的影像分辨率倍率,并計算該層影像的像素大小和影像分塊方法,并記錄元數(shù)據(jù)。判斷該層影像的數(shù)據(jù)量是否小于影像區(qū)塊粒度,若小于則結(jié)束,否則繼續(xù)計算下一層的數(shù)據(jù)。

(2)基于影像金字塔的瓦片網(wǎng)格化分割:

瓦片數(shù)據(jù)簡介:瓦片數(shù)據(jù)是應(yīng)用地圖瓦片技術(shù)對地圖數(shù)據(jù)進行切片所得到的,其對數(shù)據(jù)的切分規(guī)則是按照固定的若干個比例尺(瓦片層級)和指定圖片尺寸,切成若干行、列的正方形圖片,并以指定的格式保存為圖片文件,再按一定的命名規(guī)則與組織形式存儲到數(shù)據(jù)庫里。瓦片數(shù)據(jù)是改進系統(tǒng)性能的最佳選擇,它通過對地圖數(shù)據(jù)預(yù)先渲染、切片,有效減輕服務(wù)器處理壓力,減少網(wǎng)絡(luò)負載和響應(yīng)延遲。

瓦片數(shù)據(jù)的分割方式:是以固定大小(如512*512)的網(wǎng)格分割。分割方法是按照一定的規(guī)則將大的數(shù)據(jù)分割為規(guī)則(正方形區(qū)域)并且彼此之間沒有重疊的圖像塊,并且給每個塊一個唯一的編號(層、行、列號),從而通過對網(wǎng)格編號索引實現(xiàn)數(shù)據(jù)的檢索。

瓦片生成服務(wù)模塊主要由瓦片生成控制器(controller)、瓦片生成啟動器(launcher)和瓦片生成工具(tool)三部分組成,如圖4所示。

瓦片生成服務(wù)的詳細過程如圖5所示,瓦片生成控制器主要負責監(jiān)聽kafka(分布式消息隊列)上發(fā)來的json格式的瓦片生成請求,解析瓦片生成請求,根據(jù)瓦片生成請求向yarn(分布式資源調(diào)度系統(tǒng))提交處理作業(yè);瓦片生成啟動器由提交的yarn作業(yè)負責啟動,主要職責包括啟動瓦片生成工具程序、向yarn注冊并匯報心跳以及向kafka發(fā)送瓦片生成結(jié)果;瓦片生成工具程序由瓦片生成啟動器啟動,負責根據(jù)相應(yīng)的處理請求向spark(大規(guī)模數(shù)據(jù)分布式計算系統(tǒng))提交瓦片生成作業(yè)。其核心包含spark版的瓦片生成程序,負責瓦片的并行化生成,同時向kafka發(fā)送瓦片的處理進度。

(a)瓦片生成控制器(controller):

瓦片生成控制器(controller)包含、任務(wù)提交模塊、任務(wù)監(jiān)控模塊以及結(jié)果發(fā)送模塊,如圖6所示。

所述請求接收模塊從kafka接收json格式的瓦片生成請求,并解析成瓦片生成任務(wù)。

所述任務(wù)提交模塊根據(jù)瓦片生成任務(wù)提交相應(yīng)的yarn作業(yè),包括使用控制參數(shù)設(shè)定yarn作業(yè)的資源描述,傳遞運行參數(shù)給瓦片生成啟動器。

所述任務(wù)監(jiān)控模塊負責周期性向yarn查詢處理任務(wù)的執(zhí)行狀態(tài),當執(zhí)行失敗時調(diào)用處理結(jié)果發(fā)送模塊向kafka發(fā)送任務(wù)執(zhí)行失敗的消息。

所述處理結(jié)果發(fā)送模塊負責向kafka發(fā)送瓦片生成的執(zhí)行結(jié)果。

(b)瓦片生成啟動器(launcher):

瓦片生成啟動器(launcher)負責執(zhí)行瓦片生成工具對影像進行處理、周期性的向yarn的resourcemanager(資源管理器)發(fā)送心跳報告運行狀態(tài)以及向瓦片生成請求方發(fā)送最終的瓦片生成結(jié)果。瓦片生成啟動器(launcher)包含三個模塊:啟動模塊、心跳模塊以及報告模塊。

所述啟動模塊負責啟動瓦片生成任務(wù)、啟動心跳模塊以及使用報告模塊向kafka發(fā)送瓦片生成結(jié)果。

所述心跳模塊負責向yarn注冊容器以及周期性的匯報容器的狀態(tài)。

所述報告模塊負責根據(jù)工具程序的運行狀態(tài)向kafka發(fā)送最終的執(zhí)行結(jié)果。

(c)瓦片生成工具(tool):

瓦片處理工具(tool)主要包含兩個模塊,并行化瓦片生成模塊和spark任務(wù)提交模塊。

其中并行化瓦片生成模塊是瓦片生成工具的核心,通過預(yù)分區(qū)的模式將瓦片生成任務(wù)劃分成多個可以并行處理的小任務(wù)。每個小任務(wù)處理影像的一部分,包括生成金字塔、將影像數(shù)據(jù)生成為png、jpeg等格式的瓦片以及將瓦片存儲到hbase對應(yīng)的表中。

所述spark任務(wù)提交模塊接收瓦片生成啟動器傳遞的運行參數(shù),使用并行化瓦片生成模塊提交瓦片生成的spark作業(yè)。

(d)瓦片生成服務(wù)的交互方式:

瓦片生成服務(wù)接收用戶通過kafka發(fā)來的json格式的瓦片生成請求(request),返回json格式執(zhí)行結(jié)果(result),如圖7所示。

瓦片生成請求的格式:瓦片生成請求為一個單層非嵌套的json字符串。瓦片生成請求主要包含四種類型的字段,必填參數(shù)、結(jié)果隊列名、控制參數(shù)以及運行參數(shù)。其中必填參數(shù)定義了瓦片生成請求的基本內(nèi)容,包括處理請求id以及使用的工具程序名op;結(jié)果隊列名為處理請求發(fā)送方希望從哪個消息隊列上接受瓦片生成的結(jié)果;控制參數(shù)為提交yarn作業(yè)時需要設(shè)定的參數(shù);運行參數(shù)為瓦片生成過程中需要使用的參數(shù),包括輸入、輸出等類型的參數(shù)。瓦片生成請求的具體設(shè)定如下表1所示。

表1瓦片生成請求格式

瓦片生成結(jié)果的格式:瓦片生成結(jié)果同樣為一個非嵌套的單層json字符串。具體包括如下字段:

id:瓦片生成請求的id;

返回碼code:處理任務(wù)執(zhí)行的返回碼,0表示處理成功,其他表示處理失?。?/p>

附帶數(shù)據(jù):工具程序執(zhí)行的結(jié)果,可為空。

瓦片生成結(jié)果具體格式和字段如下表2所示。

表2瓦片生成執(zhí)行結(jié)果格式

本發(fā)明所述快速瓦片生成方法,設(shè)計了一種自動處理架構(gòu)來完成瓦片生成服務(wù),且在數(shù)據(jù)處理流程中貫徹了并行化思路,實現(xiàn)了大規(guī)模柵格數(shù)據(jù)集瓦片金字塔的快速生成,以支持在地理信息系統(tǒng)中提供大規(guī)模柵格數(shù)據(jù)集的快速瓦片服務(wù),有效提高瓦片生成效率。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
滨海县| 富平县| 太保市| 沂水县| 沂水县| 青神县| 南平市| 庄浪县| 北宁市| 抚远县| 漳平市| 湖口县| 嵊州市| 宜丰县| 天台县| 平遥县| 舟曲县| 兴文县| 大荔县| 芮城县| 武穴市| 阆中市| 察哈| 曲沃县| 信阳市| 阿坝县| 健康| 河西区| 甘孜县| 重庆市| 高尔夫| 盘山县| 临夏市| 许昌市| 岳池县| 广东省| 三明市| 伊春市| 屏南县| 安新县| 华阴市|