一種緩存數(shù)據(jù)預(yù)加載、加載方法及裝置制造方法
【專利摘要】本申請(qǐng)?zhí)峁┮环N緩存數(shù)據(jù)預(yù)加載、加載方法及裝置,將地震數(shù)據(jù)通過八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),通過判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù),當(dāng)是時(shí),則計(jì)算該可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先級(jí)從高到低的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存。本申請(qǐng)通過計(jì)算可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先級(jí)從高到底的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存,有效保證了可視區(qū)域運(yùn)動(dòng)過程中,緩存中的數(shù)據(jù)可以在較大程度上包含當(dāng)前可視區(qū)域所要顯示的數(shù)據(jù),進(jìn)而使得在地震數(shù)據(jù)可視化過程中,保證可視化效率。
【專利說明】一種緩存數(shù)據(jù)預(yù)加載、加載方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及對(duì)三維地震數(shù)據(jù)的可視化【技術(shù)領(lǐng)域】,特別是涉及一種緩存數(shù)據(jù)預(yù)加 載、加載方法及裝置。
【背景技術(shù)】
[0002] 地震方法是目前進(jìn)行油氣勘測(cè)的主要方法,地震數(shù)據(jù)的可視化是地震勘測(cè)過程中 的重要步驟,隨著地震數(shù)據(jù)采集設(shè)備和技術(shù)的進(jìn)步,地震數(shù)據(jù)的規(guī)模越來越大。目前,一個(gè) 三維地震數(shù)據(jù)經(jīng)常能夠達(dá)到幾十上百GB的規(guī)模,這種數(shù)據(jù)量已經(jīng)大大超過了普通計(jì)算機(jī) 的內(nèi)存大小,因此,對(duì)于大規(guī)模的地震數(shù)據(jù)往往難以載入內(nèi)存進(jìn)行實(shí)時(shí)處理。
[0003] 現(xiàn)有技術(shù)地震數(shù)據(jù)通常通過八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),并預(yù)先在內(nèi)存中建立緩 存,當(dāng)用戶采用基于可視化區(qū)域漫游的交互方式進(jìn)行地震數(shù)據(jù)的可視化時(shí),首先根據(jù)可視 區(qū)域經(jīng)過的地震數(shù)據(jù)的數(shù)據(jù)塊生成加載鏈表,并在內(nèi)存的緩存中進(jìn)行檢索,判斷緩存中是 否存在與加載鏈表中各個(gè)數(shù)據(jù)塊對(duì)應(yīng)的數(shù)據(jù),并根據(jù)緩存中的數(shù)據(jù)實(shí)現(xiàn)可視化過程。
[0004] 但是,通過研究發(fā)現(xiàn),現(xiàn)有技術(shù)在地震數(shù)據(jù)可視化過程中,當(dāng)緩存中的數(shù)據(jù)通常不 能在較大程度上包含可視化過程中可視區(qū)域所要顯示的數(shù)據(jù)時(shí),往往會(huì)導(dǎo)致可視化效率降 低的問題。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本申請(qǐng)?zhí)峁┮环N緩存數(shù)據(jù)預(yù)加載、加載方法及裝置,以使得在地震數(shù)據(jù) 可視化過程中,有效保證可視化效率。
[0006] 為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供的技術(shù)方案如下:
[0007] -種緩存數(shù)據(jù)預(yù)加載方法,地震數(shù)據(jù)通過八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),包括:
[0008] 當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí),獲取所述可視區(qū)域的 運(yùn)動(dòng)軌跡;
[0009] 利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù) 加載鏈表;
[0010] 按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載 至緩存。
[0011] 優(yōu)選的,所述獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡,包括:
[0012] 依據(jù)用戶當(dāng)前鼠標(biāo)點(diǎn)擊位置獲取所述可視區(qū)域的移動(dòng)平面方程;
[0013] 獲取當(dāng)前所述可視區(qū)域位置;
[0014] 分別獲取位于當(dāng)前所述可視區(qū)域位置之前的一個(gè)時(shí)間步以及兩個(gè)時(shí)間步上的可 視區(qū)域位置;
[0015] 通過二次函數(shù)在所述移動(dòng)平面方程對(duì)應(yīng)的移動(dòng)平面上擬合各個(gè)所述可視區(qū)域位 置得到所述可視區(qū)域的運(yùn)動(dòng)軌跡。
[0016] 優(yōu)選的,預(yù)先設(shè)置有節(jié)點(diǎn)數(shù),
[0017] 所述利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生 成預(yù)加載鏈表,包括:
[0018] 利用所述運(yùn)動(dòng)軌跡,獲取所述可視區(qū)域的中心點(diǎn)待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn), 其中各個(gè)所述節(jié)點(diǎn)的個(gè)數(shù)等于所述節(jié)點(diǎn)數(shù);
[0019] 根據(jù)所述中心點(diǎn)待經(jīng)過的各個(gè)節(jié)點(diǎn)計(jì)算所述可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè) 節(jié)點(diǎn);
[0020] 利用所述可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表。
[0021] 優(yōu)選的,所述按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的 數(shù)據(jù)預(yù)加載至緩存,包括:
[0022] 計(jì)算所述預(yù)加載鏈表中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的優(yōu)先級(jí);
[0023] 按照優(yōu)先級(jí)從高到低的順序逐個(gè)對(duì)所述節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
[0024] 優(yōu)選的,當(dāng)判斷得到所述緩存中的數(shù)據(jù)不包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù) 時(shí),該方法還包括:
[0025] 響應(yīng)接收到的常規(guī)加載請(qǐng)求,停止所述緩存數(shù)據(jù)預(yù)加載過程,執(zhí)行常規(guī)加載過程。
[0026] -種緩存數(shù)據(jù)預(yù)加載裝置,地震數(shù)據(jù)通過八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),包括:
[0027] 運(yùn)動(dòng)軌跡獲取單元,用于當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù) 時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡;
[0028] 預(yù)加載鏈表生成單元,用于利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地 震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;
[0029] 預(yù)加載單元,用于按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì) 應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
[0030] 一種緩存數(shù)據(jù)加載方法,包括:
[0031] A、當(dāng)?shù)貙W(xué)程序啟動(dòng)時(shí),利用預(yù)先設(shè)置的用戶對(duì)所述地震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪 問頻率統(tǒng)計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱度表;
[0032] B、按照熱度值從高到低的順序?qū)⑴c所述熱度表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩 存;
[0033] C、當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行步驟B,并判斷所述緩存中的數(shù)據(jù)是否包含 當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù);
[0034] D、當(dāng)是時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡;利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域 待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述 預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
[0035] 優(yōu)選的,當(dāng)所述緩存中數(shù)據(jù)不包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí),該方法 還包括:
[0036] E、響應(yīng)接收到的常規(guī)加載請(qǐng)求,執(zhí)行常規(guī)加載過程。
[0037] 優(yōu)選的,所述利用預(yù)先設(shè)置的用戶對(duì)所述地震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪問頻率統(tǒng) 計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱度表,包括:
[0038] 當(dāng)所述地震數(shù)據(jù)中某個(gè)節(jié)點(diǎn)被訪問時(shí),將該節(jié)點(diǎn)以及與該節(jié)點(diǎn)對(duì)應(yīng)的所有祖先節(jié) 點(diǎn)的熱度值加1 ;
[0039] 根據(jù)與各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成與該用戶對(duì)應(yīng)的熱度表;
[0040] 對(duì)所述熱度表中的熱度值進(jìn)行直方圖統(tǒng)計(jì);
[0041] 當(dāng)所述熱度表中的熱度值趨于穩(wěn)定時(shí),確定當(dāng)前的熱度表為最終熱度表。
[0042] 一種緩存數(shù)據(jù)加載裝置,包括:
[0043] 熱度表生成單元,用于執(zhí)行A、當(dāng)?shù)貙W(xué)程序啟動(dòng)時(shí),利用預(yù)先設(shè)置的用戶對(duì)所述地 震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪問頻率統(tǒng)計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生 成熱度表;
[0044] 第一加載單元,用于執(zhí)行B、按照熱度值從高到低的順序?qū)⑴c所述熱度表中各個(gè)節(jié) 點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存;
[0045] 判斷單元,用于執(zhí)行C、當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行步驟B,并判斷所述緩 存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù);
[0046] 第二加載單元,用于執(zhí)行D、當(dāng)是時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡;利用所述運(yùn) 動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;按照優(yōu)先級(jí) 從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
[0047] 本申請(qǐng)?zhí)峁┮环N緩存數(shù)據(jù)預(yù)加載、加載方法及裝置,將地震數(shù)據(jù)通過八叉樹數(shù)據(jù) 結(jié)構(gòu)進(jìn)行存儲(chǔ),通過判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù),當(dāng)是 時(shí),則計(jì)算該可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先級(jí)從高到低的順序?qū)⑴c 節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存。本申請(qǐng)通過計(jì)算可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并 按照優(yōu)先級(jí)從高到底的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存,有效保證了可視區(qū)域運(yùn)動(dòng)過 程中,緩存中的數(shù)據(jù)可以在較大程度上包含當(dāng)前可視區(qū)域所要顯示的數(shù)據(jù),進(jìn)而使得在地 震數(shù)據(jù)可視化過程中,保證可視化效率。
【專利附圖】
【附圖說明】
[0048] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0049] 圖1為本申請(qǐng)實(shí)施例一提供的一種緩存數(shù)據(jù)預(yù)加載方法流程圖;
[0050] 圖2為本申請(qǐng)實(shí)施例二提供的一種緩存數(shù)據(jù)預(yù)加載裝置的結(jié)構(gòu)示意圖;
[0051] 圖3為本申請(qǐng)實(shí)施例三提供的一種緩存數(shù)據(jù)加載方法流程圖;
[0052] 圖4為本申請(qǐng)實(shí)施例四提供的一種緩存數(shù)據(jù)加載裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0053] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0054] 實(shí)施例一:
[0055] 圖1為本申請(qǐng)實(shí)施例一提供的一種緩存數(shù)據(jù)預(yù)加載方法流程圖。
[0056] 如圖1所示,該方法包括:
[0057] S101、判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)。
[0058] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,實(shí)時(shí)判斷緩存中數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯 示的所有數(shù)據(jù)。
[0059] S102、獲取可視區(qū)域的運(yùn)動(dòng)軌跡。
[0060] 在本申請(qǐng)實(shí)施例中,當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí), 獲取該可視區(qū)域的運(yùn)動(dòng)軌跡。
[0061] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,獲取可視區(qū)域的運(yùn)動(dòng)軌跡的過程為:依據(jù)用戶當(dāng)前鼠 標(biāo)點(diǎn)擊位置獲取可視區(qū)域的移動(dòng)平面方程;獲取當(dāng)前可視區(qū)域位置;分別獲取位于當(dāng)前可 視區(qū)域位置之前的一個(gè)時(shí)間步以及兩個(gè)時(shí)間步上的可視區(qū)域位置;通過二次函數(shù)在移動(dòng)平 面方程對(duì)應(yīng)的移動(dòng)平面上擬合各個(gè)可視區(qū)域位置得到可視區(qū)域的運(yùn)動(dòng)軌跡,其中,時(shí)間步 為發(fā)明人根據(jù)自己的需求定義的時(shí)間長(zhǎng)短,如:將時(shí)間步定義為3秒。
[0062] S103、利用運(yùn)動(dòng)軌跡獲取可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈 表。
[0063] 在本申請(qǐng)實(shí)施例中,當(dāng)獲取可視區(qū)域的運(yùn)動(dòng)軌跡后,需利用該運(yùn)動(dòng)軌跡獲取該可 視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并根據(jù)獲取到的各個(gè)節(jié)點(diǎn)生成預(yù)加載列表。
[0064] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,預(yù)先設(shè)置有節(jié)點(diǎn)數(shù),且利用運(yùn)動(dòng)軌跡獲取可視區(qū)域待 經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表的過程為:利用運(yùn)動(dòng)軌跡,獲取可視區(qū)域的中 心點(diǎn)待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),其中各個(gè)節(jié)點(diǎn)的個(gè)數(shù)等于節(jié)點(diǎn)數(shù);根據(jù)中心點(diǎn)待經(jīng)過 的各個(gè)節(jié)點(diǎn)計(jì)算可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn);利用可視區(qū)域待經(jīng)過的地震數(shù)據(jù) 的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表。
[0065] S104、按照優(yōu)先級(jí)從高到低的順序?qū)⑴c預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載 至緩存。
[0066] 在本申請(qǐng)實(shí)施例中,當(dāng)獲取到預(yù)加載鏈表后,需按照優(yōu)先級(jí)從高到低的順序?qū)⑴c 該預(yù)加載鏈表中的各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存,該過程具體為:計(jì)算預(yù)加載鏈表中分 別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的優(yōu)先級(jí);按照優(yōu)先級(jí)從高到低的順序逐個(gè)對(duì)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至 緩存。
[0067] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,從外存(如:硬件)讀取與節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù),并將數(shù)據(jù) 加載至緩存的原理請(qǐng)參見現(xiàn)有技術(shù)中常規(guī)加載過程,在此不做詳細(xì)介紹。
[0068] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,當(dāng)緩存中的數(shù)據(jù)不包含當(dāng)前可視區(qū)域所要顯示的所 有數(shù)據(jù)時(shí),該方法還包括:響應(yīng)接收到的常規(guī)加載請(qǐng)求,停止該緩存數(shù)據(jù)預(yù)加載過程,執(zhí)行 常規(guī)加載過程。
[0069] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,該常規(guī)加載過程為當(dāng)緩存中的數(shù)據(jù)不包含當(dāng)前可視 區(qū)域所要顯示的所有數(shù)據(jù)時(shí),將硬件中存儲(chǔ)的當(dāng)前可視區(qū)域顯示需要的、但緩存中不存在 的數(shù)據(jù)加載至緩存中,具體的,常規(guī)加載過程為現(xiàn)有技術(shù),詳細(xì)描述請(qǐng)參見現(xiàn)有技術(shù),在此 不做詳細(xì)介紹。
[0070] 本申請(qǐng)實(shí)施例提供一種緩存數(shù)據(jù)預(yù)加載方法,將地震數(shù)據(jù)通過八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn) 行存儲(chǔ),通過判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù),當(dāng)是時(shí),則計(jì) 算該可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先級(jí)從高到低的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng) 的數(shù)據(jù)加載至緩存。本申請(qǐng)通過計(jì)算可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先 級(jí)從高到底的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存,有效保證了可視區(qū)域運(yùn)動(dòng)過程中,緩 存中的數(shù)據(jù)可以在較大程度上包含當(dāng)前可視區(qū)域所要顯示的數(shù)據(jù),進(jìn)而使得在地震數(shù)據(jù)可 視化過程中,保證可視化效率。
[0071] 實(shí)施例二:
[0072] 圖2為本申請(qǐng)實(shí)施例二提供的一種緩存數(shù)據(jù)預(yù)加載裝置的結(jié)構(gòu)示意圖。
[0073] 如圖2所示,該裝置包括:依次相連的運(yùn)動(dòng)軌跡獲取單元11、預(yù)加載鏈表生成單元 12及預(yù)加載單元13,其中:
[0074] 運(yùn)動(dòng)軌跡獲取單元11,用于當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù) 據(jù)時(shí),獲取可視區(qū)域的運(yùn)動(dòng)軌跡。
[0075] 預(yù)加載鏈表生成單元12,用于利用運(yùn)動(dòng)軌跡獲取可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各 個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表。
[0076] 預(yù)加載單元13,用于按照優(yōu)先級(jí)從高到低的順序?qū)⑴c預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng) 的數(shù)據(jù)預(yù)加載至緩存。
[0077] 本申請(qǐng)實(shí)施例提供一種緩存數(shù)據(jù)預(yù)加載裝置,該裝置將地震數(shù)據(jù)通過八叉樹數(shù)據(jù) 結(jié)構(gòu)進(jìn)行存儲(chǔ),通過判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù),當(dāng)是 時(shí),則計(jì)算該可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并按照優(yōu)先級(jí)從高到低的順序?qū)⑴c 節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存。本申請(qǐng)通過計(jì)算可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),并 按照優(yōu)先級(jí)從高到底的順序?qū)⑴c節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存,有效保證了可視區(qū)域運(yùn)動(dòng)過 程中,緩存中的數(shù)據(jù)可以在較大程度上包含當(dāng)前可視區(qū)域所要顯示的數(shù)據(jù),進(jìn)而使得在地 震數(shù)據(jù)可視化過程中,保證可視化效率。
[0078] 實(shí)施例三:
[0079] 圖3為本申請(qǐng)實(shí)施例三提供的一種緩存數(shù)據(jù)加載方法流程圖。
[0080] 如圖3所示,該方法包括:
[0081] S201、當(dāng)?shù)貙W(xué)程序啟動(dòng)時(shí),利用預(yù)先設(shè)置的用戶對(duì)地震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪 問頻率統(tǒng)計(jì)地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱度表。
[0082] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,利用預(yù)先設(shè)置的用戶對(duì)地震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史 訪問頻率統(tǒng)計(jì)地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱度表的過程為:當(dāng)?shù)卣饠?shù)據(jù) 中某個(gè)節(jié)點(diǎn)被訪問時(shí),將該節(jié)點(diǎn)以及與該節(jié)點(diǎn)對(duì)應(yīng)的所有祖先節(jié)點(diǎn)的熱度值加1 ;根據(jù)與 各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成與該用戶對(duì)應(yīng)的熱度表;對(duì)熱度表中的熱度值進(jìn)行直方圖統(tǒng) 計(jì);當(dāng)熱度表中的熱度值趨于穩(wěn)定時(shí),確定當(dāng)前的熱度表為最終熱度表。
[0083] S202、按照熱度值從高到低的順序?qū)⑴c熱度表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩 存。
[0084] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,將節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存的原理請(qǐng)參見現(xiàn)有技 術(shù)中的常規(guī)加載過程,在此不做詳細(xì)介紹。
[0085] S203、當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行步驟S202。
[0086] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行上述步驟S202 的加載過程。
[0087] S204、判斷緩存中的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)。
[0088] S205、獲取可視區(qū)域的運(yùn)動(dòng)軌跡;利用運(yùn)動(dòng)軌跡獲取可視區(qū)域待經(jīng)過的地震數(shù)據(jù) 的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;按照優(yōu)先級(jí)從高到低的順序?qū)⑴c預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng) 的數(shù)據(jù)預(yù)加載至緩存。
[0089] 在本申請(qǐng)實(shí)施例中,優(yōu)選的,計(jì)算預(yù)加載鏈表中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的優(yōu)先級(jí)的 過程為:利用預(yù)先設(shè)置的優(yōu)先級(jí)計(jì)算公式計(jì)算預(yù)加載鏈表中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的優(yōu)先 級(jí),其中,預(yù)先設(shè)置的優(yōu)先級(jí)計(jì)算公式如下:
[0090]
【權(quán)利要求】
1. 一種緩存數(shù)據(jù)預(yù)加載方法,其特征在于,包括: 當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng) 軌跡; 利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載 鏈表; 按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩 存。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡,包 括: 依據(jù)用戶當(dāng)前鼠標(biāo)點(diǎn)擊位置獲取所述可視區(qū)域的移動(dòng)平面方程; 獲取當(dāng)前所述可視區(qū)域位置; 分別獲取位于當(dāng)前所述可視區(qū)域位置之前的一個(gè)時(shí)間步以及兩個(gè)時(shí)間步上的可視區(qū) 域位置; 通過二次函數(shù)在所述移動(dòng)平面方程對(duì)應(yīng)的移動(dòng)平面上擬合各個(gè)所述可視區(qū)域位置得 到所述可視區(qū)域的運(yùn)動(dòng)軌跡。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,預(yù)先設(shè)置有節(jié)點(diǎn)數(shù), 所述利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù) 加載鏈表,包括: 利用所述運(yùn)動(dòng)軌跡,獲取所述可視區(qū)域的中心點(diǎn)待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn),其中 各個(gè)所述節(jié)點(diǎn)的個(gè)數(shù)等于所述節(jié)點(diǎn)數(shù); 根據(jù)所述中心點(diǎn)待經(jīng)過的各個(gè)節(jié)點(diǎn)計(jì)算所述可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié) 占. 利用所述可視區(qū)域待經(jīng)過的地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所 述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存,包括: 計(jì)算所述預(yù)加載鏈表中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的優(yōu)先級(jí); 按照優(yōu)先級(jí)從高到低的順序逐個(gè)對(duì)所述節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)判斷得到所述緩存中的數(shù)據(jù)不包含當(dāng) 前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí),該方法還包括: 響應(yīng)接收到的常規(guī)加載請(qǐng)求,停止所述緩存數(shù)據(jù)預(yù)加載過程,執(zhí)行常規(guī)加載過程。
6. -種緩存數(shù)據(jù)預(yù)加載裝置,其特征在于,包括: 運(yùn)動(dòng)軌跡獲取單元,用于當(dāng)緩存中的數(shù)據(jù)包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù)時(shí), 獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡; 預(yù)加載鏈表生成單元,用于利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù) 據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表; 預(yù)加載單元,用于按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的 數(shù)據(jù)預(yù)加載至緩存。
7. -種緩存數(shù)據(jù)加載方法,其特征在于,包括: A、當(dāng)?shù)貙W(xué)程序啟動(dòng)時(shí),利用預(yù)先設(shè)置的用戶對(duì)所述地震數(shù)據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪問頻 率統(tǒng)計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱度表; B、 按照熱度值從高到低的順序?qū)⑴c所述熱度表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)加載至緩存; C、 當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行步驟B,并判斷所述緩存中的數(shù)據(jù)是否包含當(dāng)前 可視區(qū)域所要顯示的所有數(shù)據(jù); D、 當(dāng)是時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡;利用所述運(yùn)動(dòng)軌跡獲取所述可視區(qū)域待經(jīng) 過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;按照優(yōu)先級(jí)從高到低的順序?qū)⑴c所述預(yù)加 載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,當(dāng)所述緩存中數(shù)據(jù)不包含當(dāng)前可視區(qū)域 所要顯示的所有數(shù)據(jù)時(shí),該方法還包括: E、 響應(yīng)接收到的常規(guī)加載請(qǐng)求,執(zhí)行常規(guī)加載過程。
9. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述利用預(yù)先設(shè)置的用戶對(duì)所述地震數(shù) 據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪問頻率統(tǒng)計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱 度表,包括: 當(dāng)所述地震數(shù)據(jù)中某個(gè)節(jié)點(diǎn)被訪問時(shí),將該節(jié)點(diǎn)以及與該節(jié)點(diǎn)對(duì)應(yīng)的所有祖先節(jié)點(diǎn)的 熱度值加1 ; 根據(jù)與各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成與該用戶對(duì)應(yīng)的熱度表; 對(duì)所述熱度表中的熱度值進(jìn)行直方圖統(tǒng)計(jì); 當(dāng)所述熱度表中的熱度值趨于穩(wěn)定時(shí),確定當(dāng)前的熱度表為最終熱度表。
10. -種緩存數(shù)據(jù)加載裝置,其特征在于,包括: 熱度表生成單元,用于執(zhí)行A、當(dāng)?shù)貙W(xué)程序啟動(dòng)時(shí),利用預(yù)先設(shè)置的用戶對(duì)所述地震數(shù) 據(jù)中各個(gè)節(jié)點(diǎn)的歷史訪問頻率統(tǒng)計(jì)所述地震數(shù)據(jù)中分別與每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的熱度值生成熱 度表; 第一加載單元,用于執(zhí)行B、按照熱度值從高到低的順序?qū)⑴c所述熱度表中各個(gè)節(jié)點(diǎn)對(duì) 應(yīng)的數(shù)據(jù)加載至緩存; 判斷單元,用于執(zhí)行C、當(dāng)?shù)卣饠?shù)據(jù)可視化開啟時(shí),停止執(zhí)行步驟B,并判斷所述緩存中 的數(shù)據(jù)是否包含當(dāng)前可視區(qū)域所要顯示的所有數(shù)據(jù); 第二加載單元,用于執(zhí)行D、當(dāng)是時(shí),獲取所述可視區(qū)域的運(yùn)動(dòng)軌跡;利用所述運(yùn)動(dòng)軌 跡獲取所述可視區(qū)域待經(jīng)過的所述地震數(shù)據(jù)的各個(gè)節(jié)點(diǎn)生成預(yù)加載鏈表;按照優(yōu)先級(jí)從高 到低的順序?qū)⑴c所述預(yù)加載鏈表中各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)預(yù)加載至緩存。
【文檔編號(hào)】G06F9/445GK104156242SQ201410381583
【公開日】2014年11月19日 申請(qǐng)日期:2014年8月5日 優(yōu)先權(quán)日:2014年8月5日
【發(fā)明者】魏曉輝, 白鑫, 李洪亮, 白森, 郭小新, 高占恒 申請(qǐng)人:吉林大學(xué)