aboutsummaryrefslogtreecommitdiff
path: root/resource_files.html
diff options
context:
space:
mode:
authorPROJ deploybot <proj.bot@proj.bot>2022-03-22 20:00:06 +0000
committerPROJ deploybot <proj.bot@proj.bot>2022-03-22 20:00:06 +0000
commita3f43744feec86272fe532124679d3a013ef9a8c (patch)
tree27e4198db6011e3097eb7bcfe7197684aba7583a /resource_files.html
downloadPROJ-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.html604
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 &mdash; 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> &raquo;</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&amp;_dad=portal&amp;_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 &quot;./crs2crs2grid.py&quot;, line 37, in &lt;module&gt;
+ 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
+ &lt;src_crs_id&gt; &lt;src_crs_date&gt; &lt;dst_crs_id&gt; &lt;dst_crs_year&gt;
+ [-griddef &lt;ul_lon&gt; &lt;ul_lat&gt; &lt;ll_lon&gt; &lt;ll_lat&gt; &lt;lon_count&gt; &lt;lat_count&gt;]
+ [-htdp &lt;path_to_exe&gt;] [-wrkdir &lt;dirpath&gt;] [-kwf]
+ -o &lt;output_grid_name&gt;
+
+ -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>&lt;3819&gt; +proj=longlat +ellps=bessel
+ +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs &lt;&gt;
+</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>&lt;metadata&gt; +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>&#169; 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