variables.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. <!-- meta page description: GRASS variables and environment variables -->
  2. There are two types of variables:
  3. <ul>
  4. <li><a href="#setting-shell-environment-variables">shell
  5. environment</a> variables,</li>
  6. <li><a href="#setting-grass-gisenv-variables">GRASS gisenv</a>
  7. variables.</li>
  8. </ul>
  9. There are a number of <i>shell</i> environment variable groups:
  10. <ul>
  11. <li><a href="#list-of-selected-grass-environment-variables-for-rendering">variables
  12. for rendering</a></li>
  13. <li><a href="#list-of-selected-internal-grass-environment-variables">variables
  14. for internal use</a></li>
  15. </ul>
  16. <i>Note:</i> Any setting which needs to be modifiable by a GRASS module
  17. (e.g. MONITOR by <em><a href="d.mon.html">d.mon</a></em>) has to be a GRASS
  18. gisenv variable.
  19. <h2>Setting shell environment variables</h2>
  20. Setting shell environment variables depends on the shell being used:
  21. <br><br>
  22. Bash:
  23. <div class="code"><pre>
  24. export VARIABLE=value
  25. </pre></div>
  26. Csh:
  27. <div class="code"><pre>
  28. setenv VARIABLE value
  29. </pre></div>
  30. Cmd.exe (Windows):
  31. <div class="code"><pre>
  32. set VARIABLE=value
  33. </pre></div>
  34. To set up shell environment variables permanently:
  35. <ul>
  36. <li>
  37. To get personal BASH shell definitions (aliases, color listing option, ...)
  38. into GRASS, store them in:<br>
  39. <tt>$HOME/.grass.bashrc</tt></li>
  40. <li>
  41. To get personal CSH shell definitions (aliases, color listing option, ...)
  42. into GRASS, store them in:<br>
  43. <tt>$HOME/.grass.cshrc</tt></li>
  44. </ul>
  45. <h2>Setting GRASS gisenv variables</h2>
  46. Use <em><a href="g.gisenv.html">g.gisenv</a></em> within GRASS. This permanently
  47. predefines GRASS variables in the <tt>.grass7/rc</tt> file.
  48. <br><br>
  49. Usage:
  50. <div class="code"><pre>
  51. g.gisenv set="VARIABLE=VALUE"
  52. </pre></div>
  53. It looks unusual with two equals signs, but <em>g.gisenv</em> serves dual duty for
  54. getting and setting GRASS variables.
  55. <p>If the user just specifies a variable name, it defaults to <b>get</b> mode.
  56. For example:
  57. <div class="code"><pre>
  58. g.gisenv MAPSET
  59. PERMANENT
  60. </pre></div>
  61. <h2>List of selected (GRASS related) shell environment variables</h2>
  62. <blockquote>
  63. [ To be set from the terminal shell or startup scripts ]
  64. </blockquote>
  65. <dl>
  66. <dt>GISBASE</dt>
  67. <dd>directory where GRASS lives. This is set automatically by the
  68. startup script.</dd>
  69. <dt>GISRC</dt>
  70. <dd>name of <tt>.grass7/rc</tt> file. Defines the system wide value
  71. while in a GRASS session.</dd>
  72. <dt>GRASS_ADDON_PATH</dt>
  73. <dd>[grass startup script, g.extension]<br>
  74. specifies additional path(s) containing local and/or custom GRASS
  75. modules extra to the standard distribution.</dd>
  76. <dt>GRASS_ADDON_BASE</dt>
  77. <dd>[grass startup script]<br> allows to specify additional GISBASE
  78. for local GRASS modules (normally installed as GRASS Addons
  79. by <tt>g.extension</tt> module) extra to standard
  80. distribution. The default on GNU/Linux
  81. is <tt>$HOME/.grass7/addons</tt>, on MS
  82. Windows <tt>$APPDATA\GRASS7\addons</tt>.</dd>
  83. <dt>GRASS_ADDON_ETC</dt>
  84. <dd>[libgis, g.findetc]<br>
  85. specify paths where support files (etc/) may be found external to
  86. standard distribution.</dd>
  87. <dt>GRASS_BATCH_JOB</dt>
  88. <dd>defines the name (path) of a shell script to be processed as
  89. batch job.</dd>
  90. <dt>GIS_ERROR_LOG</dt>
  91. <dd>If set, GIS_ERROR_LOG should be the absolute path to the log
  92. file (a relative path will be interpreted relative to the process'
  93. cwd, not the cwd at the point the user set the variable). If not
  94. set, <tt>$HOME/GIS_ERROR_LOG</tt> is used instead. The file will
  95. only be used if it already exists.</dd>
  96. <dt>GRASS_ERROR_MAIL</dt>
  97. <dd>set to any value to send user mail on an error or warning that
  98. happens while stderr is being redirected.</dd>
  99. <dt>GRASS_FONT</dt>
  100. <dd>[display drivers]<br>
  101. specifies the font as either the name of a font from
  102. <tt>$GISBASE/etc/fontcap</tt> (or alternative fontcap file
  103. specified by GRASS_FONT_CAP), or alternatively the full path to a
  104. FreeType font file.</dd>
  105. <dt>GRASS_ENCODING</dt>
  106. <dd>[display drivers]<br>
  107. the encoding to be assumed for text which is drawn using a
  108. freetype font; may be any encoding know to <em>iconv</em>.</dd>
  109. <dt>GRASS_FONT_CAP</dt>
  110. <dd>[g.mkfontcap, d.font, display drivers]<br>
  111. specifies an alternative location (to <tt>$GISBASE/etc/fontcap</tt>) for
  112. the font configuration file.</dd>
  113. <dt>GRASS_GNUPLOT</dt>
  114. <dd>[<!-- m.svfit, s.probplt, s.sv -->i.spectral]<br>
  115. program to use for plotting <em>gnuplot</em> data.</dd>
  116. <dt>GRASS_GUI</dt>
  117. <dd>either <tt>text</tt> (text user interface), <tt>gtext</tt> (text
  118. user interface with GUI welcome screen), or <tt>gui</tt> (graphical
  119. user interface) to define non-/graphical startup. Can also specify
  120. the name of the GUI to use, e.g. <tt>wxpython</tt>
  121. (<em><a href="wxGUI.html">wxGUI</a></em>). Also exists as a GRASS
  122. gisenv variable (see below). If this shell variable exists at GRASS
  123. startup, it will determine the GUI used. If it is not defined
  124. startup will default to the last GUI used.</dd>
  125. <dt>GRASS_HTML_BROWSER</dt>
  126. <dd>[init.sh, wxgui]<br> defines name of HTML browser. For most
  127. platforms this should be an executable in your PATH, or the full
  128. path to an executable.<br> Mac OS X runs applications differently
  129. from the CLI. Therefore, GRASS_HTML_BROWSER should be the
  130. application's signature, which is a domain-like name, just
  131. reversed, i.e. com.apple.Safari. To find an application's
  132. signature, type the following in a Terminal (fill in the path to
  133. the application you are interested in, for example:
  134. /Applications/Safari.app):<br> &nbsp; &nbsp; <code>grep -A 1
  135. &quot;CFBundleIdentifier&quot;</code> <i>/path/to/application.app</i><code>/Contents/Info.plist</code><br>
  136. &nbsp; The signature is the &lt;string&gt; following the
  137. &lt;key&gt;, without the bracketing &lt;string&gt; tags.</dd>
  138. <dt>GRASS_INT_ZLIB</dt>
  139. <dd>[libraster]<br> if the environment variable GRASS_INT_ZLIB exists and has the value 0,
  140. new compressed <i>integer</i> (CELL type) raster maps will be compressed
  141. using RLE compression.
  142. <br><br>
  143. If the variable doesn't exist, or the value is non-zero, zlib compression
  144. will be used instead. Such rasters will have a <tt>compressed</tt>
  145. value of 2 in the cellhd file.
  146. <br><br>
  147. Obviously, decompression is controlled by the
  148. raster's <tt>compressed</tt> value, not the environment variable.</dd>
  149. <dt>GRASS_ZLIB_LEVEL</dt>
  150. <dd>[libgis]<br> if the environment variable GRASS_ZLIB_LEVEL exists and its value can
  151. be parsed as an integer, it determines the compression level used when new compressed
  152. raster maps are compressed using zlib compression. This applies to all
  153. raster map types (CELL, FCELL, DCELL).
  154. <br><br>
  155. If the variable doesn't exist, or the value cannot be parsed as an
  156. integer, zlib's default compression level will be used.</dd>
  157. <dt>GRASS_MESSAGE_FORMAT</dt>
  158. <dd>[various modules, wxGUI]<br>
  159. it may be set to either
  160. <ul>
  161. <li><tt>standard</tt> - sets percentage output and message
  162. formatting style to standard formatting,</li>
  163. <li><tt>gui</tt> - sets percentage output and message formatting
  164. style to GUI formatting,</li>
  165. <li><tt>silent</tt> - disables percentage output and error
  166. messages,</li>
  167. <li><tt>plain</tt> - sets percentage output and message
  168. formatting style to ASCII output without rewinding control
  169. characters.</li>
  170. </ul></dd>
  171. <dt>GRASS_MOUSE_BUTTON</dt>
  172. <dd>[various modules]<br> swaps mouse buttons for two-button or
  173. left-handed mice. Its value has three digits 1, 2, and 3, which
  174. represent default left, middle, and right buttons
  175. respectively. Setting to <tt>132</tt> will swap middle and right
  176. buttons. Note that this variable should be set before a display
  177. driver is initialized (e.g.,
  178. <tt>d.mon x0</tt>).</dd>
  179. <dt>GRASS_PAGER</dt>
  180. <dd>[various modules]<br>
  181. it may be set to either <tt>less</tt>, <tt>more</tt>, or <tt>cat</tt>.</dd>
  182. <dt>GRASS_PERL</dt>
  183. <dd>[used during install process for generating man pages]<br>
  184. set Perl with path.</dd>
  185. <dt>GRASS_SKIP_MAPSET_OWNER_CHECK</dt>
  186. <dd>By default it is not possible to work with MAPSETs that are
  187. not owned by current user. Setting this variable to any non-empty value
  188. allows the check to be skipped.</dd>
  189. <dt>GRASS_SH</dt>
  190. <dd>[shell scripts on Windows]<br>
  191. path to bourne shell interpreter used to run shell scripts.</dd>
  192. <dt>GRASS_SIGSEGV_ON_ERROR</dt>
  193. <dd>Raise SIGSEGV if an error occures]<br>
  194. This variable can be set for debugging purpose. The call
  195. of G_fatal_error() will end in a segmentation violation. GDB can be used
  196. to trace the source of the error.</dd>
  197. <dt>GRASS_PYTHON</dt>
  198. <dd>[wxGUI, Python Ctypes]<br>
  199. set to override Python executable.<br>
  200. On Mac OS X this should be the <tt>pythonw</tt> executable for the
  201. wxGUI to work.</dd>
  202. <dt>GRASS_VECTOR_LOWMEM</dt>
  203. <dd>[vectorlib]<br>
  204. If the environment variable GRASS_VECTOR_LOWMEM exists, memory
  205. consumption will be reduced when building vector topology
  206. support structures. Recommended for creating large vectors.</dd>
  207. <dt>GRASS_VECTOR_OGR</dt>
  208. <dd>[vectorlib, v.external.out]<br> If the environment variable
  209. GRASS_VECTOR_OGR exists and vector output format defined
  210. by <em><a href="v.external.out.html">v.external.out</a></em> is
  211. PostgreSQL, vector data is written by OGR data provider even
  212. the native PostGIS data provider is available.</dd>
  213. <dt>GRASS_VECTOR_EXTERNAL_IMMEDIATE</dt>
  214. <dd>[vectorlib, v.external.out]<br> If the environment variable
  215. GRASS_VECTOR_EXTERNAL_IMMEDIATE exists and vector output format
  216. defined
  217. by <em><a href="v.external.out.html">v.external.out</a></em> is
  218. non-native, vector features are written to output external
  219. datasource immediately. By default, the vector library writes
  220. output data to a temporary vector map in native format and when
  221. closing the map, the features are transfered to output external
  222. datasource. Note: if output vector format is topological PostGIS
  223. format, then the vector library writes features immediately to output
  224. database (in this case GRASS_VECTOR_EXTERNAL_IMMEDIATE is ignored).</dd>
  225. <dt>GRASS_VECTOR_EXTERNAL_IGNORE</dt>
  226. <dd>[vectorlib]<br> If the environment variable
  227. GRASS_VECTOR_EXTERNAL_IGNORE exists, output vector format defined
  228. by <em><a href="v.external.out.html">v.external.out</a></em> is
  229. ignored. The format is always native.</dd>
  230. <dt>GRASS_VECTOR_TEMPORARY</dt>
  231. <dd>[vectorlib]<br> If the environment variable
  232. GRASS_VECTOR_TEMPORARY exists, vector library will operate with
  233. temporary vector maps. New vector maps will be created
  234. in <tt>$MAPSET/.tmp/$HOSTNAME/vector</tt>, existing vector maps
  235. will be read also from this directory. Note that temporary vector
  236. maps are not visible to the user
  237. via <em><a href="g.list.html">g.list</a></em>. They are used
  238. internally by the GRASS modules and deleted automatically when the
  239. map is closed or GRASS session quited. Note that this variable is
  240. dedicated for internal use only.</dd>
  241. <dt>GRASS_WXBUNDLED</dt>
  242. <dd>[wxGUI]<br>
  243. set to tell wxGUI that a bundled wxPython will be used.<br>
  244. When set, the wxGUI will not check the wxPython version, as this
  245. function is incompatible with a bundled wxPython. It is up to the
  246. packager to make sure that a compatible wxPython version is bundled.</dd>
  247. <dt>GRASS_XTERM</dt>
  248. <dd>[lib/init/grass-xterm-wrapper, lib/init/grass-xterm-mac]<br>
  249. set to any value (e.g. rxvt, aterm, gnome-terminal, konsole) to
  250. substitute 'x-terminal-emulator' or 'xterm'. The Mac OS X app
  251. startup defaults to an internal '$GISBASE/etc/grass-xterm-mac',
  252. which emulates the necessary xterm functionality in
  253. Terminal.app.</dd>
  254. <dt>GRASS_UI_TERM</dt>
  255. <dd>set to any value to use the terminal based parser.</dd>
  256. <dt>GRASS_VERSION</dt>
  257. <dd>reports the current version number (used by R-stats interface etc);
  258. should not be changed by user.</dd>
  259. <dt>GRASS_NO_GLX_PBUFFERS</dt>
  260. <dd>[nviz]<br>
  261. set to any value to disable the use of GLX Pbuffers.</dd>
  262. <dt>GRASS_NO_GLX_PIXMAPS</dt>
  263. <dd>[nviz]<br>
  264. Set to any value to disable the use of GLX Pixmaps.</dd>
  265. <dt>OMP_NUM_THREADS</dt>
  266. <dd>[OpenMP]<br>
  267. If OpenMP support is enabled this limits the number of threads.
  268. The default is set to the number of CPUs on the system.
  269. Setting to '1' effectively disables parallel processing.</dd>
  270. <dt>TMPDIR, TEMP, TMP</dt>
  271. <dd>[Various GRASS GIS commands and wxGUI]<br>
  272. <!-- what about Windows %TEMP% and http://trac.osgeo.org/grass/ticket/560#comment:21 ? -->
  273. The default wxGUI temporary directory is chosen from a
  274. platform-dependent list, but the user can control the selection of
  275. this directory by setting one of the TMPDIR, TEMP or TMP
  276. environment variables Hence the wxGUI uses $TMPDIR if it is set,
  277. then $TEMP, otherwise /tmp.</dd>
  278. </dl>
  279. <h3>List of selected GRASS environment variables for rendering</h3>
  280. <blockquote>
  281. [ In addition to those which are understood by
  282. specific <em><a href="displaydrivers.html">GRASS display
  283. drivers</a></em>, the following variables affect rendering. ]
  284. </blockquote>
  285. <dl>
  286. <dt>GRASS_RENDER_IMMEDIATE</dt>
  287. <dd>tells the display library which driver to use; possible
  288. values: <em><a href="cairodriver.html">cairo</a></em>, <em><a href="pngdriver.html">png</a></em>, <em><a href="psdriver.html">ps</a></em>,
  289. <em><a href="htmldriver.html">html</a></em>
  290. or <em>default</em><br>Default display driver
  291. is <em><a href="cairodriver.html">cairo</a></em> (if available)
  292. otherwise <em><a href="pngdriver.html">png</a></em>.
  293. </dd>
  294. <dt>GRASS_RENDER_WIDTH</dt>
  295. <dd>defines the width of output image (default is 640).</dd>
  296. <dt>GRASS_RENDER_HEIGHT</dt>
  297. <dd>defines the height of output image (default is 480).</dd>
  298. <dt>GRASS_RENDER_FRAME</dt>
  299. <dd>contains 4 coordinates, <em>top,bottom,left,right</em> (pixel
  300. values) with respect to the top left corner of the output image,
  301. defining the initial frame.</dd>
  302. <dt>GRASS_RENDER_LINE_WIDTH</dt>
  303. <dd>defines default line width.</dd>
  304. <dt>GRASS_RENDER_TEXT_SIZE</dt>
  305. <dd>defines default text size.</dd>
  306. </dl>
  307. For specific driver-related variables see:
  308. <ul>
  309. <li><em><a href="cairodriver.html">Cairo driver</a></em></li>
  310. <li><em><a href="pngdriver.html">PNG driver</a></em></li>
  311. <li><em><a href="psdriver.html">PS (Postscript) driver</a></em></li>
  312. <li><em><a href="htmldriver.html">HTML driver</a></em></li>
  313. </ul>
  314. <h3>List of selected internal GRASS environment variables</h3>
  315. <blockquote>
  316. [ These variables are intended <b>for internal use only</b> by the GRASS
  317. software to facilitate communication between the GIS engine, GRASS scripts,
  318. and the GUI.
  319. The user should not set these in a GRASS session. They are meant to be set
  320. locally for specific commands. ]
  321. </blockquote>
  322. <dl>
  323. <dt>GRASS_OVERWRITE</dt>
  324. <dd>[all modules]<br>
  325. toggles map overwrite.
  326. <ul>
  327. <li>0 - maps are protected (default),</li>
  328. <li>1 - maps with identical names will be overwritten.</li>
  329. </ul>
  330. This variable is automatically created
  331. by <em><a href="g.parser.html">g.parser</a></em> so that the
  332. <tt>--overwrite</tt> option will
  333. be inherited by dependent modules as the script runs. Setting either the
  334. GRASS_OVERWRITE environment variable or the OVERWRITE gisenv variable detailed
  335. below will cause maps with identical names to be overwritten.</dd>
  336. <dt>GRASS_VERBOSE</dt>
  337. <dd>[all modules]<br>
  338. toggles verbosity level
  339. <ul>
  340. <li>-1 - complete silence (also errors and warnings are discarded)</li>
  341. <li>0 - only errors and warnings are printed</li>
  342. <li>1 - progress and important messages are printed (percent complete)</li>
  343. <li>2 - all module messages are printed</li>
  344. <li>3 - additional verbose messages are printed</li>
  345. </ul>
  346. This variable is automatically created by <em><a href="g.parser.html">g.parser</a></em>
  347. so that the <tt>--verbose</tt> or <tt>--quiet</tt> flags will be inherited
  348. by dependent modules as the script runs.</dd>
  349. <dt>GRASS_REGION</dt>
  350. <dd>[libgis]<br>
  351. override region settings, separate parameters with a ";". Format
  352. is the same as in the WIND region settings file. Otherwise use is the same as
  353. WIND_OVERRIDE.</dd>
  354. <dt>WIND_OVERRIDE</dt>
  355. <dd>[libgis]<br>
  356. it causes programs to use the specified named region (created with
  357. e.g. <tt>g.region save=...</tt>) to be used as the current region, instead of
  358. the region from the WIND file.<br><br>
  359. This allows programs such as the GUI to run external commands on an
  360. alternate region without having to modify the WIND file then change it
  361. back afterwards.</dd>
  362. </dl>
  363. <h2>List of selected GRASS gisenv variables</h2>
  364. <blockquote>
  365. [ Use <em><a href="g.gisenv.html">g.gisenv</a></em> to get/set/unset/change them ]
  366. </blockquote>
  367. <dl>
  368. <dt>DEBUG</dt>
  369. <dd>[entire GRASS]<br>
  370. sets level of debug message output (0: no debug messages)
  371. <div class="code"><pre>
  372. g.gisenv set=DEBUG=0
  373. </pre></div>
  374. <dt>WX_DEBUG</dt>
  375. <dd>[wxGUI]<br>
  376. sets level of debug message output for <em><a href="wxGUI.html">wxGUI</a></em> (0: no debug messages, 1-5 debug levels)
  377. <dt>GISDBASE</dt>
  378. <dd>initial database</dd>
  379. <dt>GIS_LOCK</dt>
  380. <dd>lock ID to prevent parallel GRASS use,
  381. <br>process id of the start-up shell script</dd>
  382. <dt>GRASS_DB_ENCODING</dt>
  383. <dd>[d.what.vect/forms library]<br>
  384. encoding of query form (utf-8, ascii, iso8859-1, koi8-r)</dd>
  385. <dt>GUI</dt>
  386. <dd>See <tt>GRASS_GUI</tt> environmental variable for details.</dd>
  387. <dt>LOCATION</dt>
  388. <dd>full path to location directory</dd>
  389. <dt>LOCATION_NAME</dt>
  390. <dd>initial location name</dd>
  391. <dt>MAPSET</dt>
  392. <dd>initial mapset</dd>
  393. <dt>OVERWRITE</dt>
  394. <dd>[all modules]<br>
  395. toggles map overwrite.
  396. <ul>
  397. <li>0 - maps are protected (default),</li>
  398. <li>1 - maps with identical names will be overwritten.</li>
  399. </ul>
  400. This variable is automatically created
  401. by <em><a href="g.parser.html">g.parser</a></em> so that the
  402. <tt>--overwrite</tt> option will
  403. be inherited by dependent modules as the script runs. Setting either the
  404. GRASS_OVERWRITE environment variable or the OVERWRITE gisenv variable detailed
  405. below will cause maps with identical names to be overwritten.</dd>
  406. </dl>
  407. <h2>GRASS-related Files</h2>
  408. <dl>
  409. <dt><tt>$HOME/.grass7/rc</tt></dt>
  410. <dd>stores the GRASS gisenv variables (not shell environment variables)</dd>
  411. <dt><tt>$HOME/.grass7/bashrc</tt></dt>
  412. <dd>stores the shell environment variables (Bash only)</dd>
  413. <dt><tt>$HOME/.grass7/env.bat</tt></dt>
  414. <dd>stores the shell environment variables (MS Windows only)</dd>
  415. <dt><tt>$HOME/.grass7/login</tt></dt>
  416. <dd>stores the DBMI passwords in this hidden file.
  417. Only the file owner can access this file.</dd>
  418. <dt><tt>$HOME/GIS_ERROR_LOG</tt></dt>
  419. <dd>if this file exists then all GRASS error and warning messages are
  420. logged here. Applies to current user. To generate the file, use:
  421. <tt>touch $HOME/GIS_ERROR_LOG</tt><br>
  422. See also GIS_ERROR_LOG variable.</dd>
  423. </dl>
  424. Note: On MS Windows the files are stored in <tt>%APPDATA%</tt>.
  425. <h2>SEE ALSO</h2>
  426. <em>
  427. <a href="g.gisenv.html">g.gisenv</a>,
  428. <a href="g.parser.html">g.parser</a>
  429. </em>
  430. <p>
  431. <i>Last changed: $Date$</i>