aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-01-31Merge pull request #748 from kbevers/has_inverseKristian Evers
Add pj_has_inverse().
2018-01-31Add pj_has_inverse().Kristian Evers
With the introduction of the "inverted" flag on PJ objects you can no longer rely on checking that the inv, inv3d and inv4d functions are available on said PJ object. The function is used internally a few places and otherwise exposed in proj_api.h to ensure that users of the old programming interface can safely check if an operation has an inverse.
2018-01-26Make sure to mark +proj param used so it shows up in the definition. Fixes #744.Kristian Evers
2018-01-25Fix null pointer dereference in pj_datum_tranform() caused by ↵Even Rouault
d0dbf48438f9e152314abf294467cb54f9ae0e70 changes. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5649. Credit to OSS Fuzz
2018-01-23Merge pull request #743 from kbevers/fix-nullgrid-datumtransformKristian Evers
Handle ellipsoid parameters correctly when using +nadgrids=@null.
2018-01-23Handle ellipsoid parameters correctly when using +nadgrids=@null. Fixes #22.Kristian Evers
Make sure to not change ellipsoid parameters to WGS84 when applying the null grid. Coordinates will still refer to the input ellipsoid so we keep the original parameters which in turn will be used when the coordinates are transformated to/from cartesian/geocentric space. Adjusted regression test material in nad/proj_outIGNF.dist slightly to accomodate numerical differences at the mm level. The transformations in question are at best accurate to about 1m so this shouldn't change real world usage of these transformations.
2018-01-22Adding rudimentary docs for the pipeline operation [skip ci].Kristian Evers
2018-01-22Add details about grid file formats in relevant sections of the ↵Kristian Evers
documentation [skip ci]
2018-01-22Add deformation docs-page (missing from previous commit) [skip ci]Kristian Evers
2018-01-17Merge pull request #739 from kbevers/pipeline-inverseKristian Evers
Pipeline and cct inverse fixes
2018-01-17Adding a few more test cases for pipeline, ensuring better test coverageKristian Evers
2018-01-17Fix "double inversions" in pipelines, require a defined forward operation.Kristian Evers
"+proj=pipeline +inv +step +urm5 +n=0.5 +inv" now works as expected, returning the forward operation of urm5. In principle adding more +inv's should also work, resulting in the forward operation when an even number of +inv's are present, and the inverse when an odd number of +inv's are present. "+proj=pipeline +step +urm5 +n=0.5 +inv" fails at initialization since no forward operation can be performed. This is a new requirement, but aligns perfectly with the rest of the library since no operation without a forward method exists.
2018-01-11Merge pull request #737 from rouault/axisswap_add_breakEven Rouault
axisswap initialization: avoid switch case fallthrough
2018-01-11Set inv*-functions to zero on pipeline PJ's where an inverse does not exist.Kristian Evers
Some projections do not have an inverse mapping. If such a projection is used as a (forward) step in a pipeline we won't be able to perform an inverse operation using the pipeline. By setting the inv, inv3d and inv4d pointers to zero we signal to the caller that an inverse mapping is not available.
2018-01-11Fail gracefully when invalid inverse operation is specified in cct.Kristian Evers
Similar to proj and cs2cs, cct now returns immediately when trying to do an inverse operation that is not possible, for example using proj=urm5 which doesn't have an inverse: $ cct.exe -I +proj=pipeline +step +proj=urm5 +n=0.5 Inverse operation not available
2018-01-11axisswap initialization: avoid switch case fallthroughEven Rouault
case without break are really confusing, and should be avoided as much as possible IMHO. Also error out if a unrecognized character is provided as the axis value.
2018-01-11Fix breakage of previous commit (bis)Even Rouault
2018-01-11Fix breakage of previous commitEven Rouault
2018-01-11PJ_axisswap.c: validate axis value. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5073. Credit to OSS Fuzz. master only
2018-01-10Merge pull request #734 from aaronpuchert/remove-unused-macrosKristian Evers
Remove or use unused macros
2018-01-09Add gie tests to autoconf makefile.Kristian Evers
Download grid files as the first thing in the travis install script and that 'make check' can be run without errors caused by missing grids.
2018-01-09Convert GIGS tests to gie format and add to CMake testsKristian Evers
2018-01-09Add gie tests to CMake testing facilityKristian Evers
2018-01-09Added json to gie conversion scriptKristian Evers
2018-01-09Remove or use unused macrosAaron Puchert
Some macros seemed to be leftover from earlier code, so I removed them. Others seemed like they should have been used, but weren't. There should be no functional change, except the following: in floating- point arithmetic, x / y is not the same as x * (1.0 / y). It can be argued that using the multiplication is significantly faster, and the algorithm is approximative anyway. Otherwise, the constants are obviously not required. Also fixes one location in PJ_aitoff.c, where an enumeration value should have been used.
2018-01-08Allow usage of classic +axis parameter in axisswap.Kristian Evers
Instead of +order the classic PROJ.4 parameter +axis can used instead. This is mostly an inititive to simplify backwars compatibility in the 4D API. P->axis is initialized in pj_init() it can be assumed that it is set up correctly. +order and +axis are mutually exclusive.
2018-01-08Discern between 2D projected and 3D cartesian linear units (#732)Thomas Knudsen
2018-01-06Remove unused typedef from pj_init.cThomas Knudsen
2018-01-06Remove superfluous self-assignment in phi12Thomas Knudsen
2018-01-06Repair ratio numbers for units in pj_init_ctxThomas Knudsen
2018-01-06Eliminate potential zero-dereference in get_init.Thomas Knudsen
2018-01-05Custom unit factors in unitconvert.Kristian Evers
Added the possibility to use custom unit factors. Similar to the classic +to_meter parameter the conversion factor is related to meters, i.e. the factor for conversion from kilometers meters is 1000. The custom unit factors is given using the existing xy_in, xy_out, z_in and z_out parameters, for example: proj=unitconvert xy_in=4.5 +xy_out=mm
2018-01-05Avoid overwriting time component with zeroKristian Evers
2018-01-04Bar step-internal params from influencing pipeline driver init (#729)Thomas Knudsen
In cases such as: proj=pipeline step proj=utm zone=32 ellps=GRS80 ... The pj_init code would pick up the ellps information (and other material such as false eastings and northings) from the utm step and place it into the PJ object of the pipeline driver. This is not the intention, and is eliminated in this PR by terminating parameter searching (done by pj_param) once a step parameter is reached.
2018-01-03Introduce preparation/finalization steps in fwd/inv subsystem, supporting ↵Thomas Knudsen
arbitrary dimensionality in test code * Call trans func of same dimensionality as input in gie * Refactor prep/fin code for pj_fwd/pj_inv 2D,3D,4D * Remove prime meridian handling from pj_transform (now handled in pj_fwd_prepare/pj_inv_finalize) * Introduce prep/fin skips, mostly in support of axisswap and pipeline drivers * Refactor fwd/inv subsystem * pj_transform: Let pj_fwd/inv handle scaling * Let pj_fwd/inv3d fall back to 2D eventually
2018-01-03Add plate motion model parameters to ITRF init-files.Kristian Evers
Parameters for the plate motion models (PMM) for ITRF2008 and ITRF2014 are added to the ITRF2008/2014 init-files. The PMMs allow coordinates to be moved back and forward in time in plate fixed reference frames such as GR96 in Greenland which is defined as ITRF94@1996.623. Transforming an ITRF2014-coordinate to GR96 is done with: +proj=pipeline +step +init=ITRF2014:NOAM +t_epoch=1996.623 +t_obs=2017.584 +step +init=ITRF2014:ITRF94 +t_obs=1996.623 where the first step transforms the coordinate back in time to ITRF2014@1996.632 by using the ITRF2014 PMM. The second step transforms the ITRF2014 coordinate to ITRF94.
2017-12-21Deformation operation documentedKristian Evers
2017-12-20Merge pull request #724 from busstoptaktik/repair-cct-columnsThomas Knudsen
Repair column selector bug Fixes #723
2017-12-20Repair column selector bugThomas Knudsen
2017-12-20Merge pull request #722 from kbevers/divide-by-zero-cconKristian Evers
Avoid zero-division in ccon.
2017-12-20Avoid zero-division in ccon.Kristian Evers
Credit to OSS-Fuzz. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4695
2017-12-19Merge pull request #721 from busstoptaktik/icelandThomas Knudsen
Reykjavik (1900) datum, prerequisites: Danish (Andræ) ellipsoid, and Copenhagen meridian introduced in support of the Reykjavik 1900 datum (Iceland). The magnitude of the Danish (1876) ellipsoid was originally given in French toise (fathoms) - the Andræ ellipsoid already in PROJ seems to have been transformed to meters using a conversion factor for German fathoms. This version, based on a French conversion factor of 1.94903631 m/toise, corresponds to the official value for the semimajor axis used by the Icelandic NMA, Landmælingar Íslands, LMI (Guðmundur Valsson, LMI, pers. comm. 2017-12-15). This value deviates by approximately one centimeter, compared to the truncated value of 6377019.27 m, given in the EPSG:7051 record.
2017-12-19Danish (Andrae) ellipsoid, and Copenhagen meridian introduced in support of ↵Thomas Knudsen
the Reykjavik 1900 datum (Iceland)
2017-12-19Add missing call to pj_chomp, in order to remove inline comments (#720)Thomas Knudsen
Previously, when expanding init=foo.bar calls, pj_chomp was first called after collecting all lines, effectively discarding everything after the start of the first comment
2017-12-19Some corrections in response to a review by Kristian Evers (#718)Thomas Knudsen
* Some corrections in response to a review by Kristian Evers
2017-12-18Merge pull request #719 from cffk/geod-1.49.1Charles Karney
Fix issue #715
2017-12-18Fix issue #715. Merge 1.49.1 of geodesic library (tagged as v1.49.1-cCharles Karney
in GeographicLib). Details: Workaround bugs in handling of -0.0 in fmod and sin in Visual Studio 10, 11, and 12. Relax unrealistically strict delta for GeodSolve59 in geodtest.
2017-12-18fix spelling mistakes in previous commitKristian Evers
2017-12-18Test deformation initialization errors.Kristian Evers
2017-12-18Remove superfluous element free_format from OPTARGPM object (#716)Thomas Knudsen
Fixes #699