aboutsummaryrefslogtreecommitdiff
path: root/test/gie/4D-API_cs2cs-style.gie
AgeCommit message (Collapse)Author
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
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-03-07typo fixesEven Rouault
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-04-21gie: implement a strict mode with <gie-strict> </gie-strict> (fixes #2158)Even Rouault
In that mode: * All non-comment/decoration lines must start with a valid tag * Commands split on several lines should be terminated with " \"
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-01-28Add +proj=set operation to set component(s) of a coordinate to a fixed valueEven Rouault
Fixes #1846
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-11-25Pipeline: support +omit_fwd and +omit_inv keywordsEven Rouault
Inspired from syntax of https://github.com/OSGeo/PROJ/pull/453/files but 'rebased' on top of previous commit that cleans up the pipeline implementation Different situations: - +omit_fwd: the step when followed in the forward path will be omitted the step when followed in the reverse path will be executed - +omit_fwd +inv: the step when followed in the forward path will be omitted the step when followed in the reverse path will be executed (with the inv method) - +omit_inv: the step when followed in the forward path will be executed the step when followed in the reverse path will be omitted - +omit_inv +inv: the step when followed in the forward path will be executed (with the inv method) the step when followed in the reverse path will be omitted This will be used in the next commit to optimize constructs like +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo Such steps are used for CRS to CRS transformations where applying the vertical grid requires to do a transformation to an interpolating CRS. One can notice that in the last step will just restore the horizontal coordinates before the first step, so doing an inverse hgridshift is overkill. So that could be optimized as: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +omit_inv +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo +omit_fwd +step +proj=pop +v_1 +v_2 In the forward path, this will be equivalent to: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +prop=pop +v_1 +v_2 And similarly in the reverse path, this will be quivalent to: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +step +inv +proj=vgridshift +grids=bar +step +proj=pop +v_1 +v_2
2019-04-03Merge pull request #1408 from rouault/ossfuzz_14015Kristian Evers
Fixes Ossfuzz 14015 and gie bug
2019-04-02gie: fix tolerance checkingEven Rouault
When comparing expected result with got result, in the case the distance computation returns NaN, gie incorrectly considered the test to be OK. Adapt / comment out a few broken tests revealed after that fix.
2019-04-02Make sure that ISO19111 C++ code sets pj_errno on errorsKristian Evers
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-02-13Add push and pop operationsKristian Evers
This commit introduces the concept of a pipeline coordinate stack in which components of coordinates can be saved and loaded from. This makes it possible to moved values from one step of a pipeline to another, effectively overwriting parts of the output from a given step.
2019-02-03init(): repair to_meter=num/denom that was broken in the general case in ↵Even Rouault
PROJ 5; repair vto_meter=num/denom that was broken, and avoid division by zero, which fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12869. Credit to OSS Fuzz
2018-12-27tests: remove useless mentions of no_defs (refs #201)Even Rouault
2018-12-27Remove proj_def.dat (fixes #201)Even Rouault
2018-11-29Redirect epsg:XXXX and IGNF:XXXX CRS expansions to the database, and remove ↵Even Rouault
the data/epsg and data/IGNF files
2018-08-294D API: honour vto_meter / vunits for proj=longlatEven Rouault
This worked for cs2cs / pj_transform(), but not the new API
2018-08-114D-API_cs2cs-style.gie: rewrite test to not rely on presence of 'conus' grid ↵Even Rouault
(we should have a way to state that some grids must be present) (refs #872)
2018-07-20Add test coordinates for webmercKristian Evers
2018-06-21Make +proj=geocent and +proj=cart take into account +to_meter (relates to #1053)Even Rouault
2018-06-01Do not pivot over WGS84 when doing cs2cs-emulation with geocentKristian Evers
2018-06-01Ignore failure to load test_nodata.gtx gridKristian Evers
2018-05-19Vertical grid shift: do not interpolate node values at nodata value (fixes ↵Even Rouault
#1002)
2018-04-09Add webmerc projectionEven Rouault
2018-03-27Validate that units match between pipeline stepsKristian Evers
As suggested in [0], steps in a pipeline are now checked for compliance. If the right side units in step n differ from the left side units in step n+1 the pipeline can't be constructed and an error is raised. [0] https://lists.osgeo.org/pipermail/grass-dev/2018-March/088123.html
2018-03-21Take into account +towgs84=0,0,0 in pipeline to still imply ↵Even Rouault
geodetic->cartesian->geodetic (fixes #881)
2018-03-20Introduce late expansion of +datum parameters. Fixes #872.Kristian Evers
2018-03-11Merge branch 'master' into return-error-instead-of-zerosKristian Evers
2018-03-11Make sure that transient errors are returned correctlyKristian Evers
The prepare/finalize steps in pj_fwd*/pj_inv* now checks the error level of the PJ object before returning the coordinate. If an error is detected proj_coord_error() is returned.
2018-03-11Add Web Mercator test caseKristian Evers
2018-02-12Ensure cs2cs emulation gets correct ellipsoid defn (#798)Thomas Knudsen
Copy ellipsoid definition for proj=cart directly into the proj_create call, rather than calling pj_inherit_ellipsoid_def afterwards. Previously, the ellipsoid definition was left out from the call. pj_init_ctx would then pick up WGS84 from proj_def.dat, and the init would succeed (and the possibly wrong ellipsoid definition would later on be overwritten with the correct values by pj_inherit_ellipsoid_def. But if PROJ_LIB was not set or proj_def.dat was inaccessible for other reasons, things went wrong.
2018-02-12Avoid invalid ellps error messages from pj_init (#794)Thomas Knudsen
Reset error type PJD_ERR_MAJOR_AXIS_NOT_GIVEN for operations that do not need an ellipsoid.
2018-02-10Update a few gie testsThomas Knudsen
2018-02-10Handle sign convention for vertical datum shiftsThomas Knudsen
Also make corresponding sign corrections in a number of tests, and comment out a few tests which work correctly, but report failure since gie is not yet ready to handle unusual axis orders in cases with angular output coordinates.
2018-02-10update gie tests to agree with improved gie distance handlingThomas Knudsen
2018-02-06Skip gie tests that require gridsKristian Evers
2018-01-31Introduce compatibility for cs2cs-style proj-strings into the 4D API.Thomas Knudsen
Parameters such as towgs84, nadgrids and geoidgrids was previously only handled by pj_transform(). This commit add a compatibility layer in proj_create() by calling the pj_cs2cs_emulation_setup() function. This function sets up a handful of predefined transformation objects on the PJ object that is being created. Each of these transformation objects are related to the cs2cs-style parameters we are trying to emulate in the 4D API. That is, if the +towgs84 parameters is used we create P->helmert with the parameters specified in +towgs84. Similarly for +axis, +nadgrids and +geoidgrids. When these transformation objects exists we use them in the prepare and finalize functions in pj_fwd/ pj_inv. If no cs2cs-style parametes are specified we skip those parts of the prepare and finalizing steps. Co-authored-by:Thomas Knudsen <thokn@sdfe.dk> Co-authored-by:Kristian Evers <kristianevers@gmail.com>