没有合适的资源?快使用搜索试试~ 我知道了~
MPSLIB:多点统计模型的C类框架,地质统计学模拟和模式选择的工具
⃝⃝可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 5(2016)127原始软件出版物www.elsevier.com/locate/softxMPSLIB:一个用于多点统计模型Thomas Mejer Hansena,LeThanh Vub,Torben Bachba丹麦哥本哈根大学尼尔斯·玻尔研究所 b接收日期:2016年5月12日;接收日期:2016年7月7日;接受日期:2016年7月8日摘要地质统计模拟方法允许基于统计模型的选择来模拟空间结构和模式。在过去的几十年中,多点统计(MPS)已被开发,允许从训练图像推断统计模型。这允许统计模型的更简单的量化,以及更真实的(地球)结构的模拟。已经提出了许多不同的算法MPS为基础的模拟,每一个与一组独特的优点或conses.MPSLIB是一个C++类,提供了一个框架,实现大多数目前提出的多点模拟方法的基础上顺序模拟。一些最广泛使用的方法作为一个例子。单法方程模拟(SNESIM)方法是使用树和列表结构提出了一种新的广义ENESIM(GENESIM)算法,它可以作为(在一个极端)的ENESIM算法,(在另一个极端)类似于直接采样算法。MPSLIB的目标是在大多数平台上易于编译(标准C++11是唯一的要求),并在开源LGPLv3许可证下发布,以鼓励重用和进一步开发。c2016作者。由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/在/4。0/)。关键词:模拟;地质统计学;多点统计代码元数据当前代码版本1.1代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-16-00042法律代码许可证LGPLv 3使用git的代码版本控制系统软件代码语言、工具、C++编译要求C++11链接到开发人员文档/手册https://github.com/ElsevierSoftwareX/SOFTX-D-16-00042/blob/master/README.mdltv@i-gis.dk支持电子邮件www.example.com,tmeha@nbi.ku.dk1. 动机和意义地质统计学是一种统计学,其重点是通过概率分布在概率框架中描述地理空间(地球)结构。“地统计模型”指的*通讯作者。电子邮件地址:tmeha@nbi.ku.dk(T.M. Hansen)。选择概率分布来反映特定的地球模型。地质统计模型通常用于表征地下储层模型,用于地下水、碳氢化合物或热储存,用于勘探、开采和管理。地质统计模型描述了无限多个单一地球模型,与所选的概率函数一致这些地球模型的可变性反映了与统计模型的选择有关的不确定性。这种不确定性量化是使用http://dx.doi.org/10.1016/j.softx.2016.07.0012352-7110/c2016作者。由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。128T.M. Hansen等人/SoftwareX 5(2016)127=[]个=|我C地质统计模型,而不是只考虑一个,在某种意义上,最佳模型。地质统计建模是一个两步过程。首先,必须选择或描述统计模型,通常通过概率分布f(m)。一旦建立了模型,使用“模拟算法”生成概率分布的实际实现传统上,地质统计模拟算法基于高斯统计,通常仅基于模型参数对之间的统计,因此称为2点统计。这些方法一直被广泛使用[1]。然而,基于2点的统计模型在它们可以表示的空间结构方面是有限的。随着多点统计(MPS)模型的引入,可以量化更符合地质现实的空间结构[2,3]。这导致了许多用于多点模拟的模拟算法f(m)的解析表达式。相反,假设“训练图像”或“样本模型”可用,从中可以推断出多点统计事件。MPS方法的目标是允许从未知的f(m)中采样,使得实现与可以从训练图像中推断出的统计数据一致。有关基于MPS的模拟算法的概述,请参见[6]。所提出的MPS算法中的许多以各种形式实现。然而,这些代码中的一些要么没有维护[7,8],在多个平台上不可用[8],在开源许可证下不可用[9这 里 介 绍 了 一 个 专 门 为 多 点 仿 真 设 计 的 C++ 库MPSLIB,该库在GPL v3许可下发布MPSLIB实现了基于顺序仿真的任何多点仿真算法所需的核心功能[13]。 请注意,这不包括基于模式匹配[14]和图像合成[15]的方法。“扩展法方程模拟”(ENESIM)[ 2 ]和“单法方程模拟”(SNESIM)[ 3,4 ]算法的实现此外,提出了一种基于 ENESIM 算 法 的 新 算 法 GENESIM , 其 作 用 类 似 于ENESIM和直接采样算法[5]。2. 软件描述MPSLIB是用C++[16]编写的,使用C++11 [17]。它由一个C++类组成,提供了将顺序模拟应用于多点统计模型样本的框架。它还包含许多使用MPSLIB实现的算法。该库的核心是顺序模拟的实现,可以简要描述如下:假设概率分布通过f(m)f(m1,m2,. . .,m M),其通常由网格上的一些节点排序。然后,可以使用顺序模拟生成f(m)的实现,如下所示:1. 访问一个随机节点,比如m1,并生成f(m1)为m1。2. 移动到另一个节点,比如m2,并生成f(m2|m1)为m2。3. 移动到另一个节点,比如m3,并生成f(m3|m 1,m2)asm3.4. ......这是什么?5. 移动到最后一个节点mM,并生成f(mM|m=1,m=2,. . . ,m<$M −1)作为m<$M。这将产生一个实现的mm=1,m=2,. . . ,mM,从f(m)。查看更多详情,例如:[18 ]第10段。实现顺序模拟算法的主要挑战是在如果条件数据由m∈c给出,则条件分布一般可以由下式给出:f(m |m)。(一个)如果关于mi的不确定的协同定位信息可用,f( mi软)(在地质统计学文献中通常称为f(mi|m∈c)f(misof t).(二)对于基于MPS的模型,通常没有可用的f(mimc)a的解析形式。相反,在大多数仿真算法中使用的关键思想是通过扫描训练图像以获得条件数据事件m_c来推断关于条件分布的信息。有(至少)两个不同的方法从方程中的条件分布抽样。(一).在一种方法(ENESIM型算法)中,扫描训练图像以匹配条件数据事件在顺序模拟算法的每次迭代中,可以从中估计条件分布[2],或者直接获得条件分布的实现[5]。在另一种方法中,在运行模拟之前扫描训练图像,并且将多个预定义数据模板的条件统计存储在存储器中。条件分布,方程。(1),然后可以在模拟过程中从内存中检索[3,4]。通常,在内存中存储条件统计数据需要使用所谓的多重网格[3],以便允许模拟具有更长距离相关性的结构,同时施加可管理的内存和CPU要求。使用多个网格,模拟是在一个粗略的网格,是细化,直到模拟是在最好的,并要求,网格大小开始执行。多网格的使用对条件模拟提出了挑战(当某些模型参数的值在模拟开始之前已知时)。处理这种情况的一种方法是使用数据重定位。在粗网格上进行模拟时,细网格上的条件数据将重新定位到粗网格中的最大节点。当在较粗网格上执行条件模拟时,移除粗网格上的重新定位的数据,然后在较细网格上执行模拟。有关多网格和数据重定位的使用的详细信息,请参见[19,3,20]。例如[2对于基于MPS的统计模型,通常没有T.M. Hansen等人/SoftwareX 5(2016)127129==∞∞Fig. 1. MPS总体架构。2.1. 软件构架MPS 是 一 个 包 含 不 同 类 的 命 名 空 间 。 主 类 是MPSalgorithm类,它实现了顺序模拟算法,读取和写入3D网格数据的方法,读取已知数据值(称为硬数据和软数据)的方法,以及建立数据邻域和控制模拟路径的方法。此外,MPSAlgorithm允许多个网格,包括条件数据的处理。具体地,实现了[3]此外,还定义了两个抽象成员函数,但没有实现 : MPSAlgorithm : : readConfig 和 MPS-Algorithm::simulate也就是说,为了使用MPS类,一个新的C++需要定义一个继承MPSAlgorithm类的类,它实现(至少)两个成员函数。MPS Algorithm::readConfig应该设置运行模拟所需的所有参数,例如从参数文件中读取。 MPS算法::simulate应该实现一种方法,该方法允许从等式(1)生成实现。(一).如上所述,所提出的多点模拟算法之间的主要差异与如何实现该功能有关,并且可以分为两类算法,类似于ENESIM的算法和类似于SNESIM的算法。因此,已经实现了两个通用类MPSEnesim和MPSSnesim,以处理ENESIM和SNESIM类型仿真的特定操作。ENESIM。ENESIM子类使用专门设计用于每次扫描训练图像的方法和函数扩展主MPSAlgorithm类。这包括用于扫描整个训练图像以估计条件分布的方法,等式(Eq. (1)从中可以得出一个认识。它还包括用于仅扫描训练图像的部分的方法,并且可选地仅扫描训练图像直到已经找到最大数量的一致性数据事件。SNESIM。SNESIM子类使用专门设计的方法和函数扩展主MPS类,以防在运行模拟算法之前扫描来自训练图像的统计数据并将其存储在存储器中。SNESIM和ENESIM子类构成了C++框架的基础。一个关键的想法是,它应该是可能的,以实现任何MPS为基础的顺序模拟算法使用C++类。 图 1说明了MPSLIB的体系结构。2.2. MPS仿真算法为了证明MPSLIB的多功能性的一些最知名的多点仿真算法,以及一个新的变种,顺序模拟的基础上已经实施。mps genesim. mpsgenesim算法是由[2]提出的名为ENESIM的MPS算法的广义实现。在ENESIM算法的最简单形式中,扫描整个训练图像以建立等式中的条件分布。(1)每次迭代。这相对容易实现,并且避免了与使用多个网格相关的问题。然而,它在计算上也是极其苛刻的,以至于它不实用。原因是由于在每次迭代时扫描完整的训练图像,以便获得可以从中得出实现的条件分布为了缓解这一点,我们建议仅扫描训练图像的最大数量Nmax的条件数据事件,这意味着条件分布将仅基于(最多)Nmax计数。MPS Algorithm::simulate通过从随机起点扫描训练图像最多Nmax次重复来实现。这提供了一个近似的完整的条件分布,从中产生一个实现。在一个极端,Nmax,该算法将产生与经典ENESIM算法相同的结果。在另一个极端情况下,Nmax1,该算法将提供与直接采样算法基本相同的结果,具体区别在于使用mps genesim实际上估计了条件分布(即使仅基于一个计数),从中生成实现使用直接采样的条件分布从来没有获得,而是实现从方程。(1)直接从训练图像中获取作为第一匹配条件数据事件[5]。在这种情况下,当条件分布仅基于一个观察到的条件事件时,条件化为不确定数据,如等式2所示。(2)不能做。对于N max > 1和N max
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功