当前位置: 首页 > news >正文

计算古坐标——基于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格式即可。

http://www.lryc.cn/news/155383.html

相关文章:

  • 智安网络|加强软件供应链安全保障:共同抵御威胁的关键路径
  • 华为Mate 60系列发售,北斗卫星通信技术进一步深入大众消费市场
  • Grad-CAM,即梯度加权类激活映射 (Gradient-weighted Class Activation Mapping)
  • 程序发布——使用pyinstaller打包识别程序为exe可执行文件 详解
  • Docker 使用
  • 电脑c盘变红满了怎么清理?4个方法轻松清理!
  • 【UE 材质】实现角度渐变材质、棋盘纹理材质
  • [深度学习]1. 深度学习知识点汇总
  • 鲁棒优化入门(6)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)
  • golang通过gorm操作sqlite设置主键自增
  • 基于Spring Boot的企业门户网站设计与实现(Java+spring boot+MySQL)
  • Json解析流程
  • Mybatis 动态SQL – 使用choose标签动态生成条件语句
  • http接口自动化测试框架实现
  • Android逆向学习(三)vscode修改smali绕过vip
  • 代码随想录训练营第38天|62.不同路径,63.不同路径II
  • BlueStore BlueFS rocksdb 关联性梳理
  • PgSQL-并行查询系列-介绍[译]
  • Linux以系统服务的方式启动Kafka(其他服务同理)
  • 成都瀚网科技有限公司:抖店的评论会消失吗?
  • 优先级队列priority_queue以及仿函数的使用
  • java+ssm+mysql水费管理系统
  • 搭建最简单的SpringBoot项目
  • Windows系统手动重新生成性能计数器
  • go elsaticsearch demo
  • 小游戏分发平台如何以技术拓流?
  • 力扣|找出和所对应的两数的下标
  • 使用命令行创建仓库
  • ESLint 中的“ space-before-function-paren ”相关报错及其解决方案
  • docker常用中间件安装