Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve plate boundary statistics #316

Merged
merged 23 commits into from
Feb 2, 2025

Conversation

jcannon-gplates
Copy link
Contributor

  • Added PlateReconstruction.crustal_production_destruction_rate():
    • Calculates total crustal production/destruction rates of divergent/convergent plate boundaries.
  • Added PlateReconstruction.divergent_convergent_plate_boundaries():
  • Changed PlateReconstruction.tessellate_mid_ocean_ridges():
    • Now uses pygplates.TopologicalSnapshot.calculate_plate_boundary_statistics() by default.
      • But can change to previous method (in ptt.ridge_spreading_rate).
      • Can specify plate divergence threshold for spreading (when not using ptt).
    • Also optionally output spreading obliquity/normal and left/right plates IDs.
    • Can specify extra input parameters, such as transform segment deviation and spreading feature types.
  • Changed PlateReconstruction.tessellate_subduction_zones():
  • Added PlateReconstruction.topological_snapshot():
    • Returns a pygplates.TopologicalSnapshot.
    • Can use that to extract resolved topologies, calculate velocities at point locations, calculate plate boundary statistics, etc.
    • Resolved topologies (topological snapshot) are cached for the current reconstruction time.
      • Cached snapshot is returned if same reconstruction time requested again.
  • Start using anchor_plate_id=None (instead of anchor_plate_id=0):
    • That way if user doesn't explicitly specify anchor plate ID, then uses default anchor plate (stored inside the RotationModel).
    • See #290.
  • Plot all output parameters of PlateReconstruction.tessellate_mid_ocean_ridges() and PlateReconstruction.tessellate_subduction_zones().
    • One subplot per output scalar (in unittest/test_tessellate.py).

If so, defaults to that of RotationModel (or zero if rotation features).
Instead use default anchor plate of RotationModel.
See discussion in #290.
No need to resolve topologies if they're already available.
By adding 'output_obliquity_and_normal_and_left_right_plates' argument
to spreading_rates().
Not all models have them. So raise error if so.
Also:
- Default spreading feature type is mid-ocean ridge.
- Default anchor plate is None (to use default anchor plate of rotation
  model, or zero if rotation files specified).
- Used numpydoc for docstring.
- Specify transform segment deviation (defaults to 70 degrees).
  Can specify None to include transform segments.
- Specify spreading feature types (defaults to mid-ocean ridge).
- Can output obliqity, normal azimuth and left/right plate IDs.
It is used when 'use_ptt' is False, as an alternative using
ptt.spreading_rates(). It also supports an optional orthogonal
divergence threshold (that PTT doesn't support).
Incorrectly used 'orthogonal' velocity recently in f0a3f86.
It is used when 'use_ptt' is False, as an alternative to using
ptt.subduction_convergence. It also supports an optional orthogonal
convergence threshold (that PTT doesn't support).
ptt.ridge_spreading_rate will still only consider spreading feature
types.
Matches behaviour of 'ptt.ridge_spreading_rate.spreading_rates()'
which rejects zero spreading stage rotations.
Since they are not *plate* boundaries. Also ignore for spreading types.
The same keyword args supported by ptt.subduction_convergence.
Also fixed table in docstrings describing keyword args (converted from
reST to pdoc).
Using
pygplates.TopologicalSnapshot.calculate_plate_boundary_statistics().
...at divergent/convergent points along plate boundaries.
Also renamed 'plate_boundary_convergence_divergence()' to
'divergent_convergent_plate_boundaries()'.
Also explicitly numpydoc the output parameters.
@jcannon-gplates jcannon-gplates added this to the release 2.0.0 milestone Feb 2, 2025
@jcannon-gplates jcannon-gplates merged commit ca4a898 into master Feb 2, 2025
16 checks passed
@jcannon-gplates jcannon-gplates deleted the improve-plate-boundary-stats branch February 2, 2025 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant