一种缓存数据预加载、加载方法及装置制造方法

文档序号:6622525阅读:495来源:国知局
一种缓存数据预加载、加载方法及装置制造方法
【专利摘要】本申请提供一种缓存数据预加载、加载方法及装置,将地震数据通过八叉树数据结构进行存储,通过判断缓存中的数据是否包含当前可视区域所要显示的所有数据,当是时,则计算该可视区域待经过的地震数据的各个节点,并按照优先级从高到低的顺序将与节点对应的数据加载至缓存。本申请通过计算可视区域待经过的地震数据的各个节点,并按照优先级从高到底的顺序将与节点对应的数据加载至缓存,有效保证了可视区域运动过程中,缓存中的数据可以在较大程度上包含当前可视区域所要显示的数据,进而使得在地震数据可视化过程中,保证可视化效率。
【专利说明】一种缓存数据预加载、加载方法及装置

【技术领域】
[0001] 本申请涉及对三维地震数据的可视化【技术领域】,特别是涉及一种缓存数据预加 载、加载方法及装置。

【背景技术】
[0002] 地震方法是目前进行油气勘测的主要方法,地震数据的可视化是地震勘测过程中 的重要步骤,随着地震数据采集设备和技术的进步,地震数据的规模越来越大。目前,一个 三维地震数据经常能够达到几十上百GB的规模,这种数据量已经大大超过了普通计算机 的内存大小,因此,对于大规模的地震数据往往难以载入内存进行实时处理。
[0003] 现有技术地震数据通常通过八叉树数据结构进行存储,并预先在内存中建立缓 存,当用户采用基于可视化区域漫游的交互方式进行地震数据的可视化时,首先根据可视 区域经过的地震数据的数据块生成加载链表,并在内存的缓存中进行检索,判断缓存中是 否存在与加载链表中各个数据块对应的数据,并根据缓存中的数据实现可视化过程。
[0004] 但是,通过研究发现,现有技术在地震数据可视化过程中,当缓存中的数据通常不 能在较大程度上包含可视化过程中可视区域所要显示的数据时,往往会导致可视化效率降 低的问题。


【发明内容】

