[gdal-dev] Custom vertical transformations

Kristian Evers kreve at sdfe.dk
Fri Aug 20 07:37:10 PDT 2021


Hi list,

I am trying to apply a custom vertical transformation to a grid using gdalwarp and am struggling a bit to get the results I want. It's entirely possible I am trying something not within the capabilities of gdalwarp but I am sure someone here can help me figure that out.

I am devising a deformation model transformation that is meant to adjust terrain heights over a certain time period. The general idea here is to predict the changes in the terrain in the future based on various information like isostatic uplift and land subsidence. I have this information available as gridded ground motion velocities. For now though I am just concerned about making a proof-of-concept transformation and subsequent terrain adjustment using PROJ and GDAL. I've got the PROJ part figured out but need a bit of help to do what I want with GDAL.

My transformation is a using the PROJ "defmodel" operation. My proof-of-concept is available in this repository: https://github.com/kbevers/dk2100. For now it's just a dummy that uses the same deformation grid twice and applies a correction to the input height value. An example looks like this:

echo 687071.4391 6210141.3267 0 2025 | cct +proj=pipeline +step +proj=utm +zone=32 +inv +step \
+proj=defmodel +model=./defmodel.json +step +proj=utm +zone=32
  687071.4391   6210141.3267        6.0000     2025.0000

The UTM steps surrounding the defmodel accomodate that the grids I want to transform have horizontal coordinates registered as EPSG:25832. Ideally I want this to be a time-dependent transformation but for now I am just working with simple constant offsets.

When using the above transformation with gdalwarp I am presented with an error:

gdalwarp -ct "+proj=pipeline +step +proj=utm +zone=32 +inv +step +proj=defmodel +model=./defmodel.json +step +proj=utm +zone=32" \ DHYMSEA_1km_6150_542.tif out.tif
ERROR 1: Too many points (2601 out of 2601) failed to transform, unable to compute output bounds.

The immediate question is "what am I missing"? I suppose I either have some errors in the transformation setup or am missing some command line switches. Any guidance is appreciated. The next question is, if I turn the above transformation into a time-depending transformation, would I be able to use that with gdalwarp? I see GDAL 3.4 has some switches for applying coordinate epochs but haven't been able to test them since I don't have version 3.4 readily available at the moment.

Best regards,
Kristian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20210820/e02e1d31/attachment.html>


More information about the gdal-dev mailing list