API Reference
PlateModelManager
The plate_model_manager.PlateModelManager class manages the plate reconstruction models.
You can use this class to do the things listed below.
Get a list of available model names.
Get a
plate_model_manager.PlateModelobject for a specific model name.Download all models into a folder.
- class plate_model_manager.PlateModelManager(model_manifest: str = '', timeout=(None, None))[source]
Bases:
objectManage discovery and loading of plate reconstruction model metadata.
Model manifests can be loaded from a local file or an HTTP(S) endpoint. Retrieved model configurations are used to construct
PlateModelinstances.- __init__(model_manifest: str = '', timeout=(None, None))[source]
Create a
PlateModelManagerinstance.If
model_manifestis omitted, the manager probes known PMM manifest endpoints and uses the first reachable URL.- Parameters:
model_manifest – Local path or HTTP(S) URL for a
models.jsonmanifest. Use this when hosting a custom model repository.timeout – Timeout tuple passed to HTTP requests.
- Raises:
InvalidConfigFile – If the manifest path/URL is invalid or does not contain valid JSON.
ServerUnavailable – If the manifest URL cannot be reached.
- download_all_models(data_dir: str = './') None[source]
Download layer data for all available models into
data_dir.- Parameters:
data_dir (str) – Destination directory for downloaded model data.
- get_available_model_names()[source]
Return all model keys from the loaded manifest.
- static get_default_repo_url()[source]
Return the first reachable default model-manifest URL.
Endpoints are probed in order using HTTP
HEADrequests.- Returns:
Reachable manifest URL.
- Return type:
- Raises:
ServerUnavailable – If none of the default endpoints are reachable.
- static get_local_available_model_names(local_dir: str)[source]
Return locally available model names from
local_dir.
- get_model(model_name: str = 'default', data_dir: str = '.', reference_frame: ReferenceFrame | None = None) PlateModel | None[source]
Return a
PlateModelformodel_name.The method resolves aliases, applies optional reference-frame handling, and instantiates
PlateModelwith the resolved configuration.- Parameters:
model_name – Model name or alias (case-insensitive). Defaults to
"default".data_dir – Parent directory for model downloads and cache files.
reference_frame – Optional reference frame. When PMAG is requested and a
_pmag_refvariant exists, that variant is selected automatically.
- Returns:
A configured
PlateModel, orNoneif the model is unavailable or incompatible with the requested reference frame.- Raises:
InvalidConfigFile – If alias resolution detects an invalid alias chain.
PlateModel
The plate_model_manager.PlateModel class manages the files in a plate reconstruction model.
You can use this class to do the things listed below.
Get a list of available layers in a plate model.
Download the rotation file(s).
Download the layer file(s) for a specific layer.
Download time-dependent raster files.
Download all files in a plate model.
- class plate_model_manager.PlateModel(model_name: str, model_cfg=None, data_dir: str = '.', reference_frame: ReferenceFrame | None = None, readonly=False, timeout=(None, None))[source]
Bases:
objectDownload and manage files for a plate reconstruction model.
In most workflows, create instances through
PlateModelManager.get_model()so model configuration and metadata are resolved automatically. Direct instantiation is primarily intended for advanced or offline use (for example,readonly=Truewith pre-downloaded local files).- __init__(model_name: str, model_cfg=None, data_dir: str = '.', reference_frame: ReferenceFrame | None = None, readonly=False, timeout=(None, None))[source]
Create a
PlateModelinstance.- Parameters:
model_name (str) – Model name to load.
model_cfg – Model configuration dictionary. This is typically provided by
PlateModelManager.get_model(), or loaded from local metadata in readonly mode.data_dir (str, default=".") – Parent directory used to store model files.
reference_frame (ReferenceFrame or None) – Default reference frame associated with this instance.
readonly (bool, default=False) – If
True, use only local files and do not perform downloads or updates.timeout – Network timeout tuple passed to file downloads.
- Raises:
Exception – If
readonly=Trueand the local model directory is invalid.
- create_model_dir()[source]
Ensure the model folder exists and refresh local metadata files.
This method creates
self.model_dirwhen missing, then always rewrites.metadata.jsonandreadme.txtfrom the current in-memory model configuration, even if the folder already exists.
- download_all()[source]
Download all layers and all configured time-dependent rasters.
- download_all_layers()[source]
Download all configured layers for this model.
This includes
Rotationswhen available, plus every entry undermodel["Layers"].
- download_time_dependent_rasters(raster_name, times=None)[source]
Download and cache a time series of rasters for
raster_name.- Parameters:
raster_name – Raster key in
model["TimeDepRasters"].times – Iterable of reconstruction times (Ma). If omitted, download every integer time from
SmallTimetoBigTimeinclusive.
- Raises:
Exception – If called in readonly mode or raster configuration is missing.
- get_COBs(return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the
COBslayer.
- get_age_grid(time: int | float, reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) str[source]
Return a local path for an
AgeGridsraster attimeMa.
- get_age_grids(times: List[int | float], reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) List[str][source]
Return local paths for
AgeGridsrasters at multiple times.
- get_anchor_id_for_pmag_reference_frame() int | None[source]
Return the PMAG anchor plate ID when this model supports PMAG.
Models that expose PMAG through
Attributes.PmagReferenceFrameAnchorPIDreturn that configured anchor plate ID. Dedicated_pmag_refmodels use0as the implicit PMAG anchor plate ID. Mantle-only models returnNone.- Returns:
PMAG anchor plate ID, or
Nonewhen PMAG is unsupported.- Return type:
int or None
- get_avail_layers()[source]
Return all available geometry layer names in this model.
- get_avail_time_dependent_raster_names()[source]
Return configured names of time-dependent rasters.
- get_big_time()[source]
Return the maximum reconstruction time in Ma.
- get_cfg()[source]
Return the model configuration dictionary.
- Returns:
Model metadata dictionary.
- Return type:
Dict
- get_coastlines(return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the
Coastlineslayer.
- get_continental_polygons(return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the
ContinentalPolygonslayer.
- get_data_dir()[source]
Return the parent directory containing downloaded models.
- Returns:
Data directory path.
- Return type:
- get_layer(layer_name: str, return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for a geometry layer in this model.
In writable mode, this function will check if the layer files exist on the local computer. If the files don’t exist or need to be updated, they are downloaded or updated before paths are returned.
In readonly mode, paths are resolved from the local model folder without checking for updates.
Note
This function is for accessing geometry layers(vector data), such as Coastlines, Topologies, StaticPolygons, etc. Call
get_avail_layers()to get a list of available layer names. For accessing time-dependent rasters, useget_raster()orget_rasters().- Parameters:
layer_name – Layer name. Call
get_avail_layers()to get a list of available layer names.return_none_if_not_exist – If
True, returnNoneinstead of raising exception when the layer does not exist.
- Returns:
List of matching layer file paths, or
Nonewhenreturn_none_if_not_exist=Trueand the layer does not exist.- Raises:
LayerNotFoundInModel – If the layer does not exist and
return_none_if_not_existisFalse.
- get_layer_metadata(layer_name: str, return_none_if_not_exist: bool = False) Dict | None[source]
Return metadata for a layer as a dictionary.
In writable mode, this method ensures the layer is downloaded/updated before reading metadata. In readonly mode, it reads from the local layer folder directly.
- Parameters:
layer_name – The layer name of interest.
return_none_if_not_exist – If set to
True, returnNonewhen the layer does not exist in the model.
- Returns:
Layer metadata dictionary, or
Noneifreturn_none_if_not_existis set toTrueand the layer is not found.- Raises:
LayerNotFoundInModel – Raise this exception if the layer name does not exist in this model.
Exception – If the layer metadata file is missing.
- get_model_dir()[source]
Return the local directory path for this model.
In writable mode, the model directory is created when missing.
- get_raster(raster_name: str, time: int | float, reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) str[source]
Return a local path for a single time-dependent raster.
The final raster key is built from
raster_nameand optional suffixes fromgenerated_fromandreference_frame(in that order), matching the naming convention used inmodel["TimeDepRasters"].- Parameters:
raster_name – Base raster name in
TimeDepRasters(for example,"AgeGrids").time – Reconstruction time (Ma) to fetch.
reference_frame – Optional reference-frame suffix to append to the raster name.
generated_from – Optional generation-method suffix to append to the raster name.
- Returns:
Local file path for the requested raster at
time.- Raises:
Exception – If this model has no
TimeDepRastersentry, if the constructed raster name is not configured, if the file is missing in readonly mode, or if a download fails in writable mode.
- get_rasters(raster_name: str, times: List[int | float], reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) List[str][source]
Return local paths for a sequence of time-dependent rasters.
The final raster key is built from
raster_nameand optional suffixes fromgenerated_fromandreference_frame(in that order), matching the naming convention used inmodel["TimeDepRasters"].- Parameters:
raster_name – Base raster name in
TimeDepRasters(for example,"AgeGrids").times – Reconstruction times (Ma) to fetch.
reference_frame – Optional reference-frame suffix to append to the raster name.
generated_from – Optional generation-method suffix to append to the raster name.
- Returns:
Local file paths for the requested times, in the same order as
times.- Raises:
Exception – If this model has no
TimeDepRastersentry, if the constructed raster name is not configured, if a requested file is missing in readonly mode, or if a download fails in writable mode.
- get_rotation_model(reference_frame: ReferenceFrame | None = None)[source]
Return rotation files, and optionally a PMAG anchor plate ID.
Rotation files are read from the local model directory in
readonlymode, or downloaded/updated first in writable mode.When
reference_frameisReferenceFrame.PmagReferenceFrame, this method also returns the anchor plate ID required by consumers that need PMAG reference frame rotations. The anchor ID is read frommodel["Attributes"]["PmagReferenceFrameAnchorPID"]when present. If that value is missing but this model is already under PMAG reference frame, set the anchor ID to0, such asmatthews2016_pmag_refmodel.- Parameters:
reference_frame – Optional reference frame for the returned rotation model. (since version 1.4.0)
- Returns:
If
reference_frameis PMAG, returns(rotation_files, anchor_pid)whererotation_filesis a list of.rot/.grotfile paths andanchor_pidis an integer. Otherwise returns onlyrotation_files.- Raises:
Exception – If PMAG is requested but the model is not PMAG and
Attributes.PmagReferenceFrameAnchorPIDis not defined.
- get_small_time()[source]
Return the minimum reconstruction time in Ma.
- get_spreading_rate_grid(time: int | float, reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) str[source]
Return a local path for a
SpreadingRateraster attimeMa.
- get_spreading_rate_grids(times: List[int | float], reference_frame: ReferenceFrame | None = None, generated_from: GenerationMethod | None = None) List[str][source]
Return local paths for
SpreadingRaterasters at multiple times.
- get_static_polygons(return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the
StaticPolygonslayer.
- get_supported_reference_frames() List[ReferenceFrame][source]
Return the reference frames which this model supports.
If the model name ends with “pmag_ref”, we will consider it as a PMAG reference frame model. Otherwise, it is a mantle reference frame model by default.
If the model configuration has a PmagReferenceFrameAnchorPID attribute, we will consider this model supports both PMAG and mantle reference frame, such as Zahirovic2022 model. The same rotation files can be used for both reference frames, but with different default anchor plate ID. For mantle reference frame, the anchor plate ID is usually 0. For PMAG reference frame, the anchor plate ID is usually a non-zero integer defined in the model configuration as PmagReferenceFrameAnchorPID attribute.
- Returns:
A list of supported reference frames.
- Return type:
- get_topologies(return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the
Topologieslayer.
- get_vector_data(name: str, return_none_if_not_exist: bool = False) List[str] | None[source]
Return local file paths for the vector data in this model.
This is an alias for
get_layer()to access vector data layers such as Coastlines, Topologies, StaticPolygons, etc. The purpose of this function is to provide a more intuitive API for users who may wonder whether the term “layer” means vector layer or raster layer. You can use this function to get file paths for vector data available in this model by specifying its name.Call
get_avail_layers()to get a list of available names for vector data.- Parameters:
name – The vector data name which is the same with the layer_name in
get_layer(). Callget_avail_layers()to get a list of available vector layer names.return_none_if_not_exist – If
True, returnNoneinstead of raising exception when the vector data doesn’t exist.
- Returns:
List of vector data file paths, or
Nonewhenreturn_none_if_not_exist=Trueand the vector data doesn’t exist.
- static is_model_dir(folder_path: str)[source]
Return whether
folder_pathlooks like a local model directory.
- property model_dir
Return the model folder path under
data_dir.
- purge()[source]
Delete the model directory and all files under it, if present.
- purge_layer(layer_name)[source]
Delete a local layer directory for
layer_name, if present.
- purge_time_dependent_rasters(raster_name)[source]
Delete local cached rasters for
raster_name, if present.
- set_data_dir(new_dir)[source]
Set a new parent directory for this model.
- Parameters:
new_dir – New data directory path.
PresentDayRasterManager
The plate_model_manager.PresentDayRasterManager class manages the present-day rasters.
You can use this class to do the things listed below.
Get a list of available present-day raster names.
Download a specific present-day raster.
- class plate_model_manager.PresentDayRasterManager(data_dir='present-day-rasters', raster_manifest=None)[source]
Bases:
objectManage present-day raster metadata retrieval and local raster access.
- __init__(data_dir='present-day-rasters', raster_manifest=None)[source]
Create a
PresentDayRasterManagerinstance.The raster manifest can be provided either as a local file path or as an HTTP(S) URL. If omitted, the default PMM raster manifest endpoint is used.
- Parameters:
data_dir – Directory where raster files and metadata are stored.
raster_manifest – Local path or URL to a
present_day_rasters.jsonmanifest. Provide this only when using a custom raster service.
- Raises:
Exception – If the manifest source is invalid or cannot be fetched.
- get_raster(_name: str, width=1800, height=800, bbox=[-180, -80, 180, 80], large_file_hint=True)[source]
Download or fetch a raster and return its local file path.
For file-based rasters, this method downloads and caches files under
self.data_dir. For WMS rasters, it requests a GeoTIFF with the given output dimensions and bounding box, and caches the result using a hash of the WMS request URL.Call
list_present_day_rasters()to inspect available raster names.- Parameters:
_name (str) – The raster name of interest.
width (int) – Output raster width in pixels for WMS requests.
height (int) – Output raster height in pixels for WMS requests.
bbox (list[float]) – Geographic bounding box
[min_lon, min_lat, max_lon, max_lat]used for WMS requests.large_file_hint (bool) – Passed to file downloader to optimize large-file handling for non-WMS rasters.
- Returns:
Local path to the downloaded or cached raster file.
- Return type:
- Raises:
RasterNameNotFound – If the raster name is not in the manifest.
Exception – If raster retrieval fails.
- is_wms(_name: str, check_raster_avail_flag=True)[source]
Return whether a raster is served through WMS metadata.
- list_present_day_rasters()[source]
Return the list of available present-day raster names.
- set_data_dir(data_dir)[source]
Set the directory used to store downloaded raster files.
- Parameters:
data_dir – Directory path for local raster data.
Auxiliary Function
Auxiliary functon for users’ convenience.
- plate_model_manager.get_plate_model(model_name: str, data_dir: str | PathLike) PlateModel | None[source]
Return a plate model instance using online lookup with local fallback.
This helper first attempts to resolve
model_namethroughPlateModelManager. If the PMM servers are unavailable, it falls back to creating a local, read-onlyPlateModelfrom files already present indata_dir.- Parameters:
model_name – Name of the plate model to resolve.
data_dir – Directory containing downloaded plate model data.
- Returns:
A
PlateModelinstance, orNoneif the model name cannot be resolved.
Example usage:
from plate_model_manager import get_plate_model model = get_plate_model("Muller2025", data_dir="plate-models-data-dir") if model is not None: print(model.get_rotation_model()) else: print("Model not found.")