pygplates专栏——Getting started


本文档涵盖了pyGPlates的安装和教程,让您开始使用pyGPlates。

安装pyGPlates

本部分涵盖了多个安装pyGPlates的方法

通过conda安装

建议通过conda安装pyGPlates。

要安装最新稳定版本的pyGPlates,请在终端或命令窗口中输入以下命令(在macOS和Ubuntu上,这是一个终端窗口,在Windows上,您需要从开始菜单中打开Anaconda提示符):

conda install -c conda-forge pygplates

我们建议将pyGPlates安装到新的conda环境中。例如,下面的代码创建并激活了一个名为pygplates_py310的Python 3.10环境,其中包含pyGPlates及其所有依赖库:

conda create -n pygplates_py310 -c conda-forge python=3.10 pygplates
conda activate pygplates_Py310

之后便可以使用pyGPlates,比如查看它的版本:

python -c "import pygplates; pring(pygplates.__version__)"

从预编译的二进制文件安装

如果您决定不使用使用conda安装的推荐方法,则可以使用预编译的pyGPlates二进制文件。
此版本包含以下预编译的pyGPlates文件供下载:

# Pre-compiled for Windows:
pygplates_0.36.0_py37_win64.zip
pygplates_0.36.0_py38_win64.zip
pygplates_0.36.0_py39_win64.zip
pygplates_0.36.0_py310_win64.zip

# Pre-compiled for macOS on Intel (x86_64):
pygplates_0.36.0_py37_Darwin-x86_64.zip
pygplates_0.36.0_py38_Darwin-x86_64.zip
pygplates_0.36.0_py39_Darwin-x86_64.zip
pygplates_0.36.0_py310_Darwin-x86_64.zip

# Pre-compiled for macOS on M1 (arm64):
pygplates_0.36.0_py37_Darwin-arm64.zip
pygplates_0.36.0_py38_Darwin-arm64.zip
pygplates_0.36.0_py39_Darwin-arm64.zip
pygplates_0.36.0_py310_Darwin-arm64.zip

# Pre-compiled for Ubuntu:
pygplates_0.36.0_py36_ubuntu-18.04-amd64.deb
pygplates_0.36.0_py38_ubuntu-20.04-amd64.deb
pygplates_0.36.0_py39_ubuntu-21.10-amd64.deb
pygplates_0.36.0_py310_ubuntu-22.04-amd64.deb

您需要选择与您的操作系统(和CPU架构)和现有Python安装相匹配的pyGPlates预编译版本。例如,如果你在M1系统上使用macOS,并且你的Python版本是3.10,那么你需要下载pygplates_0.36.0_py310_Darwin-arm64.zip。

从源代码安装

此版本包含以下pyGPlates源代码文件供下载:

pygplates_0.36.0_src.zip
pygplates_0.36.0_src.tar.bz2

提取这些存档文件中的任何一个都会创建一个目录pygplates_0.36.0_src,其中包含pyGPlates源代码。

源代码通常用于在其他安装方法不可用的系统(通常是Linux)上编译pyGPlates。

安装文档

此版本包含以下pyGPlates文档文件供下载:

pygplates_0.36.0_docs.zip

如果将这个zip文件解压缩到硬盘上,然后在web浏览器中打开pygplates_0.36.0_docs/index.html,您将看到该文档的首页。

教程

本教程首先提供函数和类的基本概述。然后介绍设置和运行一个简单的pyGPlates脚本的步骤。

什么是函数和类?

函数

本质上,函数接受参数,做一些工作,然后可选地返回一个值。函数参数允许在函数之间传递数据。输入参数将数据传递给函数,输出参数将数据从函数传递回调用方。函数返回值也是将数据传递回调用者的另一种方式。如果函数首先从它读取(输入),然后向它写入(输出),则函数参数可以既是输入又是输出。

pyGPlates函数调用的一个例子是将海岸线重建为10Ma:

pygplates.reconstruct("coastlines.gpml", "rotations.rot", "reconstructed_dcoastlines_10Ma.shp", 10)

所有四个参数都是输入参数,因为它们只向函数传递数据(即使’reconstructed_coastlines_10Ma.shp '指定要写入输出的文件名)。

pygplates.recnstruct()函数的类似用法是将重建的输出附加到Python列表中(而不是写入文件):

reconstructed_feature_geometries = []
pygplates.reconstruct('coastlines.gpml', 'rotations.rot', reconstructed_feature_geometries, 10)

# Do something with the reconstructed output.
for reconstructed_feature_geometry in reconstructed_feature_geometries:
  ...

参数reconstructed_feature_geometries现在是一个输出参数,因为它用于将函数中的数据传递回调用者,以便调用者可以对它执行一些操作。

类主要是将一些数据分组为单个实体的一种方式。

通过提供特定的初始状态,可以从类中创建(实例化)对象。例如,可以从pygplates中创建(实例化)一个pygplates.PointOnSphere类通过给它一个特定的纬度和经度:

point = pygplates.PointOnSphere(latitude, longitude)

然后你可以在point对象上调用函数(方法),比如查询它的纬度和经度(这个特定的方法返回一个Python元组):

latitude, longitude = point.to_lat_lon()

point.to_lat_lon()表示to_lat_lon()函数应用在point对象上。

pyGPlates介绍性脚本

在开始本节之前,请确保您已经安装了pyGPlates。

源代码

我们的入门pyGPlates Python脚本将包含以下源代码行:

import pygplates

pygplates.reconstruct('coastlines.gpmlz', 'rotations.rot', 'reconstructed_coastlines_10Ma.shp', 10)

第一行…

import pygplates

告诉Python加载pyGPlates。

这需要在pyGPlates可以在后续语句中使用之前完成。

第二行…

pygplates.reconstruct('coastlines.gpmlz', 'rotations.rot', 'reconstructed_coastlines_10Ma.shp', 10)

将重建海岸线(从coastlines.gpmlz文件中加载)至10Ma年前,基于rotations.rot文件,然后将这些重建结果保存到reconstructed_castlines_10Ma.shp。

设置脚本

首先,我们需要创建Python脚本。这实际上只是一个文件扩展名为.py的文本文件。
为此,将上述源代码行复制到一个名为tutorial.py的新文件中(例如,使用文本编辑器)。

接下来,我们需要包含海岸线和板块运动的数据文件。
这些数据可以在GPlates地理数据中找到。
例如,在GPlates 2.3 geodata中,海岸线文件名为Global_EarthByte_GPlates_PresentDay_Coastlines.gpmlz 旋转文件名为muller2019 - young2019 - cao2020_combinedrotation.rot

猜你喜欢

转载自blog.csdn.net/whitedrogen/article/details/131677338