Geodynamics Displacements
Plate Tectonics
Geodynamics Earth Crustal Displacement: Plate Tectonics submodule.
Accounting for Plate Tectonics movement using drift velocities or ITRF2014 model.
Classes
WrongTectonicPlateReferenceError
Bases: ValueError
Wrong Tectonic Plate reference value, not listed in ITRF2014-PMM
ITRF2014PlatesRotationPoles
Bases: Enum
Absolute plate rotation poles (or angular velocities) in [milliarcsec/yr], ITRF2014-PMM
Attributes
Functions:
compute_displacement
compute_displacement(xyz_coords: ndarray, time_delta: float, plate_ref: str | ITRF2014PlatesRotationPoles | None = None, drift_vel: ndarray = None) -> np.ndarray
Compute point target coordinates displacement due to tectonic plate motion using ITRF2014 plate motion model.
Source (Plate tectonics) Zuheir Altamimi et al., "ITRF2014 plate motion model", Geophysical Journal International, 2017 'https://academic.oup.com/gji/article/209/3/1906/3095992'
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xyz_coords
|
ndarray
|
xyz coordinates, in the form (3,) or (N, 3) |
required |
time_delta
|
float
|
time difference between product/scene acquisition time and point target coordinates reference time in seconds |
required |
plate_ref
|
str | ITRF2014PlatesRotationPoles | None
|
plate reference name id, by default None |
None
|
drift_vel
|
ndarray
|
drift velocities along x, y and z, same shape as xyz_coords, by default None |
None
|
Returns:
| Type | Description |
|---|---|
ndarray
|
[x, y, z] displacement in meters due to plate tectonics for each input point |
Raises:
| Type | Description |
|---|---|
WrongTectonicPlateReference
|
if plate reference name id is not listed in the ITRF2014-PMM |
Earth Solid Tides
Geodynamics Earth Crustal Displacement: Solid Tides submodule.
Accounting for solid tides displacement using the IERS Conventions model.
Attributes
Classes
Functions:
compute_solid_earth_tides
compute_solid_earth_tides(year: int, month: int, day_of_month: int, lat_deg: float, lon_deg: float) -> tuple[np.ndarray, np.ndarray]
Solid Earth Tides wrapper of original Fortran code. This function uses the numpy.f2py conversion of fortran code library to extract solid earth tides displacements.
Earth tides are estimated using an external tool (executable) called Solid, based on a fortran script.
Solid Earth Tide (SET) displacement estimator class based on Solid fortran executable by Dennis Milbert.
Program Solid is based on an edited version of the dehanttideinelMJD.f source code provided by Professor V. Dehant. This code is an implementation of the Solid Earth Tide computation found in section 7.1.2 of the IERS Conventions (2003) , IERS Technical Note No. 32
Program inputs: date (year, month of the year, day of the month), latitude (deg), longitude (deg). Program output: .txt file with solid earth tide (body tide) components [north, east, up] for each minute of the input date.
Solid is driven by a pair of routines that compute low-precision geocentric coordinates for the Moon and the Sun. These routines were coded from the equations in "Satellite Orbits: Models, Methods, Applications" by Montenbruck & Gill (2000), section 3.3.2, pp.70-73
Solid does not contain ocean loading, atmospheric loading, or deformation due to polar motion.
Ref: Dennis Milbert, Ph.D., Chief Geodesist, National Geodetic Survey, NOAA, (retired) http://geodesyworld.github.io/SOFTS/solid.htm
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
year
|
int
|
year of the date at which the displacement must be estimated, between 1901 and 2099 |
required |
month
|
int
|
month of the date at which the displacement must be estimated, between 1 and 12 |
required |
day_of_month
|
int
|
day of the month of the date at which the displacement must be estimated, between 1 and 31 |
required |
lat_deg
|
float
|
latitude where the displacement should be evaluated, in deg |
required |
lon_deg
|
float
|
longitude where the displacement should be evaluated, in deg |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
time axis corresponding to a whole day with 60 seconds steps |
ndarray
|
displacement array, of shape (N, 3), with columns being north, east and up components |
Raises:
| Type | Description |
|---|---|
ValueError
|
if the input date is not valid |
compute_displacement
compute_displacement(target_xyz_coords: ndarray, acquisition_time: PreciseDateTime) -> np.ndarray
Estimate the input coordinates displacement due to earth tides based on acquisition time using the Fortran code wrapper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_xyz_coords
|
PreciseDateTime
|
the input coordinates on scene, xyz format, shape Nx3 |
required |
acquisition_time
|
PreciseDateTime
|
sensor acquisition time of the input coordinates on scene |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
updated coordinates, same input coordinate but with displacement added |