aboutsummaryrefslogtreecommitdiff
path: root/docs/source
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2018-03-19 22:38:57 +0100
committerGitHub <noreply@github.com>2018-03-19 22:38:57 +0100
commitf8fbd18a3e297194aabce9b309a2e1bf1950bc58 (patch)
treee744aa43beba2dca07190c2387dcd42b0f79e23a /docs/source
parent999c44086f3e69def4e062a79766a4757b5b7c01 (diff)
parent5c6e6f5c5ddac0948bca31406d13265fec286254 (diff)
downloadPROJ-f8fbd18a3e297194aabce9b309a2e1bf1950bc58.tar.gz
PROJ-f8fbd18a3e297194aabce9b309a2e1bf1950bc58.zip
Merge pull request #869 from kbevers/sphinx-man-pages
Auto-generate man pages from Sphinx docs
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/apps/cct.rst (renamed from docs/source/usage/apps/cct.rst)163
-rw-r--r--docs/source/apps/cs2cs.rst187
-rw-r--r--docs/source/apps/geod.rst214
-rw-r--r--docs/source/apps/gie.rst311
-rw-r--r--docs/source/apps/index.rst22
-rw-r--r--docs/source/apps/proj.rst236
-rw-r--r--docs/source/conf.py37
-rw-r--r--docs/source/index.rst1
-rw-r--r--docs/source/resource_files.rst1
-rw-r--r--docs/source/usage/apps/cs2cs.rst143
-rw-r--r--docs/source/usage/apps/geod.rst168
-rw-r--r--docs/source/usage/apps/index.rst21
-rw-r--r--docs/source/usage/apps/proj.rst164
-rw-r--r--docs/source/usage/index.rst1
14 files changed, 1102 insertions, 567 deletions
diff --git a/docs/source/usage/apps/cct.rst b/docs/source/apps/cct.rst
index 014e7732..9153e29b 100644
--- a/docs/source/usage/apps/cct.rst
+++ b/docs/source/apps/cct.rst
@@ -4,135 +4,162 @@
cct
================================================================================
-
.. Index:: cct
+.. only:: html
+ Coordinate Conversion and Transformation.
+Synopsis
+********
-``cct`` a 4D equivalent to the ``proj`` projection
-program, performs transformation coordinate systems on a set of input points.
-The coordinate system transformation can include translation between
-projected and geographic coordinates as well as the application of datum shifts.
+ **cct** [ **-cotvz** [ args ] ] *+opts[=arg]* file[s]
-cct is an acronym meaning *Coordinate Conversion and Transformation*.
+Description
+***********
-The acronym refers to definitions given in the OGC 08-015r2/ISO-19111
-standard "Geographical Information -- Spatial Referencing by Coordinates",
-which defines two different classes of *coordinate operations*:
+:program:`cct` a 4D equivalent to the :program:`proj` projection program,
+performs transformation coordinate systems on a set of input points. The
+coordinate system transformation can include translation between projected
+and geographic coordinates as well as the application of datum shifts.
-*Coordinate Conversions*, which are coordinate operations where input
-and output datum are identical (e.g. conversion from geographical to
-cartesian coordinates) and
-*Coordinate Transformations*, which are coordinate operations where
-input and output datums differ (e.g. change of reference frame).
+The following control parameters can appear in any order:
-``cct``, however, also refers to Carl Christian Tscherning (1942--2014),
-professor of Geodesy at the University of Copenhagen, mentor and advisor
-for a generation of Danish geodesists, colleague and collaborator for
-two generations of global geodesists, Secretary General for the
-International Association of Geodesy, IAG (1995--2007), fellow of the
-American Geophysical Union (1991), recipient of the IAG Levallois Medal
-(2007), the European Geosciences Union Vening Meinesz Medal (2008), and
-of numerous other honours.
+.. program:: cct
-cct, or Christian, as he was known to most of us, was recognized for his
-good mood, his sharp wit, his tireless work, and his great commitment to
-the development of geodesy -- both through his scientific contributions,
-comprising more than 250 publications, and by his mentoring and teaching
-of the next generations of geodesists.
+.. option:: -c <x,y,z,t>
-As Christian was an avid Fortran programmer, and a keen Unix connoisseur,
-he would have enjoyed to know that his initials would be used to name a
-modest Unix style transformation filter, hinting at the tireless aspect
-of his personality, which was certainly one of the reasons he accomplished
-so much, and meant so much to so many people.
+ Specify input columns for (up to) 4 input parameters. Defaults to 1,2,3,4.
-Hence, in honour of cct (the geodesist) this is cct (the program).
+.. option:: -o <output file name>, --output=<output file name>
+ Specify the name of the output file.
+.. option:: -t <time>, --time=<time>
-Synopsis
-********
+ Specify a fixed observation time to be used for all input data.
-::
+.. option:: -z <height>, --height=<height>
- cct [ -cotvz [ args ] ]... +opts[=arg]... file...
+ Specify a fixed observation height to be used for all input data.
-Description
-***********
-The following control parameters can appear in any order:
+.. option:: -v, --verbose
-::
+ Write non-essential, but potentially useful, information to stderr.
+ Repeat for additional information (``-vv``, ``-vvv``, etc.)
- -c x,y,z,t
- --columns=x,y,z,t
- Specify input columns for (up to) 4 input parameters. Defaults to 1,2,3,4
+The *+args* arguments are associated with coordinate operation parameters.
+Usage varies with operation.
- -o <output file name>
- --output=<output file name>
- Specify the name of the output file.
+.. only:: html
- -t <time>
- --time=<time>
- Specify a fixed observation time to be used for all input data.
+ For a complete description consult the :ref:`projection pages <projections>`.
- -z <height>
- --height=<height>
- Specify a fixed observation height to be used for all input data.
- -v
- --verbose
- Write non-essential, but potentially useful, information to stderr.
- Repeat for additional information (-vv, -vvv, etc.)
+:program:`cct` is an acronym meaning *Coordinate Conversion and Transformation*.
+
+The acronym refers to definitions given in the OGC 08-015r2/ISO-19111
+standard "Geographical Information -- Spatial Referencing by Coordinates",
+which defines two different classes of *coordinate operations*:
-The ``+args`` arguments are associated with coordinate operation parameters. Usage varies with
-operation. For a complete description consult the `projection pages <../projections/index.html>`_
+*Coordinate Conversions*, which are coordinate operations where input
+and output datum are identical (e.g. conversion from geographical to
+cartesian coordinates) and
+*Coordinate Transformations*, which are coordinate operations where
+input and output datums differ (e.g. change of reference frame).
Examples
********
-1. The operator specs describe the action to be performed by cct. So the following script
+1. The operator specs describe the action to be performed by :program:`cct`. So
+ the following script
-::
+.. code-block:: console
echo 12 55 0 0 | cct +proj=utm +zone=32 +ellps=GRS80
will transform the input geographic coordinates into UTM zone 32 coordinates.
Hence, the command
-::
+.. code-block:: console
echo 12 55 | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
Should give results comparable to the classic proj command
-::
+.. code-block:: console
echo 12 55 | proj +proj=utm +zone=32 +ellps=GRS80
2. Convert geographical input to UTM zone 32 on the GRS80 ellipsoid:
-::
+.. code-block:: console
cct +proj=utm +ellps=GRS80 +zone=32
3. Roundtrip accuracy check for the case above:
-::
+.. code-block:: console
cct +proj=pipeline +proj=utm +ellps=GRS80 +zone=32 +step +step +inv
4. As (2) but specify input columns for longitude, latitude, height and time:
-::
+.. code-block:: console
cct -c 5,2,1,4 +proj=utm +ellps=GRS80 +zone=32
-5. As (2) but specify fixed height and time, hence needing only 2 cols in input:
+5. As (2) but specify fixed height and time, hence needing only 2 cols in
+ input:
-::
+.. code-block:: console
cct -t 0 -z 0 +proj=utm +ellps=GRS80 +zone=32
+
+
+Background
+**********
+
+:program:`cct` also refers to Carl Christian Tscherning (1942--2014),
+professor of Geodesy at the University of Copenhagen, mentor and advisor
+for a generation of Danish geodesists, colleague and collaborator for
+two generations of global geodesists, Secretary General for the
+International Association of Geodesy, IAG (1995--2007), fellow of the
+American Geophysical Union (1991), recipient of the IAG Levallois Medal
+(2007), the European Geosciences Union Vening Meinesz Medal (2008), and
+of numerous other honours.
+
+*cct*, or Christian, as he was known to most of us, was recognized for his
+good mood, his sharp wit, his tireless work, and his great commitment to
+the development of geodesy -- both through his scientific contributions,
+comprising more than 250 publications, and by his mentoring and teaching
+of the next generations of geodesists.
+
+As Christian was an avid Fortran programmer, and a keen Unix connoisseur,
+he would have enjoyed to know that his initials would be used to name a
+modest Unix style transformation filter, hinting at the tireless aspect
+of his personality, which was certainly one of the reasons he accomplished
+so much, and meant so much to so many people.
+
+Hence, in honour of *cct* (the geodesist) this is :program:`cct` (the program).
+
+
+.. only:: man
+
+ See also
+ ********
+
+ **proj(1)**, **cs2cs(1)**, **geod(1)**, **gie(1)**
+
+ Bugs
+ ****
+
+ A list of know bugs can be found at http://github.com/OSGeo/proj.4/issues
+ where new bug reports can be submitted to.
+
+ Home page
+ *********
+
+ http://proj4.org/
diff --git a/docs/source/apps/cs2cs.rst b/docs/source/apps/cs2cs.rst
new file mode 100644
index 00000000..ba77aadf
--- /dev/null
+++ b/docs/source/apps/cs2cs.rst
@@ -0,0 +1,187 @@
+.. _cs2cs:
+
+================================================================================
+cs2cs
+================================================================================
+
+.. only:: html
+
+ Cartographic coordinate system filter.
+
+Synopsis
+********
+
+ **cs2cs** [ **-eEfIlrstvwW** [ args ] ] [ *+opts[=arg]* ] [ +to [*+opts[=arg]*] ] file[s]
+
+Description
+***********
+
+:program:`cs2cs` performs transformation between the source and destination
+cartographic coordinate system on a set of input points. The coordinate
+system transformation can include translation between projected and
+geographic coordinates as well as the application of datum shifts.
+
+The following control parameters can appear in any order:
+
+.. program:: cs2cs
+
+.. option:: -I
+
+ method to specify inverse translation, convert from *+to* coordinate system to
+ the primary coordinate system defined.
+
+.. option:: -t<a>
+
+ A specifies a character employed as the first character to denote a control
+ line to be passed through without processing. This option applicable to
+ ascii input only. (# is the default value).
+
+.. option:: -e <string>
+
+ String is an arbitrary string to be output if an error is detected during
+ data transformations. The default value is: *\t*. Note that if the -b, -i
+ or -o options are employed, an error is returned as HUGE_VAL value for both
+ return values.
+
+.. option:: -E
+
+ causes the input coordinates to be copied to the output line prior to
+ printing the converted values.
+
+.. option:: -l<[=id]>
+
+ List projection identifiers that can be selected with *+proj*. ``cs2cs -l=id``
+ gives expanded description of projection id, e.g. ``cs2cs -l=merc``.
+
+.. option:: -lp
+
+ List of all projection id that can be used with the *+proj* parameter.
+ Equivalent to ``cs2cs -l``.
+
+.. option:: -lP
+
+ Expanded description of all projections that can be used with the *+proj*
+ parameter.
+
+.. option:: -le
+
+ List of all ellipsoids that can be selected with the *+ellps* parameters.
+
+.. option:: -lu
+
+ List of all distance units that can be selected with the *+units* parameter.
+
+.. option:: -ld
+
+ List of datums that can be selected with the *+datum* parameter.
+
+.. option:: -r
+
+ This options reverses the order of the expected input from
+ longitude-latitude or x-y to latitude-longitude or y-x.
+
+.. option:: -s
+
+ This options reverses the order of the output from x-y or longitude-latitude
+ to y-x or latitude-longitude.
+
+.. option:: -f <format>
+
+ Format is a printf format string to control the form of the output values.
+ For inverse projections, the output will be in degrees when this option is
+ employed. If a format is specified for inverse projection the output data
+ will be in deci- mal degrees. The default format is "%.2f" for forward
+ projection and DMS for inverse.
+
+.. option:: -[w|W]<n>
+
+ N is the number of significant fractional digits to employ for seconds
+ output (when the option is not specified, -w3 is assumed). When -W is
+ employed the fields will be constant width and with leading zeroes.
+
+.. option:: -v
+
+ causes a listing of cartographic control parameters tested for and used by
+ the program to be printed prior to input data.
+
+
+.. only:: man
+
+ The *+args* run-line arguments are associated with cartographic
+ parameters.
+
+.. only:: html
+
+ The *+args* run-line arguments are associated with cartographic
+ parameters. Usage varies with projection and for a complete description
+ consult the :ref:`projection pages <projections>`.
+
+The :program:`cs2cs` program requires two coordinate system definitions. The first (or
+primary is defined based on all projection parameters not appearing after the
+*+to* argument. All projection parameters appearing after the *+to* argument
+are considered the definition of the second coordinate system. If there is no
+second coordinate system defined, a geographic coordinate system based on the
+datum and ellipsoid of the source coordinate system is assumed. Note that the
+source and destination coordinate system can both be projections, both be
+geographic, or one of each and may have the same or different datums.
+
+Additional projection control parameters may be contained in two auxiliary
+control files: the first is optionally referenced with the
+*+init=file:id* and the second is always processed after the name of the
+projection has been established from either the run-line or the contents of
+*+init* file. The environment parameter PROJ_LIB establishes the default
+directory for a file reference without an absolute path. This is also used
+for supporting files like datum shift files.
+
+One or more files (processed in left to right order) specify the source of
+data to be transformed. A ``-`` will specify the location of processing standard
+input. If no files are specified, the input is assumed to be from stdin.
+For input data the two data values must be in the first two white space
+separated fields and when both input and output are ASCII all trailing portions
+of the input line are appended to the output line.
+
+Input geographic data (longitude and latitude) must be in DMS or decimal
+degrees format and input cartesian data must be in units consistent with the
+ellipsoid major axis or sphere radius units. Output geographic coordinates will
+normally be in DMS format (use ``-f %.12f`` for decimal degrees with 12 decimal
+places), while projected (cartesian) coordinates will be in linear
+(meter, feet) units.
+
+
+Example
+*******
+
+The following script
+
+::
+
+ cs2cs +proj=latlong +datum=NAD83 +to +proj=utm +zone=10 +datum=NAD27 -r
+ <<EOF 45d15'33.1" 111.5W 45d15.551666667N -111d30 +45.25919444444
+ 111d30'000w EOF
+
+will transform the input NAD83 geographic coordinates into NAD27 coordinates in
+the UTM projection with zone 10 selected. The geographic values of this
+example are equivalent and meant as examples of various forms of DMS input.
+The x-y output data will appear as three lines of:
+
+::
+
+ 1402285.99 5076292.42 0.000
+
+.. only:: man
+
+ See also
+ ********
+
+ **proj(1)**, **cct(1)**, **geod(1)**, **gie(1)**
+
+ Bugs
+ ****
+
+ A list of know bugs can be found at http://github.com/OSGeo/proj.4/issues
+ where new bug reports can be submitted to.
+
+ Home page
+ *********
+
+ http://proj4.org/
diff --git a/docs/source/apps/geod.rst b/docs/source/apps/geod.rst
new file mode 100644
index 00000000..3b60f461
--- /dev/null
+++ b/docs/source/apps/geod.rst
@@ -0,0 +1,214 @@
+.. _geod:
+
+================================================================================
+geod
+================================================================================
+
+Synopsis
+********
+
+ **geod** *+ellps=<ellipse>* [ **-afFIlptwW** [ args ] ] [ *+args* ] file[s]
+
+ **invgeod** *+ellps=<ellipse>* [ **-afFIlptwW** [ args ] ] [ *+args* ] file[s]
+
+Description
+***********
+
+:program:`geod` (direct) and :program:`invgeod` (inverse) perform geodesic
+(Great Circle) computations for determining latitude, longitude and back
+azimuth of a terminus point given a initial point latitude, longitude,
+azimuth and distance (direct) or the forward and back azimuths and distance
+between an initial and terminus point latitudes and longitudes (inverse).
+The results are accurate to round off for :math:`|f| < 1/50`, where
+:math:`f` is flattening.
+
+
+:program:`invgeod` may not be available on all platforms; in this case
+use :option:`geod -I` instead.
+
+The following command-line options can appear in any order:
+
+
+.. program:: geod
+
+
+.. option:: -I
+
+ Specifies that the inverse geodesic computation is to be performed. May be
+ used with execution of geod as an alternative to invgeod execution.
+
+.. option:: -a
+
+ Latitude and longitudes of the initial and terminal points, forward and
+ back azimuths and distance are output.
+
+.. option:: -ta
+
+ A specifies a character employed as the first character to denote a control
+ line to be passed through without processing.
+
+.. option:: -le
+
+ Gives a listing of all the ellipsoids that may be selected with the
+ *+ellps=* option.
+
+.. option:: -lu
+
+ Gives a listing of all the units that may be selected with the *+units=*
+ option.
+
+.. option:: -f <format>
+
+ Format is a printf format string to control the output form of the
+ geographic coordinate values. The default mode is DMS for geographic
+ coordinates and "%.3f" for distance.
+
+.. option:: -F <format>
+
+ Format is a printf format string to control the output form of the distance
+ value (``-F``). The default mode is DMS for geographic coordinates and
+ "%.3f" for distance.
+
+.. option:: -w<n>
+
+ N is the number of significant fractional digits to employ for seconds
+ output (when the option is not specified, ``-w3`` is assumed).
+
+.. option:: -W<n>
+
+ N is the number of significant fractional digits to employ for seconds
+ output. When ``-W`` is employed the fields will be constant width
+ with leading zeroes.
+
+.. option:: -p
+
+ This option causes the azimuthal values to be output as unsigned DMS
+ numbers between 0 and 360 degrees. Also note :option:`-f`.
+
+The *+args* command-line options are associated with geodetic
+parameters for specifying the ellipsoidal or sphere to use.
+controls. The options are processed in left to right order
+from the command line. Reentry of an option is ignored with
+the first occurrence assumed to be the desired value.
+
+.. only:: html
+
+ See :ref:`projections_intro` for full
+ list of these parameters and controls.
+
+.. only:: man
+
+ See the PROJ documentation for a full list of these parameters and
+ controls.
+
+One or more files (processed in left to right order) specify
+the source of data to be transformed. A ``-`` will specify the
+location of processing standard input. If no files are specified,
+the input is assumed to be from stdin.
+
+For direct determinations input data must be in latitude, longitude,
+azimuth and distance order and output will be latitude,
+longitude and back azimuth of the terminus point. Latitude,
+longitude of the initial and terminus point are input for the
+inverse mode and respective forward and back azimuth from the
+initial and terminus points are output along with the distance
+between the points.
+
+Input geographic coordinates (latitude and longitude) and
+azimuthal data must be in decimal degrees or DMS format and
+input distance data must be in units consistent with the ellipsoid
+major axis or sphere radius units. The latitude must lie
+in the range [-90d,90d]. Output geographic coordinates will be
+in DMS (if the :option:`-f` switch is not employed) to 0.001" with trailing,
+zero-valued minute-second fields deleted. Output distance
+data will be in the same units as the ellipsoid or sphere
+radius.
+
+The Earth's ellipsoidal figure may be selected in the same manner
+as program :program:`proj` by using *+ellps=*, *+a=*, *+es=*, etc.
+
+Geod may also be used to determine intermediate points along
+either a geodesic line between two points or along an arc of
+specified distance from a geographic point. In both cases an
+initial point must be specified with *+lat_1=lat* and *+lon_1=lon*
+parameters and either a terminus point *+lat_2=lat* and
+*+lon_2=lon* or a distance and azimuth from the initial point
+with *+S=distance* and *+A=azimuth* must be specified.
+
+If points along a geodesic are to be determined then either
+*+n_S=integer* specifying the number of intermediate points
+and/or *+del_S=distance* specifying the incremental distance
+between points must be specified.
+
+To determine points along an arc equidistant from the initial
+point both *+del_A=angle* and *+n_A=integer* must be specified
+which determine the respective angular increments and number of
+points to be determined.
+
+Examples
+********
+
+The following script determines the geodesic azimuths and distance in U.S.
+statute miles from Boston, MA, to Portland, OR:
+
+.. code-block:: console
+
+ geod +ellps=clrk66 <<EOF -I +units=us-mi
+ 42d15'N 71d07'W 45d31'N 123d41'W
+ EOF
+
+which gives the results:
+
+.. code-block:: console
+
+ -66d31'50.141" 75d39'13.083" 2587.504
+
+where the first two values are the azimuth from Boston to Portland,
+the back azimuth from Portland to Boston followed by the distance.
+
+An example of forward geodesic use is to use the Boston location
+and determine Portland's location by azimuth and distance:
+
+.. code-block:: console
+
+ geod +ellps=clrk66 <<EOF +units=us-mi
+ 42d15'N 71d07'W -66d31'50.141" 2587.504
+ EOF
+
+which gives:
+
+.. code-block:: console
+
+ 45d31'0.003"N 123d40'59.985"W 75d39'13.094"
+
+.. note::
+ Lack of precision in the distance value compromises the
+ precision of the Portland location.
+
+Further reading
+***************
+
+#. `GeographicLib <https://geographiclib.sourceforge.io>`_.
+
+#. C. F. F. Karney, `Algorithms for Geodesics <https://doi.org/10.1007/s00190-012-0578-z>`_, J. Geodesy **87**\ (1), 43–55 (2013);
+ `addenda <https://geographiclib.sourceforge.io/geod-addenda.html>`_.
+
+#. `A geodesic bibliography <https://geographiclib.sourceforge.io/geodesic-papers/biblio.html>`_.
+
+.. only:: man
+
+ See also
+ ********
+
+ **proj(1)**, **cs2cs(1)**, **cct(1)**, **geod(1)**, **gie(1)**
+
+ Bugs
+ ****
+
+ A list of know bugs can be found at http://github.com/OSGeo/proj.4/issues
+ where new bug reports can be submitted to.
+
+ Home page
+ *********
+
+ http://proj4.org/
diff --git a/docs/source/apps/gie.rst b/docs/source/apps/gie.rst
new file mode 100644
index 00000000..f94c1171
--- /dev/null
+++ b/docs/source/apps/gie.rst
@@ -0,0 +1,311 @@
+.. _gie:
+
+================================================================================
+gie
+================================================================================
+
+.. Index:: gie
+
+.. only:: html
+
+ The Geospatial Integrity Investigation Environment
+
+Synopsis
+********
+
+ **gie** [ **-hovql** [ args ] ] file[s]
+
+Description
+***********
+
+:program:`gie`, the Geospatial Integrity Investigation Environment, is a
+regression testing environment for the PROJ transformation library. Its primary
+design goal is to be able to perform regression testing of code that are a part
+of PROJ, while not requiring any other kind of tooling than the same C compiler
+already employed for compiling the library.
+
+.. option:: -h, --help
+
+ Print usage information
+
+.. option:: -o <file>, --output <file>
+
+ Specify output file name
+
+.. option:: -v, --verbose
+
+ Verbose: Provide non-essential informational output. Repeat :option:`-v` for
+ more verbosity (e.g. ``-vv``)
+
+.. option:: -q, --quiet
+
+ Quiet: Opposite of verbose. In quiet mode not even errors are
+ reported. Only interaction is through the return code (0 on success,
+ non-zero indicates number of FAILED tests)
+
+.. option:: -l, --list
+
+ List the PROJ internal system error codes
+
+Tests for :program:`gie` are defined in simple text files. Usually having the
+extension ``.gie``. Test for :program:`gie` are written in the purpose-build command language for gie.
+The basic functionality of the gie command language is implemented through just
+3 command verbs: ``operation``, which defines the PROJ operation to test,
+``accept``, which defines the input coordinate to read, and ``expect``, which
+defines the result to expect.
+
+A sample test file for :program:`gie` that uses the three above basic commands looks
+like:
+
+.. code-block:: console
+
+ <gie>
+
+ --------------------------------------------
+ Test output of the UTM projection
+ --------------------------------------------
+ operation +proj=utm +zone=32 +ellps=GRS80
+ --------------------------------------------
+ accept 12 55
+ expect 691_875.632_14 6_098_907.825_05
+
+ </gie>
+
+Parsing of a :program:`gie` file starts at ``<gie>`` and ends when ``</gie>``
+is reached. Anything before ``<gie>`` and after ``</gie>`` is not considered.
+Test cases are created by defining an :option:`operation` which
+:option:`accept` an input coordinate and :option:`expect` an output
+coordinate.
+
+Because :program:`gie` tests are wrapped in the ``<gie>``/``</gie>`` tags it is
+also possible to add test cases to custom made :ref:`init files <init_files>`.
+The tests will be ignore by PROJ when reading the init file with *+init* and
+:program:`gie` ignores anything not wrapped in ``<gie>``/``</gie>``.
+
+:program:`gie` tests are defined by a set of commands like :option:`operation`,
+:option:`accept` and :option:`expect` in the example above. Together the
+commands make out the :program:`gie` command language. Any line in a
+:program:`gie` file that does not start with a command is ignored. In the
+example above it is seen how this can be used to add comments and styling to
+:program:`gie` test files in order to make them more readable as well as
+documenting what the purpose of the various tests are.
+
+Below the :ref:`gie_commands` is explained in details.
+
+Examples
+*********
+
+1. Run all tests in a file with all debug information turned on
+
+.. code-block:: console
+
+ gie -vvvv corner-cases.gie
+
+2. Run all tests in several files
+
+.. code-block:: console
+
+ gie foo bar
+
+.. _gie_commands:
+
+gie command language
+********************
+
+
+.. option:: operation <+args>
+
+ Define a PROJ operation to test. Example:
+
+ .. code-block:: console
+
+ operation proj=utm zone=32 ellps=GRS80
+ # test 4D function
+ accept 12 55 0 0
+ expect 691875.63214 6098907.82501 0 0
+
+ # test 2D function
+ accept 12 56
+ expect 687071.4391 6210141.3267
+
+.. option:: accept <x y [z [t]]>
+
+ Define the input coordinate to read. Takes test coordinate. The coordinate
+ can be defined by either 2, 3 or 4 values, where the first two values are
+ the x- and y-components, the 3rd is the z-component and the 4th is the time
+ component. The number of components in the coordinate determines which
+ version of the operation is tested (2D, 3D or 4D). Many coordinates can be
+ accepted for one :option:`operation`. For each :option:`accept` an
+ accompanying :option:`expect` is needed.
+
+ Note that :program:`gie` accepts the underscore ("_") as a thousands
+ separator. It is not required (in fact, it is entirely ignored by the
+ input routine), but it significantly improves the readability of the very
+ long strings of numbers typically required in projected coordinates.
+
+
+ See :option:`operation` for an example.
+
+.. option:: expect <x y [z [t]]> | <error code>
+
+ Define the expected coordinate that will be returned from accepted
+ coordinate passed though an operation. The expected coordinate can be
+ defined by either 2, 3 or 4 components, similarly to :option:`accept`.
+ Many coordinates can be expected for one :option:`operation`. For each
+ :option:`expect` an accompanying :option:`accept` is needed.
+
+ See :option:`operation` for an example.
+
+ In addition to expecting a coordinate it is also possible to expect a
+ PROJ error code in case an operation can't be created. This is useful when
+ testing that errors are caught and handled correctly. Below is an example of
+ that tests that the pipeline operator fails correctly when a non-invertable
+ pipeline is constructed.
+
+ .. code-block:: console
+
+ operation proj=pipeline step
+ proj=urm5 n=0.5 inv
+ expect failure pjd_err_malformed_pipeline
+
+ See ``gie -l`` for a list of error codes that can be expected.
+
+.. option:: tolerance <tolerance>
+
+ The :option:`tolerance` command controls how much accepted coordinates
+ can deviate from the expected coordinate. This is handy to test that an
+ operation meets a certain numerical tolerance threshold. Some operations
+ are expexted to be accurate within milimeters where others might only be
+ accurate within a few meters. :option:`tolerance` should
+
+ .. code-block:: console
+
+ operation proj=merc
+ # test coordinate as returned by ```echo 12 55 | proj +proj=merc``
+ tolerance 1 cm
+ accept 12 55
+ expect 1335833.89 7326837.72
+
+ # test that the same coordinate with a 50 m false easting as determined
+ # by ``echo 12 55 |proj +proj=merc +x_0=50`` is still within a 100 m
+ # tolerance of the unaltered coordinate from proj=merc
+ tolerance 100 m
+ accept 12 55
+ expect 1335883.89 7326837.72
+
+ The default tolerance is 0.5 mm. See :option:`proj -lu` for a list of possible
+ units.
+
+.. option:: roundtrip <n> <tolerance>
+
+ Do a roundtrip test of an operation. :option:`roundtrip` needs a
+ :option:`operation` and a :option:`accept` command
+ to function. The accepted coordinate is passed to the operation first in
+ it's forward mode, then the output from the forward operation is passed
+ back to the inverse operation. This procedure is done ``n`` times. If the
+ resulting coordinate is within the set tolerance of the initial coordinate
+ the test is passed.
+
+ Example:
+
+ operation proj=merc
+ accept 12 55
+ roundtrip 10000 5 mm
+
+
+.. option:: direction <direction>
+
+ The :option:`direction` command specifies in which direction an operation
+ is performed. This can either be ``forward`` or ``inverse``. An example of
+ this is seen below where it is tested that a symmetrical transformation
+ pipeline returns the same results in both directions.
+
+ .. code-block:: console
+
+ operation proj=pipeline zone=32 step
+ proj=utm ellps=GRS80 step
+ proj=utm ellps=GRS80 inv
+ tolerance 0.1 mm
+
+ accept 12 55 0 0
+ expect 12 55 0 0
+
+ # Now the inverse direction (still same result: the pipeline is symmetrical)
+
+ direction inverse
+ expect 12 55 0 0
+
+ The default direction is "forward".
+
+.. option:: ignore <error code>
+
+ This is especially
+ useful in test cases that rely on a grid that is not guaranteed to be
+ available. Below is an example of that situation.
+
+ .. code-block:: console
+
+ operation proj=hgridshift +grids=nzgd2kgrid0005.gsb ellps=GRS80
+ tolerance 1 mm
+ ignore pjd_err_failed_to_load_grid
+ accept 172.999892181021551 -45.001620431954613
+ expect 173 -45
+
+
+ See ``gie -l`` for a list of error codes that can be ignored.
+
+
+Background
+**********
+
+More importantly than being an acronym for "Geospatial Integrity Investigation
+Environment", gie were also the initials, user id, and USGS email address of
+Gerald Ian Evenden (1935--2016), the geospatial visionary, who, already in the
+1980s, started what was to become the PROJ of today.
+
+Gerald's clear vision was that map projections are *just special functions*.
+Some of them rather complex, most of them of two variables, but all of them
+*just special functions*, and not particularly more special than the :c:func:`sin()`,
+:c:func:`cos()`, :c:func:`tan()`, and :c:func:`hypot()` already available in the C standard library.
+
+And hence, according to Gerald, *they should not be particularly much harder
+to use*, for a programmer, than the :c:func:`sin()`'s, :c:func:`tan()`'s and
+:c:func:`hypot()`'s so readily available.
+
+Gerald's ingenuity also showed in the implementation of the vision, where
+he devised a comprehensive, yet simple, system of key-value pairs for
+parameterising a map projection, and the highly flexible PJ struct, storing
+run-time compiled versions of those key-value pairs, hence mak- ing a map
+projection function call, pj_fwd(PJ, point), as easy as a traditional function
+call like ``hypot(x,y)``.
+
+While today, we may have more formally well defined metadata systems (most
+prominent the OGC WKT2 representation), nothing comes close being as easily
+readable ("human compatible") as Gerald's key-value system. This system in
+particular, and the PROJ system in general, was Gerald's great gift to anyone
+using and/or communicating about geodata.
+
+It is only reasonable to name a program, keeping an eye on the
+integrity of the PROJ system, in honour of Gerald.
+
+So in honour, and hopefully also in the spirit, of Gerald Ian Evenden
+(1935--2016), this is the Geospatial Integrity Investigation Environment.
+
+
+.. only:: man
+
+ See also
+ ********
+
+ **proj(1)**, **cs2cs(1)**, **cct(1)**, **geod(1)**
+
+ Bugs
+ ****
+
+ A list of know bugs can be found at http://github.com/OSGeo/proj.4/issues
+ where new bug reports can be submitted to.
+
+ Home page
+ *********
+
+ http://proj4.org/
diff --git a/docs/source/apps/index.rst b/docs/source/apps/index.rst
new file mode 100644
index 00000000..91f5c4ff
--- /dev/null
+++ b/docs/source/apps/index.rst
@@ -0,0 +1,22 @@
+.. _apps:
+
+================================================================================
+Applications
+================================================================================
+
+Bundled with PROJ comes a set of small command line utilities. The ``proj``
+program is limited to converting between geographic and projection coordinates
+within one datum. The ``cs2cs`` program operates similarly, but allows
+translation between any pair of definable coordinate systems, including support
+for basic datum translation. The ``geod`` program provides the ability to do
+geodesic (great circle) computations. ``gie`` is the program used for
+regression tests in PROJ.
+
+.. toctree::
+ :maxdepth: 1
+
+ proj
+ cct
+ cs2cs
+ geod
+ gie
diff --git a/docs/source/apps/proj.rst b/docs/source/apps/proj.rst
new file mode 100644
index 00000000..dee4ea89
--- /dev/null
+++ b/docs/source/apps/proj.rst
@@ -0,0 +1,236 @@
+.. _proj:
+
+================================================================================
+proj
+================================================================================
+
+.. only:: html
+
+ Cartographic projection filter.
+
+.. Index:: proj
+
+Synopsis
+********
+ **proj** [ **-bceEfiIlmorsStTvVwW** ] [ args ] ] [ *+args* ] file[s]
+
+ **invproj** [ **-bceEfiIlmorsStTwW** ] [ args ] ] [ *+args* ] file[s]
+
+
+Description
+***********
+:program:`proj` and :program:`invproj` perform respective forward and inverse
+transformation of cartographic data to or from cartesian data with a wide
+range of selectable projection functions.
+
+:program:`invproj` may not be available on all platforms; in this case
+use :option:`proj -I` instead.
+
+The following control parameters can appear in any order
+
+.. program:: proj
+
+.. option:: -b
+
+ Special option for binary coordinate data input and output through standard
+ input and standard output. Data is assumed to be in system type double
+ floating point words. This option is to be used when proj is a son process
+ and allows bypassing formatting operations.
+
+.. option:: -i
+
+ Selects binary input only (see :option:`-b`).
+
+.. option:: -I
+
+ alternate method to specify inverse projection. Redundant when used with
+ invproj.
+
+.. option:: -o
+
+ Selects binary output only (see :option:`-b`).
+
+.. option:: -t<a>
+
+ *a* specifies a character employed as the first character to denote a
+ control line to be passed through without processing. This option
+ applicable to ascii input only. (# is the default value).
+
+.. option:: -e <string>
+
+ String is an arbitrary string to be output if an error is detected during
+ data transformations. The default value is: *\t*. Note that if the
+ :option:`-b`, :option:`-i` or :option:`-o` options are employed, an error
+ is returned as HUGE_VAL value for both return values.
+
+.. option:: -E
+
+ causes the input coordinates to be copied to the output line prior to
+ printing the converted values.
+
+.. option:: -l<[=id]>
+
+ List projection identifiers that can be selected with *+proj*. ``proj -l=id``
+ gives expanded description of projection id, e.g. ``proj -l=merc``.
+
+.. option:: -lp
+
+ List of all projection id that can be used with the *+proj* parameter.
+ Equivalent to ``proj -l``.
+
+.. option:: -lP
+
+ Expanded description of all projections that can be used with the *+proj*
+ parameter.
+
+.. option:: -le
+
+ List of all ellipsoids that can be selected with the *+ellps* parameters.
+
+.. option:: -lu
+
+ List of all distance units that can be selected with the *+units* parameter.
+
+.. option:: -ld
+
+ List of datums that can be selected with the *+datum* parameter.
+
+
+.. option:: -r
+
+ This options reverses the order of the expected input from
+ longitude-latitude or x-y to latitude-longitude or y-x.
+
+.. option:: -s
+
+ This options reverses the order of the output from x-y or longitude-latitude
+ to y-x or latitude-longitude.
+
+.. option:: -S
+
+ Causes estimation of meridional and parallel scale factors, area scale
+ factor and angular distortion, and maximum and minimum scale factors to be
+ listed between <> for each input point. For conformal projections meridional
+ and parallel scales factors will be equal and angular distortion zero. Equal
+ area projections will have an area factor of 1.
+
+.. option:: -m <mult>
+
+ The cartesian data may be scaled by the mult parameter. When processing data
+ in a forward projection mode the cartesian output values are multiplied by
+ mult otherwise the input cartesian values are divided by mult before inverse
+ projection. If the first two characters of mult are 1/ or 1: then the
+ reciprocal value of mult is employed.
+
+.. option:: -f <format>
+
+ Format is a printf format string to control the form of the output values.
+ For inverse projections, the output will be in degrees when this option is
+ employed. The default format is "%.2f" for forward projection and DMS for
+ inverse.
+
+.. option:: -[w|W]<n>
+
+ N is the number of significant fractional digits to employ for seconds
+ output (when the option is not specified, ``-w3`` is assumed). When ``-W``
+ is employed the fields will be constant width and with leading zeroes.
+
+.. option:: -v
+
+ causes a listing of cartographic control parameters tested for and used by
+ the program to be printed prior to input data. Should not be used with the
+ :option:`-T` option.
+
+.. option:: -V
+
+ This option causes an expanded annotated listing of the characteristics of
+ the projected point. :option:`-v` is implied with this option.
+
+.. option:: -T <ulow,uhi,vlow,vhi,res[,umax,vmax]>
+
+ This option creates a set of bivariate Chebyshev polynomial coefficients
+ that approximate the selected cartographic projection on stdout. The values
+ low and hi denote the range of the input where the u or v prefixes apply to
+ respective longitude-x or latitude-y depending upon whether a forward or
+ inverse projection is selected. Res is an integer number specifying the
+ power of 10 precision of the approximation. For example, a res of -3
+ specifies an approximation with an accuracy better than .001. Umax, and vmax
+ specify maximum degree of the polynomials (default: 15).
+
+
+
+The *+args* run-line arguments are associated with cartographic parameters.
+Additional projection control parameters may be contained in two auxiliary
+control files: the first is optionally referenced with the
+*+init=file:id* and the second is always processed after the name of the
+projection has been established from either the run-line or the contents of
++init file. The environment parameter :envvar:`PROJ_LIB` establishes the
+default directory for a file reference without an absolute path. This is
+also used for supporting files like datum shift files.
+
+.. only:: html
+
+ Usage of *+args* varies with projection and for a complete description
+ consult the :ref:`projection pages <projections>`.
+
+
+One or more files (processed in left to right order) specify the source of
+data to be transformed. A ``-`` will specify the location of processing standard
+input. If no files are specified, the input is assumed to be from stdin.
+For ASCII input data the two data values must be in the first two white space
+separated fields and when both input and output are ASCII all trailing
+portions of the input line are appended to the output line.
+
+Input geographic data (longitude and latitude) must be in DMS format and input
+cartesian data must be in units consistent with the ellipsoid major axis or
+sphere radius units. Output geographic coordinates will be in DMS (if the
+``-w`` switch is not employed) and precise to 0.001" with trailing, zero-valued
+minute-second fields deleted.
+
+Example
+*******
+The following script
+
+.. code-block:: console
+
+ proj +proj=utm +lon_0=112w +ellps=clrk66
+ -r <<EOF
+ 45d15'33.1" 111.5W
+ 45d15.551666667N -111d30
+ +45.25919444444 111d30'000w
+ EOF
+
+will perform UTM forward projection with a standard UTM central meridian
+nearest longitude 112W. The geographic values of this example are equivalent
+and meant as examples of various forms of DMS input. The x-y output
+data will appear as three lines of::
+
+ 460769.27 5011648.45
+
+.. only:: man
+
+ Other programs
+ **************
+
+ The :program:`proj` program is limited to converting between geographic and
+ projected coordinates within one datum.
+
+ The :program:`cs2cs` program operates similarly, but allows translation
+ between any paor of definable coordinate reference systems, including
+ support for datum translation.
+
+ See also
+ ********
+
+ **cs2cs(1)**, **cct(1)**, **geod(1)**, **gie(1)**
+
+ Bugs
+ ****
+
+ A list of know bugs can be found at http://github.com/OSGeo/proj.4/issues
+ where new bug reports can be submitted to.
+
+ Home page
+ *********
+
+ http://proj4.org/
diff --git a/docs/source/conf.py b/docs/source/conf.py
index af9d24da..a269a7d9 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -268,8 +268,41 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- (master_doc, 'proj4', u'PROJ.4 Documentation',
- [author], 1)
+ (
+ 'apps/proj',
+ 'proj',
+ u'Cartographic projection filter',
+ ['Gerald I. Evenden'],
+ 1
+ ),
+ (
+ 'apps/cs2cs',
+ 'cs2cs',
+ u'Cartographic coordinate system filter',
+ ['Frank Warmerdam'],
+ 1
+ ),
+ (
+ 'apps/cct',
+ 'cct',
+ u'Coordinate Conversion and Transformation',
+ ['Thomas Knudsen'],
+ 1
+ ),
+ (
+ 'apps/geod',
+ 'geod',
+ u'Geodesic computations',
+ ['Charles Karney'],
+ 1
+ ),
+ (
+ 'apps/gie',
+ 'gie',
+ u'The Geospatial Integrity Investigation Environment',
+ ['Thomas Knudsen'],
+ 1
+ ),
]
# If true, show URL addresses after external links.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 59bdad1f..3f02de3b 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -37,6 +37,7 @@ Documentation
download
install
usage/index
+ apps/index
operations/index
resource_files
geodesic
diff --git a/docs/source/resource_files.rst b/docs/source/resource_files.rst
index 7a961a1a..113653e5 100644
--- a/docs/source/resource_files.rst
+++ b/docs/source/resource_files.rst
@@ -342,6 +342,7 @@ See Also
model and program. Source for the HTDP program can be downloaded from here.
+.. _init_files:
Init files
-------------------------------------------------------------------------------
diff --git a/docs/source/usage/apps/cs2cs.rst b/docs/source/usage/apps/cs2cs.rst
deleted file mode 100644
index 675379ef..00000000
--- a/docs/source/usage/apps/cs2cs.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-.. _cs2cs:
-
-================================================================================
-cs2cs
-================================================================================
-
-
-``cs2cs`` performs transformation between the source and destination cartographic coordinate system
-on a set of input points. The coordinate system transformation can include translation between
-projected and geographic coordinates as well as the application of datum shifts.
-
-
-Synopsis
-********
-
-::
-
- cs2cs [ -eEfIlrstvwW [ args ] ] [ +opts[=arg] ] [ +to [+opts[=arg]] ] file[s]
-
-Description
-***********
-The following control parameters can appear in any order:
-
-::
-
- -I method to specify inverse translation, convert from +to coordinate system to the
- primary coordinate system defined.
-
- -ta A specifies a character employed as the first character to denote a control line
- to be passed through without processing. This option applicable to ascii input
- only. (# is the default value).
-
- -e string
- String is an arbitrary string to be output if an error is detected during data
- transformations. The default value is: *\t*. Note that if the -b, -i or -o
- options are employed, an error is returned as HUGE_VAL value for both
- return values.
-
- -E causes the input coordinates to be copied to the output line prior to printing the
- converted values.
-
- -l[p|P|=|e|u|d]id
- List projection identifiers with -l, -lp or -lP (expanded) that can be selected
- with +proj. -l=id gives expanded description of projection id. List
- ellipsoid identifiers with -le, that can be selected with +ellps,-lu list of
- cartesian to meter conversion factors that can be selected with +units or -ld
- list of datums that can be selected with +datum.
-
- -r This options reverses the order of the expected input from longitude-latitude or
- x-y to latitude-longitude or y-x.
-
- -s This options reverses the order of the output from x-y or longitude-latitude to
- y-x or latitude-longitude.
-
- -f format
- Format is a printf format string to control the form of the output values. For
- inverse projections, the output will be in degrees when this option is employed.
- If a format is specified for inverse projection the output data will be in deci-
- mal degrees. The default format is "%.2f" for forward projection and DMS for
- inverse.
-
- -[w|W]n
- N is the number of significant fractional digits to employ for seconds output (when
- the option is not specified, -w3 is assumed). When -W is employed the fields
- will be constant width and with leading zeroes.
-
- -v causes a listing of cartographic control parameters tested for and used by the
- program to be printed prior to input data.
-
-The ``+args`` run-line arguments are associated with cartographic parameters. Usage varies with
-projection and for a complete description consult the `projection pages <../projections/index.html>`_
-
-The cs2cs program requires two coordinate system
-definitions. The first (or primary is defined
-based on all projection parameters not appearing
-after the +to argument. All projection parameters
-appearing after the ``+to`` argument are considered
-the definition of the second coordinate
-system. If there is no second coordinate system
-defined, a geographic coordinate system based on
-the datum and ellipsoid of the source coordinate
-system is assumed. Note that the source and
-destination coordinate system can both be projections,
-both be geographic, or one of each and
-may have the same or different datums.
-
-Additional projection control parameters may be
-contained in two auxiliary control files: the
-first is optionally referenced with the
-``+init=file:id`` and the second is always processed
-after the name of the projection has been established
-from either the run-line or the contents
-of ``+init`` file. The environment parameter
-PROJ_LIB establishes the default directory for a
-file reference without an absolute path. This
-is also used for supporting files like datum
-shift files.
-
-One or more files (processed in left to right
-order) specify the source of data to be transformed.
-A - will specify the location of processing standard input.
-If no files are specified, the input is assumed to be from stdin.
-For input data the two data values must be in
-the first two white space separated fields and
-when both input and output are ASCII all trailing
-portions of the input line are appended to
-the output line.
-
-Input geographic data (longitude and latitude)
-must be in DMS or decimal degrees format and
-input cartesian data must be in units consistent
-with the ellipsoid major axis or sphere radius
-units. Output geographic coordinates will normally
-be in DMS format (use ``-f %.12f`` for decimal
-degrees with 12 decimal places), while projected
-(cartesian) coordinates will be in linear
-(meter, feet) units.
-
-
-Example
-*******
-The following script
-
-::
-
- cs2cs +proj=latlong +datum=NAD83
- +to +proj=utm +zone=10 +datum=NAD27
- -r <<EOF
- 45d15'33.1" 111.5W
- 45d15.551666667N -111d30
- +45.25919444444 111d30'000w
- EOF
-
-will transform the input NAD83 geographic coordinates into NAD27
-coordinates in the UTM projection with zone 10 selected. The geographic
-values of this example are equivalent and meant as examples of various forms of DMS input.
-The x-y output data will appear as three lines of:
-
-::
-
- 1402285.99 5076292.42 0.000
-
-
diff --git a/docs/source/usage/apps/geod.rst b/docs/source/usage/apps/geod.rst
deleted file mode 100644
index e7056121..00000000
--- a/docs/source/usage/apps/geod.rst
+++ /dev/null
@@ -1,168 +0,0 @@
-.. _geod:
-
-================================================================================
-geod
-================================================================================
-
-``geod`` (direct) and ``invgeod`` (inverse) perform geodesic ("Great
-Circle") computations for determining latitude, longitude and
-back azimuth of a terminus point given a initial point latitude,
-longitude, azimuth and distance (direct) or the forward
-and back azimuths and distance between an initial and terminus
-point latitudes and longitudes (inverse). The results are
-accurate to round off for :math:`|f| < 1/50`, where f is flattening.
-
-
-``invgeod`` may not be available on all platforms; in this case
-call geod with the -I option.
-
-
-
-Synopsis
-********
-
-::
-
- geod +ellps=<ellipse> [ -afFIlptwW [ args ] ] [ +args ] file[s]
-
- invgeod +ellps=<ellipse> [ -afFIlptwW [ args ] ] [ +args ] file[s]
-
-Description
-***********
-The following command-line options can appear in any order:
-
-::
-
- -I Specifies that the inverse geodesic computation is to be
- performed. May be used with execution of geod as an
- alternative to invgeod execution.
-
- -a Latitude and longitudes of the initial and terminal
- points, forward and back azimuths and distance are output.
-
- -ta A specifies a character employed as the first character
- to denote a control line to be passed through without
- processing.
-
- -le Gives a listing of all the ellipsoids that may be
- selected with the +ellps= option.
-
- -lu Gives a listing of all the units that may be selected
- with the +units= option.
-
- -[f|F] format
- Format is a printf format string to control the output
- form of the geographic coordinate values (f) or distance
- value (F). The default mode is DMS for geographic
- coordinates and "%.3f" for distance.
-
- -[w|W]n
- N is the number of significant fractional digits to
- employ for seconds output (when the option is not
- specified, -w3 is assumed). When -W is employed the fields
- will be constant width with leading zeroes.
-
- -p This option causes the azimuthal values to be output as
- unsigned DMS numbers between 0 and 360 degrees. Also
- note -f.
-
-The ``+args`` command-line options are associated with geodetic
-parameters for specifying the ellipsoidal or sphere to use.
-See ``proj`` `documentation <proj.html>`_ for full list of these parameters and
-controls. The options are processed in left to right order
-from the command line. Reentry of an option is ignored with
-the first occurrence assumed to be the desired value.
-
-One or more files (processed in left to right order) specify
-the source of data to be transformed. A - will specify the
-location of processing standard input. If no files are specified,
-the input is assumed to be from stdin.
-
-For direct determinations input data must be in latitude, longitude,
-azimuth and distance order and output will be latitude,
-longitude and back azimuth of the terminus point. Latitude,
-longitude of the initial and terminus point are input for the
-inverse mode and respective forward and back azimuth from the
-initial and terminus points are output along with the distance
-between the points.
-
-Input geographic coordinates (latitude and longitude) and
-azimuthal data must be in decimal degrees or DMS format and
-input distance data must be in units consistent with the ellipsoid
-major axis or sphere radius units. The latitude must lie
-in the range [-90d,90d]. Output geographic coordinates will be
-in DMS (if the -f switch is not employed) to 0.001" with trailing,
-zero-valued minute-second fields deleted. Output distance
-data will be in the same units as the ellipsoid or sphere
-radius.
-
-The Earth's ellipsoidal figure may be selected in the same manner
-as program ``proj`` by using ``+ellps=``, ``+a=``, ``+es=``, etc.
-
-Geod may also be used to determine intermediate points along
-either a geodesic line between two points or along an arc of
-specified distance from a geographic point. In both cases an
-initial point must be specified with ``+lat_1=lat`` and ``+lon_1=lon``
-parameters and either a terminus point ``+lat_2=lat`` and
-``+lon_2=lon`` or a distance and azimuth from the initial point
-with ``+S=distance`` and ``+A=azimuth`` must be specified.
-
-If points along a geodesic are to be determined then either
-``+n_S=integer`` specifying the number of intermediate points
-and/or ``+del_S=distance`` specifying the incremental distance
-between points must be specified.
-
-To determine points along an arc equidistant from the initial
-point both ``+del_A=angle`` and ``+n_A=integer`` must be specified
-which determine the respective angular increments and number of
-points to be determined.
-
-Examples
-********
-
-The following script determines the geodesic azimuths and distance in U.S.
-statute miles from Boston, MA, to Portland, OR:
-
-::
-
- geod +ellps=clrk66 <<EOF -I +units=us-mi
- 42d15'N 71d07'W 45d31'N 123d41'W
- EOF
-
-which gives the results:
-
-::
-
- -66d31'50.141" 75d39'13.083" 2587.504
-
-where the first two values are the azimuth from Boston to Portland,
-the back azimuth from Portland to Boston followed by the distance.
-
-An example of forward geodesic use is to use the Boston location
-and determine Portland's location by azimuth and distance:
-
-::
-
- geod +ellps=clrk66 <<EOF +units=us-mi
- 42d15'N 71d07'W -66d31'50.141" 2587.504
- EOF
-
-which gives:
-
-::
-
- 45d31'0.003"N 123d40'59.985"W 75d39'13.094"
-
-.. note::
- Lack of precision in the distance value compromises the
- precision of the Portland location.
-
-Further reading
-***************
-
-#. `GeographicLib <https://geographiclib.sourceforge.io>`_.
-
-#. C. F. F. Karney, `Algorithms for Geodesics <https://doi.org/10.1007/s00190-012-0578-z>`_, J. Geodesy **87**\ (1), 43–55 (2013);
- `addenda <https://geographiclib.sourceforge.io/geod-addenda.html>`_.
-
-#. `A geodesic bibliography <https://geographiclib.sourceforge.io/geodesic-papers/biblio.html>`_.
diff --git a/docs/source/usage/apps/index.rst b/docs/source/usage/apps/index.rst
deleted file mode 100644
index 5ee58248..00000000
--- a/docs/source/usage/apps/index.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _apps:
-
-================================================================================
-Applications
-================================================================================
-
-Bundled with PROJ comes a set of small command line utilities. The
-``proj`` program is limited to converting between geographic and projection
-coordinates within one datum. The ``cs2cs`` program operates similarly, but
-allows translation between any pair of definable coordinate systems, including
-support for basic datum translation. The ``geod`` program provides the ability
-to do geodesic (great circle) computations.
-
-.. toctree::
- :maxdepth: 1
-
- proj
- cct
- cs2cs
- geod
-
diff --git a/docs/source/usage/apps/proj.rst b/docs/source/usage/apps/proj.rst
deleted file mode 100644
index 6227047f..00000000
--- a/docs/source/usage/apps/proj.rst
+++ /dev/null
@@ -1,164 +0,0 @@
-.. _proj:
-
-================================================================================
-proj
-================================================================================
-
-
-.. Index:: proj
-
-``proj`` and ``invproj`` perform respective forward and inverse transformation of cartographic data to
-or from cartesian data with a wide range of selectable projection functions.
-
-
-Synopsis
-********
-::
-
- proj [ -bcCeEfiIlmorsStTvVwW [ args ] ] [ +args ] file[s]
- invproj [ -bcCeEfiIlmorsStTwW [ args ] ] [ +args ] file[s]
-
-
-Description
-***********
-The following control parameters can appear in any order
-
-::
-
- -b Special option for binary coordinate data input and output through standard input
- and standard output. Data is assumed to be in system type double floating point
- words. This option is to be used when proj is a son process and allows bypassing
- formatting operations.
-
- -i Selects binary input only (see -b option).
-
- -C Check. Invoke all built in self tests and report. Get more verbose report by
- preceding with the -V option).
-
- -I alternate method to specify inverse projection. Redundant when used with invproj.
-
- -o Selects binary output only (see -b option).
-
- -ta A specifies a character employed as the first character to denote a control line
- to be passed through without processing. This option applicable to ascii input
- only. (# is the default value).
-
- -e string
- String is an arbitrary string to be output if an error is detected during data
- transformations. The default value is: *\t*. Note that if the -b, -i or -o
- options are employed, an error is returned as HUGE_VAL value for both return values.
-
- -E causes the input coordinates to be copied to the output line prior to printing the
- converted values.
-
-
- -l[p|P|=|e|u|d]id
- List projection identifiers with -l, -lp or -lP (expanded) that can be selected
- with +proj. -l=id gives expanded description of projection id. List
- ellipsoid identifiers with -le, that can be selected with +ellps, -lu list of
- cartesian to meter conversion factors that can be selected with +units or -ld
- list of datums that can be selected with +datum.
-
- -r This options reverses the order of the expected input from longitude-latitude or
- x-y to latitude-longitude or y-x.
-
- -s This options reverses the order of the output from x-y or longitude-latitude to
- y-x or latitude-longitude.
-
- -S Causes estimation of meridional and parallel scale factors, area scale factor and
- angular distortion, and maximum and minimum scale factors to be listed between <>
- for each input point. For conformal projections meridional and parallel scales
- factors will be equal and angular distortion zero. Equal area projections will
- have an area factor of 1.
-
- -m mult
- The cartesian data may be scaled by the mult parameter. When processing data in
- a forward projection mode the cartesian output values are multiplied by mult
- otherwise the input cartesian values are divided by mult before inverse projection.
- If the first two characters of mult are 1/ or 1: then the reciprocal value of mult
- is employed.
-
- -f format
- Format is a printf format string to control the form of the output values. For
- inverse projections, the output will be in degrees when this option is employed.
- The default format is "%.2f" for forward projection and DMS for inverse.
-
- -[w|W]n
- N is the number of significant fractional digits to employ for seconds output (when
- the option is not specified, -w3 is assumed). When -W is employed the fields
- will be constant width and with leading zeroes.
-
- -v causes a listing of cartographic control parameters tested for and used by the
- program to be printed prior to input data. Should not be used with the -T
- option.
-
- -V This option causes an expanded annotated listing of the characteristics of the
- projected point. -v is implied with this option.
-
- -T ulow,uhi,vlow,vhi,res[,umax,vmax]
- This option creates a set of bivariate Chebyshev polynomial coefficients that
- approximate the selected cartographic projection on stdout. The values low and
- hi denote the range of the input where the u or v prefixes apply to respective
- longitude-x or latitude-y depending upon whether a forward or inverse projection
- is selected. Res is an integer number specifying the power of 10 precision of
- the approximation. For example, a res of -3 specifies an approximation with an
- accuracy better than .001. Umax, and vmax specify maximum degree of the polynomials
- (default: 15).
-
-
-The ``+args`` run-line arguments are associated with cartographic parameters. Usage varies with
-projection and for a complete description consult the `projection pages <../projections/index.html>`_
-
-Additional projection control parameters may be
-contained in two auxiliary control files: the
-first is optionally referenced with the
-``+init=file:id`` and the second is always processed
-after the name of the projection has been established
-from either the run-line or the contents
-of +init file. The environment parameter
-``PROJ_LIB`` establishes the default directory for a
-file reference without an absolute path. This
-is also used for supporting files like datum
-shift files.
-
-One or more files (processed in left to right
-order) specify the source of data to be transformed.
-A - will specify the location of processing
-standard input. If no files are specified,
-the input is assumed to be from stdin.
-For ASCII input data the two data values must be
-in the first two white space separated fields
-and when both input and output are ASCII all
-trailing portions of the input line are appended
-to the output line.
-
-Input geographic data (longitude and latitude)
-must be in DMS format and input cartesian data
-must be in units consistent with the ellipsoid
-major axis or sphere radius units. Output
-geographic coordinates will be in DMS (if the -w
-switch is not employed) and precise to 0.001"
-with trailing, zero-valued minute-second fields
-deleted.
-
-Example
-*******
-The following script
-
-::
-
- proj +proj=utm +lon_0=112w +ellps=clrk66
- -r <<EOF
- 45d15'33.1" 111.5W
- 45d15.551666667N -111d30
- +45.25919444444 111d30'000w
- EOF
-
-will perform UTM forward projection with a standard
-UTM central meridian nearest longitude
-112W. The geographic values of this example are
-equivalent and meant as examples of various
-forms of DMS input. The x-y output data will
-appear as three lines of::
-
- 460769.27 5011648.45
diff --git a/docs/source/usage/index.rst b/docs/source/usage/index.rst
index 163aa374..7de0e147 100644
--- a/docs/source/usage/index.rst
+++ b/docs/source/usage/index.rst
@@ -13,7 +13,6 @@ command line applications or the C API that is a part of the software package.
:maxdepth: 1
quickstart
- apps/index
projections
transformation
environmentvars