From 697b93dbad54ead7b1b66e7b610abd673192695c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 4 May 2020 13:48:17 +0200 Subject: Add a +proj=defmodel transformation for multi-component time-based deformation models Fixes #1001 Co-authored-by: Chris Crook --- .../source/operations/transformations/defmodel.rst | 61 ++++++++++++++++++++++ .../operations/transformations/deformation.rst | 2 + docs/source/operations/transformations/index.rst | 1 + 3 files changed, 64 insertions(+) create mode 100644 docs/source/operations/transformations/defmodel.rst (limited to 'docs') diff --git a/docs/source/operations/transformations/defmodel.rst b/docs/source/operations/transformations/defmodel.rst new file mode 100644 index 00000000..fe2ac66a --- /dev/null +++ b/docs/source/operations/transformations/defmodel.rst @@ -0,0 +1,61 @@ +.. _defmodel: + +================================================================================ +Multi-component time-based deformation model +================================================================================ + +.. versionadded:: 7.1.0 + ++---------------------+--------------------------------------------------------------------+ +| **Input type** | Geodetic or projected coordinates (horizontal), meters (vertical), | +| | decimalyear (temporal) | ++---------------------+--------------------------------------------------------------------+ +| **Output type** | Geodetic or projected coordinates (horizontal), meters (vertical), | +| | decimalyear (temporal) | ++---------------------+--------------------------------------------------------------------+ +| **Domain** | 4D | ++---------------------+--------------------------------------------------------------------+ +| **Available forms** | Forward and inverse | ++---------------------+--------------------------------------------------------------------+ + +The defmodel transformation can be used to represent most deformation models +currently in use, in particular for areas subject to complex deformation, including +large scale secular crustal deformation near plate boundaries and vertical deformation +due to Glacial Isostatic Adjustment (GIA). These can often be represented by a constant +velocity model. Additionally, many areas suffer episodic deformation events such as +earthquakes and aseismic slow slip event. + +The transformation relies on a "master" JSON file, describing general metadata on +the deformation model, its spatial and temporal extent, and listing spatial +components whose values are stored in :ref:`Geodetic TIFF grids (GTG) `. +The valuation of each component is modulated by a time function (constant, step, +reverse step, velocity, piecewise, exponential). + +All details on the content of this JSON file are given in the `Proposal for encoding +of a Deformation Model `__ + +If input coordinates are given in the geographic domain (resp. projected domain), +the output will also be in the geographic domain (resp. projected domain). +The domain should be the corresponding to the source_crs metadata of the model. + +This transformation is a generalization of the :ref:`Kinematic datum shifting utilizing a deformation model ` transformation. + +Parameters +------------------------------------------------------------------------------- + +Required ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. option:: +model= + + Filename to the JSON master file for the deformation model. + + +Example +------------------------------------------------------------------------------- + +Transformating a point with the LINZ NZGD2000 deformation model: + +:: + + echo 166.7133850980 -44.5105886020 293.3700 2007.689 | cct +proj=defmodel +model=nzgd2000-20180701.json diff --git a/docs/source/operations/transformations/deformation.rst b/docs/source/operations/transformations/deformation.rst index 02924a25..c28e9404 100644 --- a/docs/source/operations/transformations/deformation.rst +++ b/docs/source/operations/transformations/deformation.rst @@ -38,6 +38,8 @@ construction of new grids is recommended. Starting with PROJ 7.0, use of a GeoTIFF format is recommended to store both the horizontal and vertical velocities. +More complex deformations can be done with the :ref:`Multi-component time-based deformation model ` transformation. + Example ------------------------------------------------------------------------------- diff --git a/docs/source/operations/transformations/index.rst b/docs/source/operations/transformations/index.rst index 6bd503d4..9f7900f1 100644 --- a/docs/source/operations/transformations/index.rst +++ b/docs/source/operations/transformations/index.rst @@ -11,6 +11,7 @@ systems are based on different datums. :maxdepth: 1 affine + defmodel deformation geogoffset helmert -- cgit v1.2.3 From 95e877761865f073f4df7f52d9e97b899db92efd Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 4 May 2020 14:04:47 +0200 Subject: geodetictiffgrids.rst: update with deformation model --- docs/source/specifications/geodetictiffgrids.rst | 35 ++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/source/specifications/geodetictiffgrids.rst b/docs/source/specifications/geodetictiffgrids.rst index 479d6ca9..307d8657 100644 --- a/docs/source/specifications/geodetictiffgrids.rst +++ b/docs/source/specifications/geodetictiffgrids.rst @@ -137,9 +137,9 @@ is an easy way to inspect such grid files: * SamplesPerPixel = 1 for vertical shift grids. - In the future, different values of SamplesPerPixel may be used to accommodate - for other needs. For example for deformation models, SamplesPerPixel = 3 to combine - horizontal and vertical adjustments. + * SamplesPerPixel = 3 for deformation models combining + horizontal and vertical adjustments. + And even for the current identified needs of horizontal or vertical shifts, more samples may be present (to indicate for example uncertainties), but will be ignored by PROJ. @@ -215,28 +215,32 @@ is an easy way to inspect such grid files: - ``HORIZONTAL_OFFSET``: implies the presence of at least two samples. The first sample must contain the latitude offset and the second sample must contain the longitude offset. - Corresponds to PROJ ``hgridshift`` method. + Corresponds to PROJ :ref:`hgridshift` method. - ``VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL``: implies the presence of at least one sample. The first sample must contain the vertical adjustment. Must be used when the source/interpolation CRS is a Geographic CRS and the target CRS a Vertical CRS. - Corresponds to PROJ ``vgridshift`` method. + Corresponds to PROJ :ref:`vgridshift` method. - ``VERTICAL_OFFSET_VERTICAL_TO_VERTICAL``: implies the presence of at least one sample. The first sample must contain the vertical adjustment. Must be used when the source and target CRS are Vertical CRS. - Corresponds to PROJ ``vgridshift`` method. + Corresponds to PROJ :ref:`vgridshift` method. - ``GEOCENTRIC_TRANSLATION``: implies the presence of at least 3 samples. The first 3 samples must be respectively the geocentric adjustments along the X, Y and Z axis. Must be used when the source and target CRS are geocentric CRS. The interpolation CRS must be a geographic CRS. - Corresponds to PROJ ``xyzgridshift`` method. + Corresponds to PROJ :ref:`xyzgridshift` method. - ``VELOCITY``: implies the presence of at least 3 samples. The first 3 samples must be respectively the velocities along the E(ast), N(orth), U(p) axis in the local topocentric coordinate system. - Corresponds to PROJ ``deformation`` method. + Corresponds to PROJ :ref:`deformation` method. + + - ``DEFORMATION_MODEL``: implies the presence of the ``DISPLACEMENT_TYPE`` + and ``UNCERTAINTY_TYPE`` metadata items. + Corresponds to PROJ :ref:`defmodel` method. For example: @@ -284,6 +288,11 @@ is an easy way to inspect such grid files: Sample values should be the velocity in a linear/time unit in a ENU local topocentric coordinate system. + + ``east_offset`` / ``north_offset`` / ``vertical_offset``: valid for + TYPE=DEFORMATION_MODEL. + For east_offset and north_offset, the unit might be degree or metre. + For vertical_offset, the unit must be metre. + For example: .. code-block:: xml @@ -337,6 +346,16 @@ is an easy way to inspect such grid files: arc-second arc-second + * For TYPE=DEFORMATION_MODEL, the type of the displacement must be specified + with a `Item` whose ``name`` is set to ``DISPLACEMENT_TYPE``. + + The accepted values are: ``HORIZONTAL``, ``VERTICAL``, ``3D`` or ``NONE`` + + * For TYPE=DEFORMATION_MODEL, the type of the uncertainty must be specified + with a `Item` whose ``name`` is set to ``UNCERTAINTY_TYPE``. + + The accepted values are: ``HORIZONTAL``, ``VERTICAL``, ``3D`` or ``NONE`` + * The ``target_crs_epsg_code`` metadata item should be present. For a horizontal shift grid, this is the EPSG code of the target geographic CRS. For a vertical shift grid, this is the -- cgit v1.2.3