| Age | Commit message (Collapse) | Author |
|
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.
|
|
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
|
|
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.
|
|
|
|
Repair column selector bug
Fixes #723
|
|
|
|
Avoid zero-division in ccon.
|
|
Credit to OSS-Fuzz. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4695
|
|
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.
|
|
the Reykjavik 1900 datum (Iceland)
|
|
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
|
|
* Some corrections in response to a review by Kristian Evers
|
|
Fix issue #715
|
|
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.
|
|
|
|
|
|
Fixes #699
|
|
Declare non-local variables as const where possible
|
|
* Enable wildcard globbing for MSVC builds
* Use globbing to run all gie tests
* Despite merge title: Also use wildcards on gie tests when using GNU compilers
|
|
Having non-const variables of static lifetime or even global scope is
usually a bad idea. These variables are inherently constants, and this
should be enforced.
This required marking some functions as not modifying input parameters
and marking some pointers as pointers to const.
One advantage is that the compiler usually puts const static variables
in a read-only code segment, so they can't be modified physically.
This can be verified with `nm` (on POSIX systems).
To avoid changes to the public API, functions returning non-const
pointers to data tables were left intact, but the returned data may not
be modified. Internally we prefer using the proj_list_* functions over
the pj_get_*_ref functions, because the former return const pointers.
|
|
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
|
|
Squelch Visual Studio's obnoxious warnings about sprintf being unsafe.
|
|
|
|
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.
|
|
|
|
Allow including the new API header in proj.c
|
|
|
|
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.
|
|
|
|
Helmert improvements
|
|
|
|
|
|
Also set policy CMP0054 to stop a cmake warning.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
Update documentation on geodesics
|
|
* replace SVG figure by PNG version,
* rewrite maths using :math:,
* put references in the main reference section,
* reformat references for consistency,
* put references in alphabetical order,
* use USGS URL for Snyder (1987).
|
|
[skip ci]
|