aboutsummaryrefslogtreecommitdiff
path: root/src/transformations
AgeCommit message (Collapse)Author
2020-12-15Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHEREven Rouault
2020-12-15horner.cpp: remove uses of EINVAL and EDOM errnoEven Rouault
2020-12-15Various operations: remove explicit short name prefixing in log messages now ↵Even Rouault
that it is automatically added
2020-12-15Revise error codes to have a reduced set exposed in the public API.Even Rouault
Fixes #2482 And also add proj_context_errno_string() Revise gie 'expect failure errno XXXX' strings
2020-11-20Remove old pj_ memory (de)allocation functionsKristian Evers
Gone are pj_malloc, pj_calloc, pj_dalloc and pj_dealloc. Their primary function as API memory functions in proj_api.h is no longer there and the other use as a workaround for old errno problems is no longer valid either. Replaced with malloc and free across the codebase.
2020-10-25More typo fixesEven Rouault
2020-10-25Fix typos spotted by scripts/fix_typos.shEven Rouault
2020-09-30Add a +proj=tinshift for triangulation-based transformationsEven Rouault
Implements RFC-6
2020-08-21Helmert: fix regression when rotation terms are 0, but scale is notEven Rouault
Fixes #2333 Was due to 3dc92ad7014e1cf20a3bc95c8c21a34a371fcb78 Doesn't affect released versions
2020-07-24Helmert 2D: do not require a useless convention= parameterEven Rouault
2020-05-17Address warnings raised by recent cppcheckEven Rouault
2020-05-17Merge pull request #2206 from rouault/deformation_model_for_mergeEven Rouault
Add a +proj=defmodel transformation for multi-component time-based deformation models
2020-05-16Add a +proj=defmodel transformation for multi-component time-based ↵Even Rouault
deformation models Fixes #1001 Co-authored-by: Chris Crook <ccrook@linz.govt.nz>
2020-05-09scripts/fix_typos.sh: fix URLs to dictionaries, and fix typos spottedEven Rouault
2020-05-04grids: add support for projected grids for GenericShiftGridSetEven Rouault
2020-04-12Remove old geocent.h/.cpp codeEven Rouault
Last user, apart from transform.cpp, was the SCH projection. Modify it to use cart instead. And move content of geocent.h and .cpp into transform.cpp directly, so that it can be later wiped up easily.
2020-04-04hgridshift/vgridshift: defer grid opening when grid has already been openedEven Rouault
Relates to #2115 With the fix of https://github.com/OSGeo/PROJ/pull/2128, transforming between EPSG:4326+3855 and EPSG:4269+5703 leads to many operations with many grids, and opening a file handle for each operation saturates the limit of 1024 file handles opened simunalteously. This fix defers grid opening when a transformation has already been instanciated with the same grid.
2020-01-22Merge RFC4 (#1865)Even Rouault
This commit is the result of the squashing of rfc4_dev branch in a single commit. It implements mostly RFC 4 related work. * Grid handling: - remove obsolete and presumably unfinished implementation of grid catalog functionality - all grid functionality is in grids.cpp/.hpp - vertical and horizontal grid shift: rework to no longer load whole grid into memory - remove hgrids and vgrids member from PJ structure, and store them in hgridshift/vgridshift/deformation structures - build systems: add optional libtiff dependency. Must be explicitly disabled if not desired - add support for horizontal and vertical grids in GeoTIFF, if libtiff is available - add GenericShiftGridSet and GenericShiftGrid classes, relying on TIFF grids, that can be used for generic purpose grid-based adjustment - add a +proj=xyzgridshift method to perform geocentric translation by grid. Used for French NTF to RGF93 transformation using gr3df97a.tif grid - deformation: add support for +grids= for GeoTIFF grids - horizontal grid shift: fix failures on points slightly outside a subgrid (fixes #209) * File management: - add a filemanager.cpp/.hpp to deal with file related work - test for legacy proj_api.h fileapi - proj.h: add proj_context_set_fileapi() and proj_context_set_sqlite3_vfs_name() (fixes #866) - add capability to read resource files from the user writable directory * Network access: - build systems: add optional curl dependency - add a curl-based default implementation for network related functionality - proj.h: add C API to control network functionality, and optionaly provide network callbacks - add data/proj.ini with default settings - add a SQLite3 local cache of downloaded chunks - add proj_is_download_needed() and proj_download_file() * Use Win32 Unicode APIs and expect all strings to be UTF-8 (fixes #1765) For backward compatibility, if PROJ_LIB content is found to be not UTF-8 or pointing to a non existing directory, then an attempt at interpretating it in the ANSI page encoding is done. proj_context_set_search_paths() now assumes strings to be in UTF-8, and functions returning paths will also return values in UTF-8.
2019-12-25Modify verbosity level of some debug/trace messagesEven Rouault
- unitconvert, ell_set and helmert were using debug level, which is too verbose. Using trace instead - proj_trans() was using trace to indicate the operation it selects. Changing it to debug
2019-10-28Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and ↵Even Rouault
HEAD/1.90dev happy (fixes #1648)
2019-09-19Merge pull request #1618 from cffk/c99-math-updateCharles Karney
Remove unneeded C99 compatibility functions from math.cpp and proj_math.h I'll do the clean up of the -std=c89 flags etc. as a separate pull request.
2019-09-18Delete proj_math.h. Replace includes by <math.h>; we'll see if anyoneCharles Karney
needs <limits.h>. Update scripts/reference_exported_symbols.txt and src/proj_symbol_rename.h.
2019-09-17helmert: validate scale parameter to avoid later division by zero. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16106
2019-03-30affine: remove duplicate #include "proj_internal.h"Chris Mayo
Introduced by "Merge projects.h into proj_internal.h" 8ab6f68.
2019-03-29Remove duplicate instances of #include "proj_internal.h"Chris Mayo
Introduced by "Merge projects.h into proj_internal.h" 8ab6f683.
2019-03-17Merge pull request #1322 from rouault/ossfuzz_fixesKristian Evers
Various ossfuzz fixes
2019-03-16Use 1st eccentricity instead of 2nd eccentricityKristian Evers
By mistake the second eccentricity was used in a few places in the Molodensky transform. According to the literature the first eccentricity should always be used in the eccentricity. This only affects the output slightly. Reported test coordinates differed by less than a millimeter. Fixes #1321
2019-03-16Helmert: avoid potential division by zeroEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11893 Credit to OSS Fuzz
2019-03-15Molodensky: avoid division by zeroEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13069 Credit to OSS Fuzz
2019-02-20Apply multiplier in proj_vgrid_value()Even Rouault
2019-02-20vgridshift: propagate multiplier to avoid false-positive detection of nodata ↵Even Rouault
values in the grids with US VERTCON grids that are in millimeters
2019-02-14deformation: Replace +t_obs with +dtKristian Evers
The +t_obs parameter was confusing for users since it effectively overwrote the observation time in input coordinates. To make it more clear what is the operation is doing, users are now required to directly specify the time span for which they wish to apply a given deformation. The parameter +dt has been added for that purpose. The new parameter is mutually exclusive with +t_epoch. +dt is used when deformation for a set amount of time is needed and +t_epoch is used (in conjunction with the observation time of the input coordinate) when deformation from a specific epoch to the observation time is needed.
2019-02-14Reverse direction of deformation operations/transformations/deformationKristian Evers
Changed the direction of dt-calculation to follow the same convention as helmert. Changed from dt = t_c - t_obs to dt = t_obs - t_c, which effectively reverses the direction of the operation. Existing projstrings using deformation can simply reverse the direction of the operation to achieve the same results as before this commit.
2019-02-01Remove +t_obs parameter from helmert operationKristian Evers
2019-01-03Rename PJ_IO_UNITS_ANGULAR to PJ_IO_UNITS_RADIANSKristian Evers
This communicates better what the unit actually is. It also opens the door for potentially adding PJ_IO_UNITS_DEGREES in the future in order to coordinates in degrees correctly as well.
2018-12-30Merge projects.h into proj_internal.hEven Rouault
2018-12-30projects.h: remove deprecated XY, XYZ, LP, LPZ, UV, UVW, projUV and projUVW ↵Even Rouault
structures
2018-12-27Remove proj_def.dat (fixes #201)Even Rouault
2018-12-26cpp conversion: remove useless pj_, PJ_ and proj_ filename prefixesEven Rouault
2018-12-26cpp conversion: move source files in apps/ iso19111/ conversions/ ↵Even Rouault
projections/ transformations/ tests/ subdirectories