aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2022-03-19Fix datum names when importing from PROJ4 crs strings (affects some ↵Even Rouault
transformations using geoidgrids) When importing from a PROJ4 string with +towgs84, +nadgrids or +geoidgrids terms, the datum name was just set to 'unknown'. So for example the datums of '+proj=longlat +ellps=GRS80 +towgs84=1,2,3' and '+proj=longlat +ellps=GRS80 +towgs84=4,5,6' were considered identical, because they had the same name 'unknown' and used the same ellipsoid. This affected the transformation of such CRS when they had an additional +geoidgrids term, which resulted in an erroneous +proj=push +v_1 +v_2 step to be added to preserve the horizontal coordinates.
2022-03-18createOperations(): fix transformation involving CompoundCRS, ToWGS84 and ↵Even Rouault
PROJ4_GRIDS Fix issue reported in https://lists.osgeo.org/pipermail/gdal-dev/2022-March/055587.html
2022-03-17Merge pull request #3119 from rouault/compound_to_2D_crsEven Rouault
Transformation: no longer do vertical trasnformation when doing compound CRS to 2D CRS / add --3d to cs2cs
2022-03-16Merge pull request #3118 from rouault/dynamic_datum_isequivalenttoEven Rouault
Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
2022-03-16Transformation: no longer do vertical trasnformation when doing compound CRS ↵Even Rouault
to 2D CRS / add --3d to cs2cs Previously, when computing transformation between a compound CRS and a geographic/projected 2D CRS, the behaviour was similar to implicitly promoting the 2D CRS to 3D CRS in the pipeline computation logic, hence a geoid model could be applied. But note that when doing a geographic 3D to geographic/projected 2D CRS transformation, we *did* not do this implicit promotion and if a Helmert transformation existed between the datums, it was done only in 2D. So this is a bit inconsistent and triggered the comment in https://github.com/OSGeo/PROJ/issues/2318#issuecomment-1068924513 With this commit, we no longer do any vertical transformation when doing compound CRS to the 2D CRS, but just take the transformation of the horizontal part of the compound CRS to the 2D CRS. Said otherwise, NAD83+NAVD88 to NAD83 will no longer lead to the application of the geoid model. Unless you explicitly ask for the promotion NAD83 to 3D. Also related, in https://github.com/OSGeo/PROJ/issues/1563 that went to 6.3.0, I changed cs2cs to automatically promote to 3D the CRS as soon as one of them was compound, for the sake of being consistent with the past behaviour. But it then becomes difficult to predict PROJ behaviour depending on which level of it you consider... This commit undoes that and adds an explicit --3d switch to cs2cs, similarly to projinfo, to ask for promotion. Other bug fix found in the process, when using legacy syntax, +init=epsg:4979, (WGS 84 3D), the resulting CRS was 2D and not 3D.
2022-03-16Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrameEven Rouault
If comparing a DynamicGeodeticReferenceFrame object and its export to WKT1, which is a simple DATUM object, currently in non-strict comparison mode, we'd consider the datum to be equivalent to the dynamic datum, but not the reverse, which breaks the symmetric property of the isEquivalentTo() operation. So fix this, to consider both equivalent whatever the operand order. (in strict mode, the objects will be considered different of course) Spotted in the GDAL GeoTIFF CRS reader code: https://github.com/OSGeo/gdal/blob/f9d48bdcc8c90df20e53b5af5785f1e5d78910db/frmts/gtiff/gt_wkt_srs.cpp#L832 Do same change for vertical datum vs dynamic vertical datum.
2022-03-11unitconvert: round to nearest date when converting to yyyymmdd.Brendan Jurd
This resolves an issue where converting from a low-precision decimalyear to yyyymmdd gave the wrong result, due to mjd_to_yyyymmdd() truncating away the fractional time component. This commit changes the behaviour of mjd_to_yyyymmdd() to round to the nearest date, instead of truncating. Refs #1483
2022-03-09createOperations(): fix issue in transformation northing,easting projected ↵Even Rouault
CRS -> +proj=longlat +lon_wrap (fixes #3095)
2022-03-09Merge pull request #3106 from rouault/update_nkg_gieEven Rouault
nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79
2022-03-09nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79Even Rouault
2022-03-09Fix import of WKT of concatenated operation with inverse conversion of a ↵Even Rouault
compound CRS of a projected CRS (fixes #3076)
2022-03-09Merge pull request #3098 from rouault/fix_gdal_5408Even Rouault
Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green…
2022-03-08Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwhich ↵Even Rouault
prime meridian, created from WKT (fixes OSGeo/gdal#5408)
2022-03-05Increase MAX_ITER so Mollweide forward projection works near the poles. (#3082)erykoff
2022-02-23Rename "Kavraisky" to transliteration "Kavrayskiy" used by Snyder1993 (#3071)Mike Taves
2022-02-18CMake: set RUN_NETWORK_DEPENDENT_TESTS to ON by default only if network ↵Even Rouault
seems available (fixes #3060)
2022-02-15Remove googletest source code remainsEven Rouault
They are no longer needed, as there were only used by autoconf builds. For CMake, we either use external googletest, or use CMake download capabilities.
2022-02-14Fix importing CRS definition with +proj=peirce_q and +shape different from ↵Even Rouault
square or diamond. Follow-up of #3014. Fixes #3056. master only
2022-02-14Better deal with importing strings like '+init=epsg:XXXX +over' (refs ↵Even Rouault
MapServer/MapServer#6478)
2022-02-12proj.ini: add a 'ca_bundle_path' variableEven Rouault
Cf thread https://lists.osgeo.org/pipermail/gdal-dev/2022-February/thread.html#55391
2022-02-09createOperations(): fix transformations from/to a BoundCRS of a ↵Even Rouault
DerivedGeographicCRS coming from WKT
2022-02-05Adapt testing to recursive pkg-config requirementsKai Pastor
When pkg-config is called with --static, it will recursively collect all Libs and Libs.private which are discovered via Requires and Requires.private. So these libs must be available for linking even when acutally only lib proj uses static linkage. Libs and pkg-config must be provided for the target triplet.
2022-02-04Set more precise error code for parsing errors in proj_create().Brendan Jurd
If proj_create() catches a ParsingException, and the error code hasn't otherwise been set internally, set the error code to PROJ_ERR_INVALID_OP_WRONG_SYNTAX instead of allowing it to default to the generic PROJ_ERR_OTHER. Ref #2529
2022-02-01Use external gtest by default when detectedEven Rouault
2022-01-31Drop autotools; move remaining useful m4 macros (#3027)Mike Taves
2022-01-24CI: transition tests from autotools to cmake (#3023)Mike Taves
2022-01-20lookForGridInfo(): make it work properly when passed the old PROJ nameEven Rouault
Fixes https://github.com/qgis/QGIS/issues/45470 That is, if the file for the old PROJ name is not found, but the file for the new PROJ name is found, then use the later for fullFilename and gridAvailable.
2022-01-13Specify CMAKE_INSTALL_RPATH for macOS; use -rpath LDFLAGS for tests (#3009)Mike Taves
2022-01-12Merge pull request #3010 from rouault/fix_2739Even Rouault
Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway depth
2022-01-09peirce_q: add inversion of +shape=square and diamond through generic ↵Even Rouault
inversion method
2022-01-07Map peirce_q to pseudo WKT2 and ESRI WKTEven Rouault
2022-01-07peirce_q: rename +type parameter wrongly introduced in 8.2.1 to +shape ↵Even Rouault
(fixes #3011)
2022-01-07Merge pull request #3013 from rouault/fix_3012Even Rouault
proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for IAU_2015 -ocentric geodetic CRS (fixes #3012)
2022-01-06proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for ↵Even Rouault
IAU_2015 -ocentric geodetic CRS (fixes #3012)
2022-01-06Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway ↵Even Rouault
depth Fixes #2739 Verified with example from IOGP Guidance Note 7-2 (ver 62, Dec 2021) page 169, with 38 = h_obs - D_obs = 50 - 12. $ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:9883 60.0015 4.9960 5.8827 $ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:4258+9672 60.0015 4.9960 5.8827 $ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:9883 EPSG:4937 60.0015 4.9960 38.0000 $ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4258+9672 EPSG:4937 60.0015 4.9960 38.0000
2022-01-04test proj_create_operations_with_pivot(): change CRSs used in preparation of ↵Even Rouault
EPSG 10.044 which adds a direct transformation between WGS84 and JGD2011
2021-12-20Fix and additional options for Peirce Quincuncial projections (#2978)Toby C. Wilkinson
This fixes the current forward implementation of Peirce Quincuncial proj to correctly flip/reflect out the southern hemisphere to four triangles, and rotate entire result to a square or diamond. (It there resolves the issues identified with pull request https://github.com/OSGeo/PROJ/pull/2230 , where southern hemisphere was wrongly projected over northern, and reverses the restriction to northern hemisphere introduced there). It also adds additional lateral projection of the hemispheres. - This PR adds an optional parameter `+type` which allows selection of projection. The `+type=square` and `+type=diamond` types match in principle ESRI's twin implementations of square and diamond PQ projs. The **default** if not specified is `+type=diamond`. - The previous behaviour restricted to the northern hemisphere can be reproduced using the `+type=nhemisphere`, though this is an edge case only. - An additional `+type=horizontal` and `+type=vertical` rectangular lateral versions have been added that place each hemisphere side-by-side. This is primarily to allow creation of projections such as Greiger Triptychial, which also require the additional optional params `scrollx` or `scrolly` in order to shift parts of the projection from one side of the map to the other. - Additional documentation has been added to proj description, including quoting the usual meridian used in common usage of projection, and images showing the different types.
2021-12-20Merge pull request #2980 from rouault/cmake_warn_googletestEven Rouault
CMake: fix warning with external googletest
2021-12-16WKT1 import: correctly deal with missing rectified_grid_angle parameterEven Rouault
by setting its value from the azimuth angle. and on export to PROJ.4 string do not emit a erroneous +gamma=0 when the parameter it is missing. Fixes https://lists.osgeo.org/pipermail/proj/2021-December/010475.html
2021-12-10CMake: fix warning with external googletestEven Rouault
Recent CMake versions throw the following warning when building googletest 1.8.1. Bumping to 1.11.0 that has a minimum version of 2.8.12 fixes that ``` CMake Deprecation Warning at build/googletest-src/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. ```
2021-12-09Merge pull request #2976 from rouault/compound_to_compound_ballparkEven Rouault
createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height"
2021-12-08createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to ↵Even Rouault
"NAD83(CSRS) + CGVD2013(CGG2013) height" That transformation involves doing CGVD28 height to CGVD2013(CGG2013) height by doing: - CGVD28 height to NAD83(CSRS): EPSG registered operation - NAD83(CSRS) to CGVD2013(CGG2013) height by doing: * NAD83(CSRS) to NAD83(CSRS)v6: ballpark * NAD83(CSRS)v6 to CGVD2013(CGG2013): EPSG registered operation
2021-12-09Refactor post-install suite to test shared and static projlib (#2972)Mike Taves
2021-11-24Pipeline parsing: reject proj=/o_proj= before first step, to avoid bad ↵Even Rouault
performance pattern on hostile pipelines Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41290
2021-11-15Code reformatEven Rouault
2021-11-14Merge pull request #2937 from rouault/fix_2936Even Rouault
createOperations(): do not stop at the first operation in the PROJ namespace for vertical transformations
2021-11-12Add new option to proj_create_crs_to_crs_from_pj method to force +over on ↵Peter Townsend
transformation operations (#2914) Fixes #2512
2021-11-11createOperations(): do not stop at the first operation in the PROJ namespace ↵Even Rouault
for vertical transformations In particular helps with transformation between "NAD83 + NAVD88 height" and WGS 84 that have regressed in 8.2.0 Fixes #2936
2021-11-10test: Make CApi test cross-platformtoonn
The test made an assumption of being able to open 1024 - 50 files. On some platforms, like older Darwin, the default limit is only 256. To avoid the issue entirely we retrieve the current limit for the process. We decrease the OPEN_MAX limit if it's too high. On some platforms fopen returned nullptrs before reaching the limit (-50) and this doesn't happen if we decrease the limit to 1024.
2021-11-04Remove useless PROJ_DLL uses in .cpp files (#2920)Momtchil Momtchev