diff options
| author | PROJ deploybot <proj.bot@proj.bot> | 2022-03-22 20:00:06 +0000 |
|---|---|---|
| committer | PROJ deploybot <proj.bot@proj.bot> | 2022-03-22 20:00:06 +0000 |
| commit | a3f43744feec86272fe532124679d3a013ef9a8c (patch) | |
| tree | 27e4198db6011e3097eb7bcfe7197684aba7583a /resource_files.html | |
| download | PROJ-gh-pages.tar.gz PROJ-gh-pages.zip | |
update with results of commit https://github.com/OSGeo/PROJ/commit/53c07a8bd211b7aee4bc07a9c6726005504b7181gh-pages
Diffstat (limited to 'resource_files.html')
| -rw-r--r-- | resource_files.html | 604 |
1 files changed, 604 insertions, 0 deletions
diff --git a/resource_files.html b/resource_files.html new file mode 100644 index 00000000..924afc16 --- /dev/null +++ b/resource_files.html @@ -0,0 +1,604 @@ +<!DOCTYPE html> +<html class="writer-html5" lang="en" > +<head> + <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Resource files — PROJ 9.0.0 documentation</title> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> + <link rel="shortcut icon" href="_static/favicon.png"/> + <link rel="canonical" href="https://proj.orgresource_files.html"/> + <!--[if lt IE 9]> + <script src="_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> + <script src="_static/jquery.js"></script> + <script src="_static/underscore.js"></script> + <script src="_static/doctools.js"></script> + <script src="_static/js/theme.js"></script> + <link rel="author" title="About these documents" href="about.html" /> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="Geodesic calculations" href="geodesic.html" /> + <link rel="prev" title="Computation of coordinate operations between two CRS" href="operations/operations_computation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" style="background: #353130" > + <a href="index.html"> + <img src="_static/logo.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 9.0.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="about.html">About</a></li> +<li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li> +<li class="toctree-l1"><a class="reference internal" href="download.html">Download</a></li> +<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li> +<li class="toctree-l1"><a class="reference internal" href="usage/index.html">Using PROJ</a></li> +<li class="toctree-l1"><a class="reference internal" href="apps/index.html">Applications</a></li> +<li class="toctree-l1"><a class="reference internal" href="operations/index.html">Coordinate operations</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Resource files</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#where-are-proj-resource-files-looked-for">Where are PROJ resource files looked for ?</a></li> +<li class="toctree-l2"><a class="reference internal" href="#proj-db"><code class="file docutils literal notranslate"><span class="pre">proj.db</span></code></a></li> +<li class="toctree-l2"><a class="reference internal" href="#proj-ini"><code class="file docutils literal notranslate"><span class="pre">proj.ini</span></code></a></li> +<li class="toctree-l2"><a class="reference internal" href="#transformation-grids">Transformation grids</a></li> +<li class="toctree-l2"><a class="reference internal" href="#external-resources-and-packaged-grids">External resources and packaged grids</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#proj-data">proj-data</a></li> +<li class="toctree-l3"><a class="reference internal" href="#proj-datumgrid">proj-datumgrid</a></li> +<li class="toctree-l3"><a class="reference internal" href="#regional-packages">Regional packages</a></li> +<li class="toctree-l3"><a class="reference internal" href="#world-package">World package</a></li> +<li class="toctree-l3"><a class="reference internal" href="#latest-packages">-latest packages</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="#other-transformation-grids">Other transformation grids</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#free-grids">Free grids</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#hungary">Hungary</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#non-free-grids">Non-Free Grids</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#austria">Austria</a></li> +<li class="toctree-l4"><a class="reference internal" href="#brazil">Brazil</a></li> +<li class="toctree-l4"><a class="reference internal" href="#netherlands">Netherlands</a></li> +<li class="toctree-l4"><a class="reference internal" href="#portugal">Portugal</a></li> +<li class="toctree-l4"><a class="reference internal" href="#south-africa">South Africa</a></li> +<li class="toctree-l4"><a class="reference internal" href="#spain">Spain</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#htdp">HTDP</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#getting-and-building-htdp">Getting and building HTDP</a></li> +<li class="toctree-l4"><a class="reference internal" href="#getting-crs2crs2grid-py">Getting <code class="file docutils literal notranslate"><span class="pre">crs2crs2grid.py</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li> +<li class="toctree-l4"><a class="reference internal" href="#see-also">See Also</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="#init-files">Init files</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="geodesic.html">Geodesic calculations</a></li> +<li class="toctree-l1"><a class="reference internal" href="development/index.html">Development</a></li> +<li class="toctree-l1"><a class="reference internal" href="specifications/index.html">Specifications</a></li> +<li class="toctree-l1"><a class="reference internal" href="community/index.html">Community</a></li> +<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li> +<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="zreferences.html">References</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #353130" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">PROJ</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="index.html" class="icon icon-home"></a> »</li> + <li>Resource files</li> + <li class="wy-breadcrumbs-aside"> + <a href="https://github.com/OSGeo/PROJ/edit/8.2/docs/source/resource_files.rst" class="fa fa-github"> Edit on GitHub</a> + </li> + </ul><div class="rst-breadcrumbs-buttons" role="navigation" aria-label="Sequential page navigation"> + <a href="operations/operations_computation.html" class="btn btn-neutral float-left" title="Computation of coordinate operations between two CRS" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="geodesic.html" class="btn btn-neutral float-right" title="Geodesic calculations" accesskey="n">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="resource-files"> +<span id="id1"></span><h1>Resource files<a class="headerlink" href="#resource-files" title="Permalink to this headline">¶</a></h1> +<p>A number of files containing preconfigured transformations and default parameters +for certain projections are bundled with the PROJ distribution. Init files +contain preconfigured proj-strings for various coordinate reference systems +and the <cite>defaults</cite> file contains default values for parameters of select +projections.</p> +<p>In addition to the bundled init files the PROJ project also distributes a number +of packages containing transformation grids and additional init files not included +in the main PROJ package.</p> +<section id="where-are-proj-resource-files-looked-for"> +<span id="resource-file-paths"></span><h2>Where are PROJ resource files looked for ?<a class="headerlink" href="#where-are-proj-resource-files-looked-for" title="Permalink to this headline">¶</a></h2> +<p>PROJ will attempt to locate its resource files - database, transformation grids +or init files - from several directories. +The following paths are checked in order:</p> +<ul class="simple"> +<li><p>For resource files that have an explicit relative or absolute path, +the directory specified in the filename.</p></li> +<li><p>Path resolved by the callback function set with +the <a class="reference internal" href="development/reference/functions.html#c.proj_context_set_file_finder" title="proj_context_set_file_finder"><code class="xref c c-func docutils literal notranslate"><span class="pre">proj_context_set_file_finder()</span></code></a>. If it is set, the next tests +will not be run.</p></li> +<li><p>Path(s) set with the <a class="reference internal" href="development/reference/functions.html#c.proj_context_set_search_paths" title="proj_context_set_search_paths"><code class="xref c c-func docutils literal notranslate"><span class="pre">proj_context_set_search_paths()</span></code></a>. If set, the +next tests will not be run.</p></li> +</ul> +<ul id="user-writable-directory"> +<li><div class="versionadded"> +<p><span class="versionmodified added">New in version 7.0.</span></p> +</div> +<p>The PROJ user writable directory, which is :</p> +<blockquote> +<div><ul class="simple"> +<li><p>on Windows, <code class="docutils literal notranslate"><span class="pre">${LOCALAPPDATA}/proj</span></code></p></li> +<li><p>on macOS, <code class="docutils literal notranslate"><span class="pre">${HOME}/Library/Application</span> <span class="pre">Support/proj</span></code></p></li> +<li><p>on other platforms (Linux), <code class="docutils literal notranslate"><span class="pre">${XDG_DATA_HOME}/proj</span></code> if +<span class="target" id="index-0"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">XDG_DATA_HOME</span></code> is defined. Else <code class="docutils literal notranslate"><span class="pre">${HOME}/.local/share/proj</span></code></p></li> +</ul> +</div></blockquote> +</li> +<li><p>Path(s) set with by the environment variable <span class="target" id="index-1"></span><a class="reference internal" href="usage/environmentvars.html#envvar-PROJ_LIB"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROJ_LIB</span></code></a>. +On Linux/macOS/Unix, use <code class="docutils literal notranslate"><span class="pre">:</span></code> to separate paths. On Windows, <code class="docutils literal notranslate"><span class="pre">;</span></code></p></li> +<li><div class="versionadded"> +<p><span class="versionmodified added">New in version 7.0.</span></p> +</div> +<p>The <code class="file docutils literal notranslate"><span class="pre">../share/proj/</span></code> and its contents are found automatically +at run-time if the installation respects the build structure. That is, the +binaries and <code class="file docutils literal notranslate"><span class="pre">proj.dll</span></code>/<code class="file docutils literal notranslate"><span class="pre">libproj.so</span></code> are installed under +<code class="file docutils literal notranslate"><span class="pre">../bin/</span></code> or <code class="file docutils literal notranslate"><span class="pre">../lib/</span></code>, and resource files are in +<code class="file docutils literal notranslate"><span class="pre">../share/proj/</span></code>.</p> +</li> +<li><p>A path built into PROJ as its resource installation directory (whose value is +<code class="docutils literal notranslate"><span class="pre">$(pkgdatadir)</span></code> for builds using the Makefile build system or +<code class="docutils literal notranslate"><span class="pre">${CMAKE_INSTALL_PREFIX}/${DATADIR}</span></code> for CMake builds). Note, however, +that since this is a hard-wired path setting, it only works if the whole +PROJ installation is not moved somewhere else.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If PROJ is built with the <code class="docutils literal notranslate"><span class="pre">PROJ_LIB_ENV_VAR_TRIED_LAST</span></code> CMake option +then this hard-wired path will be tried before looking at the environment +variable <span class="target" id="index-2"></span><a class="reference internal" href="usage/environmentvars.html#envvar-PROJ_LIB"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROJ_LIB</span></code></a>.</p> +</div> +</li> +<li><p>The current directory</p></li> +</ul> +<p>When networking capabilities are enabled, either by API with the +<a class="reference internal" href="development/reference/functions.html#c.proj_context_set_enable_network" title="proj_context_set_enable_network"><code class="xref c c-func docutils literal notranslate"><span class="pre">proj_context_set_enable_network()</span></code></a> function or when the +<span class="target" id="index-3"></span><a class="reference internal" href="usage/environmentvars.html#envvar-PROJ_NETWORK"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROJ_NETWORK</span></code></a> environment variable is set to <code class="docutils literal notranslate"><span class="pre">ON</span></code>, PROJ will +attempt to use remote grids stored on CDN (Content Delivery Network) storage.</p> +</section> +<section id="proj-db"> +<span id="id2"></span><h2><code class="file docutils literal notranslate"><span class="pre">proj.db</span></code><a class="headerlink" href="#proj-db" title="Permalink to this headline">¶</a></h2> +<p>A proj installation includes a SQLite database of transformation information +that must be accessible for the library to work properly. The library will +print an error if the database can’t be found.</p> +</section> +<section id="proj-ini"> +<span id="id3"></span><h2><code class="file docutils literal notranslate"><span class="pre">proj.ini</span></code><a class="headerlink" href="#proj-ini" title="Permalink to this headline">¶</a></h2> +<div class="versionadded"> +<p><span class="versionmodified added">New in version 7.0.</span></p> +</div> +<p><code class="file docutils literal notranslate"><span class="pre">proj.ini</span></code> is a text configuration file, mostly dedicated at setting up +network related parameters.</p> +<p>Its default content is:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>[general] +; Lines starting by ; are commented lines. +; + +; Network capabilities disabled by default. +; Can be overridden with the PROJ_NETWORK=ON environment variable. +; network = on + +; Can be overridden with the PROJ_NETWORK_ENDPOINT environment variable. +cdn_endpoint = https://cdn.proj.org + +cache_enabled = on + +cache_size_MB = 300 + +cache_ttl_sec = 86400 + +; Filename of the Certificate Authority (CA) bundle. +; Can be overriden with the PROJ_CURL_CA_BUNDLE / CURL_CA_BUNDLE environment variable. +; (added in PROJ 9.0) +; ca_bundle_path = /path/to/cabundle.pem + +; Transverse Mercator (and UTM) default algorithm: auto, evenden_snyder or poder_engsager +; * evenden_snyder is the fastest, but less accurate far from central meridian +; * poder_engsager is slower, but more accurate far from central meridian +; * default will auto-select between the two above depending on the coordinate +; to transform and will use evenden_snyder if the error in doing so is below +; 0.1 mm (for an ellipsoid of the size of Earth) +tmerc_default_algo = poder_engsager +</pre></div> +</div> +</section> +<section id="transformation-grids"> +<h2>Transformation grids<a class="headerlink" href="#transformation-grids" title="Permalink to this headline">¶</a></h2> +<p>Grid files are important for shifting and transforming between datums.</p> +<p>PROJ supports CTable2, NTv1 and NTv2 files for horizontal grid corrections and +the GTX file format for vertical corrections. Details about the formats can be +found in the <a class="reference external" href="http://gdal.org/">GDAL documentation</a>. GDAL reads and writes +all formats. Using GDAL for construction of new grids is recommended.</p> +</section> +<section id="external-resources-and-packaged-grids"> +<span id="datumgrid"></span><h2>External resources and packaged grids<a class="headerlink" href="#external-resources-and-packaged-grids" title="Permalink to this headline">¶</a></h2> +<section id="proj-data"> +<h3>proj-data<a class="headerlink" href="#proj-data" title="Permalink to this headline">¶</a></h3> +<p>The <code class="docutils literal notranslate"><span class="pre">proj-data</span></code> package is a collection of all the resource files that are +freely available for use with PROJ. The package is maintained on +<a class="reference external" href="https://github.com/OSGeo/PROJ-data">GitHub</a> and the contents of the package +are show-cased on the <a class="reference external" href="https://cdn.proj.org/">PROJ CDN</a>. The contents of the +package can be installed using the <strong class="program">projsync</strong> package or by downloading +the zip archive of the package and unpacking in the <span class="target" id="index-4"></span><a class="reference internal" href="usage/environmentvars.html#envvar-PROJ_LIB"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROJ_LIB</span></code></a> directory.</p> +</section> +<section id="proj-datumgrid"> +<h3>proj-datumgrid<a class="headerlink" href="#proj-datumgrid" title="Permalink to this headline">¶</a></h3> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The packages described below can be used with PROJ 7 and later but are +primarily meant to be used with PROJ 6 and earlier versions. +The <code class="docutils literal notranslate"><span class="pre">proj-datumgrid</span></code> series of packages are not maintained anymore and +are only kept available for legacy purposes.</p> +</div> +<p>For a functioning build of PROJ prior to version 7, installation of the +<a class="reference external" href="https://github.com/OSGeo/proj-datumgrid">proj-datumgrid</a> is needed. If you +have installed PROJ from a package system chances are that this will already be +done for you. The <em>proj-datumgrid</em> package provides transformation grids that +are essential for many of the predefined transformations in PROJ. Which grids +are included in the package can be seen on the +<a class="reference external" href="https://github.com/OSGeo/proj-datumgrid">proj-datumgrid repository</a> as well +as descriptions of those grids. This is the main grid package and the only one +that is required. It includes various older grids that is mostly needed for +legacy reasons. Without this package, the test suite fails miserably.</p> +</section> +<section id="regional-packages"> +<h3>Regional packages<a class="headerlink" href="#regional-packages" title="Permalink to this headline">¶</a></h3> +<p>In addition to the default <code class="docutils literal notranslate"><span class="pre">proj-datumgrid</span></code> package regional packages are also +distributed. These include grids and init files that are valid within the given +region. The packages are divided into geographical regions in order to keep the +needed disk space by PROJ at a minimum. Some users may have a use for resource +files covering several regions in which case they can download more than one.</p> +<p>At the moment three regional resource file packages are distributed:</p> +<ul class="simple"> +<li><p><a class="reference external" href="https://github.com/OSGeo/proj-datumgrid/tree/master/europe#proj-datumgrid-europe">Europe</a></p></li> +<li><p><a class="reference external" href="https://github.com/OSGeo/proj-datumgrid/tree/master/oceania#proj-datumgrid-oceania">Oceania</a></p></li> +<li><p><a class="reference external" href="https://github.com/OSGeo/proj-datumgrid/tree/master/north-america#proj-datumgrid-north-america">North America</a></p></li> +</ul> +<p>If someone supplies grids relevant for Africa, South-America, Asia or Antarctica +we will create new regional packages.</p> +<p>Click the links to jump to the relevant README files for each package. Details +on the content of the packages maintained there.</p> +<div class="admonition tip"> +<p class="admonition-title">Tip</p> +<p>To download the various datumgrid packages head to the <a class="reference internal" href="download.html#download"><span class="std std-ref">download section</span></a>.</p> +</div> +</section> +<section id="world-package"> +<h3>World package<a class="headerlink" href="#world-package" title="Permalink to this headline">¶</a></h3> +<p>The <a class="reference external" href="https://github.com/OSGeo/proj-datumgrid/tree/master/world#proj-datumgrid-world">world package</a> +includes grids that have global extent, e.g. the global geoid model EGM08.</p> +</section> +<section id="latest-packages"> +<h3>-latest packages<a class="headerlink" href="#latest-packages" title="Permalink to this headline">¶</a></h3> +<p>All packages above come in different versions, e.g., <code class="docutils literal notranslate"><span class="pre">proj-datumgrid-1.8</span></code> or +<code class="docutils literal notranslate"><span class="pre">proj-datumgrid-europe-1.4</span></code>. The <code class="docutils literal notranslate"><span class="pre">-latest</span></code> packages are symbolic links to the +latest version of a given package. That means that the link +<a class="reference external" href="https://download.osgeo.org/proj/proj-datumgrid-north-america-latest.zip">https://download.osgeo.org/proj/proj-datumgrid-north-america-latest.zip</a> is +equivalent to <a class="reference external" href="https://download.osgeo.org/proj/proj-datumgrid-north-america-1.2.zip">https://download.osgeo.org/proj/proj-datumgrid-north-america-1.2.zip</a> +(as of the time of writing this).</p> +</section> +</section> +<section id="other-transformation-grids"> +<span id="id6"></span><h2>Other transformation grids<a class="headerlink" href="#other-transformation-grids" title="Permalink to this headline">¶</a></h2> +<p>Below is a list of grid resources for various countries which are not +included in the grid distributions mentioned above.</p> +<section id="free-grids"> +<h3>Free grids<a class="headerlink" href="#free-grids" title="Permalink to this headline">¶</a></h3> +<p>The following is a list of grids distributed under a free and open license.</p> +<section id="hungary"> +<h4>Hungary<a class="headerlink" href="#hungary" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="https://github.com/OSGeoLabBp/eov2etrs/">Hungarian grid</a> ETRS89 - HD72/EOV (epsg:23700), both horizontal and elevation grids</p> +</section> +</section> +<section id="non-free-grids"> +<span id="nonfreegrids"></span><h3>Non-Free Grids<a class="headerlink" href="#non-free-grids" title="Permalink to this headline">¶</a></h3> +<p>Not all grid shift files have licensing that allows them to be freely +distributed, but can be obtained by users through free and legal methods.</p> +<section id="austria"> +<h4>Austria<a class="headerlink" href="#austria" title="Permalink to this headline">¶</a></h4> +<p>Overview of <a class="reference external" href="http://www.bev.gv.at/portal/page?_pageid=713,1569828&_dad=portal&_schema=PORTAL">Austrian grids</a> and other resources +related to the local geodetic reference.</p> +</section> +<section id="brazil"> +<h4>Brazil<a class="headerlink" href="#brazil" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="http://www.ibge.gov.br/home/geociencias/geodesia/param_transf/default_param_transf.shtm">Brazilian grids</a> for datums Corrego Alegre 1961, Corrego Alegre 1970-72, SAD69 and SAD69(96)</p> +</section> +<section id="netherlands"> +<h4>Netherlands<a class="headerlink" href="#netherlands" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="https://www.nsgi.nl/geodetische-infrastructuur/coordinatentransformatie">Dutch grid</a> (Registration required before download)</p> +</section> +<section id="portugal"> +<h4>Portugal<a class="headerlink" href="#portugal" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="http://www.fc.up.pt/pessoas/jagoncal/coordenadas/index.htm">Portuguese grids</a> for ED50, Lisbon 1890, Lisbon 1937 and Datum 73</p> +</section> +<section id="south-africa"> +<h4>South Africa<a class="headerlink" href="#south-africa" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="http://eepublishers.co.za/article/datum-transformations-using-the-ntv2-grid.html">South African grid</a> (Cape to Hartebeesthoek94 or WGS84)</p> +</section> +<section id="spain"> +<h4>Spain<a class="headerlink" href="#spain" title="Permalink to this headline">¶</a></h4> +<p><a class="reference external" href="http://www.ign.es/ign/layoutIn/herramientas.do#DATUM">Spanish grids</a> for ED50.</p> +</section> +</section> +<section id="htdp"> +<h3>HTDP<a class="headerlink" href="#htdp" title="Permalink to this headline">¶</a></h3> +<p>This section describes the use of the <code class="file docutils literal notranslate"><span class="pre">crs2crs2grid.py</span></code> script and the HTDP +(Horizontal Time Dependent Positioning) grid shift modelling program from +NGS/NOAA to produce PROJ compatible grid shift files for fine grade +conversions between various NAD83 epochs and WGS84. Traditionally PROJ has +treated NAD83 and WGS84 as equivalent and failed to distinguish between +different epochs or realizations of those datums. At the scales of much +mapping this is adequate but as interest grows in high resolution imagery and +other high resolution mapping this is inadequate. Also, as the North American +crust drifts over time the displacement between NAD83 and WGS84 grows (more +than one foot over the last two decades).</p> +<section id="getting-and-building-htdp"> +<h4>Getting and building HTDP<a class="headerlink" href="#getting-and-building-htdp" title="Permalink to this headline">¶</a></h4> +<p>The HTDP modelling program is written in FORTRAN. The source and documentation +can be found on the HTDP page at <a class="reference external" href="http://www.ngs.noaa.gov/TOOLS/Htdp/Htdp.shtml">http://www.ngs.noaa.gov/TOOLS/Htdp/Htdp.shtml</a></p> +<p>On Linux systems it will be necessary to install GFortran or some Fortran +compiler. For Ubuntu something like the following should work.</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>apt-get install gfortran +</pre></div> +</div> +<p>To compile the program do something like the following to produce the binary +<strong class="program">htdp</strong> from the source code.</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>gfortran htdp.for -o htdp +</pre></div> +</div> +</section> +<section id="getting-crs2crs2grid-py"> +<h4>Getting <code class="file docutils literal notranslate"><span class="pre">crs2crs2grid.py</span></code><a class="headerlink" href="#getting-crs2crs2grid-py" title="Permalink to this headline">¶</a></h4> +<p>The <code class="file docutils literal notranslate"><span class="pre">crs2crs2grid.py</span></code> script can be found at +<a class="reference external" href="https://github.com/OSGeo/gdal/blob/master/swig/python/gdal-utils/osgeo_utils/samples/crs2crs2grid.py">https://github.com/OSGeo/gdal/blob/master/swig/python/gdal-utils/osgeo_utils/samples/crs2crs2grid.py</a></p> +<p>The script depends on having the GDAL Python bindings operational; if they are not you +will get an error such as:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Traceback (most recent call last): + File "./crs2crs2grid.py", line 37, in <module> + from osgeo import gdal, gdal_array, osr +ImportError: No module named osgeo +</pre></div> +</div> +</section> +<section id="usage"> +<h4>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h4> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>crs2crs2grid.py + <src_crs_id> <src_crs_date> <dst_crs_id> <dst_crs_year> + [-griddef <ul_lon> <ul_lat> <ll_lon> <ll_lat> <lon_count> <lat_count>] + [-htdp <path_to_exe>] [-wrkdir <dirpath>] [-kwf] + -o <output_grid_name> + + -griddef: by default the following values for roughly the continental USA + at a six minute step size are used: + -127 50 -66 25 251 611 + -kwf: keep working files in the working directory for review. +</pre></div> +</div> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>crs2crs2grid.py 29 2002.0 8 2002.0 -o nad83_2002.ct2 +</pre></div> +</div> +<p>The goal of <code class="file docutils literal notranslate"><span class="pre">crs2crs2grid.py</span></code> is to produce a grid shift file for a designated +region. The region is defined using the <code class="docutils literal notranslate"><span class="pre">-griddef</span></code> switch. When missing a +continental US region is used. The script creates a set of sample points for +the grid definition, runs <strong class="program">htdp</strong> against it and then parses the +resulting points and computes a point by point shift to encode into the final +grid shift file. By default it is assumed that <strong class="program">htdp</strong> is in the +executable path. If not, please provide the path to the executable using the +<code class="docutils literal notranslate"><span class="pre">-htdp</span></code> switch.</p> +<p>The <strong class="program">htdp</strong> program supports transformations between many CRSes and for each (or +most?) of them you need to provide a date at which the CRS is fixed. The full +set of CRS Ids available in the HTDP program are:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> 1...NAD_83(2011) (North America tectonic plate fixed) + 29...NAD_83(CORS96) (NAD_83(2011) will be used) + 30...NAD_83(2007) (NAD_83(2011) will be used) + 2...NAD_83(PA11) (Pacific tectonic plate fixed) + 31...NAD_83(PACP00) (NAD 83(PA11) will be used) + 3...NAD_83(MA11) (Mariana tectonic plate fixed) + 32...NAD_83(MARP00) (NAD_83(MA11) will be used) + + 4...WGS_72 16...ITRF92 + 5...WGS_84(transit) = NAD_83(2011) 17...ITRF93 + 6...WGS_84(G730) = ITRF92 18...ITRF94 = ITRF96 + 7...WGS_84(G873) = ITRF96 19...ITRF96 + 8...WGS_84(G1150) = ITRF2000 20...ITRF97 + 9...PNEOS_90 = ITRF90 21...IGS97 = ITRF97 +10...NEOS_90 = ITRF90 22...ITRF2000 +11...SIO/MIT_92 = ITRF91 23...IGS00 = ITRF2000 +12...ITRF88 24...IGb00 = ITRF2000 +13...ITRF89 25...ITRF2005 +14...ITRF90 26...IGS05 = ITRF2005 +15...ITRF91 27...ITRF2008 + 28...IGS08 = ITRF2008 +</pre></div> +</div> +<p>The typical use case is mapping from NAD83 on a particular date to WGS84 on +some date. In this case the source CRS Id “29” (NAD_83(CORS96)) and the +destination CRS Id is “8 (WGS_84(G1150)). It is also necessary to select the +source and destination date (epoch). For example:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>crs2crs2grid.py 29 2002.0 8 2002.0 -o nad83_2002.ct2 +</pre></div> +</div> +<p>The output is a CTable2 format grid shift file suitable for use with PROJ +(4.8.0 or newer). It might be utilized something like:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cs2cs +proj=latlong +ellps=GRS80 +nadgrids=./nad83_2002.ct2 +to +proj=latlong +datum=WGS84 +</pre></div> +</div> +</section> +<section id="see-also"> +<h4>See Also<a class="headerlink" href="#see-also" title="Permalink to this headline">¶</a></h4> +<ul class="simple"> +<li><p><a class="reference external" href="http://www.ngs.noaa.gov/TOOLS/Htdp/Htdp.shtml">http://www.ngs.noaa.gov/TOOLS/Htdp/Htdp.shtml</a> - NGS/NOAA page about the HTDP +model and program. Source for the HTDP program can be downloaded from here.</p></li> +</ul> +</section> +</section> +</section> +<section id="init-files"> +<span id="id7"></span><h2>Init files<a class="headerlink" href="#init-files" title="Permalink to this headline">¶</a></h2> +<p>Init files are used for preconfiguring proj-strings for often used +transformations, such as those found in the EPSG database. Most init files contain +transformations from a given coordinate reference system to WGS84. This makes +it easy to transform between any two coordinate reference systems with +<strong class="program">cs2cs</strong>. Init files can however contain any proj-string and don’t necessarily +have to follow the <em>cs2cs</em> paradigm where WGS84 is used as a pivot datum. The +ITRF init file is a good example of that.</p> +<p>A number of init files come pre-bundled with PROJ but it is also possible to +add your own custom init files. PROJ looks for the init files in the directory +listed in the <span class="target" id="index-5"></span><a class="reference internal" href="usage/environmentvars.html#envvar-PROJ_LIB"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROJ_LIB</span></code></a> environment variable.</p> +<p>The format of init files is an identifier in angled brackets and a +proj-string:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span><3819> +proj=longlat +ellps=bessel + +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs <> +</pre></div> +</div> +<p>The above example is the first entry from the <code class="docutils literal notranslate"><span class="pre">epsg</span></code> init file. So, this is the +coordinate reference system with ID 3819 in the EPSG database. Comments can be +inserted by prefixing them with a “#”. With version 4.10.0 a new special metadata +entry is now accepted in init files. It can be parsed with a function from the public +API. The metadata entry in the epsg init file looks like this at the time of writing:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span><metadata> +version=9.0.0 +origin=EPSG +lastupdate=2017-01-10 +</pre></div> +</div> +<p>Pre-configured proj-strings from init files are used in the following way:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ cs2cs -v +proj=latlong +to +init=epsg:3819 +# ---- From Coordinate System ---- +#Lat/long (Geodetic alias) +# +# +proj=latlong +ellps=WGS84 +# ---- To Coordinate System ---- +#Lat/long (Geodetic alias) +# +# +init=epsg:3819 +proj=longlat +ellps=bessel +# +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs +</pre></div> +</div> +<p>It is possible to override parameters when using <code class="docutils literal notranslate"><span class="pre">+init</span></code>. Just add the parameter +to the proj-string alongside the <code class="docutils literal notranslate"><span class="pre">+init</span></code> parameter. For instance by overriding +the ellipsoid as in the following example</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>+init=epsg:25832 +ellps=intl +</pre></div> +</div> +<p>where the Hayford ellipsoid is used instead of the predefined GRS80 ellipsoid.</p> +<p>It is also possible to add additional parameters not specified in the init file, +for instance by adding a central epoch when applying the ITRF2014:NOAM plate +motion model:</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>+init=ITRF2014:NOAM +t_epoch=2010.0 +</pre></div> +</div> +<p>which then expands to</p> +<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>+proj=helmert +drx=0.000024 +dry=-0.000694 +drz=-0.000063 +convention=position_vector +t_epoch=2010.0 +</pre></div> +</div> +<p>Below is a list of the init files that are packaged with PROJ.</p> +<blockquote> +<div><table class="docutils align-default"> +<colgroup> +<col style="width: 11%" /> +<col style="width: 89%" /> +</colgroup> +<thead> +<tr class="row-odd"><th class="head"><p>Name</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>GL27</p></td> +<td><p>Great Lakes Grids</p></td> +</tr> +<tr class="row-odd"><td><p>ITRF2000</p></td> +<td><p>Full set of transformation parameters between ITRF2000 and other +ITRF’s</p></td> +</tr> +<tr class="row-even"><td><p>ITRF2008</p></td> +<td><p>Full set of transformation parameters between ITRF2008 and other +ITRF’s</p></td> +</tr> +<tr class="row-odd"><td><p>ITRF2014</p></td> +<td><p>Full set of transformation parameters between ITRF2014 and other +ITRF’s</p></td> +</tr> +<tr class="row-even"><td><p>nad27</p></td> +<td><p>State plane coordinate systems, North American Datum 1927</p></td> +</tr> +<tr class="row-odd"><td><p>nad83</p></td> +<td><p>State plane coordinate systems, North American Datum 1983</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="operations/operations_computation.html" class="btn btn-neutral float-left" title="Computation of coordinate operations between two CRS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="geodesic.html" class="btn btn-neutral float-right" title="Geodesic calculations" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 1983-2022. + <span class="lastupdated">Last updated on 22 Mar 2022. + </span></p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> +</html>
\ No newline at end of file |
