EarthLifeConsortium / elc_api

EarthLife Consortium API
http://earthlifeconsortium.org
Apache License 2.0
12 stars 2 forks source link

Dealing with paleo coordinates. #4

Closed SimonGoring closed 6 years ago

SimonGoring commented 7 years ago

Should this be a flag in each API endpoint that turns on or off the use of paleo coordinates? Or are these endpoints in and of themselves?

SimonGoring commented 7 years ago

This would use the publiclly available GPlates endpoint, we could either use this on the fly, or do a dump.

SimonGoring commented 7 years ago

@jpjenk Can you link to the API documentation for this?

cambro commented 7 years ago

We actually need more and better documentation on the PBDB for paleogeographic coordinates. The issue is that there are multiple models and some ambiguity when it comes to which times should be used for the rotation: https://paleobiodb.org/data1.2/colls/summary_doc.html

SimonGoring commented 7 years ago

In general the best model to use is the GPlates model, which would live in the definitions of pgm here, but there are several versions:

Model Description
scotese Use the paleogeographic model defined by C. R. Scotese (2002), which is the one that this database has been using historically.
gplates Use the paleogeographic model defined by the GPlates software from the EarthByte group. By default, the coordinates for each collection are calculated at the midpoint of its age range.
gp_early Use the GPlates model, calculating the rotations at the early end of each collection's age range
gp_mid A synonym for the value gplates.
gp_late Use the GPlates model, calculating the rotations at the late end of each collection's age range

So we still need to be able to push in values with the format (modern) lat, long and ageBP, time_unit and then get out the (paleo) lat, long, model, age, notes. This would let us support the use of a mixed model system if we need it, where we would fill from one model when another failed, and note that in the notes field.

@cambro, is there a way to do this directly with gplates? Or do we need to go through the PBDB occs API? Could you write an example call to the appropriate API?

cambro commented 7 years ago

We already offer many of these as services via Macrostrat, so that is one option.

SimonGoring commented 7 years ago

Awesome, I think what I was asking for earlier was a sample API call for the macrostrat service. One of the things @jpjenk and I were talking about was passing in some of the oldest Neotoma records to see if they do actually show any differences in paleo-coordinates, or at least, the age beyond which paleo-coordinates become relevant, to try to limit our use of the service for younger data returns.

I looked at the Macrostrat API, but I don't see a route for passing in geoJSON: https://macrostrat.org/api

jpjenk commented 6 years ago

Paleocoordinates may be optionally returned though a side call to the Gplates model. Additionally, a user can convert modern to paleo coordinates using the /misc/paleocoords route which is a break out tool.

The implementation does impose some overhead and performance could be improved by creating a vector of found lat/lons and sending them to Gplates in a single call (as long as this is supported by py-gplates).