<div dir="ltr"><div class="gmail_quote">
<div style="word-wrap:break-word;line-break:after-white-space">
Dear all,<br>
<br>
We are pleased to announce that PROJ 5.0.0 has been released!<br>
<br>
This is the first major release of PROJ in over 25 years. The new release brings<br>
many updates including a new API, much improvement geodetic capabilities and<br>
a long list of bug fixes. The full release notes is included at the bottom of this mail.
<div><br>
</div>
<div>
<div>The documentation has been given a significant overhaul for this new release.</div>
<div>Check it out on <a href="http://proj4.org/" target="_blank">http://proj4.org/</a>.</div>
</div>
<div><br>
The source distributions can be download here:<br>
<br>
<a href="http://download.osgeo.org/proj/proj-5.0.0.tar.gz" target="_blank">http://download.osgeo.org/<wbr>proj/proj-5.0.0.tar.gz</a>
<div><a href="http://download.osgeo.org/proj/proj-5.0.0.zip" target="_blank">http://download.osgeo.org/<wbr>proj/proj-5.0.0.zip</a></div>
<div> </div>
<div><br>
In addition to the new version of PROJ, updated datum grids packages has been<br>
released. On top of the existing proj-datumgrids package we have added regional<br>
packages with additional grids and init-files that are not essential to the<br>
functionality of PROJ, but very useful for PROJ users in those specific regions.<br>
<br>
More information on the datumgrid packages can be found at the GitHub repository:<br>
<br>
<a href="https://github.com/OSGeo/proj-datumgrid" target="_blank">https://github.com/OSGeo/proj-<wbr>datumgrid</a> <br>
<br>
Download the packages here:<br>
<br>
<a href="http://download.osgeo.org/proj/proj-datumgrid-1.7.tar.gz" target="_blank">http://download.osgeo.org/<wbr>proj/proj-datumgrid-1.7.tar.gz</a><wbr> <br>
<a href="http://download.osgeo.org/proj/proj-datumgrid-europe-1.0.tar.gz" target="_blank">http://download.osgeo.org/<wbr>proj/proj-datumgrid-europe-1.<wbr>0.tar.gz</a> <br>
<a href="http://download.osgeo.org/proj/proj-datumgrid-north-america-1.0.tar.gz" target="_blank">http://download.osgeo.org/<wbr>proj/proj-datumgrid-north-<wbr>america-1.0.tar.gz</a> <br>
<a href="http://download.osgeo.org/proj/proj-datumgrid-oceania-1.0.tar.gz" target="_blank">http://download.osgeo.org/<wbr>proj/proj-datumgrid-oceania-1.<wbr>0.tar.gz</a> <br>
<br>
Thanks to everyone who has contributed over the last year and a half to make this<br>
release of PROJ happen. <br>
<br>
The PROJ development team,<br>
<br>
<br>
——————————————————————————————<wbr>————————————————————————</div>
<div><br>
</div>
<div><br>
<div>5.0.0 Release Notes</div>
<div>-------------------</div>
<div><br>
</div>
<div>This version of PROJ introduces some significant extensions and</div>
<div>improvements to (primarily) the geodetic functionality of the system.</div>
<div><br>
</div>
<div>The main driver for introducing the new features is the emergence of</div>
<div>dynamic reference frames, the increasing use of high accuracy GNSS,</div>
<div>and the related growing demand for accurate coordinate</div>
<div>transformations. While older versions of PROJ included some geodetic</div>
<div>functionality, the new framework lays the foundation for turning PROJ</div>
<div>into a generic geospatial coordinate transformation engine.</div>
<div><br>
</div>
<div>The core of the library is still the well established projection code.</div>
<div>The new functionality is primarily exposed in a new programming</div>
<div>interface and a new command line utility, "cct" (for "Coordinate</div>
<div>Conversion and Transformation"). The old programming interface is</div>
<div>still available and can - to some extent - use the new geodetic</div>
<div>transformation features.</div>
<div><br>
</div>
<div>The internal architecture has also seen many changes and much</div>
<div>improvement. So far, these improvements respect the existing</div>
<div>programming interface. But the process has revealed a need to simplify</div>
<div>and reduce the code base, in order to support sustained active</div>
<div>development.</div>
<div><br>
</div>
<div>!!!</div>
<div>!!! Therefore we have scheduled regular releases over the coming years</div>
<div>!!! which will gradually remove the old programming interface.</div>
<div>!!!</div>
<div>!!! This will cause breaking changes with the next two major version</div>
<div>!!! releases, which will affect all projects that depend on PROJ</div>
<div>!!! (cf. section "deprecations" below).</div>
<div>!!!</div>
<div><br>
</div>
<div>The decision to break the existing API has not been easy, but has</div>
<div>ultimately been deemed necessary to ensure the long term survival of</div>
<div>the project. Not only by improving the maintainability immensely, but</div>
<div>also by extending the potential user (and hence developer) community.</div>
<div><br>
</div>
<div>The end goal is to deliver a generic coordinate transformation</div>
<div>software package with a clean and concise code base appealing to</div>
<div>both users and developers.</div>
<div><br>
</div>
<div><br>
</div>
<div>VERSIONING AND NAMING</div>
<div>---------------------</div>
<div><br>
</div>
<div>For the first time in more than 25 years the major version number of</div>
<div>the software is changed. The decision to do this is based on the many</div>
<div>new features and new API. While backwards compatibility remains -</div>
<div>except in a few rare corner cases - the addition of a new and improved</div>
<div>programming interface warrants a new major release.</div>
<div><br>
</div>
<div>The new major version number unfortunately leaves the project in a bit</div>
<div>of a conundrum regarding the name. For the majority of the life-time</div>
<div>of the product it has been known as PROJ.4, but since we have now</div>
<div>reached version 5 the name is no longer aligned with the version</div>
<div>number.</div>
<div><br>
</div>
<div>Hence we have decided to decouple the name from the version number and</div>
<div>from this version and onwards the product will simply be called PROJ.</div>
<div><br>
</div>
<div>In recognition of the history of the software we are keeping PROJ.4 as</div>
<div>the *name of the organizing project*. The same project team also</div>
<div>produces the datum-grid package.</div>
<div><br>
</div>
<div>In summary:</div>
<div><br>
</div>
<div>o The PROJ.4 project provides the product PROJ, which is now at</div>
<div> version 5.0.0.</div>
<div><br>
</div>
<div>o The foundational component of PROJ is the library libproj.</div>
<div><br>
</div>
<div>o Other PROJ components include the application proj, which provides</div>
<div> a command line interface to libproj.</div>
<div><br>
</div>
<div>o The PROJ.4 project also distributes the datum-grid package,</div>
<div> which at the time of writing is at version 1.6.0.</div>
<div><br>
</div>
<div><br>
</div>
<div> UPDATES</div>
<div> -------</div>
<div><br>
</div>
<div> o Introduced new API in proj.h.</div>
<div> - The new API is orthogonal to the existing proj_api.h API and the</div>
<div> internally used projects.h API.</div>
<div> - The new API adds the ability to transform spatiotemporal (4D)</div>
<div> coordinates.</div>
<div> - Functions in the new API use the "proj_" namespace.</div>
<div> - Data types in the new API use the "PJ_" namespace, with a few</div>
<div> historic exceptions such as XY, XYZ, LP and LPZ.</div>
<div><br>
</div>
<div> o Introduced the concept of "transformation pipelines" that makes it</div>
<div> possible to do complex geodetic transformations of spatiotemporal</div>
<div> coordinates by daisy chaining simple coordinate operations.</div>
<div><br>
</div>
<div> o Introduced cct, the Coordinate Conversion and Transformation</div>
<div> application.</div>
<div><br>
</div>
<div> o Introduced gie, the Geospatial Integrity Investigation Environment.</div>
<div> - Selftest invoked by -C flag in proj has been removed</div>
<div> - Ported approx. 1300 built-in selftests to gie format</div>
<div> - Ported approx. 1000 tests from the gigs test framework</div>
<div> - Added approx. 200 new tests</div>
<div><br>
</div>
<div> o Adopted terminology from the OGC/ISO-19100 geospatial standards</div>
<div> series. Key definitions are:</div>
<div> - At the most generic level, a *coordinate operation* is a change</div>
<div> of coordinates, based on a one-to-one relationship, from one</div>
<div> coordinate reference system to another.</div>
<div> - A *transformation* is a coordinate operation in which the two</div>
<div> coordinate reference systems are based on different datums, e.g.</div>
<div> a change from a global reference frame to a regional frame.</div>
<div> - A *conversion* is a coordinate operation in which both</div>
<div> coordinate reference systems are based on the same datum,</div>
<div> e.g. change of units of coordinates.</div>
<div> - A *projection* is a coordinate conversion from an ellipsoidal</div>
<div> coordinate system to a plane. Although projections are simply</div>
<div> conversions according to the standard, they are treated as</div>
<div> separate entities in PROJ as they make up the vast majority</div>
<div> of operations in the library.</div>
<div><br>
</div>
<div> o New operations:</div>
<div> - The pipeline operator (pipeline)</div>
<div> - Transformations:</div>
<div> + Helmert transform (helmert)</div>
<div> + Horner real and complex polynomial evaluation (horner)</div>
<div> + Horizontal gridshift (hgridshift)</div>
<div> + Vertical gridshift (vgridshift)</div>
<div> + Molodensky transform (molodensky)</div>
<div> + Kinematic gridshift with deformation model (deformation)</div>
<div> - Conversions:</div>
<div> + Unit conversion (unitconvert)</div>
<div> + Axis swap (axisswap)</div>
<div> - Projections:</div>
<div> + Central Conic projection (ccon)</div>
<div><br>
</div>
<div> o Significant documentation updates, including</div>
<div> - Overhaul of the structure of the documentation</div>
<div> - A better introduction to the use of PROJ</div>
<div> - A complete reference to the new proj.h API</div>
<div> - a complete rewrite of the section on geodesic calculations</div>
<div> - Figures for all projections</div>
<div><br>
</div>
<div> o New "free format" option for operation definitions, which</div>
<div> permits separating tokens by whitespace when specifying key/value-</div>
<div> pairs, e.g. "proj = merc lat_0 = 45".</div>
<div><br>
</div>
<div> o Added metadata to init-files that can be read with the</div>
<div> proj_init_info() function in the new proj.h API.</div>
<div><br>
</div>
<div> o Added ITRF2000, ITRF2008 and ITRF2014 init-files with ITRF</div>
<div> transformation parameters, including plate motion model</div>
<div> parameters.</div>
<div><br>
</div>
<div> o Added ellipsoid parameters for GSK2011, PZ90 and "danish". The</div>
<div> latter is similar to the already supported andrae ellipsoid,</div>
<div> but has a slightly different semimajor axis.</div>
<div><br>
</div>
<div> o Added Copenhagen prime meridian.</div>
<div><br>
</div>
<div> o Updated EPSG database to version 9.2.0.</div>
<div><br>
</div>
<div> o Geodesic library updated to version 1.49.2-c.</div>
<div><br>
</div>
<div> o Support for analytical partial derivatives has been removed.</div>
<div><br>
</div>
<div> o Improved performance in Winkel Tripel and Aitoff.</div>
<div><br>
</div>
<div> o Introduced pj_has_inverse() function to proj_api.h. Checks if an</div>
<div> operation has an inverse. Use this instead of checking whether</div>
<div> P->inv exists, since that can no longer be relied on.</div>
<div><br>
</div>
<div> o ABI version number updated to 13:0:0.</div>
<div><br>
</div>
<div> o Removed support for Windows CE.</div>
<div><br>
</div>
<div> o Removed the VB6 COM interface.</div>
<div><br>
</div>
<div> BUG FIXES</div>
<div> ------------</div>
<div><br>
</div>
<div> All bug fix numbers refer to issues indexed at</div>
<div> <a href="https://github.com/OSGeo/proj.4/issues/" target="_blank">https://github.com/OSGeo/<wbr>proj.4/issues/</a></div>
<div><br>
</div>
<div> o Fixed incorrect convergence calculation in Lambert Conformal</div>
<div> Conic. #16.</div>
<div><br>
</div>
<div> o Handle ellipsoid parameters correctly when using +nadgrids=@null.</div>
<div> #22.</div>
<div><br>
</div>
<div> o Return correct latitude when using negative northings in</div>
<div> Transverse Mercator (tmerc). #138.</div>
<div><br>
</div>
<div> o Return correct result at origin in inverse Mod. Stererographic</div>
<div> of Alaska. #161.</div>
<div><br>
</div>
<div> o Return correct result at origin in inverse Mod. Stererographic</div>
<div> of 48 U.S. #162.</div>
<div><br>
</div>
<div> o Return correct result at origin in inverse Mod. Stererographic</div>
<div> of 50 U.S. #163.</div>
<div><br>
</div>
<div> o Return correct result at origin in inverse Lee Oblated</div>
<div> Stereographic. #164.</div>
<div><br>
</div>
<div> o Return correct result at origin in inverse Miller Oblated</div>
<div> Stereographic. #164.</div>
<div><br>
</div>
<div> o Fixed scaling and wrap-around issues in Oblique Cylindrical</div>
<div> Equal Area. #166.</div>
<div><br>
</div>
<div> o Corrected a coefficient error in inverse Transverse Mercator. #174.</div>
<div><br>
</div>
<div> o Respect -r flag when calling proj with -V. #184.</div>
<div><br>
</div>
<div> o Remove multiplication by 2 at the equator error in Stereographic</div>
<div> projection. #194.</div>
<div><br>
</div>
<div> o Allow +alpha=0 and +gamma=0 when using Oblique Mercator. #195.</div>
<div><br>
</div>
<div> o Return correct result of inverse Oblique Mercator when alpha is</div>
<div> between 90 and 270. #331.</div>
<div><br>
</div>
<div> o Avoid segmentation fault when accessing point outside grid. #369.</div>
<div><br>
</div>
<div> o Avoid segmentation fault on NaN input in Robin inverse. #463.</div>
<div><br>
</div>
<div> o Very verbose use of proj (-V) on Windows is fixed. #484.</div>
<div><br>
</div>
<div> o Fixed memory leak in General Oblique Transformation. #497.</div>
<div><br>
</div>
<div> o Equations for meridian convergence and partial derivatives have</div>
<div> been corrected for non-conformal projections. #526.</div>
<div><br>
</div>
<div> o Fixed scaling of cartesian coordinates in pj_transform(). #726.</div>
<div><br>
</div>
<div> o Additional bug fixes courtesy of Google's OSS-Fuzz program:</div>
<div> <a href="https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=proj4" target="_blank">https://bugs.chromium.org/p/<wbr>oss-fuzz/issues/list?can=1&q=<wbr>proj4</a></div>
<div><br>
</div>
<div><br>
</div>
<div> DEPRECATIONS</div>
<div> ------------</div>
<div><br>
</div>
<div> o The projects.h header and the functions related to it is</div>
<div> considered deprecated from version 5.0.0 and onwards.</div>
<div><br>
</div>
<div><br>
</div>
<div> !!! PROJECTS.H WILL BE REMOVED FROM THE LIBRARY !!!</div>
<div> !!! WITH VERSION 6.0.0 !!!</div>
<div><br>
</div>
<div> o The nmake build system on Windows will not be supported from</div>
<div> version 6.0.0 on onwards. Use CMake instead.</div>
<div><br>
</div>
<div> !!! NMAKE BUILD SYSTEM WILL BE REMOVED FROM THE LIBRARY !!!</div>
<div> !!! WITH VERSION 6.0.0 !!!</div>
<div><br>
</div>
<div> o The proj_api.h header and the functions related to it is</div>
<div> consided deprecated from version 5.0.0 and onwards.</div>
<div><br>
</div>
<div> !!! PROJ_API.H WILL BE REMOVED FROM THE LIBRARY !!!</div>
<div> !!! WITH VERSION 7.0.0 !!!</div>
<div><br>
</div>
<div><br>
</div>
<div> THANKS TO</div>
<div> ------------</div>
<div><br>
</div>
<div> Version 5.0.0 is made possible by the following contributors:</div>
<div><br>
</div>
<div> Lukasz Komsta</div>
<div> Maxim Churilin</div>
<div> edechaux</div>
<div> dusanjovic</div>
<div> Zoltan Siki</div>
<div> Tom Fili</div>
<div> Nicolas David</div>
<div> Mike Toews</div>
<div> Micah Cochran</div>
<div> Luke Campbell</div>
<div> Ilya Oshchepkov</div>
<div> Adam Wulkiewicz</div>
<div> Jonas Tittmann</div>
<div> Mateusz Loskot</div>
<div> Etienne Jacques</div>
<div> Bas Couwenberg</div>
<div> Elliott Sales de Andrade</div>
<div> Charles Karney</div>
<div> Aaron Puchert</div>
<div> Julien Moquet</div>
<div> Charles Karney</div>
<div> Howard Butler</div>
<div> Even Rouault</div>
<div> Thomas Knudsen</div><span class="HOEnZb"><font color="#888888">
<div> Kristian Evers</div>
<br class="m_1890124291113223087Apple-interchange-newline">
<br>
</font></span></div>
</div>
</div>
</div><br></div>