<feed xmlns='http://www.w3.org/2005/Atom'>
<title>PROJ/src/PJ_deformation.c, branch 7.2.1</title>
<subtitle>Forked from https://github.com/OSGeo/PROJ</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/'/>
<entry>
<title>cpp conversion: minimal steps to fix compilation errors, not warnings</title>
<updated>2018-12-26T09:08:53+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2018-12-18T19:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=610957f7035242f15743c399ffd429b92bc36206'/>
<id>610957f7035242f15743c399ffd429b92bc36206</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Collect custom C99 math functions in proj_math.h</title>
<updated>2018-04-16T20:55:06+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2018-04-14T14:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=327a8f8b5a850167901a92747767e14ffe77c03b'/>
<id>327a8f8b5a850167901a92747767e14ffe77c03b</id>
<content type='text'>
We are relying more and more on C99 math functions. On C89 systems where
those functions are not available our own custom versions of those
functions are used instead. So far these has been spread across the code
base. This commit gathers them in the same file and introduces the
proj_math.h header. The build system checks for C99 math functions. If
not found the proj_math.h header make sure that C99 functions are
defined as their pj_ equivalent.

Ideally proj_math.h is included instead of math.h. This removes the need
for any checks against HAVE_C99_MATH in the code making it easier to
read.

For this commit the functions hypot, log1p and asinh has been taken care
of.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are relying more and more on C99 math functions. On C89 systems where
those functions are not available our own custom versions of those
functions are used instead. So far these has been spread across the code
base. This commit gathers them in the same file and introduces the
proj_math.h header. The build system checks for C99 math functions. If
not found the proj_math.h header make sure that C99 functions are
defined as their pj_ equivalent.

Ideally proj_math.h is included instead of math.h. This removes the need
for any checks against HAVE_C99_MATH in the code making it easier to
read.

For this commit the functions hypot, log1p and asinh has been taken care
of.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix segfault in deformation</title>
<updated>2018-04-13T21:17:49+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2018-04-13T20:42:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=299135153e33869157ecd432dd0194743e959170'/>
<id>299135153e33869157ecd432dd0194743e959170</id>
<content type='text'>
When transforming coordinates outside the grid model the deformation
operation failed spectatularly. This is now fixed by checking that the
coordinate is inside the grid. If it isn't an error is returned and a
debugging log message is issued.

Closes #934
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When transforming coordinates outside the grid model the deformation
operation failed spectatularly. This is now fixed by checking that the
coordinate is inside the grid. If it isn't an error is returned and a
debugging log message is issued.

