GPlates / gplately

GPlately is a Python package to interrogate tectonic plate reconstructions.
https://gplates.github.io/gplately/
GNU General Public License v2.0
55 stars 11 forks source link

age-gridding seems to be breaking down entirely #190

Closed michaelchin closed 1 week ago

michaelchin commented 3 weeks ago

The info below was provided by Sabin.

Maybe it’s something I’m doing wrong here, but the gplately method for age-gridding seems to be breaking down entirely if the topology section is a topological line. The South Atlantic is essentially broken in this model from the beginning.

https://filesender.aarnet.edu.au/?s=download&token=90fe2b27-ae83-474c-b621-8e782639ede3

Each point is tagged as a MidOceanicRidge, and the topological line itself is tagged correctly too. So I’m not sure what’s going on. I then added gpml:leftPlate and gpml:rightPlate to the topological line, in the hope it will fix the problem. But no luck.

Ben, maybe you have an insight into a basic aspect, which is, does the workflow deal with topological lines (MORs) at all? If not, it would need to be added as a very high priority – but perhaps there’s something I’m missing???

Screenshot 2024-06-07 at 12 20 22 PM Screenshot 2024-06-07 at 12 20 33 PM Screenshot 2024-06-07 at 12 20 46 PM Screenshot 2024-06-07 at 12 21 38 PM
jcannon-gplates commented 3 weeks ago

I think I've found the issue - I'll write more up later tonight (or tomorrow).

jcannon-gplates commented 3 weeks ago

I think the MOR is not being detected as a spreading feature (at this point in the code, called from here).

I had a look at the MOR feature in the above example (specifically South Atlantic MOR topology 114-85 Ma) and I think it's an issue with that feature not having a gpml:reconstructionMethod property to indicate that it's an MOR (only having a left and right plate ID is not quite sufficient). So instead the code is looking for a plate/conjugate ID pair and not finding them, and hence ignoring the MOR (when generating seed points along the ridge).

I can see why this is happening to MORs that are topological lines. An MOR that is a topological line doesn't need these properties to determine its motion (like a non-topological line does) since its motion is determined exclusively by the independently moving points it's topologically connected to. However for age grids, these properties are needed to move the age-gridding seed points (which start out along the MOR).

So, adding the following properties to that feature (eg, using GPlates) should hopefully fix that:

  1. gpml:reconstructionMethod property with a value of HalfStageRotationVersion3.
    • Actually, for age gridding the version of half-stage doesn't matter (it's not used), but might as well be the latest (version 3).
  2. gpml:geometryImportTime property with the time at which spreading starts (eg, time of appearance of MOR).
    • Actually, this property isn't needed at all for the age gridding since age gridding only needs the stage pole of the MOR (from left/right plate IDs) and doesn't need to position the MOR (relative to the left plate) since it's a topological line (ie, already positioned).
    • So maybe don't add this property. And just leave it if there's one already.
michaelchin commented 1 week ago

Waiting for customer's feedback on John's solution. Add label 'pending'. Pending on customer's feedback.

sabinz commented 1 week ago

John, this works great, thanks - exactly the missing piece that was needed. This issue can now be closed.