Skip to main content

Plate Model Manager

Project description

plate-model-manager

unittest unittest-win build-doc PyPI version anaconda_badge platforms downloads

Originally the plate-model-manager was designed for GPlately. Later, it was found also useful in other scenarios and contexts. The plate-model-manager downloads and manages the plate reconstruction model files. It is a dataset manager for plate tectonic reconstruction models, similar to NPM or Conda for software packages.

Have you ever wondered where to get the plate tectonic reconstruction models for your research? Are you tired of downloading files from Internet manually and specify file paths when calling PyGPlates functions? If the answer is yes, you probably want to check out this plate-model-manager Python module.

How to install

pip install plate-model-manager

How to use

Use PMM with pyGPlates 🌰

pm_manager = PlateModelManager()
model = pm_manager.get_model("Muller2019")

# create a point feature at (0,0)
point_feature = pygplates.Feature()
point_feature.set_geometry(pygplates.PointOnSphere(0, 0))

# assign plate ID
point_feature_with_PID = pygplates.partition_into_plates(
  model.get_static_polygons(), # 👈👀 LOOK HERE
  model.get_rotation_model(), # 👈👀 LOOK HERE
  [point_feature])

# Reconstruct the point features.
reconstructed_feature_geometries = []
time=140
pygplates.reconstruct(
  point_feature_with_PID,
  model.get_rotation_model(), # 👈👀 LOOK HERE
  reconstructed_feature_geometries,
  time)

print(reconstructed_feature_geometries[0].get_reconstructed_geometry().to_lat_lon())

See the full example at https://github.com/GPlates/pygplates-tutorials/blob/master/notebooks/working-with-plate-model-manager.ipynb

Use PMM with GPlately 🌰

pm_manager = PlateModelManager()
model = pm_manager.get_model("Muller2019")
model.set_data_dir("plate-model-repo")

age = 55
test_model = PlateReconstruction(
    model.get_rotation_model(), # 👈👀 LOOK HERE
    topology_features=model.get_layer("Topologies"), # 👈👀 LOOK HERE
    static_polygons=model.get_layer("StaticPolygons"), # 👈👀 LOOK HERE
)
gplot = PlotTopologies(
    test_model,
    coastlines=model.get_layer("Coastlines"), # 👈👀 LOOK HERE
    COBs=model.get_layer("COBs"), # 👈👀 LOOK HERE
    time=age,
)

See the full example at https://github.com/GPlates/gplately/blob/master/Notebooks/Examples/working-with-plate-model-manager.py

Use the command line

  • pmm ls

    This command will list all available plate tectonic reconstruction models.

    pmm ls command screenshot

  • pmm ls Muller2019

    This command will show the details of model 'Muller2019'.

    pmm ls model command screenshot

  • pmm download Muller2019 plate-models-data-dir

    This command will download model "Muller2019" into a folder 'plate-models-data-dir'.

    pmm download model screenshot

  • pmm download all

    This command will download all available models into the current working directory.

    pmm download all screenshot

Use in Python script

👉 The Python code below prints all available model names.

# print all available model names
from plate_model_manager import PlateModelManager

pm_manager = PlateModelManager()
for name in pm_manager.get_available_model_names():
  print(name)

python list all models screenshot

👉 The Python code below downloads the "Muller2019" model into folder "plate-models-data-dir". The model.get_rotation_model() function returns the rotation file location.

from plate_model_manager import PlateModelManager

pm_manager = PlateModelManager()
model = pm_manager.get_model("Muller2019",data_dir="plate-models-data-dir")
print(model.get_rotation_model())

python print rotation screenshot

Examples

This Python module is mostly used in GPlately, GPlates Web Service, PyGPlates Tutorials and GPlates Python Proxy.

A good example of using PlateModelManager with PyGPlates can be found at https://github.com/GPlates/pygplates-tutorials/blob/master/notebooks/working-with-plate-model-manager.ipynb.

The examples of using PlateModelManager with GPlately:

The PlateModelManager can also be used with the GPlates desktop. Use the command line to download the plate model files and open the files with GPlates desktop. This will save the trouble of downloading files from Internet manually.

Dependencies

  • aiohttp
  • requests
  • nest_asyncio

Event loop RuntimeError

For Jupyter Notebook, Web Server or GUI application users, you need the following two lines to workaround the event loop RuntimeError. If you do not add these two lines, the PlateModelManager still works. But you will see a warning message. You can ignore the warning message safely. If the warning message bothers you, add the two lines before calling PlateModelManager.

https://anaconda.org/conda-forge/nest-asyncio/

import nest_asyncio
nest_asyncio.apply()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plate_model_manager-1.2.1.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

plate_model_manager-1.2.1-py3-none-any.whl (39.2 kB view details)

Uploaded Python 3

File details

Details for the file plate_model_manager-1.2.1.tar.gz.

File metadata

  • Download URL: plate_model_manager-1.2.1.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for plate_model_manager-1.2.1.tar.gz
Algorithm Hash digest
SHA256 55d2bdd09e5efc9c12b6ad23a381246e3eb1a62877795d302d9df05a61aa014c
MD5 b6d83fcb32b975bd1a2267a1eb76d731
BLAKE2b-256 74a5486c4b8cba5a00986be3e5c8c6403718c3147f11e48575d6cc2d2d2f5f65

See more details on using hashes here.

File details

Details for the file plate_model_manager-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for plate_model_manager-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2a1e56a7216b37fd339f6ec4f85824ebd7bd64c98d72bf3848b81b84b257320a
MD5 48d9a9dc7d25219abca55a750c29c6be
BLAKE2b-256 1102e5036fe793ffbfafd8c365f90d3c4c5baa16c9e99d9b22ad1a7ac9aa9f0c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page