R语言实践——古今地理坐标点转换(rgplates)

1. 安装rgplates

install.packages("rgplates")

2. 调用rgplates

library(rgplates)

3. 快速上手

3.1 单个坐标点转换

计算当今坐标点(95,54)在140Ma(百万年前)的古坐标
输入

reconstruct(matrix(c(95, 54), nrow=1), 140, model="SETON2012")

输出

     paleolong paleolat
[1,]   84.9862  59.2575

3.2 多个坐标点转换

计算当今坐标(95,54)和(142,-33)在140Ma的古坐标
输入

xy <-cbind(long=c(95,142), lat=c(54, -33))
reconstruct(xy, 140, model="SETON2012")

输出

     paleolong paleolat
[1,]   84.9862  59.2575
[2,]  123.3740 -65.7611

4. 函数解读(reconstruct)

通过上面的两个快速上手的例子,博主相信大家已经知道了reconstruct()函数就是用来将现今坐标推算到古时坐标的,但前面只介绍了最简单的应用。
下面博主将为大家详细介绍reconstruct()的参数,并通过例子更好地理解参数的意义。

4.1 reconstruct()关键参数

reconstruct(x, …),…表示其余参数,它们根据x的数据类型不同而不同。
以x的数据类型为matrix为例,reconstruct()函数的参数有:

reconstruct(x, age, model=“PALEOMAP”, listout = TRUE, verbose = FALSE, enumrate = TRUE, chunk = 200, reverse = FALSE, path.gplates = NULL, cleanup = TRUE, dir = NULL, plateperiod = FALSE)

4.2 参数详解

  • x:可以是一个表示经纬度的向量(vector),也可以是第一列经度+第二列纬度的matrix/dataframe。
  • age:计算x在age前的坐标。
  • model:重建依赖的模型。默认为"PALEOMAP",还提供了"SETON2012",“MULLER2016”,“GOLONKA”,“MATTHEWS2016”。(见4.3.1实例一)
  • listout:(逻辑变量)默认为TRUE。如果提供了多个age,且listout设为TRUE,就会输出一个list(见4.3.2实例二)
  • verbose:(逻辑变量)默认FALSE。决定是否输出URL响应过程。(见4.3.3实例三)
  • enumerate:(逻辑变量)默认为TRUE。决定是否匹配坐标点和重建时间。(见4.3.4 实例四)
  • chunk:(数值)默认为200。一次执行的坐标点上限。
  • reverse:(逻辑变量)默认为FLASE。决定向前还是向后重建坐标点。如果为TRUE,将会计算给定时间给定坐标的当今坐标。(见4.3.5实例五)
  • path.gplates:(字符变量)当要使用本地模型且默认的GPlates路径不存在时,需要指定。
  • cleanup:(逻辑变量)当使用本地模型时决定是否在重建完成后立即清理临时文件。默认TRUE。
  • dir:(字符变量)当使用本地模型时指定临时文件的保存路径。注意和cleanup互斥。
  • plateperiod:(逻辑变量)默认FALSE。当使用本地模型时指定特殊设置。

4.3 实例测试

4.3.1 实例一:使用不同的重建模型

library(rgplates)
xy = cbind(long=c(95,142), lat=c(54, -33))
ages = list(100, 50)
models = list("SETON2012", "MULLER2016","GOLONKA", "PALEOMAP","MATTHEWS2016")

for (m in models) {
  print(m)
  print(try(reconstruct(xy, 140, model=m), silent = TRUE))
}

输出如下:
R语言实践——古今地理坐标点转换(rgplates)_第1张图片
可以看到不同模型重建结果还是有较大的差异。"MATTHEWS2016"模型在测试时无法使用!

4.3.2 实例二:重建多个时间点

library(rgplates)
xy = cbind(long=c(95,142), lat=c(54, -33))
ages = list(100, 50)
models = list("SETON2012", "MULLER2016","GOLONKA", "PALEOMAP","MATTHEWS2016")

l = reconstruct(xy, ages, listout=FALSE)
ls = reconstruct(xy, ages, listout=TRUE)

结果如下:
R语言实践——古今地理坐标点转换(rgplates)_第2张图片

4.3.3 实例三:输出URL响应

library(rgplates)
xy = c(95, 54)
ages = list(100, 50)
models = list("SETON2012", "MULLER2016","GOLONKA", "PALEOMAP","MATTHEWS2016")

reconstruct(xy, ages, verbose=TRUE)

结果如下:
R语言实践——古今地理坐标点转换(rgplates)_第3张图片

4.3.4 实例四:枚举重建

library(rgplates)
xy = cbind(long=c(95,142), lat=c(54, -33))
ages = list(100, 50)
models = list("SETON2012", "MULLER2016","GOLONKA", "PALEOMAP","MATTHEWS2016")

reconstruct(xy, ages, enumerate=FALSE)
reconstruct(xy, ages, enumerate=TRUE)

结果如下:
R语言实践——古今地理坐标点转换(rgplates)_第4张图片

4.3.5 实例五:借今推古/借古推今

library(rgplates)
present = c(95, 54)
old = c (82, 55)
ages = 100

reconstruct(present, ages, reverse=FALSE)
reconstruct(old, ages, reverse=TRUE)

结果如下:
R语言实践——古今地理坐标点转换(rgplates)_第5张图片

你可能感兴趣的:(R语言,r语言,开发语言)