aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-12-18Rename PJ_CONTEXT::fileapi member as fileapi_legacyEven Rouault
2019-12-14Horizontal grid shift: fix issue on iterative inverse computation when ↵Even Rouault
switching between (sub)grids (fixes #1663) Given in.txt with 53.999759140 5.144478208 252.6995 Before the fix, cct -t 0 -d 4 +proj=pipeline +step +proj=axisswap +order=2,1,3,4 +step +proj=hgridshift +inv +grids=rdtrans2018.gsb +step +proj=vgridshift +grids=naptrans2018.gtx +step +proj=sterea +lat_0=52.156160556 +lon_0=5.387638889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel in.txt returned: 139079.8814 668306.0302 212.1724 0.0000 It now returns: 139079.8850 668306.0458 212.1724 0.0000 which meets with the 1mm accuracy the expected result of test point ``` 30010049 53.999759140 5.144478208 252.6995 139079.8850 668306.0460 212.1723 ```
2019-12-14Grid class: add a name() methodEven Rouault
2019-12-13Add configure/CMake option, strongly discouraged, to disable TIFF supportEven Rouault
2019-12-12grids.cpp: use 'parent_grid_name' as stated in RFC4Even Rouault
2019-12-11Add a +proj=xyzgridshift method to perform geocentric translation by grid. ↵Even Rouault
Used for French NTF to RGF93 transformation using gr3df97a.tif grid
2019-12-11grids.hpp: add a GenericShiftGridSet and GenericShiftGrid classes, that are ↵Even Rouault
going to be used by later commit
2019-12-10GTiff grid: use a block cache per dataset for faster accessEven Rouault
2019-12-10Add support for horizontal and vertical grids in GeoTIFFEven Rouault
2019-12-09Horizontal shift grids: hide the 'positive longitude shift value = westward ↵Even Rouault
correction' in the CTable2/NTv1/NTv2 backends
2019-12-07Build and CI: add libtiff dependencyEven Rouault
2019-12-06Add a Grid base class for HorizontalShiftGrid and VerticalShiftGridEven Rouault
2019-12-06Remove hgrids and vgrids member from PJ structure, and store them in ↵Even Rouault
hgridshift/vgridshift/deformation structures
2019-12-06horizontal grid shift: rework to no longer load whole grid into memoryEven Rouault
2019-12-06vertical grid shift: rework to no longer load whole grid into memoryEven Rouault
2019-12-06Remove obsolete and presumably unfinished implementation of grid catalog ↵Even Rouault
functionality
2019-12-06test228.cpp: update to use OSTN15_NTv2_OSGBtoETRS.gsbEven Rouault
2019-12-05import from PROJ string CRS: better deal with strings that look like Google ↵Even Rouault
Mercator projection, but with subtlely different parameters (fixes https://github.com/OSGeo/gdal/issues/2087)
2019-12-04proj_grid_info(): fix crash when passing a file that exists but is not a gridEven Rouault
2019-12-04autoconf/cmake: do not install proj_json_streaming_writer.hpp headerEven Rouault
2019-12-03coordinateoperation.cpp: add nullptr checks to please CLang Static Analyzer ↵Even Rouault
that suddenly warns about them for unknown reason...
2019-12-03Database: register AUSGeoid09 and AUSGeoid2020Even Rouault
Related to https://github.com/OSGeo/proj-datumgrid/pull/66 Tune operation search so that it can work with Geog2D <--> VertCS for commandline niceness
2019-12-03Merge pull request #1759 from rouault/BWTA2017Even Rouault
Database: register the BWTA2017.gsb grid (DHDN->ETRS89 for Baden-Wurtemberg)
2019-12-02Database: register the BWTA2017.gsb grid (DHDN->ETRS89 for Baden-Wurtemberg)Even Rouault
Relates to https://github.com/OSGeo/proj-datumgrid/pull/65 , https://github.com/OSGeo/proj-datumgrid/issues/22 As EPSG has no entry for it, we create a grid_transformation, as well as a dedicated area of use based on the extent of the grid, under the PROJ authority. With the hope to be able to remove it once EPSG has an entry...
2019-12-01Enhance PROJ resource file lookup on Windows for bin\..\share\proj (#1755)Joaquim
This PR is Windows only. It adds the directory ``.....\bin\..\share\proj``, where ``....\bin`` is the directory hosting ``proj.dll``, to the list of places where ``proj.db`` is searched. In addition to what happens at build time, this PR ads also the ability to do that at run-time. This means that a structure like ....\bin\proj.exe, proj.dll, ... ....\share\proj\proj.db, ... will still find proj.db without needing to set the PROJ_LIB environment variable
2019-11-28createOperations(): fix vertical to geographic when synthetizing an ↵Even Rouault
operation that involves a vertical axis reversal
2019-11-28Attempt at fixing test failures due to ↵Even Rouault
8a5740637760f837c9145c72ad8080927a3a4bf0 in the no-grid scenario
2019-11-28createOperations(): if direct transformation is found in the database but ↵Even Rouault
not instantiable, allow using through intermediates. Should help in theory for Auckland 46 -> NZVD2016 the case but there are other issues
2019-11-28EPSG codes for YEAR and SECOND are interchanged. EPSG registry report ↵Martin Desruisseaux
EPSG::1040 for second and EPSG::1029 for year.
2019-11-26createOperations(): fix an exception in transformations between Projected3D ↵Even Rouault
CRS and Projected CRS
2019-11-26Merge pull request #1748 from rouault/improve_hgrid_vgrid_hgrid_inv_take2Even Rouault
Optimize pipelines involving horizontal shift grid, vertical shift grid, inverse horizontal shift grid (take 2)
2019-11-25Merge pull request #1745 from rouault/optimize_compound_to_geogKristian Evers
createOperations(): optimize compoundCRS to geogCRS, when the geogCRS of the compoundCRS is the same as the target geogCRS
2019-11-25Merge pull request #1737 from rouault/proj_create_derived_geographic_crsKristian Evers
Add proj_create_derived_geographic_crs() and proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method
2019-11-25Doc: change 7.0 references to 6.3Even Rouault
2019-11-25Change version numbers to 6.3.0Even Rouault
2019-11-25pipeline.cpp: use more explict variable namesEven Rouault
2019-11-25PROJStringFormatter::toString(): optimize hgridshift, vgridshift, hgridshift ↵Even Rouault
inv constructs Given an initial pipeline with +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo Transform it 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 So as to avoid doing a double application of the hgridshift.
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-11-25normalizeForVisualization() and other methods applying on a ProjectedCRS: do ↵Even Rouault
not mess the derivingConversion object of the original object (fixes #1736) normalizeForVisualization(), promoteTo3D(), demoteTo2D(), alterGeodeticCRS(), alterCSLinearUnit() and alterParametersLinearUnit() all used the object returned by derivingConversionRef() to create a new ProjectedCRS. While doing so, this caused the derivingConversion of the original object to have its targetCRS set to the object returned by normalizeForVisualization() and similar. If that object died, then the weak pointer would be reset, and the original ProjectedCRS() has now its derivingConversionRef()->targetCRS() nullptr So bottom line is use derivingConversion() for anything that is not pure reading !!! This is confirmed to be the fix for the QGIS scenario in https://github.com/qgis/QGIS/issues/30569#issuecomment-540060919 In QGIS use case, the issue arised when using a projected CRS with a non-GIS friendly axis (that is where normalizeForVisualization() created a new projectedCRS)
2019-11-25createOperations(): optimize compoundCRS to geogCRS, when the geogCRS of the ↵Even Rouault
compoundCRS is the same as the target geogCRS
2019-11-25CoordinateOperationFactory::Private::setCRSs(): fix potential issue with ↵Even Rouault
overriding CRS on a InverseCoordinateOperation (could be related to #1736)
2019-11-24pipeline.cpp: hopefully make code more readable by using more C++ goodness. ↵Even Rouault
No functional change intended (except a likely minor correction/improvement in get_next_non_whatever_unit in the PJ_INV case where the iteration should start at step-1)
2019-11-22Add proj_create_derived_geographic_crs() and ↵Even Rouault
proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method
2019-11-21Fix typos in code commentsEven Rouault
2019-11-19createOperations(): in some situations, consider when going from A to D ↵Even Rouault
intermediates B and C, such there's a A->B operation and C->D operation, and A and C are not exactly the same CRS but use the same geodetic datum
2019-11-18createFromCRSCodesWithIntermediates(): do not consider intermediate CRS ↵Even Rouault
whose datum has a publication date older than the source and target datums
2019-11-18createGeodeticDatum(): query and set publicationDateEven Rouault
2019-11-18createOperations(): fix so that GDA94 -> WGS 84 (G1762) still include a ↵Even Rouault
result through ITRF2008. Was broken in master by the addition of the 'WGS84 -> WGS 84 (Gxxx)' null operations in the PROJ authority
2019-11-18proj_trans(): tune selection of operation when there are several ↵Even Rouault
alternatives, to select the operation with best accuracy
2019-11-18createOperations(): small perf improvement. Do not attempt going through an ↵Even Rouault
intermediate CRS if we found direct transformation(s) but had to eliminate them due to other criteria