Releases: OSGeo/PROJ
PROJ 9.8.0
Updates
-
Database: update to EPSG v12.049 (#4671)
-
Database: update ESRI records to ArcGIS Pro 3.6 (#4622)
-
Support for Canadian vertical references MTM CGVD2013 epoch 1997, 2002, 2010 and
UTM CGVD28 epoch 1997, 2002, 2010 (#4623) -
createOperationsCompoundToGeog(): improvement to make "PNG94 / PNGMG94 zone 54 + Kumul
34 height" to "WGS 84 (G2139)" perform vertical transformation (#4624) -
Remove hardcoding of 'ETRS89-NOR [EUREF89]' cases and generalize it to other ETRS89-XXX
cases (#4625) -
Database: create ESRI aliases for geodetic_datum and geodetic_crs even if they are the
same as EPSG ones (#4626) -
Use Emscripten fetch in networkfilemanager (#4627)
-
ProjectedCRS::identify(): do not return CRS whose ellipsoid is totally different from the input one (#4635) -
projinfoadded as a library function. This installs a new header:projapps_lib.h. (#4646) -
respect
CRS_EXTENT_USE=NONEfor ConcatenatedOperations (#4652) -
Add support for Equidistant Cylindrical ellipsoidal method (EPSG:1028) (#4656)
-
Update
proj_symbol_rename.h(#4657) -
WKT1 importer: deal with 'VERT_CS["Geoid 2012A",' (#4659)
-
Generate correct library name in
proj.pc(#4660) -
Derived projected CRS related improvements (#4667)
-
ETRS89-xxx to ETRS89-yyy related improvements (#4668)
-
createCoordinateOperation(): tune computed accuracy of a concatenated op within ETRS89 (#4670) -
createOperationsCompoundToGeog(): discard 2D-only transformations from interpolation
3D CRS to target 3D CRS (#4677)
Bug Fixes
-
CRS identification: fix issue when identifying WKT from older EPSG releases with newer
ones where the ETRS89-XXX national datums have been added (#4600) -
fix
normalizeForVisualizationto skip extent checks for axis-swap operations (#4632) -
Improvements to TRACE_FETCH debug messages (#4645)
-
tmerc spherical: fix numeric instability at lat=lat_0 (#4674)
PROJ 9.7.1
Updates
Bug Fixes
-
createOperations(): fix compound to compound when vertical CRS definition is equivalent but not strictly identical (#4579) -
createOperations(): fix compound to compound when horizontal CRS of … (#4582) -
projinfo: make it honour-k crs(#4592) -
proj_clone(): fix insufficient propagation ofFORCE_OVER=YES(#4595) -
BoundCRS::identify: fix creation of an invalid BoundCRS (that can cause later crashes) for CRS based on 'NTF (Paris)' (#4601) -
WKT/PROJJSON datum ensemble import: allow no members (#4615)
PROJ 9.7.0
Updates
-
Implement 'exact' authalic latitude->geographic latitude and use it in
+proj=aea/cea/laea/eqearth/healpix/rhealpix(#4441) -
Implement uniform conversions between auxiliary latitudes (#4446)
-
WKT2 parser: recognize
DEFININGTRANSFORMATION(but ignore it) (#4484) -
Database: add values from
alias_nametable that were removed in older EPSG releases, to improve
recognizing old WKT strings (#4490) -
proj_trans_bounds(): sample points within the source grid to avoid missing extent such as world-wide
coverage from EPSG:4326 to ESRI:54099 (Spilhaus) (#4513) -
Enable
-Wimplicit-fallthrough,-Wdeprecated-copy-dtor,-Wweak-vtables,
-Wdocumentation-unknown-commandwhen possible (#4516) -
Geostationary projection: speed up inverse spherical and ellipsoidal computation (#4523)
-
WKT importer: better error message when
BBOXis invalid (e.g south_lat > north_lat) (#4525) -
Added
proj_geod_directfor PJ trasformation object (#4532) -
Support exporting Mercator (Spherical) on a sphere as
Mercator_1SPin WKT1 (#4555) -
Database: update to EPSG v12.022 (#4562)
Bug Fixes
-
proj_trans_bounds(): avoid erroring out, in some cases, when PJ* object is directly constructed
from a PROJ pipeline (#4512) -
Fix issue related to
D_Unknown_based_on_WGS_84_ellipsoiddatum name (#4515) -
proj_trans_bounds(): fix 9.6.2 regression when going from long/lat crossing antimeridian to
projected (#4526) -
opt_parse: avoid potential heap-buffer-overflow when parsing non-ASCII characters (affect
cctandgie) (#4530) -
gie: fix memory leak on non existing input file (#4531) -
Database: referene
nl_nsgi_nllat2018.tifandnl_nsgi_bongeo2004.tifgrids (#4534) -
Fixes related to WKT import/export of
DerivedGeodetic/GeographicCRS(#4536) -
Fix
tolower()/toupper()implementation to not lead to undefined behavior (#4539) -
IAU2015 CRS: fix wrong code for coordinate system of North Polar and South Polar CRSs (#4545)
-
createOperations(): fix a case involving 2 CompoundCRS, one with TOWGS84, and the 2
verticalCRS differing by units (#4552) -
On SQLite query error, show first the error msg than the sql query (#4553)
-
Allow geodesic inverse for meridional points on prolate ellipsoid (#4560)
PROJ 9.6.2
Updates
- Update EPSG to 12.013
Bug Fixes
-
Database: change ESRI deprecated records back to their deprecated state (#4519)
-
ProjectedCRS::identify(): more robust identification of old ESRI names using _IntlFeet (#4518)
-
Fix issue related to D_Unknown_based_on_WGS_84_ellipsoid datum name (#4514)
-
proj_trans_bounds(): sample points within the source grid to avoid missing extent such as world-wide coverage from EPSG:4326 to ESRI:54099 (Spilhaus) (#4513)
-
proj_trans_bounds(): avoid erroring out, in some cases, when PJ* object is directly constructed from a PROJ pipeline (#4512)
PROJ 9.6.1
Updates
Bug Fixes
-
Deal with South Orientated TMerc presented as regular TMerc but with Scale_Factor=-1 (#4427)
-
Add missing 'limits' and 'algorithm' includes (#4444)
-
CMake: avoid detection of C23
#embedon too old compilers (#4463) -
createOperations(): for NAD83(CSRS)[x] to NAD83(CSRS)[y], do not go through NAD83 (#4467) -
Add missing include for
uint32_ton Windows with gcc 15.1 (#4478) -
getGeoidModels: use vertical_crs.datum_code to get vcrss that uses different units (#4480) -
FileManager::open_resource_file(): honour known URLs from grid_alternatives that don't point to cdn.proj.org (#4481) -
Database: update ESRI to ArcGIS Pro 3.5 (#4493)
-
createOperationsCompoundToGeog(): avoid bringing non-sensical transformations (#4494) -
Bug correction in Wagner VI projection parameters (#4453)
-
C++: Fix bare
isnan()tostd::isnan()(#4472) -
Database: fix duplicated entries with auxiliary database (#4482)
-
Use
std::absinstead ofabsfor NetBSD (#4486) -
Fix Windows build when both
EMBED_RESOURCE_FILESandUSE_ONLY_EMBEDDED_RESOURCE_FILESare set (#4508)
PROJ 9.6.0
Updates
-
projinfo: display whether an operation is time-dependent (#4255) -
Add CMake options
EMBED_RESOURCE_FILESandUSE_ONLY_EMBEDDED_RESOURCE_FILESforproj.dbandproj.iniembedding (#4265, #4274) -
Database: ingest deprecated ESRI names to be able to better import old WKT ESRI (#4282)
-
proj_factors(): enhance speed when called repeatedly on same compound or projected CRS (#4289) -
Add Airocean projection (formerly Dymaxion) (#4303)
-
createOperations(): Optimization by avoiding database lookups for CRS (typically PROJ strings) using unknown datums (#4320) -
PROJJSON export: for a Projected CRS, add an explicit type=GeographicCRS/GeodeticCRS members to the base_crs member (#4331)
-
proj_trans_bounds(): make it work when target CRS is a CompoundCRS (#4333) -
createOperations(): do Helmert transformation in 2D when one of source or target CRS is compound (#4337) -
Map EPSG method 'Vertical Offset by Grid Interpolation (asc)' to +proj=vgridshift (#4344)
-
Add support for 'Coordinate Frame rotation full matrix (geocen)' and Coordinate Frame rotation full matrix (geog2D)' methods (#4348)
-
Add a CMake
EMBED_RESOURCE_DIRECTORYoption to embed .tif/.json files in to libproj (#4349, #4373) -
Take into account new EPSG methods 'Cartesian Grid Offsets by TIN Interpolation (JSON)' and 'Vertical Offset by TIN Interpolation (JSON)' (#4353)
-
Added an option
native_catoproj.iniand an environment variablePROJ_NATIVE_CAto be able to configure curl to use the operating system CA store. (#4356) -
Database: add an optional step_direction column to the concatenated_operation_step table (#4357)
-
Database: replicate EGM2008 grid transformation record to WGS 84 realizations (#4363)
-
Improve ETRFxxx to ETRFyyy, and WGS 84 (xxx) to WGS 84 (yyy) (#4364)
-
Add bash completion script for projinfo (#4371)
-
Dispatch content of
4D_api.cppinto multiple .cpp files (#4393) -
Add
proj_trans_bounds_3D()(#4394) -
Database: add a engineering_datum and engineering_crs tables; import few related EPSG records (#4396)
-
NKG transformations: Add support for EUREF-FIN in Finish transformations (#4399)
-
Add Spilhaus projection (#4401)
-
Export ESRI:54099
WGS_1984_Spilhaus_Ocean_Map_in_Squareas PROJ string (#4402) -
Database: update to EPSG v12.004 (#4413)
-
proj_download_file(): invalidate in-memory caches related to downloaded file (for the current context) (#4414)
Bug Fixes
-
createObjectsFromName(): be more tolerant about N/S vs North/South, absence of zone or height (#4318) -
createFromPROJString: avoid repeated openings of proj.db and proj.ini and lookup of 'epsg' (#4334) -
Debugging/internals: append sub-grid index to grid name when opening a multi-grid TIFF file (#4381)
-
createOperations(): use more appropriate operation when using a 'PROJ {grid_name}' geoid model, based on matching the vertical datum (#4379) -
proj_clone(): properly propagateerrorIfBestTransformationNotAvailableand other flags from source object (#4382) -
Inverse +proj=cass: fix non-convergence on inputs where easting=false_easting or northing=false_northing (#4386)
-
Fix typo in parameter for ITRF97 in ITRF2014 file (#4408)
-
Retry on "SSL connection timeout" (#4419)
PROJ 9.5.1
Updates
-
Database: update to EPSG v11.022 (#4254, #4275, #4297, #4312)
-
Speed-up dramatically proj.db build time (#4280)
-
Database: ingest deprecated ESRI names to be able to better import old WKT ESRI (#4282)
Bug fixes
-
findsOpsInRegistryWithIntermediate(): Restrict to using known source/target CRS that have the same originating authority (#4252) -
isTimeDependent(): Do not mark "static" Coordinate Frame helmert transformations as time-dependent, only time-dependent ones (#4259) -
Fix clang-19 "warning: empty paragraph passed to '@throw' command [-Wdocumentation]" (#4263)
-
WKT importer: fix
nullptrdereference on invalidVERTCS[](#4266) -
Fixed
sql_filelist.cmakerelative path issue (#4296) -
Fail consistently on network error and grid transformations (#4302)
-
Fix
-Wshadowwarnings betweenparammappings.cppandsingleoperation.cppwith unity builds (#4304) -
Removed leftover setting of
CMAKE_REQUIRED_FLAGS(#4322) -
WKT1 ESRI export: fix wrong mapping of Lambert Cylindrical Equal Area to Behrmann (#4328)
PROJ 9.5.0
PROJ 9.5.0 Release Notes
Updates
-
Database: add constraint for unicity of CRS and operation names (#4071)
-
Make a few more functions that accept a
PJ*to actually acccept aconst PJ*(#4074) -
Database: Increase consistency in trigger checks (#4080)
-
Speed-up
+proj=cart +inv(#4087) -
Added EPSG:9656 "Cartesian Grid Offsets" operation method, and imported related records (#4094)
-
Add a
WKTParser::grammarErrorList()method so thatproj_create_from_wkt()can behave as documented (#4108) -
CRS::stripVerticalComponent(): Redirect it todemoteTo2D(std::string(), nullptr)(#4127) -
Add
proj_context_set_user_writable_directory()to public API (#4144) -
CMake: for Windows builds, defaults PROJ DLL to be just
proj_${PROJ_MAJOR_VERSION}.dll(#4167) -
Add
toWGS84AutocorrectWrongValues()method and use it in PROJ.4 and WKT1 CRS import (#4172) -
WKT import: add support for Oracle WKT "Albers_Conical_Equal_Area" spelling (#4181)
-
Limit number of C++ exceptions thrown & caught internally (#4183)
-
Database: update to EPSG 11.016 (#4241)
-
CMake: add option
EMBED_PROJ_DATA_PATH(#4207) -
Add SEA Inverse projection (#4211)
-
projinfo: Add 2 args equivalent to usage of
-sand-t(#4218) -
CMake: add TESTING_USE_NETWORK configure option (#4220)
-
Add
PROJ_ERR_COORD_TRANSFM_MISSING_TIMEandproj_coordoperation_requires_per_coordinate_input_time()(#4221) -
Add data/ITRF2020 with ITRF2020 to ITRFother, and ITRF2020 plate motion models (#4235)
Bug Fixes
-
Fix
imollandimoll_ozone calculations to correct inverse transformations near the "seams" (#4159) -
Fix wrong EPSG conversion code for UTM south (#4166)
-
BoundCRS::exportToPROJ(): handle case of NADCON conus grid (#4168)
-
+proj=gridshift: make projected grids work withPROJ_NETWORK=ON(#4174) -
createOperations(): make it work when transforming from/to a CompoundCRS with a DerivedVerticalCRS with ellipsoidal height (#4176) -
Support default context as
nullptrinCoordinateTransformer(#4177) -
cct: emit error message and return error code when not being able to open input file (#4200)
-
Fix race condition surrounding DB reopening during fork (#4231)
-
GeographicBoundingBox::create(): accept degenerate bounding box reduced to a point or a line (#4237) -
createOperation(): tune so that ITRF2000->ETRS89 does not return only NKG grid based operations but also time-dependent Helmert (#4244)
PROJ 9.4.1
Updates
Bug fixes
-
DatabaseContext::lookForGridInfo(): do not trigger network activity in
PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE mode when all grids are known (#4090) -
Retry "Connection reset by peer" (#4107)
-
Use unique names for NKG transformations (#4111)
-
proj_create()/proj_create_from_database(): recall CRS AUTH:CODE in error message (#4114)
-
DerivedProjectedCRS: deal with lack of explicit CS in BASEPROJCRS in WKT (#4139)
-
proj_symbol_rename.h: update with current symbols (#4145)
-
Improve detection of compatible/incompatible celestial bodies (#4150)
PROJ 9.4.0
Updates
- Add support for transformations involving coordinate epoch changes (PointMotionOperation), specifically for Canadian NAD83(CSRS)(#3884)
SSL_OPTIONS: set SSL options on Curl library (#3936)- Add support for unity builds (#3962)
- Added ability to install
*.tifif present in data (#3970) createOperationsCompoundToGeog(): tune selection logic when --grid-check known_available is specified (#3990)- Increase CMake minimum version from 3.9 to 3.16 (#3997)
- CMake: use FetchContent to get googletest-1.12.1 (#4006)
- CMake: Replace custom FindSqlite3 with FindSQLite3 built-in (#4007)
- tpeqd: use numerically stable formula for computing the central angle from (phi_1, lam_1) to (phi_2, lam_2) (#4009)
- Move content of proj_experimental.h to proj.h (#4019)
- Add
+proj=mod_krovakprojection method for Modified Krovak that applies to S-JTSK/05 in the Czech Republic (#4021) - PROJString formatter optimizer: simplify pipelines doing [Modified]Krovak (South West) <--> [Modified]Krovak (East North) by just doing an axis swap (#4034)
+proj=gridshift: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections (#4038)- Tune concatenated operation instanciation, reference CR2005 geoid for Czechia and add (disabled by default) records for Czechia S-JTSK/05 based transformations (#4044)
- Database: update to EPSG v11.004 (#4062)