aboutsummaryrefslogtreecommitdiff
path: root/docs/source/index.rst
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2018-05-10 12:35:33 +0200
committerKristian Evers <kristianevers@gmail.com>2018-05-12 12:22:19 +0200
commit5272565cdf5acfd15ab5c96a74f49d57b5a18217 (patch)
treef90e96586c8c9d518a8bd5e0f2ba8d98eae4a88e /docs/source/index.rst
parentd02e9ede9aebc10d63007ca8d18650fad6d301d7 (diff)
downloadPROJ-5272565cdf5acfd15ab5c96a74f49d57b5a18217.tar.gz
PROJ-5272565cdf5acfd15ab5c96a74f49d57b5a18217.zip
Complete overhaul of the website frontpage
Removed everything but the leading introduction and added release history from 5.0.0 and on.
Diffstat (limited to 'docs/source/index.rst')
-rw-r--r--docs/source/index.rst330
1 files changed, 298 insertions, 32 deletions
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 03e993ec..ca14a5d6 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -1,37 +1,11 @@
.. _home:
-******************************************************************************
PROJ
-******************************************************************************
-
-PROJ is a standard UNIX filter function which converts geographic longitude
-and latitude coordinates into cartesian coordinates (and vice versa), and it is
-a C API for software developers to include coordinate transformation in their
-own software. PROJ is maintained on `GitHub <http://github.com/OSGeo/proj.4/>`_.
-
-.. only:: html
-
- ============= ================================================================
- Platform Test Status and Coverage
- ============= ================================================================
- Travis |travis|
- AppVeyor |appveyor|
- Coverage |coverals|
- ============= ================================================================
-
-
- .. |travis| image:: https://travis-ci.org/OSGeo/proj.4.svg?branch=master
- :target: https://travis-ci.org/OSGeo/proj.4
- .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/584j49uguwoo5evi?svg=true
- :target: https://ci.appveyor.com/project/OSGeo/proj-4
- .. |coverals| image:: https://coveralls.io/repos/OSGeo/proj.4/badge.svg?branch=master
- :target: https://coveralls.io/r/OSGeo/proj.4?branch=master
-
-Documentation
-=================
+###############################################################################
.. toctree::
:maxdepth: 1
+ :hidden:
download
install
@@ -47,10 +21,302 @@ Documentation
license
references
+PROJ is a standard UNIX filter function which converts geographic longitude
+and latitude coordinates into cartesian coordinates (and vice versa), and it is
+a C API for software developers to include coordinate transformation in their
+own software. PROJ is maintained on `GitHub <http://github.com/OSGeo/proj.4/>`_.
+
+.. only:: html
+
+ NEWS
+ ---------------------------------------------------------------------------
+
+ .. attention::
+
+ The ``projects.h`` header and the functions related to it is considered
+ deprecated from version 5.0.0 and onwards. The header will be removed
+ from PROJ in version 6.0.0 scheduled for release February 1st 2019.
+
+ .. attention::
+
+ The nmake build system on Windows will not be supported from
+ version 6.0.0 on onwards. Use CMake instead.
+
+ .. attention::
+
+ The ``proj_api.h`` header and the functions related to it is
+ considered deprecated from version 5.0.0 and onwards. The header will be
+ removed from PROJ in version 7.0.0 scheduled for release February 1st
+ 2020.
+
+
+
+
+ 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>`_)
-Indices and tables
-==================
+ * Equations for meridian convergence and partial derivatives have
+ been corrected for non-conformal projections. (`#526 <https://github.com/OSGeo/proj.4/issues/526>`_)
-* :ref:`genindex`
-* :ref:`search`
+ * 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>`_