aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-09-15Inverse ortho ellipsoidal oblique: address a few remarks from ↵Even Rouault
https://github.com/OSGeo/PROJ/issues/2844#issuecomment-920138371
2021-09-15Inverse ellipsoidal orthographic projection (oblique case): fix convergence ↵Even Rouault
at pole
2021-09-15Fix error in implementation of Inverse ellipsoidal orthographic projection ↵Even Rouault
(oblique case) that cause convergence to sometimes fail (fixes #2844)
2021-09-14PROJJSON: support additional properties allowed in id object (version, ↵Even Rouault
authority_citation, uri) for parity with WKT2:2019
2021-09-14Merge pull request #2847 from rouault/spherical_ocentricEven Rouault
Add support for GeodeticCRS using a Spherical ocentric coordinate system
2021-09-08createOperations(): use an explicit conversion operation for geodetic <--> ↵Even Rouault
geocentric latitude
2021-09-08createConversion(): avoid nullptr dereference on a method without parametersEven Rouault
2021-09-08createOperations(): deal with spherical planetocentric geodetic CRSEven Rouault
This also fixes conversion between geocentric latlong and geodetic latlong with cs2cs. This was dealt with in PR 1093, but in the wrong direction (the geocentric latitude must be <= in absolute value to the geodetic one) The issue here was linked to the semantics of the +geoc specifier, which affects the semantics of the input coordinates in the forward direction (+geoc means that the input coordinate is is a geocentric latitude), which defeats the logic of doing A to B by using the inverse path of A and the forward path of B.
2021-09-08Merge pull request #2845 from rouault/fix_2843Even Rouault
Fix database access across fork() when SQLite3 doesn't use pread[64]() (fixes #2843)
2021-09-07Support importing/exporting WKT & PROJJSON of 2D axis spherical ↵Even Rouault
planetocentric geodetic CRS
2021-09-07pj_obj_create(): avoid passing invalid ellipsoid parameters to geod_init(). ↵Even Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38192
2021-09-07Fix database access across fork() when SQLite3 doesn't use pread[64]() ↵Even Rouault
(fixes #2843)
2021-09-05getInsertStatementsFor(): re-order projection parameters according to their ↵Even Rouault
canonical order if needed
2021-09-04healpix.cpp: make it more obvious to cppcheck that capmap.cn is always ↵Even Rouault
initialized
2021-09-04Workaround 'Overlapping read/write of union is undefined behavior' cppcheck ↵Even Rouault
warning (but really fixing them would be more involved)
2021-09-04Conversion::createAxisOrderReversal(): workaround cppcheck false positiveEven Rouault
2021-09-04createFromUserInput(): make it more obvious for cppcheck and humans tooEven Rouault
2021-09-04GeodeticCRS::identify(): make it more obvious for cppcheckEven Rouault
2021-09-04pipeline.cpp: remove impossible conditionEven Rouault
2021-09-04formatting fixEven Rouault
2021-09-04Merge pull request #2839 from rouault/fix_ossfuzz_31964Even Rouault
pj_obj_create(): avoid passing invalid ellipsoid parameters ot pj_calc_ellipsoid_params()
2021-09-03Add some filename lint #2838 to output error messagesHoward Butler
2021-09-03pj_obj_create(): avoid passing invalid ellipsoid parameters ot ↵Even Rouault
pj_calc_ellipsoid_params(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31964
2021-09-03formatting fixEven Rouault
2021-09-02Add proj_create_conversion_pole_rotation_netcdf_cf_convention() to address ↵Even Rouault
netCDF datasets using a pole rotation method
2021-09-01Merge pull request #2831 from gorlak-forks/uwp-filemanagerEven Rouault
Make filemanager aware of UWP Win32 API
2021-08-31PROJStringFormatter::toString(): add missing iterator increment (but luckily ↵Even Rouault
this omission didn't result in endless loop, just an extra iteration)
2021-08-31Workaround false positive in recent cppcheckEven Rouault
2021-08-31io.cpp: remove always true testEven Rouault
2021-08-29io.cpp: silence Coverity false positive (CID 356032)Even Rouault
2021-08-27ESRI WKT: add support for import/export of (non interrupted) Goode HomolosineEven Rouault
Issue found during https://github.com/OSGeo/gdal/pull/4355 when it was found that a WKT with Goode_Homolosine projection parsed as ESRI WKT was mapped wrongly to Interrupted Goode Homolosine
2021-08-27Merge pull request #2824 from rouault/fix_ossfuzz_37489Even Rouault
Pipeline instanciation: fix performance issues on huge (broken) strings...
2021-08-26Pipeline instanciation: fix performance issues on huge (broken) strings ↵Even Rouault
which managed somehow to cause nested pipelines not caught due to some non-roundtripability in parsing/serializing. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37489
2021-08-26WKT importer: better detect ESRI WKT on projected CRS (fixes #2822)Even Rouault
2021-08-26WKT importer: detect ESRI WKT even when datum name doesn't start with D_ ↵Even Rouault
(fixes #2822)
2021-08-21PROJStringFormatter::toString(): fix potential O(n^2) performance. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438
2021-08-21pipeline instanciation: fix potential O(n^2) performance. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438
2021-08-20ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when ↵Even Rouault
inverse map projection is involved in non-final step (fixes #2817)
2021-08-19BoundCRS: accept importing/exporting in WKT2 and PROJJSON the ↵Even Rouault
scope/area/extent/id attributes (fixes #2813) For PROJJSON only, also accept the ``name`` attribute.
2021-08-16Merge pull request #2809 from rouault/preserve_proj4_crs_string_wkt2_remarksEven Rouault
WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[]…
2021-08-16Spell the last name of R.E. Deakin correctlyThomas Knudsen
It's spelled correctly in the references, so better also get it right in the source
2021-08-16WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (when ↵Even Rouault
the WKT2 representation isn't lossless)
2021-08-16createOperations(): fix missing deg<-->rad conversion when transforming with ↵Even Rouault
a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804)
2021-08-16Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)Even Rouault
2021-08-15factory.cpp: fix latest clang -Wstring-concatenation (false positive) warningEven Rouault
2021-08-15Add support for Degree Sign on input (#2791)Brendan Jurd
This commit adds support in dsmtor() for a Degree Sign (U+00B0), encoded as UTF-8 (`\xc2\xb0`) or as a single byte (`\xb0`) (in ISO 8859 parts 1-4, 7-10, 13, 15, 16, and several Windows code pages), as an alternative symbol to `D`/`d` to designate the degree unit. Fixes #2712.
2021-08-13Inverse laea ellipsoidal: return ↵Even Rouault
PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224)
2021-08-10Conversion::createUTM(): avoid integer overflow. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36751
2021-07-22GeoTIFF grid reading: perf improvements (fixes #2785)Even Rouault
With this commit, and the 2 previous ones, given mytest.cpp ``` int main() { PJ* pj = proj_create(nullptr, "+proj=vgridshift +grids=us_nga_egm96_15.tif"); for( int i = 0; i < 5*1000*1000; i++) { PJ_COORD coord; coord.lpz.lam = 0; coord.lpz.phi = 0; coord.lpz.z = 0; proj_trans(pj, PJ_FWD, coord); } return 0; } ``` we get a x2 speedup Before: ``` $ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs hyperfine --warmup 1 'taskset -c 11 ./mytest' Benchmark #1: taskset -c 11 ./mytest Time (mean ± σ): 1.950 s ± 0.014 s [User: 1.945 s, System: 0.005 s] Range (min … max): 1.937 s … 1.971 s ``` After: ``` $ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs hyperfine --warmup 1 'taskset -c 11 ./mytest' Benchmark #1: taskset -c 11 ./mytest Time (mean ± σ): 984.4 ms ± 3.1 ms [User: 977.0 ms, System: 7.2 ms] Range (min … max): 979.3 ms … 990.5 ms ```
2021-07-22pj_fwd()/pj_inv(): performance improvements through passing by ref and less ↵Even Rouault
function calls