aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2020-04-16Map ESRI WKT for Adams_Square_II to +proj=adams_ws2Even Rouault
2020-04-16Merge pull request #2155 from rouault/fix_2143Even Rouault
createOperations(): do not remove ballpark transformation if there are only grid based operations, even if they cover the whole area of use (fixes #2143)
2020-04-15Merge pull request #2148 from kbevers/add_adams_projectionsKristian Evers
Add square conformal projections from libproject
2020-04-15Add square conformal projections from libprojectKristian Evers
This commit adds five new projections to PROJ: adams_hemi: Adams Hemisphere in a Square adams_wsI: Adams World in a Square I adams_wsII: Adams World in a Square II guyou: Guyou peirce_q: Pierce Quincuncial The code originates from Gerry Evendens libproject and has been adapted to work with modern PROJ. To ensure that the modified code works as intended extensive test data has been created using libproject and sproj so that no errors occured when porting from libproject to PROJ. The test data is wrapped in a gie files. All test cases reproduce results from libproject at the mm level.
2020-04-15tmerc/utm: add a +algo=auto/evenden_snyder/poder_engsager parameterEven Rouault
The default remains +alg=poder_engsager. This default value can be changed in proj.ini +algo=auto will use Evenden Synder implementation if the error in doing so remains below 0.1 mm on Earth-sized ellipsoid
2020-04-15C API: add proj_operation_factory_context_set_allow_ballpark_transformations()Even Rouault
2020-04-14createOperations(): do not remove ballpark transformation if there are only ↵Even Rouault
grid based operations, even if they cover the whole area of use (fixes #2143)
2020-04-14Robinson inverse projection: error on out of domain values (#2151)Martin Raspaud
2020-04-14ProjectedCRS identification: deal with switched 1st/2nd std parallels for ↵Even Rouault
LCC_2SP (#2150) As switching the 2 standard parallels for Lambert Conformal Conic 2 standard parallels result in a equivalently numerical projection definition, take that into account when querying the database.
2020-04-14code format fix [skip ci]Even Rouault
2020-04-13Merge pull request #2144 from kbevers/proj_degree_inoutputKristian Evers
Add proj_degree_input() and proj_degree_output()
2020-04-12Add proj_degree_input() and proj_degree_output()Kristian Evers
Equivalent to proj_angular_input() and proj_angular_output() but checking for degree units instead. proj_create_crs_to_crs() rarely, if ever, returns pipelines that has radians as input or output so using proj_angular_*() is not a useful check for io units of pipelines. These two new functions should make life a bit easier for users that generally store there angular coordinates in radians. Closes #2027
2020-04-11Inverse cart: speed-up computation by 33%Even Rouault
Saves 2 sincos() and 1 atan2() calls. With the following bench ``` #include "proj.h" #include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc, char* argv[]) { if( argc != 2 ) { fprintf(stderr, "Usage: bench_inv_cart fwd/inv\n"); exit(1); } PJ* p = proj_create(0, "+proj=cart"); const int dir = strcmp(argv[1], "inv") == 0 ? PJ_INV : PJ_FWD; PJ_COORD coord; if( dir == PJ_FWD ) { coord.xyz.x = 3.14159/2; coord.xyz.y = 3.14159/2; coord.xyz.z = 100; } else { coord.xyz.x = 3e6; coord.xyz.y = 3e6; coord.xyz.z = 3e6; } for(int i = 0; i < 10* 1024 * 1024; i++ ) { proj_trans(p, dir, coord); } proj_destroy(p); return 0; } ``` On Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz Time before: 2.37s Time after: 1.57s
2020-04-09createFromPROJString(): ignore +wktext in '+init=epsg:XXX +wktext' string ↵Even Rouault
(refs https://github.com/OSGeo/gdal/issues/2392)
2020-04-04Merge pull request #2127 from rouault/projinfo_hide_ballparkEven Rouault
projinfo: add a --hide-ballpark option
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-04-04createOperations(): improve results of compoundCRS to compoundCRS case ↵Even Rouault
(fixes #2115)
2020-04-04projinfo: add a --hide-ballpark optionEven Rouault
2020-04-03createFromUserInput(): allow compound CRS with the 2 parts given by names, ↵Even Rouault
e.g. 'WGS 84 + EGM96 height'
2020-04-03Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base ↵Even Rouault
geographic CRS as 3D (fixes #2122)
2020-03-30ESRI_WKT ingestion: make sure to identify to non-deprecated EPSG entry when ↵Even Rouault
possible (fixes #2116)
2020-03-30Database: fix registration of custom entries of ↵Even Rouault
grid_transformation_custom.sql for geoid grids (fixes #2112)
2020-03-30Fix working of Helmert transform between the horizontal part of 2 ↵Even Rouault
compoundCRS (fixes #2108)
2020-03-28CMake: prefer to use use PROJ_SOURCE_DIR and PROJ_BINARY_DIR (#2100)Mike Taves
* Use instead of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR * Also PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR, which are similar * Set properties with a list variable rather than a long line * Correction to 'proj_test_set_properties' function, rename ENVIRONMENT: - PROJ_IGNORE_USER_WRITABLE_DIRECTORY (ignored) - PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY (used by filemanager.cpp)
2020-03-27Fix identification of projected CRS whose name is close but not strictly ↵Even Rouault
equal to a ESRI alias (fixes #2099)
2020-03-25EngineeringCRS: when exporting to WKT1_GDAL, output unit and axis (fixes ↵Even Rouault
https://github.com/OSGeo/gdal/issues/2347)
2020-03-24ESRI WKT import / identification: special case for ↵Even Rouault
NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 with Foot_US unit (fixes #2086)
2020-03-21Add post-install checks for CMake and Autotools/pkg-config (#2077)Mike Taves
* Checks CMake's find_package(PROJ) and find_package(PROJ4) * Checks pkg-config used with a Makefile (Linux and macOS only) * Use proj.h / libproj with a simple 'testappprojinfo'
2020-03-19proj_get_suggested_operation(): fix when there are only operations without ↵Even Rouault
area of use
2020-03-18cs2cs: don't require +to for '{source_crs} {target_crs} filename...' syntax ↵Even Rouault
(fixes #2012)
2020-03-16Merge branch 'master' into add_proj_get_suggested_operationEven Rouault
2020-03-13Tag proj_list_units() as deprecatedEven Rouault
2020-03-13Add proj_get_suggested_operation()Even Rouault
Return the index of the operation that would be the most appropriate to transform the specified coordinates. This operation may use resources that are not locally available, depending on the search criteria used by proj_create_operations(). This could be done by using proj_create_operations() with a punctual bounding box, but this function is faster when one needs to evaluate on many points with the same (source_crs, target_crs) tuple.
2020-03-12Add proj_get_units_from_database() (fixes #2004)Even Rouault
2020-03-11ProjectedCRS::identify(): tune it to better work with ESRI WKT ↵Even Rouault
representation of EPSG:2193 Adresses https://github.com/OSGeo/gdal/issues/2303 by raising the identification confidence from 25% to 90% (90% means equivalent for all purposes, but name not strictly the EPSG official one)
2020-03-10utm/ups: make sure to set errno to PJD_ERR_ELLIPSOID_USE_REQUIRED if es==0Even Rouault
ENOMEM was wrongly set after setting PJD_ERR_ELLIPSOID_USE_REQUIRED Note: it is a bit strange to forbid the pure spherical case whereas the maths would allow it. I presume this is due to the typical usage of those methods.
2020-03-09Map ESRI Transverse_Mercator_Complex to Transverse MercatorEven Rouault
According to https://gis.stackexchange.com/questions/226679/complex-utm-projection it is highly likely that Transverse_Mercator_Complex corresponds to our extended/enhanced/Poder-Engsager transverse mercator method (etmerc), or something similarly precise. So we can map that to the standard Transverse Mercator method, since etmerc is used for it.
2020-03-06Typo fixes identified by scripts/fix_typos.shEven Rouault
2020-03-06WKT import/export: add support for WKT1_ESRI VERTCS syntaxEven Rouault
2020-03-05ESRI WKT: map Mercator_Variant_A, Mercator_Variant_C and ↵Even Rouault
Transverse_Cylindrical_Equal_Area projections (#2020) * Add mapping of ESRI projection methods Mercator_Variant_A, Mercator_Variant_C and Transverse_Cylindrical_Equal_Area * Add a few notes about missing mappings
2020-03-04Add missing tests for ESRI projection method conversionNyall Dawson
2020-03-03createUnitOfMeasure(): use full double resolution for the conversion factor ↵Even Rouault
(#2011) Fixes https://github.com/OSGeo/gdal/issues/2290 where it was found that PROJ returned value for conversion factor of US Survey Foot unit wasn't at the maximum resolution, but only accurate to 15 significant digits.
2020-02-29createOperations(): fix wrong pipeline generation with CRS that has ↵Even Rouault
+nadgrids= and +pm= (#1998) Fixes issue reported at https://lists.osgeo.org/pipermail/gdal-dev/2020-February/051749.html The generated pipeline assumes that the input coordinates for the grid transformation were related to the non-Greenwich based datum, so we must compensate for that and add logic to go back to Greenwich.
2020-02-28Formatting fixEven Rouault
2020-02-27Make tests independent of proj-datumgridEven Rouault
Fixes #1984 - Copy BETA2007.gsb, MD, alaska, conus, ntf_r93.gsb, ntv1_can.dat grids from proj-datumgrid to data/tests. - Replace a couple uses of nzgd2kgrid0005.gsb in tests by ntf_r93.gsb - Add downsampled/subsetted versions of egm96_15.gtx as tests/egm96_15_downsampled.gtx and ntv2_0.gsb as tests/ntv2_0_downsampled.gsb This results in a few changes in expected results - Simpify travis/install.sh due to less configurations to test This results in a hopefully acceptable increase of the proj-X.Y.Z.tar.gz from 2.9 to 5.3 MB
2020-02-26Database: register 4 height Austrian grids from ↵Even Rouault
https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method
2020-02-26Database: update to EPSG v9.8.7Even Rouault
2020-02-25createOperations(): be robust to a GeographicCRS having a wrong ID attached ↵Even Rouault
to it (fixes #1982)
2020-02-25CompoundCRS::create(): reject combinations of components not allowed by ISO ↵Even Rouault
19111
2020-02-24createOperations(): keep height/z value in Helmert transform between 3D CRSEven Rouault
This is the consequence of a private email thread between me, Joel Haasdyk and Roger Lott. I initially raised that the GDA2020 technical manual advertized the Helmert transformation between GDA94 to GDA2020 to be a 3D one, with example of a test point where ellipsoidal heights where modified. It appears this was intended. The corresponding record in EPSG uses the EPSG:9607 "Coordinate Frame rotation (geog2D domain)" method between the 2D geographic CRS of GDA94 and GDA2020. From the email exchange, it appears that there's a lot of legacy explaining that Helmert transformations are registered only between 2D CRS, which doesn't mean that when applied to the corresponding 3D CRS, the change in ellipsoidal height should be discarded. Related to that, the EPSG database, while it has methods flagged "(geog3D domain)" never uses them. So... this changeset slightly ammends PROJ behaviour to ignore the "(geog2D domain)" flag, but only consider the dimensionality of the source & target CRS. However, for a EPSG transformation, those are always 2D CRS, hence introduce the use3DHelmert_ hack when we know that ultimately the 'real' source & target CRS are 3D. I wouldn't be surprised if in more complex pipeline the above logic would be lacking. But it fixes at least simple transformations.