Closes #934
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove angle brackets for proj headers (#849)</title>
<updated>2018-03-11T12:17:07+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2018-03-11T12:17:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=ab87b8ef0af7ef888b7d810db610ead6eb784d71'/>
<id>ab87b8ef0af7ef888b7d810db610ead6eb784d71</id>
<content type='text'>
* Avoid using angle brackets for PROJ headers.

Switching from #include &lt;proj.h&gt; to #include "proj.h",
and correspondingly for projects.h and proj_api.h,
reduces the risk of accidentally picking up a system
installed older version of the header while building
a new version of PROJ.

* Also handle geodesic.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Avoid using angle brackets for PROJ headers.

Switching from #include &lt;proj.h&gt; to #include "proj.h",
and correspondingly for projects.h and proj_api.h,
reduces the risk of accidentally picking up a system
installed older version of the header while building
a new version of PROJ.

* Also handle geodesic.h
</pre>
</div>
</content>
</entry>
<entry>
<title>Discern between 2D projected and 3D cartesian linear units (#732)</title>
<updated>2018-01-08T02:41:45+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2018-01-08T02:41:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=07bb446ec474cf62094070a8ea848b37c911a075'/>
<id>07bb446ec474cf62094070a8ea848b37c911a075</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Updates to deformation operation.</title>
<updated>2017-12-14T08:19:37+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2017-12-14T08:19:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=8ed970e6856ed3d61ab8cc827899a8cced0591d0'/>
<id>8ed970e6856ed3d61ab8cc827899a8cced0591d0</id>
<content type='text'>
The initial approach taken in the deformation operation was not
geodetically sound. The deformation model grids were required
to be indexed in lat/long space with the velocities in the grids
being in cartesian space. This is quite confusing and it is not
a normal way of making deformation models. The usual approach is
to keep everything in the east, north, up, or ENU, space. We adopt
that tradition in this commit. The velocities are still applied in
cartesian space which requires that the grid-velocities are
converted from ENU space to cartesian space. As a consequence of
this change the operation is changed so that it only works in full
3D mode. That is, both horizontal and vertical grids need to be
applied.

The inverse operation is changed slightly to accommodate the
now fully 3D transformation. In it's present form it is a
modification to the original algorithm that also includes the
vertical component in the iteration. This is necessary to get a
proper mapping from ENU to cartesian space in the loop. The
vertical component is overwritten with the initial z-correction
at the end of the loop. This approach is not completely accurate
and will introduce errors, especially when doing many roundtrip
calculations, but it seems to be good enough for a few roundtrips.

The PJ_ENU data type is re-introduced to better communicate the
what state the grid corrections are in throughout the code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The initial approach taken in the deformation operation was not
geodetically sound. The deformation model grids were required
to be indexed in lat/long space with the velocities in the grids
being in cartesian space. This is quite confusing and it is not
a normal way of making deformation models. The usual approach is
to keep everything in the east, north, up, or ENU, space. We adopt
that tradition in this commit. The velocities are still applied in
cartesian space which requires that the grid-velocities are
converted from ENU space to cartesian space. As a consequence of
this change the operation is changed so that it only works in full
3D mode. That is, both horizontal and vertical grids need to be
applied.

The inverse operation is changed slightly to accommodate the
now fully 3D transformation. In it's present form it is a
modification to the original algorithm that also includes the
vertical component in the iteration. This is necessary to get a
proper mapping from ENU to cartesian space in the loop. The
vertical component is overwritten with the initial z-correction
at the end of the loop. This approach is not completely accurate
and will introduce errors, especially when doing many roundtrip
calculations, but it seems to be good enough for a few roundtrips.

The PJ_ENU data type is re-introduced to better communicate the
what state the grid corrections are in throughout the code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Overhaul ellipsoid handling (#682)</title>
<updated>2017-11-25T00:40:37+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-11-25T00:40:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=bea0c8b0c015ef0a5c136b904d63ad7f4a4427bf'/>
<id>bea0c8b0c015ef0a5c136b904d63ad7f4a4427bf</id>
<content type='text'>
Improve error messaging for cct and gie, and do some clean ups in the ellipsoid handling - partially to squash bugs, partially to improve naming consistency which, in turn, improves the readability of the ellipsoid handling code.

Renamed functions:

pj_inherit_ellipsoid_defs has been renamed pj_inherit_ellipsoid_def, while pj_calc_ellps_params has been renamed pj_calc_ellipsoid_params.

The code in get_opt (part of pj_init.c), which handles whether or not an ellipsoid definition should be dragged in from proj_def.dat, has been rewritten. I suspect this was buggy beforehand, and at least the new code is easier to follow (although it may be slightly slower, which is not really a problem as it sits in the setup code, and hence is executed only once).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Improve error messaging for cct and gie, and do some clean ups in the ellipsoid handling - partially to squash bugs, partially to improve naming consistency which, in turn, improves the readability of the ellipsoid handling code.

Renamed functions:

pj_inherit_ellipsoid_defs has been renamed pj_inherit_ellipsoid_def, while pj_calc_ellps_params has been renamed pj_calc_ellipsoid_params.

The code in get_opt (part of pj_init.c), which handles whether or not an ellipsoid definition should be dragged in from proj_def.dat, has been rewritten. I suspect this was buggy beforehand, and at least the new code is easier to follow (although it may be slightly slower, which is not really a problem as it sits in the setup code, and hence is executed only once).</pre>
</div>
</content>
</entry>
<entry>
<title>Removed remaining traces of the built in selftest system (#661)</title>
<updated>2017-11-12T23:33:40+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-11-12T23:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=06b2f944d7844bb898ace8a7973f9182aa2234b1'/>
<id>06b2f944d7844bb898ace8a7973f9182aa2234b1</id>
<content type='text'>
* Removed remaining traces of the builtin selftest system. Moved all functionality to test/gie

* Updated Appveyor and Travis build scripts

* Another appveyor script update
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Removed remaining traces of the builtin selftest system. Moved all functionality to test/gie

* Updated Appveyor and Travis build scripts

* Another appveyor script update
</pre>
</div>
</content>
</entry>
<entry>
<title>Formally change the initialization type of the TRANSFORMATIONS and CONVERSIONS that are not PROJECTIONS</title>
<updated>2017-11-07T14:53:31+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2017-11-07T13:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=dcd95c505ef188f268671495f7a9950c446d0e72'/>
<id>dcd95c505ef188f268671495f7a9950c446d0e72</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Eliminate the last traces of PJ_OBS (#643)</title>
<updated>2017-11-06T09:02:05+00:00</updated>
<author>
<name>Thomas Knudsen</name>
<email>busstoptaktik@users.noreply.github.com</email>
</author>
<published>2017-11-06T09:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=8eb82852f5f7d23994839ba5d032edc76eab2250'/>
<id>8eb82852f5f7d23994839ba5d032edc76eab2250</id>
<content type='text'>
PJ_OBS eliminated, API adjusted to reflect that we now have only one 4D data type.
2 new API functions added to determine output types of a PJ.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PJ_OBS eliminated, API adjusted to reflect that we now have only one 4D data type.
2 new API functions added to determine output types of a PJ.
</pre>
</div>
</content>
</entry>
</feed>
