内容摘要:书接上文,Geoist本身这套程序因为没有GUI界面,全部的操作都要代码实现,这样做的优点是可以了解更多细节。同时,什么都要敲代码,反复运行也会带来诸多不变。今天我们介绍两个工具,看看怎么用。
1、模型与异常
下面是上一节课中的一段代码,PrismMesh这个类很有用,指定范围和单元数量后,就可以生成一个实例对象mesh,这个mesh里面的dump接口可以将定义好的模型输出到磁盘。
from geoist.inversion.mesh import PrismMesh
mesh = PrismMesh(area, shape)
density=np.zeros(shape)
density[9:12,9:12,2:3]=1.00
mesh.addprop('density', density.ravel())
mesh.dump(meshfile, densfile, 'density') #输出网格到磁盘,
meshfile和densfile这两个文件名指定后,可以获得两个ascii格式的文件,分别是网格定义文件和模型属性文件。下面我们介绍两个小工具,怎么实现交互式浏览模型和异常结果。
2、两个工具
我们今天说的是UBC-GIF团队开发的重磁位场三维反演软件系统中的两个小工具,分别叫MeshTools3d和gm-data-viewer,前者是用来打开前面我们说的dump到磁盘的数据,后者可以对比模型正演的数据结果。
两个软件都很简单,上手了不用交,看看菜单就能实现。可能也是因为功能很简单,所以也不需要什么注册和安装之类的,一个exe文件copy到哪里都能用。简单吧!
(1)MeshTools3
运行exe文件后,回弹出如图1所示的对话框,Mesh就打开dump函数里面,meshfile指定的文件,Model则打开densfile对应的文件。下面的Second Model还可以加一个对比模型,然后可以在两个模型之间对比。
图1 打开数据窗口模型打开无误后,主界面如图2所示。上面的W/E/S/N/T/B按钮是控制三维切片方向的,四个箭头控制模型旋转。
图2 模型软件主界面其它,这个软件还支持不同的显示方式,操作起来不难。作为看看模型结果足够了。因为,能很好补充Geoist没有GUI界面的不足,所以,推荐大家使用。
(2)gm-data-viewer
下面我们看看第二个工具,怎么来看看模型对应的异常数据,以及观测与正演的数据对比。同样,看第一个打开数据界面,第一行要求数一个数据,这个dat格式很简单,第一行给出点数,然后就是x,y,z,data这样四列即可,ascii格式。
图3 打开数据对话框数据打开后,会图出现如图4所示的异常图。当然,如果前面仅设置一个输入数据,就只有一幅图了。
图4 异常数据可视化与对比上面的diff按钮,可以试试,如果你想看看这两幅数据的差异,用这个准没错。
大家可能会问,怎么输出这个dat文件呢?不急,很简单,我们写几行代码就行啦。
with open(graoutfile, 'w') as f:
f.write('! model 1 gravity anomlay (mGal)\n')
f.write('{}\n'.format(len(field_gra)))
for i in range(len(field_gra)):
f.write('{} {} {} {}\n'.format(yp[i],xp[i],zp[i],np.array(field_gra[i]).ravel()[0]))
上面五行代码,就可以实现把一个模型计算的field保存到磁盘。什么field怎么来的?那你看一下上一节课内容就知道啦!
一句话总结:今天内容不多,简单说了一下两个小工具。也是今天小哥没干什么活,有点糊弄了,明天好好写。真正的反演一个例子给大家看看。
网友评论