aboutsummaryrefslogtreecommitdiff
path: root/docs/source/usage/environmentvars.rst
blob: 304b927690673e5e53b069ea51e65e5302a21601 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
.. _environmentvars:

================================================================================
Environment variables
================================================================================

PROJ can be controlled by setting environment variables. Most users will
have a use for the :envvar:`PROJ_LIB`.

On UNIX systems environment variables can be set for a shell-session with::

    $ export VAR="some variable"

or it can be set for just one command line call::

    $ VAR="some variable" ./cmd

Environment variables on UNIX are usually removed with the ``unset`` command::

    $ unset VAR

On windows systems environment variables can be set in the command line with::

    > set VAR="some variable"

```VAR`` will be available for the entire session, unless it is unset. This is
done by setting the variable with no content::

    > set VAR=

.. envvar:: PROJ_LIB

    The location of PROJ :doc:`resource files<../resource_files>`.

    Starting with PROJ 6, multiple directories can be specified. On Unix, they
    should be separated by the colon (:) character. on Windows, by the semi-colon (;)
    character.

    PROJ is hardcoded to look for resource files
    in other locations as well, amongst those are the
    installation directory (usually ``share/proj`` under the PROJ
    installation root) and the current folder.

    You can also set the location of the resource files using
    :func:`proj_context_set_search_paths` in the `proj.h` API header.

.. versionchanged:: 6.1.0

    Starting with PROJ version 6.1.0, the paths set by
    :func:`proj_context_set_search_paths` will have priority over the
    :envvar:`PROJ_LIB` to allow for multiple versions of PROJ
    resource files on your system without conflicting.


.. envvar:: PROJ_AUX_DB

    .. versionadded:: 8.1.0

    To set the path to one or several auxiliary SQLite3 databases of structure
    identical to the main ``proj.db`` database and that can contain additional
    object (CRS, transformation, ...) definitions. If several paths are
    provided, they must be separated by the colon (:) character on Unix, and
    on Windows, by the semi-colon (;) character.


.. envvar:: PROJ_DEBUG

    Set the debug level of PROJ. The default debug level is zero, which results
    in no debug output when using PROJ. A number from 1-3, whit 3 being the most
    verbose setting.

.. envvar:: PROJ_NETWORK

    .. versionadded:: 7.0.0

    If set to ON, enable the capability to use remote grids stored on CDN
    (Content Delivery Network) storage, when grids are not available locally.
    Alternatively, the :c:func:`proj_context_set_enable_network` function can
    be used.

.. envvar:: PROJ_NETWORK_ENDPOINT

    .. versionadded:: 7.0.0

    Define the endpoint of the CDN storage. Normally defined through the proj.ini
    configuration file locale in :envvar:`PROJ_LIB`.
    Alternatively, the :c:func:`proj_context_set_url_endpoint` function can
    be used.

.. envvar:: PROJ_CURL_CA_BUNDLE

    .. versionadded:: 7.2.0

    Define a custum path to the CA Bundle file. This can be useful if `curl`
    and :envvar:`PROJ_NETWORK` are enabled. Alternatively, the 
    :c:func:`proj_curl_set_ca_bundle_path` function can be used.