计算古坐标——基于GPlates Web Service的坐标点重建

Gplates客户端和在线门户,pygplates和gplately是存在内在联系的应用,它们主要实现可视化,输入板块模型和化石点的现今坐标信息,在GPlates中可视化呈现,点位的坐标计算并不展现。而rgplates利用R语言提供了直接进行坐标点计算的reconstruct函数,最近看到了GPlates Web Service,即GPlates的API,阅读熟悉该文档的同时用python写一下脚本。

坐标点重建

该功能的作用:将现今的地理坐标点重建至古时的位置。根据选择的重建模型(板块模型),每个坐标点会被分配一个板块id,随即重建至期望的时间点。需要使用GET请求完成坐标点重建

请求网址终端

https://gws.gplates.org/reconstruct/reconstruct_points/

参数

  • points:必需的。期望重建的坐标点,经纬度用逗号分隔。
  • archor_plate_id:默认为0。重建锚定的板块id,用整数值表示。
  • time:必需的。重建时间点。
  • model:默认为网络服务器的设置。板块重建模型的名称。
  • pids:为每个坐标点提供各自锚定的板块id,以便提高运行性能。
  • pid:为所有坐标点提供同一锚定的板块id,以便提高运行功能。
  • reverse:控制重建方向的标志。如果本参数出现在url中,那么服务器将视输入的坐标为古坐标,进而计算它的现今坐标。
  • fc:feature collection(特征集合)。如果本参数出现,服务器将会返回一个GeoJSON特征集合。
  • return_null_points:如果本参数出现,服务器将返回空坐标点。空坐标点的出现是因为现今坐标点在指定的过去时间点并不存在。
  • ignore_valid_time:如果此参数存在,重建计算会突破“有效时段”的限制,从而始终可以返回坐标点,即便是这些坐标点毫无意义(不在有效时段内)。

返回值:重建后的坐标以GeoJSON格式返回。

  1. 例一:将两个坐标点(经:95,纬:54)(经:142,纬:-33)重建至140Ma前,模型采用“SETON2012”。返回GeoJSON格式的重建坐标点。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=95,54,142,-33&time=140&model=SETON2012
https://gws.gplates.org/reconstruct/reconstruct_points/?lons=95,142&lats=54,-33&time=140&model=SETON2012

{"type":"MultiPoint","coordinates":[[84.99,59.26],[123.37,-65.76]]}
  1. 例二:将两个古坐标点((lon:84.99,lat:59.26)(lon:123.37,lat:-65.76))重建至当今。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=84.99,59.26,123.37,-65.76&model=SETON2012&reverse
https://gws.gplates.org/reconstruct/reconstruct_points/?lats=59.26,-65.76&lons=84.99,123.37&time=140&model=SETON2012&reverse

{"type":"MultiPoint","coordinates":[[95.01,54.00],[142.00,-33.00]]}
  1. 例三:返回GeoJSON特征集合。服务器不仅返回古坐标,还会返回坐标点存在的时间段。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=95,54&time=140&model=SETON2012&fc
https://gws.gplates.org/reconstruct/reconstruct_points/?lats=54&lons=95&time=140&model=SETON2012&fc

{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[84.99,59.26]},"properties":{"valid_time":[600.0,"distant future"]}}]}
  1. 例四:返回空坐标点。当现今坐标点在期望的时间点并不存在时即会返回空坐标。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=-100,50,160,10,100,50&time=100&model=PALEOMAP&return_null_points
https://gws.gplates.org/reconstruct/reconstruct_points/?lats=50,10,50&lons=-100,160,100&time=100&model=PALEOMAP&return_null_points

{"type":"MultiPoint","coordinates":[[-56.84,47.13],null,[89.38,52.58]]}
  1. 例五:无效坐标点返回999.99。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=-100,50,160,10,100,50&time=100&model=PALEOMAP
https://gws.gplates.org/reconstruct/reconstruct_points/?lats=50,10,50&lons=-100,160,100&time=100&model=PALEOMAP

{"type":"MultiPoint","coordinates":[[-56.84,47.13],[999.99,999.99],[89.38,52.58]]}
  1. 例六:使用POST请求对大量坐标点进行重建,参考https://github.com/GPlates/gplates-web-service/blob/master/python/gplatesws.ipynb
  2. 例七:提供锚定板块ID以提高运行性能。所有坐标点使用同一板块ID。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=95,54,142,-33&time=140&model=SETON2012&pid=801
https://gws.gplates.org/reconstruct/reconstruct_points/?lons=95,142&lats=54,-33&time=140&model=SETON2012&pid=801

{"type": "MultiPoint", "coordinates": [[110.4975, 29.7166], [123.374, -65.7611]]}
  1. 例八:提供锚定板块ID以提高运行性能。所有坐标点使用各自的板块ID。

https://gws.gplates.org/reconstruct/reconstruct_points/?points=95,54,142,-33&time=140&model=SETON2012&pids=801,704
https://gws.gplates.org/reconstruct/reconstruct_points/?lons=95,142&lats=54,-33&time=140&model=SETON2012&pids=801,704

{"type": "MultiPoint", "coordinates": [[110.4975, 29.7166], [-164.6523, -52.7301]]}

支持信息

*可用的板块重建模型:默认模型为SETON2012。

  • MULLER2022
  • MERDITH2021
  • MULLER2019
  • MULLER2016
  • MATTHEWS2016_mantle_ref
  • MATTHEWS2016_pmag_ref
  • RODINIA2013
  • SETON2012
  • GOLONKA
  • PALEOMAP

代码思路

只需要实现单个点的重建代码即可。其余的操作均可以此为基础而实现。
再了解以下GeoJSON格式即可。

你可能感兴趣的:(paleobotany,python)