Add a +proj=defmodel transformation for multi-component time-based deformation models - #2206
Conversation
9790a5a to
afc669d
Compare
|
Thanks @hobu for the review! |
|
@kbevers Will you want to do a review on this before I merge ? |
Yes, please! Sorry for not getting round to it earlier. I've been hella busy the last couple of weeks. I'll try to give it a closer look this weekend. |
No, problem. Take your time |
…formation models Fixes OSGeo#1001 Co-authored-by: Chris Crook <ccrook@linz.govt.nz>
1b83bb6 to
95e8777
Compare
kbevers
left a comment
There was a problem hiding this comment.
I think this looks very good. I haven't looked super detailed at the code since there's quite a lot of it and my memory of the initial proposal of the deformation model "master file" concept by Chris is good enough for a detailed review. The docs and the examples are rather clear to me and I have not reason to not want to include this PR as is. Good effort!
|
Thankyou Even, Kristian, and Howard for your contributions to the development of this format specification and Even for the excellent implementation. This is a huge benefit to the New Zealand user community. It means we will be able to move many of our tools to use the PROJ library rather than our own custom software which is great for its long term sustainability. |
Fixes #1001
The implementation of the transformation mostly resides in the defmodel.hpp header, that is completely PROJ agnostic. This offers the advantage of potentially reusing it for other implementations, and more practically for us, to be able to unit test the building blocks of the transformation that are normally not accessible through the PROJ API. The defmodel.cpp file contains the PROJ specific glue, and implements a few utility methods left unimplemented by the header to read a value in a grid, or perform cartesian<-->geographic conversions.
CC @ccrook who has tested this on the LINZ NZGD2000 deformation model along the development and contributed a few fixes and tests