diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2018-06-27 14:30:29 +0200 |
|---|---|---|
| committer | Kristian Evers <kristianevers@gmail.com> | 2018-06-27 14:30:29 +0200 |
| commit | 1968d714a76cbe15abf99d2d2ee601679e0c2a08 (patch) | |
| tree | a9d46d6c817af4f0eb5811b08624d6b053a5108a | |
| parent | b6fc41cd7cbc78fd0e6d31168096a62b27dd0194 (diff) | |
| download | PROJ-1968d714a76cbe15abf99d2d2ee601679e0c2a08.tar.gz PROJ-1968d714a76cbe15abf99d2d2ee601679e0c2a08.zip | |
Move news to its own page in docs.
HOWTO-RELEASE updated accordingly.
| -rw-r--r-- | HOWTO-RELEASE | 2 | ||||
| -rw-r--r-- | docs/source/index.rst | 345 | ||||
| -rw-r--r-- | docs/source/news.rst | 344 |
3 files changed, 346 insertions, 345 deletions
diff --git a/HOWTO-RELEASE b/HOWTO-RELEASE index 4305f201..168af418 100644 --- a/HOWTO-RELEASE +++ b/HOWTO-RELEASE @@ -176,7 +176,7 @@ See step 1.6 above. Do not rename the archives with RC postfixes. ------------------------------------------------------------------------------ - Update the version number in `doc/source/conf.py` - - Add the release notes from `NEWS` to `docs/source/index.rst` + - Add the release notes from `NEWS` to `docs/source/news.rst` - Update download links in `docs/source/download.rst` *Commit the changes to master and cherry-pick into maintenance branch.* diff --git a/docs/source/index.rst b/docs/source/index.rst index 29a3b75a..36f0e68d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -8,6 +8,7 @@ PROJ :hidden: about + news download install usage/index @@ -28,10 +29,6 @@ PROJ a C API for software developers to include coordinate transformation in their own software. PROJ is maintained on `GitHub <https://github.com/OSGeo/proj.4/>`_. - - NEWS - --------------------------------------------------------------------------- - .. attention:: The ``projects.h`` header and the functions related to it is considered @@ -54,343 +51,3 @@ PROJ With the introduction of PROJ 5, behavioural changes has been made to existing functionality. Consult :ref:`differences` for the details. - - PROJ 5.1.0 - ++++++++++++++++++++++++++++++++++++++++ - *June 1st 2018* - - - UPDATES - ------- - - * Function :c:func:`proj_errno_string()` added to ``proj.h`` API (`#847 <https://github.com/OSGeo/proj.4/issues/847>`_) - - * Validate units between pipeline steps and ensure transformation - sanity (`#906 <https://github.com/OSGeo/proj.4/issues/906>`_) - - * Print help when calling :program:`cct` and :program:`gie` without arguments (`#907 <https://github.com/OSGeo/proj.4/issues/907>`_) - - * `CITATION` file added to source distribution (`#914 <https://github.com/OSGeo/proj.4/issues/914>`_) - - * Webmercator operation added (`#925 <https://github.com/OSGeo/proj.4/issues/925>`_) - - * Enhanced numerical precision of forward spherical Mercator near - the Equator (`#928 <https://github.com/OSGeo/proj.4/issues/928>`_) - - * Added ``--skip-lines`` option to :program:`cct` (`#923 <https://github.com/OSGeo/proj.4/issues/923>`_) - - * Consistently return ``NaN`` values on ``NaN`` input (`#949 <https://github.com/OSGeo/proj.4/issues/949>`_) - - * Removed unused ``src/org_proj4_Projections.h`` file (`#956 <https://github.com/OSGeo/proj.4/issues/956>`_) - - * Java Native Interface bindings updated (`#957 <https://github.com/OSGeo/proj.4/issues/957>`_, `#969 <https://github.com/OSGeo/proj.4/issues/969>`_) - - * Horizontal and vertical gridshift operations extended to - the temporal domain (`#1015 <https://github.com/OSGeo/proj.4/issues/1015>`_) - - - BUG FIXES - ------------ - - * Handle ``NaN`` float cast overflow in ``PJ_robin.c`` and ``nad_intr.c`` (`#887 <https://github.com/OSGeo/proj.4/issues/887>`_) - - * Avoid overflow when Horner order is unreasonably large (`#893 <https://github.com/OSGeo/proj.4/issues/893>`_) - - * Avoid unwanted NaN conversions in etmerc (`#899 <https://github.com/OSGeo/proj.4/issues/899>`_) - - * Avoid memory failure in :program:`gie` when not specifying x,y,z in gie files (`#902 <https://github.com/OSGeo/proj.4/issues/902>`_) - - * Avoid memory failure when :option:`+sweep` is initialized incorrectly in geos (`#908 <https://github.com/OSGeo/proj.4/issues/908>`_) - - * Return ``HUGE_VAL`` on erroneous input in ortho (`#912 <https://github.com/OSGeo/proj.4/issues/912>`_) - - * Handle commented lines correctly in cct (`#933 <https://github.com/OSGeo/proj.4/issues/933>`_) - - * Avoid segmentation fault when transformation coordinates outside grid - area in deformation (`#934 <https://github.com/OSGeo/proj.4/issues/934>`_) - - * Avoid doing false easting/northing adjustments on cartesian - coordinates (`#936 <https://github.com/OSGeo/proj.4/issues/936>`_) - - * Thread-safe creation of proj mutex (`#954 <https://github.com/OSGeo/proj.4/issues/954>`_) - - * Avoid errors when setting up geos with +lat_0!=0 (`#986 <https://github.com/OSGeo/proj.4/issues/986>`_) - - * Reset errno when running :program:`proj` in verbose mode (`#988 <https://github.com/OSGeo/proj.4/issues/988>`_) - - * Do not interpolate node values at nodata value in vertical - grid shifts (`#1004 <https://github.com/OSGeo/proj.4/issues/1004>`_) - - * Restrict Horner degrees to positive integer values to avoid - memory allocation issues (`#1005 <https://github.com/OSGeo/proj.4/issues/1005>`_) - - - - PROJ 5.0.1 - ++++++++++++++++++++++++++++++++++++++++ - *March 1st 2018* - - Bug fixes - *********** - - * Handle ellipsoid change correctly in pipelines when ``+towgs84=0,0,0`` is set (`#881 <https://github.com/OSGeo/proj.4/issues/881>`_) - - - * Handle the case where nad_ctable2_init returns NULL (`#883 <https://github.com/OSGeo/proj.4/issues/883>`_) - - - * Avoid shadowed declaration errors with old gcc (`#880 <https://github.com/OSGeo/proj.4/issues/880>`_) - - - * Expand ``+datum`` properly in pipelines (`#872 <https://github.com/OSGeo/proj.4/issues/872>`_) - - - * Fail gracefully when incorrect headers are encountered in grid files (`#875 <https://github.com/OSGeo/proj.4/issues/875>`_) - - - * Improve roundtrip stability in pipelines using ``+towgs84`` (`#871 <https://github.com/OSGeo/proj.4/issues/871>`_) - - - * Fixed typo in gie error codes (`#861 <https://github.com/OSGeo/proj.4/issues/861>`_) - - - * Numerical stability fixes to the geodesic package (`#826 <https://github.com/OSGeo/proj.4/issues/826>`_ & `#843 <https://github.com/OSGeo/proj.4/issues/843>`_) - - - * Make sure that transient errors are returned correctly (`#857 <https://github.com/OSGeo/proj.4/issues/857>`_) - - - * Make sure that locally installed header files are not used when building PROJ (`#849 <https://github.com/OSGeo/proj.4/issues/849>`_) - - - * Fix inconsistent parameter names in ``proj.h``/``proj_4D_api.c`` (`#842 <https://github.com/OSGeo/proj.4/issues/842>`_) - - - * Make sure ``+vunits`` is applied (`#833 <https://github.com/OSGeo/proj.4/issues/833>`_) - - - * Fix incorrect Web Mercator transformations (`#834 <https://github.com/OSGeo/proj.4/issues/834>`_) - - - - PROJ 5.0.0 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - *February 1st 2018* - - This version of PROJ introduces some significant extensions and - improvements to (primarily) the geodetic functionality of the system. - - The main driver for introducing the new features is the emergence of - dynamic reference frames, the increasing use of high accuracy GNSS, - and the related growing demand for accurate coordinate - transformations. While older versions of PROJ included some geodetic - functionality, the new framework lays the foundation for turning PROJ - into a generic geospatial coordinate transformation engine. - - The core of the library is still the well established projection code. - The new functionality is primarily exposed in a new programming - interface and a new command line utility, :ref:`cct<cct>` - (for "Coordinate Conversion and Transformation"). The old programming interface is - still available and can - to some extent - use the new geodetic - transformation features. - - The internal architecture has also seen many changes and much - improvement. So far, these improvements respect the existing - programming interface. But the process has revealed a need to simplify - and reduce the code base, in order to support sustained active - development. - - - **Therefore we have scheduled regular releases over the coming years** - **which will gradually remove the old programming interface.** - - **This will cause breaking changes with the next two major version** - **releases, which will affect all projects that depend on PROJ** - **(cf. section "deprecations" below).** - - The decision to break the existing API has not been easy, but has - ultimately been deemed necessary to ensure the long term survival of - the project. Not only by improving the maintainability immensely, but - also by extending the potential user (and hence developer) community. - - The end goal is to deliver a generic coordinate transformation - software package with a clean and concise code base appealing to - both users and developers. - - - Versioning and naming - *************************************************************************** - - For the first time in more than 25 years the major version number of - the software is changed. The decision to do this is based on the many - new features and new API. While backwards compatibility remains - - except in a few rare corner cases - the addition of a new and improved - programming interface warrants a new major release. - - The new major version number unfortunately leaves the project in a bit - of a conundrum regarding the name. For the majority of the life-time - of the product it has been known as PROJ.4, but since we have now - reached version 5 the name is no longer aligned with the version - number. - - Hence we have decided to decouple the name from the version number and - from this version and onwards the product will simply be called PROJ. - - In recognition of the history of the software we are keeping PROJ.4 as - the *name of the organizing project*. The same project team also - produces the datum-grid package. - - In summary: - - * The PROJ.4 project provides the product PROJ, which is now at - version 5.0.0. - - * The foundational component of PROJ is the library libproj. - - * Other PROJ components include the application proj, which provides - a command line interface to libproj. - - * The PROJ.4 project also distributes the datum-grid package, - which at the time of writing is at version 1.6.0. - - Updates - *************************************************************************** - - * Introduced new API in ``proj.h``. - - - The new API is orthogonal to the existing ``proj_api.h`` API and the internally used ``projects.h`` API. - - - The new API adds the ability to transform spatiotemporal (4D) coordinates. - - - Functions in the new API use the ``proj_`` namespace. - - - Data types in the new API use the ``PJ_`` namespace. - - * Introduced the concept of "transformation pipelines" that makes possible to do complex geodetic transformations of coordinates by daisy chaining simple coordinate operations. - - * Introduced :ref:`cct`, the Coordinate Conversion and Transformation application. - - * Introduced :ref:`gie`, the Geospatial Integrity Investigation Environment. - - - Selftest invoked by ``-C`` flag in :ref:`proj` has been removed - - Ported approx. 1300 built-in selftests to :ref:`gie` format - - Ported approx. 1000 tests from the gigs test framework - - Added approx. 200 new tests - - * Adopted terminology from the OGC/ISO-19100 geospatial standards series. Key definitions are: - - - At the most generic level, a *coordinate operation* is a change of coordinates, based on a one-to-one relationship, from one coordinate reference system to another. - - - A *transformation* is a coordinate operation in which the two coordinate reference systems are based on different datums, e.g. a change from a global reference frame to a regional frame. - - - A *conversion* is a coordinate operation in which both coordinate reference systems are based on the same datum, e.g. change of units of coordinates. - - - A *projection* is a coordinate conversion from an ellipsoidal coordinate system to a plane. Although projections are simply conversions according to the standard, they are treated as separate entities in PROJ as they make up the vast majority of operations in the library. - - * New operations - - - :ref:`The pipeline operator<pipeline>` (``pipeline``) - - - Transformations - + :ref:`Helmert transform<helmert>` (``helmert``) - + Horner real and complex polynomial evaluation (``horner``) - + :ref:`Horizontal gridshift<hgridshift>` (``hgridshift``) - + :ref:`Vertical gridshift<vgridshift>` (``vgridshift``) - + :ref:`Molodensky transform<molodensky>` (``molodensky``) - + :ref:`Kinematic gridshift with deformation model<deformation>` (``deformation``) - - - Conversions - + :ref:`Unit conversion<unitconvert>` (``unitconvert``) - + :ref:`Axis swap<axisswap>` (``axisswap``) - - - Projections - + :ref:`Central Conic projection<ccon>` (``ccon``) - - * Significant documentation updates, including - - - Overhaul of the structure of the documentation - - A better introduction to the use of PROJ - - :ref:`A complete reference to the new API<reference>` - - a complete rewrite of the section on geodesic calculations - - Figures for all projections - - * New "free format" option for operation definitions, which permits separating tokens by whitespace when specifying key/value- pairs, e.g. ``proj = merc lat_0 = 45``. - - * Added metadata to init-files that can be read with the :c:func:`proj_init_info` function in the new ``proj.h`` API. - - * Added ITRF2000, ITRF2008 and ITRF2014 init-files with ITRF transformation parameters, including plate motion model parameters. - - * Added ellipsoid parameters for GSK2011, PZ90 and "danish". The latter is similar to the already supported andrae ellipsoid, but has a slightly different semimajor axis. - - * Added Copenhagen prime meridian. - - * Updated EPSG database to version 9.2.0. - - * Geodesic library updated to version 1.49.2-c. - - * Support for analytical partial derivatives has been removed. - - * Improved performance in Winkel Tripel and Aitoff. - - * Introduced ``pj_has_inverse()`` function to ``proj_api.h``. Checks if an operation has an inverse. Use this instead of checking whether ``P->inv`` exists, since that can no longer be relied on. - - * ABI version number updated to 13:0:0. - - * Removed support for Windows CE. - - * Removed the VB6 COM interface. - - Bug fixes - *************************************************************************** - - * Fixed incorrect convergence calculation in Lambert Conformal Conic. (`#16 <https://github.com/OSGeo/proj.4/issues/16>`_) - - - * Handle ellipsoid parameters correctly when using ``+nadgrids=@null``. (`#22 <https://github.com/OSGeo/proj.4/issues/22>`_) - - - * Return correct latitude when using negative northings in Transverse Mercator. (`#138 <https://github.com/OSGeo/proj.4/issues/138>`_) - - - * Return correct result at origin in inverse Mod. Stereographic of Alaska. (`#161 <https://github.com/OSGeo/proj.4/issues/161>`_) - - - * Return correct result at origin in inverse Mod. Stereographic of 48 U.S. (`#162 <https://github.com/OSGeo/proj.4/issues/162>`_) - - - * Return correct result at origin in inverse Mod. Stereographic of 50 U.S. (`#163 <https://github.com/OSGeo/proj.4/issues/163>`_) - - - * Return correct result at origin in inverse Lee Oblated Stereographic. (`#164 <https://github.com/OSGeo/proj.4/issues/164>`_) - - - * Return correct result at origin in inverse Miller Oblated Stereographic. (`#165 <https://github.com/OSGeo/proj.4/issues/165>`_) - - - * Fixed scaling and wrap-around issues in Oblique Cylindrical Equal Area. (`#166 <https://github.com/OSGeo/proj.4/issues/166>`_) - - - * Corrected a coefficient error in inverse Transverse Mercator. (`#174 <https://github.com/OSGeo/proj.4/issues/174>`_) - - * Respect ``-r`` flag when calling :program:`proj` with ``-V``. (`#184 <https://github.com/OSGeo/proj.4/issues/184>`_) - - * Remove multiplication by 2 at the equator error in Stereographic projection. (`#194 <https://github.com/OSGeo/proj.4/issues/194>`_) - - * Allow +alpha=0 and +gamma=0 when using Oblique Mercator. (`#195 <https://github.com/OSGeo/proj.4/issues/195>`_) - - * Return correct result of inverse Oblique Mercator when alpha is between 90 and 270. (`#331 <https://github.com/OSGeo/proj.4/issues/331>`_) - - * Avoid segmentation fault when accessing point outside grid. (`#396 <https://github.com/OSGeo/proj.4/issues/396>`_) - - * Avoid segmentation fault on NaN input in Robin inverse. (`#463 <https://github.com/OSGeo/proj.4/issues/463>`_) - - * Very verbose use of :program:`proj` (``-V``) on Windows is fixed. (`#484 <https://github.com/OSGeo/proj.4/issues/484>`_) - - * Fixed memory leak in General Oblique Transformation. (`#497 <https://github.com/OSGeo/proj.4/issues/497>`_) - - * Equations for meridian convergence and partial derivatives have - been corrected for non-conformal projections. (`#526 <https://github.com/OSGeo/proj.4/issues/526>`_) - - * Fixed scaling of cartesian coordinates in ``pj_transform()``. (`#726 <https://github.com/OSGeo/proj.4/issues/726>`_) - - * Additional bug fixes courtesy of `Google's OSS-Fuzz program <https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=proj4>`_ diff --git a/docs/source/news.rst b/docs/source/news.rst new file mode 100644 index 00000000..49f281bd --- /dev/null +++ b/docs/source/news.rst @@ -0,0 +1,344 @@ +.. _news: + +News +############################################################################### + +PROJ 5.1.0 +++++++++++++++++++++++++++++++++++++++++ +*June 1st 2018* + + +UPDATES +------- + +* Function :c:func:`proj_errno_string()` added to ``proj.h`` API (`#847 <https://github.com/OSGeo/proj.4/issues/847>`_) + +* Validate units between pipeline steps and ensure transformation + sanity (`#906 <https://github.com/OSGeo/proj.4/issues/906>`_) + +* Print help when calling :program:`cct` and :program:`gie` without arguments (`#907 <https://github.com/OSGeo/proj.4/issues/907>`_) + +* `CITATION` file added to source distribution (`#914 <https://github.com/OSGeo/proj.4/issues/914>`_) + +* Webmercator operation added (`#925 <https://github.com/OSGeo/proj.4/issues/925>`_) + +* Enhanced numerical precision of forward spherical Mercator near + the Equator (`#928 <https://github.com/OSGeo/proj.4/issues/928>`_) + +* Added ``--skip-lines`` option to :program:`cct` (`#923 <https://github.com/OSGeo/proj.4/issues/923>`_) + +* Consistently return ``NaN`` values on ``NaN`` input (`#949 <https://github.com/OSGeo/proj.4/issues/949>`_) + +* Removed unused ``src/org_proj4_Projections.h`` file (`#956 <https://github.com/OSGeo/proj.4/issues/956>`_) + +* Java Native Interface bindings updated (`#957 <https://github.com/OSGeo/proj.4/issues/957>`_, `#969 <https://github.com/OSGeo/proj.4/issues/969>`_) + +* Horizontal and vertical gridshift operations extended to + the temporal domain (`#1015 <https://github.com/OSGeo/proj.4/issues/1015>`_) + + +BUG FIXES +------------ + +* Handle ``NaN`` float cast overflow in ``PJ_robin.c`` and ``nad_intr.c`` (`#887 <https://github.com/OSGeo/proj.4/issues/887>`_) + +* Avoid overflow when Horner order is unreasonably large (`#893 <https://github.com/OSGeo/proj.4/issues/893>`_) + +* Avoid unwanted NaN conversions in etmerc (`#899 <https://github.com/OSGeo/proj.4/issues/899>`_) + +* Avoid memory failure in :program:`gie` when not specifying x,y,z in gie files (`#902 <https://github.com/OSGeo/proj.4/issues/902>`_) + +* Avoid memory failure when :option:`+sweep` is initialized incorrectly in geos (`#908 <https://github.com/OSGeo/proj.4/issues/908>`_) + +* Return ``HUGE_VAL`` on erroneous input in ortho (`#912 <https://github.com/OSGeo/proj.4/issues/912>`_) + +* Handle commented lines correctly in cct (`#933 <https://github.com/OSGeo/proj.4/issues/933>`_) + +* Avoid segmentation fault when transformation coordinates outside grid + area in deformation (`#934 <https://github.com/OSGeo/proj.4/issues/934>`_) + +* Avoid doing false easting/northing adjustments on cartesian + coordinates (`#936 <https://github.com/OSGeo/proj.4/issues/936>`_) + +* Thread-safe creation of proj mutex (`#954 <https://github.com/OSGeo/proj.4/issues/954>`_) + +* Avoid errors when setting up geos with +lat_0!=0 (`#986 <https://github.com/OSGeo/proj.4/issues/986>`_) + +* Reset errno when running :program:`proj` in verbose mode (`#988 <https://github.com/OSGeo/proj.4/issues/988>`_) + +* Do not interpolate node values at nodata value in vertical + grid shifts (`#1004 <https://github.com/OSGeo/proj.4/issues/1004>`_) + +* Restrict Horner degrees to positive integer values to avoid + memory allocation issues (`#1005 <https://github.com/OSGeo/proj.4/issues/1005>`_) + + + +PROJ 5.0.1 +++++++++++++++++++++++++++++++++++++++++ +*March 1st 2018* + +Bug fixes +*********** + +* Handle ellipsoid change correctly in pipelines when ``+towgs84=0,0,0`` is set (`#881 <https://github.com/OSGeo/proj.4/issues/881>`_) + + +* Handle the case where nad_ctable2_init returns NULL (`#883 <https://github.com/OSGeo/proj.4/issues/883>`_) + + +* Avoid shadowed declaration errors with old gcc (`#880 <https://github.com/OSGeo/proj.4/issues/880>`_) + + +* Expand ``+datum`` properly in pipelines (`#872 <https://github.com/OSGeo/proj.4/issues/872>`_) + + +* Fail gracefully when incorrect headers are encountered in grid files (`#875 <https://github.com/OSGeo/proj.4/issues/875>`_) + + +* Improve roundtrip stability in pipelines using ``+towgs84`` (`#871 <https://github.com/OSGeo/proj.4/issues/871>`_) + + +* Fixed typo in gie error codes (`#861 <https://github.com/OSGeo/proj.4/issues/861>`_) + + +* Numerical stability fixes to the geodesic package (`#826 <https://github.com/OSGeo/proj.4/issues/826>`_ & `#843 <https://github.com/OSGeo/proj.4/issues/843>`_) + + +* Make sure that transient errors are returned correctly (`#857 <https://github.com/OSGeo/proj.4/issues/857>`_) + + +* Make sure that locally installed header files are not used when building PROJ (`#849 <https://github.com/OSGeo/proj.4/issues/849>`_) + + +* Fix inconsistent parameter names in ``proj.h``/``proj_4D_api.c`` (`#842 <https://github.com/OSGeo/proj.4/issues/842>`_) + + +* Make sure ``+vunits`` is applied (`#833 <https://github.com/OSGeo/proj.4/issues/833>`_) + + +* Fix incorrect Web Mercator transformations (`#834 <https://github.com/OSGeo/proj.4/issues/834>`_) + + + +PROJ 5.0.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +*February 1st 2018* + +This version of PROJ introduces some significant extensions and +improvements to (primarily) the geodetic functionality of the system. + +The main driver for introducing the new features is the emergence of +dynamic reference frames, the increasing use of high accuracy GNSS, +and the related growing demand for accurate coordinate +transformations. While older versions of PROJ included some geodetic +functionality, the new framework lays the foundation for turning PROJ +into a generic geospatial coordinate transformation engine. + +The core of the library is still the well established projection code. +The new functionality is primarily exposed in a new programming +interface and a new command line utility, :ref:`cct<cct>` +(for "Coordinate Conversion and Transformation"). The old programming interface is +still available and can - to some extent - use the new geodetic +transformation features. + +The internal architecture has also seen many changes and much +improvement. So far, these improvements respect the existing +programming interface. But the process has revealed a need to simplify +and reduce the code base, in order to support sustained active +development. + + +**Therefore we have scheduled regular releases over the coming years** +**which will gradually remove the old programming interface.** + +**This will cause breaking changes with the next two major version** +**releases, which will affect all projects that depend on PROJ** +**(cf. section "deprecations" below).** + +The decision to break the existing API has not been easy, but has +ultimately been deemed necessary to ensure the long term survival of +the project. Not only by improving the maintainability immensely, but +also by extending the potential user (and hence developer) community. + +The end goal is to deliver a generic coordinate transformation +software package with a clean and concise code base appealing to +both users and developers. + + +Versioning and naming +*************************************************************************** + +For the first time in more than 25 years the major version number of +the software is changed. The decision to do this is based on the many +new features and new API. While backwards compatibility remains - +except in a few rare corner cases - the addition of a new and improved +programming interface warrants a new major release. + +The new major version number unfortunately leaves the project in a bit +of a conundrum regarding the name. For the majority of the life-time +of the product it has been known as PROJ.4, but since we have now +reached version 5 the name is no longer aligned with the version +number. + +Hence we have decided to decouple the name from the version number and +from this version and onwards the product will simply be called PROJ. + +In recognition of the history of the software we are keeping PROJ.4 as +the *name of the organizing project*. The same project team also +produces the datum-grid package. + +In summary: + +* The PROJ.4 project provides the product PROJ, which is now at + version 5.0.0. + +* The foundational component of PROJ is the library libproj. + +* Other PROJ components include the application proj, which provides + a command line interface to libproj. + +* The PROJ.4 project also distributes the datum-grid package, + which at the time of writing is at version 1.6.0. + +Updates +*************************************************************************** + +* Introduced new API in ``proj.h``. + + - The new API is orthogonal to the existing ``proj_api.h`` API and the internally used ``projects.h`` API. + + - The new API adds the ability to transform spatiotemporal (4D) coordinates. + + - Functions in the new API use the ``proj_`` namespace. + + - Data types in the new API use the ``PJ_`` namespace. + +* Introduced the concept of "transformation pipelines" that makes possible to do complex geodetic transformations of coordinates by daisy chaining simple coordinate operations. + +* Introduced :ref:`cct`, the Coordinate Conversion and Transformation application. + +* Introduced :ref:`gie`, the Geospatial Integrity Investigation Environment. + + - Selftest invoked by ``-C`` flag in :ref:`proj` has been removed + - Ported approx. 1300 built-in selftests to :ref:`gie` format + - Ported approx. 1000 tests from the gigs test framework + - Added approx. 200 new tests + +* Adopted terminology from the OGC/ISO-19100 geospatial standards series. Key definitions are: + + - At the most generic level, a *coordinate operation* is a change of coordinates, based on a one-to-one relationship, from one coordinate reference system to another. + + - A *transformation* is a coordinate operation in which the two coordinate reference systems are based on different datums, e.g. a change from a global reference frame to a regional frame. + + - A *conversion* is a coordinate operation in which both coordinate reference systems are based on the same datum, e.g. change of units of coordinates. + + - A *projection* is a coordinate conversion from an ellipsoidal coordinate system to a plane. Although projections are simply conversions according to the standard, they are treated as separate entities in PROJ as they make up the vast majority of operations in the library. + +* New operations + + - :ref:`The pipeline operator<pipeline>` (``pipeline``) + + - Transformations + + :ref:`Helmert transform<helmert>` (``helmert``) + + Horner real and complex polynomial evaluation (``horner``) + + :ref:`Horizontal gridshift<hgridshift>` (``hgridshift``) + + :ref:`Vertical gridshift<vgridshift>` (``vgridshift``) + + :ref:`Molodensky transform<molodensky>` (``molodensky``) + + :ref:`Kinematic gridshift with deformation model<deformation>` (``deformation``) + + - Conversions + + :ref:`Unit conversion<unitconvert>` (``unitconvert``) + + :ref:`Axis swap<axisswap>` (``axisswap``) + + - Projections + + :ref:`Central Conic projection<ccon>` (``ccon``) + +* Significant documentation updates, including + + - Overhaul of the structure of the documentation + - A better introduction to the use of PROJ + - :ref:`A complete reference to the new API<reference>` + - a complete rewrite of the section on geodesic calculations + - Figures for all projections + +* New "free format" option for operation definitions, which permits separating tokens by whitespace when specifying key/value- pairs, e.g. ``proj = merc lat_0 = 45``. + +* Added metadata to init-files that can be read with the :c:func:`proj_init_info` function in the new ``proj.h`` API. + +* Added ITRF2000, ITRF2008 and ITRF2014 init-files with ITRF transformation parameters, including plate motion model parameters. + +* Added ellipsoid parameters for GSK2011, PZ90 and "danish". The latter is similar to the already supported andrae ellipsoid, but has a slightly different semimajor axis. + +* Added Copenhagen prime meridian. + +* Updated EPSG database to version 9.2.0. + +* Geodesic library updated to version 1.49.2-c. + +* Support for analytical partial derivatives has been removed. + +* Improved performance in Winkel Tripel and Aitoff. + +* Introduced ``pj_has_inverse()`` function to ``proj_api.h``. Checks if an operation has an inverse. Use this instead of checking whether ``P->inv`` exists, since that can no longer be relied on. + +* ABI version number updated to 13:0:0. + +* Removed support for Windows CE. + +* Removed the VB6 COM interface. + +Bug fixes +*************************************************************************** + +* Fixed incorrect convergence calculation in Lambert Conformal Conic. (`#16 <https://github.com/OSGeo/proj.4/issues/16>`_) + + +* Handle ellipsoid parameters correctly when using ``+nadgrids=@null``. (`#22 <https://github.com/OSGeo/proj.4/issues/22>`_) + + +* Return correct latitude when using negative northings in Transverse Mercator. (`#138 <https://github.com/OSGeo/proj.4/issues/138>`_) + + +* Return correct result at origin in inverse Mod. Stereographic of Alaska. (`#161 <https://github.com/OSGeo/proj.4/issues/161>`_) + + +* Return correct result at origin in inverse Mod. Stereographic of 48 U.S. (`#162 <https://github.com/OSGeo/proj.4/issues/162>`_) + + +* Return correct result at origin in inverse Mod. Stereographic of 50 U.S. (`#163 <https://github.com/OSGeo/proj.4/issues/163>`_) + + +* Return correct result at origin in inverse Lee Oblated Stereographic. (`#164 <https://github.com/OSGeo/proj.4/issues/164>`_) + + +* Return correct result at origin in inverse Miller Oblated Stereographic. (`#165 <https://github.com/OSGeo/proj.4/issues/165>`_) + + +* Fixed scaling and wrap-around issues in Oblique Cylindrical Equal Area. (`#166 <https://github.com/OSGeo/proj.4/issues/166>`_) + + +* Corrected a coefficient error in inverse Transverse Mercator. (`#174 <https://github.com/OSGeo/proj.4/issues/174>`_) + +* Respect ``-r`` flag when calling :program:`proj` with ``-V``. (`#184 <https://github.com/OSGeo/proj.4/issues/184>`_) + +* Remove multiplication by 2 at the equator error in Stereographic projection. (`#194 <https://github.com/OSGeo/proj.4/issues/194>`_) + +* Allow +alpha=0 and +gamma=0 when using Oblique Mercator. (`#195 <https://github.com/OSGeo/proj.4/issues/195>`_) + +* Return correct result of inverse Oblique Mercator when alpha is between 90 and 270. (`#331 <https://github.com/OSGeo/proj.4/issues/331>`_) + +* Avoid segmentation fault when accessing point outside grid. (`#396 <https://github.com/OSGeo/proj.4/issues/396>`_) + +* Avoid segmentation fault on NaN input in Robin inverse. (`#463 <https://github.com/OSGeo/proj.4/issues/463>`_) + +* Very verbose use of :program:`proj` (``-V``) on Windows is fixed. (`#484 <https://github.com/OSGeo/proj.4/issues/484>`_) + +* Fixed memory leak in General Oblique Transformation. (`#497 <https://github.com/OSGeo/proj.4/issues/497>`_) + +* Equations for meridian convergence and partial derivatives have + been corrected for non-conformal projections. (`#526 <https://github.com/OSGeo/proj.4/issues/526>`_) + +* Fixed scaling of cartesian coordinates in ``pj_transform()``. (`#726 <https://github.com/OSGeo/proj.4/issues/726>`_) + +* Additional bug fixes courtesy of `Google's OSS-Fuzz program <https://bugs.chromium.org/p/oss-fuzz/issues/list?can=1&q=proj4>`_ |
