| Age | Commit message (Collapse) | Author |
|
Add -std=c89 to travis targets
|
|
The multistresstest code has been made C89 compliant in the process.
|
|
|
|
* Free format now in cmd lines, in gie, and in init files
* Corrected handling of defaults
* Add demo of integrated definition and validation
* Repair stack-smashing memmove in get_init
* repair paralist corruption, clean up debug output
* Install test files for nmake builds
* Add many improvements following suggestions by @schwehr
* Be consistent in requiring lower case everywhere in gie.c
Also, this Fixes #703 and Fixes #697
|
|
For sufficiently large values of modified julian date the
mjd_to_yyyymmdd function would integer overflow in the calculation of
the return value. This is fixed by implicit type conversion.
Credit to OSS-Fuzz.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4658 and
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4667
|
|
Updates to deformation operation.
|
|
Add time unit yyyymmdd to unitconvert operation
|
|
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.
|
|
This didn't work before because the elaborate type punning scheme was
deactivated by including proj.h. Now we use the type punning from the
new API header and build our own.
This change is required for #674.
|
|
|
|
Prefixing with t_ is more consistent with the existing parameters
in PROJ, such as x_0 and friends. t_epoch and t_obs is already used
in PJ_deformation. Now users can expect consistency across
time-varying transformations.
|
|
same file (#687)
Fix bad typedef that surfaces when including proj.h and proj_api.h in the same file
|
|
|
|
|
|
* Enable selective debug printout through negative PROJ_DEBUG values
|
|
Add GDA2020 tests, and correct the PJ_helmert bug they revealed
|
|
Decisions regarding the size of certain types are always made at
compile time, hence this is where the assertion should take place.
If the assertions fail, there is now a compiler error.
|
|
* gie support for builtin errcodes, and other improvements
* allow lower case error constants
|
|
NULL. Found by cppcheck
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4404. Credit to OSS Fuzz
|
|
Increase the focus on PJ_COORD as primary datatype: Eliminate use of PJ_TRIPLET etc.
Trim proj.h by removing material that has become unnecessary.
Improve constness
Make proj_factors work in proj.h space, by providing a trimmed down PJ_FACTORS (which even has more meaningful field names)
|
|
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).
|
|
|
|
Avoid div-by-zero in rf setup
|
|
Avoid div-by-0 in to_meter init
|
|
|
|
|
|
Central conic projection implemented as 'ccon'.
|
|
* Replace pj_ell_set with reimplementation supporting ellipsoid inheritance
* remove unreachable code from pj_ell_set.c
* Swap steps, so ellps args are read first, in accordance with historical behaviour
* Add ellipsoid tests to CI targets
* Reduce some optimistic tolerances
OS/X appears to have a slightly off float handling, resulting in differences at the nanometer level. Switching to 10 nm.
|
|
|
|
|
|
Switch pj_factors to use proj_geoc_lat
|
|
|
|
|
|
|
|
* Introduce geodetic-geocentric conversions, as PJ_xxx style conversion step and as API entry points
* minor improvements and minor bug squashing
|
|
Give definition and def'n line no. in "Invalid operation" message
|
|
A year or so ago, @micahcochran put quite some effort into rationalizing the PI usage in PROJ.4, by ensuring that a useful number of M_PI related constants were defined in projects.h.
But apparently adjlon.c was left behind still using its own set of definitions - perhaps because it bends the values slightly, to avoid unwanted sign switching near the date line.
In this PR the "bending trick" is reimplemented using the rationalized M_PI constants only.
|
|
* Support numerical factors only
* Make sure h positive. Improve some comments
* Let pole overshoot check have effect even for geocentric latitudes
* Factor-typological constants, now all returning false, for backwards compatibility
|
|
|
|
* Removed remaining traces of the builtin selftest system. Moved all functionality to test/gie
* Updated Appveyor and Travis build scripts
* Another appveyor script update
|
|
* Poder dual autochecking implementation
* Debugging aid: Improvements in PJ_vgridshift.c and gie.c
* Most likely, the bugbeing tripped is in the gridshift code, so. uncomment suspicious lines in deformation.gie and merge this to support the debugging effort
|
|
Remove selftests from projection files starting with v,w
|
|
|
|
Remove selftests from projection files starting with r,s,t,u
|
|
Remove selftests from projection files starting with l, m
|
|
Remove selftests from projection files starting with n,o,p,q
|
|
|
|
|
|
Remove selftests from projection files starting with h, i, j, k
|