[0005] 有鉴于此,本申请提供一种缓存数据预加载、加载方法及装置,以使得在地震数据 可视化过程中,有效保证可视化效率。
[0006] 为了实现上述目的,本发明实施例提供的技术方案如下:
[0007] -种缓存数据预加载方法,地震数据通过八叉树数据结构进行存储,包括:
[0008] 当缓存中的数据包含当前可视区域所要显示的所有数据时,获取所述可视区域的 运动轨迹;
[0009] 利用所述运动轨迹获取所述可视区域待经过的所述地震数据的各个节点生成预 加载链表;
[0010] 按照优先级从高到低的顺序将与所述预加载链表中各个节点对应的数据预加载 至缓存。
[0011] 优选的,所述获取所述可视区域的运动轨迹,包括:
[0012] 依据用户当前鼠标点击位置获取所述可视区域的移动平面方程;
[0013] 获取当前所述可视区域位置;
[0014] 分别获取位于当前所述可视区域位置之前的一个时间步以及两个时间步上的可 视区域位置;
[0015] 通过二次函数在所述移动平面方程对应的移动平面上拟合各个所述可视区域位 置得到所述可视区域的运动轨迹。
[0016] 优选的,预先设置有节点数,
[0017] 所述利用所述运动轨迹获取所述可视区域待经过的所述地震数据的各个节点生 成预加载链表,包括:
[0018] 利用所述运动轨迹,获取所述可视区域的中心点待经过的地震数据的各个节点, 其中各个所述节点的个数等于所述节点数;
[0019] 根据所述中心点待经过的各个节点计算所述可视区域待经过的地震数据的各个 节点;
[0020] 利用所述可视区域待经过的地震数据的各个节点生成预加载链表。
[0021] 优选的,所述按照优先级从高到低的顺序将与所述预加载链表中各个节点对应的 数据预加载至缓存,包括:
[0022] 计算所述预加载链表中分别与每个节点对应的优先级;
[0023] 按照优先级从高到低的顺序逐个对所述节点对应的数据预加载至缓存。
[0024] 优选的,当判断得到所述缓存中的数据不包含当前可视区域所要显示的所有数据 时,该方法还包括:
[0025] 响应接收到的常规加载请求,停止所述缓存数据预加载过程,执行常规加载过程。
[0026] -种缓存数据预加载装置,地震数据通过八叉树数据结构进行存储,包括:
[0027] 运动轨迹获取单元,用于当缓存中的数据包含当前可视区域所要显示的所有数据 时,获取所述可视区域的运动轨迹;
[0028] 预加载链表生成单元,用于利用所述运动轨迹获取所述可视区域待经过的所述地 震数据的各个节点生成预加载链表;
[0029] 预加载单元,用于按照优先级从高到低的顺序将与所述预加载链表中各个节点对 应的数据预加载至缓存。
[0030] 一种缓存数据加载方法,包括:
[0031] A、当地学程序启动时,利用预先设置的用户对所述地震数据中各个节点的历史访 问频率统计所述地震数据中分别与每个节点对应的热度值生成热度表;
[0032] B、按照热度值从高到低的顺序将与所述热度表中各个节点对应的数据加载至缓 存;
[0033] C、当地震数据可视化开启时,停止执行步骤B,并判断所述缓存中的数据是否包含 当前可视区域所要显示的所有数据;
[0034] D、当是时,获取所述可视区域的运动轨迹;利用所述运动轨迹获取所述可视区域 待经过的所述地震数据的各个节点生成预加载链表;按照优先级从高到低的顺序将与所述 预加载链表中各个节点对应的数据预加载至缓存。
[0035] 优选的,当所述缓存中数据不包含当前可视区域所要显示的所有数据时,该方法 还包括:
[0036] E、响应接收到的常规加载请求,执行常规加载过程。
[0037] 优选的,所述利用预先设置的用户对所述地震数据中各个节点的历史访问频率统 计所述地震数据中分别与每个节点对应的热度值生成热度表,包括:
[0038] 当所述地震数据中某个节点被访问时,将该节点以及与该节点对应的所有祖先节 点的热度值加1 ;
[0039] 根据与各个节点对应的热度值生成与该用户对应的热度表;
[0040] 对所述热度表中的热度值进行直方图统计;
[0041] 当所述热度表中的热度值趋于稳定时,确定当前的热度表为最终热度表。
[0042] 一种缓存数据加载装置,包括:
[0043] 热度表生成单元,用于执行A、当地学程序启动时,利用预先设置的用户对所述地 震数据中各个节点的历史访问频率统计所述地震数据中分别与每个节点对应的热度值生 成热度表;
[0044] 第一加载单元,用于执行B、按照热度值从高到低的顺序将与所述热度表中各个节 点对应的数据加载至缓存;
[0045] 判断单元,用于执行C、当地震数据可视化开启时,停止执行步骤B,并判断所述缓 存中的数据是否包含当前可视区域所要显示的所有数据;
[0046] 第二加载单元,用于执行D、当是时,获取所述可视区域的运动轨迹;利用所述运 动轨迹获取所述可视区域待经过的所述地震数据的各个节点生成预加载链表;按照优先级 从高到低的顺序将与所述预加载链表中各个节点对应的数据预加载至缓存。
[0047] 本申请提供一种缓存数据预加载、加载方法及装置,将地震数据通过八叉树数据 结构进行存储,通过判断缓存中的数据是否包含当前可视区域所要显示的所有数据,当是 时,则计算该可视区域待经过的地震数据的各个节点,并按照优先级从高到低的顺序将与 节点对应的数据加载至缓存。本申请通过计算可视区域待经过的地震数据的各个节点,并 按照优先级从高到底的顺序将与节点对应的数据加载至缓存,有效保证了可视区域运动过 程中,缓存中的数据可以在较大程度上包含当前可视区域所要显示的数据,进而使得在地 震数据可视化过程中,保证可视化效率。

【专利附图】

