跳到内容

pec27/smerfs公司

小精灵(smerfs)

示例结构,见图纸

球面上随机场的随机马尔可夫估计

该代码基于Peter Creasey和Annika Lang的论文“球面上各向同性高斯随机场的快速生成”(Monte Carlo方法和应用,24,1–11,阿西夫,已发布版本).

下载Smerfs后,您可能需要执行以下操作:

安装

安装(还构建C功能)

python setup.py安装[-前缀=/myhome/my-site-packages]

并运行测试,

python设置.py测试

示例

这些可能至少需要python 2.7和一个(非古代)numpy和scipy。

用给定的功率谱实现球面场

在python环境中尝试

 小精灵(smerfs) 进口 内置过滤器
进口 笨蛋 作为 净现值
进口 马特普洛特利布.pyplot图 作为 pl公司
新西兰 = 128 #128个点以θ等距分布(z=cos(θ))
非营利组织投资 = 256 #我通常使用nphi=2*nz,所以赤道的像素是规则的
#C_lambda=1/(1.0+10^-4(lambda(lambda+1))^2)的GRF
非零系数 =(1,0,1e-4号机组)#这个长度刻度约为l=10
平方英尺 = 内置过滤器(新西兰=新西兰,非营利组织投资=非营利组织投资,非零系数=非零系数,数据类型=净现值.浮点64)#构建滤波器系数
#举例实现
物件 = 平方英尺.创建_实现()#具有形状(nz,nphi)
pl公司.显示图像(物件)#绘图
pl公司.显示()

应该会产生这样的结果示例实现

绘制协方差函数

你可以看到协方差是角分离的函数

 小精灵(smerfs).实用程序 进口 分析冠状病毒
z(z) = 净现值.林斯空间(-1,1,1000)畜栏 = 分析冠状病毒(非零系数,z(z))#勒让德多项式的贡献
pl公司.情节(z(z),畜栏)pl公司.xlabel公司(r“$\cos\theta$”)pl公司.伊拉贝尔(r“$C(\cos\theta)$”)pl公司.xlim公司(1,-1)pl公司.显示()

应该会产生这样的结果协方差函数

所有这些都相当于运行

python示例/example1.py

保存过滤器

如果您计划重新使用给定功率谱的滤波器系数,您可以使用

 小精灵(smerfs) 进口 内置过滤器,加载筛选器(_F)
平方英尺 = 内置过滤器(新西兰,非营利组织投资,非零系数,数据类型=数据类型)平方英尺.节约('过滤器.dat')#再次加载
平方英尺 = 加载过滤器('过滤器.dat')

尽管已尽一切努力保持文件大小较小(例如,使用对称性来避免存储球体下半部的系数,只保留矩阵分解的下三角),但您也可以使用dtype=numpy.float32对于大型过滤器,将文件大小减半(相应的精度损失)。请注意此用法泡菜在内部,如果您使用来自未知来源的筛选器,这可能是一个安全问题。

关于

在球体上创建随机场的大规模实现

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包