python接口到litho 1.0数据集-基于stripy
litho1pt0的Python项目详细描述
岩性1pt0
tripack和stripack fortran代码的python接口,用于在笛卡尔坐标系和球体上进行(受约束的)三角剖分。stripy是一个面向对象的包,包含srfpack和ssrfpack中的例程,用于插值(最近邻、线性和hermite立方)和求导(renka 1996a、b和1997a、b)。
stripy
与litho1pt0
捆绑在一起,后者是地壳1.0数据集和岩石1.0数据集(laske et al,2013和pasyanos et al,2014)的岩石圈部分的python接口,两者都需要并演示由^{
使用stripy
创建的示例图像,演示了网格划分功能、优化网格以匹配数据密度等条件的功能,以及创建网格距离加权平均值和连续插值函数的功能
活页夹
启动演示导航/笔记本
有两组匹配的stripy
笔记本-一组用于Cartesian Triangulations,一组用于Spherical Triangulations。对于大多数地理应用来说,球面三角剖分是自然选择,因为它们期望经纬度坐标(公认是弧度坐标)。
注意:笛卡尔和球面笔记本可以从stripy
本身获得/安装,如下所示:
python -c 'import stripy; stripy.documentation.install_documentation(path="Notebooks")'
笛卡尔
- Ex1-Cartesian-Triangulations.ipynb
- Ex2-CartesianGrids.ipynb
- Ex3-Interpolation.ipynb
- Ex4-Gradients.ipynb
- Ex5-Smoothing.ipynb
- Ex6-Scattered-Data.ipynb
- Ex7-Refinement-of-Triangulations.ipynb
球形
- Ex1-Spherical-Triangulations.ipynb
- Ex2-SphericalGrids.ipynb
- Ex3-Interpolation.ipynb
- Ex4-Gradients.ipynb
- Ex5-Smoothing.ipynb
- Ex6-Scattered-Data.ipynb
- Ex7-Refinement-of-Triangulations.ipynb
示例
注意,这些示例是litho1pt0
中的笔记本,它们是从
包装本身:
python -c 'import litho1pt0; litho1pt0.documentation.install_documentation(path="Notebooks")'
前三个笔记本是litho1pt0
的介绍,没有明确提到stripy
,但是
接下来的两个例子展示了如何在stripy
例程的帮助下搜索、插值和绘图。
- Ex1-Litho1Layers.ipynb
- Ex2-Litho1Properties.ipynb
- Ex3-CrustalRegionalisation.ipynb
- WorkEx1-CratonAverageProperties.ipynb
- WorkEx2-OceanDepthAge.ipynb
安装
最好安装(numpy和Fortran编译器 gfortran,必需):
python setup.py build
- 如果更改Fortran编译器,则可能需要添加
运行setup.py时的标志
config_fc --fcompiler=<compiler name>
(有关numpy.distutils,请参见文档)。
python setup.py install
或者使用pip安装:
pip install [--user] stripy
用法
条纹套装包含两个类别:
- 条纹(球面坐标)
- 三角测量(笛卡尔坐标)
这些类共享相似的方法,并且可以很容易地交换。 此外,还提供了许多用于构建的助手函数
一系列测试位于tests子目录中。
码头工人
不依赖于特定编译器的更直接的安装依赖于docker虚拟化系统。
要安装Docker映像并测试它是否正常工作:
docker pull lmoresi/stripy:latest
docker run --rm lmoresi/stripy:latest help
安装bash的帮助脚本:
docker run --rm lmoresi/stripy:latest bash_utils > bash_utils.sh
source bash_utils.sh
(您可能会发现移动/重命名此文件并将其从 登录时的bash配置文件)
bash-utils.sh脚本安装以下函数 可通过bash命令行使用:
stripy-docker-help stripy-docker-sh stripy-docker-nb stripy-docker-browse stripy-docker-serve stripy-docker-terminal
有关这些功能的详细信息,请运行
source bash_utils.sh
stripy-docker-help
要像使用docker版本一样使用,比如说,使用ipython在命令行上键入:
source bash_utils.sh # (only needs to be done once) stripy-docker-terminal ls ipython
使用Docker版本运行脚本
source bash_utils.sh # (only needs to be done once) stripy-docker-sh my_python_script.py
参考文献
Laske,G.,G.Masters和Z.MA(2013年),《甲壳1的更新》。地壳0-a 1度全球模型,地球物理研究摘要,15,egu2013-2658。
Pasyanos,M.E.,T.G.Masters,G.Laske和Z.MA(2014年),《岩石1.0:更新地壳》地球岩石圈模型,地球物理研究杂志固体地球,119(3),2153–2173,doi:10.1002/2013jb010626。
R.J.Renka,“算法751:Tripack:一个约束的二维Delaunay三角剖分包”,ACM Trans.数学。《软件》,第22卷,第1期,1996年,第1-8页。
R.J.Renka,“算法752:SRFPack:张力下带约束曲面的散乱数据拟合软件”,ACM Trans.数学。软件,第22卷,第1期,1996年,第9-17页。
R.J.Renka,“算法772:Stripack:球面上的Delaunay三角剖分和Voronoi图”,ACM Trans.数学。《软件》,第23卷,第3期,1997年,第416-434页。
R.J.Renka,“算法773:SSRFPACK:在有张力表面的球体表面上的散射数据插值”,ACM Trans.数学。软件,第23卷,第3期,1997年,第437-439页。