【附图说明】
[0048] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0049] 图1为本申请实施例一提供的一种缓存数据预加载方法流程图;
[0050] 图2为本申请实施例二提供的一种缓存数据预加载装置的结构示意图;
[0051] 图3为本申请实施例三提供的一种缓存数据加载方法流程图;
[0052] 图4为本申请实施例四提供的一种缓存数据加载装置的结构示意图。

【具体实施方式】
[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0054] 实施例一:
[0055] 图1为本申请实施例一提供的一种缓存数据预加载方法流程图。
[0056] 如图1所示,该方法包括:
[0057] S101、判断缓存中的数据是否包含当前可视区域所要显示的所有数据。
[0058] 在本申请实施例中,优选的,实时判断缓存中数据是否包含当前可视区域所要显 示的所有数据。
[0059] S102、获取可视区域的运动轨迹。
[0060] 在本申请实施例中,当缓存中的数据包含当前可视区域所要显示的所有数据时, 获取该可视区域的运动轨迹。
[0061] 在本申请实施例中,优选的,获取可视区域的运动轨迹的过程为:依据用户当前鼠 标点击位置获取可视区域的移动平面方程;获取当前可视区域位置;分别获取位于当前可 视区域位置之前的一个时间步以及两个时间步上的可视区域位置;通过二次函数在移动平 面方程对应的移动平面上拟合各个可视区域位置得到可视区域的运动轨迹,其中,时间步 为发明人根据自己的需求定义的时间长短,如:将时间步定义为3秒。
[0062] S103、利用运动轨迹获取可视区域待经过的地震数据的各个节点生成预加载链 表。
[0063] 在本申请实施例中,当获取可视区域的运动轨迹后,需利用该运动轨迹获取该可 视区域待经过的地震数据的各个节点,并根据获取到的各个节点生成预加载列表。
[0064] 在本申请实施例中,优选的,预先设置有节点数,且利用运动轨迹获取可视区域待 经过的地震数据的各个节点生成预加载链表的过程为:利用运动轨迹,获取可视区域的中 心点待经过的地震数据的各个节点,其中各个节点的个数等于节点数;根据中心点待经过 的各个节点计算可视区域待经过的地震数据的各个节点;利用可视区域待经过的地震数据 的各个节点生成预加载链表。
[0065] S104、按照优先级从高到低的顺序将与预加载链表中各个节点对应的数据预加载 至缓存。
[0066] 在本申请实施例中,当获取到预加载链表后,需按照优先级从高到低的顺序将与 该预加载链表中的各个节点对应的数据加载至缓存,该过程具体为:计算预加载链表中分 别与每个节点对应的优先级;按照优先级从高到低的顺序逐个对节点对应的数据预加载至 缓存。
[0067] 在本申请实施例中,优选的,从外存(如:硬件)读取与节点对应的数据,并将数据 加载至缓存的原理请参见现有技术中常规加载过程,在此不做详细介绍。
[0068] 在本申请实施例中,优选的,当缓存中的数据不包含当前可视区域所要显示的所 有数据时,该方法还包括:响应接收到的常规加载请求,停止该缓存数据预加载过程,执行 常规加载过程。
[0069] 在本申请实施例中,优选的,该常规加载过程为当缓存中的数据不包含当前可视 区域所要显示的所有数据时,将硬件中存储的当前可视区域显示需要的、但缓存中不存在 的数据加载至缓存中,具体的,常规加载过程为现有技术,详细描述请参见现有技术,在此 不做详细介绍。
[0070] 本申请实施例提供一种缓存数据预加载方法,将地震数据通过八叉树数据结构进 行存储,通过判断缓存中的数据是否包含当前可视区域所要显示的所有数据,当是时,则计 算该可视区域待经过的地震数据的各个节点,并按照优先级从高到低的顺序将与节点对应 的数据加载至缓存。本申请通过计算可视区域待经过的地震数据的各个节点,并按照优先 级从高到底的顺序将与节点对应的数据加载至缓存,有效保证了可视区域运动过程中,缓 存中的数据可以在较大程度上包含当前可视区域所要显示的数据,进而使得在地震数据可 视化过程中,保证可视化效率。
[0071] 实施例二:
[0072] 图2为本申请实施例二提供的一种缓存数据预加载装置的结构示意图。
[0073] 如图2所示,该装置包括:依次相连的运动轨迹获取单元11、预加载链表生成单元 12及预加载单元13,其中:
[0074] 运动轨迹获取单元11,用于当缓存中的数据包含当前可视区域所要显示的所有数 据时,获取可视区域的运动轨迹。
[0075] 预加载链表生成单元12,用于利用运动轨迹获取可视区域待经过的地震数据的各 个节点生成预加载链表。
[0076] 预加载单元13,用于按照优先级从高到低的顺序将与预加载链表中各个节点对应 的数据预加载至缓存。
[0077] 本申请实施例提供一种缓存数据预加载装置,该装置将地震数据通过八叉树数据 结构进行存储,通过判断缓存中的数据是否包含当前可视区域所要显示的所有数据,当是 时,则计算该可视区域待经过的地震数据的各个节点,并按照优先级从高到低的顺序将与 节点对应的数据加载至缓存。本申请通过计算可视区域待经过的地震数据的各个节点,并 按照优先级从高到底的顺序将与节点对应的数据加载至缓存,有效保证了可视区域运动过 程中,缓存中的数据可以在较大程度上包含当前可视区域所要显示的数据,进而使得在地 震数据可视化过程中,保证可视化效率。
[0078] 实施例三:
[0079] 图3为本申请实施例三提供的一种缓存数据加载方法流程图。
[0080] 如图3所示,该方法包括:
[0081] S201、当地学程序启动时,利用预先设置的用户对地震数据中各个节点的历史访 问频率统计地震数据中分别与每个节点对应的热度值生成热度表。
[0082] 在本申请实施例中,优选的,利用预先设置的用户对地震数据中各个节点的历史 访问频率统计地震数据中分别与每个节点对应的热度值生成热度表的过程为:当地震数据 中某个节点被访问时,将该节点以及与该节点对应的所有祖先节点的热度值加1 ;根据与 各个节点对应的热度值生成与该用户对应的热度表;对热度表中的热度值进行直方图统 计;当热度表中的热度值趋于稳定时,确定当前的热度表为最终热度表。
[0083] S202、按照热度值从高到低的顺序将与热度表中各个节点对应的数据加载至缓 存。
[0084] 在本申请实施例中,优选的,将节点对应的数据加载至缓存的原理请参见现有技 术中的常规加载过程,在此不做详细介绍。
[0085] S203、当地震数据可视化开启时,停止执行步骤S202。
[0086] 在本申请实施例中,优选的,当地震数据可视化开启时,停止执行上述步骤S202 的加载过程。
[0087] S204、判断缓存中的数据是否包含当前可视区域所要显示的所有数据。
[0088] S205、获取可视区域的运动轨迹;利用运动轨迹获取可视区域待经过的地震数据 的各个节点生成预加载链表;按照优先级从高到低的顺序将与预加载链表中各个节点对应 的数据预加载至缓存。
[0089] 在本申请实施例中,优选的,计算预加载链表中分别与每个节点对应的优先级的 过程为:利用预先设置的优先级计算公式计算预加载链表中分别与每个节点对应的优先 级,其中,预先设置的优先级计算公式如下:
[0090]

【权利要求】
1. 一种缓存数据预加载方法,其特征在于,包括: 当缓存中的数据包含当前可视区域所要显示的所有数据时,获取所述可视区域的运动 轨迹; 利用所述运动轨迹获取所述可视区域待经过的所述地震数据的各个节点生成预加载 链表; 按照优先级从高到低的顺序将与所述预加载链表中各个节点对应的数据预加载至缓 存。
2. 根据权利要求1所述的方法,其特征在于,所述获取所述可视区域的运动轨迹,包 括: 依据用户当前鼠标点击位置获取所述可视区域的移动平面方程; 获取当前所述可视区域位置; 分别获取位于当前所述可视区域位置之前的一个时间步以及两个时间步上的可视区 域位置; 通过二次函数在所述移动平面方程对应的移动平面上拟合各个所述可视区域位置得 到所述可视区域的运动轨迹。
3. 根据权利要求1所述的方法,其特征在于,预先设置有节点数, 所述利用所述运动轨迹获取所述可视区域待经过的所述地震数据的各个节点生成预 加载链表,包括: 利用所述运动轨迹,获取所述可视区域的中心点待经过的地震数据的各个节点,其中 各个所述节点的个数等于所述节点数; 根据所述中心点待经过的各个节点计算所述可视区域待经过的地震数据的各个节 占. 利用所述可视区域待经过的地震数据的各个节点生成预加载链表。
4. 根据权利要求1所述的方法,其特征在于,所述按照优先级从高到低的顺序将与所 述预加载链表中各个节点对应的数据预加载至缓存,包括: 计算所述预加载链表中分别与每个节点对应的优先级; 按照优先级从高到低的顺序逐个对所述节点对应的数据预加载至缓存。
5. 根据权利要求1所述的方法,其特征在于,当判断得到所述缓存中的数据不包含当 前可视区域所要显示的所有数据时,该方法还包括: 响应接收到的常规加载请求,停止所述缓存数据预加载过程,执行常规加载过程。
6. -种缓存数据预加载装置,其特征在于,包括: 运动轨迹获取单元,用于当缓存中的数据包含当前可视区域所要显示的所有数据时, 获取所述可视区域的运动轨迹; 预加载链表生成单元,用于利用所述运动轨迹获取所述可视区域待经过的所述地震数 据的各个节点生成预加载链表; 预加载单元,用于按照优先级从高到低的顺序将与所述预加载链表中各个节点对应的 数据预加载至缓存。
7. -种缓存数据加载方法,其特征在于,包括: A、当地学程序启动时,利用预先设置的用户对所述地震数据中各个节点的历史访问频 率统计所述地震数据中分别与每个节点对应的热度值生成热度表; B、 按照热度值从高到低的顺序将与所述热度表中各个节点对应的数据加载至缓存; C、 当地震数据可视化开启时,停止执行步骤B,并判断所述缓存中的数据是否包含当前 可视区域所要显示的所有数据; D、 当是时,获取所述可视区域的运动轨迹;利用所述运动轨迹获取所述可视区域待经 过的所述地震数据的各个节点生成预加载链表;按照优先级从高到低的顺序将与所述预加 载链表中各个节点对应的数据预加载至缓存。
8. 根据权利要求7所述的方法,其特征在于,当所述缓存中数据不包含当前可视区域 所要显示的所有数据时,该方法还包括: E、 响应接收到的常规加载请求,执行常规加载过程。
9. 根据权利要求7所述的方法,其特征在于,所述利用预先设置的用户对所述地震数 据中各个节点的历史访问频率统计所述地震数据中分别与每个节点对应的热度值生成热 度表,包括: 当所述地震数据中某个节点被访问时,将该节点以及与该节点对应的所有祖先节点的 热度值加1 ; 根据与各个节点对应的热度值生成与该用户对应的热度表; 对所述热度表中的热度值进行直方图统计; 当所述热度表中的热度值趋于稳定时,确定当前的热度表为最终热度表。
10. -种缓存数据加载装置,其特征在于,包括: 热度表生成单元,用于执行A、当地学程序启动时,利用预先设置的用户对所述地震数 据中各个节点的历史访问频率统计所述地震数据中分别与每个节点对应的热度值生成热 度表; 第一加载单元,用于执行B、按照热度值从高到低的顺序将与所述热度表中各个节点对 应的数据加载至缓存; 判断单元,用于执行C、当地震数据可视化开启时,停止执行步骤B,并判断所述缓存中 的数据是否包含当前可视区域所要显示的所有数据; 第二加载单元,用于执行D、当是时,获取所述可视区域的运动轨迹;利用所述运动轨 迹获取所述可视区域待经过的所述地震数据的各个节点生成预加载链表;按照优先级从高 到低的顺序将与所述预加载链表中各个节点对应的数据预加载至缓存。
【文档编号】G06F9/445GK104156242SQ201410381583
【公开日】2014年11月19日 申请日期:2014年8月5日 优先权日:2014年8月5日
【发明者】魏晓辉, 白鑫, 李洪亮, 白森, 郭小新, 高占恒 申请人:吉林大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1